代表的なプロトコル
プロトコル名 | 働き |
---|---|
TCP | 確実さを優先してアプリケーションのデータを送受信する/td> |
UDP | 速度を優先してアプリケーションのデータを送受信する |
TCPとUDP
TCPは、データが確実に届くようにするために、送信速度の調整や、届かなかったデータの再送などを行う VoIPや動画配信のようにリアルタイムの通信が必須な場合は、速度受信のUDPを利用する
ポート番号
インターネット層からさまざまな種類のパケットをアプリケーション層の適切なプロトコルに渡す際に識別に使われるポー
ト番号は0~65535番の数値を利用する
サーバ側のポート番号は固定なので、複数のクライアントから通信が同じポート番号に届くことになるが、クライアントの
IPアドレスとポート番号(ダイナミックポート)を組み合わせて記憶しておくので、混信することはない
範囲によって3つに分かれる | |||
---|---|---|---|
ウェルノウンポート | 0 ~ 1023番 | サーバプログラムが待ち受けに利用するポート | |
レジスタードポート | 1024 ~ 49151番 | メーカーが割り当てを受けて利用するポート | |
ダイナミックポート | 49152 ~ 65535番 | クライアントプログラムが利用。対象範囲から自動割り当てされる |
ポート番号 | 対応するプロトコル | |
---|---|---|
20番 | FTP(アクティブモードのデータコネクション。パッシブモードではランダムなポート番号が使われる) | |
21番 | FTP(コントロールコネクション) | |
22番 | SSH(遠隔操作) | |
23番 | Telnet(遠隔操作) | |
25番 | SMTP(メール) | |
80番 | HTTP(Web) | |
110番 | POP3(メール) | |
143番 | IMAP4(メール) |
TCPの仕事
TCPの通信は3ステップかけたコネクション確立(3ウェイ・ハンドシェイク)から始まり、データ転送後、コネクション
を終了する
コネクション確立時はシーケンス番号は1つずつ加算するが、データ転送中は送ったデータのバイト数を加算する。また、
受け取ったデータのバイト数は確認応答番号(ACK番号)に加算するので、2つの番号を見れば何バイトのデータをやり取
りしたかが分かる
シーケンス番号 | 送信側がデータを何バイト目から送信しているのかという情報 | |
ACK番号 | どこまでデータを正しく送信出来たのかを確認する情報 |
TCPセグメントを1つ送って確認応答を待ち、次のTCPセグメントを送るという動作だと、データ転送効率が悪くなってしま
うので、受信側が受信可能なウィンドウサイズ分のデータを一度に送信している【ウィンドウ制御】
送信側は一定時間待っても確認応答(ACK)が届ない場合、最後に確認応答をもらった所からデータを再送する【再送制御】
ネットワークの経路の途中が混雑していて通信速度を落とさなければならない場合(インターネット層のヘッダーの混雑
フラグがオン)、ECEフラグとCWRフラグで通信相手とやりとりして通信速度を落とす【ふくそう制御】
コントロールフラグ | 働き | |
---|---|---|
SYN | 接続を開始する際にオンにする | |
ACK | 何かを確認したことを伝える。確認応答番号と組み合わせて使われる | |
FIN | データ送信が完了したので通信を終了したいことを伝える | |
ECE | 通信経路が混雑して受信できなくなる恐れがあることを伝える | |
CWR | 通信経路が混雑したので、送信量を減らしたことを伝える |
UDPの仕事
TCPに比べると非常にシンプルなプロトコルで、単純にデータを送ることしかしない 接続が確立されたことを確認せずに送信を開始する パケットが欠落してもかまわずに送信する TCPにない機能として、ブロードキャストやマルチキャストという、1つのパケットを複数の相手に送る機能がある
ネットワークの状態を見る
netstatは接続状態を調べ、IPアドレスやプロトコル、ポート番号などを一覧表示してくれる
≫netstat コマンド
>netstat -n
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 TCP 192.168.0.12:53399 52.230.3.194:443 ESTABLISHED TCP 192.168.0.12:53426 125.56.212.44:443 ESTABLISHED TCP 192.168.0.12:53427 17.248.153.43:443 CLOSE_WAIT TCP 192.168.0.12:53443 108.177.125.188:5228 ESTABLISHED |
状態 | 意味 | |
---|---|---|
ESTABLISHED | TCPによる接続が確立し、通信している | |
CLOSE_WAIT | 相手からのFINを受け取った状態 | |
LISTEN | サーバが待ち受け状態にあることを表す(-aオプションで表示される) | |
TIME_WAIT | 接続を終了しようとしている |