ネットワーク関連

IP(Internet Protocol)関連

IPアドレス

Tipsなど

  • どのポートで何が待っているか知るLinuxコマンド
    sudo lsof -i -n -P

TCPヘッダ形式

tcp_header.png
  • 確認応答番号(=ACK番号):ACKで返ったときに受信側が次に来ることを期待するシーケンス番号
  • ヘッダ長=データオフセット:TCP ヘッダを 4byteのワード単位で数えた値(通常TCPヘッダは20byteなので5)となる。ヘッダは、どんなオプションが使われていようとも常に 32ビット境界で終わっていなければならない。端数は末端でパディングする
  • コードビット=TCPフラグ:
    • (上の図は古い仕様のものなのでCWR,ECEのフラグが記載されていない)
    • CWR:(Congestion Window Reduced) 輻輳ウィンドウを縮めて送信したことを示す
    • ECE:(ECN-Echo)IPヘッダのECNフィールドに'11'がセットされたパケットを受け取ったことを示す
    • URG:緊急データを含んでいる
    • ACK:確認応答。コネクション確立時の最初のセグメント以外は必ず1
    • PSH:受け取ったデータをすぐにアプリ層に渡す
    • RST:コネクションの強制切断
    • SYN:コネクション確立要求
    • FIN:コネクションの正常終了要求
  • ウィンドウサイズ:TCPセグメント全体の長さ=IPパケット長−IPヘッダ長。確認応答なしに送信できるサイズの最大値でもある。バイト数単位。MSSの整数倍に設定することが多い。
    • TCPコネクション確立時にエンド-エンド間で折衝する。従って送る側も送られる側もウィンドウサイズを知っている。
    • 送信側はウィンドウサイズ分を送信したら、受信側からACKが返ってくるのを待つ。ACKが(正しいシーケンス番号とともに)返ってきたら次のウィンドウサイズ分のデータを送り、再びACKを待つ。
  • 緊急ポインタ=アージェントポインタ:URGフラグが1の時のみ有効。緊急データの開始位置を示す

用語

  • セグメント
    • TCPのメッセージのことをなぜかセグメントと呼ぶ
  • MSS:Maximum Segment Size
    • MSSとは、TCPが格納するユーザデータで受信可能なセグメントサイズの最大値
    • MTU(Maximum Transmission Unit)と混同しないこと。MTUはIPで一回のデータ転送で送信可能なIPデータグラムの最大値。TCPのパケットはIPのパケットに載っているので、MSS=MTU-40バイト(IPのヘッダサイズ+TCPのヘッダサイズ)になる。
    • 参考資料:http://www.infraexpert.com/info/5adsl.htm
  • RWIN:Receive Window Size
    • RWINとは、相手側の確認応答 ( Ack ) を待たずに一度に送信出来るデータサイズ
    • RWIN=上のTCPヘッダで言うウィンドウサイズです
    • RWINはMSSの整数倍で設定することが多い
  • エフェメラル・ポート ephemeral ports
    • TCPで接続したときのクライアント側のポート。ランダムに決定される。サーバからクライアントにデータを送信するときに使われる。

添付ファイル: filetcp_header.png 1214件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-08 (水) 18:20:21 (38d)