TCP与UDP的不同
1、是否需要建立连接:
UDP在传送数据之前不需要先建立连接;TCP则提供面向连接的服务(三次握手);
2、是否需要给出确认:
对方的传输层在收到UDP报文后,不需要给出任何确认;而 TCP需要给出确认报文,要提供可靠的、面向连接的传输服务。
和 IP 层的联系
IP层只负责把数据送到节点,而不能区分上面的不同应用,所以TCP和UDP协议在其基础上加入了端口的信息,每个端口标识的是一个节点上的一个应用。
除了增加端口信息,UPD协议基本就没有对IP层的数据进行任何的处理了。
而TCP协议还加入了更加复杂的传输控制,比如滑动的数据发送窗口,以及接收确认和重发机制,以达到数据的可靠传送。
不管应用层看到的是怎样一个稳定的TCP数据流,下面传送的都是一个个的IP数据包,需要TCP协议来进行数据重组。
TCP与UDP的适用场景
虽然UDP不保证可靠交付,但某些情况下UDP是一种最有效的工作方式。
【UDP取代TCP】
1、TCP用于在传输层有必要实现可靠传输的情况。
2、UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信。
举一个通过 IP 电话进行通话的例子:
如果使用 TCP,数据在传送途中如果丢失就会被重发,这样就会导致无法流畅地传输通话人的声音;
而采用UDP,它不会进行重发处理,从而也就不会有声音大幅度延迟到达的问题,即使有部分数据丢失,也只是会影响某一小部分的通话。
网友评论