3.IP:网际协议

介绍

IP是TCP/IP协议栈中最核心的协议,TCP、UDP、ICMP和IGMP都基于IP协议传输数据

IP协议的两个重要特点:

  1. 不可靠:不保证IP数据报成功传输到目的地,可靠性由上层保障
  2. 无连接:不维护数据报的状态信息。每个数据报都是独立传输,可能A在B之前传输,但是A在B之后到达

IP首部

3.IP:网际协议

其中普通IP首部占据20字节,除非包含可选字段,并且IP数据报的长度一定是32位的整数倍

  • 版本号:4位。IPv4的版本号是4
  • 首部长度:4位。代表图中首部占据了多少个32位。4位首部长度说明首部最长为2^4-1=15个32位,即60字节
  • 服务类型(TOS):8位。其中3位优先权子字段(已忽略)、4位TOS子字段和1位未用位。4位TOS最多设置其中一个位,如果全0代表一般服务,这4位分别是:最小时延、最大吞吐量、最高可靠性、最小费用。根据不同类型,来选择不同的执行逻辑
  • 总长度:16位。整个IP数据报的总长度,通过首部长度和总长度,可以知道数据内容的起始位置和长度
  • 标识:16位。唯一标识主机发送的数据报,每发送一份报文都会加1
  • 标志:3位。
  • 偏移:13位。
  • 生存时间:8位。数据报最多经过的路由器数
  • 协议:8位。表明是哪个上层协议向IP发送数据,根据这个字段在收到数据报的时候可用正确分用
  • 首部校验和:16位。根据IP首部计算的校验和
  • 选项(如果有):不定长。如有需求,会额外增加的字段,可选

IP路由选择

  1. IP收到上层的数据报,搜索路由表,根据搜索结果并完成发送
  2. IP收到下层网络接口传上来的数据报,check数据报中目的IP是否为本机。如果是,则交给IP首部字段指定的协议模块解析;如果不是,则若本机无路由功能就丢弃数据报,若本机有路由功能则进行路由表搜索和转发

路由表:

  • 目的IP地址:可以是网络地址,也可以是主机地址
  • 下一站路由器的IP地址:直连网络的路由器IP,通过该路由器将数据转发到目的地
  • 标志:一个标志区分目的IP是网络地址还是主机地址;另一个标志区分下一站路由器是真正的路由器还是直连的网络接口
  • 为数据报传输指定一个网络接口

IP路由是逐跳地(hop-by-hop)进行,IP并不知道到达目的地的完整路径,只是通过路由寻找到下一站路由器,如此不断接近终点

IP路由选择过程:

  1. 搜索路由表,找到与目标IP完全匹配的条目,将报文发送给该条目的下一站路由器或直连的网络接口
  2. 搜索路由表,找到与目标网络号匹配的条目,将报文发送给该条目的下一站路由器或直连的网络接口
  3. 搜索路由表,找到“默认”条目,将报文发送给该条目的下一站路由器或直连的网络接口

为每个网络指定一个路由器,可以减少路由表的规模

  1. 大部分主机和路由器可以采用“默认”路由条目将数据传送到目的地
  2. 逐跳传递过程中,目的IP地址不变化
  3. 逐跳传递过程中,链路层数据帧首部的目的地址始终指向下一站链路层的目的地址(mac地址)

子网寻址

子网的目的:

  1. 如果网络下直接就是主机号,通常一个网络可用主机号较多,实际用不了这么多,浪费
  2. 子网对外只需要暴露网关的IP地址,可用极大减少Internet路由表规模

通常B类地址才划分子网

3.IP:网际协议

子网掩码

用来确定IP地址中有多少位是网络号和子网号,有多少位是主机号

有盘主机通常在系统启动的时候,会读取磁盘中的文件来获取IP地址和子网掩码

3.IP:网际协议

通过子网掩码可以确定目标地址与本机地址是否在:

  • 其他网络
  • 同一个网络
  • 同一个子网

这个功能也是路由选择中不断进行的步骤

特殊的IP地址

3.IP:网际协议

变长子网

3.IP:网际协议

当一个子网(如图中子网13)中存在多个网络(如图中SLIP和以太网),就需要通过增加子网的长度,来区分该子网是SLIP子网还是以太网子网。这种改变子网长度,称为变长子网

3.IP:网际协议

3-10中各接口IP

3.IP:网际协议

转载于:https://my.oschina.net/u/1378920/blog/1841109