2012-01-02 27 views
-1

第2層(以太網層)使用ARP協議識別MAC地址。它會向整個網絡發送一個問題,詢問:「哪個MAC地址具有IP x?」。這就是它識別目標MAC地址的方式。第3層(網絡層)如何識別IP地址?

但是,第3層(IP層)如何知道IP地址?它不從傳輸層傳遞給它(第4層)。只有端口號被傳遞。

我希望我是特定的。提前致謝。

回答

1

有兩個IP地址與數據包相關聯,即發送(也稱爲源)IP和目標IP。

發送IP - 發送IP是微不足道的,它是由該分組將被髮送的網絡接口的配置參數。它通過DHCP在現代網絡中進行靜態或更典型的配置。

目標IP - 根據目標計算機是本地計算機還是遠程計算機,目標IP可能稍微複雜一些。在這種情況下,遠程意味着目標計算機與源計算機不在同一個子網中。

對於遠程目標DNS服務器用於名稱< - > IP解析。 DNS允許人類使用我們的實力,諸如www.espn.com之類的名稱,而計算機可以使用它們的強度,比特表示諸如10.5.0.1之類的IP地址。 DNS解析可以用許多不同的方式進行配置,但基本歸結爲檢查本地緩存以查看是否存在先前的解決方案,以及是否查詢一個或多個DNS服務器來解析請求。

如果目標機器是本地的,在相同的子網中,然後ARP/RARP用於MAC < - > IP轉換。在創建新的ARP請求(從而使用網絡帶寬)之前,首先檢查緩存,在這種情況下是ARP緩存。

我希望這會有所幫助。

+0

謝謝你的迴應。 但是,我的實際問題是:第3層從第4層接收的內容不包含有關IP地址(或主機名)的任何內容。那麼,它從哪裏帶來? 換句話說,是否有同時可用的7層信息的共同或全局來源,或者情況是每層只能從上面的信息中獲取信息? 我希望我很清楚 – Tony 2012-01-10 08:35:06

+0

@Tony你錯誤地理解了你的基本主張。 – EJP 2014-10-20 09:18:07

1

每個圖層都提供了一個到上述圖層的接口。通過這個接口,第4層發送第3層,即目的IP地址。 layer5(應用層)將它想要交談的目的IP地址發送到layer4,然後layer4將它發送到layer3。三層包括這在IP數據包,並將此包的二層(與其他東西,如目的地等的MAC地址一起..)

這就像當你調用一個函數給出的參數。假設由三層提供的接口是send_packet(),layer4的話來說,可能是像send_packet(srcIP, destIP)

1

但如何做3層(IP層)知道的IP地址?它不從傳輸層傳遞給它(第4層)。只有端口號被傳遞。

這是不正確的。 TCP或UDP都有明確的bind()操作,確實可以傳遞IP地址。 TCP還具有顯式的connect()操作,該操作還傳遞IP地址,以及隱含的bind()操作,其中源IP地址是從單播IP路由表中計算出來的。