首页 > 其他分享 >TCP和UDP的联系与区别

TCP和UDP的联系与区别

时间:2022-10-02 13:56:13浏览次数:49  
标签:UDP 字节 区别 通信 TCP 分片 连接

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

相关文章

  • TCP和UDP的区别
    UDP:UDP与TCP的主要区别在于UDP不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP在许多方面非常有效。当某个程序的目标是尽快地传输......
  • UMA和NUMA CPU系统架构的区别
    转载自csdn上的博客https://blog.csdn.net/qq_40276626/article/details/121096365CPU和内存之间的架构分为两种:1、UMAUMA全称为UniformMemoryAccess,叫做一致性内存访......
  • 今日创见|一图比较UI、UX和产品设计能力的区别
    虽然UI和UX之间的区别已经被讨论过很多次,但是对于新手设计师来说,区分它们还是有一定难度。用户体验设计是研究用户行为的过程,是对用户体验历程的创作。本文通过图表简单介......
  • python2与python区别汇总
    目录输入与输出range使用区别字符编码区别输入与输出python2与python3中两个关键字的区别python2中input方法需要用户自己提前指定数据类型写什么类型就是什么类型ra......
  • 夯实基础之tcp Keepalive和 http Keep-Alive
    HTTP的Keep-Alive,是由应用层(用户态)实现的,称为HTTP长连接;TCP的Keepalive,是由TCP层(内核态)实现的,称为TCP保活机制;httpkeep-aliveHTTP协议采用的是「请求-......
  • AD节点监视器之TCP半连接
    今天创建应用负载的时候,关注了一下节点监视器的类型<ignore_js_op>监视器的类型很多,这里的TCP半连接是什么意思呢,在这里简单的分析一下,不对的地方请各位大神批评指正......
  • Java泛型中<T> T 与 T的区别和用法
    有的方法返回值是<T>T,有的是T,区别在哪里?下面是一个泛型方法,<T>声明此方法有一个泛型T,也可以理解声明一个泛型方法.    下面三个T,第一个T表示是泛型,第二个......
  • TCP与UDP的联系与区别
    TCP与UDP的联系与区别TCPTCP(TransmissionControlProtocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。TCP仅支持单播传输,面向字节流,......
  • 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么 区别? -02
    serial  英[ˈsɪəriəl]美[ˈsɪriəl]  电视连续剧;广播连续剧;杂志连载小说 ParNew 新式parallel 英[ˈpærəlel]  平行的;Scavenge  英[ˈskæv......
  • 事件和调用的区别
    我一个事件放在那边,触发这个事件后,有注册本事件的客户代码才做对应处理,没有的话就不需要。这样对于客户代码来说,需要这个事件,我就注册一下,不需要我就解除。就这么简单。LZ......