1

В моем понимании, если A хочет общаться с B, они могут просто выбрать какой-то протокол и начать общаться.

Например, они выбирают HTTP для коротких ссылок, затем B просто ожидает запросы A, а затем отвечает на A, вот и все.

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

Но зачем нам нужен дополнительный термин, такой как туннель, и почему мы его так называем?

Если две точки устанавливают соединение, то это называется соединением по какому-либо протоколу, почему существует нечто вроде HTTP-туннеля или XXX-туннеля?

Также я читал об OSI который содержит 7 слоев.

Так что я могу сказать это:

Когда мы просматриваем сайты, большинство запросов и ответов основаны на HTTP , верно?

Но HTTP - это верхний уровень, который требует network layer/IP а также transport layer/TCP , и мои HTTP packages будут инкапсулированы и отправлены на IP layer который затем инкапсулирует их в IP packages и то же самое в TCP packages и все вплоть до physical layer .

Могу ли я сказать, что этот процесс похож на туннелирование? Поскольку исходные пакеты (пакеты HTTP packages) инкапсулируются несколько раз, чтобы соответствовать нижним уровням.

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

2 ответа2

0

Быстрый ответ: tunnel - это способ инкапсулировать один сетевой протокол в другой. VPN является распространенным примером туннеля: VPN-клиент подключается к серверу по протоколу VPN, затем другие сетевые протоколы отправляют свои пакеты в VPN, которая передает эти пакеты с использованием протокола VPN на другую сторону VPN, которая затем повторно передает пакеты по их первоначальному протоколу.

0

Когда мы просматриваем сайты, большинство запросов и ответов основаны на HTTP, верно?

Да.

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

Вообще-то да.

Часто существует SSL/TLS, многоуровневый между HTTP и TCP; Я предполагаю, что TLS будет в некоторой степени соответствовать слою "сессии".

Могу ли я сказать, что этот процесс похож на туннелирование? Поскольку исходные пакеты (пакеты HTTP) инкапсулируются несколько раз, чтобы соответствовать нижним уровням.

Возможно, но не совсем. В большинстве случаев термин «туннелирование» используется при инкапсуляции протоколов нижнего уровня в протоколы того же или более высокого уровня (т. Е. Способом, который полностью не соответствует моделям). Акт инкапсуляции остается одинаковым в обоих случаях, но термин указывает на то, что регулярная иерархия не соблюдается.

Например, туннелирование HTTP через (/ внутри) SSH; туннелирование IPv6 через IPv4; туннелирование L3 IP или даже L2 Ethernet через VPN на основе UDP/ IP; даже туннелирование IP по HTTP - единственное ограничение - ваше воображение ... и MTU.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .