主機(jī)、路由器網(wǎng)絡(luò)層主要功能:
我們將在這篇文章詳細(xì)介紹ip數(shù)據(jù)報(bào)的格式
首先号胚,ip數(shù)據(jù)報(bào)分為兩部分愉适,首部和數(shù)據(jù)
我們?cè)敿?xì)分析首部各字段的意義
版本號(hào)字段占4位: IP協(xié)議的版本號(hào),一般有兩個(gè)值栗竖,如果為4就代表是IPv4暑脆,6就代表是IPv6協(xié)議。 4→IPv4狐肢, 6 → IPv6
首部長(zhǎng)度字段占4位: IP分組首部長(zhǎng)度添吗,這里是以四個(gè)字節(jié)為單位,如果值為5份名,則表示首部長(zhǎng)度為20個(gè)字節(jié)(5×4)碟联,從圖中也可以看到,ip首部長(zhǎng)度最短應(yīng)該是20個(gè)字節(jié)僵腺,除掉可變部分鲤孵,固定部分就是20個(gè)字節(jié)。
服務(wù)類型(TOS)字段占8位:指示期望獲得哪種類型的服務(wù)
- 1998 年這個(gè)字段改名為區(qū)分服務(wù)
- 只有在網(wǎng)絡(luò)提供區(qū)分服務(wù)(DiffServ)時(shí)使用
- 一般情況下不使用辰如,通常IP分組的該字段(第2字節(jié))的值為00H
總長(zhǎng)度字段占16位: IP分組的總字節(jié)數(shù)(首部+數(shù)據(jù))
- 最大IP分組的總長(zhǎng)度: 65535B
- 最小的IP分組首部: 20B
- IP分組可以封裝的最大數(shù)據(jù): 65535-20=65515B
生存時(shí)間( TTL) 字段占8位: IP分組在網(wǎng)絡(luò)中可以通過(guò)的路由器數(shù)(或跳步數(shù))
- 路由器轉(zhuǎn)發(fā)一次分組普监, TTL減1
- 如果TTL=0,路由器則丟棄該IP分組
協(xié)議字段占8位: 指示IP分組封裝的是哪個(gè)協(xié)議的數(shù)據(jù)包
- 實(shí)現(xiàn)復(fù)用/分解
- E.g. 6為TCP,表示封裝的為TCP段凯正; 17為UDP毙玻, 表示封裝的是UDP數(shù)據(jù)報(bào)
首部校驗(yàn)和字段占16位:實(shí)現(xiàn)對(duì)IP分組首部的差錯(cuò)檢測(cè)
- 計(jì)算校驗(yàn)和時(shí),該字段置全0
- 采用反碼算數(shù)運(yùn)算求和廊散,和的反碼作為首部校驗(yàn)和字段
- 逐跳計(jì)算淆珊、逐跳校驗(yàn)
源IP地址、目的IP地址字段各占32位:分別標(biāo)識(shí)發(fā)送分組的源主機(jī)/路由器(網(wǎng)絡(luò)接口)和接收分組的目的主機(jī)/路由器(網(wǎng)絡(luò)接口)的IP地址
選項(xiàng)字段占長(zhǎng)度可變奸汇,范圍在1~40B之間:攜帶安全施符、源選路徑、時(shí)間戳和路由記錄等內(nèi)容 ** 實(shí)際上很少被使用 **
填充字段占長(zhǎng)度可變擂找,范圍在0~3B之間:目的是補(bǔ)齊整個(gè)
首部戳吝,符合32位對(duì)齊,即保證首部長(zhǎng)度是4字節(jié)的倍數(shù)
ip分片
在介紹ip數(shù)據(jù)報(bào)首部字段的時(shí)候贯涎,我們忽略了第二行字段的介紹听哭,因?yàn)檫@一行的字段涉及到ip數(shù)據(jù)報(bào)的分片,我們將先介紹ip數(shù)據(jù)報(bào)的分片塘雳,再來(lái)介紹這幾個(gè)字段的含義陆盘。
網(wǎng)絡(luò)鏈路存在MTU (最大傳輸單元)—鏈路層數(shù)據(jù)幀可封裝數(shù)據(jù)的上限。** 不同鏈路的MTU不同 **败明。
大IP分組向較小MTU鏈路轉(zhuǎn)發(fā)時(shí)隘马, 可以被“分片” (fragmented)
- 1個(gè)IP分組分為多片IP分組
- IP分片到達(dá)目的主機(jī)后進(jìn)行“重組”(reassembled)
IP首部的相關(guān)字段用于標(biāo)識(shí)分片以及確定分片的相對(duì)順序
- 總長(zhǎng)度、標(biāo)識(shí)妻顶、標(biāo)志位和片偏移
標(biāo)識(shí)字段占16位:標(biāo)識(shí)一個(gè)IP分組
- IP協(xié)議利用一個(gè)計(jì)數(shù)器酸员,每產(chǎn)生IP分組計(jì)數(shù)器加1,作為該IP分組的標(biāo)識(shí)
標(biāo)志位字段占3位:
- DF (Don't Fragment)
- MF (More Fragment)
- DF =1:禁止分片讳嘱;
DF =0:允許分片
- MF =1:非最后一片幔嗦;
MF =0:最后一片(或未分片)
片偏移字段占13位:一個(gè)IP分組分片封裝原IP分組數(shù)據(jù)的
相對(duì)偏移量
- 片偏移字段以8字節(jié)為單位
ip分片過(guò)程
- 假設(shè)原IP分組總長(zhǎng)度為L(zhǎng),待轉(zhuǎn)發(fā)鏈路的MTU為M
- 若L>M沥潭,且DF=0邀泉,則可以/需要分片
- 分片時(shí)每個(gè)分片的標(biāo)識(shí)復(fù)制原IP分組的標(biāo)識(shí)
- 通常分片時(shí),除最后一個(gè)分片钝鸽,其他分片均分為MTU允許的最大分片
-
一個(gè)最大分片可封裝的數(shù)據(jù)應(yīng)該是8的倍數(shù)汇恤, 因此, 一個(gè)最大分片可封裝的數(shù)據(jù)為:
- 需要的總片數(shù)為: