Краткое изложение основ TCP/IP

задняя часть внешний интерфейс

Я скомпилировал свои предыдущие статьи на Github, приветствую всех в звездахGitHub.com/Next Day Picks/Не голоден…Отправила эту статью

tcpipbasic001

Чтобы сказать, что мы больше всего контактируем с компьютерным сетевым протоколом, он должен быть неотделим от протокола TCP/IP.Протокол TCP/IP также является самым известным протоколом в Интернете.Давайте поговорим о протоколе TCP/IP. вместе.

Историческая справка о TCP/IP

Когда не существовало протокола TCP/IP, то есть в 1960-х годах, многие страны и регионы признали важность коммуникационных технологий. Министерство обороны США хочет иметь возможность работать над технологией, которая позволит осуществлять связь по другим маршрутам, даже если линии связи будут нарушены. Для того чтобы реализовать эту технику,分组Интернет.

tcpipbasic002

Даже если несколько узлов будут разрушены в процессе связи между двумя узлами, связь между двумя узлами все же может быть обеспечена заменой линии или т.п.

Эта пакетная сеть облегчаетARPANET(Advanced Research Projects Agency Network)рождение. ARPANET — первая глобальная сеть с коммутацией пакетов с распределенным управлением и самая ранняя реализация предшественника протокола TCP/IP.

Фактически ARPANET была создана Агентством перспективных исследовательских проектов Министерства обороны США.

Итак, компьютерная сеть появилась в первую очередь для военно-исследовательских целей.

В 1990-х годах IOS провела процесс международной стандартизации OSI, но не добилась существенного прогресса, но обеспечила широкое распространение протокола TCP/IP.

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

Здесь давайте сначала разберемся с протоколом TCP/IP.Протокол TCP/IP состоит не только из двух протоколов, TCP и IP.На самом деле TCP/IP относится к кластеру протоколов.Что такое кластер протоколов? Проще говоря, это синтез серии протоколов.Если вы спросите вас в следующий раз, что такое протоколы TCP/IP, вы можете бросить ему следующую картинку

tcpipbasic003

Краткое изложение вышеперечисленных протоколов представляет собой набор протоколов TCP/IP.

Стандарт TCP/IP

По сравнению с другими стандартами протоколов TCP/IP уделяет больше внимания двум моментам:开放性и实用性, то есть, можно ли на самом деле использовать стандартизацию.

Открытость означает, что TCP/IP создаетсяIETFдискуссий, а сама IETF — это организация, которая позволяет любому участвовать в дискуссиях.

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

Стандартный протокол TCP/IP — это то, что мы знаемRFC 文档, конечно, вы можете увидеть это в Интернете. RFC не только регулирует стандарт протокола, но также содержит информацию о реализации и использовании протокола.

Дополнительные протоколы RFC можно найти в официальной документации.Woohoo. RFC-editor.org/RFC-index. Также…

Мы не будем здесь вдаваться в подробности, и основное внимание в этой статье будет уделено изучению TCP/IP.

Набор протоколов TCP/IP

Начнем с набора протоколов TCP/IP.

Протокол TCP/IP является протоколом, с которым больше всего контактируют наши программисты Модель OSI имеет в общей сложности семь уровней, снизу вверх, физический уровень, уровень канала передачи данных, сетевой уровень, транспортный уровень, сеансовый уровень, уровень представления и прикладной уровень. Но это, очевидно, немного сложно, поэтому в протоколе TCP/IP они упрощены до четырех уровней.

tcpipbasic004

Давайте начнем с уровня канала связи и представим эти уровни и протоколы между ними.

уровень канала связи

Если его необходимо разделить, уровень канала связи также можно разделить на物理层и数据链路层.

физический слой

Физический уровень — это нижний уровень TCP/IP. Это аппаратное обеспечение, отвечающее за передачу, которое эквивалентно оборудованию физического уровня, такому как Ethernet или телефонные линии.

канальный уровень

Другой уровень - это канальный уровень. Канальный уровень расположен между физическим уровнем и сетевым уровнем. Канальный уровень определяет, как данные передаются по одному каналу.

Сетевой уровень

Сетевой уровень в основном используетIPПротокол IP пересылает пакетированные данные на основе IP-адресов.

tcpipbasic005

Основная функция протокола IP заключается в отправке пакетов данных целевому хосту.

Функции интернет-уровня и транспортного уровня на уровне TCP/IP обычно обеспечиваются операционной системой.

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

Хотя IP также является протоколом с коммутацией пакетов, в нем нет механизма повторной передачи. Даже если данные не дойдут до другого конца, они не будут переданы повторно, поэтому IP — ненадежный протокол.

Другой протокол на сетевом уровнеICMP, потому что IP может быть аномальным в процессе отправки пакетов данных.Когда пакеты IP-данных не могут достичь адреса назначения из-за аномалии, отправителю необходимо отправить аномальное уведомление.В этом заключается основная функция ICMP. В этой ситуации ICMP также можно использовать для диагностики состояния сети.

транспортный уровень

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

Транспортный слой похож на шоссе, дорогу, соединяющую два города. Ниже логический канал Интернета, вы можете представить его как шоссе.

tcpipbasic006

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

Протоколы транспортного уровня в основном делятся на протокол с установлением соединения TCP и протокол без установления соединения UDP.

TCP

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

UDP

UDP — ненадежный протокол, он не может гарантировать надежную доставку данных, по сравнению с TCP, UDP не проверяет, пришел ли пакет данных, не заблокирована ли сеть и т. д., но UDP более эффективен.

UDP часто используется в видеокоммуникациях и мультимедийных областях, таких как широковещательная и многоадресная рассылка с меньшим количеством пакетных данных.

прикладной уровень

В наборе протоколов TCP/IP сеансовый уровень и уровень представления в стандартной модели OSI классифицируются как прикладной уровень. Архитектура прикладного уровня в основном относится к модели клиент/сервер: программа, предоставляющая услугу, называется сервером, а программа, получающая услугу, называется сервером. В этой архитектуре сервер обычно развертывается на сервере заранее, ожидая подключения клиента для предоставления услуг.

tcpipbasic007

Процесс отправки пакета данных

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

структура пакета

Давайте сначала разберемся со структурой пакета данных.Здесь cxuan просто даст вам краткое введение, а следующие статьи представят его более подробно.

tcpipbasic008

В каждом из вышеперечисленных слоев отправляемые данные увеличиваются на единицу.首部, этот заголовок содержит необходимую информацию для этого слоя. Каждый уровень обрабатывает данные и прикрепляет к пакету необходимую информацию для этого уровня. Поговорим о процессе отправки пакетов данных.

Процесс отправки пакетов

Предположим, что узел А взаимодействует с узлом Б, а узел А хочет послать пакет узлу Б. Какие странные операции он будет выполнять?

Обработка прикладного уровня

Хост A означает, что пользователь нажимает на приложение или открывает окно чата, чтобы войтиcxuan, а затем нажмите «Отправить», затем cxuan перемещается по сети в виде пакета данных, и уровень приложения все еще должен обработать пакет данных, включая кодировку символов, форматирование и т. д., на самом деле этот уровень — это работа, выполняемая уровнем представления. в OSI, но классифицируется как прикладной уровень в протоколе TCP/IP.

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

Обработка на транспортном уровне

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

TCP добавит поле заголовка TCP к внешнему интерфейсу уровня данных приложения, а заголовок TCP содержит源端口号и目的端口号, эти два номера порта используются для указания, откуда отправляется пакет данных и в какое приложение его нужно отправить; заголовок TCP также содержит序号, чтобы указать, что данные в пакете являются порядковым номером количества байтов во всех данных отправителя; заголовок TCP также содержит校验和, используется для определения того, повреждены ли данные, а затем добавляет заголовок TCP к заголовку пакета данных и отправляет его в IP.

Обработка на сетевом уровне

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

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

Если вы не знаете IP-адрес целевого хоста, вы можете использоватьARP(Address Resolution Protocol)Протокол разрешения адресов для поиска.

Обработка на уровне канала связи

Для пакетов данных, отправляемых через IP, Ethernet присоединяет к данным заголовки Ethernet и отправляет их на обработку. Заголовок Ethernet содержит MAC-адрес получателя, MAC-адрес отправителя и протокол данных Ethernet, определяющий тип Ethernet.

Ниже приведен полный процесс обработки и синтаксического анализа.

tcpipbasic009

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

Процесс получения пакета данных является процессом, обратным процессу отправки, и анализ пакета данных также будет выполнять следующие шаги.

Анализ коммуникационных связей

После того, как целевой хост получит пакет данных, он сначала найдет MAC-адрес из заголовка Ethernet, чтобы определить, отправлен ли пакет данных самому себе, и если он не отправлен самому себе, пакет данных будет отброшен.

Если полученный пакет данных отправлен самому себе, он будет искать тип Ethernet, чтобы определить, какой это протокол.Если это протокол IP, он будет передан протоколу IP для обработки.ARPПротокол будет передан протоколу ARP для обработки. Если тип протокола является неопознанным протоколом, пакет просто отбрасывается.

Анализ сетевого уровня

Пакеты данных, обработанные Ethernet, передаются на сетевой уровень для обработки.Мы предполагаем, что тип протокола — протокол IP.Затем, после того, как IP получит пакеты данных, он проанализирует заголовок IP, чтобы определить, соответствует ли IP-адрес в заголовке IP. такой же, как его собственный IP.Адреса совпадают, если они совпадают, получают данные и определяют, является ли протокол верхнего уровня TCP или UDP; если они не совпадают, они будут отброшены напрямую.

Примечание: в процессе маршрутизации и переадресации иногда IP-адрес не является вашим собственным.В это время вам необходимо использовать таблицу маршрутизации, чтобы помочь в обработке.

Обработка на транспортном уровне

На транспортном уровне мы используем протокол TCP по умолчанию, в процессе обработки TCP мы сначала рассчитаем校验和, чтобы определить, повреждены ли данные. Затем проверьте, получены ли данные в соответствии с порядковым номером, и, наконец, проверьте номер порта, чтобы определить, какое это приложение.

После того, как данные полностью идентифицированы, они передаются в приложение, идентифицированное по номеру порта, для обработки.

Обработка приложений

Приложение, указанное получателем, обработает данные, переданные отправителем, идентифицирует содержимое данных посредством декодирования и других операций, а затем сохранит соответствующие данные на диске и вернет отправителю сообщение об успешном сохранении. сохранение не удается, затем верните сообщение об ошибке.

Выше приведен полный процесс отправки и получения пакетов данных В приведенном выше процессе отправки и получения данных участвуют адреса, номера портов, типы протоколов и т. д. между различными уровнями, поэтому давайте проанализируем его сейчас.

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

tcpipbasic010

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

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

Суммировать

В этой статье cxuan все еще болтает с вами о некоторых базовых знаниях.Эти базовые знания заранее подготовлены для следующих статей.В следующей статье мы поговорим о соответствующих знаниях уровня канала передачи данных, так что следите за обновлениями.

Здравствуйте, я cxuan, техник. Всего я написал шесть PDF-файлов

«Краткое описание технологии Java Core» «Сводка ядра HTTP» «Базовые знания, которые должен знать программист» «Сводка ядра операционной системы» «Ядро ядра 2.0» Резюме вопросов для собеседования по Java

Теперь я предоставил вам ссылку на Baidu, вы можете щелкнуть ссылку ниже, чтобы получить ее.

Ссылка на сайт:disk.baidu.com/is/1my AES9Hi…Пароль: p9rs