UDP and UDP Protocol

传输层

image-20211122204641955

Transport Layer,从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层;

基础概念

UDP

UDP:用户数据报协议(User Datagram Protocol),不需建立连接,提供不可靠交互,效率高

TCP

TCP:传输控制协议(Transmission Control Protocol),需建立连接,提供可靠交互,效率较低

传输协议数据单元

传输协议数据单元,TPDU (Transport Protocol Data Unit),两个对等传输实体在通信时传送的数据单位,UDP 报文或用户数据报 VS TCP 报文段(segment)

端口

端口:运输层服务访问点 TSAP,让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程

可以将端口看做是应用层进程的 ID

熟知端口:0 - 1023

一般端口:1024 - ,用于随时分配给请求通信的客户进程

套接字

套接字:TCP 使用连接作为最基本的抽象,同时将连接端点称为套接字(Socket)

套接字 = IP 地址 + 端口号

image-20211028150508864

传输层功能

1、传输层为应用进程之间提供端到端的逻辑通信

网络层为主机之间提供逻辑通信

2、对收到的报文提供差错检测

3、既提供面向连接的 TCP 又提供无连接的 UDP,因此向上提供可靠的和不可靠的逻辑通信信道

UDP

User Datagram Protocol,用户数据报协议,提供了端口功能与差错检测功能

Strength:发送数据前不需要建立连接,不需要维持连接,首部开销小(仅 8 个字节);对方的传输层收到 UDP 报文后也不需要给出确认;网络出现的拥塞不会使源主机的发送速率降低,这对某些实时应用是很重要的

报文格式

首部有 8 个字节,由源端口、目的端口、长度和校验和 4个字段组成

伪首部:用来生成校验和,只是一种根据真实的首部部分数据抽象出来的一种数据结构。并没有在数据包中真实的存在。包括源 IP,目的 IP,填充,协议号以及 包长度

校验和:在接收端收到数据时,判断协议首部和数据是否被破坏

image-20211122210359366

伪首部中为什么要填充 8 个字符

因为校验和生成的过程要求伪首部的长度应为 16 的倍数,填充前为 11 * 8,填充后为 12 * 8

校验和计算过程

1、以 16 位为单位,拆分伪首部,UDP 首部以及数据部分

image-20211122211410103

2、按照二进制反码规则执行求和运算:0+0=0 1+0=0+1=1 1+1=10

3、将求和结果求反码即得到校验和

4、接收端收到数据后根据 TCP 首部数据构造出伪首部,重复生成校验和一直到取反的前一步,将得到的结果值与 TCP 首部中的校验和相加,如果是 16 个 1,则校验成功

UDP安全威胁

UDP Flood

泛洪攻击,属于拒绝服务攻击,通过短时间内产生大量的流量对目标网站或整个网络进行带宽或资源消耗,使目标无法处理大量数据包,导致服务中断或停止

攻击方式

Attack Point:常见的情况是利用大量 UDP 小包冲击 DNS 服务器或 Radius 认证服务器、流媒体视频服务器

1、UDP 无连接,因此存在较少的验证和错误检查,使得 Perpetrator 以更小的代价实现 Dos 攻击

2、目标站点只要开了一个 UDP 端口提供相关服务的话,那么就可针对相关服务进行攻击

UDP Flood 检测

1、正常应用情况下,UDP 包双向流量会基本相等,而且大小和内容都是随机的,变化很大。

2、针对同一目标的 UDP 包在一侧大量出现,并且内容和大小都比较固定

UDP Flood 防御

1、限速;

2、报文内容特征匹配;

3、IP 特征 - ACL;

4、随机丢包

UDP Flood 评价

该攻击是一种消耗对方资源,同时也消耗攻击者自身资源的攻击方式,现在已经逐渐被其变种 UDP 反射放大攻击所代替

UDP 反射放大攻击

Principle: 很多 UDP 应用的响应包远大于请求包,因此通过伪造源 IP 地址,让大量 UDP 响应包攻击受害主机,使其提供正常服务

Strength: 低成本,高隐蔽性

image-20211028152455221

常见 UDP 反射放大攻击类型

反射放大攻击类型

防御

1、IP 或 Port 限速

2、报文特征学习

3、服务白名单

4、地理位置过滤

5、扩容带宽和服务器

6、采用高可用架构