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

TCP与UDP的联系与区别

时间:2022-10-08 11:11:15浏览次数:91  
标签:UDP 区别 主机 TCP 发送 数据包 连接

TCP(Transmission Control Protocol,传输控制协议)

他是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。

这说明TCP连接是一个非常复杂的过程,需要进行“三次握手”才可以建立连接。

以下是我在查阅资料的时候看到的例子,便于更加深刻理解

我们来看看这三次对话的简单过程:

1.主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;

2.主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;

3.主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
UDP(User Data Protocol,用户数据报协议)

是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。

这就说明UDP连接是一个简单,但是是不太安全的。即他适用于可靠性要求不高的环境,例如:打电话,Ping指令......

这个也是我在查阅资料的时候看到的例子,便于更加深刻理解:

比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包。大家都知道,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。

这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;

但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的bai通信传输。
总结:

1.TCP是面向连接的,UDP是无连接的
2.TCP是可靠的,UDP是不可靠的
3.TCP是面向字节流的,UDP是面向数据报文的
4.TCP只支持点对点通信,UDP支持一对一,一对多,多对多
5.TCP报文首部20个字节,UDP首部8个字节
6.TCP有拥塞控制机制,UDP没有
7.TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区
选择依据(即什么时候选TCP或者UDP):

对某些实时性要求比较高的情况,选择UDP,比如游戏,媒体通信,实时视频流(直播),即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失。

参考文献:

(33条消息) TCP和UDP的区别和联系_典韦-码农的博客-CSDN博客_tcp和udp的区别与联系

(33条消息) TCP与UDP的区别(超详细)_董HaoYu的博客-CSDN博客_tcp与udp的区别

标签:UDP,区别,主机,TCP,发送,数据包,连接
From: https://www.cnblogs.com/zhangsanlisi411/p/16768335.html

相关文章

  • SAP UI5 控件库里 Form 控件和 SimpleForm 控件的区别和联系讲解试读版
    一套适合SAPUI5初学者循序渐进的学习教程本专栏计划的文章数在​​300​​​篇左右,到​​2022年9月22日​​​为止,目前已经更新了​​133​​​篇,专栏完成度为​......
  • Demo23_or循环与while循环的区别 break与continue的区别
    //for循环与while循环的区别break与continue的区别packagecom.HuanXin.JiBen_JieGou_4;publicclassDemo12_break_continue{publicstaticvoidmain(String[]arg......
  • 基于Netty的TCP服务框架
    19年写的一个基础的TCP服务框架,内置了一个简单IOC容器,当时的目标是一方面能作为组件供第三方集成实现TCP通讯相关功能,另一方面作为提供一种服务框架范式。所以框架核心点......
  • 浅析package.json 和 package-lock.json的区别
    一package.json中的版本符号{"react":"^18.2.0","react-dom":"~18.2.0""react-refresh":"0.11.0",}插入符号^18.2.0:匹配18.X.X的最新版本。波浪符号~1......
  • 你真的理解==和===的区别吗?
    用中文怎么叫合适?相等?全等?其实并不合适,叫doubleequals或者trebleequals,或者叫不懂的人觉得比较不专业的双等或者三等操作符,是更加严谨和正确的叫法。为什么这么说?看完......
  • 为什么每次建立 TCP 连接时,初始化的序列号都要求不一样呢?
    为什么每次建立TCP连接时,初始化的序列号都要求不一样呢?主要原因有两个方面:为了防止历史报文被下一个相同四元组的连接接收(主要方面);为了安全性,防止黑客伪造的相同序列......
  • TCP与UDP的联系与区别
    TCP(TransmissionControlProtocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来......
  • TCP与UDP的区别和联系
     TCP与UDP的区别1.UDP支持一对一,一对多,多对一,多对多通信而TCP只能是一对一通信2.UDP不与对方建立连接,通信效果好实时通话,而TCP需要和对方建立连接。但是UDP虽然通信效......
  • TCP与UDP的联系与区别
    TCP(TransmissionControlProtocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其......
  • TCP与UDP的联系与区别
    一、联系这两个都是运输层协议;都是建立在ip之上的TCP叫做流式套接字,UDP是报文套接字。二、区别1、基于连接与无连接。2、TCP要求系统资源较多,UDP较少。3、UDP程序结构......