Linux網路程式設計 TCP IP模型

2021-09-23 17:00:14 字數 1718 閱讀 2208

一 tcp/ip四層模型

tcp/ip是一組用於實現網路互連的通訊協議。internet網路體系結構以tcp/ip為核心。基於tcp/ip的參考模型將協議分成四個層次,它們分別是:網路訪問層、網際互聯層、傳輸層(主機到主機)、和應用層。

1. 應用層

應用層對應於osi參考模型的高層,為使用者提供所需要的各種服務,例如:ftp、telnet、dns、smtp等.

2. 傳輸層

傳輸層對應於osi參考模型的傳輸層,為應用層實體提供端到端的通訊功能,保證了資料報的順序傳送及資料的完整性。該層定義了兩個主要的協議:傳輸控制協議(tcp)和使用者資料報協議(udp).

tcp協議提供的是一種可靠的、通過「三次握手」來連線的資料傳輸服務;而udp協議提供的則是不保證可靠的(並不是不可靠)、無連線的資料傳輸服務.

3. 網際互聯層

網際互聯層對應於osi參考模型的網路層,主要解決主機到主機的通訊問題。它所包含的協議設計資料報在整個網路上的邏輯傳輸。注重重新賦予主機乙個ip位址來完成對主機的定址,它還負責資料報在多種網路中的路由。該層有三個主要協議:網際協議(ip)、網際網路組管理協議(igmp)和網際網路控制報文協議(icmp)。

ip協議是網際互聯層最重要的協議,它提供的是乙個可靠、無連線的資料報傳遞服務。

4. 網路接入層(即主機-網路層)

網路接入層與osi參考模型中的物理層和資料鏈路層相對應。它負責監視資料在主機和網路之間的交換。事實上,tcp/ip本身並未定義該層的協議,而由參與互連的各網路使用自己的物理層和資料鏈路層協議,然後與tcp/ip的網路接入層進行連線。位址解析協議(arp)工作在此層,即osi參考模型的資料鏈路層。

二 tcp/ip與osi的異同

共同點(1)osi參考模型和tcp/ip參考模型都採用了層次結構的概念。

(2)都能夠提供面向連線和無連線兩種通訊服務機制。

不同點(1)osi採用的七層模型,而tcp/ip是四層結構。

(2)tcp/ip參考模型的網路介面層實際上並沒有真正的定義,只是一些概念性的描述。而osi參考模型不僅分了兩層,而且每一層的功能都很詳盡,甚至在資料鏈路層又分出乙個介質訪問子層,專門解決區域網的共享介質問題。

(3)osi模型是在協議開發前設計的,具有通用性。tcp/ip是先有協議集然後建立模型,不適用於非tcp/ip網路。

(4)osi參考模型與tcp/ip參考模型的傳輸層功能基本相似,都是負責為使用者提供真正的端對端的通訊服務,也對高層遮蔽了底層網路的實現細節。所不同的是tcp/ip參考模型的傳輸層是建立在網路互聯層基礎之上的,而網路互聯層只提供無連線的網路服務,所以面向連線的功能完全在tcp協議中實現,當然tcp/ip的傳輸層還提供無連線的服務,如udp;相反osi參考模型的傳輸層是建立在網路層基礎之上的,網路層既提供面向連線的服務,又提供無連線的服務,但傳輸層只提供面向連線的服務。

(5)osi參考模型的抽象能力高,適合與描述各種網路;而tcp/ip是先有了協議,才制定tcp/ip模型的。

(6)osi參考模型的概念劃分清晰,但過於複雜;而tcp/ip參考模型在服務、介面和協議的 區別上不清楚,功能描述和實現細節混在一起。

(7)tcp/ip參考模型的網路介面層並不是真正的一層;osi參考模型的缺點是層次過多,劃分意義不大但增加了複雜性。

(8)osi參考模型雖然被看好,由於沒把握好時機,技術不成熟,實現困難;相反,tcp/ip參考模型雖然有許多不盡人意的地方,但還是比較成功的。

TCP IP網路程式設計

tcp ip 是供已連線網際網路的計算機進行通訊的通訊協議。tcp ip 定義了裝置 並非只有計算機 如何連入網際網路,以及資料如何在它們之間傳輸的標準。ip internet protocol 網際網路協議。從這個名稱我們就可以知道ip協議的重要性。在現實生活中,我們進行貨物運輸時都是把貨物包裝成...

TCP IP網路程式設計

套接字 傳輸網路資料的軟體裝置。tcp的特點 可靠的 按序傳遞的 基於位元組的面向連線的資料傳輸方的協議。傳輸過程中資料不會消失,按序傳輸資料,傳輸的資料不存在資料邊界。udp的特點 不可靠的 無序的 以資料高速傳輸為目的的協議。強調快速傳輸而非傳輸順序,傳輸的資料可能丟失也可能損壞,傳輸的資料有資...

網路程式設計學習 tcp ip程式設計

tcp 不記錄訊息邊界 udp 記錄訊息邊界 用到的結構體 struct sockaddr un 例子 struct sockaddr un serveraddr serveraddr.sun family af unix server socket strcpy serveraddr.sun pa...