什么是UDP协议?有什么作用呢?

时间 : 2020-11-23 14:20:47
编辑 : 华纳云
阅读量 : 829

     对于使用协议,选择 UDP必须非常谨慎。UDP协议在网络质量极不理想的情况下,数据包丢失问题将更加严重。但由于 UDP的特点: UDP不属于连接协议,因此具有资源消耗少、处理速度快等优点,因此一般情况下,传输音频、通常使用 UDP来处理视频和普通数据,因为即使偶尔丢失一个或两个包,对接收结果也没有多大影响。例如, ICQ和 QQ通过 UDP进行聊天。


TCP/IP整体构架概述


IP协议不是完全符合 OSI的七层参考模型。开放系统中传统的互连参考模型是一个7层的通信协议参考模型,在这个模型中,每个协议执行一个特定的任务。这个模型的设计目的是使不同的硬件在同一级别上进行通信。

七个层次分别是:物理层,数据链路层,网路层,传输层,通信层,展示层和应用层。与之相比, TCP/IP通信协议采用四层结构,每一层都调用其下一层所提供的网络来满足其自身的需求。四个层次如下:

应用层:应用程序间的沟通层,像电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。


传输层:在这一层,提供节点间的数据传输服务,如传输控制协议(TCP)、用户数据报协议(UDP)等。TCP和UDP将传输数据添加到数据包中,并传输到下一层,下一层负责传输数据,并确定数据已经传送和接收。


互连网络层:主要提供基本的数据封有传送功能,让每一块数据包都到达目的主机(不检查有没有被正确接收),像网际协议(IP)。


网络接口层:作用是实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。


TCP/IP中的协议


以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:


1. IP

网际协议

IP是TCP/IP的心脏,也是网络层中最重要的协议。


IP层接收下层(以太网设备驱动等网络接口层)发送的数据包,并把数据包送到更高层——TCP或UDP层;相反,IP层也将从TCP或UDP层接收的数据包传输到下层。IP数据包不可靠,因为IP不确认数据包是按顺序发送的还是没有损坏。IP数据包包含2个地址有发送它的主机的地址(源地址)另外一个就是接收它的主机的地址(目的地址)。


高级 TCP和 UDP服务在接收包时,通常假定包中的源地址是有效的。同样, IP地址构成了许多服务的认证基础,它们认为数据包是从一个有效的主机上发送的。IP确认包含一个选项,称为 IP源 routing,可用于在源地址和目的地址之间指定一个直接路径。对某些 TCP和 UDP服务而言,使用了这个选项的 IP包似乎是从路径上的最后一个系统传递来的,而非从其实际位置传递来的。此选项存在于测试中,表明它可以用于欺骗系统,以执行通常被禁止的连接。因此,很多依赖 IP源地址进行确认的服务都会出现问题,并被非法入侵。


2. TCP


如果IP包中有密封的TCP包,IP会把它们传到TCP层。TCP对数据包进行分类,检查错误,并连接虚电路。TCP数据包包括序列号和确认,因此可以对无序接收的数据包进行排序,损坏的数据包可以重新传输。


TCP将其信息发送给更高级别的应用程序,如Telnet服务和客户端。应用程序轮流将信息发送回TCP层,TCP层将它们向下传输到IP层、设备驱动程序和物理介质,最后传输到接收器。


面向连接的服务(如Telnet、FTP、rlogin、X Windows、SMTP)要求可靠性高,所以使用TCP。在某些情况下,DNS使用TCP(发送和接收域名数据库),但使用UDP传输关于单个主机的信息。


3.UDP


UDP与TCP在同一层,但数据包出现故障或重传。因此,UDP不适用于使用虚电路的面向连接的服务,而是主要用于面向查询响应的服务,如NFS。与FTP或Telnet相比,这些服务需要交换的信息更少。使用UDP的服务包括网落时间协议和DNS(DNS也使用TCP)。


欺骗UDP包相比于欺骗TCP包容易,因为UDP不建立初始化连接(也可以叫握手),也就是说与UDP相关的服务面临更大的危险。


4.ICMP


ICMP与IP位于同一层,用于传输IP的控制信息。它主要用于提供到目的地址的路径信息。ICMP的“重定向”消息通知主机到其他系统的更准确的路径,而“无法到达”消息指示路径有问题。此外,如果路径不可用,ICMP可以“优雅地”终止TCP连接。PING是最常用的基于ICMP的服务。


5. TCP和UDP的端口结构


TCP和UDP服务通常具有客户机/服务器关系,例如,一个Telnet服务进程在系统上开始空闲,等待连接。用户使用远程登录客户端与服务进程建立连接。客户端程序将信息写入服务进程,服务进程读取信息并发送响应,客户端程序读取响应并将其报告给用户。所以这个连接是双工的,可以用来读写。


两个系统之间的多个Telnet连接如何相互确认和协调?每个消息中的下列四项唯一地确认了TCP或UDP连接:


源IP地址 发送包的IP地址。


目的IP地址 接收包的IP地址。


源端口 源系统上的连接的端口。


目的端口 目的系统上的连接的端口。


端口是客户端程序或服务进程用来发送和接收信息的软件结构。一个端口对应一个16位数字。服务进程通常使用固定端口,例如,SMTP使用25,Xwindows使用6000。这些端口号是“众所周知的”,因为在与特定主机或服务建立连接时,需要这些地址和目的地址来进行通信。



客服咨询
7*24小时技术支持
Telegram
hncloudnoc

技术支持

渠道支持