当前位置: 首页 > news >正文

云南省建设考试中心网站长春自助建站软件

云南省建设考试中心网站,长春自助建站软件,济南做网站优化价格,云匠网下载写在前面 本文来看下TCP和UDP协议。 我们接触这两个协议最多的应该就是在面试中了,经典题目就是“TCP和UDP有什么区别?”,而最常得到的答案就是TCP是面向连接的,而UDP是面向无连接的。 那么这里的连接到底是什么呢?难…

写在前面

本文来看下TCP和UDP协议。
我们接触这两个协议最多的应该就是在面试中了,经典题目就是“TCP和UDP有什么区别?”,而最常得到的答案就是TCP是面向连接的,而UDP是面向无连接的。
那么这里的连接到底是什么呢?难道真的是有一条物理上的线在那里吗?当然不是,实际上是这样子的,我们知道,TCP想要建立连接,必须经历三次握手的过程,三次握手其实就是在交换数据,而三次握手之后,双方都会将这些TCP协议本身需要用到的数据使用一定的数据结构维护起来,所以连接其实就是使用一定的数据结构保存的数据,也所以连接其实就是数据了,即连接=数据。那么UDP为什么是无连接的呢,因为它不需要维护这些数据。使用这些数据来维护交互的状态,也就是在逻辑上连接起来了,而绝非物理上的。
TCP维护连接状态的数据都有哪些呢,比如滑动窗口信息,哪些数据发送了没有ack,哪些数据发送了还没有ack,哪些数据还没有发送等。
其他区别:

TCP提供可靠交付,UDP不是
TCP是面向流的,没头没尾,而UDP是基于数据包的,一个个发,一个个收
TCP有拥塞控制,UDP没有

所以啊,可以总结来看,TCP也是一个服务,而程序分为无状态的服务和有状态的服务,很明显TCP是属于有状态的服务了。相对应的UDP就是一个无状态的服务。

1:UDP

UDP全称,user diagram protocol,即用户数据报协议,是一种无连接协议。

1.1:UDP的头

当机器收到一个包之后,物理层首先会拆掉物理层头部,判断MAC地址是否匹配,如果是匹配则交给网际层,网际层获取头部后,发现IP地址匹配,则交给传输层处理,但是到底是交给哪种传输层协议呢,这里需要看IP头部的具体存放使用的是TCP还是UDP的8位协议信息了,这里假定是UDP,数据到达UDP,UDP怎么知道交给哪个应用程序呢?这就需要端口号了,也就是UDP头的如下信息:
在这里插入图片描述
这里也可以看到UDP的头只有8个字节,简单到一塌糊涂。而相比之下TCP的头就要复杂多了。
传输层处理完毕之后,内核的工作也就完成了。接下来只要找到监听了目标端口号的应用程序,交给其处理就行了。

1.2:UDP适用的场景和实例

1.2.1:网络比较好的内网环境

比如像飞鸽,飞秋等内网的聊天工具。

1.2.2:对时延敏感,且对少少量丢包不敏感应用

比如实时对战游戏,属于分秒必争型的,很多职业玩家,为了进一步降低时延甚至会买专业版的鼠标和键盘。如果是使用TCP,可能为了等待上一个没有到达的包,早就被爆头了。
比如直播场景,视频网站,少量的丢包用户其实是没有感知的,特别是直播追求实时性,已经丢失的包就算等到了其实也没有意义了。

1.2.3:应用本身资源少

比如IOT物联网,设备内部可能只是嵌入了一个很小的操作系统,终端系统资源很少,而TCP需要额外存储一些维护连接状态的数据,协议代价比较大。

1.2.4:广播场景

比如DHCP。就算丢包也所谓,重发就行了。

2:TCP

写在后面

参考文章列表

多知道一点

网络包的单位都有哪些?

网络传输是以包为单位的,二层叫帧,网络层叫包,传输层叫段。我们笼统地称为包。

http://www.dtcms.com/a/617827.html

相关文章:

  • ReALM(Retrieval-Augmented Language Model)介绍
  • 玩转Docker | Docker环境下部署JSON可视化管理工具JsonHero
  • 学院评估 网站建设整改wordpress 多条件搜索
  • 通信系统架构设计
  • C++_Bug:现代写法拷贝构造中 swap 写法之小坑
  • 通关upload-labs(14-21)加分析源码
  • 【目标检测】YOLOv10n-ADown弹孔检测与识别系统
  • 扬中网站推广导流网盘怎么做电影网站
  • 【C++】:priority_queue的理解,使用和模拟实现
  • 深圳南山网站建设公司做网络推广需要多少钱
  • Rust中的集合Collection
  • Git 配置实践
  • 学习笔记十:多分类学习
  • 【实战案例】基于dino-4scale_r50_8xb2-36e_coco的棉田叶片病害识别与分类项目详解
  • opencv学习笔记9:基于CNN的mnist分类任务
  • 分布式系统中MPSC队列的内存回收策略适配避坑
  • Git笔记---分支相关操作
  • 基于YOLOv8的汽车目标检测系统实现与优化_含多种车型识别与自动驾驶应用场景
  • 广东省建设工程协会网站如何查看一个网站是不是用h5做的
  • 开发STM32日记1:安装软件、配置软件(芯片为STM32F103C8T6 )
  • 【Git】处理报错原因
  • 基于Bboss框架的ElasticSearch并发更新版本冲突问题解决
  • Highcharts常见问题解析(5):如何将多个图表导出到同一张图片或 PDF?
  • 什么是中间件?必须要有中间件吗?有哪些国产中间件厂商?
  • 第七章深度解析:从零构建智能体框架——模块化设计与全流程落地指南
  • 机器视觉3D无序抓取如何确保抓取精度,需要从以下五个核心方面入手,形成一个闭环的控制系统
  • Git Bisect - Git Commit 故障排查利器使用详解
  • 青岛科技街网站建设不懂外贸做外贸网站好做吗
  • 2511C++,CTAD简化回调
  • 【ros2】ROS2 C++参数设置指南(含跨节点修改方法)