Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2015, 07:09   #1
NikitaBlack
Пользователь
 
Аватар для NikitaBlack
 
Регистрация: 16.03.2014
Сообщений: 10
Лампочка Реализация tcp/ip

Всем привет!
Кто знаком с сетевым программированием - нужна помощь. В общем занимаюсь разработкой собственной реализацией протокола tcp/ip. Есть качественная модель на udp. пришло время воплотить в жизнь. Как и где я могу реализовать данную задумку? Например в стеке протоколов у Linux есть различные реализации, например, tcp-vegas, tcp-tahoe и т.д. как я могу внедрить свою? Про windows вообще ничего не накопал. Если заниматься написанием драйвера для сетевой что нибудь даст(и на сколько это реально)?
Нужна любая помощь, не знаю с какой стороны подойти. Ссылки приветствуются. Если где то неправильно выразился прошу поправить ))) Заранее спасибо!
NikitaBlack вне форума Ответить с цитированием
Старый 02.07.2015, 08:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Есть качественная модель на udp. пришло время воплотить в жизнь.
Что за язык удп? Или это программа моделирования сетевых стеков? Или вы просто взяли и на бумажке пакеты удп нарисовали?

Цитата:
Как и где я могу реализовать данную задумку?
Ну напишите собственную программу, которая его использует. Сырые сокеты в линуксе еще доступны.

Цитата:
Например в стеке протоколов у Linux есть различные реализации, например, tcp-vegas, tcp-tahoe и т.д. как я могу внедрить свою?
У вас же удп, зачем вам тсп? Если вы ни разу не ковыряли ядро линукса не стоит лезть туда. Пишите юзерспейс прогу.

Цитата:
Если заниматься написанием драйвера для сетевой что нибудь даст(и на сколько это реально)?
А драйвер тут причем? Это иной уровень сетевой модели. Или вы и про нее ничего не слышали?
p51x вне форума Ответить с цитированием
Старый 02.07.2015, 18:29   #3
NikitaBlack
Пользователь
 
Аватар для NikitaBlack
 
Регистрация: 16.03.2014
Сообщений: 10
По умолчанию

Udp транспортный протокол, я имел ввиду реализовал динамическое изменение параметра => частично реализовал tcp. Но до него как понимаете далеко т.к. по спецификации повторять его замучаешься.
Сырые сокеты опять к этому приводят.
А вот перекомпилировать ядро Linux с модификацией это идея. Можно литературу в студию? (или ссылки где копать)
По поводу драйвера это уже физический уровень наверное. Да, думаю не подходит.
NikitaBlack вне форума Ответить с цитированием
Старый 02.07.2015, 19:31   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сырые сокеты опять к этому приводят.
А вот перекомпилировать ядро Linux с модификацией это идея. Можно литературу в студию? (или ссылки где копать)
Вы это серьезно? Написать юзерспейс прогу это проблема, а написать модуль ядра и пересобрать его это тьфу... К чему приводят сырые сокеты? Спускаетесь до уровня айпи и повторяете ваши телодвижения с удп на бумажке.
p51x вне форума Ответить с цитированием
Старый 02.07.2015, 19:52   #5
NikitaBlack
Пользователь
 
Аватар для NikitaBlack
 
Регистрация: 16.03.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Спускаетесь до уровня айпи и повторяете ваши телодвижения с удп на бумажке.
Во-первых, не на бумажке, а на клиент серверном приложении.
Во-вторых, сырой сокет не позволит мне изменить алгоритм передачи данных со всеми потерями и повторными передачами, а также изменение окна.
А вот вариант с модификацией ядра мне понравился. Мне нужно изменить один файл с конкретной реализацией и скомпилировать все остальное без изменений. Поэтому я и ищу помощь где что и как.

P.S. Хватит издевок, каждый силен в своей области. Я лишь хочу получить помощь.
NikitaBlack вне форума Ответить с цитированием
Старый 02.07.2015, 20:05   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Во-первых, не на бумажке, а на клиент серверном приложении.
Ну тогда у вас все работает... Чего вы еще хотите?

Цитата:
Во-вторых, сырой сокет не позволит мне изменить алгоритм передачи данных со всеми потерями и повторными передачами, а также изменение окна.
С чего вдруг? Что-то я все больше сомневаюсь в вашей модели.

Цитата:
А вот вариант с модификацией ядра мне понравился.
А там другие сокеты что ли?

Цитата:
Мне нужно изменить один файл с конкретной реализацией и скомпилировать все остальное без изменений.
Один файл изменить для нового протокола? Там на айпи4 целая папка как бы.

Цитата:
Поэтому я и ищу помощь где что и как.
Вы о чем? Если вам надо изменить один файл - так вперед, берете редактор и меняете... Проблема в чем? Как собрать ядро?

Цитата:
Хватит издевок, каждый силен в своей области. Я лишь хочу получить помощь.
Где вы видели издевки? Я вам говорю конкретные вещи и факты, а вы похожи на скрипткидди, который нашел эксплоит, а что за ним стоит, да и язык программирования не понял...
p51x вне форума Ответить с цитированием
Старый 02.07.2015, 20:06   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А можно узнать, для чего именно это понадобилось?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2015, 20:18   #8
NikitaBlack
Пользователь
 
Аватар для NikitaBlack
 
Регистрация: 16.03.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А можно узнать, для чего именно это понадобилось?
Динамическое изменение window на стороне отправителя + добавление избыточности + шифрование.
Теперь хочу посерьезней заделать например собственная сборка (реализация) протокола в Linux
NikitaBlack вне форума Ответить с цитированием
Старый 02.07.2015, 20:27   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Динамическое изменение window на стороне отправителя
mtu, qos, qts и прочие страшные слова...

Цитата:
добавление избыточности
Рид-Маллер, Соломон,... или опять просто тот же crc?

Цитата:
шифрование
Не уровень tcp/ip это. Просто ни его дело.

Цитата:
Теперь хочу посерьезней заделать например собственная сборка (реализация) протокола в Linux
Ну у вас, по вашим же словам, уже есть клиент-сервер на вашем протоколе... что дальше то?
p51x вне форума Ответить с цитированием
Старый 02.07.2015, 20:31   #10
NikitaBlack
Пользователь
 
Аватар для NikitaBlack
 
Регистрация: 16.03.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение

А там другие сокеты что ли?


Один файл изменить для нового протокола? Там на айпи4 целая папка как бы.


Вы о чем? Если вам надо изменить один файл - так вперед, берете редактор и меняете... Проблема в чем? Как собрать ядро?
Дело не в сокетах. Какие бы я сокеты не использовал, я не смогу изменить алгоритм tcp его спицификацию. Да, все что Вы сказали выше позволит мне изменять пакет по своему усмотрению. Но меня интересует сама алгоритмика tcp. Которую я реализовал с помощью UDP так как он не обеспечивает гарантированную доставку данных я сам реализовал данную логику.
Теперь меня интересует изменение алгоритма передачи данных на конкрестной реализации в ОС(как мы выяснили это Linux) или внедрение, я не знаю.
Ipv4 целая папка. Ок. Буду признателен если подскажите в каких файлах нужно копаться.
Как собрать ядро. Киньте ссылку или что нибудь из своего опыта. Буду изучать

P.S. Как бы глупо это не звучало, но я занимаюсь этим уже более года и наигрался с сокетами от и до. Поверьте это не то что мне нужно.

Цитата:
Сообщение от p51x Посмотреть сообщение

Ну у вас, по вашим же словам, уже есть клиент-сервер на вашем протоколе... что дальше то?
А дальше то что это работает только через мои приложения. Например хочешь отправить файл, ок, только через мой клиент и сервер. Теперь меня интересует чтобы этим занималось ОС, а пользователь просто серфил в интернете или передавал данные с любого приложения. Просто использовал мою реализацию tcp, которых повторюсь в Linux около 6 шт.

Последний раз редактировалось Stilet; 02.07.2015 в 21:34.
NikitaBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация TCP+SSL клиент-сервера через Synapse 3D Hunter Работа с сетью в Delphi 19 06.09.2013 08:08
как создать TCP клиент, TCP сервер ? DreamMaster911 C/C++ Сетевое программирование 1 26.10.2010 15:05
tcp Cpluser Общие вопросы .NET 1 19.02.2010 20:43
TCP/IP Syltan Свободное общение 14 11.10.2009 19:18
"2540:TCP"= 2540:TCP:oeiuq AlexSh Безопасность, Шифрование 0 06.07.2009 10:28