Краткое описание разницы между TCP и IP

310
Lance Pollard

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

На этой простой диаграмме, как я понимаю, TCP построен поверх IP.

enter image description here

Во-первых, я не знаю, что это значит, и хотел бы понять, что это значит.

Интернет-протокол отвечает за адресацию хостов, инкапсуляцию данных в дейтаграммы (включая фрагментацию и повторную сборку) и маршрутизацию дейтаграмм от исходного хоста к хосту назначения через одну или несколько IP-сетей .... [T] Интернет-протокол определяет формат пакеты и обеспечивает адресацию системы.

А также:

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

Таким образом, TCP является «сервисом потоковой доставки», а IP доставляет дейтаграммы от источника к месту назначения. Звучит так же. Затем я вижу, что TCP добавляет некоторые дополнительные функции:

TCP обеспечивает надежную, упорядоченную и проверенную на доставку ошибку потока октетов (байтов) между приложениями, работающими на хостах, обменивающихся данными через IP-сеть.

Итак, из того, что я могу собрать, IP определяет формат данных, которые передаются, а также систему адресации. Я знаю об IP-адресах, но не совсем понимаю, как работает система IP-адресации.

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

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

-4
[Протокол управления передачей - Википедия] (https://en.wikipedia.org/wiki/Transmission_Control_Protocol) должен ответить на ваши вопросы. DavidPostill 5 лет назад 0
Сначала вы должны прочитать [Модель OSI - Википедия] (https://en.wikipedia.org/wiki/OSI_model). И обратите внимание, что IP и TCP находятся на разных уровнях. DavidPostill 5 лет назад 0
TCP является более высоким уровнем, чем IP, и использует функциональность IP для реализации своих собственных функций. Каждый слой строится на том, что под ним. DavidPostill 5 лет назад 1
(1) Вы, кажется, смотрите на часть ответа и не видите его. «TCP - это *** надежная *** потоковая служба доставки, которая *** гарантирует ***, что…» Думайте об IP как о океане и запасе бутылок, в которые вы можете наполнять сообщения. После того, как вы выбросили сообщение в бутылку в океан, вы не знаете, что с ним происходит. TCP добавляет набор процедур для подтверждения сообщений и повторной отправки сообщений, которые не были подтверждены и т. Д. (Продолжение) Scott 5 лет назад 0
(Продолжение)… (2) Одно из отличий, которое я считаю важным, заключается в том, что IP обеспечивает связь между ** хостами ** (по их IP-адресам), тогда как TCP (и UDP) допускают связь между *** процессами *** ( используя IP-адреса *** и номера портов ***). Scott 5 лет назад 0

1 ответ на вопрос

2
grawity

Это не подкласс, а композиция. TCP не дублирует ни одну из функций IP, он использует функции, предоставляемые IP. В остальном они полностью независимы друг от друга.

Например, в TCP нет таких вещей, как адреса узлов, сети и маршрутизация. Он только разделяет поток данных на сегменты фиксированного размера, а затем вызывает IP для выполнения задачи фактической доставки этих сегментов (которые вставлены в полезную нагрузку IP-пакета, отсюда и диаграмма).

(Аналогичным образом HTTP строится на основе функции «надежного потока», предоставляемой TCP - но это, очевидно, не означает, что HTTP подклассы TCP, это просто означает, что он вызывает TCP для доставки данных. Не могли бы вы запустить HTTP поверх какой-нибудь другой "надежный поток" транспорта? Вы наверняка могли бы.)

Ах, я вижу, поэтому он проверяет заголовки, а затем имеет данные, которые он передает на подуровень IP, который затем повторяется и делает свое дело. Имеет смысл. Lance Pollard 5 лет назад 0
Нет, в буквальном смысле это "стопка подпрограмм". У вас может быть IP без TCP, но если у вас есть TCP, он построен поверх IP. Mike Robinson 5 лет назад 0