#はじめに
通信の流れを大まかに説明してるものはあれど、全体として理解しづらかったので、自身が調べたわかりやすいサイトと共にまとめてみました。
#通信のモデル
通信は以下のOSI参照モデルの処理を介して行われます。
OSI参照モデルの説明
https://www.infraexpert.com/study/networking3.html
(ちなみに現在はTCP/IPモデルが主流だが、エンジニアで話をするときはOSI参照モデルを元に話をする。)
データは上記のようにパソコン内などでカプセル化という、データの通信をするための通信処理の情報が入ります。
最初はL1、L2・L3、L4でそれぞれで順番にやり取りをして通信を確立したのち、データのやり取りができるそうです。
それぞれでやり取りというのは、一度対向機器まで通信を行えたら、データまでの通信を行う前に、通信元まで戻っくることを言っています。
例えば、L3(IP)での通信がちゃんとできないとL4(TCP)のやり取りまで通信は行われません。
#通信の流れ
通信を行う際に、カプセル化されたデータの通信はL1で電気信号として繋がったあとに、
対向機器でL2,3までカプセル化されたデータが剥がされて情報を取得し、通信元にカプセル化されたデータが戻ってくることでお互いの通信情報を知ります。
https://www.seraku.co.jp/tectec-note/industry/network-layer/
そのあと、L4までデータを剥がしてTCPのやり取りでコネクションを確立したのち、
L5~L7のアプリケーション処理を経て、データを送ります。
https://www.itbook.info/study/tcp1.html
まとめると以下のようになります。
・L1は電気信号なので物理的な繋がってれば繋がる
・L2はL3のARP処理というやり取りを行なってお互いの通信情報を知る
※DHCPのやり取りはIPを知る通信なのでまた別
・L4はTCPでスリーウェイハンドシェイクという技術で接続を確立する
※これもL2,3と同じようにやり取りを行なっている
※UDPというやり取りを行わず、送りっぱなしの通信もある
・L5~L7のそれぞれのプロトコルに沿ったやり取りを行い、データを断続的(MTUの限界値)に送りまくる
※L2,3は宛先の情報が入った状態、L4はコネクションを張っている情報が入った状態
簡単に言うとL1〜4でそれぞれ送信元機器と宛先機器でやり取りが何回か行われてからデータの受け渡しなどが始まります。
#L2〜4の参照サイト
◯Macアドレス(L2)
Macは例えばの流れでルータまでやり取りをしてL2の通信を確立、ルータは次のルータまたは宛先PCとやり取りをして通信を確立する
https://milestone-of-se.nesuke.com/nw-basic/grasp-nw/ethernet-ip-address/
〇IPアドレス(L3)
https://www.kagoya.jp/howto/network/ipaddress/
◯ARP(L3)
IPからMacアドレスを知る
https://www.infraexpert.com/study/tcpip2.html
◯TCP スリーウェイハンドシェイク(L4)
https://www.infraexpert.com/study/tcpip9.html
#L5~7の参照サイト
〇こちらは参照程度
https://www.linuxacademy.ne.jp/lablog/infrastructure/155/
#その他
◯MTUの話(「IP フラグメンテーションと TCP セグメンテーションの違い」の図がわかりやすい)
https://milestone-of-se.nesuke.com/nw-basic/grasp-nw/mtu-mss-fragment-segment/amp/
◯インターネットの繋がり方は以下がわかりやすい
https://www.google.com/amp/s/milestone-of-se.nesuke.com/nw-basic/grasp-nw/about-internet/amp/
◯NATの説明
https://www.itbook.info/study/nat3.html
◯NAPTの説明
https://www.itbook.info/study/nat4.html
IPだけ変換するのがNAT、IPとポート番号を合わせて変換するように設定するのがNAPT。
NATの場合、1対1の変換になるので変換元のPCがいっぱいあると対応できないのでNAPTを使う。
〇通信全体の参照サイト
通信の流れとしては以下がすごくわかりやすい。
https://www.isc.meiji.ac.jp/~mizutani/ict/communication.pdf
#さいごに
CCNAを取得してから10年近く経ちましたが、忘れてた部分ややっと腑に落ちたものがあり、理解が深まりました。
やっぱり何回か反復しないと覚えないですね〜。。
※参照サイトの誤りがあったため、一部修正しています