网络面试-0x12 UDP和TCP的区别以及应用场景

news2024/10/6 14:34:24

一、 UDP (user datagram protocol)用户数据报协议

①: 一种简单的面向数据报的通讯协议,即:应用层传下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层。无论应用层交给UDP多长的报文,它统统发送,一次发送一个报文。
②: 接收方,接到后直接去除首部,交给上面的应用层就完成任务
③:UDP报头包含4个字段,每个字段占用2个字节,标题段,开销小

alt

特点: 1)UDP不提供复杂的控制机制,利用IP提供面向无连接的通讯服务 —— 连接
2)传输途中出现丢包, UDP也不负责重发 —— 丢包不处理
3)当报的到达顺序出现乱序时,UDP没有纠正的能力 —— 无纠正能力
4)接收方接收到数据的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞的行为。 —— 网络拥塞无法处理

二、 TCP (Transmissioin Control Protocl)传输控制协议

①:一种可靠、面向字节流的通讯协议,把上面应用层交下来的数据看成无结构的字节流来发送。
②:可以想象成为流水形式,发送方TCP 会将数据放入“蓄水池”(缓存区),等到可以发送的时候发送,不能发送就等着。
③:TCP会根据网络的拥塞状态来确定每个报文段的大小。
④:报文首部有20个字节,额外开销大。

alt

特点: 1)TCP充分地实现了数据传输时各种控制功能,可以进行丢包时重发控制,还可以对次序乱掉的分包进行顺序控制,而这些在UDP中都没有 —— 丢包处理、纠正处理
2)TCP是面向连接的协议,只有确认通讯对端存在时才会发送数据,从而可以控制通信流量的浪费 —— 可避免拥塞的控制
3)根据TCP这些机制,IPO这种无连接的网络上也能够实现高可靠性的通讯(主要通过:校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)—— 基于无连接的IP进行高可靠的协议的需要处理的

三 、区别

类型TCPUDP
是否面向连接
是否可靠性
传输形式字节流数据报文段
传输效率
所需要资源
双工性全双工1对1、 1对多、多对一、多对多
流量控制滑动窗口
控制拥塞慢启动、拥塞避免、快重传、快恢复
首部字节20~ 608个字节
应用场景文件传输、邮件传输即使通讯、域名转换
  1. 连接:TCP面向连接,3次握手,4次挥手; UDP是面向无连接,数据传输前后不连接,发送端只负责将数据发送到网络,接收端从消息队列读取。
  2. 可靠:TCP 提供可靠的服务,传输过程采用流量控制、编号、确认、计时器等手段确保数据误差错、不丢失。 UDP则尽可能传递数据,但并不保证传递给付给对方
  3. 传输数据:TCP面向字节流,将应用层报文看成一串无结构的字节流,分解为多个TCP报文段传输后,在目的站重新装配; UDP协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文了,接受方去除报文首部,原封不动将报文交给上层应用。
  4. 双工:TCP只能够点对点双攻通信,UDP支持1-1/1-n/n-1/n-n的交互通信。

四、应用场景

alt

TCP 使用对效率要求低,对准确性要求高或要求也有链接的场景
UDP 对效率要求高,对准确性要求低的场景

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Github优秀项目-使用Python基于CPM文本自动生成

基于CPM模型的中文文本生成项目,可用于作文、小说、新闻、古诗等中文生成任务。 虽然说开源的,但是实际部署应用的过程中很多小伙伴还遇见了不少的问题,这里我用自己的方式部署应用,如果还没有实现该功能的小伙伴可以跟我一起来操作。 如果有不了解的小伙伴先来看一下实验…

【多目标进化优化】多目标进化算法的收敛性

0 前言 \quad\quad对 MOEAMOEAMOEA 收敛性的研究是 MOEAMOEAMOEA 研究的重要内容,但目前这方面的研究结果比较少。 一个 MOEAMOEAMOEA 的收敛性可以从两个方面考虑;一是有限时间内的收敛;二是当时间趋向于无穷大时的收敛。第一类收敛是最理想…

Kotlin高仿微信-第9篇-单聊-文本

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

麦芽糖-阿奇霉素 maltose-Azithromycin 阿奇霉素-PEG-麦芽糖

麦芽糖-阿奇霉素 maltose-Azithromycin 阿奇霉素-PEG-麦芽糖 中文名称:麦芽糖-阿奇霉素 英文名称:maltose-Azithromycin 别称:阿奇霉素修饰麦芽糖,阿奇霉素-麦芽糖 纯度:95% 存储条件:-20C&#xff0c…

webscoket学习

webscoket基本使用 WebSocket - Web API 接口参考 | MDN 使用node编写webscoket服务 nodejs-webscoket 在github的地址↓ GitHub - sitegui/nodejs-websocket: A node.js module for websocket server and client ws和socket.io 是wbscket的两个库 仓库地址:l…

Scala系列-5、scala中的泛型、actor、akka

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 传送门:大数据系列文章目录 目录scala的 泛型给方法定义泛型给类定义泛型泛型的上下界泛型中 非变 协变 和 逆变scala中actor相关内…

echarts中tooltip设为渐变色与模糊背景滤镜

关于echarts各项内容(包括图表面积区域)设为渐变色已在上篇文章里全部阐述: echarts折线图与柱状图等绘成渐变色的方法 单独将tooltip拉出来再写一篇,是因为用formatter配合超文本的形式在echarts的配置项中,于自定义样…

Python使用magic判断文件MIME类型

文章目录官网安装使用判断文件的MIME类型支持中文的代码问题官网 GitHub - ahupp/python-magic: A python wrapper for libmagic 安装 pip install python-magic pip install python-magic-bin使用 判断文件的MIME类型 代码 # encodingutf-8 import magic #pip install pyt…

希尔贝壳受邀参加IEEE自动语音识别与理解研讨会-ASRU 2021

ASRU 2021 IEEE Automatic Speech Recognition and Understanding Workshop(2021年IEEE自动语音识别与理解研讨会,以下简称ASRU),将于2021年12月13日至17日在哥伦比亚卡塔赫纳举行。 ASRU 研讨会是IEEE语音和语言处理技术委员会(…

领悟《信号与系统》之 周期信号的傅里叶变换计算

周期信号的傅里叶变换计算一、周期信号的傅里叶变换存在的条件二、周期信号的傅里叶变换例题:一、周期信号的傅里叶变换存在的条件 典型非周期信号(如指数信号,矩形信号等)都是满足绝对可积(或绝对可和)条…

IDEA的日常快捷键大全

更多内容在:https://javaxiaobear.gitee.io/ ​​​​​​第1组:通用型 说明 快捷键 复制代码-copy ctrl c 粘贴-paste ctrl v 剪切-cut ctrl x 撤销-undo ctrl z 反撤销-redo ctrl shift z 保存-save all ctrl s 全选-select all …

(2)点云库处理学习——剔除点云值

1、主要参考 1.1参考地址 (1) 点云离群点剔除 — open3d python_Coding的叶子的博客-CSDN博客_离群点去除 (2) open3d之点云异常值去除(笔记5)_Satellite_H的博客-CSDN博客 (3)斯坦福经典兔子的点云数据下载地址 下载地址 Model : Bunny 1.2兔子…

3D视觉识别案例:3D无序棒料抓取,阀体圆环上下料,电机定子上料

3D无序棒料抓取 某知名汽车行业 项目背景 长春某知名汽车行业,需求3D视觉实现圆形棒材的上料自动化。 作业流程 钢棒依次经过剪切/锯切下料,从深筐中抓取,先放置在V型二次定位平台上,再从平台抓到输送线上,目标工…

[附源码]SSM计算机毕业设计新冠疫苗线上预约系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

超算,先进计算未来的研究方向有哪些?

超算是一个非常有趣的方向,当人们仰天长望思索宇宙大爆炸和起源时,超算便成为了非常重要的一个研究途径,利用超算平台对中国FAST天眼射电望远镜捕捉到的海量信号进行分析和处理,帮助中科院探索发现了诸如脉冲星、最大原子气体、快…

如何将报告从 JasperReports 导入到 FastReport .NET?

FastReport.NET官方版下载 我们在 JasperReports 添加了一个新的导入功能,如果要使用它,需要到 FastReport .NET 设计器中的“文件”菜单并选择“打开...”。在出现的窗口中,选择过滤器“JasperReports 文件 (*.jrxml)”。所选文件将自动转换…

基于Apache-DButils以及Druid(德鲁伊)与数据库交互实现的一个项目:满汉楼

基于Apache-DButils以及Druid(德鲁伊)与数据库交互实现的一个项目:满汉楼 每博一文案 张小贤曾说过: 你不过是做自己喜欢做的事,过自己喜欢过的生活。 若有人因为你喜欢做的事而觉得恶心和取笑你,那是他们的事。是呀,生活是苦&am…

蓝海创意云亮相2022南京融交会,打造沉浸式元宇宙互动体验

11月24日,2022中国(南京)文化和科技融合成果展览交易会在南京国际展览中心正式开幕,展会聚焦文化数字化战略,集中展示文化数据专网、数字化公共文化服务、“元宇宙”等数字文化新基建、新服务、新场景、新体验。 苏州…

第十三章《集合》第3节:Set集合

Set也是Collection的子接口,它定义了另一种形式的集合,专业上称之为Set集合。Set集合的特点如图13-9所示。 图13-9 Set类型集合 从图13-9可以看出:Set类型的集合就像是一个装苹果的筐子,程序员只要把元素存入这个筐子即可。集合中的元素像是胡乱堆积在一起,因此元素没有索…

迷宫-蓝桥云课,python实现

X 星球的一处迷宫游乐场建在某个小山坡上。它是由 10 \times 101010 相互连通的小房间组成的。 房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则: LL 表示走到左边的房间,RR 表示走到右边的房间,UU 表示走…