Хотелось бы реализовать свой тсп стэк для программы. Проблема в том что даже теоретически я не знаю как это сделать =) ... Поэтому было бы классно чтонибудь по теме глянуть ... Заранее спасибо =)
хм ... ну когда ченить соберу бесплатно дам. Я мзду не беру , за державу обидно )))))))) Совет называеца иди копай мож. ченить найдешь =) ... протоколы эти знаю. Просто одно дело теория , а другое написание ... если вы большие проекты с множеством функций делали то поймете. Еслиб я знал точно варианты ! =) ... теоретически думаю да ... хотя мне кажется , что можно и по другому. Кто то помню на си делал подобное но я потерял исходник. Хотя такие извраты чтобы с механикой программы совместить!
calidus Если под винду . Вам дорога в NDIS и только туда! Гуглите, смотрите примеры, и главное поиск по форуму. Тут про NDIS темы не раз поднимались
Мы-то делали, делали. И прекрасно понимаем. Но каких советов ты хочешь, мы (я и я) не понимаем.. Тут надо просто начать писать, дебажить и доводить, пока не начнет работать
calidus Что глянуть? Сам протокол(а без этого лучше и не браться) описан и на русском наверняка куча док есть. Реализацию можно посмотреть в исходниках Линукса и был такой пакет для ДОС - KAQ9. Там в исходниках полный стек TCP/IP ( полный для того времени) и все клиенты и серверы. Написать кусок TCP/IP для частного случая можно и одному человеку, но громкое слово стек - это работа для команды.
calidus Если будеш делать для ядра, то у тебя уйдет много времени чтобы разобратся с NDIS, советую сделать обертку и для начала юзать RAW сокеты. Кстати зачем тебе это ?
k3internal в большинстве случаев люди пишут для себя что бы в практике знать и понимать протокол. Если я пишу свой стек, свою сетевую архитектуру для операционки, это не значит что она будет использоватся в реальных проектах. Не думаю что человеку дали задание написать стек, просто как бы "для себя..." наверное.
Great, ты писал для ядра или как тут советуют обертки на сырые сокеты? Если для ядра можешь скинуть поглядеть? занимаюсь сейчас как раз ндис драйверами было б интересно поглядеть.
Novi4ek это я ответил на "если вы большие проекты с множеством функций делали то поймете." а сам стек я не писал, но представляю себе довольно четко задачу, поэтому и обсуждаю. самому мне все равно в скором времени придется заняться этой темой, только в немного другом направлении.
Novi4ek вот хорошая вводная статья про сетевую подсистему Linux http://www.ibm.com/developerworks/ru/library/l-linux-networking-stack/index.html тут описание sk_buff (буфера сокета) http://www.skbuff.net/skbuff.html тут исходники ядра Linux http://www.linux-m32r.org/lxr/http/ident начинать изучать сетевую подсистему нужно с функции netif_rx() которая вызывается драйвером сетевого контроллера для диспетчеризации принятого пакета будут вопросы, обращайся что касается пользовательского уровня, тот же стек протоколов можно реализовать через libpcap
rei3er! Спасибо за ссылки, но дело в том что мне пока интересен этот вопрос применительно к windows, с теоретической точки зрения я себе довольно хорошо представляю как и что будет работать, на практике интересно было бы посмотреть именно работу внутри виндосовского драйвера. Мне сейчас представляется такая картина - прописать НДИС-фильтр драйвер сразу над драйвером сетевой карты и самостоятельно из этого фильтра работать с этим драйвером, эмулируя дальше через свои надстройки IP, TCP, UDP и т.д., заворачивая все это во фреймы, понимаемые драйвером адаптера, может быть я не прав и надо делать это по другому, вот и хотел бы посомтреть как это делается именно в виндоус.