【计算机网络】IP协议

一、IP协议的功能

提供将数据从A主机跨网络送到主机B的能力 (在复杂的网络环境中确定一个合适的路径)

二、IP协议格式

​​​​​​​1.报头的含义

(1)一般字段

① 4位版本:指定IP协议的版本,对于IPv4来说就是4

② 4位首部长度:IP报头 = 4位首部长度 * 4字节 -> [20, 60] -> [1010, 1111] (同TCP)

③ 8位服务类型:用于指定服务类型(不太重要)

④ 16位总长度:整个IP报文占多少个字节(IP报头 + 有效载荷)

⑤ 8位生存时间:每跳一次,生存时间- -;当减到0时就不发这个报文了(解决环路问题)

⑥ 8位协议:表示上层协议的类型(交给UDP还是TCP;解决分用的问题)

⑦ 16位首部检验和:利用这个字段来鉴别报头是否损坏

⑧ 32位源IP地址/32位目的IP地址:发送端和接收端的IP

(2)IP报文分片

IP报文的分片与报头中的16位标识、3位标志、13位偏移有关

① 为什么分片

② 如何分片/组装

a.怎么这道一个报文被分片了?

当更多分片(3位标志中的一位) 取值为1时,表示后面还有分片

当更多分片(3位标志中的一位) 取值为0时,表示这是最后一个分片,标志着该数据报的分片结束

 1) 如果更多分片(3位标志中的一位)是1,就证明该报文分片了 -> 其他片

 2) 如果更多分片是0 && 13位片偏移>0 说明是分片,否则不是 -> 最后一片

b.同一个报文的分片怎么被被识别出来?

利用16位标识位 -> 同一个报文的分片的16位标识位相同

c.哪个是第一个?哪个是最后一个?有没有收全或者丢失?

第一个:更多分片=1 && 偏移量=0、最后一个:更多分片=0 && 偏移量>0

当前的起始位置 + 自身长度 = 下一个报文中填充的偏移量大小

d.哪块在前?哪块在后?如何正确的进行组装?

只要按照片偏移进行升序排序即可

e.怎么保证合并起来的报文是正确的?

利用TCP/IP中的校验和

③ 几点注意

a.分片不好,分片不是主流情况

b.一个报文被拆成了多个,任意一个分片丢失都会造成拼接失败,进而导致对端重传整个报文

c.分片会增加丢包概率(99%*99%*99% < 99%)

2.解包/分用

如何解包:利用4位首部长度 和 16位总长度

如何分用:利用8位协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值