高频面试点:深入理解 TCP 三次握手与四次挥手

在网络通信的世界里,TCP(Transmission Control Protocol,传输控制协议)是确保数据可靠传输的基石。其中,三次握手建立连接、四次挥手断开连接的过程,更是 Java 秋招面试中的高频考点。今天,我们就深入剖析这两个关键过程,结合原理、代码示例与面试真题,帮你吃透知识点 。

一、TCP 三次握手:建立可靠连接

(一)核心原理

TCP 连接的建立基于 三次握手 机制,目的是让客户端和服务器双方确认彼此收发数据的能力,同步初始序列号(ISN),为可靠传输打基础。过程如下:

  1. 第一次握手(客户端 → 服务器):客户端主动打开连接,发送 SYN 报文(SYN=1seq=x ,x 是客户端初始序列号 ),进入 SYN-SENT 状态 。
  2. 第二次握手(服务器 → 客户端):服务器监听端口收到 SYN 报文,回复 SYN+ACK 报文(SYN=1ACK=1seq=y ,ack=x+1 ,y 是服务器初始序列号 ),进入 SYN-RCVD 状态 。
  3. 第三次握手(客户端 → 服务器):客户端收到 SYN+ACK 报文,回复 ACK 报文(ACK=1seq=x+1ack=y+1 ),进入 ESTABLISHED 状态;服务器收到 ACK 报文后,也进入 ESTABLISHED 状态,连接建立完成,双方开始数据传输 

服务器客户端服务器客户端SYN=1, seq=x(进入 SYN-SENT

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

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

相关文章

k8s-nfs实现创建sc的两种方式

法一:基于 官方 NFS CSI 插件 法二:基于 nfs-subdir-external-provisioner 法一 官方 NFS CSI 插件 大致步骤# 安装 NFS sudo apt update sudo apt install -y nfs-kernel-server # 创建共享目录 sudo mkdir -p /data/nfs sudo chmod 777 /data/nfs # 配…

n8n 入门指南:更适合跨境出海搞钱的AI智能体

如果你最近刷到 AI 圈的分享应该会发现——n8n 又火起来了。其实 n8n 早在 2020 年左右就被程序员玩过一波,当时很多人拿它做网站自动发邮件、消息转发之类的“流程自动化”。但那时候 AI 还没这么卷,大家也没觉得多有用。n8n为什么最近又翻红&#xff1…

【数据分享】各省农业土地流转率(2010-2023)

数据介绍土地流转是推动农业规模化、现代化发展的关键机制。为助力相关研究,现分享一份覆盖全国30个省级行政区、时间跨度为2010-2023年的农业土地流转率面板数据集。本数据直接提取自权威统计年报,具有较高的参考价值。一、数据概览覆盖范围&#xff1a…

音视频时间戳获取与同步原理详解

引言:为什么音视频同步如此重要? 在音视频技术领域,"同步"是决定用户体验的核心要素。想象一下观看电影时画面与声音错位0.5秒的场景:角色说话时嘴唇动作与声音不匹配,爆炸场景的视觉冲击先于音效到达——这…

Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结

Day38–动态规划–322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结 今天的是几道经典的“完全背包”题目。前两道题目,要区分求的是“价值”,还…

应用层Http协议(1)

应用层Http协议(1) 在互联网世界中,HTTP(HyperText Transfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传…

elementui input无法输入问题

背景。开发小程序。自定义表单在pc段设置好input输入框属性后。 在小程序端无法输入原因:长度受限制,导致input组件的maxlength属性认为长度是0导致无法输入任何值。看解释是应为遇到空字符串等情况会设置为0解决。因为未找到设置maxlength为0处&#xf…

算法_python_学习记录_02

算法学习和视频学习过程中,有许多前几天还不知道的知识点,现在一点一点归纳整理出来,稳步前进,前进~ 20_贪心算法系列题 00_参考文档 详解贪心算法(Python实现贪心算法典型例题)_顺序贪婪算法-CSDN博客P…

Meta AI水印计划的致命缺陷——IEEE Spectrum深度文献精读

一、原文信息 标题: Metas AI Watermarking Plan Is Flimsy, at Best 中文译名: Meta的AI水印计划脆弱不堪 作者: David Evan Harris(加州大学伯克利分校)、Lawrence Norden(纽约大学法学院) 发表日期: 2024年3月5日 发表期刊: IEEE Spectrum 二、原文全文翻译 Met…

gpt-oss 全量技术解读

一、概述 gpt-oss 是 OpenAI 发布的开放权重(open-weight)模型系列,面向强推理、Agent 能力与多样化应用场景。 提供两种规格: gpt-oss-120b:面向生产与高推理需求,单卡 80GB GPU(如 NVIDIA …

实现EtherNet/IP网络与Modbus TCP网络之间数据互通

硬件连接与配置使用工业以太网网关(如ENE-350)作为桥接设备,通过以太网交换机实现硬件互联。 网关需根据应用场景配置为EtherNet/IP从站或Modbus TCP主/从站模式。案例1:EtherNet IP主站PLC和Modbus TCP主站PLC的互联网关配置&…

zookeeper因jute.maxbuffer启动异常问题排查处理

#作者:程宏斌 文章目录一、前言二、问题描述三、定位过程四、问题根因五、解决方案根本解决方案应急处理方案调大参数可能出现的问题六、总结为什么超出会报错官方对于jute.maxbuffer的解释注意事项官方建议一、前言 在分布式系统中,ZooKeeper作为关键的…

Java基础十三: List

目录 1.Java LinkedList 的高级应用与示例 1.1 LinkedList的基本使用 基本操作示例 1.2 LinkedList独有的方法 特定方法示例 1.3 队列模式(先进先出) 队列模式示例 1.4 栈模式(先进后出) 栈模式示例 总结 2.Java Vecto…

[机器学习]03-基于核密度估计(KDE)的鸢尾花数据集分类

关键点:使用核密度估计(KDE) 估计类别条件概率密度(高斯核,带宽0.2)采用最大后验概率(MAP) 决策准则进行分类程序代码:import random import matplotlib from sklearn.ne…

jmeter怎么实现多个请求真正的同时发送

1.首先在插件管理器Plugins Manager中搜索插件Parallel Controller&Sampler,勾选上对应的插件后,在右下角点击Apply Changes and Restart JMeter,安装插件2.插件安装完毕后,然后在线程组上面右击,点击添加--逻辑控…

复杂环境下车牌识别准确率↑29%:陌讯动态特征融合算法实战解析

原创声明本文为原创技术解析,核心技术参数与架构设计引用自《陌讯技术白皮书》,转载需注明来源。一、行业痛点:车牌识别的现实挑战在智慧交通、停车场管理等场景中,车牌识别作为关键技术环节,长期面临多重环境干扰。据…

Express中间件和路由及响应方法

1.中间件分类 应用程序级别中间件 通过 app.use() 或 app.METHOD()(如 app.get)绑定的中间件,作用于整个应用程序。例如 记录请求日志、解析请求体等全局功能。例如: app.use((req, res, next) > {console.log(Request URL:…

Dokcer创建中间件环境

简而言之,用docker来搞中间件环境比价好使,不用关心各种环境了 rabbitmqsudo docker run -d \--name rabbitmq \-p 5672:5672 \-p 15672:15672 \rabbitmq:3.8-managementredis 5.0.3 docker start my-redisdocker run --name my-redis -d -p 6379:6379 \…

Linux高级编程-文件操作

1.Linux下的文件类型7种文件类型:b 块设备文件 -------> 存储类设备(硬盘) c 字符设备文件 ------->如输入输出设备(鼠标键盘显示器...) d 目录文件 ------->文件夹 - 普通文件 -------&g…

web:vue中import *** from 和import {***} from的区别

在Vue.js中,import语句用于导入模块、组件或变量等。使用带花括号{}和不带花括号的区别主要在于导入的内容是具名导出(named exports)还是默认导出(default export)。 默认导入 (Default Import) - 不带花括号 import Vue from vue; import MyComponent from ./MyCompone…