定义新的套接字选项以在 TCP 内核代码中使用

2024-04-03

我正在尝试向 TCP 内核代码添加一些功能(在tcp_input.c)。我希望我实现的代码仅在某些情况下运行。我想添加一个控制标志,可以从用户空间应用程序设置它。

我(认为我)需要添加一个新的套接字选项,以便我可以完成以下操作setsockopt().

内核空间:

if(tcp_flags.simulate_ecn_signal) {
  // run code for simulating ecn signal
}

用户空间:

if(tcp_info.tcpi_retransmits > LIMIT) {
  u8 simulate_ecn_signal = 1;

  // set the flag, so that the kernel code runs
  if (setsockopt(sock, IPPROTO_TCP, TCP_FLAGS, &simulate_ecn_signal, sizeof(simulate_ecn_signal)) < 0)
    printf("Can't set data with setsockopt.\n");
}

在上面的示例代码中,我添加了一个示例标志 simulate_ecn_signal 我认为它可能是一个名为的(新)套接字选项(结构)的成员 tcp_flags (可能包含多个标志值)。

如何定义新的套接字选项才能实现此目的?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定义新的套接字选项以在 TCP 内核代码中使用 的相关文章

  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • Chrome 在传输一定量的数据后挂起 - 等待可用的套接字

    我有一个浏览器游戏 最近我开始向游戏添加音频 Chrome 无法加载整个页面并卡在 91 requests 8 1 MB transferred 并且不再加载任何内容 它甚至破坏了所有其他选项卡中的网站 说Waiting for avail
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • Java 客户端到服务器未知来源

    我有一个简单的乒乓球游戏 需要通过网络工作 服务器将创建一个带有球和 2 个球棒位置的游戏 当客户端连接到服务器时 服务器将创建一个名为 PongPlayerThread 的新类 它将处理客户端到服务器的输入和输出流 我的服务器工作100
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com

随机推荐

  • iPhone - 在本地和生产环境设置之间切换

    我正在开发一个 iPhone 应用程序 它使用某处的服务器来获取其数据 在应用程序源代码的某个位置 我对用于连接的 URL 进行了硬编码 这很好 只是我并不总是想使用生产服务器进行测试 我不想弄乱实时数据 只是为了在本地测试一些东西 所以我
  • Modernizr 检查以检测 Firefox [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 使用 Modernizr 可以进行哪些检查来检测 Firefox 功能 即使不建议对功能进行浏览器检测 它也可以用于呈现其他类型的信息
  • 在selenium中使用隐式等待

    我是初学者 我理解等待的基本作用 但我对互联网上不同的教程如何放置和解释它感到困惑 例如 在下面的代码中 它被放置在加载 URL 之前 那么 是否只是等待 URL 加载或查找元素或两者兼而有之 如果我在 try 块中使用隐式等待一次 它是否
  • Console2中使用vim能识别吗?

    With Steven Harman 的 Solarized 调整 https github com stevenharman console2 solarized对于 Console2 我或多或少可以使用晒伤 http ethanscho
  • 使无序列表跨越 div 宽度的 100%

    div ul li First li li Second li li Third li li Fourth li ul div div width 100 li list style none float left 使用CSS 有没有办法让
  • 适用于 Databricks、Synapse 和 ADLS gen2 的数据治理解决方案

    我是数据治理的新手 如果问题缺少一些信息 请原谅我 客观的 我们正在 Azure 平台上为中型电信公司从头开始构建数据湖和企业数据仓库 我们使用 ADLS gen2 Databricks 和 Synapse 进行 ETL 处理 数据科学 M
  • 使用 d3.json() 获取数据不起作用,而使用 JS async wait 则可以。为什么? [复制]

    这个问题在这里已经有答案了 我正在尝试从 url 获取一些数据以在 d3 js 中使用 我无法使用来获取数据d3 json url callback 虽然我使用 ES8 时效果很好async await功能 有人可以帮助我理解为什么吗 我究
  • NSCell 与 NSView:当需要许多控件时

    我知道 Apple 不赞成使用NSCell赞成NSView 请参阅 AppKit 10 10 发行说明 此前曾建议NSCell当需要许多控制时出于性能原因使用 我花了相当多的时间来实现一个需要很多子视图的自定义控件 并且使用 NSView
  • 从 parquet 文件创建 SQL 表

    我正在使用 R 来处理大型数据集 最大数据帧 30 000 000 x 120 这些文件作为 parquet 文件存储在 Azure Datalake 存储中 我们需要每天查询这些文件并将其还原到本地 SQL 数据库中 无需将数据加载到内存
  • “DropDownList.SelectedIndex = -1”问题

    我只想要一个没有选定项目的 ASP NET DropDownList 到目前为止 将 SelectedIndex 设置为 1 没有任何作用 我正在使用 Framework 3 5 和 AJAX 即这个 DropDownList 位于 Upd
  • 通过 Kerberos 使用 Active Directory 进行身份验证

    我正在构建一个需要不同级别身份验证的 Android 应用程序 并且我想使用 Active Directory 来实现这一点 据我所知 使用 Kerberos 是 Microsoft 建议的方式 对于 Android 我该如何执行此操作 我
  • pip 显示错误“lsb_release -a”返回非零退出状态 1

    我正在尝试使用 pip 安装软件包 但它抛出错误 我用过的命令 sudo pip install selenium 它显示的错误 Exception Traceback most recent call last File usr loca
  • 删除或替换 javascript 中模式内的子字符串

    我需要 Javascript 中正则表达式的帮助 我正在寻找一种替换子字符串的方法 仅当它在引号内时 这是我的案例 源字符串 aa aa aa bbb bbb ccc sub string to remove 所需的字符串 aa aa aa
  • Task.IsCancelled 不起作用

    我有以下示例代码 static class Program static void Main var cts new CancellationTokenSource var task Task Factory StartNew gt try
  • 在Javascript中,这个下划线是什么意思?

    var Gallery Backbone Controller extend index null photos null album null subalbums null subphotos null data null photosv
  • scala 列表与泛型的模式匹配[重复]

    这个问题在这里已经有答案了 我有课 case class MyClass T values List T 我正在尝试创建一个函数 它将根据 T 的类型返回一个值 def myFunc T values match case v List B
  • TFS 2017.3.1 合并集合 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们目前使用 TFS 2017 3 1 On Prem 我们有 1 个非常大的收藏和另一个较小的收藏 我们想将较小的收藏移至较大的收藏
  • 使用 clang/g++ 时 __m256i 数组出现分段错误

    我正在尝试生成数组 m256i在另一个计算中重用 当我尝试这样做时 即使使用最小的测试用例 我也会遇到分段错误 但前提是代码是使用 g 或 clang 编译的 如果我使用 Intel 编译器 版本 16 0 编译代码 则不会发生分段错误 这
  • W8 商店应用程序:用 HTML 和 CSS 编写 UI,并使用 C# DLL 来实现域/模型? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 定义新的套接字选项以在 TCP 内核代码中使用

    我正在尝试向 TCP 内核代码添加一些功能 在tcp input c 我希望我实现的代码仅在某些情况下运行 我想添加一个控制标志 可以从用户空间应用程序设置它 我 认为我 需要添加一个新的套接字选项 以便我可以完成以下操作setsockop