The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Работа с сокетами"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Работа с сокетами"
Сообщение от Drap Искать по авторуВ закладки on 14-Апр-03, 19:23  (MSK)
дано:
есть 2 проги (клиент, сервер) исзодников нет. Клиент крнектится на сервер и передает 6 байт данных, сервер интерпретирует и з по своему и отображает. я tcpdump'ом посмотрел как они это делают
вот что увидел:
14:26:07.115651 192.168.0.3.3014 > lab2.1234: P 1615:1621(6) ack 2153
win 30615 (DF)
0x0000   4500 002e 019c 4000 8006 77d8 c0a8 0003        E.....@...w.....
0x0010   c0a8 0002 0bc6 04d2 ea4a 24ee 8117 1790        .........J$.....
0x0020   5018 7797 48be 0000 0200 0100 b2a2             P.w.H.........
14:26:07.115842 lab2.1234 > 192.168.0.3.3014: P 2153:2161(8) ack 1621
win 5840 (DF)
0x0000   4500 0030 ce4c 4000 4006 eb25 c0a8 0002        E..0.L@.@..%....
0x0010   c0a8 0003 04d2 0bc6 8117 1790 ea4a 24f4        .............J$.
0x0020   5018 16d0 5f20 0000 0000 0000 0000 0000        P..._...........

и в томже духе
вобщем он ему передает 0200 0100 b2a2

пытаюсь написать свой клиент и отдать серверу тоже
6 байт и вот что получается
16:48:19.792942 lab2.37667 > 192.168.0.3.1234: P 1:7(6) ack 1 win 5840 <nop,nop,timestamp 28624968 0> (DF)
0x0000   4500 003a 8814 4000 4006 3154 c0a8 0002        E..:..@.@.1T....
0x0010   c0a8 0003 9323 04d2 99d9 405b e76e 5479        .....#....@[.nTy
0x0020   8018 16d0 637a 0000 0101 080a 01b4 c848        ....cz.........H
0x0030   0000 0000 0200 0100 0000                       ..........

т.е. я отдаю 0200 0100 0000  но блин длины пакетов разные
я все перепробовал то больше (для SOCK_STREAM) то
меньще для (SOCK_RAW) что за настройки использует этот говнюк?
я так понимаю что то с длиной пакета а где это крутить?

люди ПАМАГИТЕ!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Работа с сокетами"
Сообщение от scum Искать по авторуВ закладки on 16-Апр-03, 16:59  (MSK)
Попробуем разобраться по порядку.

В первом и втором пакете видим вот такую строчку
0x0020   5018
здесь 5 означает длину TCP заголовка, выраженную в 32 битных словах, т.е. общая длина заголовка равна 5*4 или 20 байт. Это самый что ни на есть типичный заголовок.

В третьем пакете видим
0x0020   8018
теперь длина заголовка стала 32 байта за счет полей "TCP Options" (0101 080a 01b4 c848 0000 0000) которые сам tcpdump и показывает в виде <nop,nop,timestamp 28624968 0>      

Так что говнодав этот, напротив, никаких настроек не использует, а шлет простые стандартные TCP пакеты длиной 20 байт, без опций. Вот и все.
А вот как включать/выключать этот мехнизм, не помню. Если я не ошибаюсь, это уже привилегия сетевого стека системы и настраивается эта фича в самой системе, по крайней мере я не нашел такого параметра для setsockopt(). Может SO_BSDCOMPAT поможет?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру