专栏名称: 林湾村龙猫
资深后台开发
目录
相关文章推荐
冯唐  ·  父母都走了,我离死亡的距离更短了 ·  3 天前  
顶尖管理哲学  ·  “我想告诉所有男生女生” ·  2 天前  
顶尖管理哲学  ·  “我想告诉所有男生女生” ·  2 天前  
ONE文艺生活  ·  别再让直播间里的未成年擦边了 ·  2 天前  
51好读  ›  专栏  ›  林湾村龙猫

系列之TCP/IP协议-IP协议

林湾村龙猫  · 掘金  ·  · 2019-04-12 06:09

正文

一、引言

链路层的上层协议是网络层,IP 协议是网络层协议中的最核心协议。ICMP/IGMP,TCP/UDP 都是通过 IP 数据包传输的。IP 协议提供非可靠的(unreliable)、无连接的(connectionless)。

  • 非可靠的:IP 协议不能保证数据能成功的到达目的地(传输层协议保证)。当 IP 数据包在传输的过程中,发生错误,路由器的处理是丢掉该数据包,然后发送 ICMP 给该 IP 数据包的源;

  • 无连接的:表示 IP 协议不维护后续数据包的状态,每个 IP 数据包都是独立的,即 IP 数据包可以不按照顺序发送接收。

二、IP 数据包

  • IP 版本号(Version):IP 协议版本号,长度 4bit;目前常有 IPv4 的该域值是(0100);

  • 首部长度(Head Length):表明 IP 数据包的首部长度,长度 4bit,单位是 32bit(4 字节,图 1 中的一行),首部长度最大 15*4=60 字节,没有选填的选项,首部长度为 20 字节,该值为(0101);

  • 服务类型(Differentiated Services Field):表明该 IP 数据包选择何种优先级服务传输,长度 8bit,其中前 3bit,后 1bit 没有用的,一般为 0(000XXXX0);有用的 4bit 部分(XXXX)表示服务类型,每一位表示一种类型,分别是 最小延迟 最大吞吐量 最高可靠性 最小代价 ,这 4bit 每次最多只有一位为 1,若全为 0,表示普通的传输服务;

  • 标识域(Identification):唯一地标识主机发送的每一份 IP 数据包。通常每发送一份数据包它的值就会加 1;长度 16bit;

  • 协议类型(Protocol): 指明上层协议类型,长度 8bit, 常用协议值 0x01-ICMP,0x02-IGMP,0x06-TCP,0x11-UDP

  • 标志域(Flags):在 IP 数据包分片使用,长度 3bit。

  • 片偏移(fragment offset):在 IP 数据包分片使用,长度 13bit。

  • 生存时间(Time to Live,TTL):IP 数据包可以经过的最大路由跳转数,长度 8bit,初值一般为 0x40,IP 数据包每经过一次路由,该值 - 1,当 TTL 为 0 的时候,IP 数据包被丢弃,并发送一个 ICMP 包给该 IP 数据包的主机。

  • 首部校验和(Header checknum):校验首部,长度 16bit,与以太帧的 CRC 校验不同,这个只校验 IP 数据包的首部。如果校验未通过,直接丢弃该数据包,不发送 ICMP,由上层协议来控制。

  • 源 IP 地址(Source IP):告诉 IP 数据包,从哪来。长度 32bit。

  • 目标 IP 地址(Destination IP):告诉 IP 数据包,要到哪去。长度 32bit。







请到「今天看啥」查看全文