tcp和udp的区别
tcp和udp的区别如下:
1、TCP面向连接(如打电话要先拨号建立连接),UDP是无连接的,即发送数据之前不需要建立连接。
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP尽最大努力交付,即不保证可靠交付。Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4、每一条TCP连接只能是点到点的,UDP支持一对一,一对多,多对一和多对多的交互通信。
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
UDP与TCP有什么不一样?
udp 和tcp 是 OSI 模型中的运输层中的协议。tcp 提供可靠的通信传输,而 udp 则常被用于让广播和细节控制交给应用的通信传输。两者的区别大致如下:
tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接;
tcp 提供可靠的服务(数据传输),udp 无法保证;
tcp 面向字节流,udp 面向报文;
tcp 数据传输慢,udp 数据传输快;
tcp 为什么要三次握手,两次不行吗?为什么? 我们假设A和B是通信的双方。我理解的握手实际上就是通信,发一次信息就是进行一次握手。
第一次握手:A给B打电话说,你可以听到我说话吗?
第二次握手:B收到了A的信息,然后对A说:我可以听得到你说话啊,你能听得到我说话吗?
第三次握手:A收到了B的信息,然后说可以的,我要给你发信息啦!
在三次握手之后,A和B都能确定这么一件事:我说的话,你能听到;你说的话,我也能听到。这样,就可以开始正常通信了。
注意:HTTP是基于TCP协议的,所以每次都是客户端发送请求,服务器应答,但是TCP还可以给其他应用层提供服务,即可能A、B在建立链接之后,谁都可能先开始通信。
如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
TCP/IP协议族为运输层指明了两个协议:TCP和UDP。它们都是作为应同程序和网络操作的中介物。
运输层协议通常具有几种责任。一种是创建进程到进程的通信;UDP和TCP使用端口来完成这种通信。另一种责任就是在运输层提供控制机制。UDP在一个非常低的水平上完成这个功能。UDP没有流量控制机制,在收到分组时也没有确认。但是,UDP提供了某种程度的差错控制。如果UDP检测出在收到的分组中有差错,它就悄悄地丢弃这个分组。而TCP使用滑动窗口协议来完成流量控制。TCP使用确认分组,超时和重传来完成差错控制。
运输层还应负责为应用程序提供连接机制。这些应用程序应当能够向运输曾发送数据流。在发送站运输层分责任是和接收站建立连接,把数据流分割成可运输地单元,把它们编号,然后逐个发送它们。运输层在接收端的责任是等待属于同一个进程的所有不同单元的到达,检查并放过那些没有差错的单元,并以流的方式把它们交付给接收进程。当全部的流都发送完毕后,运输层应当关闭这个连接.TCP完成所有上面的工作,而UDP不完成!
UDP叫做无连接的、不可靠的运输协议。TCP叫做面向连接的、可靠的运输协议,它给IP服务提供了面向连接和可靠性的特点。
TCP/IP协议族为运输层指明了两个协议:TCP和UDP。它们都是作为应同程序和网络操作的中介物。
运输层协议通常具有几种责任。一种是创建进程到进程的通信;UDP和TCP使用端口来完成这种通信。另一种责任就是在运输层提供控制机制。UDP在一个非常低的水平上完成这个功能。UDP没有流量控制机制,在收到分组时也没有确认。但是,UDP提供了某种程度的差错控制。如果UDP检测出在收到的分组中有差错,它就悄悄地丢弃这个分组。而TCP使用滑动窗口协议来完成流量控制。TCP使用确认分组,超时和重传来完成差错控制。
运输层还应负责为应用程序提供连接机制。这些应用程序应当能够向运输曾发送数据流。在发送站运输层分责任是和接收站建立连接,把数据流分割成可运输地单元,把它们编号,然后逐个发送它们。运输层在接收端的责任是等待属于同一个进程的所有不同单元的到达,检查并放过那些没有差错的单元,并以流的方式把它们交付给接收进程。当全部的流都发送完毕后,运输层应当关闭这个连接.TCP完成所有上面的工作,而UDP不完成!
UDP叫做无连接的、不可靠的运输协议。TCP叫做面向连接的、可靠的运输协议,它给IP服务提供了面向连接和可靠性的特点。
UDP分组叫做用户数据报。有8个字节的固定首部,源端口号、目的端口号、长度和检验和各2个字节。
UDP长度 = IP长度 - IP首部长度
下面是UDP的某些用途:
UDP适用于这样的进程,它需要简单的请求-响应通信,而较少考虑流量控制和差错控制。对于需要传送成块数据的进程,如FTP,通常不使用UDP。
UDP适用于具有内部流量控制和差错控制机制的进程。例如,简单文本传送协议(TFTP)的进程就包括流量控制和差错控制。它能够很容易地使用UDP。
对多播和广播来说,UDP是个合适的运输协议。多播和广播能力已经嵌入在UDP软件中,但没有嵌入在TCP软件中。
UDP可用于管理进程,如SNMP
UDP可用于某些路由选择更新协议,如路由信息协议(RIP)
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!