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