TCP/IP四層模型及各層協議首部詳述


1. OSI七層和TCP/IP四層的關系

1.1 OSI引入了服務、接口、協議、分層的概念,TCP/IP借鑒了OSI的這些概念建立TCP/IP模型。

1.2 OSI先有模型,后有協議,先有標准,后進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的OSI模型。

1.3 OSI是一種理論下的模型,而TCP/IP已被廣泛使用,成為網絡互聯事實上的標准。

TCP:transmission control protocol 傳輸控制協議

UDP:user data protocol 用戶數據報協議

OSI七層網絡模型 TCP/IP四層概念模型 對應網絡協議
應用層(Application) 應用層 HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示層(Presentation) Telnet, Rlogin, SNMP, Gopher
會話層(Session) SMTP, DNS
傳輸層(Transport) 傳輸層 TCP, UDP
網絡層(Network) 網絡層 IP, ICMP, ARP, RARP, AKP, UUCP
數據鏈路層(Data Link) 數據鏈路層 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理層(Physical) IEEE 802.1A, IEEE 802.2到IEEE 802.11

 

 

 

 

 

 

 

2. OSI七層協議模型

應用層協議需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

3. TCP/IP四層模型

3.1 應用層:對應OSI中的應用層、表示層、會話層

3.2 物理鏈路層:對應OSI中的數據鏈路層、物理層(也有叫網絡接口層)

 

3.3 數據包說明:

IP層傳輸單位是IP分組,屬於點到點的傳輸;TCP層傳輸單位是TCP段,屬於端到端的傳輸

 

 

UPD首部
UPD首部格式如下:

UDP 是無連接的,即發送數據之前不需要建立連接。

UDP 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制。

UDP 是面向報文的。UDP 沒有擁塞控制,很適合多媒體通信的要求。

UDP 支持一對一、一對多、多對一和多對多的交互通信。

UDP 的首部開銷小,只有 8 個字節


端口號:用來表示發送和接受進程。由於 I P層已經把I P數據報分配給T C P或U D P(根據I P首部中協議字段值),因此T C P端口號由T C P來查看,而 U D P端口號由UDP來查看。T C P端口號與UDP端口號是相互獨立的。

長度:UDP長度字段指的是UDP首部和UDP數據的字節長度。該字段的最小值為 8字節(發送一份0字節的UDP數據報是 O K)。

檢驗和:UDP檢驗和是一個端到端的檢驗和。它由發送端計算,然后由接收端驗證。其目的是為了發現UDP首部和數據在發送端到接收端之間發生的任何改動


TCP報文段首部
TCP報文段首部的前20個字節是固定的,后面的字節是根據需要增加的。首部格式如下:

TCP 提供可靠交付的服務,保證數據無差錯、不丟失、不重復、按序到達。

TCP 提供全雙工通信。

TCP雖然是面向字節流的,但TCP傳送的數據單元卻是報文段。一個TCP 報文段分為首部和數據兩部分

1、第一個4字節: 
(1)源端口,16位;發送數據的源進程端口
(2)目的端口,16位;接收數據的進程端口
2、第二個4字節與第三個4字節 
(1)序號,32位;代表當前TCP數據段第一個字節占整個字節流的相對位置;
(2)確認號,32位;代表接收端希望接收的數據序號,為上次接收到數據報的序號+1,當ACK標志位為1時才生效。
3、第四個4字節: 
(1)數據偏移,4位;實際代表TCP首部長度,最大為60字節。
(2)6個標志位,每個標志位1位; 
SYN,為同步標志,用於數據同步; 
ACK,為確認序號,ACK=1時確認號才有效; 
FIN,為結束序號,用於發送端提出斷開連接; 
URG,為緊急序號,URG=1是緊急指針有效; 
PSH,指示接收方立即將數據提交給應用層,而不是等待緩沖區滿; 
RST,重置連接。
(3)窗口值,16位;標識接收方可接受的數據字節數。詳解可參看:http://www.cnblogs.com/woaiyy/p/3554182.html
4、第五個4字節 
(1)校驗和,16位;用於檢驗數據完整性。
(2)緊急指針,16位;只有當URG標識位為1時,緊急指針才有效。緊急指針的值與序號的相加值為緊急數據的最后一個字節位置。用於發送緊急數據。
IP報文
IP報文是在網絡層傳輸的數據單元,也叫IP數據報。IP報文格式如下圖

1、第一個4字節(也就是第一行):

(1)版本號(Version),4位;用於標識IP協議版本,IPv4是0100,IPv6是0110,也就是二進制的4和6。
(2)首部長度(Internet Header Length),4位;用於標識首部的長度,單位為4字節,所以首部長度最大值為:(2^4 - 1) * 4 = 60字節,但一般只推薦使用20字節的固定長度。
(3)服務類型(Type Of Service),8位;用於標識IP包的優先級,但現在並未使用。
(4)總長度(Total Length),16位;標識IP數據報的總長度,最大為:2^16 -1 = 65535字節。
2、第二個四字節:

(1)標識(Identification),16位;用於標識IP數據報,如果因為數據鏈路層幀數據段長度限制(也就是MTU,支持的最大傳輸單元),IP數據報需要進行分片發送,則每個分片的IP數據報標識都是一致的。
(2)標志(Flag),3位,但目前只有2位有意義;最低位為MF,MF=1代表后面還有分片的數據報,MF=0代表當前數據報已是最后的數據報。次低位為DF,DF=1代表不能分片,DF=0代表可以分片。
(3)片偏移(Fragment Offset),13位;代表某個分片在原始數據中的相對位置。
3、第三個四字節:

(1)生存時間(TTL),8位;以前代表IP數據報最大的生存時間,現在標識IP數據報可以經過的路由器數。
(2)協議(Protocol),8位;代表上層傳輸層協議的類型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
(3)校驗和(Header Checksum),16位;用於驗證數據完整性,計算方法為,首先將校驗和位置零,然后將每16位二進制反碼求和即為校驗和,最后寫入校驗和位置。
4、第四個四字節:源IP地址

5、第五個四字節:目的IP地址


以太網的幀格式如下所示:

在圖中,幀末尾就是CRC校驗碼。

此外,對其他字段解釋如下:

字段  Meaning
目的地址  MAC地址
源地址 MAC地址
類型  三種值,分別對應IP、ARP、RARP

 


 

最常用的 MAC 幀是以太網V2的格式

注:

    1. 以太網幀中的數據長度規定最小46字節,最大1500字節。ARP和RARP數據包的長度不夠46字節,要在后面補填充位。最大值1500稱為以太網的最⼤大傳輸單元MTU,不同的網絡類型有不同的MTU。如果一個數據包從以太網路由到撥號鏈路上,數據包長度大於撥號鏈路的MTU了,則需要對數據包進行分片(fragmentation)。
    2. ifconfig命令的輸出中也有“MTU:1500”。注 意,MTU這 個概念指數據幀中有效載荷的最大長度,不包括幀首部的長度。
    3. MAC地址是指網卡的硬件地址,長度是48位。是在網卡出廠時固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。

————————————————
版權聲明:本文為CSDN博主「Unix探索之旅」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/sty124578/article/details/79085608

網絡設備:
交換機:負責組建局域網,看的是MAC地址。
路由器:負責組建廣域網,看的是IP地址。

傳輸介質:
常用的兩種傳輸介質是雙絞線和光纖。

OSI七層模型(由於七層太過於嚴格,所以並沒有應用在計算機中,而是基於 其衍生了一個TCP/IP四層模型,被廣大操作系統所應用):

7,應用層:網絡服務與最終用戶的一個接口。
6,表示層:數據的表示安全壓縮。
5,會話層:建立,管理,中止會話。
4,傳輸層:定義傳輸數據的協議端口號。
3,網絡層:進行邏輯地址追尋,實現不同網絡之間的路徑選擇。
2,數據鏈路層:建立邏輯鏈接,進行硬件地址尋址。
1,物理層:建立,維護,斷開物理連接。

TCP/IP四層模型:
4,應用層:負責處理特定的應用程序細節。
3,傳輸層:只要為兩台主機上的應用程序提供端到端的通信。
2,網絡層:處理分組在網絡中的活動。
1,網絡接口層:建立,維護,斷開物理連接。

傳輸層協議:
TCP和UDP是兩種最為著名的傳輸層協議,二者都使用IP作為網絡層的協議。

TCP:傳輸控制協議,面向連接的協議。(適用於一對一傳輸)
UDP:用戶數據報協議,是一種無連接的協議。(適用於一次傳輸少量數據,傳輸效率高,延遲小,可以一對一,一對多,多對一和多對多的交互通信)

TCP與UDP區別:
1,TCP面向連接(如打電話要先撥號建立連接),UDP是無連接的,即發送數據之前不需要建立連接。
2,TCP提供可靠的服務,無差錯,無丟失,不重復,且按序到達;UDP盡最大努力交付,不保證可靠交付。
3,UDP具有較好的實時性,工作效率比TCP高,適用於對高速傳輸和實時性有較高的通信和廣播通信。
4,TCP只支持一對一通信。UDP支持一對一,一對多,多對一,多對多的交互通信。
5,TCP對系統資源要求較多,UCP對系統資源要求較少。

IP地址:

現有的互聯網是在IPv4協議的基礎上運行的,采用32位地址長度,IPv4定義的地址空間將被耗盡。IPv6是下一版本的互聯網協議,采用128位地址長度。幾乎可以不受限制的提供地址。

IP地址是指互聯網協議地址。是IP協議提供的一種統一的地址格式,它為互聯網上的每一個網絡和每一台主機分配一個邏輯地址,以此來屏蔽物理地址的差異。

私有地址
A類 :10.0.0.0–10.255.255.255
B類 :172.16.0.0–172.31.255.255
C類 :192.168.0.0–192.168.255.255
————————————————
版權聲明:本文為CSDN博主「sanda1017」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/sanda1017/article/details/90680570


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM