范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

字节秋招二面把我干懵了,问我SYN报文什么情况下会被丢弃?

  大家好,我是小林。
  之前有个读者在秋招面试的时候,被问了这么一个问题:SYN 报文什么情况下会被丢弃?
  好家伙,现在面试都问那么细节了吗?
  不过话说回来,这个问题跟工作上也是有关系的,因为我就在工作中碰到这么奇怪的问题。
  客户端向服务端发起了连接,但是连接并没有建立起来,通过抓包分析发现,服务端是收到 SYN 报文了,但是并没有回复 SYN+ACK(TCP 第二次握手),说明什么 SYN 报文被服务端忽略了,然后客户端就一直在超时重传 SYN 报文,直到达到最大的重传次数。
  接下来,我就给出我遇到过的 SYN 报文被丢弃的两种场景: 开启 tcp_tw_recycle 参数,并且在 NAT 环境下,造成 SYN 报文被丢弃 accpet 队列满了,造成 SYN 报文被丢弃 坑爹的 tcp_tw_recycle
  TCP 四次挥手过程中,主动断开连接方会有一个 TIME_WAIT 这个状态,这个状态会持续 2 MSL 后才会转变为 CLOSED 状态。
  在 Linux 操作系统下,TIME_WAIT 状态的持续时间是多久 60 秒,这意味着这 60 秒内,客户端一直会占用着这个端口。要知道,端口资源也是有限的,一般可以开启的端口为 32768~61000 ,也可以通过如下参数设置指定范围:  net.ipv4.ip_local_port_range
  那么,如果如果主动断开连接方的 TIME_WAIT 状态过多,占满了所有端口资源,则会导致无法创建新连接。
  但是 TIME_WAIT 状态也不是摆设作用,它的作用有两个: 防止具有相同四元组的旧数据包被收到,也就是防止历史连接中的数据,被后面的连接接收,否则就会导致后面的连接收到一个无效的数据, 保证「被动关闭连接」的一方能被正确地关闭,即保证最后的 ACK 能让被动关闭方接收,从而帮助其正常关闭;
  不过,Linux 操作系统提供了两个可以系统参数来快速回收处于 TIME_WAIT 状态的连接,这两个参数都是默认关闭的: net.ipv4.tcp_tw_reuse,如果开启该选项的话,客户端(连接发起方) 在调用 connect() 函数时,内核会随机找一个 time_wait 状态超过 1 秒的连接给新的连接复用 ,所以该选项只适用于连接发起方。 net.ipv4.tcp_tw_recycle,如果开启该选项的话,允许处于 TIME_WAIT 状态的连接被快速回收;
  要使得这两个选项生效,有一个前提条件,就是要打开 TCP 时间戳,即 net.ipv4.tcp_timestamps=1(默认即为 1)。
  但是,tcp_tw_recycle 在使用了 NAT 的网络下是不安全的!
  对于服务器来说,如果同时开启了 recycle 和 timestamps 选项,则会开启一种称之为「 per-host 的 PAWS 机制 」。
  首先给大家说说什么是 PAWS 机制?
  tcp_timestamps 选项开启之后, PAWS 机制会自动开启,它的作用是防止 TCP 包中的序列号发生绕回。
  正常来说每个 TCP 包都会有自己唯一的 SEQ,出现 TCP 数据包重传的时候会复用 SEQ 号,只有这样接收方能通过 SEQ 号来判断数据包的唯一性,也能在重复收到某个数据包的时候判断数据是不是重传的。但是 TCP 这个 SEQ 号码是有限的,一共 32 bit,SEQ 开始是递增,溢出之后从 0 开始再次依次递增 。
  所以当 SEQ 号出现溢出后单纯通过 SEQ 号无法标识数据包的唯一性,某个数据包延迟或因重发而延迟时可能导致连接传递的数据被破坏,比如:
  上图 A 数据包出现了重传,并且在 SEQ 号耗尽再次从 A 递增时,第一次发的 A 数据包延迟到达了 Server,这种情况下如果没有别的机制来保证,Server 会认为延迟到达的 A 数据包是正确的而接收,反而是将正常的第三次发的 SEQ 为 A 的数据包丢弃,造成数据传输错误。
  PAWS 就是为了避免这个问题而产生的,在开启 tcp_timestamps 选项情况下,一台机器发的所有 TCP 包都会带上发送时的时间戳,PAWS 要求连接双方维护最近一次收到的数据包的时间戳(Recent TSval),每收到一个新数据包都会读取数据包中的时间戳值跟 Recent TSval 值做比较,如果发现收到的数据包中时间戳不是递增的,则表示该数据包是过期的,就会直接丢弃这个数据包 。
  对于上面图中的例子有了 PAWS 机制就能做到在收到 Delay 到达的 A 号数据包时,识别出它是个过期的数据包而将其丢掉。
  那什么是 per-host 的 PAWS 机制呢?
  前面我提到,开启了 recycle 和 timestamps 选项,就会开启一种叫 per-host 的 PAWS 机制。
  per-host 是对「对端 IP 做 PAWS 检查」 ,而非对「IP + 端口」四元组做 PAWS 检查。
  但是如果客户端网络环境是用了 NAT 网关,那么客户端环境的每一台机器通过 NAT 网关后,都会是相同的 IP 地址,在服务端看来,就好像只是在跟一个客户端打交道一样,无法区分出来。
  Per-host PAWS 机制利用TCP option里的 timestamp 字段的增长来判断串扰数据,而 timestamp 是根据客户端各自的 CPU tick 得出的值。
  当客户端 A 通过 NAT 网关和服务器建立 TCP 连接,然后服务器主动关闭并且快速回收 TIME-WAIT 状态的连接后,客户端 B 也通过 NAT 网关和服务器建立 TCP 连接,注意客户端 A 和 客户端 B 因为经过相同的 NAT 网关,所以是用相同的 IP 地址与服务端建立 TCP 连接,如果客户端 B 的 timestamp 比 客户端 A 的 timestamp 小,那么由于服务端的 per-host 的 PAWS 机制的作用,服务端就会丢弃客户端主机 B 发来的 SYN 包 。
  因此,tcp_tw_recycle 在使用了 NAT 的网络下是存在问题的,如果它是对 TCP 四元组做 PAWS 检查,而不是对「相同的 IP 做 PAWS 检查」,那么就不会存在这个问题了。
  网上很多博客都说开启 tcp_tw_recycle 参数来优化 TCP,我信你个鬼,糟老头坏的很!
  tcp_tw_recycle 在 Linux 4.12 版本后,直接取消了这一参数。 accpet 队列满了
  在 TCP 三次握手的时候,Linux 内核会维护两个队列,分别是: 半连接队列,也称 SYN 队列; 全连接队列,也称 accepet 队列;
  服务端收到客户端发起的 SYN 请求后,内核会把该连接存储到半连接队列 ,并向客户端响应 SYN+ACK,接着客户端会返回 ACK,服务端收到第三次握手的 ACK 后,内核会把连接从半连接队列移除,然后创建新的完全的连接,并将其添加到 accept 队列,等待进程调用 accept 函数时把连接取出来。
  图片
  在服务端并发处理大量请求时,如果 TCP accpet 队列过小,或者应用程序调用 accept() 不及时,就会造成 accpet 队列满了 ,这时后续的连接就会被丢弃,这样就会出现服务端请求数量上不去的现象。
  我们可以通过 ss 命令来看 accpet 队列大小,在「LISTEN 状态」时,Recv-Q/Send-Q   表示的含义如下:
  Recv-Q:当前 accpet 队列的大小,也就是当前已完成三次握手并等待服务端 accept()   的 TCP 连接个数; Send-Q:当前 accpet 最大队列长度,上面的输出结果说明监听 8088 端口的 TCP 服务进程,accpet 队列的最大长度为 128;
  如果 Recv-Q 的大小超过 Send-Q,就说明发生了 accpet 队列满的情况。
  要解决这个问题,我们可以: 调大 accpet 队列的最大长度,调大的方式是通过调大 backlog 以及 somaxconn 参数。  检查系统或者代码为什么调用 accept() 不及时; 原文链接:https://mp.weixin.qq.com/s/2xkYbczdHKgpUnicBw0pkA
  作者:小林Coding
  如果觉得本文对你有帮助,可以转发关注支持一下

颜值再被打上标签,小米生态链移动电源体验颜值即正义是前段时间很火的一个网红名词,很多人以为这个网红词它已经过时,但其实人们日常还在用它作为自己选购商品的一个标签。近日笔者在选择一款充电宝时也是先用颜值过滤,颜值过关再看技新款玛莎拉蒂Levante上市售价83。3892。38万元人民车市讯,近日,我方从玛莎拉蒂官方获悉,2022款玛莎拉蒂Levante正式上市,新车推两种排量车型,分别为2。0T和3。0T,售价83。3892。38万元。2022款玛莎拉蒂L外资疯狂抄底!这2股迎逢低布局好时机回顾过去一周,市场连续三天ICU之后,大量恐慌盘喷涌而出,但外资却在疯狂抄底,放量下杀,清除不稳定因素后,市场终于在周五迎来了一波普涨反弹,虽然反弹的成色还不是很强,但毫无疑问,下山西为何遭遇罕见秋汛黄河秋汛为什么这样猛?专家揭秘近期,山西省遭遇历史罕见的极端强降水天气侵袭,连续降雨引发洪涝地质灾害,多地水库河流超汛限。据统计,山西省降水主要出现在每年的6月9月,10月份全省月平均降水量仅为31。1毫米。本打车新选择!滴滴自动驾驶汽车,真的有完全不一样的乘车体验在日常生活当中,很多人在出行的时候不会再选择打的,而是会选择便宜方便的网约车。网约车能够进入我们的生活当中,就不得不提到如今的网约车巨头滴滴公司。而最近滴滴的一项新技术还成功亮相央华为智选第二款新车曝光恒大或出售旗下电动车企丰田削减30万辆自主设计华为智选第二款新车曝光易车讯报道,继与赛力斯合作打造华为智选SF5车型后,未来华为智选还将推出第二款与赛力斯合作的新车,新车或定名傲图。不过与华为智选SF5采用的华为Ins工业机器人仿真系统有哪些功能?工业机器人离线仿真系统是利用计算机对实际工业机器人系统进行离线仿真的技术。工业机器人仿真系统可以通过单个或多个工业机器人组成工作站或生产线。这些工业机器人的仿真软件可以在制造单机和工业机器人的末端夹持器的详细介绍工业机器人的末端执行器分类1工业机器人可以直接通过简易的连接器将工具(如焊枪等离子切割枪等)安装在机器人的末端法兰盘上,这样只需要对机器人进行路径编程配合简单的开关动作,机器人就可为什么选择全封闭式机器人第七轴?全封闭式机器人第七轴,现在已成为多个行业的最佳选择,它可以根据实际需求实现个性化定制,解决了机器人行走搬运等各种问题。从众多市场反馈中得知,全封闭式机器人第七轴的市场应用情况良好,工业机器人轴和坐标系概述一工业机器人轴的定义1工业机器人轴可以为旋转轴也可以为平移轴,轴的运行方式由机械结构决定。2工业机器人轴分为机器人本体的运动轴和外部轴。3工业机器人外部轴又分为滑台和变位机。4如果为什么龙门式桁架机器人采用V型导向滚轮直线导轨龙门桁架机器人,在汽车厂钢铁厂机械加工厂和轮胎厂等场所有广泛的应用,那么为什么选用V型导向滚轮直线导轨呢?一保证在普通安装基准精度下,系统的平稳运行龙门系统一般是用铝型材或钢梁来做
在国内持有比特币并进行交易违法吗?寄语每一天都是新的开始,在这个投资市场上,大多投资者开始的时候都是抱着赚钱的心态入市,可是亏损的原因日益加重,对赌的心态,不服输的心态,慢慢滋生。开始为了赚钱做单,后来只为解单做单B85主板是不是很老了,i54590直播游戏很吃力!怎么升级?卖掉,换新直播游戏需要多线程,换成四核八线程的E31231V3试试硬盘是固态的吗?显卡什么型号?电脑是木桶效应,CPU问题不是特别大,建议升级内存,显卡,固态,肯定会很大程度提升性俄抛97美债,向中国运现钞后,或彻底与美元了断,印度开始去美元化俄罗斯卫星通讯社5月31日报道,俄相关人士称,美国正在发出威胁,SWIFT系统可能卷入对俄制裁螺旋。所有人都知道,有人正在威胁把俄罗斯从SWIFT系统中除名,首先是美国。SWIFT为什么一些人看到五十多六十多的人玩手机或电脑很熟练,感觉惊讶?一些人看到五六十岁的人玩手机或电脑特别熟,感到惊讶,是他们对一些五六十岁的人还不太了解。现在五六十岁的人看起来似乎是思想僵化手笨脚笨落后于时代的老古董了,但是他们当中有许多人在二三国产四大品牌手机,哪个的故障比较多?返修率最高的是小米,其次是华为,剩下的两家质量较好。小米综合质量最差,其他三个半斤八两,都差不多有权威数据统计,华为的手机故障最多,经常自燃(但都被华为强大的公关给和X了),其他三天才张锋应社教育与应试教育的交锋革命性技术钱景无限2022年2月3月间,一则科技界新闻被国内科技媒体广泛报道美国专利和商标局(USPTO)裁定CRISPRCas9基因编辑技术专利属于美国哈佛和麻省理工学院博德研究现在在淘宝网,有卖很多希捷西数,东芝的,2t硬盘。上面很多都是,标价在300零点?我就上当了,买了一个2TB的西数移动硬盘,说是全新没有用过,是exFAT格式的,结果在分区时出问题了,导致硬盘无法识别,拆开发现,原来是160G硬盘扩容的,大家一定要注意警惕exF有没有靠谱的手机兼职?有大量时间,求推荐?有没有靠谱的手机兼职?有大量时间,求推荐?首先推荐的就是今日头条上面兼职啊,今日头条是一个非常好的平台,在今日头条上面兼职没有任何的套路,你可以在今日头条上面写文章,这个需要一定的来头条很多天了,有一起坚持的吗?账号已经注册了四年多,真正在上面写文章也就20天左右,每天坚持去原创一些作品,能看到收益固然是好事,但现在每天看到的也就是几毛!每次刷头条,看见那些大神动不动就几十上百万推荐,几万我国发布首个智能农机技术路线图到十四五末形成一批商业化无人农场央视网消息今天(5月18日),由工业和信息化部指导,我国发布了首个智能农机技术路线图。记者了解到,智能农机技术路线图是在我国连续四年农业全过程无人作业试验的基础上,由农机车辆电子信妇炎洁广告被指侮辱女性怎么回事?客服回应已经撤下相关广告详情页5月17日消息,有网友曝料称,妇炎洁淘宝官方旗舰店的一款产品存在侮辱女性的行为,其广告语详情介绍页面内容让人感到极度不适。不少网友留言表示,一个女性产品如此恶臭发言,给女性制造焦虑