网站内容更新教程泰安网站开发公司

news/2025/9/28 8:37:03/文章来源:
网站内容更新教程,泰安网站开发公司,app开发导入网站模板,外贸做包装袋哪个网站好1.三次握手的概述 我们在学网络的概念时#xff0c;每当讲到TCP都会听到三次握手和四次挥手#xff0c;一直以来可能都对这个概念模糊不清#xff0c;那么什么是三次握手和四次挥手呢#xff1f;简单的举一个例子#xff0c;如果我们和朋友打游戏#xff0c;我们要和朋友…1.三次握手的概述 我们在学网络的概念时每当讲到TCP都会听到三次握手和四次挥手一直以来可能都对这个概念模糊不清那么什么是三次握手和四次挥手呢简单的举一个例子如果我们和朋友打游戏我们要和朋友往往都是连麦打游戏那么我们和朋友之间需要相互确认我们都开麦了。这个过程我会发出一个信号说我开麦了与此同时呢朋友会确认他能够听到我的说话声同时给我发一个信号让我能够知道他开麦了最后我也返回一个信号说好的我能听到你也开麦了。其实这个过程就与三次握手的过程类似主要是进行一个测试的操作对连麦进行一个测试而不是在打游戏可以说不涉及到核心业务的操作不携带业务数据的数据报只是用来“打个招呼”。这里的确认能听到就类似于TCP传输过程中的确认应答的特性能够保证TCP的可靠传输我们的相互回答就对应了TCP传输过程中的ACK标志位设置为1。 2.三次握手的讲解 三次握手就是建立连接的过程其实就是通信双方各自保存对端的信息 具体完成上述过程需要经过三次网络的交互。 这里 SYN代表同步报文而ACK是应答报文。 三次握手的第一次一定是由客户端先发起的谁先发起谁就是客户端。 SYN数据报的一些作用 SYN数据报不携带任何业务数据。在网络通信中SYNSynchronize是TCP三次握手中的第一步用于建立TCP连接。SYN数据报仅包含TCP头部用于在客户端和服务器之间进行连接的初始化。它不携带任何实际的业务数据只包含一些必要的控制信息如源端口、目的端口、序号等。SYN数据报的目的是在发送端和接收端之间同步序号和其他连接参数以确保双方能够正确地建立连接并开始数据传输。一旦建立了连接后续的数据传输将使用带有有效业务数据的数据报。因此SYN数据报本身不携带任何业务数据。  实质上三次握手第二步合并了客户端所发来的信息本来是四次传输但是三次传输能带来更高的效率因此把接收方的回复合并在一起。而我也用一个暗恋对象的例子帮助大家理解这个过程 这真是个悲伤的故事 总结三次握手的时候通信双方让各自对方保存好自己的信息得是两边都把对方的信息保存好连接才算是真正建立完成而上述操作其实就是把第二步的ACK和SYN合并成一个网络数据三次握手相当于投石问路在正式传输业务数据之前先确认一下通信链路是否畅通。相当于TCP可靠传输的一种保证方式但是这只是辅助机制最核心的还是确认应答和超时重传。与此同时TCP三次握手的过程中还需要协商一些必要的参数比如说TCP通信时使用的序号可能序号不是从0或1开始。发送序号还会有一个确认序号这个确认序号和序号之间往往不会差很多因为是一个连接过程如果差的多说明出现了异常。 3.经典面试题 为什么TCP要进行三次握手两次行不行四次行不行 两次不行因为服务器这边对于通信双方的发送能力和接收能力的验证还没有完成。 四次行但是没有必要拆开中间的这次交互虽然不影响TCP的正常功能但是性能会有所损失。 如果在服务器这边见到了大量的CLOSE_WAIT状态说明了什么说明代码大概率有bug了代码很有可能忘记调用socket.close了 或则说socket.close调用的不够及时 4.TCP常见状态 Listen状态 listen是服务器出现的状态当服务器绑定端口成功后就会进入到listen状态。这时候就意味着随时可以有客户端可以过来连接。这里类比接电话的过程就是手机开机了信号还不错随时可以有人打电话过来了。 Established状态 Established:客户端喝服务器都会出现的状态表示建立完成可以随时进行后续的通信了。 CLOSE_WAIT状态 CLOSE_WAIT状态被动一方进入的状态等待代码调用close代码中调用的越及时越看不到这个状态。 5.四次挥手是为了释放资源 FIN结束报文就是finish的缩写。与三次握手不一样的是三次握手一定是客户端第一次发起请求而四次挥手就不一定了有可能是客户端发起也有可能是服务器发起请求。类比来说谈恋爱之前一般男追女分手的时候双方都有可能提出。断开连接是客户端和服务器通信双方删除对方的信息。在实际的代码中客户端可以调用socket.close方法或者客户端进程结束。 6. ACK、SYN、FIN和RST标识位 下面是对ACK、SYN、FIN和RST这些TCP标志的作用的简要总结 ACKAcknowledgment用于确认接收方已经成功接收到数据。ACK标志在数据包中被设置为1时表示该数据包是一个确认数据包用于确认对方发送的数据已经成功接收。 SYNSynchronize用于建立连接的同步标志。当客户端希望与服务器建立连接时它会发送一个带有SYN标志的数据包其中包含自己选择的初始序列号。这样可以告知服务器客户端的初始序列号并请求服务器分配自己的序列号。 FINFinish用于结束连接的标志。当一方希望关闭连接时它会发送一个带有FIN标志的数据包表示它已经完成了数据传输并要求对方确认关闭连接。 RSTReset用于重置连接的标志。当发生某种错误或异常情况时一方可以发送一个带有RST标志的数据包用于中断连接并强制对方重置连接。 这些TCP标志位在TCP协议中起着重要的作用用于控制连接的建立、终止和异常情况处理。它们的正确使用和处理对于建立可靠的连接和确保数据传输的正确性至关重要。

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

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

相关文章

广西壮族自治区住房和城乡建设厅网站手机网站开发源码

目录 一、什么是sql注入 二、sql语句的执行流程 三、内连接和外连接的区别 四、Union和Union All 有什么区别 五、MySql如何取差集 六、DELETE和TRUNCATE有什么区别 七、count(*)和count(1)的区别 八、MyISAM和InnoDB的区…

详细介绍:MySQL零基础学习Day4——多表查询

详细介绍:MySQL零基础学习Day4——多表查询pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

MetaGPT实战指南:构建模拟公司运营的多智能体系统 - 教程

MetaGPT实战指南:构建模拟公司运营的多智能体系统 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

2017网站建设报价单营销论坛网站建设

引言 在计算机科学中,数据结构和算法是构建高效软件系统的基石。而排序算法作为算法领域的重要组成部分,一直在各种应用场景中发挥着关键作用。今天我们将聚焦于一种基于插入排序的改进版本——希尔排序(Shell Sort),深…

Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台

Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台 Revolutionize Streaming Analytics 请访问原文链接:https://sysin.org/blog/timeplus/ 查看最新版。原创…

《HelloGitHub》第 114 期

兴趣是最好的老师,HelloGitHub 让你对开源感兴趣!简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖…

网站建设与准备乐清城市网官网

这阵子在捣鼓一个将游戏视频打包成本地可播放文件的模块。开始使用avi作为容器,弄了半天无奈avi对aac的支持实在有限,在播放时音视频时无法完美同步。 关于这点avi文档中有提到: For AAC, one RAW AAC frame usually spans over 1024 samples…

重庆网站推广网络推广申请建设部门网站的报告

大数据产业是以数据及数据所蕴含的信息价值为核心生产要素,通过数据技术、数据产品、数据服务等形式,使数据与信息价值在各行业经济活动中得到充分释放的赋能型产业。 大数据产业定义一般分为核心业态、关联业态、衍生业态三大业态。 一、专…

智能微电网 —— 如何无缝集成分布式光伏 / 风电? - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【鸿蒙生态共建】一文说清基础类型数据的非预期输入转换与兜底-《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利 - 详解

【鸿蒙生态共建】一文说清基础类型数据的非预期输入转换与兜底-《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利 - 详解2025-09-28 08:16 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: p…

一级a做爰片免费网站体验区网站制造

2014年杭州电子科技大学Java期末试卷.doc杭州电子科技大学学生考试卷( A )卷考试课程Java语言程序设计考试日期2014年 6月 16日成 绩课程号教师号任课教师姓名考生姓名学号(8位)年级专业注意:所有答案均写在答卷上,写在试卷上无效;(一)单选题(每题2分&am…

青岛商城网站建设劳务公司注册需要什么条件

CMA实验室认可,即中国计量认证(China Metrology Accreditation)的实验室资质认定,以下是对其的详细解读: 一、定义与目的 CMA认证是经省级以上人民政府计量行政部门对实验室的计量检定、测试能力和可靠性考核合格后进…

网站建设资质要求贝壳找房官网 二手房

文章目录 1 函数原型2 参数3 返回值4 使用说明5 示例5.1 示例1 1 函数原型 strcat():将src指向的字符串拼接在dest指向的字符串末尾,函数原型如下: char *strcat(char *dest, const char *src);2 参数 strcat()函数有两个参数src和dest&am…

网站建设需要条件查询网域名解析

共享数据缓冲区 概述共享数据缓冲区管理共享缓冲区管理的核心功能包括:共享数据缓冲区的组织结构初始化共享缓冲池BufferDesc 结构体InitBufferPool 函数如何确定请求的数据页面是否在缓冲区中?BufferTag 结构体RelFileNode 结构体ForkNumber 结构体ReadBuffer_common 函数怎…

Splunk Enterprise 10.0.1 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台

Splunk Enterprise 10.0.1 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台Splunk Enterprise 10.0.1 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台 Search, analysis, and visu…

基于51单片机宠物喂食系统设计 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

福建建设工程设计备案网站怎么推广公众号让人关注

1.hash类型介绍 可以理解为redis中的一个小型redis 2.v 3.hash数据类型的扩展操作 4.hash类型数据操作的注意事项

[Luogu 13345] EGOI 2025:IMO

先根据排序方案确定最终顺序。下文称第 \(i\) 个人为最终排名为 \(i\) 的那个人,其原始编号为 \(id_i\),总成绩为 \(v_i\)。 若第 \(i\) 个人公布了 \(c_i\) 道题,公布部分成绩为 \(s_i\),则可能成绩区间为 \([s_i…

广州金融网站设计wordpress 淘宝客主题

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 time.sleep(3) 固定等待3秒 driver.implicitly_wait(10) 隐性的等待,对应全局 WebD…