近日八股——计算机网络

news2025/4/10 19:35:25

一.c. TCP握手为什么三次、不能是二次、或四次?

i.不能是两次:

防止已经失效的连接报文突然又传到了服务端,产生错误
如果不采用三次握手,服务端直接建立连接,会白白浪费资源
三次握手告诉服务端,客户端有没有收这个数据,连接的序号是否是有效的·服务端收到正常的数据后,建立tcp连接,否则关闭端口,减少服务器开销

ii.不能是四次:

三次已经创建可靠连接,没有必要多一次握手花费更多建立连接。

iii.TCP二次握手:

在TCP三次握手的过程中,当用户首次访问Server时,发送SYN包Server根据用户IP生成Cookie(已加密),并与SYN-ACK一同发回Client;当Client随后重连时,在SYN包携带TCP Cookie;如果Server校验合法,则在用户回复ACK前就可以直接发送数据;否则按照正常三次握手进行。

二.三次握手中每一次没收到报文会发生什么情况

i.第一次握手:

客户端没有收到确认报文,等待一段时间会重新发送SYN报文

ii.第二次握手:

服务端会触发超时重传,重传SYN-ACK报文前。

ii.第三次握手:

服务端会触发超时重传,重传到收到ACK报文或达到最大次数关闭连

三.第二次握手传回了ACK,为什么还要传回SYN

i.ACK:

是为了告诉客户端传过来的数据已经接受无误

ii.SYN:

告诉客户端,服务端已经响应客户端的报文。服务端在本次连接没有需要超时处理的事情

四.第三次握手可以携带数据吗?

第三次握手可以携带数据。

在 TCP 三次握手过程中,前两次握手主要用于建立连接,确认双方的发送和接收能力。第三次握手时,客户端在发送的 ACK 报文中可以携带数据。如果此时携带数据,那么服务器在收到带有数据的第三次握手报文后,就可以直接对数据进行处理,而无需等待客户端再发送一个专门的数据报文,这样可以减少一次数据传输的往返时间,提高通信效率。

五.客户端在发送完最后一个确认报文后,为什么不直接进入关闭状态?而是要进入时间等待状态,2MSL后才进入关闭状态,这是否有必要呢?

i.如果客户端最后一个确认报文丢失后,服务器无法进入关闭状态,会反复重传FIN报文。因此等待时间2msl,可以确保服务器可以收到最后TCP确认报文

ii.客户端发送最后一个TCP确认报文段后,经过2MSL时长,可以使当前所有产生的报文段从网络中消失。

六.为什么是2MSL

i.2MSL是报文最大生存时间,任何超过该时间的报文都将丢弃

ii.2MSL是因为网络中存在发送方的数据包,当这些发送方的数据包被接受方处理后又会被响应,所以来回需要2MSL

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

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

相关文章

电子电气架构 --- 面向服务的体系架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁&am…

基姆拉尔森计算公式

基姆拉尔森计算公式(Zellers Congruence 的变体)是一种快速根据公历日期计算星期几的数学公式。其核心思想是通过对年月日的数值进行特定变换和取模运算,直接得到星期几的结果。 公式定义 对于日期 年-月-日,公式如下&#xff1a…

5 分钟用满血 DeepSeek R1 搭建个人 AI 知识库(含本地部署)

最近很多朋友都在问:怎么本地部署 DeepSeek 搭建个人知识库。 老实说,如果你不是为了研究技术,或者确实需要保护涉密数据,我真不建议去折腾本地部署。 为什么呢? 目前 Ollama 从 1.5B 到 70B 都只是把 R1 的推理能力…

Python数据可视化-第6章-坐标轴的定制

环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容,本章为第6章 坐标轴的定制 本章主要介绍了坐标轴的定制,包括向任意位置添加坐标轴、定制刻度、隐藏轴脊和移动轴脊。 参考 第…

18认识Qt坐标系

平面直角坐标系(笛卡尔坐标系) 数学上的坐标系 右手坐标系 计算机中的坐标系 左手坐标系 坐标系的原点(0,0) 就是屏幕的左上角 /窗口的左上角 给 Qt 的某个控件,设置位置,就需要指定坐标.对于这个控件来说, 坐标系原点就是相对于父窗口/控件的. QPushButton 的父元素/父控件/父…

动态循环表单+动态判断表单类型+动态判断表单是否必填方法

页面效果: 接口请求到的数据格式: list: [{demandType: "设备辅助功能要求",demandSettingList: [{id: "1907384788664963074",name: "测试表单",fieldType: 0,contentValue: "",vaildStatus: 0, // 0 非必填&a…

25.4.3学习总结【Java】

又是一道错题: 1. 班级活动https://www.lanqiao.cn/problems/17153/learning/?page1&first_category_id1&sortdifficulty&asc1&second_category_id3 问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师…

运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)

运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置: 基础概念: 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…

开发一个小程序需要多久时间?小程序软件开发周期

开发一个小程序所需时间受多种因素影响,以下为你详细列举: 一、需求复杂度。若只是简单展示类小程序,如企业宣传、产品介绍,功能单一,大概 1 - 2 周可完成。若涉及复杂交互,像电商小程序,涵盖商…

【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林

文章目录 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 一、 什么是算法1. 算法的定义1.1 算法的五个特征1.2 好算法的特质 2. 时间复杂度3. 空间复杂度 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 💬欢…

新增帧能耗指标|UWA Gears V1.0.9

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。 本次版本更新主要新增帧能耗指标,帮助大家对每一帧的能耗进行精准监控,快速…

蓝桥杯嵌入式16届———LCD模块

LCD有官方给我们提供的库,我们使用其非常简单,唯一要注意的就是LCD和LED的引脚冲突。 引脚状况 STM32CubeMX 端口配置 使能 比赛给的选手 资源数据包中有以下三个文件,(除去led相关的),将他们复制到自己…

CMake在Windows环境下Visual Studio Code的使用

1,安装下载 地址:Visual Studio Code - Code Editing. Redefined 双击安装 选择安装路径 可勾选微软的AI工具 2,环境介绍 2.1 ,界面介绍 2.2中文包的安装 下载中文简体 汉化后的界面 2.3 配置C/C环境 VSCode安装好之后&#xf…

注意力机制在大语言模型中的原理与实现总结

注意力机制在大语言模型中的原理与实现总结 1. 章节介绍 在大语言模型的学习中,理解注意力机制至关重要。本章节旨在深入剖析注意力机制的原理及其在大语言模型中的应用,为构建和优化大语言模型提供理论与实践基础。通过回顾神经网络基础及传统架构的局…

大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程

一、说明 目前DeepSeek R1及其蒸馏模型均支持使用ollama进行调用,可以在模型主页查看调用情况 deepseek-r1https://ollama.com/library/deepseek-r1 显存需求 ,我们显存是16G,可以玩好几个 二、以14B模型演示 1、安装ollama curl -fsSL htt…

RAGFlow部署与使用介绍-深度文档理解和检索增强生成

ragflow部署与使用教程-智能文档处理与知识管理的创新引擎 1. ragflow简介 ​ RAGFlow作为新一代智能文档处理平台,深度融合检索增强生成(RAG)技术与自动化工作流引擎,为企业级知识管理提供全栈解决方案。通过结合多模态解析、语…

【AI赋能:58招聘数据的深度剖析之旅】

影刀出鞘,抓取数据 在当今数字化时代,数据分析已成为企业决策和发展的关键驱动力。而获取高质量的数据则是数据分析的首要任务。在这个信息爆炸的时代,网络上蕴含着海量的数据,其中招聘网站的数据对于人力资源分析、市场趋势研究…

几何法证明卡特兰数_栈混洗

模型&#xff1a; 考虑从坐标原点 (0, 0) 到点 (n, n) 的路径&#xff0c;要求路径只能向右&#xff08;x 方向&#xff09;或向上&#xff08;y 方向&#xff09;移动&#xff0c;并且路径不能越过直线 y x&#xff08;即始终满足 y< x &#xff09;。这样的路径数量就是…

Kafka的安装与使用(windows下python使用等)

一、下载 可以去官网下载&#xff1a;https://kafka.apache.org/downloads 版本可选择&#xff0c;建议下载比较新的&#xff0c;新版本里面自带zookeeper 二、安装 创建一个目录&#xff0c;此处是D:\kafka&#xff0c;将文件放进去解压 如果文件后缀是gz&#xff0c;解压…

数据结构初阶: 顺序表的增删查改

顺序表 概念 顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;⼀般情况下采⽤数组存储。如图1&#xff1a; 顺序表和数组有什么区别&#xff1f; 顺序表的底层是用数组实现的&#xff0c;是对数组的封装&#xff0c;实现了增删查改等接口。 分…