
[2024/11/26(火)] 勉強日誌 #03
では、本日のアウトプット
「マスタリングTCP/IP」の続きからです。
昨日は「トランスポート層」に入ったところから、サーバのデーモンの機能まで読み進めました。
そこから本題に入り、TCP/UDPのヘッダーやセッション管理、処理の方法などが記載されており
実際のパケットと比較しながら学習することで、知識の定着を図れたかなと思います。
途中で詰まる箇所もありましたが、無事トランスポート層まで全て読み終えることができました。
・TCPはデータを確実に届けてくれる保証が付いているが、即時性には長けていない
・逆にUDPは確実性がない反面、リアルタイム通信に向いている
・データリンク層ではMACアドレス、ネットワーク層はIPアドレス、トランスポート層はポート番号が識別子として利用される。
・TCPでコネクションを張る際に3ウェイハンドシェイクを用いる
・UDPはいきなりデータを送りつける
・TCPでデータを送る際にデータの大きさを決める際に使われる単位がMSSである
・このMSSは機器によって異なるため、3ウェイハンドシェイク時に双方のMSSを教え合って
小さい方のMSSが適用される(以降適用したMSSでデータを送り合う)
・各機器に受信バッファがあり、データを受け取った際は一度バッファに置く
・TCPにはウィンドウという機能があり、いくつかのデータを連続して送ることが可能である
・上述したように受信バッファがあるため、受け取る側はACKを返す際に
受信バッファの空きについてもヘッダーに格納する(確かウィンドウサイズ)
・送信側はACKに含まれているウィンドウサイズを見て、送信できるデータを計算して送る
・TCPはシーケンス番号でやり取りの順番を決めている(受け取ったACK+シーケンス番号を足す)
・ACKやFIN、SYN、RSTはヘッダー内のフラグに1を立てて表している
・ふくそう制御も行っており、帯域が逼迫しないようにしている
やはりTCPはヘビーですね。UDPはヘッダーが少ないので覚えやすいですが
TCPはコネクション管理やふくそう制御だったり、ウィンドウといった機能があるので厄介です。
ですが、実際のパケットをキャプチャして進められたので、割と覚えやすかったです。
まだ3日しか経っていないこの日誌についてもアウトプットとしてかなり役立っています。
実験的に始めたこのnoteですが、これからもお世話になりそうです。
明日はついにアプリケーションの機能に移っていきます。
一行アウトプット
💡 コネクションとセッションって呼び方どっちやねん!
では、また次回
ps. 久しぶりに「Where are the street have no name」を聞きました。ボノ好き。。。
pps. museのLiveにedgeがゲスト出演したverも大好き。。。