TCP和UDP的定义
1、TCP
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、基于字节流的为不可靠的互联网络提供可靠的端到端字节流而专门设计的传输层通信协议。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上的操作。其数据报文格式如下所示:
2、UDP
用户数据报协议(UDP,User Datagram Protocol)是开放式系统互联参考模型中一种无连接的传输层协议,提供面向事务的简单而不可靠的信息传送服务。此外,UDP在IP报文的协议号为17。其报文格式如下所示:
开放式系统互联参考模型结构如下图所示:
TCP和UDP的设计目标
1、TCP
TCP是在传输层上实现端到端之间的通信(运行与不同主机上的进程间通信),能够动态地适应花联网不同的拓扑结构、宽带、延迟、数据包大小及其他参数,并提供可靠的网络传输(核心目标)。
2、UDP
UDP时在传输层上实现端到端之间的通信(运行与不同主机上的进程间通信),其核心目的时在提供报文交换能力的基础上尽量提高数据传输速率。
TCP和UDP的主要特点
1、TCP
TCP是一种面向广域网的通信协议,其主要目的是在跨越多个网络通信时为两个通信端点之间提供一种通信方式,该方式具备以下特点:
(1)面向连接通信协议
(2)所提供的通信方式相对安全可靠
(3)为两个端点建提供基于数据流的通信方式
(4)在网络状况不佳的时候尽量降低系统由于重传所带来的的宽带开销
(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和字节
为了满足上述特点,TCP协议也做出了下述规定:
(1)数据分片:在发送端需要对用户数据进行分片处理,并在接收端进行分片数据重组,整个过程中由TCP确定分片的大小并控制分片和重组。
(2)到达确认:当接收端接收到分片数据时,将根据分片数据序号向发送端发送一个确认信号。
(3)超时重发:发送端在发送分片时启动超时定时器,若在定时器超时之后却没有收到相应的确认信号,则发送端则需要重发分片。
(4)滑动窗口:TCP所连接的每一方接收缓冲空间的大小均已固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据量,TCP在滑动窗口的基础上提供流量控制,以防止较快主机导致较慢主机的缓冲区溢出。
(5)失序处理:作为IP数据报实现传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层
(6)重复处理:作为IP数据报来传输的TCP分片有可能会发生重复发送的情况,此时则需要TCP的接收端丢弃重复的数据。
(7)数据校验:TCP将保持其首部和数据的端到端的检验和,其目的是检测数据在传输过程中是否发生了变化。如果收到分片的检验和有差错,则TCP将丢弃该分片,且不确认收到该报文段,进而导致对面端超时并重发。
其通信过程如下图所示:
2、UDP(1)面向报文。
(2)无连接的通信协议。
(3)数据交换速率最大化。
(4)首部所占空间小。UDP的首部仅8个字节,比TCP首部的20个字节少的多。
(5)不存在拥塞控制。UDP大都应用于如IP电话、实时视频会议等实时应用,
(6)交互通信方式多样化。UDP支持一对一、一对多、多对多三种叫交互通信方式。
TCP和UDP的联系1、TCP和UDP均是建立在IP智商的套接字。
2、TCP和UDP均属于TCP/IP协议簇中传输层中的重要协议,均用于处理数据包。
TCP和UDP的区别
1、数据顺序:TCP可保证数据顺序,而则UDP无法保证。
2、套接字:TCP采用流式套接字,而UDP采用报文套接字。
3、程序结构:TCP程序结构相对复杂,而UDP程序结构较简单。
4、数据正确性:TCP可保证数据正确性,而UDP则可能发生丢包。
5、系统资源:TCP要求系统资源较多,而UDP所要求的的系统资源较少。
6、通信信道:TCP的逻辑通信信道是全双工的可靠信道,UDP则是半双工的不可靠信道。
7、数据包处理:TCP可以提供数据包分组、组装和排序等功能,而UDP则无法提供上述功能。
8、首部开销:TCP首部开销最小20字节,最大可达60字节,而UDP的首部开销相对较小,仅8个字节。
9、报文传输:TCP面向字节流,将数据看成一连串无结构的字节流,而UDP则是面向报文的,不存在拥塞控制。
10、连接对象数:每一条TCP连接只能是点到点的,而UDP则支持一对一、一对多、多对一和多对多这三种交互通信。
11、是否连接:TCP是基于连接的协议,发送数据前需要建立连接,而UDP是基于非连接的协议,不需要建立连接即可进行数据传输。
12、可靠性:TCP提供可靠的服务。即通过TCP连接传送的数据是无差错、不丢失、不重复且按序到达,UDP尽最大努力交付,即不保证可靠交付。
13、应用场景:TCP传输的可靠性较高,一般适用于可靠传输的应用,如文件传输等;而UDP传输为了追求传输速率与传输平衡性,更加是用于实施应用,如IP电话、视频会议和直播等应用。
标签:UDP,字节,区别,通信,TCP,分片,连接 From: https://www.cnblogs.com/Auion-idiot/p/16744465.html