http://blog.csdn.net/chenhanzhun/article/details/41408745
2014
TCP/IP 分層
分層結構如下:
- 應用層:負責處理特定的應用程序細節。包括:Telnet (遠程登錄)、FTP (文件傳輸協(xié)議)、SMTP (簡(jiǎn)單郵件傳輸協(xié)議)、SNTP (簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議);
- 傳輸層:主要功能為兩臺主機上的應用程序提供端到端的通信,通過(guò)端口號識別兩臺主機上相對應程序之間進(jìn)行通信。主要包括:TCP (傳輸控制協(xié)議)、UDP (用戶(hù)數據報協(xié)議);
- TCP 協(xié)議:是一種面向連接的傳輸層協(xié)議,確保兩臺主機提供高可靠性的數據通信。它的任務(wù)是把來(lái)自應用程序的數據分成合適的小塊交給下面的網(wǎng)絡(luò )層,確認接收到數據的分組。為數據塊設置超時(shí)時(shí)鐘,一旦超過(guò)該時(shí)間就重新發(fā)送數據;
- UDP 協(xié)議:是一種面向無(wú)連接的傳輸層協(xié)議,為應用程序發(fā)送和接收數據報,只是將數據報的分組從一臺主機發(fā)送到另一臺主機,但并不保證數據報能夠到達另一端,任何必須的可靠性都由應用程序提供。UDP 協(xié)議常用于分組數據較少或多播、廣播通信以及視頻通信等多媒體領(lǐng)域;
- 網(wǎng)絡(luò )層:處理分組在網(wǎng)絡(luò )中的活動(dòng),例如分組的選路。主要包括:IP 協(xié)議(網(wǎng)際協(xié)議)、ICMP 協(xié)議(Internet 互聯(lián)網(wǎng)控制報文協(xié)議)、IGMP 協(xié)議(Internet 組管理協(xié)議);
- IP 協(xié)議:負責基于 IP 地址轉發(fā)數據包,不具有重發(fā)機制,是一種不可靠、無(wú)連接的傳輸協(xié)議,整個(gè)互聯(lián)網(wǎng)能夠通過(guò)把 IP 地址的作為主機標識,跨越網(wǎng)絡(luò )傳送和接收數據包;
- ICMP 協(xié)議:是 IP 協(xié)議的附屬協(xié)議,IP 層用它來(lái)與其他主機或路由器交換錯誤報文或其他重要信息。IP 數據包在發(fā)送過(guò)程中發(fā)生異常導致無(wú)法到達目的端,則使用 ICMP 協(xié)議給發(fā)送端發(fā)送一個(gè)異常消息通知,該協(xié)議也可用來(lái)檢查網(wǎng)絡(luò )的健康狀態(tài);
- IGMP 協(xié)議:它用來(lái)把一個(gè) UDP 數據報多播到多個(gè)主機;
- 鏈路層:處理與傳輸媒介相關(guān)的物理接口細節。主要包括:操作系統的設備驅動(dòng)程序、計算機中對應的網(wǎng)絡(luò )接口卡;
互聯(lián)網(wǎng)的地址
按 IP 地址格式分類(lèi)
互聯(lián)網(wǎng)上的每個(gè)接口必須有一個(gè)唯一的 IP 地址, IP 地址長(cháng)度 32 bit,,即 4 個(gè)字節,每個(gè) IP 地址都由 標識位、網(wǎng)絡(luò )號 和 主機號三部分組成。32 位二進(jìn)制數地址通常寫(xiě)成四個(gè)十進(jìn)制數, 每個(gè)十進(jìn)制整數對應一個(gè)字節,這就是“點(diǎn)分十進(jìn)制表示法”。 第一個(gè)十進(jìn)制整數即可區分 IP 地址類(lèi)型:0 ~ 127 A類(lèi),128 ~ 191 B類(lèi),192 ~ 223 C類(lèi), 224 ~ 239 D類(lèi), 240 ~ 225 E類(lèi);下面是五類(lèi)不同的 IP 地址的結構:
A類(lèi)地址:
- 十進(jìn)制取值范圍 :0.0.0.0 ~ 127.255.255.255;
- 二進(jìn)制取值范圍 :0(標識位) 0000000(網(wǎng)絡(luò )號) 00000000 00000000 00000000(主機號) ~ 0(標識位) 1111111(網(wǎng)絡(luò )號) 11111111 11111111 11111111(主機號);
B類(lèi)地址:- 十進(jìn)制取值范圍 : 128.0.0.0 ~ 191.255.255.255;
- 二進(jìn)制取值范圍 :10(標識位) 000000 00000000(網(wǎng)絡(luò )號) 00000000 00000000(主機號) ~ 10(標識位) 111111(網(wǎng)絡(luò )號) 11111111 11111111 11111111(主機號);
C類(lèi)地址: - 十進(jìn)制取值范圍 : 192.0.0.0 ~ 223.255.255.255;
- 二進(jìn)制取值范圍 :110(標識位) 00000 00000000 00000000(網(wǎng)絡(luò )號) 00000000(主機號) ~ 110(標識位) 11111 11111111 11111111(網(wǎng)絡(luò )號) 11111111(主機號);
D類(lèi)地址 : - 十進(jìn)制取值范圍 : 224.0.0.0 ~ 239.255.255.255;
- 二進(jìn)制取值范圍 : 1110(標識位) 0000 00000000 00000000 00000000 00000000(多播組號) ~ 1110(標識位) 1111 11111111 11111111 11111111(多播組號);
E類(lèi)地址:- 十進(jìn)制取值范圍 :240.0.0.0 ~ 255.255.255.255;
- 二進(jìn)制取值范圍 :11110(標識位) 000 00000000 00000000 00000000(保留位) ~ 11110(標識位) 111 11111111 11111111 11111111(保留位);
按照目的地址分類(lèi)
IP 地址按目的地址分類(lèi):
- 單播地址:目的端為單個(gè)主機;
- 廣播地址:目的端是給定網(wǎng)絡(luò )的所有主機;
- 多播地址:目的端是同一組的所有主機;
域名系統
盡管可以通過(guò) IP 地址識別主機上的網(wǎng)絡(luò )接口,進(jìn)而訪(fǎng)問(wèn)主機,但是我們習慣于使用便于記憶的主機名。域名系統(DNS)可以提供 IP 地址和主機名之間的映射信息,它是一個(gè)分布的數據庫。所以在應用程序中可以調用系統函數實(shí)現 IP 地址和主機名之間的轉換。
封裝
當應用程序使用 TCP 傳輸數據時(shí),數據被送入到協(xié)議棧中,然后逐個(gè)通過(guò)每一層直到被當作一串比特流送入網(wǎng)絡(luò )。其中每一層都要增加一些首部信息,因為方便根據這些首部信息確認數據屬于哪一層或哪個(gè)協(xié)議,下面是應用程序使用 TCP 傳輸數據的過(guò)程:
分用
分用: 目的主機在鏈路層接收到以太網(wǎng)數據幀時(shí), 該數據就開(kāi)始從協(xié)議棧中由底向上逐層上升,在每層都去掉該層的首部信息,并校驗首部信息是否正確,該過(guò)程就是分用;
發(fā)送數據:從應用層到鏈路層逐層加數據包是封裝;接收數據:從鏈路層到應用層逐層解包是分用;
端口號
端口號是在運輸層配合 TCP 或 UDP 協(xié)議使用的,使 TCP 或 UDP 能識別主機應用程序,脫離這兩個(gè)協(xié)議端口號將毫無(wú)用處;
數據相關(guān)概念
- 包 :TCP / IP 協(xié)議中,每一層的數據都可以成為包;
- 幀 (以太網(wǎng)數據幀):鏈路層包的單位;
- 數據包 (IP數據報):網(wǎng)絡(luò )層以上包的單位,IP 給鏈路層的數據包稱(chēng)為 IP 數據報 (IP datagram);
- 段 (TCP 報文段) : TCP 數據包,TCP 傳遞給 IP 的數據包成為 TCP 報文段 (TCP segment);
- 消息: 應用層的數據包;
參考資料:
《TCP/IP 詳解》
《圖解 TCP/IP》
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。