トランスポート層

トランスポート層では、コンピュータ同士のコネクション管理を行ったり、コンピュータ内の出入り口であるポート番号を管理したりしています。また、信頼性のあるTCPプロトコルと信頼性のないUDPプロトコルがありコンピュータ間の通信を都度都合に合わせ、効率よくしています。質問などありましたら、お気軽にどうぞ。

トランスポート層の役割

  • ポート番号とアプリケーション層を関連付ける。
  • データを分割する、分割されたデータを組みなおす。
  • トランスポート層のプロトコルには、TCPとUDPがある。
  • TCPの場合、信頼性のある通信を確立する。
  • UDPの場合、信頼性のない通信だが、信頼確保についてはアプリケーションに委ねるか、もしくは速度重視。

ポート番号

ポート番号は、アプリケーション層への出入り口を示す

0~1023番まではあらかじめ予約されており、ウェルノウンポートという。

代表的なウェルノウンポート番号

プロトコルポート番号
FTP20、21
SSH22
TELNET23
SMTP25
DNS53
DHCP67、68
HTTP80
POP3110
NNTP119
NETBIOS137~139
IMAP143
SNMP161 、 162
HTTPS443
SMB(CIFS)445

クライアントで利用するポート番号

クライアント(Webブラウザ、メーラー等)ではOSに任せ、動的に49152〜65535までの中で空いているポートを割り当てるケースが多いです。
(※ものによっては、1024~ 利用する場合もある。)

TCPとUDPでポート番号の重複

TCPとUDPでは別のプロトコルとして動いているため、TCPとUDPで同じポート番号を同時に違う用途で使用することが出来る。

ウェルノウンポートではTCPとUDPの両方とも、そのアプリケーションとポート番号の対応(割り当て)になっている。
※どちらか片方しか使わないものに対しても将来拡張される可能性を考えてのこと。

TCP

  • 1対1の通信。
  • 信頼性のある通信。コネクション型通信。
  • シーケンス番号と確認応答番号(ACK)を用いて信頼性を確保する。
  • 確認応答番号が、待っても来ない場合再送する。確認応答番号を待つ時間も、TCPが最適な長さに調整している。
  • 3ウェイハンドシェイク。
  • 送信側の観点として、下位の階層で分割処理が発生しないように、データを最大セグメントサイズ(MSS)(1460bytes等)に分割する。
  • 受信側の観点として、まとめて受け取れる容量をウィンドウサイズという。
  • ウィンドウ制御している時に、3回連続同じ確認応答番号(ACK)が来たら再送を行う。
  • ウィンドウサイズをちょうど良い大きさに変更することによって、フロー制御を行う。
  • 確認応答がないときは再送する。
  • 送信時TCPヘッダをつけて、受信時TCPヘッダを外す。

UDP

  • 信頼性のない通信。コレクションレス型通信。
  • 複数の相手に同時に送る・・・特定の複数に送ることをマルチキャストといい、不特定多数に送ることをブロードキャストという。
  • 信頼性よりも速度重視。
  •