Могу ли я использовать широковещательную или многоадресную рассылку для TCP?

19

Для протокола Интернета (IP) Я могу использовать многоадресную рассылку :

Кроме того, в примере для UDP я могу использовать:

  • broadcast - отправка пакета в диапазон адресов
  • multicast - отправить пакет в список указанных адресов

Но могу ли я использовать что-то из них для TCP?

    
задан Alex 21.01.2014 в 19:14
источник

2 ответа

45

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

    
ответ дан Steffen Ullrich 21.01.2014 в 20:17
источник
  • Спасибо! И о том, что я написал о проблеме UDP, я прав? –  Alex 21.01.2014 в 20:58
  • да, UDP может использоваться для многоадресной рассылки и широковещательной передачи –  Steffen Ullrich 21.01.2014 в 23:02
  • +1, потому что ответ определенно правильный, но я уверен в рассуждении, многоадресная / широковещательная передача не получает ответа / ответа назад, и здесь ответ / ответ - это сообщение, они только отправляют какое-то сообщение, не ожидают никакого сообщения назад, он не имеет ничего общего с доставкой IP-пакетов? –  hagrawal 29.10.2016 в 23:16
  • @hagrawal: перед доставкой пакетов по TCP-соединению у вас есть трехстороннее рукопожатие между клиентом и сервером. Кроме того, TCP предназначен для обеспечения надежности, поэтому у вас есть ACK, чтобы подтвердить, что пакет был получен. Таким образом, на самом деле есть много сообщений, как для настройки соединения, так и для отправки пакетов. Хотя вы могли бы разработать протокол, который не нуждается в каких-либо сообщениях, это не будет TCP. –  Steffen Ullrich 30.10.2016 в 06:05
  • @hagrawal Было бы возможно расширить TCP для обеспечения многоточечной связи. По существу, рукопожатие и учетные данные должны быть расширены, чтобы быть способными обрабатывать несколько точек. Но это не будет TCP больше, это будет протокол, похожий на tcp (... и torrent). Никто этого не делал до сих пор, но это было бы возможно. –  peterh 12.01.2018 в 10:03
1

Я обычно не публикую здесь, но мне просто нужно было добавить немного разъяснений к рассуждениям здесь. Ответ Штеффена верен. Нет, ты не можешь! идеально. позвольте мне ответить остальным, чтобы сказать, что UDP является правильным протоколом для отправки сообщений многоадресной передачи и широковещательной передачи. Я кричу имя Штеффена в переполненной комнате, я хочу, чтобы все ответили? Ни за что! Если TCP был использован, все подтвердят мой пакет!

Итак, пункт два для обсуждения - это надежность. Это мешает ответ. UDP является удивительным. Когда люди говорят, что UDP ненадежен, это не значит, что это плохо. все они означают, что пакет для многоадресной передачи UDP не должен слышать ответ, чтобы подтвердить доставку. UDP также отлично подходит для голосовой связи, поскольку, когда я говорю, эти пакеты становятся быстрее, потому что слушатель не должен говорить «да», я получил этот пакет для каждого слова, которое я говорю.

Наконец, это приводит нас к надежности UDP. После того, как я проясню это, вернитесь назад и снова прочитайте абзац выше этого. UDP не надежен. Это основное различие между TCP и UDP. Итак, вот Сделка, есть UDP и R-UDP. R-UDP - это другой RFC (см. Ссылку внизу), затем UDP. Очевидно, что RFC является IETF. Могут быть и другие. Они указывают, что исходный ответ был прав, но представил информацию о UDP (RFC 2460), которая была неправильной. По академическим причинам, а также просто общие semse

Читайте о R-UDP здесь У RUDP нет надлежащего RDF. некоторые RFC используются в его концептуализации, но, по-видимому, он используется Microsoft, который отправил IETF, какой-то документ, чтобы начать процесс RFC. эта ссылка ниже:

Ссылка

Кроме того, MS опубликовала некоторую информацию ниже, наряду с вики-версией RUDP:

Ссылка

Ну, по-видимому, моя репутация должна быть 10, чтобы разместить больше двух ссылок - так что википедия в другой ссылке ищет R-UDP или RUDP

    
ответ дан user8524012 27.08.2017 в 18:16
источник
  • «Нет, ты не можешь» был правильным ответом. Остальное очень спорно имхо. Если вы будете кричать Steffen в переполненной комнате ... вы хотите, чтобы все ответили (возможно, нет), хотите ли вы, чтобы все были услышаны? возможно, нет. На вопрос по-другому вы хотите быть уверенным, что Стеффен услышал вас? (возможно, да) широковещательная / многоадресная рассылка не может использовать TCP, но они могут использовать UDP, и по умолчанию это ненадежно. Итог, все зависит от вашего приложения. Иногда это достаточно хорошо, и в некоторых других случаях надежная широковещательная / многоадресная передача является обязательной. –  Gilles Gouaillardet 27.08.2017 в 19:02