UDP和TCP数据包有什么区别?你用它们做什么的?

e-s*_*tis 6 networking udp tcp

我昨天正在配置IPtable.我的同事刚问我这个问题,我无法回答.我意识到我是一个比sysadmin更好的开发者,需要改进它.

那他们是什么?它们适用于什么?缺点/优点(如果相关).

Aru*_*nmu 10

这些就像基本问题.

UDP ::用户数据报协议

1)没有端到端机器之间的连接(可能在本地网络或互联网的某个地方).

2)在接收端接收的数据不像TCP那样在流中,而是作为完整的数据块.

3)在传输层,不执行包顺序检查.即如果接收到的数据包中有任何错误,接收方将不会要求将相同的数据包重新发送给发送方.

4)由于上述行为,发送方端不需要发送缓冲区.

5)因为没有端到端的连接.并且不需要握手,UDP比TCP快得多但不太可靠.因此主要用于游戏和DNS等.

6)收到数据包后无需确认.

TCP ::传输控制协议

1)端到端在机器之间保持连接(可以在本地网络中或在因特网中的某处).

2)在接收器端接收的数据是TCP中的流.因此,当我们对服务器进行网络编程时,我们首先首先解析头部,然后根据头部中提到的大小,我们从缓冲区获得更多的字节数.

3)错误检查和序列号都已完成.因此,如果任何数据包是无序接收的(很少)或者是错误的,那么该数据包将被重新发送.此外,许多其他协议涉及流量控制(端到端流量控制).

4)作为连接建立,握手和确认是TCP操作基本上比UDP慢.(我不相信)

5)许多协议使用TCP作为底层传输协议.HTTP,FTP,TELNET等..

6)沟通程序包括:

Server :: 1)Socket Open 2)Socket Bind 3)Socket Listen 4)Socket Accept 5)S​​ocket Send/Recv Client :: 1)Socket Open 2)Socket Connect 3)Socket Send/Recv

还有很多其他的差别..但上面是最常见的.


Pep*_*epe 5

TCP是一种可靠的协议,可确保您的数据包到达目的地,并用于所有数据必须在各方之间准确传输的应用程序中.TCP要求双方在数据传输开始之前协商连接,并且它是弹性协议,因为它将重复重新发送数据包,直到预期接收者接收到该数据包.

UDP在某种意义上是不可靠的,它允许一些数据包在传输过程中丢失.UDP的一些应用程序可以在电影流中找到,您实际上可以承受丢失帧并且不会危及电影质量.UDP不需要在双方之间进行绑定,并且通常被视为TCP的替代方案.

这里有一个很好的表:TCP vs UDP