→ネットワーク関連
→IP(Internet Protocol)関連
→IPアドレス
Tipsなど†
- どのポートで何が待っているか知るLinuxコマンド
sudo lsof -i -n -P
- 速度向上の裏技
- RWinの設定によって(地域によっては)回線速度が向上する
TCPヘッダ形式†
- 確認応答番号(=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の時のみ有効。緊急データの開始位置を示す
- 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で接続したときのクライアント側のポート。ランダムに決定される。サーバからクライアントにデータを送信するときに使われる。