網絡數據包傳輸過程總結

一、數據包是如何在網絡中傳輸的

我們電腦上的數據,是如何“走”到遠端的另一臺電腦的呢?這是個最基礎的問題,可能很多人回答不上來,儘管我們每天都在使用網絡。這裏我們以一個最簡單的“ping”命令,來解釋一個數據包“旅程”。

    假設:我的電腦A,向遠在外地的朋友電腦B傳輸數據,最簡單的就是“ping”一下,看看這個傢伙的那一端網絡通不通。A與B之間只有一臺路由器。(路由器可能放在學校,社區或者電信機房,無所謂,基本原理是一樣的)

具體過程如下------
    1.“ping”命令所產生的數據包,我們歸類爲ICMP協議。說白了就是向目的地發送一個數據包,然後等待迴應,如果迴應正常則目的地的網絡就是通的。當我們輸入了“ping”命令之後,我們的機器(電腦A)就生成了一個包含ICMP協議域的數據包,姑且稱之爲“小德”吧~~~~

    2.“小德”已經將ICMP協議打包到數據段裏了,可是還不能發送,因爲一個數據要想向外面傳送,還得經過“有關部門”的批准------IP協議。IP要將你的“寫信人地址”和“收信人地址”寫到數據段上面,即:將數據的源IP地址和目的IP地址分別打包在“小德”的頭部和尾部,這樣一來,大家才知道你的數據是要送到哪裏。

    3.準備工作還沒有完。接下來還有部門要審覈------ARP。ARP屬於數據鏈路層協議,主要負責把IP地址對應到硬件地址。直接說吧,都怪交換機太“傻”,不能根據IP地址直接找到相應的計算機,只能根據硬件地址來找。於是,交換機就經常保留一張IP地址與硬件地址的對應表以便其查找目的地。而ARP就是用來生成這張表的。比如:當“小德”被送到ARP手裏之後,ARP就要在表裏面查找,看看“小德”的IP地址與交換機的哪個端口對應,然後轉發過去。如果沒找到,則發一個廣播給所有其他的交換機端口,問這是誰的IP地址,如果有人回答,就轉發給它。

    4.經過一番折騰,“小德”終於要走出這個倒黴的局域網了。可在此之前,它們還沒忘給“小德”屁股後面蓋個“戳”,說是什麼CRC校驗值,怕“小德”在旅行途中缺胳膊少腿,還得麻煩它們重新發送。。。。。我靠~~~~注:很多人弄不清FCS和CRC。所謂的CRC是一種校驗方法,用來確保數據在傳輸過程中不會丟包,損壞等等,FCS是數據包(準確的說是frame)裏的一個區域,用來存放CRC的計算結果的。到了目的地之後,目的計算機要檢查FCS裏的CRC值,如果與原來的相同,則說明數據在途中沒有損壞。

    5.在走出去之前,那些傢伙最後折磨了一次“小德”------把小德身上衆多的0和1,弄成了什麼“高電壓”“低電壓”,在雙絞線上傳送了出去。暈~~出趟門就這麼麻煩嗎?

    6.坐着雙絞線旅遊,爽!可當看到很多人坐着同軸電纜,還有坐光纖的時候,小德又感覺不是那麼爽了。就在這時,來到了旅途的中轉站------路由器。這地方可是高級場所,人家直接查看IP地址!剩下的一概不管,交給下面的人去做。夠牛吧?路由器的內部也有一張表,叫做路由表,裏面標識着哪一個網絡的IP對應着路由器的哪一個端口。這個表也不是天生就有的,而是靠路由器之間互相“學習”之後生成的,當然也可以由管理員手工設定。這個“學習”的過程是依靠路由協議來完成的,比如RIP,EIGRP,OSPF等等。

    7.當路由器查看了“小德”的IP地址以後,根據路由表知道了小德要去的網絡,接着就把小德轉到了相應的端口了。至此,路由器的主要工作完成,下面又是打包,封裝成frame,轉換成電壓信號等一系列“折騰”的活,就由數據鏈路層和物理層的模塊去幹吧。

    8.小德從路由器的出口出來,便來到了目的地----電腦B----所屬的網絡的默認網關。默認網關可以是路由器的一個端口,也可以是局域網裏的各種服務器。不管怎樣,下面的過程還是一樣的:到交換機裏的ARP表查詢“小德”的IP地址,看看屬於哪個局域網段或端口,然後就轉發到B了。

    9.進了B的網卡之後,還要層層“剝皮”,基本上和從A出來的程序是一樣的------電腦B先校驗一下CRC值,看看數據是否完整;然後檢查一下frame的封裝,看到是IP協議之後,就把“小德”交給IP“部門”了;IP協議一看目的地址,正確,再看看應用協議,是ICMP。於是知道了該怎麼做了------產生一個迴應數據包,(可以命名爲“迴應小德”),並準備以同樣的順序向遠端的A發送。。至於剛剛收到的那個數據包就丟棄了。

    10.“迴應小德”這個數據包又開始了上述同樣的循環,只不過這次發送者是B而接收者是A了。

    以上是一個最簡單的路由過程,任何複雜的網絡都是在次基礎之上實現的。

 

網絡數據包大小      

    用UDP協議發送時,用sendto函數最大能發送數據的長度爲:65535-20-8=65507字節,其中20字節爲IP包頭長度,8字節爲UDP包頭長度。用sendto函數發送數據時,如果指的的數據長度大於該值,則函數會返回錯誤。

    用TCP協議發送時,由於TCP是數據流協議,因此不存在包大小的限制(暫不考慮緩衝區的大小),這是指在用send函數時,數據長度參數不受限制。而實際上,所指定的這段數據並不一定會一次性發送出去,如果這段數據比較長,可能會被分段發送,如果比較短,可能會等待和下一次數據一起發送。我在測試的時候,發現長度一般會被切成16384(16K)或49152(48K),不知道這兩個值有什麼意義。



二、網絡中 IP數據報傳輸的過程僞代碼【有助於理解】

IP數據報需從主機A上傳送到主機B上,主機A首先查找路由表;
if(目的主機是與自己在同一個網段內)
{
    主機A查詢自己的ARP表;
    if(有該目的IP地址對應的MAC地址的記錄)
    {
將該MAC地址作爲目的MAC地址,封裝數據幀,傳送給主機B;
    }
    else
    {
          發送一個ARP請求廣播給網段內的所有主機,來查詢該目的IP地址的MAC地址;
收到ARP請求報文的各個主機如果發現該IP地址是自己的IP地址,則返回一個ARP應答報文告訴主機A自己的MAC地址;
如果發現不是自己的IP地址,則丟棄該報文。
主機A收到這個應答報文後,就按照返回的MAC地址,將IP數據包封裝成幀,然後發送到主機B上;
(補充:一般爲了減少網絡中的報文量,通信雙方會維護一個各自的ARP表,把一次通信中獲得IP MAC地址對保存在緩衝的ARP表中,但是ARP有一個老化機制,刪除一段時間內不用的IP MAC地址對。)
    }
}
else if(發現了能與目的網絡號相匹配的表目)
{
則把報文發給改表目指定的下一站的路由器或直接連接的網絡接口;
報文發送到下一站時,數據幀的目的MAC地址是下一個站路由器或者網絡接口的MAC地址,而IP頭部的目的IP地址是主機B的IP地址;
這裏要指出的是:ARP請求報文以下一站路由器或網絡接口的IP地址爲目的IP地址,尋找真的目的MAC地址。換句話,ARP請求報文只負責IP據報傳輸過程中每一跳中的目的MAC地址查詢。
}
else
{
尋找標爲“默認”的表目,把報文發送給該表目指定的下一站路由器;
報文發送到下一站時,數據幀的目的MAC地址是下一個站路由器的MAC地址,而IP頭部的目的IP地址是主機B的IP地址。
}
數據幀在每兩個網絡設備間傳遞時,是轉換成bit流在傳輸媒體上傳輸。鏈路層提供瞭如停止等待協議等機制,控制了bit流在傳輸媒體上的無措傳輸。


三、ARP協議詳解

前言:ARP協議的作用:

1. 什麼是ARP?   
ARP (Address Resolution Protocol) 是個地址解析協議。最直白的說法是:在IP以太網中,當一個上層協議要發包時,有了該節點的IP地址,ARP就能提供該節點的MAC地址。  
2爲什麼要有ARP?
OSI 模式把網絡工作分爲七層,彼此不直接打交道,只通過接口(layre interface). IP地址在第三層, MAC地址在第二層。
協議在發生數據包時,首先要封裝第三層 (IP地址)和第二層 (MAC地址)的報頭, 但協議只知道目的節點的IP地址,不知道其物理地址,又不能跨第二、三層,所以得用ARP的服務。
詳細說明:
Ø 在網絡通訊時,源主機的應用程序知道目的主機的IP地址和端口號,卻不知道目的主機的硬件地址,而數據包首先是被網卡接收到再去處理上層協議的,如果接收到的數據包的硬件地址與本機不符,則直接丟棄因此在通訊前必須獲得目的主機的硬件地址。ARP協議就起到這個作用
Ø 當一臺主機把以太網數據幀發送到位於同一局域網上的另一臺主機時,是根據 48位的以太網地址來確定目的接口的,設備驅動程序從不檢查 IP數據報中的目的IP地址。ARP(地址解析)模塊的功能爲這兩種不同的地址形式提供映射:32位的 IP地址和 48位的以太網地址

(一)ARP報文各字段含義:

ARP報文字段總共有28個字節
1.硬件類型:佔2個字節,表明ARP實現在何種類型的網絡上。
Ø 值爲1:表示以太網。
2.協議類型:佔2個字節表示要映射的協議地址類型。
Ø IP:0800
3.硬件地址長度:佔1個字節,表示 MAC地址長度,其值爲6個字節。
4.協議地址長度:佔1個字節,表示IP地址長度,此處值4個字節
5.操作類型 :佔2個字節,表示ARP數據包類型。
Ø 值爲1表示ARP請求。
Ø 值2表示ARP應答。
6.源MAC地址:佔6個字節,表示發送端MAC地址
7.源IP地址:佔4個字節,表示發送端IP地址
8.目的以太網地址:佔6個字節,表示目標設備的MAC物理地址
9.目的IP地址:佔4個字節,表示目標設備的IP地址.
注意:在ARP操作中,有效數據的長度爲28個字節,不足以太網的最小長度46字節長度,需要填充字節,填充字節最小長度爲18個字節

(二)ARP請求分組或應答分組

以太網首部總共有14字節數據,arp請求報文總共有28字節。所以一個ARP請求分組或應答分組總共有46字節數據。
而以太網數據包的最小數據爲60字節。所以,要對其進行填充。
這裏有一些重複信息
1. 在以太網的數據幀報頭中和ARP請求數據幀中都有發送端的MAC物理地址。
2. 在發送ARP請求時,以太網幀頭中的目的MAC物理地址爲FF-FF-FF-FF-FF-FF,而在ARP幀中的目的MAC處此時爲空。
3. 對一個ARP請求來說,除ARP中目的端MAC硬件地址外的所有其他的字段都有填充值。當系統收到一份目的端爲本地的ARP請求報文後,它就把硬件地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作字段置爲2,最後發送出去。

(三)ARP協議工作過程:

1. 原理:(ARP協議只使用於局域網中)
1> 在局域網中,網絡中實際傳輸的是“幀”,幀裏面是有目標主機的MAC地址的。
2> 在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得呢?它就是通過地址解析協議獲得的。所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
3> ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
4> 點對點的連接是不需要ARP協議的
2. 工作過程:
1> 當主機A向本局域網上的某個主機B發送IP數據報時,就先在自己的ARP緩衝表中查看有無主機B的IP地址。
2> 如果有,就可以查出其對應的硬件地址,再將此硬件地址寫入MAC幀,然後通過以太網將數據包發送到目的主機中。
3> 如果查不到主機B的IP地址的表項。可能是主機B才入網,也可能是主機A剛剛加電。其高速緩衝表還是空的。在這中情況下,主機A就自動運行ARP。
(1)ARP進程在本局域網上廣播一個ARP請求分組。ARP請求分組的主要內容是表明:我的IP地址是192.168.0.2,我的硬件地址是00-00-C0-15-AD-18.我想知道IP地址爲192.168.0.4的主機的硬件地址。
(2)在本局域網上的所有主機上運行的ARP進行都收到此ARP請求分組。
(3)主機B在ARP請求分組中見到自己的IP地址,就向主機A發送ARP響應分組,並寫入自己的硬件地址。其餘的所有主機都不理睬這個ARP請求分組。ARP響應分組的主要內容是表明:“我的IP地址是192.168.0.4,我的硬件地址是08-00-2B-00-EE-AA”,請注意:雖然ARP請求分組是廣播發送的,但ARP響應分組是普通的單播,即從一個源地址發送到一個目的地址。
(4)主機A收到主機B的ARP響應分組後,就在其ARP高速緩衝表中寫入主機B的IP地址到硬件地址的映射。
3. 事例說明:用ping說明ARP工作的原理
假設我們的計算機IP地址是192.168.1.1,要執行這個命令:ping192.168.1.2。該命令會通過ICMP協議發送ICMP(以太網控制報文協議)數據包
該過程需要經過下面的步驟:  
1> 應用程序構造數據包,該示例是產生ICMP包,被提交給內核(網絡驅動程序);   
2> 內核檢查是否能夠轉化該IP地址爲MAC地址,也就是在本地的ARP緩存中查看IP-MAC對應表;
3> 如果存在該IP-MAC對應關係,那麼跳到步驟<7;
如果不存在該IP-MAC對應關係,那麼接續下面的步驟;
4> 內核進行ARP廣播,目的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令類型爲REQUEST(1),其中包含有自己的MAC地址;   
5> 當192.168.1.2主機接收到該ARP請求後,就發送一個ARP的REPLY(2)命令,其中包含自己的MAC地址;   
6> 本地獲得192.168.1.2主機的IP-MAC地址對應關係,並保存到ARP緩存中;   
7> 內核將把IP轉化爲MAC地址,然後封裝在以太網頭結構中,再把數據發送出去;  
4. 特殊情況:
ARP是解決同一個局域網上的主機或路由器的IP地址和硬件地址的映射問題。如果所要找的目標設備和源主機不在同一個局域網上。
1>此時主機A就無法解析出主機B的硬件地址(實際上主機A也不需要知道遠程主機B的硬件地址);
2>此時主機A需要的是將路由器R1的IP地址解析出來,然後將該IP數據報發送給路由器R1.
3>R1從路由表中找出下一跳路由器R2,同時使用ARP解析出R2的硬件地址。於是IP數據報按照路由器R2的硬件地址轉發到路由器R2。
4>路由器R2在轉發這個IP數據報時用類似方法解析出目的主機B的硬件地址,使IP數據報最終交付給主機B.
說明:
Ø 如果你的數據包是發送到不同網段的目的地,那麼就一定存在一條網關的IP-MAC地址對應的記錄。   
Ø 知道了ARP協議的作用,就能夠很清楚地知道,數據包的向外傳輸很依靠ARP協議,當然,也就是依賴ARP緩存。要知道,ARP協議的所有操作都是內核自動完成的,同其他的應用程序沒有任何關係。同時需要注意的是,ARP協議只使用於本網絡。

(四)ARP緩衝表和TTL

1. ARP緩衝表
1> ARP協議的本質是完成網絡地址到物理地址的映射。從概念上將就是找到一個映射方法f,使得“物理地址 = f(網絡地址)“。物理地址有兩種基本類型:以太網類型和令牌環網類型。網絡地址特指IP地址,對映射方法的要求就是高效。具體到以太網,它使用的是動態綁定轉換的方法。一般是設置ARP高速緩存,通過學習,老化,更新,溢出算法處理ARP映射表來解決這些問題。
Ø 學習指ARP收到任何指向本結點IP地址的ARP/IP包,從中提取出地址對,當ARP緩衝表中無對應項時,由ARP接收部分添加;
Ø 老化指爲每項設置壽命域,以便代謝掉陳舊的地址映射項;
Ø 更新指ARP提取到新的地址對時,用其更新緩存裏已有的對應項;
Ø 溢出算法指當緩存慢時,採取何種方法替代舊有的地址對。
2> ARP緩存表由狀態,壽命,IP地址,MAC地址4個字段組成。狀態字段指示地址對是否有效;壽命字段用於老化操作,初始存入最大值,以後由OS時間函數調用,每秒減1,直至爲0清除;IP地址和MAC地址字段保存網絡地址和物理地址的映射。圍繞ARP緩存表,完成了4種操作:學習,老化,更新,表滿處理。
3> 當ARP被詢問一個已只IP地址節點的MAC地址時,先在ARPcache 查看
l 若存在,就直接返回MAC地址,
l 若不存在,才發送ARP request向局域網查詢。
4> 當主機A向B發送數據報時,很可能以後不久主機B還要向A發送數據報,因而主機B可能要向A發送ARP請求分組。
所以,爲了減少網絡上的通信量,主機A在發送其ARP請求分組時,就將自己的IP地址到硬件地址的寫入主機B自己的ARP高速緩衝表中。這對主機B以後向A發送數據報時就更方便了。
Tiger 說明:
任何事物都有兩面性,如果掌握的好它就是天使,如果掌握的不好它就是Satan,ARP中的緩衝表爲計算機之間的通信效率和減少網絡通信量之間作出了巨大的貢獻,但是它同時爲我們上網時留下了安全隱患;例如交換機嗅探(在下面會有介紹)
2. ARP中的TTL(即上面所說的壽命域)
ARP將保存在高速緩衝表中的每一個映射地址表項都設置了TTL(生存時間),只要TTL小於0的項目就從高速緩衝表中刪除掉。
(ARP的超時值一般爲20分鐘,對不完整的表項設置爲20分鐘,而對不完整的表項設置爲2分鐘《不完整的表項:即在以太網上對一個不存在的主機發出ARP請求》,當這些表項再次使用時,這些實現一般都把超時值重新設爲20分鐘。)
好處:主機A和B通信。A的ARP高速緩衝表裏保存有B的物理地址。但B的網卡突然壞了,B立即就更換了一塊,因此B的硬件地址就改變了。A還要和B繼續通信。A在其ARP緩衝表中查找到B原先的硬件地址,並使用該硬件地址向B發送數據幀。但B原先的硬件地址已經失效了。因此A無法找到主機B。但是過了一段時間,A的ARP高速緩衝表中已經刪除了B原先的硬件地址(因爲它的生存時間到了),於是A重新光播發送ARP請求分組,又找到了B。

(五)ARP命令:

1. 使用arp-a命令就可以查看本地的ARP緩存內容,所以,執行一個本地的PING命令後,ARP緩存就會存在一個目的IP的記錄了。
2. 使用arp –d來刪除ARP高速緩存中的某一項內容
3. 使用arp –s來增加高速緩衝表中的內容,這個命令需要主機名和以太網地址。新增加的內容是永久性的,除非在命令行的末尾加上關鍵字temp。
arp –s 157.55.85.212 00-aa-aa-562-c6-09
增加一個靜態的ARP表項。
4. arppub –s:使系統起着主機ARP代理功能。系統將回答與主機名對應的IP地址的ARP請求。

(六)ARP其他方面

1.交換網絡的嗅探
1>1.ARP協議並不只在發送了ARP請求才接收ARP應答
當計算機接收到ARP應答數據包的時候,就會對本地的ARP緩存進行更新,將應答中的IP和MAC地址存儲在ARP緩存中。
因此,在上面的假設網絡中,B向A發送一個自己僞造的ARP應答,而這個應答中的數據爲發送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這裏被僞造了)。當A接收到B僞造的ARP應答,就會更新本地的ARP緩存,將本地的IP-MAC對應表更換爲接收到的數據格式,由於這一切都是A的系統內核自動完成的,A可不知道被僞造了。ARP欺騙的主要用途就是進行在交換網絡中的嗅探。
2.IP地址衝突
1>如果網絡中存在相同IP地址的主機時候,就會報告出IP地址衝突的警告。
2>如何產生?
Ø 比如某主機B規定IP地址爲192.168.0.1,如果它處於開機狀態,那麼其他機器A更該IP地址爲192.168.0.1就會造成IP地址衝突。
Ø 其原理是:主機A在連接網路(或更改IP地址)的時候就會向網絡發送ARP包廣播自己的IP地址,也就是free arp(免費ARP).如果網絡中存在相同IP地址的主機B,那麼B就會通過ARP來reply該地址,當A接收到這個reply後,A就會跳出IP地址衝突的警告,當然B也會有警告。因此用ARP欺騙可以來僞造這個ARPreply,從而使目標一直遭受IP地址衝突警告的困擾。
3.阻止目標的數據包通過網關
1>比如在一個局域網內通過網管上網,那麼連接外部的計算機上的ARP緩存中就存在網管IP-MAC對應記錄
2>如果,該記錄被更改,那麼該計算機向外發送的數據包總是發送到了錯誤的網關硬件地址上,這樣,該計算機就不能上網了。
3>這裏也主要是通過ARP欺騙進行的。有兩種方法達到這樣的目的:
Ø 向目標發送僞造的ARP應答數據包,其中發送方的IP地址爲網管的地址,而MAC地址則爲一個僞造的地址。當目標接收到ARP包,那麼就更新自身的ARP緩存。如果該欺騙一直持續下去,那麼目標的網管緩存一直是一個被僞造的錯誤記錄。不過,如果使用arp –a,就知道問題所在了。
Ø 第二種方法是欺騙網管。向網管發送僞造的ARP應答數據包,其中發送方的IP地址爲目標的IP地址,而MAC地址則爲一個僞造的地址。這樣,網管上的目標ARP記錄就是一個錯誤的,網管發送給目標的數據報都是使用了錯誤的MAC地址。這種情況下,目標能夠發送數據到網管,卻不能接收到網管的任何數據。同時,目標自己查看arp –a卻看不出任何問題來。
4.通過檢測混雜模式節點
1>在混雜模式中,網卡進行包過濾不同於普通模式。本來在普通模式下,只有本地地址的數據包或者廣播(多播等)纔會被網卡提交給系統核心,否則的話,這些數據包就直接被網卡拋棄。現在,混合模式讓所有經過的數據包都傳遞給系統核心,然後被sniffer等程序利用。   
2>通過特殊設計的ARP請求可以用來在一定程度上檢測處於混雜模式的節點,比如對網絡中的每個節點都發送MAC地址爲FF-FF-FF-FF-FF-FE的ARP請求。對於網卡來說這不是一個廣播地址(FF-FF-FF-FF-FF-FF),所以處於普通模式的節點就會直接拋棄該數據包,但是多數操作系統核心都認爲這是一個廣播地址,如果有一般的sniffer程序存在,並設置網卡爲混雜模式,那麼系統核心就會作出應答,這樣就可以判斷這些節點是否存在嗅探器了。
3>可以查看,很多基於ARP的攻擊都是通過ARP欺騙實現的。至於ARP欺騙的防範,還是儘可能使用靜態的ARP。對於WIN,使用arp-s來進行靜態ARP的設置。
當然,如果能夠完全使用靜態的IP+MAC對應,就更好了,因爲靜態的ARP緩存只是相對的。當然,可以有一些方法來實現ARP欺騙的檢測。設置一個ARP的嗅探器,其中維護着一個本地網絡的IP-MAC地址的靜態對應表,查看所有經過的ARP數據,並檢查其中的IP-MAC對應關係,如果捕獲的IP-MAC對應關係和維護的靜態對應關係對應不上,那麼就表明是一個欺騙的ARP數據包了。


四、電腦本機的子網掩碼工作過程(我猜測)

網卡收到第三層數據包(僅含有IP地址)後,要對其進行幀封裝,以便通過第二層鏈路層發送出去,此時需要填充目的地址的mac地址。

    首先判斷目的IP地址是否在本子網內(通過子網掩碼判斷),如果是,則在arp緩存中查找(或查找不到時啓動arp協議詢問),如果找到則填充目的mac地址,並通過網卡發到直連的交換機上(或集線器或路由器一端),以後數據包就由交換機或路由器負責傳輸下去了,如果找不到,說明本子網內根本不存在此目的ip地址,即要發往的地址不存在,則返回超時錯誤。

    然後判斷出IP地址不在本子網內,則找到本機的默認網關的IP地址,表明應該先把該數據包發往默認網關機器上,此時利用arp協議查找默認網關IP地址對應的默認網關機器的mac地址,然後把數據包填充上默認網關機器的mac地址,然後髮網路由器,因爲此時的數據幀的目的mac地址寫的是默認網關的mac地址,交換機(或路由器)接收的數據包後,會發往默認網關機器。以後數據包就由默認網關繼續往下傳輸了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章