Правильна ли следующая аналогия для описания отношений между TCP и HTTP?

1

TCP как шланг и HTTP как вода, протекающая через него

Я только что прочитал и пытаюсь осмыслить разницу между TCP и HTTP. Я украл аналогию отсюда http://wiki.answers.com/Q/What_is_the_difference_between_tcp_and_http

Erik
источник
1
Нет, это означает, что HTTP является полезной нагрузкой (или содержимым данных), когда это другой (более высокий уровень) протокол. И вода - плохая аналогия, так как данные упакованы (и часто буферизуются во время передачи), а не в виде непрерывного потока.
опилки
Хорошо спасибо. Можете ли вы дать мне лучший способ описать это?
Эрик
Это как разница между операционной системой и приложениями?
Эрик

Ответы:

1

Нет, это не особенно хорошая метафора, но она вроде работает (если вы немного щуритесь ... и поворачиваете голову .... и игнорируете несколько проблем ...)

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

Я думаю, что вам стоит взглянуть немного о модели OSI. http://en.wikipedia.org/wiki/OSI_model

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

Если бы я был вынужден использовать аналогию, я бы сказал, что это так. Гипотетическое здание, где никто не может покинуть свою комнату, еще нужно поговорить друг с другом. Существует протокол, который может общаться между людьми (например, писать заметки). Если я хочу отправить его в соседнюю комнату, мне может понадобиться положить его в конверт и отправить в соответствии с правилами почтовой рассылки офиса (т. Е. Адрес Этаж - номер комнаты). Если бы я хотел отправить его в другое здание, мне нужно было бы отправить его через курьера по городу (т.е. иметь адрес здания).

Внезапно, если я захочу поговорить с кем-то в другой части города, мне нужно будет написать записку (протокол 1), положить ее в конверт на мой первый этаж, где курьер заберет ее (протокол 2) и получить курьер доставит его через весь город к определенному зданию (протокол 3). На другом конце человеку на первом этаже потребуется распаковать коробку курьера и вынуть конверт (обратно к протоколу 2), доставить его на нужный этаж и номер комнаты, который откроет конверт и заберет записку (обратно к протоколу). 1).

Этот «восходящий и нисходящий уровни» - это то, что происходит в модели OSI.

Пелей
источник
ура за то, что заставил себя использовать аналогию
Эрик
1

Эта аналогия показывает зависимую связь, но подразумевает, что HTTP является полезной нагрузкой (или содержимым данных), тогда как на самом деле это другой протокол (более высокого уровня).
А вода - плохой выбор для среды, поскольку данные не передаются в виде непрерывного потока битов. Данные Ethernet упакованы (и часто буферизируются во время передачи и приема).

Протоколы больше похожи на отправку почты или посылок.
Рассмотрим многоуровневую схему для бумажной почты:

1. intra-office mail,
2. corporate mail, and 
3. a courier service.

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

Ваша местная почтовая служба признает, что это не для местного партнера, поэтому ваш документ обрабатывается как корпоративная почта.
Поэтому, чтобы отправить его в другой офис, ваш документ (в межведомственном конверте) помещается в конверт курьерской службы (например, FedEX) и отправляется.

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

Ваш документ похож на HTML (или другие данные), используемые HTTP.
HTTP подобен межфирменному конверту, к которому вы (пользователь) относитесь.
Почтовый парень и почтовое отделение похожи на ваш веб-браузер, который оборачивает низкоуровневые протоколы, такие как TCP / IP, поверх высокоуровневого протокола, такого как HTTP.
Конверт курьерской службы похож на TCP / IP.
Курьерская служба похожа на транспортную службу Ethernet, которая фактически перемещает товары.

опилки
источник
0

TCP как телефонный разговор, я тебе звоню, ты отвечаешь и здороваешься. (SYN)

После обмена приветствиями мы начинаем говорить. Когда я рассказываю длинную историю, вы время от времени отвечаете «вау» или «ок!» или "это отстой!" (АСК)

Разговор продолжается, пока я не скажу: «Ну, мне нужно идти». ПЛАВНИК

Что касается сравнения между TCP и HTTP, то в приведенной выше аналогии TCP - это этикет разговора, тогда как HTTP - это тип телефона, с которым вы разговариваете. Вы можете использовать сотовый телефон (HTTP) или стационарный телефон (например, FTP). Метод разговора тот же, но другой способ доступа к протоколу.

Я уверен, что кто-то может улучшить это. Это моя попытка!

Остин
источник
Более того, HTTP - это протокол, который обсуждается по телефону (стационарный, мобильный телефон, Skype, что угодно). Очень похоже на людей, согласных говорить по-английски или по-испански. У него есть свой способ взаимодействия (попросить что-то, получить это, попросить следующее, отправить некоторые данные, ...).
vonbrand