TCP(传输控制协议,Transport Control Protocol)网络
UDP(用户数据报协议,User Data Protocol)spa
OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议)。3d
UDP:
UDP 与 TCP 的主要区别在于 UDP 不必定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面很是有效。当某个程序的目标是尽快地传输尽量多的信息时(其中任意给定数据的重要性相对较低),可以使用 UDP。ICQ 短消息使用 UDP 协议发送消息。blog
许多程序将使用单独的TCP链接和单独的UDP链接。重要的状态信息随可靠的TCP链接发送,而主数据流经过UDP发送。资源
TCP:
TCP的目的是提供可靠的数据传输,并在相互进行通讯的设备或服务之间保持一个虚拟链接。TCP在数据包接收无序、丢失或在交付期间被破坏时,负责数据恢复。它经过为其发送的每一个数据包提供一个序号来完成此恢复。记住,较低的网络层会将每一个数据包视为一个独立的单元,所以,数据包能够沿彻底不一样的路径发送,即便它们都是同一消息的组成部分。这种路由与网络层处理分段和从新组装数据包的方式很是类似,只是级别更高而已。路由
为确保正确地接收数据,TCP要求在目标计算机成功收到数据时发回一个确认(即 ACK)。若是在某个时限内未收到相应的 ACK,将从新传送数据包。若是网络拥塞,这种从新传送将致使发送的数据包重复。可是,接收计算机可以使用数据包的序号来肯定它是否为重复数据包,并在必要时丢弃它。class
TCP与UDP区别总结:效率
一、TCP(面向链接如打电话要先拨号创建链接),创建TCP链接需通过三次握手,释放TCP链接需通过四次挥手;UDP是无链接的,即发送数据以前不须要创建链接请求
以下图所示,能够看到创建一个TCP链接的过程为(三次握手的过程):程序
第一次握手
客户端向服务端发送链接请求报文段。该报文段中包含自身的数据通信初始序号。请求发送后,客户端便进入 SYN-SENT 状态。
第二次握手
服务端收到链接请求报文段后,若是赞成链接,则会发送一个应答,该应答中也会包含自身的数据通信初始序号,发送完成后便进入 SYN-RECEIVED 状态。
第三次握手
当客户端收到链接赞成的应答后,还要向服务端发送一个确认报文。客户端发完这个报文段后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时链接创建成功。
这里可能你们会有个疑惑:为何 TCP 创建链接须要三次握手,而不是两次?这是由于这是为了防止出现失效的链接请求报文段被服务端接收的状况,从而产生错误。
TCP断开链接:如图所示
二、TCP提供可靠的服务。也就是说,经过TCP链接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
Tcp经过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还能够对次序乱掉的分包进行顺序控制。
三、UDP具备较好的实时性,工做效率比TCP高,适用于对高速传输和实时性有较高的通讯或广播通讯。
4.每一条TCP链接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通讯
五、TCP对系统资源要求较多,UDP对系统资源要求较少。