Как включить флаг TCP PSH
в функции записи для отправки сообщения без заполнения буфера?Как включить tcp psh в стек TCP/IP?
2
A
ответ
0
Вы не видите, что ваши пакеты выходят без флага PSH, установленного уже сейчас? Некоторые эксперименты показали, что здесь следующий пакет в ТСРйитре:
00:00:47.633884 IP 90.155.34.205.52092 > 216.58.222.100.80: Flags [P.], seq 1:16, ack 1, win 29, options [nop,nop,TS val 35956508 ecr 2650150746], length 15: HTTP: GET/HTTP/1.0
[email protected]@...Z."..:.d.|.P......QM...........
.$.....ZGET/HTTP/1.0
вышел используя очень простые скучные записи() - от strace'ing Netcat:
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("216.58.222.100")}, 16) = 0
write(3, "GET/HTTP/1.0\n", 15) = 15
Он смотрит на меня, как флаг PSH отключается, если, например, я передаю больше данных, чем подходит в одном сегменте, и в этом случае только последний сегмент будет иметь PSH, указывая, что на данный момент больше данных.
На каких языках вы программируете? Вы можете добавить тег с указанным языком к своему вопросу, чтобы люди могли легко найти ваш вопрос. –
Спасибо. Я работаю на языке C –
проверить эту тему: http://stackoverflow.com/questions/855544/is-there-a-way-to-flush-a-posix-socket –