トランスポート層


代表的なプロトコル

プロトコル名 働き
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 接続を終了しようとしている