【问题标题】:Implementing protocols on top of raw sockets and using O_DIRECT在原始套接字之上实现协议并使用 O_DIRECT
【发布时间】:2011-04-20 03:52:36
【问题描述】:

所以,我正在尝试在原始套接字之上制作 TCP 的玩具(bash?)实现,以更好地理解协议。

我知道 /dev/raw 已被 O_DIRECT 弃用(为什么?)并且在我的内核中未启用。

$ zgrep -i raw /proc/config.gz
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
CONFIG_SERIO_RAW=m
# CONFIG_RAW_DRIVER is not set
CONFIG_SND_RAWMIDI=m
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_HIDRAW=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_GADGET_VBUS_DRAW=2
# CONFIG_LINE6_USB_RAW is not set
CONFIG_ATH6KL_HTC_RAW_INTERFACE=y

我找不到关于如何在没有 linux 的 TCP 实现的情况下使用 O_DIRECT 发送数据的信息,我想我应该使用 O_DIRECT。

【问题讨论】:

  • O_DIRECT 仅适用于诚实文件和块设备。

标签: bash sockets linux-kernel network-protocols


【解决方案1】:

这是一篇关于 FreeBSD 7.0 和 Linux 2.6 中原始套接字的信息性论文。

SOCK_RAW 揭秘

SOCK_RAW Demystified 是我写的一篇关于解释在 FreeBSD 7.0 和 Linux 2.6 内核中实现原始套接字机制的论文。它深入研究了网络内部结构,展示了这种强大的套接字类型的详细信息以及它在幕后的工作原理。

http://sock-raw.org/papers.html

如果您在 Bash 中没有 /dev/tcp,您可能需要查看 Richard Stevens 的 sock 程序 (http://www.icir.org/christian/sock.html)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2011-09-14
    • 2012-01-19
    相关资源
    最近更新 更多