The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"С++ и FreeBSD: Unix socket или TCP через localhost"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 15-Янв-10, 12:50 
Задача:

На freebsd машине есть некое подобие шлюза реализованного таким образом
1) "сервер1" который принимает поток (файлы) по TCP от "клиент1".
2) "сервер2" который отдает поток принятый "сервер1" по TCP к "клиент2".

Вопрос: каким образом лучше организовать передачу потока от "сервер1" к "сервер2": "Unix socket" или "TCP через localhost" если учесть что доставка пакетов между клиентами должна быть 100% и нагрузка на сервер должна быть как можно меньше (таких передач одновременно будет очень много на очень больших скоростях).

Все пишется на С++ под FreeBSD 8.

Очень надеюсь на компетентный ответ или совет.

Заранее очень благодарен.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Pahanivo email(ok) on 15-Янв-10, 13:43 
>[оверквотинг удален]
>socket" или "TCP через localhost" если учесть что доставка пакетов между
>клиентами должна быть 100% и нагрузка на сервер должна быть как
>можно меньше (таких передач одновременно будет очень много на очень больших
>скоростях).
>
>Все пишется на С++ под FreeBSD 8.
>
>Очень надеюсь на компетентный ответ или совет.
>
>Заранее очень благодарен.

общеизвестный факт что через сокет быстрее )) нет накладных расходов TCP

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 15-Янв-10, 15:09 
>
>общеизвестный факт что через сокет быстрее )) нет накладных расходов TCP

а как надежность?

гарантирует ли Unix Socket доставку "пакетов"?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Michael (??) on 15-Янв-10, 15:31 

>гарантирует ли Unix Socket доставку "пакетов"?

а гарантирует ли pipe доставку данных?

вопрос из той же серии

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 15-Янв-10, 17:43 
>
>>гарантирует ли Unix Socket доставку "пакетов"?
>
>а гарантирует ли pipe доставку данных?
>
>вопрос из той же серии

всмысле?

TCP - гарантирует. UDP - нет.

по Unix Socket - не нашел точного утверждения. в этом и вопрос.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Michael (??) on 15-Янв-10, 17:52 

>TCP - гарантирует. UDP - нет.

TCP, UDP - это транспортный уровень
unix socket там не причем

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 15-Янв-10, 17:57 
>
>>TCP - гарантирует. UDP - нет.
>
>TCP, UDP - это транспортный уровень
>unix socket там не причем

поэтому я и написал слово пакеты как "пакеты". меня интересует надежность доставки у него такая же как у TCP или нет. допускает ли он потери данных по своей спецификации?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от jd (??) on 15-Янв-10, 18:37 
>>>TCP - гарантирует. UDP - нет.
>>
>>TCP, UDP - это транспортный уровень
>>unix socket там не причем
>
>поэтому я и написал слово пакеты как "пакеты". меня интересует надежность доставки
>у него такая же как у TCP или нет. допускает ли
>он потери данных по своей спецификации?

UDP не гарантирует доставку пакетов не потому, что он их специально про#@$%, а потому что при передаче по сети, какое-либо из промежуточных соединений может быть нарушено (и чем длиннее и сложнее маршрут, тем это вероятнее). TCP в этом случае перепосылает пакет по другому маршруту. То есть, если использовать UDP на двух машинах в одном ethernet-сегменте, к примеру, то тоже ничего никуда не потеряется и порядок следования пакетов нарушен не будет, но эти протоколы работают на другом уровне, независимо от физической конфигурации сети. К UNIX-сокетам, как уже говорили выше, всё это не имеет никакого отношения, потому что оба их конца находятся на одной машине и "потеряться" просто ничего не может. TCP вам стоит использовать только в том случае, если предполагается в будущем разнесение "сервер1" и "сервер2" на разные машины.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 16-Янв-10, 12:46 
>[оверквотинг удален]
>может быть нарушено (и чем длиннее и сложнее маршрут, тем это
>вероятнее). TCP в этом случае перепосылает пакет по другому маршруту. То
>есть, если использовать UDP на двух машинах в одном ethernet-сегменте, к
>примеру, то тоже ничего никуда не потеряется и порядок следования пакетов
>нарушен не будет, но эти протоколы работают на другом уровне, независимо
>от физической конфигурации сети. К UNIX-сокетам, как уже говорили выше, всё
>это не имеет никакого отношения, потому что оба их конца находятся
>на одной машине и "потеряться" просто ничего не может. TCP вам
>стоит использовать только в том случае, если предполагается в будущем разнесение
>"сервер1" и "сервер2" на разные машины.

вот за этот совет огромное спасибо. наверно все таки будет Unix Socket  так как в ближайшее время разнесение не потребуется.

а почему я спрашивал и за TCP - у него есть два важных преимущества
1) осуществляет повторный запрос данных в случае потери пакета
2) устраняет дублирование пакетов

скорость через этот шлюз будет от 350-390 Мбит/с и дополнительно проверять целосность - не ахти. развечто по хеш сумме на спороне принявшего.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от аноним on 19-Янв-10, 18:44 
>а почему я спрашивал и за TCP - у него есть два
>важных преимущества
>1) осуществляет повторный запрос данных в случае потери пакета
>2) устраняет дублирование пакетов

Не читал остальной поток мыслей, но если вы спрашиваете про unix socket, значит работаете локально. Если работаете локально, использовать TCP - идиотизм, и означенные его преимущества таковыми не являются, потому что через сокеты вообще нет никаких пакетов, и вообще невозможна их потеря или дублирование. Плюс гораздо меньшие накладные расходы.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 19-Янв-10, 19:22 
>Не читал остальной поток мыслей, но если вы спрашиваете про unix socket,
>значит работаете локально. Если работаете локально, использовать TCP - идиотизм, и
>означенные его преимущества таковыми не являются, потому что через сокеты вообще
>нет никаких пакетов, и вообще невозможна их потеря или дублирование. Плюс
>гораздо меньшие накладные расходы.

tnx

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "С++ и FreeBSD: Unix socket или TCP через localhost"  –1 +/
Сообщение от Warhead Wardick on 15-Янв-10, 20:50 
Мда ... вот кому то "повезёт" - от такого прохфессионала программу в продакшен :(

И уж если с++ (все реальные кульЦхаккеры на нем пишут, правда?) - то быстрее всего будет SHM, но надёжность доставки у неё как посчитать я не знаю :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 16-Янв-10, 12:36 
>Мда ... вот кому то "повезёт" - от такого прохфессионала программу в
>продакшен :(
>
>И уж если с++ (все реальные кульЦхаккеры на нем пишут, правда?) -
>то быстрее всего будет SHM, но надёжность доставки у неё как
>посчитать я не знаю :)

тут дело не в "кулхацкерах", а в том что я не вижу смысла и полноценной возможности использовать Perl в данной ситуации, так как мне необходимо проверять и делать изменения в заголовке каждого пакета проходящего через эту связку.

тем более вопрос не о языке программирования, а принципе работы Unix сокетов. так что извените? но ваш коментарий совершенно бесполезный.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от аноним on 19-Янв-10, 18:41 
>И уж если с++ (все реальные кульЦхаккеры на нем пишут, правда?) -
>то быстрее всего будет SHM, но надёжность доставки у неё как
>посчитать я не знаю :)

Вы совсем охренели считать нажедность доставки SHM и Unix сокетов? У них "надежность доставки" ровно такая же как "надежность присваивания переменной значения", потому что в обоих случаях это всего лишь запись в память.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Warhead Wardick on 20-Янв-10, 01:23 
>Вы совсем охренели считать нажедность доставки SHM и Unix сокетов?

Мужик ну ты чё всё испортил то?! Народ тут стебётя а ты сразу шашкой :\

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 20-Янв-10, 11:12 
>Мужик ну ты чё всё испортил то?! Народ тут стебётя а ты
>сразу шашкой :\

лучше бы кинули где почитать про принцип реализации Unix сокетов... а не стебетесь :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Pahanivo email(ok) on 20-Янв-10, 12:10 
>>Мужик ну ты чё всё испортил то?! Народ тут стебётя а ты
>>сразу шашкой :\
>
>лучше бы кинули где почитать про принцип реализации Unix сокетов... а не
>стебетесь :)

млять ты не поверишь ....
man socket ....

PS на какой планете обучают таких мегокодеров?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 20-Янв-10, 12:53 
>млять ты не поверишь ....
>man socket ....
>
>PS на какой планете обучают таких мегокодеров?

если пытаешься кого то учить - расшарь сначала сам...
man unix вообще то....

PS и не надо тут бить в грудь - можно просто ничего не писать если не хочешь/не знаешь.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Pahanivo email(ok) on 20-Янв-10, 13:07 
>если пытаешься кого то учить - расшарь сначала сам...
>man unix вообще то....

я раз что ты заметил
SEE ALSO в мане - ты очень способный

>PS и не надо тут бить в грудь - можно просто ничего
>не писать если не хочешь/не знаешь.

расшарь? чего расшарить?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 20-Янв-10, 13:14 
>расшарь? чего расшарить?

ваш коментарии совершенно бесполезные...

прочитайте лучше первый пост и скажите если есть что по делу. а не ведете разговор "ни о чем".

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Pahanivo email(ok) on 20-Янв-10, 14:51 
>прочитайте лучше первый пост и скажите если есть что по делу. а
>не ведете разговор "ни о чем".

что тут еще можно сказать? по моему все уже ясно!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Pahanivo email(ok) on 20-Янв-10, 13:13 
>если пытаешься кого то учить - расшарь сначала сам...

расшарь? чаво расшарить?

>man unix вообще то....

я рад что ты заметил
SEE ALSO в мане - ты очень способный!

>PS и не надо тут бить в грудь - можно просто ничего
>не писать если не хочешь/не знаешь.

1) это не я, а ты выставлдяешь себе "грамотным" так как тема изначально шизофренизм полный, ответы на твои вопросы даст любой поисковик в первой попытки
2) никто не бъет в грудь - просто тыкают носом ))
3) надежность сокетов, пакеты .... жесть ...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 20-Янв-10, 13:15 
я и не говорил что я "гуру".
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от hate email(ok) on 20-Янв-10, 15:02 
>я и не говорил что я "гуру".

Ну и нефиг "губы дуть", иди читай.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от Аноним (??) on 21-Янв-10, 11:27 
Автору посоветую все книги Ричарда Стивенса, признанного гуру UNIX-программирования и TCP/IP

1. У. Ричард Стивенс, Стивен А. Раго
UNIX. Профессиональное программирование
Advanced Programming in the UNIX Environment
Твердый переплет (2007)

2. Уильям Стивенс
Unix. Взаимодействие процессов
UNIX Network Programming. Volume 2. Interprocess Communications

3. У. Р. Стивенс, Б. Феннер, Э. М. Рудофф
UNIX. Разработка сетевых приложений
UNIX: Network Programming
Твердый переплет (2007)


ну и до кучи

4. У. Ричард Стивенс
Протоколы TCP/IP. Практическое руководство
TCP/IP Illustrated, volume 1. The Protocols
Мягкая обложка (2003)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

26. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 21-Янв-10, 13:51 
огромное спасибо :)

из всех как первых двух не было. походу именно их мне и не хватает...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

27. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от vvvua (ok) on 30-Янв-10, 11:22 
>На freebsd машине есть некое подобие шлюза реализованного таким образом
>1) "сервер1" который принимает поток (файлы) по TCP от "клиент1".
>2) "сервер2" который отдает поток принятый "сервер1" по TCP к "клиент2".
>
>Вопрос: каким образом лучше организовать передачу потока от "сервер1" к "сервер2": "Unix >socket" или "TCP через localhost" если учесть что доставка пакетов между клиентами должна >быть 100% и нагрузка на сервер должна быть как можно меньше (таких передач одновременно >будет очень много на очень больших скоростях).

Так как проги-сервера 2, то стоит подумать о возможности масштабирования. Т.Е. о физическом разделении на 2 компа.
Считаю, что лучше сделать 2 вида - unix socket и tcp. Либу использовать libev - там всего десяток строчек добавиться для поддержки 2-х типов сокетов. И клиентов за 10К можно подключить при правильном написании. Но может быть сложновато, придется повозиться...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

28. "С++ и FreeBSD: Unix socket или TCP через localhost"  +/
Сообщение от tarpedo (??) on 30-Янв-10, 12:11 
>Считаю, что лучше сделать 2 вида - unix socket и tcp. Либу
>использовать libev - там всего десяток строчек добавиться для поддержки 2-х
>типов сокетов. И клиентов за 10К можно подключить при правильном написании.
>Но может быть сложновато, придется повозиться...

спасибо, я так и думаю делать, но на первых парах хватит и Unix Socket.
пока курю сокеты в Java так как клиенты будут на ней.

за libdev спасибо - посмотрю.

p.s. жесть начнется когда SSL надо будет прикручивать :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

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




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

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