2016-02-09 41 views
1

我想了解HTTP請求在主機與服務器之間通過的數據包和硬件的過程。客戶端到服務器的HTTP請求。 TCP/IP堆棧之旅

首先,將HTTP數據放入TCP數據包(第4層)。然後將這個數據包壓縮成IP數據包(第3層),由NIC(第2層)構成並通過物理介質(電纜,光纖等)傳輸(第1層)到最近的路由器。

問題1.是否NIC(一個連接到客戶端的局域網中,由於路由器具有兩個NIC)在路由器重構幀並將該有效載荷(所以IP包)到路由器的處理器?這似乎是合乎邏輯的,但我無法在網上找到明確表示的地方。

路由器然後有一個IP包,並根據其路由表通過另一個NIC將其轉發,該NIC將其再次構築並傳輸它。

一跳,服務器的NIC最終收到&重建幀並將它們傳遞給...(請參閱問題2)...,它解開TCP包並以某種方式讀取HTTP信息並且該操作使用所給出的參數來執行。

問題2:內核?它是否負責在計算機內部進行IP打包/解包?

問題3:如何負責TCP和「理解」計算機中的HTTP?它是什麼部分的操作系統?我猜這個也是負責理解HTTP的。

我知道還有很多更多細節,但總體問題太長了。我也很高興看到有關鏈接深入到這個問題。

回答

2

問題1.在路由器中的NIC(連接到客戶端的LAN,因爲路由器有兩個NIC)是否重構幀並將有效載荷(因此是IP包)傳遞到路由器的處理器?這似乎是合乎邏輯的,但我無法在網上找到明確表示的地方。

我不知道你在這裏的'reconstruct'是什麼意思。 NIC 接收到幀,並通過DMA傳遞給CPU。

然後路由器有一個IP包,並根據其路由表通過另一個NIC將其轉發,該NIC將其再次構築並傳輸它。

這個詞是'包',而不是'包'。否則正確。

逐跳,服務器的網卡終於收到&重建幀

同樣,我不知道什麼是「重建」的意思。幀被接收。

並將它們傳遞給...(請參閱問題2)...,它解包TCP包並以某種方式讀取HTTP信息,並使用給定的參數執行操作。

問題2:內核?它是否負責在計算機內部進行IP打包/解包?

到網絡堆棧的IP層,它將它傳遞給TCP層,最終將數據傳遞給服務器應用程序。

問題3:如何負責TCP和「理解」計算機中的HTTP?

TCP層負責理解TCP。 HTTP是一種應用層協議,可以被應用程序理解。

什麼是操作系統的一部分?我猜這個也是負責理解HTTP的。

沒有'它'。這裏有兩個單獨的問題和兩個單獨的答案:參見上文。

+0

感謝您的回答EJP。對於「重構」,我的意思是NIC只接收離散信號,並通過使用標誌字節(加上位填充)來分離不同的幀,以知道標題和預告片開始/結束的位置,從而區分一幀和另一幀。 –

+0

這是由'接收'一詞充分描述。你用同樣的東西用兩個詞。 – EJP

+0

我明白'接收',因爲NIC識別有信號。這並不意味着NIC能夠重建幀,因爲真正損壞的信號可能不會被正確識別。你怎麼看?這兩個程序有不同的符號嗎? –

相關問題