TCP和UDP之间的区别?

TCP和UDP之间的区别?,tcp,network-programming,udp,protocols,Tcp,Network Programming,Udp,Protocols,TCP和UDP之间有什么区别 我知道TCP用于非时间关键型应用程序,UDP用于需要快速传输数据的游戏或应用程序。我知道TCP用于HTTP、HTTPs、FTP、SMTP和Telnet。我知道UDP用于DNS和DHCP 但是为什么呢?TCP和UDP的哪些特性使其对各自的用例有用 将TCP视为两个地点之间UPS/FedEx包裹的专用定时取放,而UDP相当于将明信片扔进邮箱 UPS/联邦快递将竭尽全力确保您寄出的包裹及时送达。有了这张明信片,如果它真的到了,你就很幸运了,而且它可能会坏掉或迟到(你在度假

TCP和UDP之间有什么区别

我知道TCP用于非时间关键型应用程序,UDP用于需要快速传输数据的游戏或应用程序。我知道TCP用于HTTP、HTTPs、FTP、SMTP和Telnet。我知道UDP用于DNS和DHCP


但是为什么呢?TCP和UDP的哪些特性使其对各自的用例有用

将TCP视为两个地点之间UPS/FedEx包裹的专用定时取放,而UDP相当于将明信片扔进邮箱

UPS/联邦快递将竭尽全力确保您寄出的包裹及时送达。有了这张明信片,如果它真的到了,你就很幸运了,而且它可能会坏掉或迟到(你在度假回家后收到过多少次别人寄来的明信片?)


TCP尽可能接近于一个有保证的交付协议,而UDP只是“尽最大努力”

其中一个不同之处是

UDP:发送消息,并且在到达目标时不回过头,无连接协议

TCP:发送消息并保证到达目的地,面向连接的协议是IP网络上面向连接的流。它保证所有发送的数据包将以正确的顺序到达目的地。这意味着使用发送回发送方的确认数据包,以及自动重新传输,从而导致额外的延迟和比
UDP
更低效的传输

UDP
是一种无连接协议。通信是面向数据报的。完整性仅在单个数据报上得到保证。数据报到达目的地时,可能会出现故障或根本没有到达目的地。它比TCP更有效,因为它使用非ACK。它通常用于实时通信,其中丢包率的一小部分优于
TCP
连接的开销


在某些情况下使用UDP,因为它允许广播数据包传输。这有时在像
DHCP
协议这样的情况下是基本的,因为客户端机器还没有收到
IP
地址(这就是
DHCP
negotiaton协议的目的),没有
IP
地址本身,就无法建立
TCP

DNS和DHCP使用UDP的原因:

DNS-TCP需要来自服务器(侦听连接)的资源多于来自客户端的资源。特别是,当TCP连接关闭时,服务器需要在称为TIME_WAIT_2的状态下记住连接的详细信息(将其保存在内存中)两分钟。这是一项功能,可防止来自前一连接的错误重复数据包被解释为当前连接的一部分。维护时间_WAIT_2会耗尽服务器上的内核内存。DNS请求很小,经常从许多不同的客户端到达。与客户端相比,这种使用模式加剧了服务器上的负载。人们认为,使用UDP(在客户端或服务器上都没有连接和状态可维护)可以改善这个问题

DHCP-DHCP是BOOTP的扩展。BOOTP是一种协议,客户端计算机在客户端启动时使用该协议从服务器获取配置信息。为了定位服务器,将发送广播,询问BOOTP(或DHCP)服务器。广播只能通过无连接协议(如UDP)发送。因此,BOOTP至少需要一个UDP数据包,用于服务器定位广播。此外,由于BOOTP正在运行,而客户端。。。引导,这是客户端可能无法加载和运行其整个TCP/IP堆栈的时间段,UDP可能是客户端当时准备处理的唯一协议。最后,一些DHCP/BOOTP客户机上只有UDP。例如,某些IP恒温器仅实现UDP。原因是它们的处理器太小,内存太少,无法执行TCP——但它们在启动时仍然需要获得IP地址

正如其他人所提到的,UDP也适用于流媒体,尤其是音频。如果你简单地丢弃延迟的数据包,在网络延迟的情况下,对话听起来会更好。使用UDP可以做到这一点,但使用TCP,在延迟期间得到的只是一个暂停,然后是音频,该音频将始终延迟与已暂停的音频一样多。对于双向电话式对话,这是不可接受的。

来自 TCP(传输控制协议)是Internet上最常用的协议。 这是因为TCP提供了错误更正。当使用TCP协议时,会出现“保证传递”。这在很大程度上是由于一种称为“流控制”的方法。流控制确定何时需要重新发送数据,并停止数据流,直到成功传输以前的数据包。这是因为如果发送数据包,可能会发生冲突。当这种情况发生时,客户机从服务器重新请求数据包,直到整个数据包完成并且与原始数据包相同

UDP(用户数据报协议)是Internet上另一种常用的协议。但是,UDP从不用于发送网页、数据库信息等重要数据;UDP通常用于流式音频和视频。流媒体,如Windows media音频文件(.WMA)、Real Player(.RM)和其他使用UDP的媒体,因为它提供了速度!UDP比TCP快的原因是因为没有任何形式的流控制或错误纠正。通过Internet发送的数据会受到冲突的影响,并且会出现错误。请记住,UDP只关心速度。这就是为什么流媒体是n的主要原因
A: Do you want to hear a TCP/IP joke?
B: Yes, I want to hear a TCP/IP joke.
A: Ok, are you ready to hear a TCP/IP joke?
B: Yes, I'm ready to hear a TCP/IP joke.
A: Well, here is the TCP/IP joke.
A: Did you receive a TCP/IP joke?
B: Yes, I **did** receive a TCP/IP joke.