CV工程師用不到的鏈路層知識(shí)點(diǎn)

前言
上一篇記錄了一下當(dāng)主機(jī)配置了動(dòng)態(tài)獲取IP之后,連入網(wǎng)絡(luò)之后究竟是如何獲取IP得,以及如何根據(jù)CIDR(無(wú)類型域間選路)信息獲取子網(wǎng)號(hào)、網(wǎng)絡(luò)中第一個(gè)地址和子網(wǎng)掩碼。
今天來(lái)記錄一下鏈路層相關(guān)的理論知識(shí)(八股文)
鏈路層
「鏈路層的主要功能」
(1)為IP模塊發(fā)送和接收IP數(shù)據(jù)報(bào)
(2)為ARP模塊發(fā)送ARP請(qǐng)求和接收ARP應(yīng)答
(3)為RARP發(fā)送RARP請(qǐng)求和接收RARP應(yīng)答
為IP模塊發(fā)送和接收數(shù)據(jù)報(bào)
數(shù)據(jù)包是發(fā)給誰(shuí)的?誰(shuí)應(yīng)該接收? 多個(gè)進(jìn)程一起發(fā),會(huì)不會(huì)產(chǎn)生混亂?有沒有先發(fā)后發(fā)的規(guī)則 發(fā)送過(guò)程出現(xiàn)了錯(cuò)誤,怎么處理?
「MAC地址」
上圖中標(biāo)記的就是eno16777736網(wǎng)卡的物理地址,也就是MAC地址,用十六進(jìn)制標(biāo)識(shí)。
一個(gè)網(wǎng)絡(luò)包要從一個(gè)地方傳到另一個(gè)地方,除了要有確定的地址,還需要又定位功能,而有門牌號(hào)碼屬性的IP地址,才有遠(yuǎn)程定位功能。
MAC地址更像是一個(gè)身份證,而IP地址就是門牌號(hào)。
比如可以根據(jù)IP查找到主機(jī)在哪一棟樓,用MAC可以在用IP找到的樓中查找到對(duì)應(yīng)的主機(jī)。
MAC地址有一定的定位功能,不過(guò)范圍非常有限,只能局限在一個(gè)子網(wǎng)里面。
「數(shù)據(jù)報(bào)是發(fā)給誰(shuí),誰(shuí)接收?」
此時(shí)在數(shù)據(jù)報(bào)中就需要存放源MAC地址以及目標(biāo)MAC地址。

「多個(gè)進(jìn)程一起發(fā),會(huì)不會(huì)產(chǎn)生混亂?有沒有先發(fā)后發(fā)的規(guī)則」
MAC的全程是Medium Access Control,即媒體訪問(wèn)控制。控制在往媒體上發(fā)數(shù)據(jù)的時(shí)候,誰(shuí)先發(fā),誰(shuí)后發(fā)的問(wèn)題。防止發(fā)生混亂。此問(wèn)題中的規(guī)則,叫多路訪問(wèn)。
有三種方式解決此問(wèn)題:
(1)分多車道,每輛車一車道,各走各的,這在計(jì)算機(jī)網(wǎng)絡(luò)里叫做信道劃分。
(2)限號(hào)出行協(xié)議,在計(jì)網(wǎng)中叫做輪流協(xié)議。
(3)先出門,發(fā)現(xiàn)很堵,返回,錯(cuò)峰出行,叫隨機(jī)接入?yún)f(xié)議。以太網(wǎng)用的就是這種方式。
「發(fā)送過(guò)程出現(xiàn)了錯(cuò)誤,怎么處理?」
在上一張圖片中,最后面有個(gè)CRC,也就是循環(huán)冗余檢測(cè),通過(guò)XOR異或的算法,來(lái)計(jì)算整個(gè)包是否在發(fā)送的過(guò)程中出現(xiàn)了錯(cuò)誤。
什么是ARP?
當(dāng)一臺(tái)主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺(tái)主機(jī)時(shí),是根據(jù)48bit的以太網(wǎng)地址(也就是MAC地址)來(lái)確定目的接口的。
地址解析為這兩種不同的地址形式提供映射:32bit的IP地址和數(shù)據(jù)鏈路層使用的任何類型的地址。

ARP為IP地址到對(duì)應(yīng)的硬件地址之間提供動(dòng)態(tài)映射。從邏輯Internet地址到對(duì)應(yīng)的物理硬件地址,在32 bit的IP地址和采用不同網(wǎng)絡(luò)技術(shù)的硬件地址之間提供動(dòng)態(tài)映射
「也就是說(shuō),通過(guò)ARP可以根據(jù)IP地址找到對(duì)應(yīng)的MAC地址」
在需要發(fā)送一個(gè)數(shù)據(jù)報(bào)的時(shí)候,通常是有IP地址,但是不知道對(duì)方的MAC地址是什么,這個(gè)時(shí)候就需要通過(guò)ARP請(qǐng)求去獲取IP地址對(duì)應(yīng)主機(jī)的MAC地址。
「通過(guò)局域網(wǎng)的交換機(jī)進(jìn)行尋找?!?/strong>
「ARP高速緩存」
ARP高速運(yùn)行的關(guān)鍵是由于在每個(gè)主機(jī)上都有一個(gè)ARP高速緩存,這個(gè)高速緩存存放了最近Internet地址到硬件地址之間的映射記錄,每個(gè)元素生存時(shí)間是20分鐘。
比如,發(fā)送數(shù)據(jù)報(bào)的時(shí)候只知道IP不知道MAC,此時(shí)就是發(fā)送ARP請(qǐng)求

?「步驟:」
?
先查看本地ARP緩存,沒查到轉(zhuǎn)下一步 通過(guò)交換機(jī)廣播ARP請(qǐng)求 對(duì)應(yīng)的機(jī)器進(jìn)行ARP應(yīng)答 獲取到MAC地址,存入緩存

「ARP代理」
如果ARP請(qǐng)求是從一個(gè)網(wǎng)絡(luò)的主機(jī)發(fā)送到另一個(gè)網(wǎng)絡(luò)的主機(jī),那么連接這兩個(gè)網(wǎng)絡(luò)的路由器就可以回應(yīng)該請(qǐng)求。
ARP代理也稱為混合ARP或ARP出租,是由于通過(guò)兩個(gè)物理網(wǎng)絡(luò)之間的路由器可以互相隱藏物理網(wǎng)絡(luò)。
「arp命令」
arp -a:顯示ARP高速緩存中的所有內(nèi)容

可以使用-d刪除某項(xiàng)內(nèi)容
使用-s保存某項(xiàng)內(nèi)容
什么是RARP?
RARP稱為「逆地址解析協(xié)議」
就是通過(guò)MAC地址獲取對(duì)應(yīng)主機(jī)的IP地址。
具有本地磁盤的系統(tǒng)從磁盤文件中獲取IP地址,但是無(wú)盤機(jī)需要采用其他方法獲取IP地址。
無(wú)盤系統(tǒng)的RARP實(shí)現(xiàn)過(guò)程是從接口卡上讀取唯一的硬件地址,然后發(fā)送一份RARP請(qǐng)求,請(qǐng)求某個(gè)主機(jī)響應(yīng)該無(wú)盤系統(tǒng)的IP地址。
報(bào)文結(jié)構(gòu)如下:

跟ARP報(bào)文結(jié)構(gòu)主要區(qū)別就是操作代碼:3是RARP的請(qǐng)求,4是RARP的應(yīng)答
環(huán)回接口
大多數(shù)的產(chǎn)品都支持環(huán)回接口(Loopback Interface),以允許運(yùn)行在同一臺(tái)主機(jī)上的客戶程序和服務(wù)器程序通過(guò)TCP/IP進(jìn)行通信。A 類網(wǎng)絡(luò)號(hào)127就是為環(huán)回接口預(yù)留的。根據(jù)慣例,大多數(shù)系統(tǒng)把 IP地址127.0.0.1 分配給這個(gè)接口,并命名為localhost。一個(gè)傳給環(huán)回接口的IP數(shù)據(jù)報(bào)不能在任何網(wǎng)絡(luò)上出現(xiàn)。
一旦傳輸層檢測(cè)到目的端地址是環(huán)回地址時(shí),應(yīng)該可以省略部分傳輸層和所有網(wǎng)絡(luò)層的邏輯操作。但是大多數(shù)的產(chǎn)品還是照樣完成傳輸層和網(wǎng)絡(luò)層的所有過(guò)程,只是當(dāng)IP數(shù)據(jù)報(bào)離開網(wǎng)絡(luò)層時(shí)把它返回給自己。
需要指出的關(guān)鍵點(diǎn):
傳給127.0.0.1的任何數(shù)據(jù)均作為IP輸入。 傳給廣播地址或多播地址的數(shù)據(jù)報(bào)復(fù)制一份傳給127.0.0.1,然后送到以太網(wǎng)上。 任何傳給該主機(jī)IP地址的數(shù)據(jù)均送到127.0.0.1。
最大傳輸單元 MTU
以太網(wǎng)和802.3對(duì)數(shù)據(jù)幀的長(zhǎng)度都有一個(gè)限制,其最大值分別是1500和1492字節(jié)。鏈路層的這個(gè)特性稱作MTU,最大傳輸單元。

通過(guò)ifconfig命令可查看每個(gè)網(wǎng)卡的MTU
路徑 MTU
兩臺(tái)通信主機(jī)路徑中的最小 MTU,路徑MTU 在兩個(gè)方向上不一定是一致的。
往期推薦下期見
上古偽神
一個(gè)分享Java后端學(xué)習(xí)日志和健身的公眾號(hào)
歡迎大家點(diǎn)個(gè)在看、點(diǎn)個(gè)贊、分享至朋友圈
