Реализация протоколов поверх необработанных сокетов и использование O_DIRECT - PullRequest
0 голосов
/ 19 апреля 2011

Итак, я пытаюсь сделать игрушечную (bash?) Реализацию TCP поверх необработанных сокетов, чтобы лучше понять протокол.

Я понимаю, что / 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, что, как мне кажется, мне следует использовать.

1 Ответ

1 голос
/ 19 апреля 2011

Вот информативный документ по необработанным сокетам в FreeBSD 7.0 и Linux 2.6.

SOCK_RAW Демистифицировано

SOCK_RAW Демистифицированный - это документ, который я написал об объяснении реализации механизма сырых сокетовв ядрах FreeBSD 7.0 и Linux 2.6.Он углубляется во внутренние сети, показывая детали этого мощного типа сокета и его работу за кулисами.

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

Если у вас нет /dev/tcp в Bash, вы можете посмотреть программу носков Ричарда Стивенса (http://www.icir.org/christian/sock.html).

...