当前位置:网站首页>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后存在哪里?会一直存储吗?
边栏推荐
猜你喜欢
随机推荐
户外徒步旅行
layout manager
async - await
【论文笔记】Understanding Long Programming Languages with Structure-Aware Sparse Attention
图的基本概念
unittest使用简述
【无标题】
.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)
Fiddler(二)-手机抓包502错误解决方法
spark算子讲解
(三)DDD上下文映射图——老师,我俩可是纯洁的男女关系!
How many assertion methods are commonly used in JMeter?
Libpq 是否支持读写分离配置
大佬们,mysql里text类型的字段,FlinkCDC需要特殊处理吗 就像处理bigint uns
金仓数据库KingbaseES客户端编程接口指南-JDBC(10. JDBC 读写分离最佳实践)
金仓数据库的单节点如何转集群?
注意力机制
推荐几种可以直接翻译PDF英文文献的方法
为什么手动启动GBase 8c数据库中GTM节点,起不来。显示“Run cmd failed:scp: /tmp/gtm_gtm1.server: Permission denied”
C语言strchr()函数以及strstr()函数的实现