Linux網絡編程-TCP/IP基本框架

TCP/IP層次架構

網絡能在不同的機器和操作系統之間通信需要依賴一些列的規範的協議,例如:ARP,RARP,TCP,UDP,IP,IGMP,ICMP。這些協議是在不同的層次進行開發和工作,每一層負責完成一定的通信功能,而且層與層之間有相關接口,這樣組合成一個完整的網絡傳輸系統
<br />
下圖是TCP/IP五層網絡模型

Linux網絡編程-TCP/IP基本框架
<br />

結合上圖,網際的數據傳輸需要經過如下步驟:
<br />
1 應用程序把數據傳輸到應用程序的數據發送緩衝區,並設置好下一層的參數,等待發送,FTP(文件傳輸協議),HTTP(超文本傳輸協議),SMTP(簡單郵件傳輸協議),SNMP(簡單網絡管理協議)。
2 數據進入傳輸層,在這裏傳輸層負責兩臺主句上端到端的通信,主要依靠TCP和UDP完成。他們把應用層緩衝區的待發送數據接收後,進行數據分組,打包,標識並傳輸到下一層。TCP還需要負責數據傳輸成功的確定等可靠性工作。
3 當數據進入網絡層的範疇,這裏會處理數據分組在網絡中的活動,比如:分組,路由。這一層的協議主要有:IP協議(網際協議),ICMP(Internet控制報文協議),IGMP(Internet組管理協議)。數據傳輸的目的地是根據傳輸層分組中的數據決定的。
4 數據最終會通過物理層的介質(光纖,電磁波)進行傳輸。
5 在接收方是相反的過程,數據從最底層一直到應用層還原用戶可以識別的信息。
<br />
數據傳輸過程可以用下圖簡單描述(忽略了鏈路層和物理層)
<br />
Linux網絡編程-TCP/IP基本框架

其實用戶操作主要是在頂層進行,下面四層的工作由內核完成。
<br/>

數據的封裝與分用

1. 數據封裝:
用戶數據從應用層傳輸到鏈路層,每一層都要被該層的協議進行一定的封裝,標識和改造,就是在數據頭部或尾部增加一些信息。傳輸層tcp封裝過後傳給ip的數據單元叫TCP段,IP層的叫做IP數據報。
<br/>
Linux網絡編程-TCP/IP基本框架
<br/>
UDP和TCP數據基本一致,只是他們的頭部長度不同,名稱也不同。很多應用程序都可以使用TCP和UDP來傳送數據。傳輸層協議在生成數據段首部時要加入該應用程序的標識符(16位的端口號來標識)。
<br/>
IP頭部要說明數據傳輸的目的地以及上一層協議的類型標識,方便解包。
</br>
2.數據分用:
在接收端收到數據的時候,經過拆分的數據要重新組合,並去掉各層加上的頭部信息,把數據還原。
<br/>
Linux網絡編程-TCP/IP基本框架
.

客戶-服務器模型

1.併發型交互
一個服務器可以同時處理多個客戶端的請求

2.重複型交互
一個服務器統一時間只能處理一個客戶端的請求,只有處理完後才能處理下一個請求

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