爆锤TCP/UDP

时间:2019-09-17
本文章向大家介绍爆锤TCP/UDP,主要包括爆锤TCP/UDP使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

TCP/UDP

TCP: 传输控制协议(英语:Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

UDP:用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。

前言:

关于TCP和UDP这两个协议是面试中非常常见的问题,本文讨论以下几个问题:

  1. 什么是TCP
  2. 什么是UDP
  3. TCP和UDP的异同点
  4. TCP和UDP的应用场景

1. TCP和UDP的异同点

1.1 相同点

  • UDP和TCP同属于传输层的协议

1.2 不同点

  1. TCP面向字节流,而UDP面向数据报。

解释:

TCP收发的是一堆数据,是一个数据流,而每次取多少由主机决定;

而UDP发的是数据报,客户发送多少就接收多少

  1. TCP是面向连接的,而UDP不是面向连接的。

解释:

TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。

而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。

  1. TCP是可靠的,而UDP是不可靠的。

解释:

TCP为提供可靠性传输实行“顺序控制”或“重发控制”机制。此外还具备“流量控制”、“拥塞控制”、提高网络利用率等众多功能,并且只有确认通信端存在才会发送数据,从而可以控制通信流量的浪费。

在UDP的情况下,虽然可以确保发送信息的大小,却不能保证信息一定会到达。因此,应用有时会根据自己的需要进行重发处理。 UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。它并不需要确认通信端是否存在,可以随时发送数据。

  1. TCP是全双工的,UDP支持多播和广播。

解释:

TCP是全双工的,所谓全双工就是数据在两个方向上同时进行传送操作,例如我们打电话,说话的同时也能够听到对方的声音,一旦两个通信端口简历TCP连接,那么两个端口只能一对一进行数据传输。

UDP因为不需要一对一建立连接,所以它可以做到一对一,一对多等传输方式,承担广播或者多播,虽然它不会建立连接,但是会监听这个端口,谁都可以给这个端口传数据,它也可以给任何人传数据。

  1. UDP 不处理堵塞,应用需要发,就会发送。TCP 还拥有堵塞控制,TCP 会根据网络环境调整发包的频率。
  2. TCP的传输效率低,UDP的传输效率高。

解释:因为UDP不用对收发的数据进行确认校验,有什么发什么,所以使得UDP的开销更小数据传输速率更高。

来一个直观的对比

原文地址:https://www.cnblogs.com/zaijianba/p/11537581.html