Bash 在原始套接字上实现协议并使用O_DIRECT
因此,我试图在原始套接字之上实现TCP的一个玩具(bash?),以便更好地理解该协议 我知道/dev/raw不赞成使用O_DIRECT(为什么?),并且在我的内核中没有启用Bash 在原始套接字上实现协议并使用O_DIRECT,bash,sockets,linux-kernel,network-protocols,Bash,Sockets,Linux Kernel,Network Protocols,因此,我试图在原始套接字之上实现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
$ 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
我找不到关于如何使用O_DIRECT在没有linux的TCP实现的情况下发送数据的信息,我想我应该使用O_DIRECT。这是一篇关于FreeBSD 7.0和linux 2.6中原始套接字的信息性文章 未经加工的袜子被揭开神秘面纱 SOCK_RAW Demystified是我写的一篇文章,解释了FreeBSD 7.0和Linux 2.6内核中原始套接字机制的实现。它深入研究了网络内部,展示了这种功能强大的套接字类型的细节以及它在幕后的工作方式
如果Bash中没有
/dev/tcp
,您可能需要查看richardstevens的sock程序(http://www.icir.org/christian/sock.html).O_DIRECT仅适用于诚实的文件和阻止设备。