antony@notes:~/networking$ cat "網路基礎.md"
網路基礎
網路基礎
Ethernet(乙太網路)
由網路卡,網路設備和網路線所組成 我們現在的電腦有線網路設備,例:電腦主機上的埠、switch上的埠或是實體網路線,都是Ethernet的規格。
port:中文為埠
Switch 網路交換器
以學校教室的Switch為例,如下圖
這台switch是由ZYXEL公司賣的,它有48個孔,一台電腦有一個網路,用一條網路線連到它的孔,第二台電腦也有一條網路線連到它的第二個孔,所以可以有48台電腦可以連到48個孔,此時這48台電腦可以透過這台switch互相傳資料給對方
switch有什麼功用?
可以讓多台電腦互相交換資料
在Ethernet這種網路下,電腦之間要溝通時候需要知道對方的MAC位址才能傳資料過去
什麼是MAC位置? 每一張網路卡都有一個MAC位址,全世界絕對不會有相同的MAC位址的網路卡或設備,MAC位址一律使用16進位。
16進位:0 ~ 9,A ~ F。
如何確定MAC(Media Access Control)位址? 在windows系統下,執行
ipconfig /all
C:\Users\ybean>ipconfig /all
...以上省略
乙太網路卡 乙太網路:
連線特定 DNS 尾碼 . . . . . . . . : mcu.edu.tw
描述 . . . . . . . . . . . . . . .: Intel(R) Ethernet Connection (7) I219-LM
實體位址 . . . . . . . . . . . . .: C8-D9-D2-04-57-3D
...以下省略可以看到第三行的“實體位址”,就是MAC位址,以這台電腦為例:
C8-D9-D2-04-57-3D就是他的MAC位址。
VMware 公司出廠的mac address 前3碼一定是
00-50-56

Protocol:電腦之間溝通的語言
ARP(Adress Resolution Protocol)通訊協定
電腦跟電腦之間有很多的通訊協定/語言,就像人跟人之間有很多語言,下面介紹一下Adress Resolution Protocol,簡稱ARP
基本上,在 Ethernet 網路上傳送訊息,都必須以 Ethernet 封包格式封裝,來源位址與目的位址也都必須是 Ethernet Address 格式(48 bits)。但在 TCP/IP 網路上傳送訊息又都以 IP Address格式(32 bits),那 Ethernet 與 IP 位址之間的轉換機制,則須仰賴 ARP 協定來達成。
ARP運作方式圖如下:
以上圖為例,假設今天A電腦要透過 Ethernet 網路傳送訊息給 IP = 120.96.143.153的C電腦,首先第一步
- 會到Switch上面廣播:誰是120.96.143.153? 所有連在Switch上面的主機都會接收到廣播,並分解是否詢問自己,如果不是就不予理會而拋棄。
- 如果是,則電腦 C(120.96.143.153)收到廣播,發現詢問自己則回應自己的IP位址(120.96.143.153)以及MAC位址(C8-D9-D2-04-54-39)給發問者(120.96.143.151),也就是A電腦,此時A電腦會儲存ARP廣播後收到的IP位址和MAC位址,這樣下次就不用再問一次。
2022/02/28陳松林老師上課的白板圖

ARP通訊協定主要功能 使用對方的IP位址取得對方的MAC位址
什麼時候會啟用ARP通訊協定?
ping、http
有關ARP的參考資料來自ARP 協定與分析
重點整理:
簡單來說Ethernet這種網路下,硬體層面電腦要互相做資料的溝通一定要透過MAC,沒得商量!
可是由於MAC的長度太長沒人背得起來,所以在電腦裡面還有一個給人看的IP位址,也就是TCP/IP網路他在運作的位址,這時候就需要一種通訊語言(protocol),把我們看得懂的IP轉換成真正通訊的MAC,而這個通訊協定就是ARP。
IP address就是一台電腦在網路上的位址,而MAC address則是製造商指定給網路硬體(像是無線網卡、有線網卡)的獨特編碼。
就好像終端機上面有貝殼程式;電腦上有cpu、memory、HardDisk和網路,上面可以跑os;Ethernet網路的硬體,網路卡、網路線和Switch,這個硬體要傳資料一定要透過MAC,硬體有了之後,上面跑的軟體是TCP/IP,這個system有一個protocol叫做ARP,他可以把對方的IP位址轉換成MAC位址。
4/16更新ARP通訊協定
當Host A要傳給Host B資料時, 第一步Host A主機會先檢查自己的ARP cache有沒有Host B的MAC位址,如果沒有紀錄,
第一步

它就會進到第二部,在Switch上面廣播"ARP requset",ARP requset裡面會有:
- Host A自己的IP address 和 MAC address
- Host B的IP address和MAC address,但因為這時候不知道,所以顯示都是00:00:00:00:00:00( 00:00:00:00:00:00 )
第二步

第三部 Host B主機收到ARP request後,會在自己這邊的ARP cache紀錄Host A主機的MAC Address
第四部
Host B主機會將自己的IP位址和MAC address位址傳給Host A

第五部 Host A主機把收到的Host B 主機的IP位址和MAC address紀錄起來
鎖定網路卡
我們現在用線鯊,到這個網路卡上面,
選這張網路卡的原因是因為,他負責連接我們那兩台機器,
所以我們就可以用線鯊到這張網路卡上面,收取底層的封包
等下我們應該就會看到 ARP 的封包
封包會分成很多層
Ethernet 網路硬體上,送出去的資料區塊,我們稱它為封包
裡面的 mac address ,只要是一片 f ,就會造成那個硬體在
那個網路上面,把所有的封包送給所有電腦,這就是廣播的意思。
你看到這個 Ethernet 2 裡面的資訊,就是要來操控我們的硬體
軟體的部分在下面。