| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| TCP Connection: Въпросче към мрежарите :) http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5672 |
Страница 1 от 1 |
| Автор: | BrainStorm [ Нед Апр 06, 2008 2:42 pm ] |
| Заглавие: | TCP Connection: Въпросче към мрежарите :) |
Опитвам се да преработя една програмка като целта е да се смени TCP протокола с нещо по-бързо на базата UDP ... Та значи постановката е следната.. имам един процес които си върви на клиентската машина (която нее с реално IP т.е седи зад рутер) през определен интервал процеса се опитва да се свърже с Server приложението (примерно неиде в Зимбабе Та така .. програмката си я направих само че ползвам TCP ... Въпроса ми е следния: Когато се конектна към сървара посредством TCP пращането и приемането на данни е ясно ... как обаче да го преработя за UDP ? Значи питанката идва от там ... да пращам UDP шакети към реално IP ясно как става .. обаче как да получа пакет след като клиента ми седи зад рутер ? Примерно ... киента праща UDP пакет към сървара с IP:xxx.xxx.xxx ... ... След като сървъра приеме пакета тои съответно изпраща някво echo към клиента ... работата е там че всъщност тои изпраща този пакет към IP то на рутера ?! .... Ето тук се запъвам .. смисъл как да накарам рутера да пренасочи този пакет към съответното вътрешно IP на клиента ... TCP'то явно го прави И една забележка .. немога да ровя в руловете на рутера (смисъл тои се явява интернет проваидера) .... ако можех ясно как става Edit: Въпроса ми може да се зададе и по следния начин Когато рутера получи TCP пакет от вън ... как разбира за кое от вътрешните IP та е предназначен този пакет .. съответно за да го пренасочи ? |
|
| Автор: | tgi [ Нед Апр 06, 2008 4:39 pm ] |
| Заглавие: | |
Вероятно на базата на "socket" (local IP address/foreign IP address, local port/foreign port). Същата комбинация я има и в UDP пакетите, така че за рутъра не би трябвало да е проблем да го прави. UDP е "best effort" тип протокол, т.е. изпращачът не знае дали получателят е получил пакета. Ако това не ти е достатъчно, няма да можеш да ускориш нещата спрямо TCP. |
|
| Автор: | Dot [ Сря Апр 09, 2008 11:57 am ] |
| Заглавие: | Не става така. |
Ако говориш за NAT ?рутер? което си е точно така според това което си написал има два варианта. - С UpNP отваряш порт в NAT. Ако разбира се рутера ти има тази възможност. Това е идеалния вариант между другото. - Отваряш твърдо порт в NAT. Тогава обаче всяка смяна на вътрешния адрес ще води и до преконфигурация на рутера и разправяне с провайдери. TCP-то държи отворена сесия в NAT. UDP не обаче. Когато рутера получи пакет по точно тази сесия има map по който го пренасочва към вътрешния адрес. Нещо такова... |
|
| Автор: | BrainStorm [ Сря Апр 09, 2008 1:05 pm ] |
| Заглавие: | |
Разбрах как става номера ... вика му се "маскарадинг" .... Когато вътрешно IP изпрати пакет в него се садържа ... (1)DestIP, (2)SorcIP, (3)DestPort, (4)SorrcPort .... рутера сменя (2) с неговото IP и (4) с произволен порт ... след това слага в таблица следното нещо ... SorrcPortЬ -> IP'на вътрешната машина .... и съответно когато му се върне пакет предназначен за порт Х тои проверява от таблицата на този порт кое IP съотвества и го пренасочва |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|