家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

TCPについて調べてみました

TCPとは

TCP(Transmission Control Protocol)は、トランスポート層で動作するプロトコルです。TCPは、信頼性の高い通信を実現するために使用されるプロトコルです。トランスポート層のプロトコルにはUDPもあり、UDPは信頼性が高くない代わりに、高速性やリアルタイム性を求める通信に使用されるプロトコルです。

 

 


TCPでは通信の信頼性のために、通信先だってセッションを確立します。

 

3wayハンドシェイク

 

f:id:iestudy:20191210000954p:plain

3way-ハンドシェイク

 

ポート番号の割り当て

ポート番号のタイプ ポート番号の範囲 説明
ウェルノウンポート番号 0~1023

IANAで管理。

サーバのアプリケーションに割り当てられるポート番号。

登録済みポート番号 1024~49151

IANAで管理。

独自に作成したアプリケーションに割り当てられるポート番号。

ダイナミックポート番号 49152~65535 クライアント側のアプリケーションに自動的に割り当てられるポート番号。

 

TCPヘッダの構造

f:id:iestudy:20191210001735p:plain

TCPヘッダの構造

TCPのフラグ

  • NS (Nonce Sum) (RFC 3540)
  • CWR (輻輳ウィンドウ減少) 輻輳ウィンドウ減少の通知 (RFC 3168)
  • ECE (ECN-Echo) 輻輳の発生を相手に通知 (RFC 3168)
  • URG (緊急フラグ) 緊急ポインターフィールドを使うよう指示
  • ACK (応答確認フラグ) セグメントが応答確認を持っている
  • PSH (転送強制フラグ) 受信可能になったらすぐ送信
  • RST (リセットフラグ) 正しくないパケットを受け取ったときの通信リセットの指示
  • SYN (同期フラグ) 先頭シーケンス番号の転送
  • FIN (転送終了フラグ) 送信終了。受信は可能

 

参考にさせていただいたサイト

www.wdic.org

https://www.nic.ad.jp/ja/materials/iw/1999/proceedings/C03.PDF

www.infraexpert.com