两个主机通信过程
主機(jī)A與主機(jī)B通信,A Ping B,圖:A-交換機(jī)-B,AB同一子網(wǎng)
(1)ping數(shù)據(jù)包用的是ICMP協(xié)議,IP協(xié)議的一個(gè)子協(xié)議,位于三層,包含A的IP,B的IP,三層進(jìn)行IP封裝成包,進(jìn)入二層
(2)A,B處于相同子網(wǎng),查看緩存中對與目的對應(yīng)得B第2層mac地址,如果存在,直接進(jìn)行第2層封裝成幀,經(jīng)物理層信號(hào)編碼,以0101010010這樣的bits流傳輸在網(wǎng)絡(luò)介質(zhì)上。
(3)如果不存在B的MAC,則發(fā)送ARP廣播請求B的MAC,ARP數(shù)據(jù)包經(jīng)物理層進(jìn)入交換機(jī)端口,需要進(jìn)行源端口號(hào)學(xué)習(xí),目的端口查找,B響應(yīng)ARP請求,交換機(jī)又可以學(xué)習(xí)一目的MAC地址與哪個(gè)端口對應(yīng),在下次傳送數(shù)據(jù)時(shí)就不再需要對所有端口進(jìn)行廣播了。B通過ARP單播把B的MAC響應(yīng)給A,此時(shí)再返回(2)的處理過程。
(4)當(dāng)再進(jìn)行A與B之間數(shù)據(jù)包轉(zhuǎn)發(fā),將直接用B的MAC地址封裝,數(shù)據(jù)轉(zhuǎn)發(fā)得以高速交換
主機(jī)A與主機(jī)C通信,A Ping C,圖:A-交換機(jī)-路由器M-路由器N-交換機(jī)-C,AC不同子網(wǎng)
(1)兩個(gè)機(jī)器不在同一子網(wǎng)內(nèi),A要與目的C通信,A要向“缺省網(wǎng)關(guān)”發(fā)出ARP包,而“缺省網(wǎng)關(guān)”的IP地址已經(jīng)在A系統(tǒng)軟件中設(shè)置。這個(gè)IP地址實(shí)際上對應(yīng)路由器M的E0的IP地址。所以A對“缺省網(wǎng)關(guān)”的IP地址廣播出一個(gè)ARP請求時(shí),路由器M的E0口的MAC回復(fù)給A,此時(shí)A數(shù)據(jù)包的目的MAC替換為M的E0口MAC。
(2)MAC替換后,經(jīng)物理層,傳輸?shù)浇粨Q機(jī)物理層,再傳到交換機(jī)數(shù)據(jù)鏈路層,再經(jīng)數(shù)據(jù)數(shù)據(jù)鏈路層到物理層。
(3)經(jīng)bit流傳到路由器M的物理層,然后傳到數(shù)據(jù)鏈路層,二層解封裝,目的IP與路由器M三層IP路由表比較,若匹配正確,交給上層處理,否則會(huì)緩存數(shù)據(jù)包內(nèi)容,然后根據(jù)目標(biāo)地址查找路由表找到相關(guān)表項(xiàng),得到NEXT HOP及出接口的MAC地址,用這兩個(gè)地址作為新的目的及源MAC地址封裝事先緩存的數(shù)據(jù)包,然后轉(zhuǎn)發(fā),這個(gè)過程稱為幀的重寫(REWRITE)。
(4)重復(fù)進(jìn)行MAC替換后, 在路由器N中,找到與目的IP匹配表項(xiàng),若N中存在C對應(yīng)的MAC表項(xiàng),則數(shù)據(jù)傳輸?shù)?/span>C網(wǎng)絡(luò)層,否則N發(fā)送ARP廣播請求C的MAC。
(5)當(dāng)C收到A的數(shù)據(jù)包后,再從A到C進(jìn)行一次反向MAC替換過程。反向過程中,每一步省略掉ARP請求NEXT HOP的MAC,因?yàn)?/span>MAC表已經(jīng)建立起來。
總結(jié):
IP報(bào)文傳輸過程包括:
1. Host sends packet to default gateway(主機(jī)將數(shù)據(jù)包發(fā)送到默認(rèn)網(wǎng)關(guān))
2. Packet placed in frame(數(shù)據(jù)包被封裝入幀)
3. Router receives frame(路由器接到幀)
4. Router finds destination network in route table(路由器在路由表中發(fā)現(xiàn)目標(biāo)網(wǎng)絡(luò))
5. Router chooses next hop toward destination(路由器選擇一個(gè)更接近目標(biāo)的下一跳)
6. MAC address of next hop determined(下一跳的MAC地址被確定)
7. Packet placed in frame(數(shù)據(jù)包被封裝入幀)
8. Repeats steps 2 through 7 as necessary(如果需要的話,重復(fù)步驟2~7)
9. Router receives frame(路由器接到幀)
10. Router finds network directly connected(路由器發(fā)現(xiàn)直連網(wǎng)絡(luò))
11. MAC address of end host determined(最終主機(jī)的MAC地址被確定)
12. Packet placed in frame to final destination(幀中的數(shù)據(jù)包被發(fā)送到最終主機(jī))
轉(zhuǎn)載于:https://blog.51cto.com/zhangaodi/1294858
總結(jié)
- 上一篇: C++ 一键关闭屏幕
- 下一篇: 针对移动互联网应用的网络建设和优化