4位版本号: 指定IP协议的版本,对于IPV4来说,就是4(通常是4,ipv4和ipv6不兼容)
4位首部长度: 表示IP协议的头部长度是多少个32bit(4字节),4位能表示的最大数为15,即首部长度最大为60字节(和TCP类似)
8位服务类型: 前面三个比特位表示优先权,已经弃用了。后面4位TOS字段, 和1位保留字段(必须置为0).
4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个为侧重点. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.
8位协议: 标识传输层使用什么协议,在数据分用的时候,通过该字段决定将有效载荷交给谁(将数据交给相应的协议)
16位总长度: 标识IP数据包的整体长度。
将首部长度读上来,总长度 - 首部长度就是有效载荷长度(分离报头与有效载荷)
16位标识: 表示当前UDP数据包分片是属于哪一个完整的UDP报文,同一个UDP数据包当中的所有分片具有相同的标识
3位标志:由3比特构成,表示包被分片的相关信息。每一位的具体含义请参考下表。
13分片偏移: 用来标识分片在原来数据之中的位置,用于接收方进行组装
由13比特构成,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对应的值为0。由于FO域占13位,因此最多可以表示8192(=2 13 )个相对位置。单位为8字节,因此最大可表示原始数据8×8192=65536字节的位置 ->UDP最大长度就是2^16字节,因此可以表示UDP的每一个位置
8位生存时间(Time To Live TTL): 数据在传输过程中,允许经过的路由器的个数(TTL也叫跳数)
TCP只会存在于发送端和接收端,网络之中只能看到IP报文。
每经过一个路由器,TTL–; 硬件也有BUG,可能导致循环路由,这样网络中就会存在大量的废弃的游离报文,TTL解决了这些游离报文问题(TTL为0,数据包被丢弃)
16位首部校验和: 使用CRC进行检验,来鉴别头部是否损坏(数据的可靠性是由TCP保证的,所以IP只进行头部的鉴定,不会对数据进行鉴定)
32位源/目的IP地址: 表示发送端和接收端,一般在网络之中是不会改变的
路由查找的基本过程,是先找到目标网络,然后进行报文转发,再找到目标主机,应该根据目的IP进行路由(比如去故宫玩,首先先去北京)
IP66在线查IP地址位置:https://www.ip66.net/?utm-source=LJ&utm-keyword=?1146
领取专属 10元无门槛券
私享最新 技术干货