美文网首页
网络协议分析-UDP

网络协议分析-UDP

作者: Odinmx | 来源:发表于2019-12-11 19:55 被阅读0次

UDP:

UDP位于传输层,与IP一样提供不可靠的,无连接的数据交付服务。

引入传输层的必要性:

在TCP/IP模型中,传输层位于IP层和应用层之间。源主机的应用层进程与目的主机的应用层通信时,要使用传输层的服务。因此传输层在应用层和IP层之间起着承上启下的作用。

传输层需要满足的条件:

    1. 传输层要提供比IP层质量更高的服务。

    2. 传输层要提供识别应用层进程的机制。

    3. 传输层要针对不同尺寸的应用层数据进行适当的处理。(这里主要是说TCP协议,UDP协议没有对数据尺寸进行调整的能力。)

UDP的特点:

○ 提供不可靠,无连接的数据交付服务。

○ 没有使用确认机制,所以不能保证报文全部到达。

○ 不对传入的报文进行排序处理。

○ 不提供反馈信息来控制机器之间报文传输速率。

UDP首部报文格式:

UDP数据报格式

源端口和目的端口:包含了16bit的UDP端口号,用以在各个等待接收报文的应用程序之间,对数据报进行多路分解操作。其中源端口字段可选,若选用,则指定了应答报文发往的端口,不选用,该字段应为0。

报文长度:指明以字节为单位的UDP首部和UDP数据的长度,最小值为8,即UDP首部报文长度。

UDP校验和:是可选的,如果为0,则代表不进行校验。

UDP最大的用户数据长度:IP数据报最大64kB,需要除去20字节的IP首部,8字节的UDP首部,所以UDP数据区用户内容最长为65535-20-8=65507字节

UDP校验和计算方法:

UDP校验和校验的区域包含UDP首部和数据区。从五元组来看,正确的目的地应该包含正确的端口和主机地址,所以UDP校验也要对地址进行校验。但是UDP首部不包含主机地址,所以UDP添加了一个12字节的伪首部。

这个伪首部逻辑上是UDP首部的一部分,但实际上并不传送。

伪首部结构:

伪数据报头部结构

源IP地址和目的IP地址:记录的是发送UDP报文时使用的源IP地址和目的IP地址。

协议:指明了使用的协议类型,UDP是17

UDP长度:指明了UDP数据报的长度,不包含伪首部。

对于校验和字段的使用,UDP给出了两种方案,一种是使用,另一种自然是不使用了。当使用校验和时,如果接收方检验校验和字段时发现错误,则整个数据报就会被丢弃,这未免太苛刻了,所以在2004年7月,TETF推出了UDP-lite标准。

UDP-Lite:

它将数据划分为敏感区域和非敏感区域,其中敏感区域为校验和计算的输入区域,当这个区域发生差错时,则整个数据包会被丢弃。非敏感区域发生差错时,报文不会被丢弃。

其数据报结构只是将UDP 报文中16bit的UDP长度修改为了校验和覆盖字段。

校验和覆盖字段是指从UDP数据报首部第一个字节开始计算校验和的字节数,取值为0 或者大于等于8的整数,取值为0 表示UDP数据报全部参与校验和计算,因为UDP首部必须参与校验和计算,所以起始值必须为8。任何1-7的数值都会别认为非法,数据报会被丢弃。

UDP的一些安全问题:

由于UDP是无连接的,使用简便,这便给攻击者提供了便利。

§ 一种是UDP泛洪攻击,原理是利用伪造IP地址向某个特定的目的主机端口发送大量的UDP报文。目标主机收到报文后,会将其交付给相应端口进程处理,如果该端口没有处于监听状态,目标主机就会向UDP数据报源地址回应一个ICMP报文,指明“目的端口不可达”,这是一种流量型拒绝服务攻击。

§ 另一种是基于UDP反射的分布式拒绝服务攻击。攻击者并不直接对目标主机发起攻击,而是利用互联网中的一些开放的服务器。攻击者向这些服务器发送基于UDP的请求报文,并将该报文的源地址修改为目标主机,之后数倍于请求报文的回复报文会发送给目标主机,从而对目标主机造成DDoS攻击。


欢迎指出文章中的错误,谢谢

相关文章

  • 网络协议分析-UDP

    UDP: UDP位于传输层,与IP一样提供不可靠的,无连接的数据交付服务。 引入传输层的必要性: 在TCP/IP模...

  • TCP和UDP

    TCP协议为TCP/IP协议;UDP为UDP/IP协议。TCP和UDP都是对应网络七层协议上的传输层。IP属于网络...

  • 网络

    网络 1.TCP / UDP 协议 TCP (Transmission Control Protocol)和UDP...

  • 网络协议 UDP

    UDP 面向无连接的通讯协议,传输速度快,容易丢失数据。用广播发送数据,有可能会丢包。 视频,音频通讯,QQ也用U...

  • 30.3. 企业级开发进阶2.3:UDP编程

    ** 本节内容如下** 什么是UDP协议 UDP网络编程——服务端程序开发 UDP网络编程——客户端程序开发 1....

  • 网络通信协议TCP UDP SOCKET

    IP:网络层协议; TCP和UDP:传输层协议; HTTP:应用层协议; SOCKET:TCP/IP网络的API。...

  • 网络编程

    网络 Socket 基于TCP协议的Socket编程 基于UDP协议的Socket编程

  • UDP

    网络协议是每个前端工程师都必须要掌握的知识,我们将先来学习传输层中的两个协议:UDP 和TCP。 UDP UDP ...

  • 网络协议

    网络协议 网络的五层划分是什么? 应用层,常见协议:HTTP、FTP 传输层,常见协议:TCP.UDP 网络层,常...

  • ☆技术问答集锦(四)

    2 TCP 与 UDP 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;传输层:TCP协...

网友评论

      本文标题:网络协议分析-UDP

      本文链接:https://www.haomeiwen.com/subject/fgeagctx.html