首页 > 代码库 > IP:网际协议

IP:网际协议

一、服务模型特点

  1. 不可靠 (unreliable)
    不保证IP数据报能成功得到达目的地。
  2. 无连接 (connectionless)
    IP不维护任何关于后续数据报的状态信息,每个数据报是相互独立的。
    IP数据报可以不按发送顺序接收。

二、IP首部

技术分享?

  1. 版本号
    目前协议版本号是4
  2. 首部长度
    首部占32bit字节的长度。普通IP数据报字段是5,即5个32bit,总计160bit,20字节。
  3. 服务类型 (TOS) 字段
    1. 3bit优先权子字段(已被忽略)
    2. 4bit TOS子字段(表示最小时延、最大吞吐量、最高可靠性、最小费用)
    3. 1bit未用位(必须置0)
  4. 总长度字段
    整个IP数据报的长度,以字节为单位
  5. 标识字段
    唯一标识主机发送的每一份数据报。每发送一份,值会加一。
  6. TTL (time to live)
    数据报可以经过的最多路由数。每经过一个路由器,值减一。当字段为0时,数据报被丢弃。
  7. 协议字段
    区分上层的协议,如TCP、UDP,用于实现复用。
  8. 首部检验和
    根据IP首部计算的校验和码,不对首部后面的数据进行计算。
  9. 选项字段
    很少使用,以32bit为界限,必要时插入值为0的填充字节。

三、IP路由选择

  1. 搜索路由表,选择能和目的IP地址完全匹配的表目。如果找到,把报文发送给指定的下一站路由器或直接相连的网络接口
  2. 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,把报文发送给指定的下一站路由器或直接相连的网络接口。
  3. 搜索路由表,寻找标为“默认 (default)”的表目。如果找到,把报文发送给指定的下一站路由器或直接相连的网络接口。
  4. 如果都没有成功,该数据报不能发送。一般会想生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。

IP:网际协议