![]() |
![]() |
#17 |
Practical UNIX Terrorist
|
![]()
Troll> это чисто локальная операция, с другой стороны tcp-соединения этого вообще не видно
насколько я понимаю, на shutdown посылается fin и соединение переходит в half-open режим. при этом передача в другую сторону возможна ещё сколь угодно долго, но при попытке чтения другая сторона будет получать 0. вопрос, не смущает ли это сквид? Troll> убунта 8.10 с последними апдейтами ну вот, редхат перешёл на новый опенбсдшный, а дебиан и, как следствие, убунта - нет. в том и разница, стало быть. upd: подампал - так и есть. вот смесь вывод tcpdump и strace: read(0, "GET cache_object://127.0.0.1/inf"..., 1024) = 47 write(3, "GET cache_object://127.0.0.1/inf"..., 4723:30:36.083853 IP 10.0.0.1.57253 > 10.0.0.2.8079: P 1:48(47) ack 1 win 46 <nop,nop,timestamp 3394157776 85347431> 0x0000: 4500 0063 c188 4000 4006 6adf 596f aabc E..c..@.@.j.Yo.. 0x0010: 0a00 0002 dfa5 1f8f 2ea0 7d4a 35d1 da69 ..........}J5..i 0x0020: 8018 002e 0e83 0000 0101 080a ca4e bcd0 .............N.. 0x0030: 0516 4c67 4745 5420 6361 6368 655f 6f62 ..LgGET.cache_ob 0x0040: 6a65 6374 3a2f 2f31 3237 2e30 2e30 2e31 ject://127.0.0.1 0x0050: 2f69 6e66 6f20 4854 5450 2f31 2e30 0d0a /info.HTTP/1.0.. 0x0060: 0d0a 0a ... ) = 47 poll([{fd=3, events=POLLIN}, {fd=0, events=POLLIN, revents=POLLHUP}], 2, -1) = 1 shutdown(3, 1 /* send */23:30:36.084091 IP 10.0.0.1.57253 > 10.0.0.2.8079: F 48:48(0) ack 1 win 46 <nop,nop,timestamp 3394157776 85347431> 0x0000: 4500 0034 c189 4000 4006 6b0d 596f aabc E..4..@.@.k.Yo.. 0x0010: 0a00 0002 dfa5 1f8f 2ea0 7d79 35d1 da69 ..........}y5..i 0x0020: 8011 002e d43a 0000 0101 080a ca4e bcd0 .....:.......N.. 0x0030: 0516 4c67 ..Lg ) = 0 обрати внимание на FIN после shutdown(3, SHUT_WR). после этого назад приходит нормальный ответ, потом FIN и последний от нас ACK. правда, на lo у меня этого не происходит - там большой MTU и весь ответ сервера помещается в первый же пакет, за которым сразу следует FIN. но теория такова ![]() upd2: если опустить mtu на lo до 1500, то этот fin разглядеть удётся. в общем, маловероятно, но всё же. хочется увидеть алексов tcpdump, что конкретно у него происходит.
__________________
Even if a billion people believe something it can still be ridiculous. Последний раз редактировалось rojer, 03.04.2009 в 19:41. |
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
bash history | AlexM | IT и Связь | 14 | 27.11.2006 18:56 |
bash.org | Mikhael | Само приползло | 2 | 02.04.2006 22:35 |