网络基础-IP协议


前言

基础不牢,地动山摇,本节我们详细介绍IP协议的内容。


一、IP报文

在这里插入图片描述
第一行:
4位版本号指定IP协议的版本,有IPv4,SIP,PIP。
4位头部长度是指该IP头部有多少个4字节,因为4位能表示的最大数是15,所以IP头部最长60字节。
8位服务类型,说明了IP数据包的服务需求,包括:最小延时、最大吞吐量、最高可靠性和最小费用。比如ssh和telent这样的登录程序需要的是最小延时服务,文件传输ftp需要最大吞吐量服务。
16为总长度指IP总长度。 MTU(帧的最大传输单元)绝对了1500字节内。
第二行:
16位标识能唯一标识主机发送的每一个数据报,初值随机,每发送一个,其值就加一,用于分片和重组。同一个数据报的所有分片具有相同的标识值。
3位标志字段,第一位保留,第二位可以设置禁止分片DF,第三位标识数据报的更多分片MF。
DF为1:不能分片 MF为1:中间分片
13位分片偏移是指相对于原数据报的偏移。
第三行:
8位生存时间TTL是数据报到达目的地之前允许经过的路由器跳数。
8位协议用来区分上层协议: 1是ICMP 6是TCP 17是UDP
16位头部校验和由发送端填充,接收端用来检查头部是否损坏。
第四行:
32位源端IP地址和目的端IP地址,传输过程中保持不变。
选项字段: 记录路由(记录途径的路由器)、时间戳(测量途径路由器之前数据报传输的时间)松散源路由选择和严格源路由选择(必须经过这些和仅能通过这些)

二、IP报文分片重组

IP分片

IP分片原因:链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500,你可以用 netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。

# 查看MTU
[root@test-90 data]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    77622      0      0 0         30128      0      0      0 BMRU
lo              65536        0      0      0 0             0      0      0      0 LRU

IP分片示例

在这里插入图片描述

MTU

Maximum Transmission Unit,最大传输单元,指的是数据链路层的最大payload,由硬件网卡设置MTU,是一个硬性限制留给网络层的数据长度(以太网的有效载荷:Payload)

ping 命令可以验证MTU大小

Windows系统:

ping -f -l 1000  www.baidu.com

-f 设置DF标志位为1
-l 指定负载中的数据长度
如图:设置负载2000超过了MTU1500,同时设置DF为1,则提示报错。
在这里插入图片描述

Linux系统:

ping  -M do/want/dont   -s 1000  www.baidu.com

-M 选项通常和 -s 选项结合测试 IP 包的分片情况,do: 禁止分片,即使包被丢弃;want:当包过大时本地分片,dont:不设置分片标志位 DF
在这里插入图片描述

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值