码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • linux内核中修改TCP MSS值


    在linux内核中修改TCP MSS值

    • 0. 前言
    • 1. MSS相关概念
    • 2. 协商TCP MSS过程

    0. 前言

      最近在解决一些网络相关的问题的时候,我发现许多客户的需求可以不用费劲周折在代码中找到修改的位置,可以直接修改内核中一些网络相关的参数,在大部分情况下即可满足需求,减少时间和精力的消耗(俗称偷懒)。

    1. MSS相关概念

      MTU: Maxitum Transmission Unit 最大传输单元
      MSS: Maxitum Segment Size 最大分段大小

      MSS最大传输大小的缩写,是TCP协议里面的一个概念。
      MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

      而一般以太网MTU都为1500,所以在以太网中,往往TCP MSS为1460。

    2. 协商TCP MSS过程

      对于涉及PPPOE+NAT、IPsec、L2TP、GRE等组网,通常由于报文太大需要分片,这样会降低传输速率; 所以选择一个合适的MSS对传输数据来说比较重要。 Linux中一般可以通过netfilter iptables设置TCP MSS来解决。

    iptables -A FORWARD -p tcp- -tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    这条规则的目的就是改变TCP MSS以适应PMTU(Path MTU)

    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN- j TCPMSS --set-mss 128
    设置MSS为固定数值128

    同理Ipv6只需改为ip6tables,即:

    ip6tables -A FORWARD -p tcp- -tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    ip6tables -A FORWARD -p tcp --tcp-flags SYN,RST SYN- j TCPMSS --set-mss 128

  • 相关阅读:
    .NetCore——自定义筛选器
    2022年测试岗最新自动化测试面试题整理,干货满满
    leetcode_168 Excel表列名称
    深入理解TDD(测试驱动开发):提升代码质量的利器!
    ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
    Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + CMake)
    java解析html代码,采集网页信息
    Rust免杀 Shellcode加载与混淆2
    四、Qt自定义UI界面(细节的使用)
    信息检索相关任务及数据集介绍
  • 原文地址:https://blog.csdn.net/IT_xiao_bai0516/article/details/125408940
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号