TCP协议和UDP协议的区别
TCP:传输控制协议(Transmission Control Protocol)
1.Tcp是面向连接的运输层协议,这就是说,应用程序在使用TCP提供的服务传送数据之前,必须先建立TCP连接。建立连接的目的是通信双方为接下来的数据传输传做好装备,初始化各种状态变量,分配资源等等,在传输数据完毕后,必须释放以建立的TCP连接,即释放变量和资源。这个过程与打电话类似:通话前先拨号建立连接,童话结束后要释放连接
2.TCP提供可靠交付的服务,也就是说,通过TCP连接传送的数据是无差错,不丢失,不重复,并且按序到达的
3.TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传
4.TCP提供全双工通信。就是允许通信双方的应用程序在任何时候都能放送数据。
5.TCP是面向字节流的。其中的“流”值的是流入到进程或进程流出的字节序列
6.每一条TCP连接只能是点对点的,即一对一。每条TCP连接只能由两端点,这两端点由IP地址和端口号来唯一标识。
UDP:用户数据报协议(User Datagram Protocol)
1.UDP只是在IP协议服务的基础上,添加了端口的功能。有了端口,运输层就可以进行复用和分用和差错检测的功能
2.UDP是无连接的,即发送数据前不需要建立连接(当然发送数据结束后也不没有连接来释放),因此减少了开销和发送数据的时延。即速度快,但不安全
3.UDP是尽最大努力交付,即不保证可靠交付,当然同时也不使用流量控制和拥塞控制。
4.由于UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率变慢,这就对某些实时的软件应用和重要。很多的实时应用入如IP电话,实时视频会议等都要求源主机能够以几乎恒定的速率来发送数据,但允许在网络拥塞时丢失一些数据,但却不允许数据有太大的时延,不然就容易造成卡顿
5.UDP是面向报文的,意思就是说,应用交付一个报文给UDP,UDP就发送这个报文了,不会再对报文进行切分成分组了
TCP与UDP区别:
1.最大的区别就是TCP是面向连接的,而UDP是无连接的
2.TCP是可靠的,安全的;UDP是不可靠的,不安全的,但是传输数据的速率快
3.TCP比UDP更复杂,它具有流量控制和拥塞控制机制
4.TCP面向字节流;UDP是面向报文的
5.TCP对系统资源要求较多,UDP对系统资源要求较少。TCP首部有20个字节,UDP的首部只有8个字节的首部开销。
6.TCP连接只能是一对一的;而UDP支持一对一,一对多和多对多的交互通信
7.UDP协议不使用确认信息对报文的到达进行确认,它不能保证报文到达的顺序,也不能向源端反馈信息来进行流量控制,因而会出现报文丢失等现象。
8.TCP肯定将数据传送出去,并且在目的主机上的应用程序能以正确的顺序接收数据。
如该文章能对你有所帮助,请帮忙点个推荐和关注!谢谢!0.0