Section 4 网络层:数据平面

中科大郑烇、杨坚老师《计算机网络》笔记

4.3 Internet Protocol (IP) 协议

  • IP数据报格式
    • TTL: Time to Leave
  • IP分片和重组(Fragmentation & Reassembly)
    • 网络链路有MTU (最大传输单元)
    • 大的IP数据报在网络上被分片fragment
    • 在最终的目标主机重组:定时器,只要定时器到了,任何一片没有到,整个包都丢掉
    • IP头部的信息被用于标识,排序相关分片,fragflag是否是最后一片
  • IP编址
    • IP地址
      • 32位,对主机或者路由器的接口编址
      • 包括子网部分(高位)和主机部分(地位)
    • 子网
      • IP地址的高位部分相同
      • 无需路由器介入
    • IP地址分类
      • A: 0开头,1.0.0.0-127.255.255.255 网络2^7-2 主机2^24-2
      • B: 10开头,128.0.0.0-191.255.255.255 网络2^14-2 主机2^16-2
      • C:110开头,192.0.0.0-223.255.255.255 网络200多万 主机2^8-2
      • D: multicast
      • E: reserved for future
    • IP编址: CIDR
      • CIDR: Classless InterDomain Routing(无类 域间路由)
        • 子网部分可以在任意的位置
        • 地址格式: a.b.c.d/x,其中 x是 地址中子网号的长度
        • 子网掩码:32位 网络号1 主机号0
        • 查找网络号:子网掩码 and IP地址(与操作);因为在路由中只有网络号有意义,主机号没有意义
        • 路由转发表,按照表项中的网络号转发;如果都没有找到,则使用默认表项转发数据报
    • 获得一个IP地址
      • 系统管理员配置
      • DHCP: Dynamic Host Configuration Protocol
        • 从DHCP服务器中动态获得一个IP地址
        • plug-and-play
        • 配置IP地址、子网掩码、默认网关、默认出口
      • 获得一个网络的一小块子网
        • 从ISP获得地址块中分配一个小地址块(在子网的网络号中,拿出几位作为子网号)
        • 层次编址:路由聚集(route aggregation)
          • 减少路由通告的数量
          • E.g.
          • Org0: 200.23.16.0/23(16=0001|000|0)
          • Org1: 200.23.18.0/23(18=0001|001|0)
          • Org7: 200.23.30.0/23(30=0001|111|0)
          • 路由器发现Org0-Org7可以聚集(more specific routes):200.23.16.0/20
          • 聚集有时不是精确的,比如路由器拿到了Org0-Org7中的7个,也可以“吹牛”说自己可以转发200.23.16.0/20,(允许聚集有空洞);这样会导致多个路由表项与之匹配,此时采用“最长前缀匹配”,匹配最精确的路由表项进行转发
      • 一个ISP如何获得一个地址块
        • ICANN: Internet Corporation for Assigned Names and Numbers
        • 分配地址、管理DNS、分配域名,解决冲突
  • NAT: Network Address Translation
    • 本地网络只有一个有效IP地址,映射内网所有地址
    • 作用
      • 省钱
      • 内网地址改变不需要通知外网
      • 外网地址改变不需要修改内网地址
      • 安全:局域网内部的设备没有明确的地址,对外不可见
    • 支持NAT的路由器
      • 外出数据包:替换源地址和端口号为NAT IP地址和新的端口号,目标IP和端口不变
      • 记住每个转换替换对
      • 进入数据包:替换目标IP地址和端口号,采用存储在NAT映射表mapping表项 【源IP,端口】
    • NAT穿越问题:如果客户端需要连接在NAT后面的服务器
      • 静态配置NAT
      • Universal Plug and Play (UPnP) ;Internet Gateway Device (IGD)协议:允许服务器查询/增加/删除NAT中的mapping表项
      • 中继 (used in Skype):NAT后面的服务器主动建立和中继的连接,外部的客户端链接到中继
  • IPV6
    • 数据报
      • 固定的40字节头部
      • 数据报传输过程中,不允许分片
      • Priority:流中数据报的优先级
      • Next header:上层协议
    • IPv4 -> IPv6
      • 隧道Tunneling:在IPv4路由器之间传输的IPv4数据报中携带IPv6数据报
      • IPv4/IPv6双栈服务器,将IPv6数据完整的封装在IPv4分组中