JAVAEE初阶 网络编程(六)

TCP协议

    • 一. 四次挥手
    • 二. 连接管理过程中TCP状态的变化
      • 2.1 listen状态
      • 2.2 established状态
      • 2.3 CLOSE_WAIT状态
      • 2.4 TIME_WAIT状态
    • 三. 滑动窗口
      • 3.1 ack丢了
      • 3.2 数据丢了

一. 四次挥手

在这里插入图片描述

我们都知道,在三次握手中是可以把中间步骤合并成一个步骤执行,那么在四次挥手中是否可以呢?
答案是不一定的,因为触发时机的不同,在三次握手中,在内核收到syn之后立即触发,因此是可以合并的。
但是在四次挥手中,ack和fin执行时间中间差异很多,所以一般是不能进行合并的。

在这里插入图片描述

那么服务器主动挥手,是服务器挂了的缘故吗?
答案当然并不全是,服务器挂了的话,确实是会触发四次挥手,但是服务器如果不想跟客户端继续进行连接通信的话,也是会触发四次挥手的。

二. 连接管理过程中TCP状态的变化

所谓的状态,描述的是一个实体,现在正在做什么的意思。
服务器和客户端都需要一种数据结构来保存对端的信息,在这个数据结构当中有一种属性,就叫做状态。

在这里插入图片描述

2.1 listen状态

在这里插入图片描述
在这里插入图片描述

listen状态表示,服务器这边serverSocket已经创建好,端口号也绑定完成,等待客户端。

2.2 established状态

在这里插入图片描述

established状态已经建立好了连接,在三次握手之后。
并且LISTENING和ESTABLISHED各自有服务器和客户端的状态。

2.3 CLOSE_WAIT状态

接收到对端传来的fin之后,要进入到调用close来主动发起fin。谁被动断开连接,谁就会进入到CLOSE_WAIT状态。

2.4 TIME_WAIT状态

TIME_WAIT状态就是本端发出了fin,也接收到了对端发出的fin之后,进入此状态。
存在的意义就是防止最后一个ACK丢包。
服务器如果没有收到最后一个ACK,就会重传fin。但是客户端如果在此处释放TCP,就意味着重传的FIN不会接收到ACK。此处等待时间最多2MSL。MSL是客户端到服务器的最长时间。超过这个时间,就不会重传了。

三. 滑动窗口

在这里插入图片描述
在这里插入图片描述

滑动窗口是怎样工作的呢?

在这里插入图片描述
在这里插入图片描述

如果出现丢包,怎么办呢?

3.1 ack丢了

在这里插入图片描述

3.2 数据丢了

在这里插入图片描述

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

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

相关文章

C语言数据结构(4)——线性表其三(双向链表)

欢迎来到博主的专栏——C语言数据结构 博主ID:代码小豪 文章目录 链表的种类头结点循环链表双向链表带头双向循环链表带头双向循环链表的定义与初始化 空链表尾插法打印双向链表头插法查找指定数据项的节点在指定位置之后插入节点指定位置的删除双向链表的销毁 顺序…

C语言第十二弹--扫雷

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 扫雷 1、扫雷游戏分析和设计 1.1、扫雷游戏的功能说明 1.2 游戏的分析和设计 1.2.1、数据结构的分析 1.2.2、文件结构设计 2、扫雷游戏的结构分析 2.1、用…

vmware虚拟机centos8共享文件夹挂载

1.设置虚拟机共享文件夹 2. 上述设置完毕之后,重启进入虚拟机,查看出现的共享文件夹名称 vmware-hgfsclient 3.查看是否有挂载目录,挂在目录默认为 /mnt/hgfs。没有时可以使用以下命令创建 mkdir /mnt/hgfs 4. 手动挂载目录--只能实现一次 注…

Arduino Uno R3通过ESP-01S连接网络

一、材料准备 Arduino Uno R3开发板 1 USB串口通信数据线(Uno开发板使用) 1 ESP8266-01S Wi-Fi模块 1 ESP8266固件烧录下载器(烧录固件使用) 1 WiFi无线收发转接板(适用于ESP-01S、ESP-01) 杜邦线…

java设计模式:工厂模式

1:在平常的开发工作中,我们可能会用到不同的设计模式,合理的使用设计模式,可以提高开发效率,提高代码质量,提高系统的可拓展性,今天来简单聊聊工厂模式。 2:工厂模式是一种创建对象的…

如何查看某网站的谷歌流量的组成情况

在独立站跨境贸易当中,很多时候我们都会重复一个动作,那就是查看对手网站或者某一网站的流量,以此来分析和总结如何优化自己的站点,借鉴对手优秀的地方来补足自己的缺点,或者某些时候会模仿甚至抄袭竞品网站。那么如何…

C++ 类与对象(上)

目录 本节目标 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6. 类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 8.this指针 8.1 thi…

数据结构(一)------顺序表

文章目录 前言一、什么是顺序表二、实现顺序表1.静态顺序表2.动态顺序表总结 前言 制作不易!三连支持一下呗!!! 从今天起我们将会进入数据结构的学习! 我们先来了解 什么是数据结构 数据结构是计算机存储、组织数…

LeetCode(2)

目录 概念解释 栈 队列 树 树的概念 结点的分类 有序树 无序树 森林 二叉树 满二叉树 完全二叉树 二叉排序树 平衡二叉树 1.用栈实现队列 解法:双栈 2.字符串解码 解法:栈 3.二叉树的中序遍历 解法一:递归 解法二&#xff…

云微呼探索人工智能机器人对话:过去、现在和未来

随着科技的迅速发展,人工智能(AI)机器人已经成为我们日常生活中的重要一部分。从简单的语音助手到能够进行复杂对话的智能机器人,AI技术正在改变着我们与机器之间的互动方式。本文将探讨人工智能机器人对话的历史、现状以及未来发…

[SwiftUI]系统弹窗和自定义弹窗

一、系统弹窗 在 SwiftUI 中,.alert 是一个修饰符,用于在某些条件下显示一个警告对话框。Alert 可以配置标题、消息和一系列的按钮。每个按钮可以是默认样式、取消样式,或者是破坏性的样式,它们分别对应不同的用户操作。 1.Aler…

前端qrcode生成二维码详解

文章目录 前言1、浏览器支持2、优点3、缺点4、相关方法5、安装及使用示例 前言 qrcode 是一个基于JavaScript的二维码生成库,主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。 官方文档:https://www.npm…

Kafka-服务端-GroupCoordinator

在每一个Broker上都会实例化一个GroupCoordinator对象,Kafka按照Consumer Group的名称将其分配给对应的GroupCoordinator进行管理; 每个GroupCoordinator只负责管理Consumer Group的一个子集,而非集群中全部的Consumer Group。 请注意与Kaf…

Java项目:基于SSM框架实现的企业员工岗前培训管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm821基于ssm框架实现的企业员工岗前培训管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格…

NetExec:一款功能强大的自动化网络安全评估与漏洞测试工具

关于NetExec NetExec是一款功能强大的自动化网络安全评估与漏洞测试工具,该工具可以帮助广大研究人员以自动化的形式测试大型网络的安全,并通过利用网络服务漏洞来评估目标网络的安全态势。 支持的协议 1、SMB协议 2、LDAP协议 3、WinRM协议 4、MSSQL协…

go语言函数进阶

1.变量作用域 全局变量 全局变量是定义在函数外部的变量,它在程序整个运行周期内都有效。 在函数中可以访问到全局变量。 package mainimport "fmt"//定义全局变量num var num int64 10func testGlobalVar() {fmt.Printf("num%d\n", num) /…

vue-head 插件设置浏览器顶部 favicon 图标 - 动态管理 html 文档头部标签内容

目录 需求实现11. 安装插件2. 项目内 main.js 引入3. vue页面使用 实现2其他 需求 vue项目中浏览器页面顶部图标可配置 实现1 使用 vue-head 插件实现 vue-head 插件可实现 html 文档中 head 标签中的内容动态配置(npm 官网 vue-head 插件) 1. 安装插件 …

promethues基础概念

promethues是一个开源的系统监控以及报警系统,整个zabbix的功能,系统,网络,设备 promethues可以兼容网络和设置被,容器监控,告警系统,因为他和k8s是一个项目基金开发的产品,天生匹配…

代码随想录算法训练营第34天 | 1005.K次取反后最大化的数组和 134.加油站 135.分发糖果

K次取反后最大化的数组和 贪心局部最优:将绝对值大的负数变为正数,当前和变为最大;全局最优:整体获得最大和。 如果负数都变成正数之后,k > 0,仍然需要继续翻转,贪心局部最优:将最…

14.STM32F4 LCD屏幕概念及源码下载(LCD之一)

一、LCD液晶显示屏介绍 1、常见的显示设备 在目前市面上,常见的显示设备种类有:LED、显示数码管、点阵LED显示屏、LCD液晶显示屏,这几种设备的特点是: (1)LED LED灯是最简单的显示设备,它只有两…