当前位置:网站首页>tcp连接的细节
tcp连接的细节
2022-08-04 08:50:00 【zhu0902150102】
1.握手协商的ISN初始序列号为啥是随机的?
(1)防止同一个TCP连接的不同实例导致的数据混淆。
(2)防止TCP系列号欺骗(如果固定的序列号开始)
比如存在客户端主机A和客户端主机B(具有特权)。服务端C假设没有特殊验证手段,通过IP来识别A,B主机。现在A主机作为攻击端,冒充B主机的IP向C发生SYN建立连接,同时攻击B主机,比如SYN泛洪攻击,使之无法响应C主机的SYN,ACK报文。如果以固定的序列号开始,那么A主机就能知道C发生的SYN报文的序列号,继续以B主机的IP回ACK建立连接。
2.三次握手可以携带数据吗?
1.正常流程下,协议规定第一次和第二次握手是不能携带数据的,计算发送了数据,对端也会忽视并丢弃。第三次握手可以携带数据,如果当前发送缓冲区已经有了数据并达到发送条件,可以携带数据
2.但是后面为了减少握手带来的时延,增加了一个TFO功能,利用TCP-head里面的一个扩展项FOC来得到减少一个RTT时延的母的。通过正常的TCP连接获取到cookie后,在Head里面添加FOC项则可以在SYN包里携带信息。但是默认禁止的,不建议使用,因为还没有协商完MSS(),窗口缩放等信息,协商序列号。可能会带来问题。协议建议client在正常连接获取cookie,也缓存MSS,或者使用默认的MSS,如果发送带FOC的SYN包无法接受到ACK,则应该临时关闭FOC。而且可能收到重复的SYN包,因为没有协商序列号,可能会照成同一个连接不同实例的数据包混淆。
3.TCP建立连接的方式?
服务端接收SYN后存在哪里?会一直存储吗?
边栏推荐
- IDEA引入类报错:“The file size (2.59 MB) exceeds the configured limit (2.56MB)
- 关于Oracle RAC 11g重建磁盘组的问题
- layout manager
- leetcode 22.8.1 二进制加法
- 安装GBase 8c数据库集群时,报错误码:80000306,显示Dcs cluster not healthy。怎么处理错误呢?
- 【STM32】STM32F103系列名称与封装、内存
- 阿里云的数据库系统怎么升级更新的www.zgysffm.com怎么加快访问速度?
- 经典动态规划问题的递归实现方法——LeetCode39 组合总和
- 从底层看 Redis 的五种数据类型
- 递归思想
猜你喜欢
随机推荐
线程安全问题
【UE虚幻引擎】UE5三步骤实现AI漫游与对话行为
安装GBase 8c数据库集群时,报错误码:80000306,显示Dcs cluster not healthy。怎么处理错误呢?
大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
yuv420sp转jpg
今日睡眠质量记录71分
csdn图片去水印 | 其他方法无效时的解决方案
在GBase 8c数据库后台,使用什么样的命令来对gtm、dn节点进行主备切换的操作?
Explanation of spark operator
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
<jsp:useBean>动作的使用
ShuffleNet v2网络结构复现(Pytorch版)
async - await
BFM模型和Landmarks可视化
从底层看 Redis 的五种数据类型
Linux之Redis 缓存雪崩,击穿,穿透
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
金仓数据库KingbaseES客户端编程接口指南-JDBC(9. JDBC 读写分离)
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
有坦荡的远方