TCP IP協議棧與資料報封裝

2021-05-24 02:50:50 字數 1119 閱讀 7926

兩台計算機通過tcp/ip協議通訊的過程如下所示.

傳輸層及其以下的機制由核心提供,應用層由使用者程序提供(後面將介紹如何使用socket api編寫應用程式),應用程式對通訊資料的含義進行解釋,而傳輸層及其以下處理通訊的細節,將資料從一台計算機通過一定的路徑傳送到另一台計算機。應用層資料通過協議棧發到網路上時,每層協議都要加上乙個資料首部(header),稱為封裝(encapsulation),如下圖所示.因此,從socket程式設計到底層乙太網物理包,需要經過三次封裝,分別是socket包、ip包和乙太網包.

不同的協議層對資料報有不同的稱謂,在傳輸層叫做段(segment),在網路層叫做資料報(datagram),在鏈路層叫做幀(frame).資料封裝成幀後發到傳輸介質上,到達目的主機後每層協議再剝掉相應的首部,最後將應用層資料交給應用程式處理.

上圖對應兩台計算機在同一網段中的情況,如果兩台計算機在不同的網段中,那麼資料從一台計算機到另一台計算機傳輸過程中要經過乙個或多個路由器,如下圖所示.

其實在鏈路層之下還有物理層,指的是電訊號的傳遞方式,比如現在乙太網通用的網線(雙絞線)、早期乙太網採用的的同軸電纜(現在主要用於有線電視)、光纖等都屬於物理層的概念。物理層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等。集線器(hub)是工作在物理層的網路裝置,用於雙絞線的連線和訊號中繼(將已衰減的訊號再次放大使之傳得更遠).

鏈路層有乙太網、令牌環網等標準,鏈路層負責網絡卡裝置的驅動、幀同步(就是說從網線上檢測到什麼訊號算作新幀的開始)、衝突檢測(如果檢測到衝突就自動重發)、資料差錯校驗等工作。交換機是工作在鏈路層的網路裝置,可以在不同的鏈路層網路之間**資料幀(比如十兆乙太網和百兆乙太網之間、乙太網和令牌環網之間),由於不同鏈路層的幀格式不同,交換機要將進來的資料報拆掉鏈路層首部重新封裝之後再**。

網路層的ip協議是構成internet的基礎。internet上的主機通過ip位址來標識,internet上有大量路由器負責根據ip位址選擇合適的路徑**資料報,資料報從internet上的源主機到目的主機往往要經過十多個路由器。路由器是工作在第三層的網路裝置,同時兼有交換機的功能,可以在不同的鏈路層介面之間**資料報,因此路由器需要將進來的資料報拆掉網路層和鏈路層兩層首部並重新封裝。ip協議不保證傳輸的可靠性,資料報在傳輸過程中可能丟失,可靠性可以在上層協議或應用程式中提供支援.

TCP IP協議棧與資料報封裝

tcp ip 網路協議棧分為應用層 傳輸層 transport 網路層 network 和鏈路層 link 四層。如下圖所示 該圖出自 tcpip 圖 36.1.tcp ip協議棧 兩台計算機通過 tcp ip 協議通訊的過程如下所示 該圖出自 tcpip 圖 36.2.tcp ip通訊過程 傳輸層...

TCP IP協議棧與資料報封裝

另附 linux c程式設計一站式學習 圖 36.1.tcp ip協議棧 兩台計算機通過tcp ip協議通訊的過程如下所示 該圖出自 tcpip 圖 36.2.tcp ip通訊過程 傳輸層及其以下的機制由核心提供,應用層由使用者程序提供 後面將介紹如何使用socket api編寫應用程式 應用程式對...

TCP IP協議棧與資料報封裝(1)

tcp ip 網路協議棧分為應用層 傳輸層 transport 網路層 network 和鏈路層 link 四層。如下圖所示。兩台計算機通過 tcp ip 協議通訊的過程如下所示。傳輸層及其以下的機制由核心提供,應用層由使用者程序提供 後面將介紹如何使用 socket api 編寫應用程式 應用程式...