评论

酷酷云:什么是UDP协议?有什么作用呢?

对于使用协议,选择 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。这些端口号是“众 所周知的”,因为在与特定主机或服务建立连接时,需要这些地址和目的地址来进行通信。返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
大家都在看
推荐阅读