tcp协议与 udp协议的区别

合集下载

tcp协议与 udp协议的区别

tcp协议与 udp协议的区别

tcp协议与 udp协议的区别TCP协议与UDP协议的区别概述:TCP(传输控制协议)和UDP(用户数据报协议)是互联网中最常用的传输层协议。

它们在数据传输的可靠性、连接性、速度和资源消耗等方面有着显著的区别。

本协议旨在详细介绍TCP协议和UDP协议的区别。

一、连接性:1. TCP协议:TCP协议是一种面向连接的协议,通信前需要建立连接,然后才能进行数据传输。

在通信过程中,TCP协议通过三次握手建立连接,并通过四次挥手关闭连接。

TCP协议提供可靠的数据传输,确保数据的完整性和顺序。

2. UDP协议:UDP协议是一种无连接的协议,通信双方不需要建立连接即可直接传输数据。

UDP协议不提供可靠性保证,数据传输过程中可能丢失、重复或乱序。

二、数据传输可靠性:1. TCP协议:TCP协议通过序列号、确认应答、重传机制等手段保证数据传输的可靠性。

如果数据包丢失或损坏,发送方会重新发送数据,直到接收方正确接收。

2. UDP协议:UDP协议不提供数据传输的可靠性保证,数据包的丢失、损坏或乱序在UDP 中是常见的情况。

UDP适用于实时性要求高、对数据传输可靠性要求较低的应用场景,如音频、视频流传输等。

三、数据传输效率:1. TCP协议:TCP协议通过拥塞控制、流量控制等机制保证网络的稳定和公平性,但这也导致了一定的传输延迟。

TCP协议的传输效率相对较低,适用于对实时性要求不高的应用场景。

2. UDP协议:UDP协议没有拥塞控制等机制,传输效率较高。

UDP协议适用于对实时性要求高、对传输延迟要求较低的应用场景,如在线游戏、实时通信等。

四、资源消耗:1. TCP协议:TCP协议需要维护连接状态、序列号等信息,占用较多的内存和计算资源。

同时,TCP协议的拥塞控制机制也会占用一定的带宽。

2. UDP协议:UDP协议不需要维护连接状态等信息,占用的内存和计算资源相对较少。

UDP 协议的资源消耗较低。

五、适用场景:1. TCP协议:TCP协议适用于对数据传输可靠性要求较高的应用场景,如网页浏览、文件传输等。

TCP和UDP区别

TCP和UDP区别

TCP和UDP区别
TCP和UDP都是传输层协议.
UDP(⽤户数据报协议)提供⽆连接的通信,不能保证数据包被发送到⽬标地址,⾳频媒体传输和及时通讯常常⽤到UDP
TCP(传输控制协议)是⼀种⾯向连接的,可靠的基于字节流的通信协议,⼀般⽤于⽂件传输
⼆者区别如下:
1>TCP是⾯向连接的传输协议,UDP提供的是⽆连接的数据报传输协议
2>TCP具有⾼可靠性,具有分段阐述,数据校验,流量控制,超时重传,拥塞控制等机制;
UDP在传输数据报前不建⽴连接,不对数据报进⾏检查和修改,⽆需等待对⽅应答,因此可能出现分组丢失,重复乱序等问题
3.>TCP对系统资源要求更⾼,UDP对系统资源的要求少
4>UDP具有较好的实时性,⼯作效率⽐TCP⾼
5>UDP段结构⽐TCP段结构简单,⽹络开销⼩
QQ采⽤什么通信:
QQ的通信协议以UDP为主,TCP为辅;
QQ的服务器需要容纳⼗⼏万的并发,是⼀个⾮常⼤规模,且中国⽹络复杂,由上区别可知UDP对系统资源要求少,⽹络开销少,因此为减轻服务器压⼒,
多数采⽤UDP(⽂字,图⽚,登录等),QQ进⾏⽂件传输时,就会使⽤TCP作为可靠传输的保证.
DNS采⽤的是UDP 还是TCP?
DNS在进⾏区域传输的时候使⽤TCP,其他时候使⽤UDP;
当辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫区域传输
为什么QQ能上⽹,其他的不能?
因为QQ是通过IP地址登录,如果其他的不能上⽹,很可能是DNS设置错误,DNS是将⽹址转化为IP地址的协议,从⽽进⾏IP访问.⽽QQ不需要DNS解析,
直接⽤IP和服务器连接.。

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种互联网传输协议,它们在数据传输过程中有着不同的特点和应用场景。

本文将从协议特点、工作原理、优缺点和应用场景等方面对TCP和UDP进行比较,并探讨它们在实际应用中的差异。

1.协议特点TCP是一种面向连接的、可靠的传输协议,它保证数据的可靠传输和数据的顺序性。

具体来说,TCP通过三次握手建立连接,通过滑动窗口和确认机制来保证数据的可靠传输,通过序号和应答机制来保证数据的顺序性。

因此,TCP适合对数据传输可靠性要求高的应用场景,比如文件传输、网页浏览等。

UDP是一种无连接的、不可靠的传输协议,它不保证数据的可靠传输和数据的顺序性。

具体来说,UDP没有建立连接的过程,也没有确认机制和序号机制,因此对数据传输的可靠性和顺序性没有保证。

UDP适合对实时性要求高的应用场景,比如音视频传输、实时游戏等。

2.工作原理TCP和UDP的工作原理有着明显的区别。

TCP的工作原理如下:1)建立连接:客户端与服务器端通过三次握手建立连接,确定通信双方的初始序号。

2)数据传输:数据传输过程中,TCP采用滑动窗口和确认机制来保证数据的可靠传输,采用序号和应答机制来保证数据的顺序性。

3)断开连接:数据传输完成后,客户端与服务器端通过四次挥手断开连接,释放资源。

UDP的工作原理如下:1)数据传输:客户端通过封装数据包,直接发送给服务器端,不需要建立连接。

2)不可靠性:数据传输过程中,UDP不保证数据的可靠传输和数据的顺序性,也没有确认机制和序号机制。

3)实时性:由于UDP没有建立连接的过程和确认机制,因此传输延迟较小,适合对实时性要求高的应用场景。

3.优缺点TCP和UDP各有其优缺点,根据具体的应用场景选择合适的传输协议。

TCP的优点如下:1)可靠性高:TCP采用滑动窗口和确认机制来保证数据的可靠传输,保证数据不丢失、不重复、按序传输。

TCP和UDP的区别及各自优缺点区别

TCP和UDP的区别及各自优缺点区别

TCP和UDP的区别及各⾃优缺点区别区别⼀、是否基于连接TCP是⾯向连接的协议,⽽UDP是⽆连接的协议。

即TCP⾯向连接;UDP是⽆连接的,即发送数据之前不需要建⽴连接。

区别⼆、可靠性和有序性区别TCP 提供交付保证(Tcp通过校验和,重传控制,序号标识,滑动窗⼝、确认应答实现可靠传输),⽆差错,不丢失,不重复,且按序到达,也保证了消息的有序性。

该消息将以从服务器端发出的同样的顺序发送到客户端,尽管这些消息到⽹络的另⼀端时可能是⽆序的。

TCP协议将会为你排好序。

UDP不提供任何有序性或序列性的保证。

UDP尽最⼤努⼒交付,数据包将以任何可能的顺序到达。

TCP的逻辑通信信道是全双⼯的可靠信道,UDP则是不可靠信道区别三、实时性UDP具有较好的实时性,⼯作效率⽐TCP⾼,适⽤于对⾼速传输和实时性有较⾼的通信或⼴播通信。

区别四、协议⾸部⼤⼩TCP⾸部开销20字节; UDP的⾸部开销⼩,只有8个字节。

区别五、运⾏速度TCP速度⽐较慢,⽽UDP速度⽐较快,因为TCP必须创建连接,以保证消息的可靠交付和有序性,毕竟TCP协议⽐UDP复杂。

区别六、拥塞机制UDP没有拥塞控制,因此⽹络出现拥塞不会使源主机的发送速率降低(对实时应⽤很有⽤,如IP电话,实时视频会议等)区别七、流模式(TCP)与数据报模式(UDP);TCP⾯向字节流,实际上是TCP把数据看成⼀连串⽆结构的字节流;UDP是⾯向报⽂的。

区别⼋、资源占⽤TCP对系统资源要求较多,UDP对系统资源要求较少。

TCP被认为是重量级的协议,⽽与之相⽐,UDP协议则是⼀个轻量级的协议。

因为UDP传输的信息中不承担任何间接创造连接,保证交货或秩序的的信息。

这也反映在⽤于承载元数据的头的⼤⼩。

区别九、应⽤每⼀条TCP连接只能是点到点的;UDP⽀持⼀对⼀,⼀对多,多对⼀和多对多的交互通信。

基于UDP不需要建⽴连接,所以且适合多播的环境,UDP是⼤量使⽤在游戏和娱乐场所。

优缺点基于上⾯的区别;TCP和UDP的优缺点也很明显了。

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用TCP和UDP是互联网中最常用的两种通讯协议,正如两种不同的语言,它们各有优点和场合。

本文将重点探讨TCP与UDP的区别及其应用。

1. TCP和UDP的区别TCP(Transmission Control Protocol)是一种面向连接的协议,它保证数据传输的可靠性和有序性,是应用最为广泛的协议之一。

UDP (User Datagram Protocol)则是一种无连接的协议,它不保证数据传输的可靠性和有序性,但是速度较快,适用于一些实时性较高的应用。

1.1面向连接vs无连接TCP是一种面向连接的协议,在数据传输之前要先建立连接,即三次握手。

这样可以保证数据传输的可靠性和有序性。

如果数据在传输过程中出现丢包、延迟等问题,TCP会尝试重传数据包,保证数据的完整性。

但是,TCP连接的建立和断开需要额外的时间和资源,尤其是在网络拥塞的情况下,会增加一定的延迟。

UDP则是一种无连接的协议,不需要建立连接,传输速度较快。

但是,由于其无连接的特性,数据传输过程中出现丢包、延迟等问题时,UDP不会重传数据包,因此不保证数据传输的完整性。

也就是说,UDP更适合一些实时性要求高,但数据完整性要求不高的应用场合,例如实时视频流、音频传输、游戏等。

1.2可靠性vs速度TCP保证了数据传输的可靠性,可以保证数据不会丢失,数据的接收顺序也是有序的。

但是,由于TCP在传输数据之前要建立连接、拆除连接等操作,需要额外的时间和资源,因此速度相对较慢。

TCP也有一些针对网络拥塞等问题的优化措施,例如滑动窗口协议、流量控制和拥塞控制等。

UDP则是一种快速传输数据的协议,它不保证数据的可靠性和有序性,数据包间的传输不存在顺序问题,也就是说,UDP在保证实时性的同时,牺牲了数据传输的可靠性和有序性。

1.3应用场合的差异TCP适用于数据完整性要求高的应用场合,例如文件下载、网页浏览等。

TCP可靠性较高,可以保证数据不会丢失、数据传输的有序性,用户可以比较稳定地获取数据。

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用TCP(传输控制协议)和UDP(用户数据报协议)是两种不同的传输协议,它们在网络通信中起着非常重要的作用。

虽然它们都是在网络通信中传输数据的协议,但是它们有很大的区别。

在本文中,我将分别介绍TCP和UDP的特点、区别及其在各种应用中的使用。

一、TCP的特点及应用1. TCP的特点TCP是一种面向连接的协议,它在传输数据之前需要先建立连接,然后传输数据,传输结束后再断开连接。

它提供可靠的、按序传输的数据传输服务,能够保证数据的完整性和可靠性。

TCP使用三次握手来建立连接,四次挥手来断开连接,在传输数据时会进行数据校验和确认。

因此,它非常适合对数据传输的要求比较高的应用场景。

2. TCP的应用TCP广泛应用于各种需要可靠传输的应用场景,包括但不限于以下几个方面:(1)网络浏览:当用户访问网页时,浏览器会使用TCP协议与服务器建立连接,传输页面内容。

(2)文件传输:在文件传输过程中,TCP可以保证文件的完整性和可靠性,确保文件在传输过程中不会丢失或损坏。

(3)电子邮件:电子邮件的发送和接收过程中需要使用TCP协议来保证数据传输的可靠性。

(4)远程登录:如Telnet、SSH等远程登录方式都使用TCP协议来传输数据。

(5)数据库访问:数据库访问时需要使用TCP协议来传输数据。

二、UDP的特点及应用1. UDP的特点UDP是一种无连接的协议,它不需要在传输数据之前建立连接,也不保证数据的完整性和可靠性。

UDP是一种简单的数据传输协议,它仅提供数据传输的功能,不对数据传输进行确认和校验。

因此,UDP的传输效率比TCP高,但可靠性较差。

由于UDP不需要建立连接,所以它的开销比较小,适合对实时性要求较高的应用场景。

2. UDP的应用UDP主要用于那些对实时性要求较高的应用场景,包括但不限于以下几个方面:(1)实时视频、音频传输:视频会议、实时语音通话等应用中使用UDP来传输数据,因为在这些应用中,实时性比可靠性更为重要。

TCPUDP有什么区别

TCPUDP有什么区别

TCPUDP有什么区别前⾔计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP 和 UDP 都属于传输层协议。

在实际开发过程中,需要根据实际需求的来选择适当的传输协议。

在这⾥我们简单总结下 TCP、UDP 的特点和区别以及实际开发中如何选择。

TCP 和 UDP 的定义TCP 是⾯向有连接,可靠的流协议。

保证两端通讯主机之间的通信可达,可以处理丢包、乱序等异常,可以有效利⽤带宽、缓解⽹络拥堵。

UDP 是⾯向⽆连接,不可靠的数据报协议。

不会处理丢包、乱序等异常,⼀般交给上层的应⽤层处理。

UDP 的特点及使⽤场景UDP 不提供复杂的控制机制,利⽤ IP 提供⾯向⽆连接的通信服务,随时都可以发送数据,处理简单且⾼效,经常⽤于以下场景:①包总量较⼩的通信(DNS、SNMP)②视频、⾳频等多媒体通信(即时通信)③⼴播通信TCP 的特点及使⽤场景相对于 UDP,TCP 实现了数据传输过程中的各种控制,可以进⾏丢包时的重发控制,还可以对次序乱掉的分包进⾏顺序控制。

在对可靠性要求较⾼的情况下,可以使⽤ TCP,即不考虑 UDP 的时候,都可以选择 TCP。

总结这⾥简单总结下:1.TCP 是⾯向连接的,UDP 是⾯向⽆连接的;故 TCP 需要建⽴连接和断开连接,UDP 不需要。

2.TCP 是流协议,UDP 是数据包协议;故 TCP 数据没有⼤⼩限制,UDP 数据报有⼤⼩限制(UDP 协议本⾝限制、数据链路层的 MTU、缓存区⼤⼩)。

3.TCP 是可靠协议,UDP 是不可靠协议;故 TCP 会处理数据丢包重发以及乱序等情况,UDP 则不会处理。

TCP 为什么要三次握⼿,四次挥⼿?前⾔TCP 属于传输层协议,是⾯向有连接,可靠的流协议。

⾯对有连接这个特性,TCP 就有建⽴连接和断开连接的过程。

我们分别了解建⽴连接和断开连接的流程以及当中的⼀些疑问。

TCP 建⽴连接和断开连接流程⾸先我们来看下这张经典的流程图:握⼿过程可以简化为下⾯的四次交互:1.Client 端⾸先发送⼀个 SYN 包,告诉 Server 端我的初始序列号是 X;Client 端进⼊了 SYN-SENT(同步已发送状态)状态。

tcp协议与udp协议的区别

tcp协议与udp协议的区别

tcp协议与udp协议的区别协议名称:TCP协议与UDP协议的区别一、引言TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是网络通信中常用的两种传输协议。

本协议旨在详细描述TCP协议和UDP协议之间的区别,包括其工作原理、特点、适用场景等方面的内容。

二、TCP协议的特点1. 可靠性:TCP协议提供可靠的数据传输,通过数据包的确认、重传机制和流量控制来确保数据的完整性和正确性。

2. 面向连接:TCP协议在通信前需要建立连接,通过三次握手来建立可靠的通信信道。

3. 有序性:TCP协议保证数据包按照发送的顺序进行传输,接收端会对乱序的数据包进行排序,保证数据的有序性。

4. 慢启动:TCP协议采用慢启动算法来控制数据的发送速率,以避免网络拥塞。

三、UDP协议的特点1. 无连接:UDP协议不需要建立连接,数据包的发送和接收是相互独立的,适用于实时性要求较高的应用场景。

2. 不可靠性:UDP协议不提供数据包的确认和重传机制,数据包的可靠性无法得到保证,但能够提供较高的传输效率。

3. 无序性:UDP协议不保证数据包按照发送的顺序进行传输,接收端会按照接收顺序进行处理。

4. 支持一对一、一对多、多对一和多对多的通信模式。

四、适用场景的区别1. TCP协议适用于对数据可靠性要求较高的场景,如文件传输、电子邮件等。

2. UDP协议适用于对实时性要求较高的场景,如音视频传输、在线游戏等。

五、性能比较1. 传输效率:UDP协议由于不需要建立连接和提供可靠性传输,传输效率较高;而TCP协议由于提供可靠性传输,传输效率相对较低。

2. 带宽占用:TCP协议的带宽占用较大,由于需要进行数据包的确认和重传,会占用较多的网络资源;而UDP协议的带宽占用较小。

3. 丢包率:UDP协议由于不提供数据包的确认和重传机制,丢包率相对较高;而TCP协议通过确认和重传机制,丢包率较低。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP 与UDP的区别很多文章都说TCP协议可靠,UDP协议不可靠!为什么前者可靠,后者不可靠呢?既然UDP协议不可靠,为什么还要使用它呢?所谓的TCP协议是面向连接的协议,面向连接是什么呢?TCP和UDP都是传输层的协议!从编程的角度看,就是两个模块(模块就是代码的集合,一系列代码的组合提供相应的功能!模块化最终目的就是:分工协作!模块化好处:便于扩展开发以及维护!)。

先说TCP协议:这个协议,是面向的连接!面向连接这个概念,我们要从物理层看起。

大家都知道,因为“信道复用技术”的迅猛发展,才促使了计算机网络的发展!如果没有“信道复用技术”,那么单条线路上(这里的线路指物理传输介质,例如:双绞线、光纤、电话线)单位时间内只能供一台计算机使用!还是举例说明:就拿你自己的计算机来说,你跟同学“小明”聊天的时候,就不能跟另外一位同学“小强”聊天,如果你想同时跟两位同学聊天,那么你就得装两条线路!那么同时与第三位、第四位同学。

第N位同学聊天的时候,你需要装几根线路?全世界人民聊天的时候,又需要装几根线路?“信道复用技术”实现了,在同一条线路上,单位时间内可供X台计算机同时通信!Toad知道以下几种复用技术:1、频分复用2、时分复用3、波分复用4、码分复用5、空分复用6、统计复用7、极化波复用关于“信道复用技术”更深层次的问题,需要你自己去研究!上面我们提到了“信道复用技术”!知道了这一点,我们就很容易明白“物理信道”上的“虚拟信道”概念了!不同的信道复用技术,使用不同的复用技术,目的就是创建“虚拟信道”。

一个TCP协议连接其实就是在物理线路上创建的一条“虚拟信道”。

这条“虚拟信道”建立后,在TCP协议发出FIN包之前(两个终端都会向对方发送一个FIN包),是不会释放的。

正因为这一点,TCP协议被称为面向连接的协议!UDP协议,一样会在物理线路上创建一条“虚拟信道”,否则UDP协议无法传输数据!但是,当UDP协议传完数据后,这条“虚拟信道”就被立即注销了!因此,称UDP是不面向连接的协议!大家要知道,一种物理线路,单位时间内,能够创建的“虚拟信道”是有限的!从这个问题,大家应该明白了TCP协议和UDP协议为什么会共存了吧,然而,这只是其中一个原因而已!那为什么又说TCP协议可靠,UDP协议不可靠呢?以上说的是一个原因,还有一个原因是:使用TCP协议传输数据,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!UDP协议就没有这种确认机制!这一点,在做TCP协议首部分析时,会详加解释!QQ普通会员就是使用的UDP协议进行传输数据!既然UDP协议自身没有确认机制,这个工作可以交给应用层的进程来完成(QQ)!大家使用QQ的时候,感觉出错的几率还是非常小吧!当然,把这个确认工作完全交给QQ自身来做,就直接导致了,QQ软件体积增大!有些应用,对数据传输可靠性要求非常高,例如大家浏览网页,通过网页注册帐号、转帐等服务,这是不容许出错的,使用TCP协议能把出错的可能性降到最低(当然,网络自身很糟糕,TCP协议也没办法)。

但是,提供这种可靠服务,会加大网络带宽的开销,因为“虚拟信道”是持续存在的,同时网络中还会出现大量的ACK和FIN包!因此,鱼和熊掌不可兼得,需根据实际情况选择传输协议TCP协议提供了可靠的数据传输,但是其拥塞控制、数据校验、重传机制的网络开销很大,不适合实时通信,所以选择开销很小的UDP协议来传输数据。

UDP 协议是无连接的数据传输协议并且无重传机制,会发生丢包、收到重复包、乱序等情况。

而对于数据精确性要求不高的状态数据以及视频数据,丢包的影响不大。

因为会不断收到新的包,丢失的个别包会有新的包来覆盖,所以只需在远程控制系统的通信部分自行处理乱序及重复包的问题,而对于丢包的问题一般不作处理。

但对于命令包这种需要精确收发的数据, 可在程序的开发中加入丢包重发和超时丢弃的处理。

当然,如果开发的是对于实时性要求不高的事件型控制命令的传输,不希望发生指令的丢失也可以直接采用TCP协议。

TCP的重传机制正好适合这种情况。

非面向连接的传输协议在数据传输之前不建立连接,而是在每个中间节点对非面向连接的包和数据包进行路由。

没有点到点的连接,非面向连接的协议,如UDP,是不可靠的连接。

当一个UDP数据包在网络中移动时,发送过程并不知道它是否到达了目的地,除非应用层已经确认了它已到达的事实。

非面向连接的协议也不能探测重复的和乱序的包。

标准的专业术语用“不可靠”来描述UDP。

在现代网络中,UDP并不易于导致传输失败,但是你也不能肯定地说它是可靠的。

UDPUser Datagram Protocol用户数据报协议UDP是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

UDP 协议基本上是IP协议与上层协议的接口。

UDP协议适用端口分辨运行在同一台设备上的多个应用程序。

目录• 1 简介• 2 为什么要使用UDP?• 3 UDP报头• 4 UDP协议的几个特性• 5 UDP vs TCP• 6 UDP协议的应用•7 UDP 程序设计UDP-简介UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包。

在OSI 模型中,在第四层——传输层,处于IP协议的上一层。

UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

UDP用来支持那些需要在计算机之间传输数据的网络应用。

包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。

UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。

与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。

根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。

UDP协议的主要作用是将网络数据流量压缩成数据报的形式。

一个典型的数据报就是一个二进制数据的传输单位。

每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

UDP-为什么要使用UDP?在选择使用协议的时候,选择UDP必须要谨慎。

在网络质量令人不十分满意的环境下,UDP 协议数据包丢失会比较严重。

但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

比如我们聊天用的ICQ和OICQ就是使用的UDP协议。

UDP-UDP报头UDPUDP报头由4个域组成,其中每个域各占用2个字节,具体如下:UDP源端口号目标端口号数据报长度校验值UDP协议使用端口号为不同的应用保留其各自的数据传输通道。

UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。

数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。

有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。

因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。

一般来说,大于49151的端口号都代表动态端口。

数据报的长度是指包括报头和数据部分在内的总字节数。

因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。

数据报的最大长度根据操作环境的不同而各异。

从理论上说,包含报头在内的数据报的最大长度为65535字节。

不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。

UDP协议使用报头中的校验值来保证数据的安全。

校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。

如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。

这与TCP协议是不同的,后者要求必须具有校验值。

检查和的详细计算可在RFC1071中找到,现举一例说明使用检查和检测错误的道理。

例如,假设从源端A要发送下列3个16位的二进制数:word1,word2和word3到终端B,检查和计算如下:从发送端发出的4个(word1,2,3以及检查和)16位二进制数之和为1111111111111111,如果接收端收到的这4个16位二进制数之和也是全“1”,就认为传输过程中没有出差错。

许多链路层协议都提供错误检查,包括流行的以太网协议,也许想知道为什么UDP也要提供检查和。

其原因是链路层以下的协议在源端和终端之间的某些通道可能不提供错误检测。

虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。

UDP-UDP协议的几个特性(1) UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP 把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。

例如,在屏幕上报告股票市场、在屏幕上显示航空信息等等。

UDP也用在路由信息协议RIP(Routing Information Protocol)中修改路由表。

在这些应用场合下,如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。

UDP广泛用在多媒体应用中,例如,Progressive Networks公司开发的RealAudio软件,它是在因特网上把预先录制的或者现场音乐实时传送给客户机的一种软件,该软件使用的RealAudio audio-on-demand protocol协议就是运行在UDP之上的协议,大多数因特网电话软件产品也都运行在UDP之上。

UDP-UDP vs TCPUDPUDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。

TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。

相关文档
最新文档