【网络】主机连接 TCP 三次握手

在这里插入图片描述

【网络】主机连接 TCP 三次握手

    • 一、TCP连接3次握手
    • 二、TCP连接4次挥手
    • 三、为什么tcp要三次握手,两次行不
    • 四、为什么TCP挥手需要4次
    • 五、Netstat命令的连接状态包括:
    • 六、练习题

一、TCP连接3次握手

  • 1、建立连接的时候是3次握手,客户端向服务器端发送SYN,异步信号,和seq请求序号,
  • 2、服务器接收到之后就给客户端回一个信息,包括ACK确认信号,seq信息序号,ack=seq的序号+1,表示收到了客户端发的到q的请求。
  • 3、客户端收到之后,再发一个确认信息表示收到,ACK=1,seq=x+1,ack=y+1,之后就可以开始通信了。

在这里插入图片描述

二、TCP连接4次挥手

  • 1、断开连接是4次挥手,先是客户端发送FIN=1完成信号,表示我没有数据要传输了,之后进入Fin-Wait状态。
  • 2、服务器端接收到信号之后先向客户端发送信息表示接收到了要断开的信号,进入close-Wait状态。但是还可以发送数据传输
  • 3、当服务器端也没有数据要传送的时候,也发送一个信息Fin=1,ACK=1,表示我数据也传输完了,可以结束了。进入LAST-ACk最后确认状态。
  • 4、客户端接到之后要给服务器一个回信表示接到了,可以关闭连接了。进入Time-Wait状态,等一段时间之后自动进入Closed状态。服务器端接收到这个信息后也进入关闭CLOSED状态。

三、为什么tcp要三次握手,两次行不

不行。TCP进行可靠传输的关键就在于维护一个序列号,三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值。
如果只是两次握手, 至多只有客户端的起始序列号能被确认, 服务器端的序列号则得不到确认。

四、为什么TCP挥手需要4次

主要原因是当服务端收到客户端的 FIN 数据包后,服务端可能还有数据没发完,不会立即close。
所以服务端会先将 ACK 发过去告诉客户端我收到你的断开请求了,但请再给我一点时间,这段时间用来发送剩下的数据报文,发完之后再将 FIN 包发给客户端表示现在可以断了。之后客户端需要收到 FIN 包后发送 ACK 确认断开信息给服务端。

五、Netstat命令的连接状态包括:

  • LISTEN:侦听来自远方的TCP端口的连接请求。
  • SYN-SENT:在发送连接请求后等待匹配的连接请求。
  • SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认。
  • ESTABLISHED:代表一个打开的连接。
  • FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认。
  • FIN-WAIT-2:从远程TCP等待连接中断请求。 CLOSE-WAIT:等待从本地用户发来的连接中断请求。
  • CLOSING:等待远程TCP对连接中断的确认。
  • LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认。
  • TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。
  • CLOSED:没有任何连接状态。

六、练习题

在这里插入图片描述

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

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

相关文章

数据结构界的终极幻神----树

目录 一.数的概念和分类 种类 二.重点概念 哈希树: 二叉树的线索化 什么是线索化 为什么要线索化 特殊的查找树 完全二叉树 三.手撕完全二叉树(堆) 重点讲解 向上搜索算法 向下搜索算法 一.数的概念和分类 树(tree)是包含 n(n≥0) [2] 个节…

Shopee 虾皮运营六大核心技巧,下一个大卖就是你

对于新手卖家来说,店铺运营是头等大事。运营得当就能获取相应的收益,那么Shopee 虾皮运营的核心技巧是什么呢?今天给大家分享6⃣大核心技巧,学会了下个大卖就是你。 Shopee 虾皮运营六大核心技巧 1️⃣ 分时段上新 📌…

3Dmax中VR渲染太阳光渲染参数怎么设置?渲染100云渲染助力

我们用3Dmax建模时一些场景会用到太阳光,那么渲染参数是如何设置的呢? 我们一起来看看,直接上图 以上就是详细的参数设置,大家可以用做参考,如果本地渲染慢的朋友可以考虑使用云渲染100 机器多,渲染稳定不…

android 快速实现 垂直SeekBar(VerticalSeekBar)

1.话不多说上源码: package com.example.widget;import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent;/*** Class to create a vertical slider*/ public class VerticalSeekBar…

redis进阶以及springboot连接使用redis

redis进阶--Geospatial 地理位置的缩写,可以表示一个区域的二维坐标,redis提供了经纬度设置,查询,范围查询,距离查询,经纬度hash等操作。 使用场景 在地图中可以用来计算距离我们最近的门店。 redis进阶…

基于51单片机的公交ic卡系统设计

目 录 摘 要 I Abstract II 引 言 1 1 总体方案设计 3 1.1 方案选择 3 1.2 硬件选择 3 1.3 系统工作原理 4 1.4 总体方案确定 5 2 系统硬件电路设计 6 2.1 主控模块电路设计 6 2.2 电源电路设计 8 2.3 显示电路模块设计 8 2.4 报警模块电路设计 10 2.5 RC522刷卡模块 10 2.6 独…

下属OKR与上级OKR对齐时,有几种方法?

下属的OKR(Objectives and Key Results,即目标与关键成果)与上级的OKR对齐,是确保组织目标一致性和团队协同工作的关键步骤。以下是几种常用的对齐方法: 直接映射法:下属的OKR直接反映并支撑上级的OKR。例如…

【二】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

教学管理系统201703153 教学管理系统数据库展示 成绩表展示 课程表展示 学生表展示 院系表展示 一、基本操作 设置复合主键 设置其他表的主键 设置字段取值范围 二、简单操作 第一题 第二题 第三题 第四题 结尾 最后,感谢您阅读我的文章,希望这些内容能…

(黑马出品_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

(黑马出品_04)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术异步通信 今日目标1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比 2.快速入门2.1.安装RabbitMQ2.1.1.单机部署(1).下载镜像方式…

SICP解读指南:深度阅读 “计算机领域三巨头” 之一(文末送书)

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 书籍介绍1.1 SICP侧重点1.2 SICP章节介绍 二. 书籍推荐2.1 书籍介绍2.2 推…

[HackMyVM]靶场 Wild

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 …

Win11黑屏只有鼠标该怎么处理?

作者:Buzhiming User 链接:https://www.zhihu.com/question/472508581/answer/2275715047 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 方法1.手动启用explorer:CTRLshiftesc打开…

从安卓转战月薪6万的鸿蒙原来这么简单

近年来,各家大厂正在积极布局鸿蒙客户端开发,鸿蒙操作系统备受瞩目,不少安卓开发者纷纷转战鸿蒙,并取得了可观的经济回报。本文将为大家揭示,从安卓转战鸿蒙并获得月薪6万的简单之道,希望能给正在考虑转型的…

YOLOSHOW - YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 基于 Pyside6 的图形化界面

YOLOSHOW 是一个基于 PySide6(Qt for Python)开发的图形化界面应用程序,主要用于集成和可视化YOLO系列(包括但不限于YOLOv5、YOLOv7、YOLOv8、YOLOv9)的目标检测模型。YOLOSHOW 提供了一个用户友好的交互界面&#xff…

POS 之 最终确定性

Gasper Casper 是一种能将特定区块更新为 最终确定 状态的机制,使网络的新加入者确信他们正在同步规范链。当区块链出现多个分叉时,分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。 最终确定性 最终确定性是某些区块的属性,意味…

vue3+ts+vite项目使用 unplugin-auto-import (自动导入)

该项目是基于vite创建的 vue3 ts vue-router pinia项目; 启动项目: npm install npm run dev启动后遇到了以下问题: 问题1: Component name "Person" should always be multi-word. eslint(vue/multi-word-component-names)…

layui柱状图tooltip获取x轴和y轴数据

核心代码 formatter: function (params) {var xValue params[0].axisValue; // 获取x轴数值var yValue params[0].value; // 获取y轴数值var str "x轴数值&#xff1a;" xValue "<br/>" "y轴数值&#xff1a;" yValue;return str;…

STM32day1

个人暂时的学后感&#xff0c;不一定对&#xff0c;没什么东西&#xff0c;为做项目奔波中。。。 1.总结keil5下载代码和编译代码需要注意的事项 下载代码&#xff1a; 从STM32CobeMX里面加载的文件会在左边栏添加对应的文件&#xff0c;下载前要先编译一下&#xff0c;不报错…

Ajax、Axios、Vue、Element与其案例

目录 一.Ajax 二.Axios 三.Vue 四.Element 五.增删改查案例 一.依赖&#xff1a;数据库&#xff0c;mybatis&#xff0c;servlet&#xff0c;json-对象转换器 二.资源&#xff1a;elementvueaxios 三.pojo 四.mapper.xml与mapper接口 五.service 六.servlet 七.html页…

1909_Arm Cortex-M3编程模型

1909_Arm Cortex-M3编程模型 全部学习汇总&#xff1a; g_arm_cores: ARM内核的学习笔记 (gitee.com) 编程模型的部分除了单独的核心寄存器描述之外&#xff0c;它还包含有关处理器模式和软件执行和堆栈的特权级别的信息。 处理器有两种模式&#xff0c;分别是线程模式和Handle…