IoT开发实战:CoAP卷【1.3】

3.2.2 IPv4首部

IPv4首部如图3-5所示,IPv4各字段的含义说明如下:

·版本(4位):该字段表示IP协议的具体版本,对于IPv4来说该值固定为0x04。

·首部长度(4位):此处的首部长度包含了首部选项与填充部分,并且以32位(4字节)为最小单位。如果没有首部选项和填充部分,那么该字段的值固定为0x05,也就是说IPv4的首部长度为20字节。

·服务类型:表示所希望的服务质量。该字段在IPv4中并不常用。

·总长度:表示IP数据包的总长度。该字段占2字节,也就是说单个IP数据包的最大长度为65536字节。

·标识:在IP分片中使用,同一个IP数据包的所有分片具有相同的标识编号。

·标志(3位):同样在IP分片中使用。

·分片偏移(13位):同样在IP分片中使用,标识该分片在原始报文中的位置,分片偏移以8字节为最小单位,所以需要将该值乘以8才可以获得原来的位置。

·生存时间:用于防止数据包在路由器之间无限期的流动。每经过一个路由器该值递减1。如果该值减至0,该数据包将被路由器丢弃。

·协议:表示IP负载中的协议类型。例如,协议值为1表示IP负载为ICMP协议,协议值为6表示IP负载为TCP协议,协议值为17表示IP负载为UDP协议。

·首部校验:对于IP首部计算的16位校验和。

·源地址:创建该IP数据分包的设备的32位IP地址。

·目标地址:该IP数据分包的接收设备的32位IP地址。

·选项:长度可变,通常用于实验与诊断。该字段包含安全级别、源路径、路径记录和时间戳等信息。

·填充:如果包括选项部分,那么选项部分的长度必须是32位(4字节)的整数倍,否则需要使用填充部分。

IPv4首部包含的内容较多,但在实际的开发过程中只需要关注IP协议版本号、源地址和目标地址即可。对于IP分片和重组等较为复杂的部分,操作系统内的网络协议栈已经为用户进行处理,在开发过程中工程师并不需要关心。

图3-5 IPv4首部

3.2.3 IPv4地址

在设备间进行网络通信时,使用IP地址识别主机和路由器。为了保证设备间的正常通信,每个设备都应有正确的IP地址。IPv4地址由32位正整数表示。IP地址在计算机或嵌入式系统内部总是以二进制形式保存,但是人们总是不习惯于阅读和使用二进制方式,所以IPv4地址把32位IPv4地址分成8位一组,共分成4组,各组之间通过“.”隔开,每组通过十进制表示。192.168.1.100便是一个合法的IPv4地址。

1.网络ID和主机ID

IPv4地址一般由网络ID和主机ID两部分组成。网络ID在数据链路的每个段将配置不同的值,网络ID必须保证相互连接的每个段的地址不重复。而相同段内的主机必须具有相同的网络标识。这种结构非常有利于路由器的工作,路由器可以很容易地知道目标主机发送的数据在同一个网络中还是在不同的网络中,路由器可以通过比较两个IP地址的网络ID便可做出决策。

网络ID和主机ID的表示方式有两种:后缀法和子网掩码法。例如192.168.1.100/24,24表示网络ID占该IPv4地址的前24位,此时网络ID为192.168.1.0,IPv4地址共32位,那么剩余的8位便是主机ID,所以此时的主机ID为0.0.0.100。除了后缀表示法之外,子网掩码法也非常常用,子网掩码的长度和IPv4地址的长度相同,若某位为比特0表示该位留给网络ID,如果该位为比特1,表示该位留给主机ID。如果IPv4地址192.168.1.100的子网掩码为255.255.255.0,那么它的网络ID为192.168.1.0,主机ID为0.0.0.100。IPv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值