计算机网络协议分析 第8课 ICMPv6 UDP
第3章 网络层协议
3.3 ICMP
5.3 ICMPv6
ICMPv6包含了ICMPv4,IGMP和ARP的功能
ICMPv6报文类型
差错类 :(类型 报文类型)
- 1 终点不可达
- 2 数据包太大
- 3 超时
- 4 参数问题
- 137 改变路由
信息类:(类型 报文类型)
- 128或129 Echo请求/应答
- 133或134 路由器询问/通告
- 135/136 邻居询问/通告
- 142 反向邻居询问/通告
- 130/143 成员关系查询/报文
可以看到和ICMPv4的其实差不多,多了几个igmp等的类型
数据包太大报文
当IPv6数据包的大小超过了链路的MTU值,路由器会丢弃,并向源节点发送此信息。
注意:区分链路MTU和路径MTU
超时报文
- 当IPv6数据报的TTL=0时
- 当一个数据报的某些分片未能按期到达时
这里的部分由IPv6首部+前8字节组成
代码值:
- 0:超出跳数限制(数据包的跳数值为0)
- 1:分片重组超时(IPv6数据包在分片重组时超时)
参数问题报文
- 当IPv6数据报的基本首部出错时
代码值:
- 0:IPv6包头参数错误
- 1:未识别的< Next Header>类型
- 2:未识别的IPv6可选项
- 3:第一个分片包中包头数据不完整
改变路由报文
- 网络拓扑变化时,用于更新主机的路由表
Echo请求/应答报文
- 检测两个节点之间的网络连通性
一对应答请求报文的数据部分的值都是一样的
路由器询问/通告报文
- 主机发送路由器询问报文寻找默认路由器
- 路由器发送路由器通告报文进行响应或定期通告
两种使用情况:
- 移动网络有新的设备接入的时候使用
- 有线环境的使用
邻居询问/通告报文
- 作用与ARP相同
源主机向目的主机发送报文时需要知道MAC地址,IPv4中的ARP是广播的,但是IPv6没有广播,就需要邻居询问/通告报文通过组播来发送。
第6章 用户数据报协议UDP
6.1 传输层概述
三个层次的作用范围:
- 链路层的接收与发送是局限于结点之间
- 网络层的作用范围是源端到目标端,根据IP地址传输数据报
- 运输层的作用范围是进程到进程之间,根据端口号再给到相应进程
IP地址与端口号
例如:一个客户与两个服务器之间的通信,假设P1是web服务,P2是FTP服务,P3是Email服务
P1的端口是80,P3的端口号可以是80(web)或25(SMTP),分组2的源IP与分组1及分组3的源IP相同,但目的IP不同,源端口三个都不一样,P2目的端口对应21
运输层协议
- UDP(DHCP,DNS):面向报文,无连接,不可靠
- TCP(HTTP,FTP):面向字节流,面向连接,可靠,流量控制,拥塞控制
- SCTP(H.248,H323,IUA,M2UA):面向报文,可靠,流量控制,拥塞控制
UDP面向报文
- 发送方UDP对应用层提交的报文,添加首部后交付给网络层
- 接收方UDP对网络层交上来的UDP数据报,去除首部后交给应用进程
TCP面向字节流
因为有拥塞控制,所以会判断自己的发送缓存和接受缓存,在网络不好的时候,会把字节流切成较短的报文发送出去,也会在网络好的时候把几个短的报文并起来(区别于UDP的对报文内容不作为)
6.2 UDP分组格式
问:长度的范围是多少?
答:8~65535。因为UDP必须要首部,但可以不要数据。于是至少就有8个字节,长度字段就两个字节,于是对应长度最长为65535字节
检验和字段使用的是伪首部进行计算
端口号:
- DNS53;
- DHCP67/68;
- TFTP(简单文件传输协议)69;
- SNMP(网络管理协议)161;
- RIP520
UDP端口扫描
源主机向目标主机的某个UDP端口发送一个UDP报文段,若源主机:
- 收到端口不可达ICMP报文,表示目标主机该端口是关闭的
- 什么都没有收到,表示目标主机的该端口是打开的
UDP检验和
- 由发送方计算并填写,由接收方进行检验
- 当接收方检测到差错时,丢弃整个UDP分组
- UDP伪首部来源于IP首部最后12字节,发送时不带伪首部,但是接收时会通过IP首部补齐伪首部
- 计算就是转化为16进制,逐位相加求和,然后求反
6.3 UDP-Lite标准
- 当UDP接收方检测到校验和有差错时,将丢弃整个UDP报文段
- UDP校验的两种方案:
- 使用校验和
- 不使用校验和(校验和字段为0)
问题:使用校验和时,发送方计算出来的校验和为0,如何处理?
答:填入65535来防止接收方混淆;不存在求和结果为0,所以不存在求反后为65535
UDP-Lite标准:
- 首部必须使用校验和
- 数据部分可部分地使用校验和
UDP-Lite分组
- UDP分组的长度字段是冗余的,不需要整个字段也可以算出来
- 校验和覆盖:指校验的范围,取值范围:0或>=8,等于0时校验整个UDP分组
- 使用UDP和UDP-Lite时,应用层使用的端口号不变,但此时IP首部中的协议字段的值是136(UDP是17)
6.4 UDP与IPv6
- 在IPv6网络中的UDP校验和是强制的
- 下一个首部=136
6.5 UDP反射DDoS攻击
攻击机H先用端口扫描,收集互联网中的哪些服务器开放的端口X,得到这些服务器的IP列表,然后发出请求报文,向目标主机发送响应报文
上一课:第7课 ICMP