计算机网络协议分析 第八课 ICMPv6 UDP

计算机网络协议分析 第8课 ICMPv6 UDP

第3章 网络层协议

3.3 ICMP

5.3 ICMPv6

ICMPv6包含了ICMPv4,IGMP和ARP的功能
计算机网络协议分析 第八课 ICMPv6 UDP

ICMPv6报文类型

差错类 :(类型 报文类型)

  • 1 终点不可达
  • 2 数据包太大
  • 3 超时
  • 4 参数问题
  • 137 改变路由

信息类:(类型 报文类型)

  • 128或129 Echo请求/应答
  • 133或134 路由器询问/通告
  • 135/136 邻居询问/通告
  • 142 反向邻居询问/通告
  • 130/143 成员关系查询/报文

可以看到和ICMPv4的其实差不多,多了几个igmp等的类型

数据包太大报文

当IPv6数据包的大小超过了链路的MTU值,路由器会丢弃,并向源节点发送此信息。
计算机网络协议分析 第八课 ICMPv6 UDP
注意:区分链路MTU和路径MTU

超时报文

  • 当IPv6数据报的TTL=0时
  • 当一个数据报的某些分片未能按期到达时

计算机网络协议分析 第八课 ICMPv6 UDP
这里的部分由IPv6首部+前8字节组成

代码值:

  • 0:超出跳数限制(数据包的跳数值为0)
  • 1:分片重组超时(IPv6数据包在分片重组时超时)

参数问题报文

  • 当IPv6数据报的基本首部出错时

计算机网络协议分析 第八课 ICMPv6 UDP
代码值:

  • 0:IPv6包头参数错误
  • 1:未识别的< Next Header>类型
  • 2:未识别的IPv6可选项
  • 3:第一个分片包中包头数据不完整

改变路由报文

  • 网络拓扑变化时,用于更新主机的路由表

计算机网络协议分析 第八课 ICMPv6 UDP

Echo请求/应答报文

  • 检测两个节点之间的网络连通性

计算机网络协议分析 第八课 ICMPv6 UDP
一对应答请求报文的数据部分的值都是一样的

路由器询问/通告报文

  • 主机发送路由器询问报文寻找默认路由器
  • 路由器发送路由器通告报文进行响应或定期通告

计算机网络协议分析 第八课 ICMPv6 UDP
两种使用情况:

  1. 移动网络有新的设备接入的时候使用
  2. 有线环境的使用

邻居询问/通告报文

  • 作用与ARP相同

计算机网络协议分析 第八课 ICMPv6 UDP
源主机向目的主机发送报文时需要知道MAC地址,IPv4中的ARP是广播的,但是IPv6没有广播,就需要邻居询问/通告报文通过组播来发送。
计算机网络协议分析 第八课 ICMPv6 UDP

第6章 用户数据报协议UDP

6.1 传输层概述

计算机网络协议分析 第八课 ICMPv6 UDP
三个层次的作用范围:

  • 链路层的接收与发送是局限于结点之间
  • 网络层的作用范围是源端到目标端,根据IP地址传输数据报
  • 运输层的作用范围是进程到进程之间,根据端口号再给到相应进程

IP地址与端口号

例如:一个客户与两个服务器之间的通信,假设P1是web服务,P2是FTP服务,P3是Email服务
计算机网络协议分析 第八课 ICMPv6 UDP
P1的端口是80,P3的端口号可以是80(web)或25(SMTP),分组2的源IP与分组1及分组3的源IP相同,但目的IP不同,源端口三个都不一样,P2目的端口对应21

运输层协议

计算机网络协议分析 第八课 ICMPv6 UDP

  • UDP(DHCP,DNS):面向报文,无连接,不可靠
  • TCP(HTTP,FTP):面向字节流,面向连接,可靠,流量控制,拥塞控制
  • SCTP(H.248,H323,IUA,M2UA):面向报文,可靠,流量控制,拥塞控制

UDP面向报文

计算机网络协议分析 第八课 ICMPv6 UDP

  • 发送方UDP对应用层提交的报文,添加首部后交付给网络层
  • 接收方UDP对网络层交上来的UDP数据报,去除首部后交给应用进程

TCP面向字节流

计算机网络协议分析 第八课 ICMPv6 UDP
因为有拥塞控制,所以会判断自己的发送缓存和接受缓存,在网络不好的时候,会把字节流切成较短的报文发送出去,也会在网络好的时候把几个短的报文并起来(区别于UDP的对报文内容不作为)

6.2 UDP分组格式

计算机网络协议分析 第八课 ICMPv6 UDP
:长度的范围是多少?
:8~65535。因为UDP必须要首部,但可以不要数据。于是至少就有8个字节,长度字段就两个字节,于是对应长度最长为65535字节

检验和字段使用的是伪首部进行计算
端口号:

  • DNS53;
  • DHCP67/68;
  • TFTP(简单文件传输协议)69;
  • SNMP(网络管理协议)161;
  • RIP520

UDP端口扫描

源主机向目标主机的某个UDP端口发送一个UDP报文段,若源主机:

  • 收到端口不可达ICMP报文,表示目标主机该端口是关闭的
  • 什么都没有收到,表示目标主机的该端口是打开的

UDP检验和

计算机网络协议分析 第八课 ICMPv6 UDP

  • 由发送方计算并填写,由接收方进行检验
  • 当接收方检测到差错时,丢弃整个UDP分组
  • UDP伪首部来源于IP首部最后12字节,发送时不带伪首部,但是接收时会通过IP首部补齐伪首部
  • 计算就是转化为16进制,逐位相加求和,然后求反

6.3 UDP-Lite标准

  • 当UDP接收方检测到校验和有差错时,将丢弃整个UDP报文段
  • UDP校验的两种方案:
    • 使用校验和
    • 不使用校验和(校验和字段为0)

问题:使用校验和时,发送方计算出来的校验和为0,如何处理?
:填入65535来防止接收方混淆;不存在求和结果为0,所以不存在求反后为65535

UDP-Lite标准:

  • 首部必须使用校验和
  • 数据部分可部分地使用校验和

UDP-Lite分组

计算机网络协议分析 第八课 ICMPv6 UDP

  • UDP分组的长度字段是冗余的,不需要整个字段也可以算出来
  • 校验和覆盖:指校验的范围,取值范围:0或>=8,等于0时校验整个UDP分组
  • 使用UDP和UDP-Lite时,应用层使用的端口号不变,但此时IP首部中的协议字段的值是136(UDP是17)

6.4 UDP与IPv6

计算机网络协议分析 第八课 ICMPv6 UDP

  • 在IPv6网络中的UDP校验和是强制的
  • 下一个首部=136

6.5 UDP反射DDoS攻击

计算机网络协议分析 第八课 ICMPv6 UDP
攻击机H先用端口扫描,收集互联网中的哪些服务器开放的端口X,得到这些服务器的IP列表,然后发出请求报文,向目标主机发送响应报文

上一课:第7课 ICMP

上一篇:oracle的基本查询~上


下一篇:Arduino -- functions