В моем понимании, если 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
) инкапсулируются несколько раз, чтобы соответствовать нижним уровням.
Я прочитал некоторые вики и определения, но это немного сложно для всех деталей, но здесь я просто хочу узнать впечатление или первоначальное намерение.