TCP/IP四层模型及各层协议首部详述(包含IOS7层)
1. OSI七層和TCP/IP四層的關(guān)系
1.1?OSI引入了服務(wù)、接口、協(xié)議、分層的概念,TCP/IP借鑒了OSI的這些概念建立TCP/IP模型。
1.2?OSI先有模型,后有協(xié)議,先有標(biāo)準(zhǔn),后進(jìn)行實(shí)踐;而TCP/IP則相反,先有協(xié)議和應(yīng)用再提出了模型,且是參照的OSI模型。
1.3?OSI是一種理論下的模型,而TCP/IP已被廣泛使用,成為網(wǎng)絡(luò)互聯(lián)事實(shí)上的標(biāo)準(zhǔn)。
TCP:transmission control protocol 傳輸控制協(xié)議
UDP:user data protocol 用戶(hù)數(shù)據(jù)報(bào)協(xié)議
2. OSI七層協(xié)議模型
應(yīng)用層協(xié)議需要掌握的是: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 應(yīng)用層:對(duì)應(yīng)OSI中的應(yīng)用層、表示層、會(huì)話(huà)層
3.2 物理鏈路層:對(duì)應(yīng)OSI中的數(shù)據(jù)鏈路層、物理層(也有叫網(wǎng)絡(luò)接口層)
3.3 數(shù)據(jù)包說(shuō)明:
IP層傳輸單位是IP分組,屬于點(diǎn)到點(diǎn)的傳輸;TCP層傳輸單位是TCP段,屬于端到端的傳輸
UPD首部
UPD首部格式如下:
UDP 是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接。
UDP 使用盡最大努力交付,即不保證可靠交付,同時(shí)也不使用擁塞控制。
UDP 是面向報(bào)文的。UDP 沒(méi)有擁塞控制,很適合多媒體通信的要求。
UDP 支持一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多的交互通信。
UDP 的首部開(kāi)銷(xiāo)小,只有?8 個(gè)字節(jié)
- 端口號(hào):用來(lái)表示發(fā)送和接受進(jìn)程。由于 I P層已經(jīng)把I P數(shù)據(jù)報(bào)分配給T C P或U D P(根據(jù)I P首部中協(xié)議字段值),因此T C P端口號(hào)由T C P來(lái)查看,而 U D P端口號(hào)由UDP來(lái)查看。T C P端口號(hào)與UDP端口號(hào)是相互獨(dú)立的。
- 長(zhǎng)度:UDP長(zhǎng)度字段指的是UDP首部和UDP數(shù)據(jù)的字節(jié)長(zhǎng)度。該字段的最小值為 8字節(jié)(發(fā)送一份0字節(jié)的UDP數(shù)據(jù)報(bào)是 O K)。
- 檢驗(yàn)和:UDP檢驗(yàn)和是一個(gè)端到端的檢驗(yàn)和。它由發(fā)送端計(jì)算,然后由接收端驗(yàn)證。其目的是為了發(fā)現(xiàn)UDP首部和數(shù)據(jù)在發(fā)送端到接收端之間發(fā)生的任何改動(dòng)
TCP報(bào)文段首部
TCP報(bào)文段首部的前20個(gè)字節(jié)是固定的,后面的字節(jié)是根據(jù)需要增加的。首部格式如下:
TCP 提供可靠交付的服務(wù),保證數(shù)據(jù)無(wú)差錯(cuò)、不丟失、不重復(fù)、按序到達(dá)。
TCP 提供全雙工通信。
TCP雖然是面向字節(jié)流的,但TCP傳送的數(shù)據(jù)單元卻是報(bào)文段。一個(gè)TCP 報(bào)文段分為首部和數(shù)據(jù)兩部分
1、第一個(gè)4字節(jié):?
- (1)源端口,16位;發(fā)送數(shù)據(jù)的源進(jìn)程端口
- (2)目的端口,16位;接收數(shù)據(jù)的進(jìn)程端口
2、第二個(gè)4字節(jié)與第三個(gè)4字節(jié)?
- (1)序號(hào),32位;代表當(dāng)前TCP數(shù)據(jù)段第一個(gè)字節(jié)占整個(gè)字節(jié)流的相對(duì)位置;
- (2)確認(rèn)號(hào),32位;代表接收端希望接收的數(shù)據(jù)序號(hào),為上次接收到數(shù)據(jù)報(bào)的序號(hào)+1,當(dāng)ACK標(biāo)志位為1時(shí)才生效。
3、第四個(gè)4字節(jié):?
- (1)數(shù)據(jù)偏移,4位;實(shí)際代表TCP首部長(zhǎng)度,最大為60字節(jié)。
- (2)6個(gè)標(biāo)志位,每個(gè)標(biāo)志位1位;?
? ? ? ? ? ? SYN,為同步標(biāo)志,用于數(shù)據(jù)同步;?
? ? ? ? ? ? ACK,為確認(rèn)序號(hào),ACK=1時(shí)確認(rèn)號(hào)才有效;?
? ? ? ? ? ? FIN,為結(jié)束序號(hào),用于發(fā)送端提出斷開(kāi)連接;?
? ? ? ? ? ? URG,為緊急序號(hào),URG=1是緊急指針有效;?
? ? ? ? ? ? PSH,指示接收方立即將數(shù)據(jù)提交給應(yīng)用層,而不是等待緩沖區(qū)滿(mǎn);?
? ? ? ? ? ? RST,重置連接。
- (3)窗口值,16位;標(biāo)識(shí)接收方可接受的數(shù)據(jù)字節(jié)數(shù)。詳解可參看:http://www.cnblogs.com/woaiyy/p/3554182.html
4、第五個(gè)4字節(jié)?
- (1)校驗(yàn)和,16位;用于檢驗(yàn)數(shù)據(jù)完整性。
- (2)緊急指針,16位;只有當(dāng)URG標(biāo)識(shí)位為1時(shí),緊急指針才有效。緊急指針的值與序號(hào)的相加值為緊急數(shù)據(jù)的最后一個(gè)字節(jié)位置。用于發(fā)送緊急數(shù)據(jù)。
IP報(bào)文
IP報(bào)文是在網(wǎng)絡(luò)層傳輸?shù)臄?shù)據(jù)單元,也叫IP數(shù)據(jù)報(bào)。IP報(bào)文格式如下圖
1、第一個(gè)4字節(jié)(也就是第一行):
- (1)版本號(hào)(Version),4位;用于標(biāo)識(shí)IP協(xié)議版本,IPv4是0100,IPv6是0110,也就是二進(jìn)制的4和6。
- (2)首部長(zhǎng)度(Internet Header Length),4位;用于標(biāo)識(shí)首部的長(zhǎng)度,單位為4字節(jié),所以首部長(zhǎng)度最大值為:(2^4 - 1) * 4 = 60字節(jié),但一般只推薦使用20字節(jié)的固定長(zhǎng)度。
- (3)服務(wù)類(lèi)型(Type Of Service),8位;用于標(biāo)識(shí)IP包的優(yōu)先級(jí),但現(xiàn)在并未使用。
- (4)總長(zhǎng)度(Total Length),16位;標(biāo)識(shí)IP數(shù)據(jù)報(bào)的總長(zhǎng)度,最大為:2^16 -1 = 65535字節(jié)。
2、第二個(gè)四字節(jié):
- (1)標(biāo)識(shí)(Identification),16位;用于標(biāo)識(shí)IP數(shù)據(jù)報(bào),如果因?yàn)閿?shù)據(jù)鏈路層幀數(shù)據(jù)段長(zhǎng)度限制(也就是MTU,支持的最大傳輸單元),IP數(shù)據(jù)報(bào)需要進(jìn)行分片發(fā)送,則每個(gè)分片的IP數(shù)據(jù)報(bào)標(biāo)識(shí)都是一致的。
- (2)標(biāo)志(Flag),3位,但目前只有2位有意義;最低位為MF,MF=1代表后面還有分片的數(shù)據(jù)報(bào),MF=0代表當(dāng)前數(shù)據(jù)報(bào)已是最后的數(shù)據(jù)報(bào)。次低位為DF,DF=1代表不能分片,DF=0代表可以分片。
- (3)片偏移(Fragment Offset),13位;代表某個(gè)分片在原始數(shù)據(jù)中的相對(duì)位置。
3、第三個(gè)四字節(jié):
- (1)生存時(shí)間(TTL),8位;以前代表IP數(shù)據(jù)報(bào)最大的生存時(shí)間,現(xiàn)在標(biāo)識(shí)IP數(shù)據(jù)報(bào)可以經(jīng)過(guò)的路由器數(shù)。
- (2)協(xié)議(Protocol),8位;代表上層傳輸層協(xié)議的類(lèi)型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
- (3)校驗(yàn)和(Header Checksum),16位;用于驗(yàn)證數(shù)據(jù)完整性,計(jì)算方法為,首先將校驗(yàn)和位置零,然后將每16位二進(jìn)制反碼求和即為校驗(yàn)和,最后寫(xiě)入校驗(yàn)和位置。
4、第四個(gè)四字節(jié):源IP地址
5、第五個(gè)四字節(jié):目的IP地址
以太網(wǎng)的幀格式如下所示:
在圖中,幀末尾就是CRC校驗(yàn)碼。
此外,對(duì)其他字段解釋如下:
| 目的地址 | MAC地址 |
| 源地址 | MAC地址 |
| 類(lèi)型 | 三種值,分別對(duì)應(yīng)IP、ARP、RARP |
最常用的 MAC 幀是以太網(wǎng)V2的格式
注:
總結(jié)
以上是生活随笔為你收集整理的TCP/IP四层模型及各层协议首部详述(包含IOS7层)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python环境安装脚本,拷贝环境脚本,
- 下一篇: VC++ CString互转double