当前位置:网站首页>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后存在哪里?会一直存储吗?
边栏推荐
- 金仓数据库KingbaseES客户端编程接口指南-JDBC(10. JDBC 读写分离最佳实践)
- 技术实现 | 图像检索及其在淘宝的应用
- 线程的状态
- Shared_preload_libraries导致很多语法不支持
- async - await
- Yolov5 replaces the backbone network of "Megvii Lightweight Convolutional Neural Network ShuffleNetv2"
- 新特性解读 | MySQL 8.0 在线调整 REDO
- Occupy, fill in later
- BFM模型和Landmarks可视化
- yolo x 跑起来,详细的不行,且内含800错误解决办法
猜你喜欢
随机推荐
有坦荡的远方
智汇华云 | 华云软件定义网络 DCI介绍
Shared_preload_libraries导致很多语法不支持
为什么手动启动GBase 8c数据库中GTM节点,起不来。显示“Run cmd failed:scp: /tmp/gtm_gtm1.server: Permission denied”
How many assertion methods are commonly used in JMeter?
YOLOv5应用轻量级通用上采样算子CARAFE
在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster”。这是为什么呢?有什么解决办法?
金仓数据库 KDTS 迁移工具使用指南 (6. 注意事项)
C Language Lectures from Scratch Part 6: Structure
布局管理器
unittest使用简述
金仓数据库 KDTS 迁移工具使用指南 (5. SHELL版使用说明)
【论文笔记】Understanding Long Programming Languages with Structure-Aware Sparse Attention
24.循环神经网络RNN
【无标题】
The separation configuration Libpq is supported, speaking, reading and writing
yuv420sp转jpg
JNI学习1.环境配置与简单函数实现
Fiddler(一)安装
Typora_Markdown_图片标题(题注)