Правда ли, что TCP - это сокращение от TCP / IP, и они означают одно и то же?
Возможно ли, чтобы TCP был построен поверх другого протокола, кроме IP ?
Правда ли, что TCP - это сокращение от TCP / IP, и они означают одно и то же?
Возможно ли, чтобы TCP был построен поверх другого протокола, кроме IP ?
Ответы:
TCP и IP (v4 и v6) однозначно разделяются, и одно не подразумевает другое, что доказано на примере TCP через IPX ( RFC 1791 ).
Однако TCP не может быть построен только на любом сетевом протоколе. Две причины:
Спецификация TCP, RFC 793 , не является хорошим источником для решения этого вопроса, поскольку допускает, что оставляет интерфейс с нижним уровнем в значительной степени неопределенным.
Примечание а) Для TCP для повторной сборки дейтаграмм, напечатанных на маленьких листах бумаги (независимо от того, переносятся ли они голубями или более интеллектуальной сетью), размер полезной нагрузки должен быть записан в стандартном месте. В качестве альтернативы, уровень адаптации может эвристически определять размер сегмента. Оптический сканер, использованный при реализации стека хостов спецификаций птичьих носителей ( RFC 1149 ), включал такой эвристический адаптационный слой, но он остается недокументированным.
Я не прочитал весь RFC, но язык в разделе 1.4, кажется, предлагает использовать любой протокол «более низкого уровня».
Интерфейс между TCP и протоколом более низкого уровня по существу не определен, за исключением того, что предполагается, что существует механизм, посредством которого два уровня могут асинхронно передавать информацию друг другу. Как правило, ожидается, что протокол нижнего уровня определит этот интерфейс. TCP предназначен для работы в очень общей среде взаимосвязанных сетей. Протокол нижнего уровня, который предполагается в этом документе, - это Интернет-протокол.
TCP не является коротким для TCP / IP.
TCP / IP часто используется в качестве краткого обозначения « Пакет интернет-протоколов » и обычно включает в себя другие стандартные протоколы. Когда люди говорят TCP / IP, они обычно включают UDP поверх IP (в котором вместо TCP используется UDP) и многие другие протоколы, такие как ARP, ICMP, DNS, SNMP и другие протоколы прикладного уровня.
Приложения используют протоколы уровня приложений, такие как SMTP (для электронной почты). Они находятся на одном из двух протоколов транспортного уровня - TCP и UDP. Несколько протоколов прикладного уровня будут использовать либо UDP, либо TCP или оба, но большинство используется только с одним протоколом транспортного уровня.
TCP и UDP - это два протокола транспортного уровня, используемые в Internet Protocol Suite. Если есть другие, которых я не знаю, и любые другие представляли бы собой исчезающе маленького специалиста. Были определены другие протоколы транспортного уровня - их использование, вероятно, представляет лишь небольшую долю глобального IP-трафика †
Хотя теоретически можно использовать TCP поверх чего-то другого, чем IP, на практике TCP всегда используется поверх IP - интернет-протокола. IP перемещает пакеты между сетями (представьте, что IP объединяет несколько локальных сетей)
Ethernet - это просто самое популярное семейство низкоуровневых протоколов канального уровня, по которым передается TCP / IP, но TCP / IP также широко используется через ATM и другие.
Единственными протоколами транспортного уровня, которые широко используются в сетях, использующих Internet Protocol Suite, являются TCP и UDP.
† Ради интереса я измерил трафик в моей (очень) маленькой локальной сети, которая включает NetBIOS (через TCP), SSH, Rsync, электронную почту, обновления программного обеспечения, DNS, общие сообщения Windows-box и некоторые другие типы трафика.
Обратите внимание также на это заявление в FAQ по Google для их протокола QUIC
Почему вы не создали полностью новый протокол, а не использовали UDP? Средние блоки в Интернете сегодня обычно блокируют трафик, если это не TCP или UDP-трафик
(мой акцент)
Причина, по которой TCP / IP является такой распространенной аббревиатурой (в отличие от, скажем, UDP / IP или SCTP / IP), заключается в том, что оба протокола были спроектированы вместе, и в оригинальной статье Винта Серфа и Боба Кан эти две концепции были объединены в единый протокол. Вскоре после этого они были разделены на IP для обеспечения маршрутизации и TCP для обеспечения управления потоком, мультиплексирования, обнаружения ошибок и т. Д. Только спустя шесть лет был введен UDP для обеспечения «легкого» уровня мультиплексирования без остальной части накладные расходы, связанные с TCP.
Тем не менее, TCP и IP - это две разные вещи, полностью и намеренно независимые. Тот факт, что TCP не требует IP, сразу становится очевидным из-за того, что TCP может работать без изменений как на IPv4, так и на IPv6, которые являются двумя совершенно разными протоколами.
Немного поработав, вы могли бы создать конкурирующий протокол для IP, который бы служил тем же целям, но он, вероятно, должен был бы содержать большинство, если не все одинаковые функции, и, вероятно, в конечном итоге выглядел бы во многом как IP. Вы можете утверждать, что расширения IP (такие как IPSec) - это, по сути, альтернативные протоколы уровня 3.
Вы можете заменить IP чем-то другим. Фактически, это именно то, что вы делаете, когда используете TCP через IPv6. TCP все еще TCP, но IP v6 вместо v4.
AFAIK, никто не создавал никаких других протоколов уровня 3 для работы с TCP над ними, но нет никаких причин, по которым вы не могли.
TCP и IP подобны маслу над хлебом.
Вы можете соединить что - нибудь еще , что работает с любым протоколом, но эти два настолько дополняют друг друга , это просто вкуснятина надежный способ для передачи данных и заполнить животик с интернет - данными. Это смазывает трубку, чтобы позволить другим сухим продуктам и рукопожатию данных поддерживать это соединение. Но это никоим образом не является эксклюзивным.
В. Однако нельзя ли построить TCP поверх другого протокола, помимо IP?
Да , это возможно. Мне нравятся азбуки Морзе и Pigeon без TCP.
Я всегда слышал, что TCP это сокращение от TCP / IP
На самом деле это означает протокол управления передачей по интернет-протоколу
и они имеют в виду одно и то же.
Это не правильно.
Во-первых, Ethernet - это низкоуровневая аппаратная система, которая контролирует работу реальных аппаратных компонентов.
Далее, думайте об IP как о телефонной системе или дорожных знаках. Он обеспечивает базовый контроль над соединением системы двумя точками.
TCP, с другой стороны, больше похож на систему обмена сообщениями или управления трафиком, которая направляет сообщения / автомобили в нужную точку.
В совокупности TCP / IP обеспечивает систему надежной передачи данных между любыми двумя подключенными устройствами.
В Интернете, когда вы хотите отправлять или получать данные, IP-часть системы - это та часть, которая управляет установлением реальных аппаратных соединений с помощью проводов (или беспроводных волн). Часть системы TCP - это программное обеспечение, которое отвечает за сбор и разбивку данных, их отправку, повторную сборку полученных данных, проверку и повторную отправку данных, если это необходимо.
Существует множество объяснений с аналогиями и техническими подробностями, особенно в виде видео . У DifferenceBetween.net есть особенно хороший об этом точном предмете .
Однако не возможно ли, чтобы TCP был построен поверх другого протокола, кроме IP?
Да, вы действительно можете создать альтернативную систему TCP, которая использует IP. Посмотрите на Internet Protocol Suite для некоторых деталей.
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?
Псуси пытается быть умным, используя "!" как "не оператор". Его комментарий следует читать следующим образом: «тот факт, что что-то, что не является TCP, может передаваться по IP, не обязательно означает, что TCP может переходить по чему-то, что не является IP». Это сделано со ссылкой на последнее предложение вашего ответа, в котором показано существование «Альтернативных систем TCP». Однако показ того, что альтернативы TCP существуют, не обязательно подразумевает и не указывает на существование альтернатив IP.
TCP является протоколом уровня 4. Он обеспечивает гарантированную передачу данных в виде упорядоченного потока от одного процесса на компьютере к другому процессу на том же / другом компьютере.
IP является протоколом уровня 3. Он обеспечивает перевозку от одного хозяина к другому.
Пока существует протокол, который может передавать данные между хостами, TCP будет работать.
Итак, TCP может быть реализован по любому протоколу, но мы сделали только IP. IP прост и делает свою работу.
Нет необходимости в другом протоколе уровня 3.
Когда вы проектируете сеть, вы должны выбрать набор протоколов (которые в основном представляют собой наборы правил связи между машинами) для каждого из различных «уровней» (которые вы можете представить как различные уровни абстракции, которые сетевые дизайнеры любят имейте ввиду при создании и объединении протоколов).
Более простая версия: протоколы похожи на коробки, в которые мы помещаем наши сообщения . Эти блоки имеют разные размеры, и вы помещаете ваше сообщение в наименьший блок, затем наименьший блок в блоке, который немного больше, и т. Д. Выбор набора протоколов - это выбор типа блоков, которые вы будете использовать, для каждого " слой ", который окружает ваше сообщение.
TCP и IP - это протоколы для двух независимых уровней, которые были созданы вместе и могут использоваться вместе; но может очень хорошо использоваться с другими протоколами. Это происходит довольно часто: вы можете использовать IP вместе с протоколом не-TCP или TCP вместе с протоколом не-IP .
Причина, по которой протокол TCP / IP является таким распространенным сокращением, заключается в том, что эти два протокола вместе составили основу Интернета и стали ключом к его успеху .
(У TCP и IP есть некоторые функции, которые были разработаны специально для их совместной работы, на что часто жалуются пуристы, но они не мешают вам взаимодействовать с другими протоколами)
Я думаю, что можно запустить TCP через транспорт IPX, если вы хотите пойти ретро.
Однако не возможно ли, чтобы TCP был построен поверх другого протокола, кроме IP?
Помимо классических TCP / IPv4 и TCP / IPv6 было разработано несколько экспериментальных протоколов, например:
В рамках наших усилий Net100 и Probe по улучшению массовых передач по высокоскоростным сетям с высокой задержкой мы разработали инструментальную и настраиваемую версию TCP, которая работает по протоколу UDP. TCP-подобный UDP-транспорт служит средством для тестирования экспериментов с TCP-подобными элементами управления на уровне приложений, аналогичном TReno.
И iproxy: запуск служб TCP через UDP , что более интересно:
iproxy включает в себя прокси на стороне клиента и прокси на стороне сервера, который позволяет произвольным службам TCP / IP работать по широковещательному, многоадресному или одноадресному UDP. Первоначально он был задуман как способ настройки серверов, которым не был присвоен IP-адрес в локальной сети, с использованием веб-интерфейса.
Итак, вы видите: TCP для одноадресного UDP и даже TCP для широковещательного или многоадресного UDP !
AFAIK только TCP / IPv4 и TCP / IPv6 пользуются большим развертыванием.
Ответ - нет! Например, есть старый RFC, описывающий TCP через IPX: http://tools.ietf.org/html/rfc1791
Для тех, у кого короткая память, IPX был протоколом Novell Netware: http://en.wikipedia.org/wiki/Internetwork_Packet_Exchange
Реализации TCP поверх различных протоколов, которые поддерживают передачу базовой дейтаграммы, уже существуют. На самом деле нет необходимости даже указывать информацию о маршрутизации (TCP даже не нужен IP-адрес для работы, достаточно было бы просто установить последовательную связь с неявным получателем).
Таким образом, вы реализовали TCP поверх UDP (преимущество: вы используете один порт на стороне «сервера» или можете встроить его через существующее соединение, передающее различные мультиплексированные каналы). Только IP-уровень обеспечивает маршрутизацию, но TCP не нуждается в этом. Все, что имеет значение, так это то, что концепция MTU предоставляется нижним уровнем.
Это позволяет протоколу обойти ограничения обхода NAT, не требуя регистрации порта трансляции UPnP для конкретного хоста. Это позволяет выполнять независимую настройку MTU и MSS, оптимизированную для каждого клиента, а не для каждого промежуточного общего маршрутизатора. Возможны другие протоколы маршрутизации (в том числе для доставки через многоадресные и широковещательные сети). И у вас есть выбор механизмов безопасности.
Примером использования является Gogo6.net (который реализует свой транспортный канал IPv6 через сеанс TCP с использованием переопределения TCP через UDP v4) (он работает на большинстве домашних маршрутизаторов доступа, которые все еще имеют только адрес IPv4, и не всегда поддерживает метод UPnP без необходимости настраивать его пользователями, использующими постоянный номер порта, специфичный для приложения, даже если он не запущен)
Другими примерами является инкапсуляция TCP через HTTP (или HTTPS) версии 1.1 с собственным расширением «потоковой передачи». Большинство VPN, которые позволяют соединять сети через Интернет, будут делать то же самое. Мост может даже инкапсулировать несколько протоколов: Ethernet, PPP, IPv4 и IPv6 (только расширение локальной сети или сегмента Ethernet), NetBEUI / LanMan, обнаружение маршрутизатора (в мостовой сети), в том числе в необработанном режиме (с использованием DHCPv4 или DHCPv6) в мостовая сеть. HTTPS используется потому, что инкапсуляция по HTTPS позволяет также шифровать и аутентифицировать для установления и обеспечения безопасности моста, но не требует сквозной аутентификации / шифрования для клиентов и серверов по мостовой сети, а также потому, что маршрутизаторы высоко оптимизированы для HTTP и HTTPS.
Есть примеры систем связи в армии, использующих TCP, но не IP, так как путь связи - это соединение последовательного типа, которое не маршрутизируется через маршрутизаторы и т. Д. Если вы посмотрите на пакет TCP до того, как он будет заполнен полями IP, он Кажется, легко можно не использовать IP, если ваш протокол «маршрутизации» отличается.