Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

Передача данных по сети...   Найти похожие ветки 

 
Knight ©   (2004-11-23 16:28) [0]

Вот везде пишется, что несколько мелких пакетов могут объединяться в один и, наоборот, один большой может разбиваться на несколько мелких... типа, клиент должен сам отслеживать данные. Это не проблема если используються ServerSocket-ClientSocket... А если это UDP-бродкаст? Как, только-что зашедшему в сеть клиенту, разобраться в этой каше?


 
Digitman ©   (2004-11-23 16:44) [1]


> Вот везде


где это "везде" ?
чушь не пори уже ..


> несколько мелких пакетов могут объединяться в один и, наоборот,
> один большой может разбиваться на несколько мелких


"пакет" "пакету" - рознь


> не проблема если используються ServerSocket-ClientSocket


если ведешь речь о поточном протоколе - так и говори .. а не начинай тут с абстрактных никчемных "прелюдий" ... ибо - словоблудие


> если это UDP-бродкаст?


UDP не является поточно-ориентированным протоколом, и к сабжу он не имеет отношения


> Как, только-что зашедшему в сеть клиенту, разобраться в
> этой каше?


никакой каши нет и быть не может
ибо каждое событие приема отражает факт приема одного конкретного UDP-сообщения


 
Knight ©   (2004-11-23 19:03) [2]


> [1] Digitman ©   (23.11.04 16:44)
> где это "везде" ?
> чушь не пори уже ..

фи какие мы грубые... %(
Как везде читаю... так и пишу, чтобы разобраться... может действительно, что-то не так понял... :)


> UDP не является поточно-ориентированным протоколом, и к
> сабжу он не имеет отношения

Вот как-раз он и имеет к сабжу основное отношение, т.к. с поточно-ориентированными проблем нет и во всех примерах и статьях основной упор делается именно на них... а вот бродкаст, как-то, остаётся за бортом.


 
Verg ©   (2004-11-23 20:47) [3]


> фи какие мы грубые... %(
> Как везде читаю... так и пишу, чтобы разобраться... может
> действительно, что-то не так понял... :)


Да уж здесь, в "сетях", все как в Армии. :)))

А по теме... А ты о чем вообще?


> ServerSocket-ClientSocket


Открой справку, почитай, что

TServerSocket listens for requests for TCP/IP connections from other machines, and establishes connections when requests are received.
TClientSocket specifies a desired connection to a TCP/IP server, manages the connection when it is open, and terminates the connection when the application is through.

Бродкасты бывают только не в TCP.


> а вот бродкаст, как-то, остаётся за бортом.


Да, бродкастом до конца даже Windows не научалась пользоваться. Все дело в спорности самой концепции. Бродкаст - это вред для сети. Конкретный вред. Бродкаст отмниамет ресурсы у всех участников сети. Без исключения, 99% участникам этой сети ничего не давая. Это как создать TIME_CRITICAL поток и решать в нем квадратные уравнения или играть в "крестики нолики"....


 
Knight ©   (2004-11-23 21:38) [4]


> [3] Verg ©   (23.11.04 20:47)
> Открой справку, почитай, что
>
> TServerSocket listens for requests for TCP/IP connections

Это не интересует...


> Да, бродкастом до конца даже Windows не научалась пользоваться.
> Все дело в спорности самой концепции. Бродкаст - это вред
> для сети. Конкретный вред. Бродкаст отмниамет ресурсы у

А вот бродкаст интересует... если из всей сети пакет идет 1-му проценту, то понятное дело вред... а если пакет предназначен для 99-ти, а то и 100-та процентам? имхо... проще послать всем и сразу, чем индивидуально каждому... к тому же верную инфу получит только первый, а все последующие будут получать всё более и более устаревшую...


 
Piter ©   (2004-11-23 23:26) [5]

Digitman ©   (23.11.04 16:44) [1]
где это "везде" ?
чушь не пори уже ..


действительно, это часто говорят, имея в виду фрагментацию TCP пакетов.

Ты какой-то злой. Тебе бы отдохнуть что ли? Я сейчас оффтоплю, но хочу сказать, что отлично к тебе отношусь и уважаю. Но на самом деле - неприятно, Knight задал относительно нормальный вопрос, а ты так наехал - как будто про иконку в трее спросили...


 
Verg ©   (2004-11-24 07:46) [6]


> [4] Knight ©   (23.11.04 21:38)


Тогда конкретизируй свой вопрос.


> к тому же верную инфу получит только первый, а все последующие
> будут получать всё более и более устаревшую...


Если вообще получит. Никто ж не гарантировал.


 
Verg ©   (2004-11-24 08:21) [7]


> [5] Piter ©   (23.11.04 23:26)


> действительно, это часто говорят, имея в виду фрагментацию
> TCP пакетов.


Когда говорят "фрагментация", имеется ввиду IP.
У TCP нет пакетов, есть сегменты - это порции потока, которые инкапсулируются в IP. Дробя поток на сегменты любая уважающая себя реализация TCP не допускает того, чтобы размер результирующей IP датаграммы вместе с канальным уровнем превышал MTU.
Фрагментация же IP датаграмм (неважно что они в себе несут, хоть UDP, хоть TCP, хоть ICMP, да хоть что) может происходить на "изломах" MTU. На маршрутизаторах соединяющих сети с разной физикой, с разным MTU.

С другой стороны, никто не мешает мне отправить UDP датаграмму размером больше MTU. Вот тут и будет происходить IP-фрагментация (разборка). Реально в сеть полетят несколько IP датаграмм.
Способ же разборки/сборки описан в стандарте на IP.
Сборка фрагментов производится сетевым ядром и на "выходе", т.е.  приложение (в сокет)  получает уже полностью восстановленную (собранную) датаграмму соответсвующего протокола. Либо, не получает вовсе, если например один из фрагментов потерялся.


 
Knight ©   (2004-11-24 10:04) [8]


> Verg ©   (24.11.04 08:21) [7]

Честно говоря, я всегда думал, что кто разобрал тот должен и собрать... т.е. данные должны передаваться тому, кто должен получить, в том же виде как было отправлено... т.е. если поломал, сделай, как було...

А потом столкнулся с сетью и начал читать... и оказалось, что всё не так. Что приложение само должно, сперва отправить размер данных, и собирать до тех пор пока объём полученных пакетов не будет раверен этому размеру... Возник следующий вопрос: а есди размер последнего пакета будет снова небольшой, то может к нему приклеиться следующая команда? И если может, то как программе, которая была загружена во время отправки данных, разобраться что где?
---
ЗЫ:


 
Verg ©   (2004-11-24 10:07) [9]


> [8] Knight ©   (24.11.04 10:04)


Ты сначала определись - о каком протоколе идет речь. О TCP или о UDP ?


 
Knight ©   (2004-11-24 10:11) [10]

ЗЫ: Многие знания преумножают скорби...


 
Knight ©   (2004-11-24 10:54) [11]


> Verg ©   (24.11.04 10:07) [9]
> Ты сначала определись - о каком протоколе идет речь. О TCP
> или о UDP ?

Лишь бы широковещательно... а так UDP :)


 
Verg ©   (2004-11-24 11:23) [12]

Широковещательно - только UDP

Для UDP так:
отправил датаграмму -  может быть получил датаграмму. Если получил, то получил точно такую же, какую отправил. Никакие датаграммы не разбиваются, никакие не склеиваются. Фрагментация, о которой шла речь существует на уровне IP и для программиста сокетов является скрытым механизмом.
Последовательность доставки датаграмм, да и сама доставка не гарантирована.

Широковещательные датаграммы маршрутизаторами не передаются вовсе. Т.е. могут передаваться только в пределах одного сегмента сети.


 
Knight ©   (2004-11-24 12:39) [13]

> Verg ©   (24.11.04 11:23) [12]
> Широковещательно - только UDP
Ну это, прозвучало ещё в вопросе... в качестве UDP-бродкаста... :)

> Для UDP так:
> отправил датаграмму -  может быть получил датаграмму.
Выведется следующая.

> Если получил, то получил точно такую же, какую отправил. Никакие
> датаграммы не разбиваются, никакие не склеиваются. Фрагментация,
Ну вот и всё... что м требовалось узнать.

> Широковещательные датаграммы маршрутизаторами не передаются
> вовсе. Т.е. могут передаваться только в пределах одного
> сегмента сети.
А мне больше и не надо... %)

Спасибо. Вопрос закрыт :)


 
Digitman ©   (2004-11-24 12:41) [14]


> Knight ©   (24.11.04 10:54) [11]
> Лишь бы широковещательно... а так UDP :)


приношу извинения за резкость в реакции на вопрос.

но в станд.справке по winsock-транспорту с использованием, например, таких message-oriented-протоколов как UDP, нет ни слова ни о каких-то там "разбиениях/склеиваниях" чего-то там.

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


 
Knight ©   (2004-11-24 15:47) [15]

> Digitman ©   (24.11.04 12:41) [14]
> приношу извинения за резкость в реакции на вопрос.
Извинения приняты... %)

> но в станд.справке по winsock-транспорту с использованием,
> например, таких message-oriented-протоколов как UDP, нет
> ни слова ни о каких-то там "разбиениях/склеиваниях" чего-то
> там.
> отсюда и реакция на высказывание человека, не сподобившегося
> даже стандартную справку почитать перед тем как задать вопрос,

Просто статьи и примеры с толку сбили... везде фрагментация-фрагментация... вот и решил уточнить... Точно так же когда-то искал, как чат написать, что не статья, что не пример, везде Клиент-Сервер, а о том запузырить этот сервер в одноранговой сети в которой любой работает по схеме "вошёл-вышел" ни слова... так и плюнул на это дело, потому как... забадали на... :)


 
Digitman ©   (2004-11-24 16:30) [16]


> забадали на


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


> статьи и примеры с толку сбили


начинать нужно со станд.справки.
когда что-то там неясно (согласен - не такой уж редкий случай) - бегом сюда с КОНКРЕТНЫМ вопросом, что сие в борландовской (или майкрософтовской) интерпретации для простого смертного программера означает ..

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


 
Piter ©   (2004-11-24 19:33) [17]

Verg ©   (24.11.04 11:23) [12]
Если получил, то получил точно такую же, какую отправил


а в UDP есть контроль целостности пакета? То есть, может UDP датаграмма дойти, но искаженной?


 
Verg ©   (2004-11-24 20:34) [18]


> То есть, может UDP датаграмма дойти, но искаженной?


Нет, не может.
Если, правда, отправляющая сторона не заплнила полое контрольной суммы в UDP датаграммы нулем. В этом случае премник не будет ее проверять, и соответственно уровень приложений может получить искаженную датаграмму.


 
Verg ©   (2004-11-24 20:35) [19]


> а в UDP есть контроль целостности пакета?


Есть - контрольная сумма пакета UDP.


 
Knight ©   (2004-11-24 23:34) [20]


> [16] Digitman ©   (24.11.04 16:30)
> не лучший аргумент в пользу темы вопроса.

"Забадали на"... относится к чату... Давно было... и не очень нужно... так, для общего развития смотрел. Щас столкнулся с програмингом под сеть более плотно... вот и рою по нескольким направлениям сразу, а т.к., везде где поднимается тема фрагментации, не встретил оговорки, что другим протоколам она не имеет отношения (кроме справки), решил уточнить.

ЗЫ: Приношу извинения за не очень корректный вопрос... задавал в конце рабочего дня, поэтому доводить было некогда... как сформулировалось, так и выдал в прямой эфир %)

Ешё раз всем спасибо за пояснения... дальше сам :)



Страницы: 1 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.029 c
14-1106121963
syte_ser78
2005-01-19 11:06
2005.02.06
Пример с книги Delphi 3 не работает на Delphi 6


1-1106209922
Atomic
2005-01-20 11:32
2005.02.06
Оформлеие папки


1-1106657995
markers
2005-01-25 15:59
2005.02.06
Иконка в StatusBar`e


1-1106311935
Yr2
2005-01-21 15:52
2005.02.06
Протокол работы PC с мобильным телефоном


1-1106341506
mikel
2005-01-22 00:05
2005.02.06
TPanel