欢迎来到 跌倒的小黄瓜 的博客

♪(^∇^*)我要当大佬,(#^.^#)哈哈哈哈,(。-ω-)zzz我要成为优秀的人,(*^▽^*)٩(๑>◡<๑)۶O(∩_∩)O哈哈~~~~~~~~欢迎━(*`∀´*)ノ亻!

计算机网络-网络层2

IP 协议-CIDR 与路由聚合

CIDR

无类域间路由(CIDR: Classless InterDomain Routing)

  • 消除传统的 A 类、B 类和 C 类地址界限
    • NetID+SubID→Network Prefix (Prefix)可以任意长度
  • 融合子网地址与子网掩码,方便子网划分
    • 无类地址格式:a.b.c.d/x,其中x为前缀长度

CIDR 与路由聚合

无类域间路由(CIDR: Classless InterDomain Routing)

  • 提高IPv4 地址空间分配效率
  • 提高路由效率
    • 将多个子网聚合为一个较大的子网
    • 构造超网(supernetting)
    • 路由聚合(route aggregation)




层级编址使得路由信息通告更高效:

DHCP 协议

如何获得IP 地址?

动态主机配置协议(DHCP)

  • 主机广播 “DHCP discover”(发现报文)
  • DHCP服务器利用 “DHCP offer” (提供报文) 进行响应
  • 主机请求IP地址: “DHCP request” (请求报文)
  • DHCP服务器分配IP地址: “DHCP ack” (确认报文)


  • DHCP协议在应用层实现

    • 请求报文封装到UDP数据报中
    • IP广播
    • 链路层广播(e.g. 以太网广播)
  • DHCP服务器构造ACK报文

    • 包括分配给客户的IP地址、子网掩码、默认网关、DNS服务器地址

网络地址 转换 换(NAT)


动机:

  • 只需/能从ISP申请一个IP地址
    • IPv4地址耗尽
  • 本地网络设备IP地址的变更,无需通告外界网络
  • 变更ISP时,无需修改内部网络设备IP地址
  • 内部网络设备对外界网络不可见,即不可直接寻址(安全)

实现:

  • 替换
    • 利用(NAT IP 地址, 新端口号)替换每个外出IP数据报的( 源IP 地址, 源端口号)
  • 记录
    • 将每对(NAT IP 地址, 新端口号) 与( 源IP 地址, 源端口号)的替换信息存储到NAT转换表中
  • 替换
    • 根据NAT转换表,利用( 源IP 地址, 源 源 端口号)替换每个进入内网IP数据报的( 目的IP 地址, 目的端口号),即(NAT IP地址, 新端口号)
  • 16-bit端口号字段:
    • 可以同时支持60,000多并行连接!
  • NAT主要争议:
    • 路由器应该只处理第3层功能
    • 违背端到端通信原则
      • 应用开发者必须考虑到NAT的存在,e.g., P2P应用
    • 地址短缺问题应该由IPv6来解决

NAT 穿透问题

  • 客户期望连接内网地址为10.0.0.1的服务器

    • 客户不能直接利用地址10.0.0.1直接访问服务器
    • 对外唯一可见的地址是NAT地址: 138.76.29.7
  • 解决方案1: 静态配置NAT,将特定端口的连接请求转发给服务器

    • e.g., (138.76.29.7, 2500) 总是转发给(10.0.0.1, 25000)
  • 解决方案2: 利用UPnP(Universal Plug and Play)互联网网关设备协议 (IGD-Internet Gateway Device )自动配置:

    • 学习到NAT公共IP地址(138.76.29.7)
    • 在NAT转换表中,增删端口映射
  • 解决方案3: 中继(如Skype)

    • NAT内部的客户与中继服务器建立连接
    • 外部客户也与中继服务器建立连接
    • 中继服务器桥接两个连接的分组

互联网控制报文协议(ICMP)

+互联网控制报文协议 ICMP (Internet Control MessageProtocol)支持主机或路由器:

  • 差错(或异常)报告
  • 网络探询
  • 两类ICMP 报文:
    • 差错报告报文(5种)
      • 目的不可达
      • 源抑制(Source Quench)
      • 超时/超期
      • 参数问题
      • 重定向 (Redirect)
    • 网络探询报文(2组)
      • 回声(Echo)请求与应答报文(Reply)
      • 时间戳请求与应答报文

ICMP报文

例外情况

  • 几种不发送 ICMP差错报告报文的特殊情况:
    • 对ICMP差错报告报文不再发送 ICMP差错报告报文
    • 除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错报告报文
    • 对所有多播IP数据报均不发送 ICMP差错报告报文
    • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送ICMP 差错报告报文
    • 几种 ICMP 报文已不再使用
    • 信息请求与应答报文
    • 子网掩码请求和应答报文
    • 路由器询问和通告报文
  • 几种 ICMP 报文已不再使用
    • 信息请求与应答报文
    • 子网掩码请求和应答报文
    • 路由器询问和通告报文

ICMP 报文式

ICMP 差错 报告

ICMP 的应用: 举例:Traceroute

IPv6 简介

  • 最初动机: 32位IPv4地址空间已分配殆尽

  • 其他动机: 改进首部格式

    • 快速处理/转发数据报
    • 支持QoS
      I+ Pv6数据报格式:
    • 固定长度的40字节基本首部
    • 不允许分片
  • 优先级(priority): 标识数据报的优先级

  • 流标签(flow Label): 标识同一“流”中的数据报

  • 下一个首部(next header): 标识下一个选项首部或上层协议首部(如TCP首部)

其他变 改变 vs IPv4

  • 校验和(checksum): 彻底移除,以减少每跳处理时间
  • 选项(options): 允许,但是从基本首部移出,定义多个选项首部,通过“下一个首部”字段指示
  • ICMPv6: 新版ICMP
    • 附加报文类型,e.g. “Packet Too Big”
    • 多播组管理功能

IPv6 地址表示形式

IPv6 基本地址类型

IPv4 向IPv6过渡

  • 不可能在某个时刻所有路由器同时被更新为IPv6
    • 不会有 “标志性的日期”
    • IPv4和IPv6路由器共存的网络如何运行?
  • 隧道(tunneling): IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络

隧道(tunneling

posted @ 2020-04-03 14:43  跌倒的小黄瓜  阅读(...)  评论(...编辑  收藏