イーサネット
VLANタグ・フレームのフォーマット - ネットワークエンジニアを目指して
項目 | 内容 |
---|---|
PDU | フレーム |
ヘッダ長 | 18byte |
~上記より引用~
タグ付きVLANの場合、1522byteとなり1518byte超えるが通信できる理由は?
Lesson4:VLANとジャンボ・フレーム,フレームを拡張する技術を学ぶ | 日経クロステック(xTECH)
→大体の機器は、フレーム長が1536バイトまたは2048バイトまでならOKなのでOK
参考
TCPの通信効率をよくする機能
フロー制御
~上記より引用~
受信側がバッファが一杯になった場合に、送信を止めてもらう機能
以下流れ
①受信側は、他ホストとも通信してるケースあり。バッファが一杯になったら、ウィンドウサイズ0で「もう送らないで!」を伝える。
②送信側は、メッセージを受けたら、一定期間待ってウィンドウプルーブで、「ウィンドウサイズの最新値は?」ときく。
③受信側は、最新のウィンドウサイズを通知する。
SACK (Selective ACK)
【図解】TCP のオプションと仕組み 〜SACK, Timestamp(PAWS), Window Scale, MSS〜 | SEの道標
~上記より引用~
ウィンドウ制御でACKを待たずに送信された複数セグメントのうち、一部でパケロスが発生した場合、SACK未使用だとパケロス発生した以降のパケットが全て再送される。SACKを利用すると、受信済みセグメントの情報を送信元に通知することででき、パケロスしたセグメントのみ再送させることが可能。
※昔、これに関するトラブルあり。FWがシーケンス番号をセキュリティ考慮し書き換えるけど、SACKの中のシーケンス番号を変えない不具合があった。たしかパケロス発生すると通信が失敗する動作だった。
Path MTU Discovery
【図解】Path MTU Discoveryの仕組み~ルータやWindows/Linuxでの設定確認/変更方法~ | SEの道標
~上記より引用~
MTA超過時にフラグメントを発生させずに通信をする仕組み。
以下流れ。
①送信元ホストがDon't Flagmentフラグつけて送信
②途中NW機器がMTU超過検知時にICMP Type3 Code4で送信元に通知
③送信元はサイズを小さくして再送信
注意
送信元がICMP Type3 Code4をFirewallで受け取らない場合、MTU超過時に通信できない問題(ブラックホール問題)が発生する。
tracertとtraceroute
図解 tracert の見方 ~WindowsとLinuxの違い(icmp/udp),経路途中のIPが表示されない理由~ | SEの道標
tracert
~上記より引用~
traceroute
~上記より引用~
どちらもIP TTL Expiredの動きを利用した到達性を確認するツール。
TTLを1個づつ大きくしてICMP TTL Expiredを受信することで間のNW機器の情報を得る。
tracertはicmp echoで、tracerouteはUDPハイポート(33434から1づつ大きくする)
ゴールまで到達するとtracertがicmp reply、tracerouteはport unreachableを受信する。
※tracerouteも-Iオプションで、tracertと同様icmp echoになる。