TCP三次握手和四次挥手基本知识

news/2024/4/25 6:59:36/文章来源:https://blog.csdn.net/peng_shakalaka/article/details/127740140

一、概述

TCP是面向连接、可靠的、基于字节流的传输层通讯协议。
如何确定一个TCP连接:

  1. 目的IP
  2. 目的端口
  3. 源IP
  4. 源端口
    在这里插入图片描述

二、TCP建立连接

在这里插入图片描述
序列号client_isn和server_isn是随机初始化,可以通过netstat -napt来查看网络状态。

为什么建立连接需要三次握手?

  1. 防止历史重复连接初始化。
  2. 同步双方初始序列号。
  3. 有效的避免资源浪费。

为什么初始的序列号是随机的?
网络中情况是不确定的、会延迟、也有可能复制重发,为了防止不同连接之间的报文混乱,所以需要随机产生。

什么是SYN攻击?如何避免SYN攻击?
TCP三次握手在服务端分为半连接队列和全连接队列。
在这里插入图片描述
攻击者短时间伪造大量的IP地址和端口在短时间内对服务端发起连接,会沾满SYN队列,导致无法为正常用户服务。

  1. 修改内核参数,增大队列容量,将超出的SYN请求丢弃。
  2. 开启cookie,net.ipv4.tcp_syncookies = 1,当SYN队列满了时,收到SYN请求,计算出一个cookie值,和SYN+ACK一块返回给客户端,到第三次握手时再发过来,服务端判断cookie的合法正确性,如果合法则放到accept队列中,否则丢弃。
    在这里插入图片描述

三、TCP断开连接

在这里插入图片描述
为何TIME_WAIT需要2MLS?
MLS(MaximunSegement Lifetime),网络中可能还有剩余没有到达的数据报,收到后确认正好2MLS。

为何需要TIME_WAIT状态?

  1. 防止收到旧的相同四元组的数据。
  2. 保证被动连接一方正常关闭,即最后那个ACK可已被接收。

TIME_WAIT过多有何危害?

  1. 浪费内存资源。
  2. 占用TCP连接端口。

如何优化TIME_WAIT状态?

  1. 打开net.ipv4.tcp_tw_reuse和net.ipv4.tcp_timestamps(TCP时间戳,复用的数据包可根据时间戳来判断是否过期)。使得处于TIME_WAIT状态的端口可以被重新使用。
  2. net.ipv4.tcp_max_tw_buckets(默认18000,超过此值,所有TIME_WAIT连接重置,不推荐)。
  3. 程序中使用 SO_LINGER,调用close后发送RST,不提倡。

连接时,客户端出现故障怎么办?
保活机制。

四、Socket编程

listen 时候参数 backlog 的意义?
设置accep连接队列的长度。

connect和accept发生在那步?
客户端connect成功在三次握手的第二步,服务端accept成功发生在第三步。

以上图片内容参考:https://mp.weixin.qq.com/s/tH8RFmjrveOmgLvk9hmrkw

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

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

相关文章

c++哈希(哈希表闭散列线性探测实现)

文章目录0. 前言1. 线性探测2. 线性探测的代码实现2.0 定义2.1 插入实现--Insert2.2 查找实现--Find2.3 删除实现--Erase2.4 仿函数3. 完整代码实现4. 代码测试并运行结果:0. 前言 闭散列:也叫开放定址法,当发生哈希冲突时,如果哈…

Python画爱心——谁能拒绝用代码敲出来会跳动的爱心呢~

还不快把这份浪漫拿走!!节日就快到来了,给Ta一个惊喜吧~ 今天给大家分享一个浪漫小技巧,利用Python制作一个立体会动的心动小爱心 成千上百个爱心汇成一个大爱心,从里到外形成一个立体状,给人视觉上的冲击…

年轻人不用太过于努力

周末和一个毕业一年多的朋友聊天,我随口问了一句「你有什么想跟我分享的」,然后他就说了上面的那句话。「年轻人不用太过于努力」和读者聊天会做成我的一个公众号专栏,内容有也会越来越丰富,全部的内容都会收录到我的程序人生专栏…

采购管理主要流程有哪些?

采购管理流程是很多企业用于获取物资或服务的一种关键步骤。采购管理流程对企业至关重要,因为它们可以对利润和支出产生会有直接的影响。 由于各个企业有不同的需求和目标,采购管理流程可能会有所不同。虽然与其采购流程相关的细节可能有所不同&#xf…

web前端课程设计——动漫网页2个网页HTML+CSS web前端开发技术 web课程设计 网页规划与设计

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

便宜又大碗!AI将画廊轻松搬到自家墙壁;用隐写术在图像中存储文件;免费书·算法高维鲁棒统计;关节式手部模型数据集;前沿论文 | ShowMeAI资讯日报

👀日报合辑 | 📆电子月刊 | 🔔公众号下载资料 | 🍩韩信子 📢 Mixtiles:将画廊搬到自家墙壁,“便宜又大碗”的艺术平替 https://www.mixtiles.com/ Mixtiles 是一家快速发展的照片创业公司&…

JavaScipt基础(持续更新三)

JavaScipt基础 JavaScipt基础 九、对象(Object) 9.1什么是对象 9.2JavaScript中的对象 9.3如何得到一个对象 9.4this的指向 9.5对象的使用 十、标准库对象(内置对象) 10.1Math对象 10.1.1常用属性和方法 10.1.2案例 1…

什么是蜂窝移动网络?

文章目录前言移动网络 vs WIFI蜂窝移动通信网产生过程蜂窝网络实现移动上网通信网架构总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 移动网络 vs WIFI 计网课外实验月,我走在宿舍一楼正数着AP有多少个&#xff…

F. Rats Rats(二分 or 预处理)[UTPC Contest 09-02-22 Div. 2 (Beginner)]

题面如下: 思路 or 题解 xkaix ^ k a_ixkai​ 我们可以去想办法去找到 最小的xxx 为什么去寻找xminx_{min}xmin​ 看样例: 52183521 8^352183 52129521 2^952129 一个数如果满足式子 xkaix ^ k a_ixkai​ 至少我们可以找到一个xxx 如果有多个xxx我们…

国考省考行测:问题型材料主旨分析,有问题有对策,主旨是对策,有问题无对策,要合理引申对策

国考省考行测:问题型材料主旨分析,有问题有对策,主旨是对策,有问题无对策,要合理引申对策 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考…

FusionSphere虚拟化解决方案介绍

FusionSphere虚拟化解决方案介绍 Fusionsphere 云管理层:FusionManager 虚拟化层: 华为: Fusioncompute(计算虚拟化,存储虚拟化,网络虚拟化)Fusionstorage(分布式块存储)ebackup…

Python制作GUI学生管理系统毕设,大学生总会用得到

有很多可爱的大学生跟我吐槽: 咋这个大学跟我想象的不一样呢? 老师叫我们自己做… 还是那句话,技术才是硬道理 源码、资料电子书文末名片获取 有个经典案例就是 学生管理系统 写完了放在那也是放着,所以今天分享给大家吧&…

JAVA微信小程序实验室教室预约小程序系统毕业设计 开题报告

本文给出的java微信小程序系统毕业设计开题报告,仅供参考!(具体模板和要求按照自己学校给的要求修改) 选题目的和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序实验室预约系统,前台用户使…

Python之魔幻切片——万物可切(只要是序列对象)。负整数步长一出,序列瞬间倒置,可以玩儿更多花样。

【点击此处跳转笔记正文】Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… My CSDN主页、My HOT博、My Python 学习个人备忘录好文力荐、 老齐教室 自学并不是什么神秘的…

css:详解BFC块级格式化上下文

定义 BFC(Block Formatting Context)块级格式化上下文 一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素,BFC是一块块独立的渲染区域,可以将BFC看成是元素的一种属性&#xf…

云原生之K8S------list-watch机制,调度约束以及故障排查

一,list-watch机制 1,list-watch介绍 1,kubernetes是通过list-watch的机制进行每个组件的动作,保持数据同步的,每个组件之间的设计实现了解耦。 2,用户是通过kubelet根据配置文件,向apiserve…

人工智能--机器学习概述、motplotlib的使用-折线图、散点图、柱状图、饼图

机器学习 步骤: 获取数据–数据基本处理–特征工程–机器学习(算法)–模型评估与调优 人工智能三要素:数据、算法、计算力 CPU 控制单元多,计算单元少—更适合IO密集型任务 GPU计算单元多----更适合计算密集型任务 …

IDA详细使用教程

文章目录软件介绍目录结构启动页面IDA文件加载界面介绍常用快捷键操作概述函数操作数据类型操作导航操作类型操作关闭数据库软件介绍 Ollydbg 仅仅是运行于 Windows 用户模式下的一种 32 位调试器,而 IDA 是运行于 32/64 位下,可用作反编译和调试的一个…

现在Web前端工程师年薪区间是多少?

对于互联网公司来说用户就是上帝,做好客户体验一切才有可能。所以互联网公司都会把钱砸向前端,Web前端程序员也越来越受到企业争相聘用。但web前端工程师真的那么值钱吗? 1web前端不同阶段薪资待遇如何? 目前Web前端工程师可谓是佼…

浏览器无痕模式有什么作用,手机浏览器开启无痕模式的方法

在我们的手机基本上都安装了浏览器,当我们在上网过程中,不想浏览记录被留下,那么开启无痕模式是非常有必要的。那么,浏览器的无痕模式有什么作用,手机浏览器如何开启无痕模式呢?下面教大家如何在手机浏览器…