Я знаю, что TCP и UDP созданы поверх IP, и я знаю различия между TCP и UDP, но я не совсем понимаю, что такое «сырой ip». Было бы справедливо сказать, что TCP и UDP реализуют IP, но сам по себе IP не способен передавать данные? Или IP является какой-то формой связи очень низкого уровня, которая далее абстрагируется TCP и UDP?
18
Ответы:
IP является протоколом уровня 3 . TCP / UDP являются протоколами уровня 4 . Каждый из них служит разным целям.
Уровень 3 отвечает за сквозную доставку . Его единственной функцией является добавление к пакету всего, что необходимо для передачи пакета с одного хоста на другой.
Уровень 4 отвечает за доставку между сервисами . Его единственная функция - разделять потоки данных. На вашем компьютере может быть запущено несколько программ, каждая из которых отправляет / получает биты на провод. IE: у вас может быть несколько запущенных вкладок браузера, потоковое интернет-радио, загрузка, запуск некоторых законных торрентов, использование приложения чата и т. Д. Все они получают 1 и 0 по проводам, а уровень 4 разделяет каждый поток данных на уникальное приложение, которое нуждается в них. Вот иллюстрация:
IP не может доставить пакет в нужную службу / приложение. И TCP / UDP не может доставить пакет с одного конца интернета на другой.
И TCP, и IP работают вместе, что позволяет им достичь «конечной цели» интернет-коммуникации.
Данные, которые необходимо получить с одного хоста на другой, генерируются верхними уровнями модели OSI.
Эти данные передаются в L4, который добавляет информацию, необходимую для доставки данных из сервиса в сервис, например, заголовок TCP с портом источника и назначения. Данные и заголовок L4 теперь называются сегментом.
Затем Сегмент будет передан в L3, который будет добавлять информацию, необходимую для доставки сегмента от конца к концу, как IP-заголовок с IP-адресом источника и получателя. Заголовок L3 и сегмент теперь могут называться пакетом.
Этот процесс известен как инкапсуляция и де-инкапсуляция (или иногда декапсуляция). Вот анимация того, как это работает:
Если это не имеет смысла, я предлагаю прочитать больше о модели OSI и о том, как каждый уровень имеет разные обязанности, которые все работают вместе, чтобы выполнить перемещение пакета через Интернет .
источник
inside an IP header is usually a TCP or UDP header
неверно, заголовок TCP / UDP находится не внутри заголовка IP, а внутри части данных пакета IP.IP может передавать данные очень хорошо, проблема в том, что происходит, когда эти данные попадают на другой конец. Единственная идентификационная информация - это IP-адреса хостов и номер протокола. Ни один из этих способов не позволяет определить, для какого сокета используются данные.
Программы могут использовать IP напрямую через так называемые «необработанные сокеты», но отсутствие надлежащего механизма для принятия решения, в какой сокет отправлять данные, вызывает проблемы с безопасностью и производительностью (ядро должно отправлять данные во все необработанные сокеты для данного номера протокола). По этой причине возможность открывать «сырые сокеты» обычно ограничена root (или эквивалентной платформой).
UDP является довольно минимальным уровнем над IP. Он добавляет номера портов, чтобы определить, для какого сокета используются данные, и контрольную сумму (для отклонения поврежденных пакетов). Приложение остается ответственным за работу с потерянными пакетами, управление перегрузкой и разбиение данных на пакеты соответствующего размера.
TCP является более сложным протоколом, который помимо предоставления номеров портов и контрольных сумм разделяет байтовые потоки на пакеты, затем собирает их по месту назначения и обеспечивает функции контроля перегрузки и восстановления.
источник
IP - это протокол уровня 3 OSI, а TCP и UDP - протоколы уровня 4 OSI. Как протокол уровня 3, IP может нести много различных протоколов уровня 4. TCP и UDP, вероятно, являются наиболее распространенными, но они не единственные. Протоколы уровня 4 - это то, что приложения используют в качестве сквозных соединений. Протокол IP передает протоколы уровня 4 из сети в сеть (хост-хост). Протоколы уровня 2, такие как Ethernet, протоколы транспортного уровня 3 в локальной сети.
Вы должны исследовать модель OSI, но понимать, что это концептуальная модель, и реальный мир часто не совсем совпадает.
источник