TCP与UDP的区别

1、TCP面向连接的,传输数据时,需先进行三次握手,建立连接,UDP是无连接的,发送数据之前不需要建立连接。

2、TCP通过确认和重传机制,提供可靠的服务。即通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达,而UDP不保证可靠传输,只是尽可能交付。

3、TCP面向字节流,即将数据看成一连串无结构的字节流。UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

 

下面把不太清除的概念再学习:

1、TCP协议可靠性保证

      确认应答机制

     在TCP中,TCP将每个字节的数据都进行了编号,即***(对每一个数据的编号)

      TCP与UDP的区别

TCP与UDP的区别

由图分析:当主机1给主机 2发送了1~1000这么多数据是,主机2如果收到了就会给主机1应答(ACK报文段,每一个ACK都带有对应的确认***),表示你给我发的1~1000的数据我已经全部收到了,下次你再给我发,就从1001数据开始发。

当我们的主机1给主机2发送了数据之后,经过一段时间主机1并没有收到主机2的应答的情况也是有的,所以这个时候为了确保数据的准确到达,TCP就有了超时重传机制。

 

2、TCP的拥塞控制

   TCP提高性能的滑动窗口,滑动窗口能够高效可靠的发送大量的数据,但是如果在一开始就发送大量的数据任然可能引发问题。要知道在网络上有很多的计算机,有可能当前的网络状态已经很拥堵,在不清楚当前的网络状态下,贸然发送大量的数据,这样对于已经很拥堵的网络来说无疑是雪上加霜。

      由此TCP引入了慢启动机制:先发送少量的数据,由此取探测当前的网络的拥塞状态,在决定按照多大的速度传输数据。

      少量的丢包,仅仅会触发超时重传,而大量的丢包就认为是网络拥堵,当TCP通信开始后,网络吞吐量逐渐上升,随着网络发生拥堵,吞吐量会立刻下降,拥塞控制说到底就是TCP协议想尽可能快的将数据传输给对法,但又要避免给网络造成太大压力的这种解决办法。