Я знаю, что этот вопрос звучит глупо, но все эти годы мне все еще трудно объяснить людям TCP / IP. Я сам не совсем понимаю, и даже после прочтения различия не очень ясны. Что я до сих пор понимаю, так это то, что IP имеет дело с сетями, тогда как TCP включает доставку сообщений по этой сети. Хотя я не совсем уверен. Кроме того, они находятся на разных уровнях архитектуры Интернета. Может ли кто-нибудь устранить неоднозначность этого различия, используя простую аналогию или примеры? Кроме того, я где-то это читал
Разница в том, что TCP отвечает за доставку пакета данных, а IP отвечает за логическую адресацию. Другими словами, IP получает адрес, а TCP гарантирует доставку данных на этот адрес.
Это верно? Спасибо, что помогли мне. И последнее. Откуда у всего этого Ethernet?
Рассмотрим аналогию. У вас шпионская сеть. Все шпионы общаются со штабом (вами) с помощью почтовых голубей. Они отправляют вам сообщения, а вы отправляете сообщения обратно.
Проблема: иногда сообщения не приходят или приходят не по порядку. Птицы задерживаются, перестают есть, иногда кошке достается.
Это IP. Он отправляет пакеты и надеется, что они туда попадут.
Это, конечно, неудовлетворительно. Таким образом, вы договариваетесь со своими шпионами о добавлении дополнительной информации в каждое сообщение: время, когда они его отправили, время, когда они отправили предыдущее сообщение, порядковый номер. Кроме того, если получатель не подтвердит сообщение в течение определенного времени, он должен отправить его повторно. Теперь вы можете сказать, что-то отсутствует или вышло из строя.
Это TCP. Он использует ненадежный протокол (IP) для создания надежного соединения.
Аналогии подобны вакууму, они отстой.
В Модель OSI был изобретен для описания различных ролей, которые выполняет каждый уровень сетевых стеков. Каждый слой довольно мал и относительно прост для понимания. IP не соответствует модели в точности, но все же в некоторой степени близок.
Ethernet - начиная с нижнего уровня, Ethernet - это проводной протокол, который позволяет использовать компьютеры; обычно он затрагивает детали физического соединения и того, как компьютер фактически передает данные по проводам, подключенным к задней части вашего компьютера.
IP Поскольку Ethernet уже позаботился о физических деталях, следующая логическая вещь, которую необходимо решить, - это наиболее общие логические детали. IP в основном берет на себя логическую адресацию и концепции внутри сети (совокупность компьютеров «в вашей сети»). Следовательно, компьютер, не входящий в вашу сеть, автоматически оказывается в какой-то другой сети, и существуют правила того, как IP передает трафик из вашей сети в другую.
TCP и UDP это всего лишь два самых популярных протокола на этом уровне, есть много других, и люди, как правило, менее знакомы с ними. TCP - это самый низкий уровень, отслеживающий соединения; например, когда вы подключаетесь к веб-серверу для запроса веб-страницы. UDP - аналогичный протокол, но явно не отслеживает соединения. Это делает UDP «легче» и проще, если вам просто нужно отправить одно сообщение, это имеет больше смысла, аналогично, если вам нужно минимизировать отправку данных (например, онлайн-видеоигры).
HTTP, DNS и т. Д. Фактические протоколы приложений построены на предыдущих уровнях. Как вы, наверное, знаете, их буквально миллионы. Они определяют структуры данных, которые пересылаются по сети, и позволяют различным программам «говорить на одном языке».
SSL и IPSec Есть и другие протоколы, которые фактически находятся между другими уровнями. SSL находится между TCP и HTTP, например, для создания HTTPS; то же общение, но с шифрованием (обычно). IPSec - это другой протокол безопасности, который находится между IP и TCP, он работает несколько иначе, чем SSL, но в целом обеспечивает некоторые из тех же средств защиты.
Чтобы сделать его максимально простым, IP-протокол отвечает на вопрос «как отправить сообщение с компьютера A на компьютер B»? Это более или менее та же задача, что и автомобильная навигационная система.
TCP, с другой стороны, отвечает на вопрос «как мне отправить сообщение из приложения X на компьютере A в приложение Y на компьютере B, чтобы я мог быть уверен, что мое сообщение получено правильно?»
IP похож на службу доставки почты. Допустим, вы хотите отправить другу по почте 2 больших подарка: подарки слишком велики, чтобы поместиться в одну посылку, поэтому ваше почтовое отделение просит вас приготовить 2 разных коробки, по одной для каждого подарка. Затем они отправляют каждую коробку отдельно: они будут пытаться найти путь к дому вашего друга, но вы не можете знать, какая коробка прибудет первой, и иногда какая-то коробка теряется.
TCP, напротив, похож на телефонную связь: как только вы установили связь между вами и вашим получателем, ваши слова доставляются другому человеку в том же порядке, в котором вы их произнесли. Если вы говорите быстро, ваш друг попросит вас повторить последнее предложение, но медленнее. TCP делает все это для ваших байтовых потоков.
TCP разбивает ваши сообщения на мелкие части и просит IP доставить их в нужное место назначения: как только они прибудут, TCP гарантирует, что каждая часть находится в правильном положении, чтобы сформировать исходное сообщение