计算机网络笔记No.19

互联网控制报文协议ICMP与IPv6简介

    • ICMP
    • IPv6简介

ICMP

ICMP (Internet Control Message Protocol)支持主机或路由器发送两类报文:

  • 差错(或异常)报告
  • 网络探询

差错报告报文共有5种:

目的不可达
源抑制(Source Quench)
超时/超期
参数问题
重定向 (Redirect)

网络探询报文共2种:

回声(Echo)请求与应答报文(Reply)
时间戳请求与应答报文

举例一些ICMP报文:
计算机网络笔记No.19_第1张图片

也存在几种不会发送ICMP报文的情况:

  • 对ICMP差错报告报文不再发送 ICMP差错报告报文
  • 除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错报告报文
  • 对所有多播IP数据报均不发送 ICMP差错报告报文
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送ICMP 差错报告报文

以下几种 ICMP 报文已不再使用:

  • 信息请求与应答报文
  • 子网掩码请求和应答报文
  • 路由器询问和通告报文

ICMP报文的格式

  • ICMP报文封装到IP数据报中传输
    计算机网络笔记No.19_第2张图片

其中数据部分包含了发生差错的报文的首部信息及后8字节信息:
计算机网络笔记No.19_第3张图片

ICMP的应用举例:Traceroute
可以利用ICMP的性质来检测跟踪报文到达目的主机的路由器路径
(短时间内数据发送的路由路径不会变化)

  • 源主机向目的主机发送一系列UDP数据报
    第1组IP数据报TTL =1,探测第一个路由
    第2组IP数据报TTL=2, etc,探测第二个,往后······
    目的端口号为不可能使用的端口号,一般大于60000

  • 当第n组数据报(TTL=n)到达第n个路由器时:
    路由器丢弃数据报
    向源主机发送ICMP报文(type=11, code=0)
    ICMP报文携带路由器名称和IP地址信息

  • 当ICMP报文返回到源主机时,记录RTT

停止准则:
UDP数据报最终到达目的主机
目的主机返回“目的端口不可达”ICMP报文 (type=3, code=3)
源主机停止

IPv6简介

IPv6 产生的最初动机: 32位IPv4地址空间已分配殆尽
其他动机: 改进首部格式、快速处理/转发数据报、支持QoS

IPv6数据报格式:

  • 固定长度的40字节基本首部
  • 不允许分片
    计算机网络笔记No.19_第4张图片

计算机网络笔记No.19_第5张图片

优先级(priority): 标识数据报的优先级
==流标签(flow Label): ==标识同一“流”中的数据报
==下一个首部(next header): ==标识下一个选项首部或上层协议首部(如TCP首部)

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

  • IPv6地址表示形式

IPv6地址共128位,采用8个16进制数用冒号隔开表示,中间有多个0可用::表示,但是只能使用一次;
同时支持将IPv4嵌入使用;
IPv6不再使用掩码,使用前缀;
在URLs中用 [ ] 隔开,后加端口号

计算机网络笔记No.19_第6张图片

IPv6基本地址类型:
单播(unicast):一对一
多播(multicast):一对多,只能是服务端对客户端
任意播(anycast):一对一组之一(最近一个)通信

计算机网络笔记No.19_第7张图片

  • IPv4向IPv6过渡
    不可能在某个时刻所有路由器同时被更新为IPv6,因为主机数量太大

隧道(tunneling)技术: IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络

计算机网络笔记No.19_第8张图片
计算机网络笔记No.19_第9张图片

————————————————————————————————————————————————————————

由于水平有限及时间仓促或疏忽大意以及其他的一些原因,文中难免会存在一些错误,如若有发现不正确的地方,还请大佬们评论或私信告之于我,以便及时纠错

你可能感兴趣的:(计算机网络学习笔记,网络)