В чем разница между использованием ProtocolType.IP и ProtocolType.Tcp - PullRequest
1 голос
/ 17 марта 2010

Я только что ответил проблема с сокетами в c # , где в моем примере кода я инициализировал свой сокет, используя ProtocolType.IP, поскольку это то, что я всегда использовал в своем собственном коде, и никогдавызвал у меня проблемы.Но я вижу много примеров, указывающих ProtocolType.Tcp.

Полагаю, я спрашиваю, что при использовании ProtocolType.IP вместо ProtocolType.Tcp что-то выполняется по-другому под капотом, о чем я должен знать?

Ответы [ 2 ]

1 голос
/ 17 марта 2010

Я бы предположил, что ProtocolType.IP открывает сокет " raw IP ", другими словами, он просто выбрасывает необработанные байты в сеть в виде IP-пакетов, а не проходит через уровни протокола TCP или UDP.

В отличие от TCP, вы не получите гарантированную доставку пакетов, пакеты могут поступать не по порядку и / или пакеты могут дублироваться. TCP обрабатывает все это как часть своего протокола.

Почти во всех целях я ожидаю, что вы должны использовать ProtocolType.Tcp или ProtocolType.Udp, если только вы не делаете какие-то низкоуровневые сетевые вещи, пишущие свой собственный транспортный протокол.

0 голосов
/ 17 марта 2010

проверьте эту ссылку: http://www.allinterview.com/showanswers/1447.html

TCP / IP - это набор протоколов, то есть это комбинация протоколов, связанных с TCP и IP.TCP является протоколом транспортного уровня, тогда как IP является протоколом сетевого уровня.TCP - это протокол, ориентированный на подключение, а IP - это протокол без установления соединения

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...