【问题标题】:What does tcp_disconnect function in the Linux kernel do, and under what circumstances is it invoked?Linux内核中的tcp_disconnect函数是做什么的,在什么情况下会被调用?
【发布时间】:2021-01-13 11:00:48
【问题描述】:

我正在尝试在 Linux 内核模块中实现 ULP,并且一直在查看全局变量 struct proto tcp_prot 中的函数指针,以便了解将哪些函数指针字段复制到我自己的 @ 987654322@ 以及用我自己的实现覆盖哪些字段。 struct proto 的字段之一是disconnect,设置为核函数tcp_disconnect。但是,我似乎找不到此功能的用户空间类似物,而且 Google 也没有提供任何有用的东西。那么tcp_disconnect的目的是什么?它有什么作用以及何时调用?

【问题讨论】:

    标签: c linux tcp kernel


    【解决方案1】:

    像大多数协议栈一样,Linux 内核中的 TCP/IP 栈被实现为 状态机,即在第 5 页的https://wiki.aalto.fi/download/attachments/70789052/linux-tcp-review.pdf 中。所以 TCP 协议没有完全导出到用户空间,而不是机器之间的“隐藏通信”。

    linux内核中TCP状态机tcp_disconnect()的源码在https://elixir.bootlin.com/linux/v4.6/source/net/ipv4/tcp.c#L2191

    http://www.tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多