【计算机网络 - 基础问题】每日 3 题(十九)

✍个人博客:Pandaconda-CSDN博客
📣专栏地址:http://t.csdnimg.cn/fYaBd
📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

55. udp 为什么延迟比较低?udp 丢包应该怎么处理?比如王者荣耀你一个技能放出去但是没有得到响应,用户体验下降怎么办?

UDP(用户数据报协议)相较于 TCP(传输控制协议),延迟较低的主要原因有两个方面:

  1. UDP 是无连接的:UDP 在传输数据时不需要进行建立连接和断开连接的过程,减少了握手和挥手的时间。这使得 UDP 在传输数据时不需要等待连接的建立和确认,从而减少了延迟。
  2. UDP 没有拥塞控制和数据重传机制:TCP 通过拥塞控制和数据重传来保证数据的安全可靠,这会引入一定的延迟。而UDP没有这些机制,所以在网络负载较轻、可靠性要求不高的场景下,可以减少一些额外的延迟。

然而,UDP 的不可靠性也导致了容易丢包的问题。当 UDP 发生丢包时,可以考虑以下几种处理方式:
3. 重传机制:应用层可以设计重传机制,在发送端设置一个定时器,如果在一定时间内没有收到确认或响应,就重发该数据包。这需要应用层自行实现。
4. 前向纠错:可以在发送端添加冗余数据,例如使用纠错码(如海明码)来增加数据的冗余度,从而在接收端检测和纠正丢失的数据。
5. 应用层协议设计:根据具体应用场景和需求,可以通过应用层协议设计来解决数据丢失的问题。例如,王者荣耀可以在技能发送后,等待一定时间后才取消技能施放,并向用户显示一个提示,以降低用户体验的下降程度。

56. 什么是 TCP?

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。

在这里插入图片描述

  • 面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的;
  • 可靠的:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个报文一定能够到达接收端;
  • 字节流:用户消息通过 TCP 协议传输时,消息可能会被操作系统「分组」成多个的 TCP 报文,如果接收方的程序如果不知道「消息的边界」,是无法读出一个有效的用户消息的。并且 TCP 报文是「有序的」,当「前一个」TCP 报文没有收到的时候,即使它先收到了后面的 TCP 报文,那么也不能扔给应用层去处理,同时对「重复」的 TCP 报文会自动丢弃。

57. 什么是 TCP 连接?

简单来说就是,用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接。

在这里插入图片描述

所以我们可以知道,建立一个 TCP 连接是需要客户端与服务端达成上述三个信息的共识。

  • Socket:由 IP 地址和端口号组成
  • 序列号:用来解决乱序问题等
  • 窗口大小:用来做流量控制

在这里插入图片描述

序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。

确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决丢包的问题。

控制位:

  • ACK:该位为 1 时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的 SYN 包之外该位必须设置为 1 。
  • RST:该位为 1 时,表示 TCP 连接中出现异常必须强制断开连接。
  • SYN:该位为 1 时,表示希望建立连接,并在其「序列号」的字段进行序列号初始值的设定。
  • FIN:该位为 1 时,表示今后不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换 FIN 位为 1 的 TCP 段。

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

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

相关文章

java怎么给代码增加说明,让鼠标浮上去可以显示说明

java怎么给代码增加说明,让鼠标浮上去可以显示说明 简述 通过使用JavaDoc注释,你可以提高代码的可读性和可维护性,并且方便其他开发者理解你的代码。在Java中,为了让鼠标悬停在代码上时显示说明信息,你可以使用JavaDo…

​数据库: MyBatis-Plus

MyBatis-Plus MyBatis-Plus 是 MyBatis 的增强工具,核心作用是简化 CRUD 操作和提升开发效率。它提供基础的增删改查方法、分页插件、条件构造器以及代码生成器,帮助减少重复代码量。MyBatis-Plus 不支持自动建表,专注于简化数据库操作&…

CV之OCR:GOT-OCR2.0的简介、安装和使用方法、案例应用之详细攻略

CV之OCR:GOT-OCR2.0的简介、安装和使用方法、案例应用之详细攻略 目录 GOT-OCR2.0的简介 1、更新 GOT-OCR2.0的安装和使用方法 1、安装 安装环境cuda11.8torch2.0.1 安装包 安装Flash-Attention GOT权重:1.43G 2、演示 3、训练 4、评估 GOT-…

直接在tomcat下面访问jsp

复制一份tomcat为tomcat-8.5.99test 记住修改tomcat-8.5.99test下面bin/startup.sh(Linux/Mac)或 bin/startup.bat(Windows) 在 Linux/Mac export CATALINA_BASE/path/to/tomcat1 $CATALINA_HOME/bin/startup.sh 在 Windows: …

springboot 控制器

springboot 控制器 文章目录 springboot 控制器1.Controller和RestController**Controller:数据和页面****RestController:数据**所以我们的controller一般在springmvc中使用,返回页面,但是现在的项目基本上都是前后端分离项目&am…

手写SpringMVC

1、开发HspDispatcherServlet 2、完成客户端/浏览器可以请求控制层 目的:发出url请求时,经过前端控制器,找到Monster的List方法,把结果再打回去 3、从web.xml动态获取hspspringmvc.xml 4、完成自定义Service注解功能 目的&…

什么是 SaaS?(软件即服务)

什么是SaaS软件? 软件即服务(SaaS)是一种云计算方法,其中应用程序在线存储,并以订阅的方式提供给用户。SaaS解决方案可以从任何web浏览器中使用,而无需在pc端或服务器上安装软件。 SaaS消除了基础设施、升…

Microsoft Edge 五个好用的插件

🐣个人主页 可惜已不在 🐤这篇在这个专栏 插件_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 Microsoft Edge 一.安装游览器 ​编辑 二.找到插件商店 1.打开游览器后,点击右上角的设置&#…

day-58 最佳观光组合

思路 用right表示最佳观光组合的右边的景点的索引,同时维护一个该景点左边values[left]left的最大值 解题过程 这样在遍历过程中,以right为右边景点的最佳得分即为values[right]-rightleftmax,再与ans比较,选择较大的那一个&…

ProtoBuf介绍及安装

文章目录 序列反序列化ProtoBuf特点安装ProtoBufwindowsUbuntuCentos 序列反序列化 在网络传输过程当中,可以理解为: 发送方接收方 它们彼此要通信,先要定好一个规则,也就是协议,双方都能认识的结构化数据&#xff…

优化 IT 投资与资源管理,实现企业数字化转型的成功

为何优化 IT 投资与资源管理对数字化转型至关重要 在当今瞬息万变的商业环境中,数字化转型已成为企业保持竞争力的必要手段。然而,随着技术的不断进步,企业在推进数字化进程时面临着巨大的IT 投资和资源管理挑战。优化这些投资不仅能确保企业…

算法.图论-并查集

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板4. 并查集习题4.1 情侣牵手4.2 相似字符串组 1. 并查集介绍 定义: 并查集是一种树型的数据结构,用于处理一些不…

突破距离限制:大文件跨境传输的高效策略揭秘

目前越来越多的人认识到大数据的重要性,有人将大数据比作“石油”,未来的某一天石油资源可能会面临枯竭,但是大数据中蕴藏的资源却不会。海外市场对于数据驱动的产品和服务的需求不断增加,越来越多的企业寻求更深度的跨国业务及合…

国内人工智能AI头部公司32家(包括详细技术、特点和综合实力)

国内AI头部公司前100家及其详细技术、特点和综合实力,基于当前行业认知和市场表现选取的一些代表性企业。 1. 百度(Baidu) 技术:百度在人工智能AI领域拥有深厚的技术积累,包括自然语言处理、计算机视觉、深度学习等核…

【文心智能体】 旅游手绘手帐 开发分享 零代码 手绘风景 记录行程和心情 旅游攻略

旅游手绘手帐,点击文心智能体平台AgentBuilder | 想象即现实 (baidu.com) 背景 这个智能体是一个零代码智能体(文心智能体平台现主推零代码,低代码将于10月8日低代码下架迁移),同时它已公开配置详情,感兴趣…

使用centos7搭建wiki论坛,使用nginx网站来搭建wiki负载均衡,反向代理。

1.安装一个wget,进入目录opt下 #安装wget yum -y install wget#进入目录/opt/下面 cd /opt/2.获取 mysql8.0 rpm包,安装mysql8.0,安装mysql-server,yum会自动下载所需安装及依赖包. #获取 mysql8.0 rpm包 wget https://dev.mysql.com/get/mysql80-comm…

【文化课学习笔记】【物理】电场

【物理】电场 前置知识 绝缘体:本质是物体内部电荷无法自由移动。 导体:本质是物体内部电荷可以自由移动。 电荷的移动:导体内部能够发生自由移动的电荷只有负电荷。 显电性:显示的电性,是内部的正负电荷中和之后的结果…

NLP 文本分类任务核心梳理

解决思路 分解为多个独立二分类任务将多标签分类转化为多分类问题更换 loss 直接由模型进行多标签分类 数据稀疏问题 标注更多数据,核心解决方案: 自己构造训练样本 数据增强,如使用 chatGPT 来构造数据更换模型 减少数据需求增加规则弥补…

《2024中国AI大模型产业图谱2.0版》重磅发布

‍ 数据猿出品 本次“数据猿2024年度三大媒体策划活动——《2024中国AI大模型产业图谱3.0版》”正式发布。下一次版本迭代将于2024年12月底发布2024年3.0版,敬请期待,欢迎报名。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着科技的飞速发展&…

7.C++程序中的基本数据类型-数据类型之间的转换

在C中,类型转换是将一个数据类型转为另外一个数据类型,其转换过程比较复杂,目前只讨论基本数据类型之间的转换。 类型转换分为两部分:隐式转换和显示转换 隐式转换又称为自动转换,显示转换又称为强制转换。 隐式转换…