TCP как шланг и HTTP как вода, протекающая через него
Я только что прочитал и пытаюсь осмыслить разницу между TCP и HTTP. Я украл аналогию отсюда http://wiki.answers.com/Q/What_is_the_difference_between_tcp_and_http
networking
http
tcp
Erik
источник
источник
Ответы:
Нет, это не особенно хорошая метафора, но она вроде работает (если вы немного щуритесь ... и поворачиваете голову .... и игнорируете несколько проблем ...)
HTTP - это протокол, но TCP также является другим протоколом. Протоколы - это просто правила общения друг с другом. В этом смысле несправедливо называть одного «шлангом», а другого «водой», подразумевая, что у них две разные работы.
Я думаю, что вам стоит взглянуть немного о модели OSI. http://en.wikipedia.org/wiki/OSI_model
По сути, HTTP - это набор правил между приложениями для общения друг с другом. Он определяет правила взаимодействия веб-браузеров с серверами и т. Д. TCP - это набор правил для сквозной передачи и управления. Он управляет связью между конечными точками и надежностью. Но есть и другие протоколы, такие как то, что происходит на физическом уровне, сетевом уровне и т. Д.
Если бы я был вынужден использовать аналогию, я бы сказал, что это так. Гипотетическое здание, где никто не может покинуть свою комнату, еще нужно поговорить друг с другом. Существует протокол, который может общаться между людьми (например, писать заметки). Если я хочу отправить его в соседнюю комнату, мне может понадобиться положить его в конверт и отправить в соответствии с правилами почтовой рассылки офиса (т. Е. Адрес Этаж - номер комнаты). Если бы я хотел отправить его в другое здание, мне нужно было бы отправить его через курьера по городу (т.е. иметь адрес здания).
Внезапно, если я захочу поговорить с кем-то в другой части города, мне нужно будет написать записку (протокол 1), положить ее в конверт на мой первый этаж, где курьер заберет ее (протокол 2) и получить курьер доставит его через весь город к определенному зданию (протокол 3). На другом конце человеку на первом этаже потребуется распаковать коробку курьера и вынуть конверт (обратно к протоколу 2), доставить его на нужный этаж и номер комнаты, который откроет конверт и заберет записку (обратно к протоколу). 1).
Этот «восходящий и нисходящий уровни» - это то, что происходит в модели OSI.
источник
Эта аналогия показывает зависимую связь, но подразумевает, что HTTP является полезной нагрузкой (или содержимым данных), тогда как на самом деле это другой протокол (более высокого уровня).
А вода - плохой выбор для среды, поскольку данные не передаются в виде непрерывного потока битов. Данные Ethernet упакованы (и часто буферизируются во время передачи и приема).
Протоколы больше похожи на отправку почты или посылок.
Рассмотрим многоуровневую схему для бумажной почты:
Вы хотите отправить связанный документ другому сотруднику в другом офисе в другом городе.
Таким образом, вы кладете документ в межведомственный конверт, и почтальон забирает его.
Ваша местная почтовая служба признает, что это не для местного партнера, поэтому ваш документ обрабатывается как корпоративная почта.
Поэтому, чтобы отправить его в другой офис, ваш документ (в межведомственном конверте) помещается в конверт курьерской службы (например, FedEX) и отправляется.
По прибытии в другой офис конверт с курьерской службой распаковывается.
Затем межведомственный конверт доставляется адресату, и он разворачивает этот конверт, чтобы прочитать документ.
Ваш документ похож на HTML (или другие данные), используемые HTTP.
HTTP подобен межфирменному конверту, к которому вы (пользователь) относитесь.
Почтовый парень и почтовое отделение похожи на ваш веб-браузер, который оборачивает низкоуровневые протоколы, такие как TCP / IP, поверх высокоуровневого протокола, такого как HTTP.
Конверт курьерской службы похож на TCP / IP.
Курьерская служба похожа на транспортную службу Ethernet, которая фактически перемещает товары.
источник
TCP как телефонный разговор, я тебе звоню, ты отвечаешь и здороваешься. (SYN)
После обмена приветствиями мы начинаем говорить. Когда я рассказываю длинную историю, вы время от времени отвечаете «вау» или «ок!» или "это отстой!" (АСК)
Разговор продолжается, пока я не скажу: «Ну, мне нужно идти». ПЛАВНИК
Что касается сравнения между TCP и HTTP, то в приведенной выше аналогии TCP - это этикет разговора, тогда как HTTP - это тип телефона, с которым вы разговариваете. Вы можете использовать сотовый телефон (HTTP) или стационарный телефон (например, FTP). Метод разговора тот же, но другой способ доступа к протоколу.
Я уверен, что кто-то может улучшить это. Это моя попытка!
источник