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

TCP与UDP的联系与区别

时间:2022-10-03 13:00:41浏览次数:44  
标签:协议 UDP 区别 16 TCP 传输层 连接

    今天我准备要写的是一些关于TCP与UDP的区别,在进行对两者的讨论之前,我们首先要了解TCP和UDP分别是什么?

  TCP与UDP是TCP/IP的传输层里面的两种主要协议,他们都基于相同的网络层协议IP。

  传输层协议主要有六种作用:

  一、提供能面向连接或无连接的服务:因为传输层的功能就是提供端到端的连接,所以传输层协议就定义了两端点之间是否需要去建立一个可靠的连接关系。

  二、实现多路复用:一个ip地址只可以标识一个主机,做到一对一的通信关系,但是一个主机却可以用多个程序同时访问网络,所以传输层协议就用到了端口号来对这些应用程序进行了标识。

  三、可靠传输数据:传输层协议可以有效的检测并修改,数据在网络传输过程中发生的一系列错误。

  四、维护连接状态:如果必须在通信前建立连接关系,传输层协议必须在其数据库中记录这种连接关系,并且通过某种机制维护连接关系,及时发现连接故障等。

  五、对应用层数据进行分段和封装:应用层数据往往是大块或持续的数据流,而网络只能发送长度有限的数据包,传输层协议必须在传输应用层数据之前将其划分成适当尺寸的段,再交给ip协议发送。

  六、流量控制:当发送方的发送速率超过接收方的接收速率时,或者当资源不足以支持数据的处理时,传输层负责将流量控制在合理的水平;反之,当资源允许时,传输层可以放开流量,使其增加到适当的水平。

 

TCP协议

1.TCP头格式如上图所示,其协议头最少20个字节:

源端口:16位。

目标端口 :16位。

序列号: 32位。

确认序号:32位。

TCP头长度:4位。

保留:6位。

控制代码:6位,这六个标志从左至右是URG(Urgent Pointer field significant,紧急指针字段标志)、ACK(Acknowledgment field significant,确认字段标志)、PSH(Push Function,推功能)、RST(Reset the connection,重置连接)、SYN(Synchronize sequence numbers,同步序列号)、FIN(No more data from sender,数据传送完毕)。

窗口大小:16位。

偏移量:16位。

校验和:16位。

选项:32位(可选)。

 

2.TCP的连接建立与拆除

2.1 三次握手

 

 

 TCP为了确保连接的建立和终止都是可靠的,所以使用三次握手的方式来建立可靠连接,TCP使用报头中的SYN(同步段),来描述三次握手的过程,同时三次握手过程只有在两端都同意的情况下,才会打开一个连接。

  TCP三次握手的建立过程(简化版):

HostA:你好我是A,申请连接

HostB:你好A,我是B同意连接

HostA:你好B。

其实三次握手就是一个相互响应的过程,A与B相互响应两者的请求。

 

2.2 四次挥手

TCP四次挥手(简化版):

HostA:我不想连接了,我们结束吧

HostB:知道了,你不想连接了,等我剩下的搞完就断开连接

HostB:我们断开连接吧,再见

HostA:好的,下次见

这就是一个四次挥手结束的大致过程。

 

UDP协议

 

1.UDP报头如上图所示,比TCP报头少了很多东西,基本除了端口号其他啥也不剩了。

 

2.UDP的特点和应用场景

2.1 UDP并不会建立连接,所以谁都可以传输数据给他,他也可以给任何人传数据,甚至可以同时传给多人数据。

2.2 没有纠正网络错误的功能,会一直发送,就是不管网络丢包还是拥堵,UDP都会一直发送数据

2.3 一般应用在直播的时候

 

在我们大概了解了TCP和UDP之后,就可以开始讲一下两者的不同了

 

一、TCP是面向连接的,UDP是无连接的,就是TCP建立连接例如三次握手,UDP并没有

二、TCP会维护端到端的连接状态,而UDP并不会

三、TCP是可靠传输,而UDP可能丢包,不确保可靠传输

四、TCP有流量控制机制,UDP并不会控制流量

 

 

 

 



 

标签:协议,UDP,区别,16,TCP,传输层,连接
From: https://www.cnblogs.com/HuangCB/p/16750252.html

相关文章

  • 面试官:vue2和vue3的区别有哪些?
    一、Vue3与Vue2区别详述1.生命周期对于生命周期来说,整体上变化不大,只是大部分生命周期钩子名称上+“on”,功能上是类似的。不过有一点需要注意,Vue3在组合式API(Compo......
  • Go的[]rune 和 []byte的区别
    Go的[]rune和[]byte的区别[]rune和[]byte源码//byteisanaliasforuint8andisequivalenttouint8inallways.Itis//used,byconvention,todis......
  • 治理与管理的区别
        很多时候区分不清治理与管理,学习到相关内容,觉得可以很好的区分两者之间,希望能解释清楚,同时记得方老师说过的,治理也可以理解为管理的管理。   管理活动侧......
  • 传输层:TCP协议
    我必须吐槽一下TCP的内容挺多的,我果然太菜还小看了~~目录UDP报文段结构TCP报文段结构TCP基础——reliabledatatransferprotocalTCP实现可靠连接传送的特点:1.TCP往返时......
  • vue和微信小程序的区别
    写了vue项目和小程序,发现二者有许多相同之处,在此想总结一下二者的共同点和区别。一、生命周期先贴两张图:vue生命周期小程序生命周期相比之下,小程序的钩子函数要简单......
  • 接口测试原理,接口自动化测试与性能自动化测试、UI自动化测试、单元测试的区别
    接口测试与UI测试、性能测试、单元测试的区别:一、接口自动化测试与UI自动化测试:原理不同:UI自动化测试,通过元素定位模拟人的眼睛和手进行界面和页面的操作接口自动化测......
  • HDFS和NFS的区别
    #相同点两者的文件系统数据均能够在相关系统内的多台机器上进行数据读取和写入,都是分布式文件系统#不同点##NFS是通过RPC通信协议进行数据共享的文件系统,所以NFS必须在运行......
  • identifying realtionship与non-identifying relationship区别与转换(标识关系与非标识
    MySQLWorkbench或者是E-RWin等进行数据库建模时,通常会对数据表进行关联操作,即设置表与表之间的关系1:11:nm:n,而它们具有 identifyingrealtionship 与non-identify......
  • 读取文章内容时,.equals("")和== null的区别
    filename="Questions\\Records";Filefile=newFile(filename);FileReaderfr=newFileReader(file);BufferedReaderbr=newBufferedReader(fr);Stringline=b......
  • TCP和UDP的联系与区别
    TCP和UDP的定义1、TCP传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、基于字节流的为不可靠的互联网络提供可靠的端到端字节流而专门设计的传输层......