計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議報(bào)文
數(shù)據(jù)鏈路層協(xié)議報(bào)文
1. 以太網(wǎng)幀 --- IEEE802.3 和 Ethernet Ⅱ
IEEE802.3
[圖片上傳失敗...(image-205cf8-1607908402059)]EthernetⅡ
[圖片上傳失敗...(image-46b2b8-1607908402060)]
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
DMAC | 6 字節(jié) | 目的 MAC 地址,接收者 |
SMAC | 6 字節(jié) | 源 MAC 地址,標(biāo)識(shí)發(fā)送幀的工作站 |
Type | 2 字節(jié) | 荷載數(shù)據(jù)的類型,表示上層 IP 層協(xié)議類型 |
Data | 變長 | 最少 46 字節(jié),最大 1500 字節(jié) |
CRC | 4 字節(jié) | 用于冗余檢驗(yàn) |
根據(jù)目的 MAC 的種類,可以將以太網(wǎng)分成三種類型
- 單播以太網(wǎng):單播 MAC 地址
- 組播以太網(wǎng):組播 MAC 地址
- 廣播以太網(wǎng):廣播 MAC 地址
檢驗(yàn)和被網(wǎng)卡查看幀檢驗(yàn)無誤后在交給驅(qū)動(dòng)程序之前刪去了
VLAN 虛擬局域網(wǎng)
[圖片上傳失敗...(image-d55825-1607908402060)]
IEEE802.1Q 對(duì) Ethernet 幀修改而成,加入了 4 字節(jié)的 tag
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
新增 Type | 2 字節(jié) | 表示幀類型,新增 0x8100 表示 tag |
新增 PRI | 3 比特 | 幀優(yōu)先級(jí) |
新增 CFI | 1 比特 | 表示是否為經(jīng)典格式,以太網(wǎng)幀中 CFI 為 0 |
新增 VID | 12 比特 | 表示該幀所屬的 VLAN |
Length/Type | 2 字節(jié) | 指定后序字節(jié)長度 |
PPP
局域網(wǎng)中一般以以太網(wǎng)口進(jìn)行互聯(lián),廣域網(wǎng)中經(jīng)常會(huì)使用串行鏈路來提供遠(yuǎn)距離的數(shù)據(jù)傳輸,PPP 是串口封裝協(xié)議,主要用于全雙工的同異步鏈路上進(jìn)行的點(diǎn)到點(diǎn)數(shù)據(jù)傳
串口和以太網(wǎng)口
- 串口(serial):常用于遠(yuǎn)距離數(shù)據(jù)傳輸
- 以太網(wǎng)口(Ethernet):一般用于局域網(wǎng),用于短距離傳輸
串行鏈路中定義的兩種數(shù)據(jù)傳輸方式
- 異步傳輸:以字節(jié)為單位傳輸數(shù)據(jù),兩邊添加起始位和停止位,開始位和停止位所占數(shù)據(jù)相當(dāng)大比例
- 同步傳輸:以幀為單位,需要額外使用一個(gè) DCE 數(shù)據(jù)通信設(shè)備來維護(hù)時(shí)鐘同步
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
Flag | 1 字節(jié) | 標(biāo)識(shí)起始和結(jié)束 |
Address | 1 字節(jié) | 固定 0XFF,廣播地址 |
Control | 1 字節(jié) | 表示無序號(hào)幀 |
Protocol | 2 字節(jié) | 說明 PPP 封裝的協(xié)議報(bào)文類型 |
information | 變長 | 數(shù)據(jù)包 |
FCS | 2 字節(jié) | 校驗(yàn)和 |
PPP 協(xié)議的包捉不到,直接貼別人的了
[圖片上傳失敗...(image-306052-1607908402060)]
IP 層協(xié)議報(bào)文
IP 協(xié)議
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
版本 | 4 比特 | 協(xié)議版本,通信雙方協(xié)議版本必須一樣 |
首部長度 | 4 比特 | 結(jié)果*4 個(gè)節(jié)字為首部長度 |
區(qū)分服務(wù) | 1 字節(jié) | 只有在使用區(qū)分服務(wù)是才會(huì)用到 |
總長度 | 2 字節(jié) | 首部和數(shù)據(jù)之和,最大為 2 的 16 次方 65535 字節(jié) |
標(biāo)識(shí) | 2 字節(jié) | 標(biāo)識(shí)數(shù)據(jù)報(bào),用于分片重組 |
標(biāo)志 | 3 比特 | 表示是否允許分片 |
片偏移 | 13 比特 | 用于片的合成 |
生存時(shí)間 | 1 字節(jié) | 表示最大經(jīng)過路由器數(shù)量 |
協(xié)議 | 1 字節(jié) | 表示上層協(xié)議類型 |
首部校驗(yàn)和 | 2 字節(jié) | 用于校驗(yàn)數(shù)據(jù)首部 |
源地址 | 4 字節(jié) | 源 IP |
目的地址 | 4 字節(jié) | 目的 IP |
可選字段 | 不定 | 可選包頭的設(shè)置 |
填充 | 不定 | 使用若干個(gè) 0 填充,保證整個(gè)報(bào)頭長度為 32 位整數(shù)倍 |
數(shù)據(jù)部分 | 變長 | 表示傳輸層數(shù)據(jù) |
ARP/RARP 協(xié)議(包含請(qǐng)求響應(yīng))
ARP 報(bào)文總長 28 字節(jié)
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
硬件類型 | 2 字節(jié) | 指明發(fā)送方想知道的硬件接口類型,以太網(wǎng)為 1 |
協(xié)議類型 | 2 字節(jié) | 表示要映射的協(xié)議地址類型,值為 0x0800 表示 IP 地址 |
硬件長度 | 1 字節(jié) | 結(jié)果*字節(jié)表示硬件地址長度 |
協(xié)議長度 | 1 字節(jié) | 結(jié)果*字節(jié)表示協(xié)議長度 |
操作類型 | 2 字節(jié) | 表示報(bào)文類型,ARP1,ARP 響應(yīng) 2,RARP 請(qǐng)求 3,RARP 響應(yīng) 4 |
發(fā)送方 MAC 地址 | 6 字節(jié) | 發(fā)送方物理地址 |
發(fā)送方 IP 地址 | 2 字節(jié) | 發(fā)送方設(shè)備 IP 地址 |
接收方 MAC 地址 | 6 字節(jié) | 接收方物理地址 |
接收方 IP 地址 | 2 字節(jié) | 接收方設(shè)備 IP 地址 |
ICMP(INTERNET CONTROL MESSAGE PROTOCOL)網(wǎng)絡(luò)控制消息協(xié)議
故名思義,ICMP數(shù)據(jù)報(bào)的作用就是傳遞控制信息,比如說超時(shí),源抑制,重定向等控制信息,主要在路由器與主機(jī)之間進(jìn)行傳輸,報(bào)告真正數(shù)據(jù)報(bào)的狀態(tài)及傳輸情況,分為查詢報(bào)文和差錯(cuò)報(bào)文,不同的數(shù)據(jù)包格式大致相同,內(nèi)容不同
請(qǐng)求回顯/回顯應(yīng)答(ping)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-
Type(8)是請(qǐng)求回顯報(bào)文(Echo);Type(0)是回顯應(yīng)答報(bào)文(Echo Reply)
傳輸層協(xié)議
TCP協(xié)議
[圖片上傳失敗...(image-de3a62-1607908402060)]
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
源端口 | 2字節(jié) | 發(fā)送方端口號(hào),最大值65535 |
目的端口 | 2字節(jié) | 接收端口號(hào),最大值65535 |
序號(hào)SN | 4字節(jié) | 標(biāo)識(shí)了該TCP報(bào)文中第一個(gè)byte在對(duì)應(yīng)方向傳輸中對(duì)應(yīng)的字節(jié)序號(hào),當(dāng)SYN出現(xiàn)時(shí),該序號(hào)表示初始序號(hào) |
確認(rèn)號(hào)ACK | 4字節(jié) | 表示接受方期望下次接收數(shù)據(jù)的序列號(hào) |
數(shù)據(jù)偏移 | 4比特 | 指示數(shù)據(jù)段從哪個(gè)字節(jié)開始,單位為4字節(jié) |
保留 | 4比特 | 默認(rèn)為0 |
標(biāo)志 | 1字節(jié) | URG:擁塞控制;ACK:是否為確認(rèn)報(bào)文;PSH:表示發(fā)送方數(shù)據(jù)發(fā)送完成;RST:復(fù)位TCP連接;SYN:同步序列編號(hào);FIN:結(jié)束會(huì)話 |
窗口 | 2字節(jié) | 用于流量控制 |
校驗(yàn)和 | 2字節(jié) | 校驗(yàn)數(shù)據(jù)有沒有被修改 |
緊急指針 | 2字節(jié) | 指示緊急數(shù)據(jù)的偏移 |
UDP協(xié)議--IP傀儡
字段說明
字段 | 字節(jié)數(shù) | 描述 |
---|---|---|
源端口 | 2字節(jié) | 發(fā)送方端口號(hào),最大值65535 |
目的端口 | 2字節(jié) | 接收端口號(hào),最大值65535 |
頭部長度 | 2字節(jié) | 數(shù)據(jù)報(bào)頭+數(shù)據(jù),單位字節(jié) |
校驗(yàn)值 | 2字節(jié) | 校驗(yàn)數(shù)據(jù)是否被修改 |
啥也沒有,交到端口就完事了
應(yīng)用層協(xié)議
http協(xié)議
好家伙終于來到應(yīng)用層了,這個(gè)就是之前各層報(bào)文中所謂的data數(shù)據(jù),不過在http1.*中報(bào)文不再是之前各層的二進(jìn)制數(shù)據(jù)了,而是使用ASCII編碼,每個(gè)字段長度都不能確定,而且因?yàn)殚L度不確定就要用指定的分隔符分隔字段
請(qǐng)求/響應(yīng)報(bào)文
冪等性:表示操作至多會(huì)被處理一次
字段說明
請(qǐng)求行+請(qǐng)求頭+空行+請(qǐng)求體(post才有請(qǐng)求體)
字段 | 說明 |
---|---|
請(qǐng)求方法 | GET,POST,PUT,OPTIONS... |
URI | 統(tǒng)一資源標(biāo)識(shí)符 |
響應(yīng)報(bào)文只是在原請(qǐng)求行上把URI換成了狀態(tài)碼
DNS協(xié)議
[圖片上傳失敗...(image-d86ef6-1607908402060)]
字段說明
字段 | 字節(jié)數(shù) | 說明 |
---|---|---|
會(huì)話標(biāo)識(shí) | 2字節(jié) | 因?yàn)檎?qǐng)求報(bào)文和響應(yīng)是相同的,要依靠這個(gè)字段表明是哪種報(bào)文 |
標(biāo)志 | 2字節(jié) | 每一位具有不同意義 |
問題數(shù) | 2字節(jié) | 表示查詢問題區(qū)域字節(jié)的數(shù)目 |
回答數(shù) | 2字節(jié) | 表示回答區(qū)域字節(jié)數(shù)目 |
授權(quán)資源記錄數(shù) | 2字節(jié) | 表示授權(quán)區(qū)域字節(jié)數(shù)目 |
附加資源記錄數(shù) | 2字節(jié) | 表示附加區(qū)域數(shù)量 |
- 查詢問題(查詢名+查詢類型+查詢類):顯示DNS詢問的問題
- 資源記錄部分格式統(tǒng)一如下
- 域名:DNS 請(qǐng)求的域名.
- 類型:資源記錄的類型,與問題部分中的查詢類型值是一樣的.
- 類:地址類型,與問題部分中的查詢類值是一樣的.
- 生存時(shí)間:以秒為單位,表示資源記錄的生命周期,一般用于當(dāng)?shù)刂方馕龀绦蛉〕鲑Y源記錄后決定保存及使用緩存數(shù)據(jù)的時(shí)間.它同時(shí)也可以表明該資源記錄的穩(wěn)定程度,穩(wěn)定的信息會(huì)被分配一個(gè)很大的值.
- 資源數(shù)據(jù)長度:資源數(shù)據(jù)的長度.
- 資源數(shù)據(jù):表示按查詢段要求返回的相關(guān)資源記錄的數(shù)據(jù)
FTP協(xié)議
[圖片上傳失敗...(image-75807f-1607908402060)]