TCP和UDP的代理服务器有啥差别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP和UDP的代理服务器有啥差别?相关的知识,希望对你有一定的参考价值。

一、使用代理不同

1、TCP代理:面向连接的、可靠的、基于字节流的传输层通信协议的代理。

2、UDP代理:无需建立连接就可以发送封装的 IP 数据报的代理。

二、传输方式不同

1、TCP代理:把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由来通过网络将包传送给接收端实体的TCP层。

2、UDP代理:除了给应用程序发送数据包功能并允许在所需的层次上架构自己的协议之外,几乎没有做什么特别的的事情。


三、分组方式不同

1、TCP代理:旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。 

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

参考资料来源:百度百科-UDP

参考资料来源:百度百科-TCP

参考技术A TCP和UDP的区别
tcp连接就像打电话,两者之间必须有一条不间断的通路,数据不到达对方,对方
就一直在等待,除非对方直接挂电话。先说的话先到,后说的话后到,有顺序。

udp就象寄一封信,发信者只管发,不管到。但是你的信封上必须写明对方的地址。
发信者和收信者之间没有通路,靠邮电局联系。信发到时可能已经过了很久,也可
能根本没有发到。先发的信未必先到,后发的也未必后到。

说的很简单,具体的东西当然很复杂。但是java把所有的操作都封装好了,用起
来到挺方便的

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

用TCP还是UDP,那要看你的程序注重哪一个方面?可靠还是快速?

说到TCP和UDP,首先要明白“连接”和“无连接”的含义,他们的关系可以用一个形象地比喻来说明,就是打电话和写信。两个人如果要通话,首先要建立连接——即打电话时的拨号,等待响应后——即接听电话后,才能相互传递信息,最后还要断开连接——即挂电话。写信就比较简单了,填写好收信人的地址后将信投入邮筒,收信人就可以收到了。从这个分析可以看出,建立连接可以在需要痛心地双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后,由于是在接受方响应后才开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。但也正因为需要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发出相应的信号等),独占一个通道,在断开连接钱不能建立另一个连接,即两人在通话过程中第三方不能打入电话。而无连接是一开始就发送信息(严格说来,这是没有开始、结束的),只是一次性的传递,是先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。
TCP是面向连接的,有比较高的可靠性,
一些要求比较高的服务一般使用这个协议,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向无连接的,使用这个协议的常见服务有DNS、SNMP、QQ等。对于QQ必须另外说明一下,QQ2003以前是只使用UDP协议的,其服务器使用8000端口,侦听是否有信息传来,客户端使用4000端口,向外发送信息(这也就不难理解在一般的显IP的QQ版本中显示好友的IP地址信息中端口常为4000或其后续端口的原因了),即QQ程序既接受服务又提供服务,在以后的QQ版本中也支持使用TCP协议了。
参考技术B TCP和UDP协议是TCP/IP协议的核心。 TCP 传输协议:TCP 协议是一TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。

以上是关于TCP和UDP的代理服务器有啥差别?的主要内容,如果未能解决你的问题,请参考以下文章

Socks5 udp代理

nignx的TCP和UDP调度(nginx反向代理)

NodeJS编写简单TCP/UDP端口代理转发服务

如何在多个端口上设置反向代理(tcp & udp)

Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)

15_Nginx反向代理Nginx的TCP/UDP调度器Nginx常见问题处理