UDP/TCP网络传输方式

网络传输方式

1.面向无连接型:
  不要求建立和断开连接,发送端可于任何时候自由发送数据. 反之, 接收端也永远不知道自己会在何时从那里接收到数据. 因此, 面向无连接的情况下, 接收端需要时常确认是否收到了数据。
  在面向无连接的通信中, 不需要确认对端是否存在. 即使接收端不存在或无法接受数据, 发送端也能将数据发送出去。
这里写图片描述
  
2.面向有连接型:
  在发送数据之前, 需要在收发主机之间建立一条连接通信线路. 面向连接就好像我们平时打电话, 输入完对方的电话号码拨出之后, 只有对方拿起电话确认连接才能进行真正的通话, 通话结束后将电话机扣上就如同切断电源。因此在面向有连接的方式下, 必须在通信传输前后, 专门进行建立和断开连接的处理。
这里写图片描述
  

UDP传输方式

  UDP (User Datagram Protocol )用户数据报协议,是一种面向无连接的传输方式,不提供复杂的控制机制, 如果传输过程中出现丢包, UDP 也不负责重发. 甚至当出现包到达顺序乱掉时候也没有纠正的功能. 由于 UDP 面向无连接, 它可以随时发送数据. 再加上 UDP 本身的处理既简单又高效, 因此常用于以下几个方面:
1.包总量较少的通信(DNS)
2.视频、音频等多媒体通信(即时通信)
3.限定于 LAN 等特定网络中的应用通信
4.广播通信(广播、多播)
  

TCP传输方式

  TCP (Transmission Control Protocol)传输控制协议,是一种面向有连接的通信服务, 只有在确认通信对端存在时才会收发数据, 从而可以控制通信流量的浪费. TCP 提供了数据传输时的各种控制功能, 丢包时可以进行重发控制, 还可以将次序乱掉的分包进行顺序控制。TCP最大的特点就是可靠传输:
1.应答机制:对方收到消息底层会回复

2.超时重传:给多方发送一个数据,如果一段时间内对方没有接收,会隔一段时间给对方再次发送,如果一直没有回复,会认为对方掉线了

3.错误校验:如果接收的数据包序号发生了错乱,TCP会自动排序,保证数据的有序性,如果有重复数据包,会删除重复的数据包

4.流量控制:数据发送在网卡缓存区达到一定上限,对方不会一直发送数据,需要等待对方接收数据,网卡缓存区有空间再发送,保证网卡缓存不会超出
  

UDP与TCP的不同

1.UDP传输协议(用户数据报协议):
(1)发送数据不需要建立连接(面向无连接)
(2)不能保证数据的有效性和准确性
(3)只能发送少量数据,每个数据包最大64K
(4)适合做广播,主要用于广播和视频直播等
(5)比TCP节省资源

2.TCP传输协议(传输控制协议):
(1)发送数据需要建立连接(面向有连接)
(2)可以发送大量数据
(3)可以保证数据的有效性和准确性
(4)不适合做广播,传输速度没有UDP快
(5)使用资源较多

3.总结:
  TCP 用于有必要实现可靠传输的情况. 由于它是面向有连接并具备顺序控制、重发控制等机制的, 所以他可以为应用提供可靠的传输。
  而在另一方面, UDP 主要用于哪些对高速传输和实时性要求高的通信广播通信. 我们举一个通过 IP 电话进行通话的例子. 如果使用TCP, 数据在传输过程中如果丢失被重发, 会导致无法流畅传输通话人的声音, 会导致无法进行正常交流. 而采用 UDP, 它不会进行重发处理. 从而也就不会有声音大幅度延迟到达的问题 即使有部分数据丢失, 也只会影响某一小部分的通话. 此外, 在多播与广播通信中也使用 UDP, 而不是 TCP. 因此, TCP 和 UDP 应该根据应用的目的按需使用。
  UDP多用于即时通信和广播,TCP多用于文件和数据的传输。

猜你喜欢

转载自blog.csdn.net/zsh142537/article/details/82385241
今日推荐