寝る前にRFC読むまとめ

っていうタグで始めたけど寝る前に読んでるわけではない。
0

今読んでいるもの
RFC9293: Transmission Control Protocol
https://www.rfc-editor.org/rfc/rfc9293.html

読み終えたもの
RFC1180: TCP/IP tutorial
https://www.rfc-editor.org/rfc/rfc1180

福寿 @fukuju__sou

RFC9293 3.1 window: acknowledgementフィールドで示された(セグメントの送信者が受信する意思を示した)オクテットから始まるデータオクテットの数値(???要復習) ◎符号なし整数で扱う必要がある #寝る前にRFC読む

2023-02-24 01:35:56
福寿 @fukuju__sou

RFC9293 TCP 3.1 Sequence number: よくわかっていない。とりあえず進めて、あとでもう一度読み返す Acknowledgement number: ACKがセットされているとき、次のシーケンス番号を持つ Data offset: どこからデータが始まるのかを識別する Reserved: 将来のためにとっといてるやつ #寝る前にRFC読む

2023-02-23 00:59:15
福寿 @fukuju__sou

RFC9293 TCP 2日さぼりました 3.1 Header Format 1枚目RFC9293, 2枚目RFC793 Paddingが消えた。 #寝る前にRFC読む rfc-editor.org/rfc/rfc9293.ht… pic.twitter.com/tPzMZM1wLr

2023-02-21 23:14:47
拡大
拡大
福寿 @fukuju__sou

RFC9293 TCP 2.2 TCPの信頼性はシーケンス番号でのパケットロスの検知、チェックサムによるエラー検出、再送信によって成り立っている。 また、ユニキャストと(低レイヤへの転送が不安定だが)エニーキャストをサポートしている。 双方向も単一方向にも対応。 ポート番号使用 #寝る前にRFC読む

2023-02-19 01:03:10
福寿 @fukuju__sou

RFC9293 TCP 2 TCPには色々な拡張機能などがあるが(e.g. 輻輳制御 congestion control)、このRFCでは基本的なTCPの動作についてのみ説明する。RFC793から変更された点は5章で取り扱っている。 2.1 MUST、MAY(以下省略)はBCP14の通りに使われる #寝る前にRFC読む

2023-02-17 15:33:42
福寿 @fukuju__sou

【今日の分2/15】 RFC9293 TCP Abstract RFC793他から改訂されたTCPに関するRFC。 1 本RFCは、数多く存在するRFC793の一部を改訂したRFCを統一することが目的の1つである。 #寝る前にRFC読む rfc-editor.org/rfc/rfc9293.ht…

2023-02-15 15:11:59
福寿 @fukuju__sou

【昨日の分】 RFC1180 8.3 rsh Remote shell。名前の通りUNIX系をリモートで動かすときのコマンド。元のコマンドの先頭にrやr*を追加して使う。 e.g.) コピーのためのcpコマンド→rcp 8.4 NFS UDPを利用した複数のコンピュータでマウントできるUNIX系ファイルシステム。(続く) #寝る前にRFC読む

2023-02-15 12:17:56
福寿 @fukuju__sou

【今日2/13の分】 RFC1180 8 TCPとUDPが共存する理由 →目的が異なる、信頼性をとるか通信効率をとるか どんなアプリが利用可能か →たくさんあるし増え続けている 8.1以降ピックアップして紹介 #寝る前にRFC読む

2023-02-14 00:51:53
福寿 @fukuju__sou

【昨日の分、寝落ちしててツイートできてなかった】 RFC1180 TCP: コネクション指向型 信頼性がある分CPUと帯域幅をUDPより多く使用する ただUDPと同様にポート番号用いて通信する e.g.) FTP, TELNET sliding window protocolとは? ACKは出てきたけどSYNは登場せず、なんで? #寝る前にRFC読む

2023-02-14 00:48:58
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial SNMPを例に サーバ(SNMPエージェント)はポート番号161でずっと待っており、クライアントは161を宛先にして通信をする。 UDPは複数のアプリケーションメッセージを一緒に扱ったり、単一のものをわけて扱ったりしない。 #寝る前にRFC読む

2023-02-11 23:34:52
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 5.7 超シンプルな構成でルーティングテーブルを見る 5.8 5.7の続き。宛先として入力されたIPアドレスに合致する欄をルーティングテーブルから探す→今回の場合はARPでの解決が済んでいるのでEthernetフレームを作る→ルーティングテーブルにあるI/Fから送信 #寝る前にRFC読む

2023-02-10 17:27:18
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 5.3 【送信時】 上層からパケットが送られてくるとdirect/indirectどちらのルーティングかをルーティングテーブルを参照して決める 【受信時】 下層から(略)、上層へ送るかパケットを転送するかを決める。ただし、着信したパケットを同じNWへ送り返さない #寝る前にRFC読む

2023-02-09 12:26:11
福寿 @fukuju__sou

【重要】 A◎-B◎-C◎ ※A-B, B-Cはそれぞれ異なるネットワーク ルータA AからCへ通信するとき 送信元IP/MAC: どちらもA 宛先IPアドレス: C 宛先MACアドレス: B ルータD 送信元IPアドレス: A 送信元MAC: B 宛先IPアドレス: C 宛先MACアドレス: C

2023-02-08 23:52:57
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 5.1 ARPの流れでやったような感じ。 送信側は送信元IP/MACアドレスに自身のものを入れ、宛先には送りたい相手のアドレスを入れる。受信側ではそれぞれのアドレスをチェックし、送信元と宛先を逆にして返送。これをダイレクトルーティングという。 #寝る前にRFC読む

2023-02-08 13:39:00
福寿 @fukuju__sou

RFC1180 4.4 ◎ARPテーブルはI/Fごとに保持する ◎ARP応答待機中、パケットをキューしないこともある。パケットの廃棄やリカバリーはL3でなくTCPやUDPでタイムアウト・再送信の形で行われる #寝る前にRFC読む

2023-02-08 01:27:52

4.3の続きだけど(リプにぶらさげるツイート)とても大事なことなので載せてる

福寿 @fukuju__sou

例:アドレスはめっちゃ簡略してる 【送信側】 送信元IP:1 送信元MAC:A 宛先IP:2 宛先MAC:FF-FF-FF-FF-FF-FF(ブロードキャスト) 【受信側返送時】 送信元IP:2 送信元MAC:B(自身のMACアドレス) 宛先IP:1 宛先MAC:A

2023-02-07 12:47:02
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 【昨日の分】 4.3 ARPテーブルに登録される流れ 宛先MACアドレスをブロードキャストにして全ホストに向けて送信。受信側はパケットの宛先IPアドレスの自信のアドレスが合致しているかを確認。合致していたら、送信元MACアドレスを自身のものにして送り返す #寝る前にRFC読む

2023-02-07 12:43:56
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 4. ARP, IPからMACを解決するプロトコル 4.1 ARPテーブルの説明 4.2 ARPが利用される流れ。TELNETを例に、TCP⇒IP⇒Ethernetとヘッダーを付与しつつデータを下位層へ渡す。Ethernetで宛先を決定するためにARPテーブルを参照する #寝る前にRFC読む rfc-editor.org/rfc/rfc1180#se…

2023-02-06 00:45:10
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 3.1 L2通信を、複数人が暗室で会話することに例えて説明している。とてもわかりやすい。 誰かの声が聞こえる⇒キャリアセンス 誰もが聞ける⇒多重アクセス 同時に話すとお互い何言ってるかわからない⇒コリジョン (続く) #寝る前にRFC読む rfc-editor.org/rfc/rfc1180#se…

2023-02-04 23:58:16

RFC1180 TCP/IP tutorial
2.8 Overview クイズ

  1. When sending out an IP packet, how is the destination Ethernet address determined?
    ARPテーブルを見て、IPアドレスに対応するMACアドレスを、なければARPパケットを飛ばしてMACアドレス解決をする。

  2. How does IP know which of multiple lower network interfaces to use when sending out an IP packet?
    ルーティングテーブルを参照する

  3. How does a client on one computer reach the server on another?
    各ルータ、スイッチで送信するときは上位層からヘッダーをつけていき、受信時は下位層からそのヘッダーを外して中身をチェックしていく。
    同一ネットワークの場合はL2までチェックして宛先MACアドレスを確認し、異なるネットワークに転送する場合はL3までチェックして宛先IPアドレスを確認する。宛先のアドレスを確認したら、MACアドレステーブルやルーティングテーブルを確認して出力する。

  4. Why do both TCP and UDP exist, instead of just one or the other?
    目的が異なる。前者は信頼性があり、後者は速い。そのためTCPではHTTPS、SSLなどが(セキュアな通信が必要になる)、UDPではNTPやSNMP(多少データが損失してもいいからリアルタイム性を優先する)などが例としてあげられる。

  5. What network applications are available?
    FTP, SNMPなど

答えがないので読み直して確認するしかない!

福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 2.6 application下にIPのある層の構造だから、ハードが変わっても問題なく通信するよ的な内容 2.7 interoperate用語解説 2.8 Overview振り返りクイズ。字数の都合上togetterに載せる。そういえばtogetterって今後も使えるのかな #寝る前にRFC読む rfc-editor.org/rfc/rfc1180

2023-02-03 22:38:31
福寿 @fukuju__sou

RFC1180 TCP/IP tutorial 2.4 The process of sending an IP packet out onto another network is called "forwarding" an IP packet. tutorialなだけあって思ったより丁寧。ここまで丁寧だとOverviewは読み飛ばしていいかなと思ったけど、あと1ページもないくらいで3章いくので読む #寝る前にRFC読む

2023-02-03 00:23:43
福寿 @fukuju__sou

RFC1180: TCP/IP Tutorial 2.3 The value of the type field in the Ethernet frame determines whether the Ethernet frame is passed to the ARP or the IP module. ↓ IEEE802 Numbers iana.org/assignments/ie… #寝る前にRFC読む rfc-editor.org/rfc/rfc1180

2023-02-01 23:54:12