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

消除传统A类、B类等地址界限

NetId+SubID -> Network Prefix 可以任意长度

融合子网地址与子网掩码

a.b.c.d/x,其中x为前缀长度

好处:

  • 提高地址空间分配效率
  • 提高路由效率,将很多子网聚合成一个较大的子网,构造超网(前缀长度小于原规定的网络号),路由聚合

如果出现子网不连续分配,导致超网出现不合法的域,路由器应该把超网和不属于的子网都记录到路由表中,实际工作时匹配长的(地址更具体的)

DHCP协议

获得IP地址的方法:

  • 硬编码,静态配置
  • 动态配置,DHCP协议,Dynamic Host Configuration Protocol,从服务器动态获取IP地址、子网掩码、默认网关地址、DNS服务器,DHCP协议允许地址重用,支持移动用户加入网络

主机广播DHCP discover报文

DHCP服务器用DHCP offer报文响应

主机用DHCP request报文请求IP地址

DHCP服务器用DHCP ack确认分配IP地址

DHCP协议在应用层实现,请求报文封装到UDP数据段中

NAT(网络地址转换)

本地网络中使用私有地址的主机向公网通信时,需要进行地址替换

动机:

  • 一个网络只能从ISP申请一个地址
  • 本地网络设备IP地址的变更不需要通告外界网络
  • 变更ISP时,无需修改内部网络设备IP地址
  • 内部网络设备对外界网络不可见,无法直接寻址,提高安全性

实现:

  • 替换。替换源IP地址和源端口号
  • 记录。记录替换关系

使用16bit的端口号字段,可以同时支持65536个并行连接

主要争议:

  • 路由器应该只处理第三层功能(端口号为传输层段的内容,路由器对其进行了修改)
  • 违背端到端原则,如P2P应用必须考虑NAT的存在

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

功能:

  • 差错报告
  • 网络探寻

两类ICMP报文:

  • 差错报告报文:目的不可达、源抑制(拥塞控制,希望源主机降低速度)、超时(TTL超时)、参数问题、重定向
  • 网络探寻:回声请求与应答报文(探测网络是否可达,ping)、时间戳请求与应答报文

不发生ICMP差错报告报文的特殊情况:

  • ICMP差错报文发生错误
  • IP数据报分片时只发送第一个片
  • 多播IP数据报
  • 特殊地址(127.0.0.0 或 0.0.0.0)

ICMP报文封装到IP数据报中传输

IPv6

动机:

  • IPv4地址空间分配殆尽
  • 改进首部格式

数据报格式:

  • 固定长度40字节的基本首部,可以有多个扩展首部(扩展首部和数据统称载荷)
  • 不允许分片

版本:兼容IPv4

流标签:标识数据报流

载荷长度:扩展首部加数据

下一个首部:指向下一个扩展首部或上一层协议的首部(如TCP首部)

跳步限制:TTL

源地址、目的地址:128位

改变:

  • 校验和移除,减少每跳处理时间
  • 允许选项,但从基本首部移除
  • 新版ICMP协议,增加报文类型,如分组过大(不支持分片),多播组管理功能

地址表现形式:

按16比特分割,用冒号分开,16进制表示,连续的0用连续两个冒号压缩

基本地址类型:

  • 单播
  • 多播,广播被定义为特殊的多播
  • 任意播,一对一组中之一

v4向v6过渡:

隧道:v6数据报作为v4的载荷