第2章 TCP-IP的工做方式
TCP/IP協議系統
爲了實現TCP的功能,TCP/IP的建立者使用了模塊化的設計。TCP/IP協議系統被分爲不一樣的組件,每一個組件分別負責通訊過程的一個步驟。這種模塊化的好處在於讓廠商方便地根據特定硬件和操做系統對協議軟件進行修改。這樣廠商在使用光纖網絡時就沒必要從新構建一個全新的TCP/IP,只要修改其中的某一層就好。編程
TCP/IP模型
graph TD
應用層-->傳輸層
傳輸層-->網際層
網際層-->網絡訪問層
- 網絡訪問層:提供了與物理網絡鏈接的接口。針對傳輸介質設置數據的格式,根據硬件的物理地址實現數據的尋址,對數據在物理網絡中的傳遞提供錯誤控制
- 網際層:提供獨立於硬件的邏輯尋址,從而讓數據可以在具備不一樣物理結構的子網之間傳遞。提供路由功能來下降流量,支持網間的數據傳遞(網間是指多個局域網互相鏈接而造成的較大網絡,好比大公司裏的網絡或Internet)。實現物理地址與邏輯地址的轉換。
- 傳輸層:爲網絡提供了流量控制、錯誤控制和確認服務。充當網絡應用程序的接口
- 應用層:爲網絡排錯、文件傳輸、遠程控制和Internet操做提供了應用程序,還支持api,從而使得針對特定操做系統編寫的程序可以訪問網絡
當TCP/IP協議軟件準備經過網絡傳遞數據時,發送端計算機上的每一層協議都在數據上添加層信息,對應於接收端計算機上相應的層。例如:發送端計算機的網際層會向數據添加報頭信息,這個過程有時也被稱爲封裝。在接收端,當數據在協議棧裏傳遞時,這些報頭信息被逐步去除。api
OSI模型
出現原因:網絡業界針對網絡協議體系有一個標準的七層模型,稱爲「開放系統互連(OSI)」模型,這是ISO(國際標準化組織)爲了標準化網絡協議系統所作出的規範,目的在於提升網絡互聯性,而且方便軟件開發人員以一種開放的方式來使用協議標準。網絡
OSI把網絡訪問層的功能劃分爲數據鏈路層和物理層,將應用層劃分爲應用層、表示層、會話層。tcp
graph TD
應用層-->表示層
表示層-->會話層
會話層-->傳輸層
傳輸層-->網絡層
網絡層-->數據鏈路層
數據鏈路層-->物理層
各層級的具體做用:模塊化
- 物理層: 把數據轉換爲傳輸介質上的電子流或模擬脈衝,而且監視數據的傳輸
- 數據鏈路層:提供與網絡適配器相連的接口,維護子網的邏輯連接
- 網絡層:支持邏輯尋址與路由選擇
- 傳輸層:爲網絡提供錯誤控制和數據流控制
- 會話層:在計算機的通訊應用程序之間創建會話
- 表示層:把數據轉換爲標準格式,管理數據加密與壓縮。
- 應用層:爲應用程序提供網絡接口,支持文件傳輸、通訊等功能的網絡應用
數據包
在數據發送過程當中,其流程是從堆棧的上到下,每一層都把相關信息(稱爲報頭)捆綁到實際的數據上。包含報頭信息和數據的數據包就做爲下一層的數據,再次被添加報頭信息和從新打包。接受過程是偏偏相反的,在數據從下到上通過協議棧的過程當中,每一層都解開相應的報頭,好比:接收端計算機上的網際層會使用網際層的頭信息,傳輸層會使用傳輸層的報頭信息。加密
數據包在每一層具備不一樣的形式和名稱。操作系統
- 在應用層生成的數據包稱爲消息。
- 在傳輸層生成的數據包封裝了應用層的消息,若是它來自於傳輸層的TCP協議,就稱爲分段;若是來自於傳輸層的UDP協議,就被稱爲數據報
- 網際層的數據包封裝了傳輸層的片斷,被稱爲數據報
- 網絡訪問層的數據包封裝了數據報,被稱爲幀。幀被訪問層的最低子層轉化爲比特流
基本的TCP/IP協議聯網系統
- 數據從工做於應用層的協議、網絡服務或應用編程接口經過TCP或UDP端口傳遞到兩個傳輸層協議(TCP或UDP)中的一個。程序能夠根據須要經過TCP或UDP訪問網絡
- TCP是面向鏈接的協議。面向鏈接的協議提供更復雜的流量控制和錯誤控制。TCP可以確保數據的發送質量,比UDP更可靠,但因爲須要進行額外的錯誤檢測和流量控制,所以比UDP的速度慢
- UDP是個無鏈接的協議,比TCP快,可是不可靠,它把錯誤控制的責任推給了應用。
- 數據分段傳遞到網際層,IP協議在此提供邏輯尋址信息,而且把數據封裝爲數據報。
- IP數據報進入網絡訪問層,傳遞到與物理網絡相鏈接的軟件組件。網絡訪問層建立一個或多個數據幀,從而進去物理網絡。在像以太網這樣的局域網系統中,幀可能包含得到的物理地址信息。而這些是由網際層的ARP維護
- 數據幀被轉化爲比特流,經過網絡介質進行傳輸