TCP、IP、ARP協議之間的工作關系


TCP協議與ARP協議位於不同的層,不能用“並列”的思維來考慮。TCP位於傳輸層,而ARP工作在網絡層(也有說法是數據鏈路層,主要看怎么理解),但實際上掌管網絡層的大boss是IP協議,ARP協議用於實現IP地址向MAC地址的轉換,不過是個跑龍套的。

除此之外,網絡層想要把數據發出去還要依靠數據鏈路層,在局域網中,數據鏈路層和之下的物理層最常見的莫過於802.3協議棧了,也就是大名鼎鼎的以太網

 

802.3/以太網並不是一個協議,也不是一個分層。它是對局域網內部通信的一個實現標准,囊括了從物理層到鏈路層的一坨協議。以下簡單使用“802.3”來代表802.3中鏈路層及以下負責數據傳送的協議集

 

在網絡分層模型中,下層要為上層提供服務,而上層的一切行動都要靠下層們為它跑腿。打個簡單的比方,TCP就好比是老板,而IP是項目主管,ARP和802.3則是為以上二位跑腿的小員工。現在老板TCP想要向外發送一個SYN請柬。以下是大致劇情……

-----------------------------------------------------------------------------------------------------------------------------------------

TCP:IP你過來,我現在要給“destinationIP”發送一個SYN請柬,請柬我已經寫好了,剩下的就交給你了,限你n秒之內給我回話!(老板任性地走了……)。

IP拿到請柬后用信封封好,寫上自己的IP地址接收方的IP地址。然后將自己的網絡號與destinationIP對比:
1. 剛好在同一個網段,心想目標就在我們小區內(局域網),這就好辦了(跳至 --- #1 --- 處)。
2. IP一看不在同一個網段,心想不妙,只能求助收發室了(網關/路由器)(跳至 --- #2 --- 處)。

--- #1 ---
IP:ARP你過來,給我查查這個“destinationIP”的詳細地址在哪(MAC地址)。

ARP:(翻了翻自己的筆記本(ARP緩存)沒找到,他搖了搖頭,接着打開了小區廣播) “destinationIP”聽到請回答,我需要你的詳細地址。

過了一會ARP收到了一個回電,不出所料,destinationIP匯報了自己的MAC地址。ARP把MAC地址交給了IP。
跳至 --- #3 --- 處

--- #2 ---
IP:(把默認網關的IP地址指給ARP)這是收發室的IP,你給我查查它的詳細地址(MAC地址)。

ARP翻開了自己的筆記本,很快找到了收發室的詳細地址,並把MAC地址交給了IP,他慶幸這次不需要再打開小區廣播擾民了~
跳至 --- #3 --- 處

--- #3 ---

IP:802.3你過來,我這里有一封寫好的信你幫我送出去,MAC地址我已經幫你查好了。

最終,802.3按照得到的MAC屁顛屁顛地將信件送到收發室,並登記了自己的MAC地址。

此處省略n萬字…… 結束~

-----------------------------------------------------------------------------------------------------------------------------------------

注意:
ARP協議是和以太網配套使用的,如果你的局域網的底層實現並不是以太網(比如令牌環網、HDDI等),那么你可能壓根就不需要ARP請求!
從始至終,IP協議只處理與IP地址有關的部分;
ARP協議只處理查詢MAC地址;
802.3鏈路層協議只負責MAC-MAC之間的實際傳送;
這就是網絡分層,各司其職。

===================================

最后,你問我TCP發出SYN請求和ARP廣播誰先,當然是SYN請求在先了!但是如果沒有ARP廣播SYN請求還不是紙上談兵?所以問誰先誰后是沒有意義的,分清楚誰是boss、誰是小弟就好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM