Протоколы tcp и udp: в чем разница
Содержание:
Общие термины и понятия
Отдельно стоит поговорить о понятиях, которые в той или иной мере связаны с TCP/IP. Для начала разберемся в понятии стека. По сути – это гибкое средство для организации сетевого взаимодействия, с помощью которого каждый пользователь может применить собственные настройки.
Для использования протоколов потребуется установка TCP/IP. Это – специальное программное обеспечение, необходимое для настройки сети. Оно устанавливается вместе с базовой операционной системой, то есть дополнительных программ не потребуется.
Настройка протоколов подразумевает процесс установки базовой ОС и не требует от пользователя дополнительных действий.
Еще один термин, который вы можете встретить при изучении темы – это карта сетевых адаптеров. Она представляет собой физическое устройство, которое подключается к сетевому кабелю.
Отдельно стоит рассказать про сетевые интерфейсы стека. TCP/IP на уровне сетевого интерфейса создает пакеты из IP-дейтаграмм, которые передаются при помощи сетевых технологий. В этой модели протоколов применяется схема IP-адресации, при помощи которой удается однозначно идентифицировать хосты и сети, с которыми компьютер устанавливает соединение.
Еще один термин, который нельзя не упомянуть, это демоны TCP/IP (то есть серверы). Они представляют собой процессы, работающие в фоновом режиме и выполняющие запросы других процессов.
Порт[править]
Сетевой порт — это сетевой ресурс, отображаемый в виде числа (1-65535), которое определяет назначение входящих или исходящих сетевых потоков данных на заданном устройстве.
Если прибегнуть к аналогии, IP адрес — это адрес общежития с вахтёром, а порт — номер комнаты в этом общежитии или фамилия ее жильца.
Согласно IP, в каждом пакете присутствуют IP-адрес узла-источника и IP-адрес узла-назначения. В TCP-пакетах дополнительно указываются порт источника и порт назначения.
Например, почтовое письмо (пакет данных) имеет информацию об отправителе (порт) и информацию о получателе (фамилия или номер комнаты по конкретному адресу).
Узел назначения («вахтер»), получив пакет («письмо»), смотрит на порт назначения («фамилию или номер комнаты») и передает пакет соответствующему у себя приложению («конкретному жильцу»).
Использование портов позволяет независимо использовать TCP протокол («почтовые услуги») сразу многим приложениям на одном и том же компьютере (общежитии).
Клиентом называют приложение, которое пользуется каким-то сервисом, предоставляемым другим приложением — Сервером, обычно на удаленном компьютере. Практически всегда клиент начинает исходящие соединения, а сервер ожидает входящих соединений (от клиентов), хотя бывают и исключения.
Сервер при запуске сообщает Операционной Системе, что хотел бы «занять» определенный порт (или несколько портов). После этого все пакеты, приходящие на компьютер к этому порту, ОС будет передавать этому серверу. Говорят, что сервер «слушает» этот порт.
Клиент, начиная соединение, запрашивает у своей ОС какой-нибудь незанятый порт во временное пользование, и указывает его в посланных пакетах как порт источника. Затем на этот порт он получит ответные пакеты от сервера.
Таким образом, сервер:
- слушает на определённом порту, заранее известном клиенту
- занимает этот порт всё время, пока не завершит работу
- об IP-адресе и номере порта клиента узнаёт из приглашения, посланного клиентом
Клиент:
- заранее знает IP-адрес и порт сервера
- выбирает у себя произвольный порт, который освобождает после окончания соединения
- посылает приглашение к соединению
Транспортный уровень
Транспортный уровень устанавливает основные каналы данных, которые приложения используют для обмена данными для конкретных задач. Уровень устанавливает связь между хостами в форме услуг сквозной передачи сообщений, которые не зависят от базовой сети и от структуры пользовательских данных и логистики обмена информацией. Возможности подключения на транспортном уровне можно разделить на две категории: ориентированные на установление соединения , реализованные в TCP, или не связанные с установлением соединения , реализованные в UDP. Протоколы в этом слое могут обеспечить контроль ошибок , сегментацию , управление потоком , управление перегрузкой и применение адресации ( номера портов ).
С целью предоставления специфичных для процесса каналов передачи для приложений уровень устанавливает понятие сетевого порта . Это пронумерованная логическая конструкция, выделенная специально для каждого из каналов связи, необходимых приложению. Для многих типов служб эти номера портов стандартизированы, так что клиентские компьютеры могут обращаться к конкретным службам серверного компьютера без участия службы обнаружения служб или служб каталогов .
Поскольку IP обеспечивает доставку только с максимальной эффективностью , некоторые протоколы транспортного уровня обеспечивают надежность.
TCP — это протокол с установлением соединения, который решает многочисленные проблемы надежности при обеспечении надежного потока байтов :
- данные поступают по порядку
- данные имеют минимальную ошибку (т.е. правильность)
- повторяющиеся данные отбрасываются
- потерянные или отброшенные пакеты повторно отправляются
- включает контроль заторов на дорогах
Новый протокол передачи управления потоком (SCTP) также является надежным транспортным механизмом, ориентированным на установление соединения. Он ориентирован на поток сообщений, а не на поток байтов, как TCP, и обеспечивает несколько потоков, мультиплексированных через одно соединение. Она также обеспечивает Многодомность поддержку, в котором соединительный конец может быть представлен несколькими IP — адресами (представляющих несколько физических интерфейсов), так что , если один выходит из строя, соединение не прерывается. Первоначально он был разработан для приложений телефонии (для передачи SS7 по IP).
Надежность также может быть достигнута за счет использования IP по надежному протоколу передачи данных, например, высокоуровневому управлению каналом передачи данных (HDLC).
User Datagram Protocol (UDP) является установление соединения дейтаграммы протокола. Как и IP, это ненадежный протокол, требующий максимальных усилий. Надежность достигается путем обнаружения ошибок с использованием алгоритма контрольной суммы. UDP обычно используется для таких приложений, как потоковая передача мультимедиа (аудио, видео, передача голоса по IP и т. Д.), Где своевременность прибытия более важна, чем надежность, или для простых приложений запросов / ответов, таких как поиск DNS , где накладные расходы на настройку надежное соединение непропорционально велико. Транспортный протокол реального времени (RTP) — это протокол дейтаграмм, который используется поверх UDP и предназначен для данных в реальном времени, таких как потоковая передача мультимедиа .
Приложения на любом заданном сетевом адресе различаются по их TCP- или UDP-порту. По соглашению, некоторые хорошо известные порты связаны с конкретными приложениями.
Транспортный уровень модели TCP / IP или уровень хост-хост примерно соответствует четвертому уровню в модели OSI, также называемому транспортным уровнем.
Обзор OSI и TCP / IP
Сетевая архитектура OSI и TCP / IP — две известные эталонные модели сети. Модель OSI была разработана Международной организацией по стандартизации (ISO). В 1984 году она была принята в качестве эталонной модели. Модель OSI в основном определяет семиуровневый канал связи между системой. Эти уровни функционируют таким образом, чтобы предоставлять услуги более высокому уровню. Функции этих уровней кратко описаны ниже:
Физический уровень — его основная функция заключается в передаче битов данных на физическом носителе, таком как кабели, сетевые карты, концентраторы и т.д.
Уровень канала передачи данных DLL кодирует биты данных в пакеты перед их передачей. Данные декодируются обратно в биты на приемнике. Другие функции включают управление логическим соединением, обнаружение ошибок, надежную передачу данных и т.д.
Сетевой уровень — отвечает за маршрутизацию пакетов данных в двух разных сетях с использованием IP (Интернет-протокола). Уровень канала данных направляет данные только в локальную сеть.
Транспортный уровень — транспортный уровень обеспечивает надежную и прозрачную передачу данных между сквозными устройствами. Помимо сегментации данных, транспортный уровень определяет тип услуги, которая должна быть предоставлена вышележащим и нижним уровням.
Сеансовый уровень — он связан с такими аспектами управления соединением, как установление и завершение соединения, продолжительность сеанса, синхронизация данных между конечными устройствами с использованием контрольных точек.
Уровень представления — он форматирует данные таким образом, чтобы их могла использовать принимающая сторона. Другие функции, которые здесь работают, — это сжатие и шифрование данных и т.д.
Уровень приложения — он содержит различные службы связи, такие как передача файлов, SMTP, SSH, FTP и электронная почта. Он действует как интерфейс между пользовательскими приложениями, такими как браузеры, удаленный вход и т.д.
TCP / IP — это комбинация двух протоколов: протокола управления передачей и Интернет-протокола. Это основа современного Интернета. Целью TCP является обеспечение надежной передачи пакетов данных путем предоставления механизма контроля ошибок и проверки доставки пакетов данных в последовательности. TCP использует IP для разделения больших потоков данных на более мелкие пакеты и маршрутизации этих пакетов. Есть небольшие различия между уровнями модели OSI и модели TCP / IP. Например, уровни представления и сеанса объединены в его прикладной уровень в TCP / IP. Интернет-уровень соответствует сетевому уровню в модели OSI. Протокол IP является основной частью этого уровня. Кроме того, TCP / IP объединяет канал передачи данных OSI и физические уровни в один уровень, называемый уровнем доступа к сети.
IPv4[править]
IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Описан в IETF в статье RFC 791 (сентябрь 1981 года). Это один из самых используемых интернет протоколов. Был введен в использование в ARPANET в 1983 году.
Функция протокола — передавать дейтаграммы по множеству соединенных сетей.
Структура пакетаправить
Рассмотрим формат IPv4-дейтаграмм.
Дейтаграмма состоит из заголовка и основной части (данных). Биты передаются слева направо и сверху вниз (big-endian порядок). В настоящее время ясно, что лучше было бы использовать обратный (little-endian) порядок, но во время создания протокола это не было очевидно. Так на Intel x86 требуется программное преобразование, как при передаче, так и при приеме.
Рассмотрим структуру заголовка:
1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Версия | IHL | Дифференциальное обслуживание (Тип службы) | Полная длина | |||||||||||||||||||||||||||
Идентификатор | Флаги | Смещение фрагмента | ||||||||||||||||||||||||||||
Время жизни | Протокол | Контрольная сумма заголовка | ||||||||||||||||||||||||||||
IP-адрес источника | ||||||||||||||||||||||||||||||
IP-адрес назначения | ||||||||||||||||||||||||||||||
Опции | Остаток |
- Версия: 4 бита
- IHL: 4 бита
- Дифференциальное обслуживание (Тип службы): 8 битов
- Полная длина: 16 бит
- Идентификатор: 16 бит
- Флаги: 3 бита
- Бит 0: зарезервированное значение, должны быть равно 0.
- Бит 1 (DF): Не фрагментировать (англ. Don’t Fragment). 0 — можно фрагментировать, 1 — нельзя. Также может использоваться при определении путевого значения MTU, которое равно максимальному размеру пакета, передаваемого по пути без фрагментации. Пометив этот бит, отправитель гарантирует, что либо дейтаграмма дойдет единым блоком, либо отправитель получит сообщение об ошибке.
- Бит 2 (MF): Продолжение следует (англ. More Fragments). 0 — в последнем фрагменте, 1 — в предыдущих.
- Смещение фрагмента: 13 битов
- Время жизни: 8 битов
- Протокол: 8 битов
- Контрольная сумма заголовка: 16 бит
- IP-адрес источника: 32 бита.
- IP-адрес получателя: 32 бита.
- Опции: переменная длина
- В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле длины, а затем один или несколько информационных байтов. Размер этого поля должен быть кратен 4 байтам. Поле опции имеет следующий формат:
- 1 бит — флаг копирования. Показывает, если опция скопирована во все фрагменты.
- 2 бита — класс опции. Могут быть следующие классы: 0 — control, 2 — debugging и измерение, 1 и 3 — зарезервированы на будущее.
- 5 бит — номер опции.
- Приведем примеры опций:
- Безопастность — указывет уровень секретности дейтаграммы. Но на практике все его игнорируют.
- Строгая маршрутизация от источника — задает полный путь следования дейтаграммы.
- Свободная маршрутизация от источника — задает список маршрутизаторв, которыенельзя миновать.
- Запомнить маршрут — требует от всех маршрутизаторов добавлять свой IP-адрес.
- Временной штамп — требует от всех маршрутизаторв добавлять свой IP-адрес и текущее время.
- Обычно маршрутизаторы либо игнорируют опции, либо обрабатывают неэффективно, отодвигая в стороны как нечто необычное.
- В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле длины, а затем один или несколько информационных байтов. Размер этого поля должен быть кратен 4 байтам. Поле опции имеет следующий формат:
- Остаток (Padding): переменная длина
Subnetting
Сеть TCP/IP класса A, B или C может быть дополнительно разделена системным администратором или подсети. Это становится необходимым при согласовании логической адресной схемы Интернета (абстрактного мира IP-адресов и подсетей) с физическими сетями, которые используются в реальном мире.
Системный администратор, которому выделен блок IP-адресов, может управлять сетями, которые не организованы таким образом, чтобы легко вписываться в эти адреса. Например, у вас есть широкая сеть с 150 хостами в трех сетях (в разных городах), подключенных маршрутизатором TCP/IP. Каждая из этих трех сетей имеет 50 хостов. Вам выделена сеть класса C 192.168.123.0. (Для иллюстрации этот адрес на самом деле из диапазона, который не выделяется в Интернете.) Это означает, что для 150 хостов можно использовать адреса 192.168.123.1 по 192.168.123.254.
Два адреса, которые не могут использоваться в вашем примере, являются 192.168.123.0 и 192.168.123.255, так как двоичные адреса с хост-частью всех и все нули недействительны. Нулевой адрес недействителен, так как используется для указания сети без указания хоста. 255-й адрес (в двоичной нотации— хост-адрес всех) используется для передачи сообщения каждому хосту в сети. Просто помните, что первый и последний адрес в любой сети или подсети не может быть назначен любому отдельному хосту.
Теперь вы можете предоставить IP-адреса 254 хостов. Он отлично работает, если все 150 компьютеров находятся в одной сети. Однако 150 компьютеров находятся в трех отдельных физических сетях. Вместо того, чтобы запрашивать дополнительные блоки адресов для каждой сети, вы разделите сеть на подсети, которые позволяют использовать один блок адресов в нескольких физических сетях.
В этом случае вы разделите сеть на четыре подсети, используя подсетевую маску, которая делает сетевой адрес больше и возможный диапазон адресов хостов меньше. Другими словами, вы «заимствуете» некоторые биты, используемые для хост-адреса, и используете их для сетевой части адреса. Подсетевая маска 255.255.255.192 предоставляет четыре сети по 62 хостов каждая. Он работает, так как в двоичной нотации 255.255.255.192 то же самое, что и 11111111.1111111.110000000. Первые две цифры последнего октета становятся сетевыми адресами, поэтому вы получаете дополнительные сети 00000000 (0), 010000000 (64), 10000000 (128) и 110000000 (192). (Некоторые администраторы будут использовать только две подсети с использованием 255.255.255.192 в качестве маски подсети. Дополнительные сведения по этому вопросу см. в разделе RFC 1878.) В этих четырех сетях последние шесть двоичных цифр можно использовать для хост-адресов.
Используя подсетевую маску 255.255.255.192, сеть 192.168.123.0 становится четырьмя сетями 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь допустимые хост-адреса:
192.168.123.1-62 192.168.123.65-126 192.168.123.129-190 192.168.123.193-254
Помните, что двоичные хост-адреса со всеми или всеми нулями являются недействительными, поэтому нельзя использовать адреса с последним октетом 0, 63, 64, 127, 128, 191, 192 или 255.
Вы можете увидеть, как это работает, глядя на два хост-адреса, 192.168.123.71 и 192.168.123.133. Если используется маска подсети класса C по умолчанию 255.255.255.0, оба адреса находятся в сети 192.168.123.0. Однако, если вы используете подсетевую маску 255.255.255.192, они находятся в разных сетях; 192.168.123.71 на сети 192.168.123.64, 192.168.123.133 — на сети 192.168.123.128.
Что такое TCP?
TCP-протокол – это виртуальный канал, сформированный между двумя или более узлами. Его работоспособность становится возможной, если заранее установить соединение – в противном случае передача информационных пакетов будет невозможной. С помощью протокола TCP реализуется надежная передача большого объема данных к разнообразным пользовательским устройствам.
Чтобы обеспечить надежное соединение, протокол TCP предусматривает трехэтапный запуск сеанса связи. Клиент и сервер должны передавать значения ISN и порта. Еще одна отличительная особенность протокола TCP заключается в использовании контрольной суммы, с помощью которой система проверяет, правильно ли передана информация конечному пользователю.
Multiplexing
The technique to combine two or more data streams in one session is called Multiplexing. When a TCP client initializes a connection with Server, it always refers to a well-defined port number which indicates the application process. The client itself uses a randomly generated port number from private port number pools.
Using TCP Multiplexing, a client can communicate with a number of different application process in a single session. For example, a client requests a web page which in turn contains different types of data (HTTP, SMTP, FTP etc.) the TCP session timeout is increased and the session is kept open for longer time so that the three-way handshake overhead can be avoided.
This enables the client system to receive multiple connection over single virtual connection. These virtual connections are not good for Servers if the timeout is too long.
Взаимодействие на одном уровне и на смежных уровнях
На рисунке 1 также показана функция, называемая взаимодействием смежных уровней, которая относится к концепции совместной работы смежных уровней сетевой модели на одном компьютере. В этом примере протокол верхнего уровня (HTTP) требует восстановления после ошибок, поэтому он использует протокол уровнем ниже (TCP) для выполнения услуги восстановления после ошибок; нижний уровень предоставляет услугу более высокому уровню.
На рисунке 1 также показан пример аналогичной функции, называемой взаимодействием на одном уровне. Когда определенный уровень на одном компьютере хочет обмениваться данными с тем же уровнем на другом компьютере, два компьютера используют заголовки для хранения информации, которой они хотят обмениваться. Например, на рисунке 1 Гарри установил порядковым номерам значения 1, 2 и 3, чтобы Роб мог заметить, если какие-либо данные не дойдут. Процесс TCP на компьютере Гарри создал TCP-заголовок с порядковым номером; процесс TCP на компьютере Роба получил и обработал сегмент TCP.
В таблице 1 обобщены ключевые моменты того, как смежные уровни работают вместе на одном компьютере и как один уровень на одном компьютере работает с тем же сетевым уровнем на другом компьютере.
Концепция | Описание |
---|---|
Взаимодействие на одном уровне на разных компьютерах | Два компьютера используют протокол для взаимодействия с тем же уровнем на другом компьютере. Этот протокол определяет заголовок, который сообщает, что каждый компьютер хочет сделать. |
Взаимодействие смежных уровней на одном компьютере | На одном компьютере нижний уровень предоставляет услугу уровню, находящемуся непосредственно над ним. Программное или аппаратное обеспечение, реализующее более высокий уровень, требует, чтобы более низкий уровень выполнял необходимые функции. |
Заголовок TCP пакета
Заголовок TCP пакета состоит из следующих полей:
- Порт отправителя.
- Порт получателя.
- Порядковый номер в сегменте (sequence number). В целях безопасности это значение генерируется случайным образом и может быть равно от 0 до 4294967295;
- Номер подтверждения (acknowledgment number). Когда мы подтверждаем определённый пакет, в нем записывается sequence number подтверждаемого пакета.
- Длина заголовка (data offset). В этом поле указывается длина заголовка TCP пакета и где начинаются фактические данные.
- Зарезервированное поле. Эти биты зарезервированы для будущего использования.
- Флаги. Необходимы для дополнительной функциональности. Например, позволяют установить или разорвать соединение, включить или выключить защиту от перегрузки сети и тому подобное.
- Размер окна (Window Size). Указывается количество байт, считая от последнего номера подтверждения, которые готов принять отправитель данного пакета. То есть, какой у него в данный момент времени размер буфера.
- Контрольная сумма (Checksum). Используется для проверки на наличие ошибок при приеме или передачи пакетов. Рассчитывается с учетом заголовка (кроме контрольной суммы) и самих данных.
- Указатель срочности (Urgent pointer). Используется, если стоит флаг URG. По этому значению определяются срочные данные и они сразу же передаются приложению. Остальные данные попадают в буфер.
- Дополнительные опции. Необязательно, но используются почти всегда.
- Заполнение (Padding). Дополняет заголовок, пока он не закончится на 32-разрядной границе. Всегда состоит только из нулей.
Флаги в заголовке TCP
NS (Nonce Sum). Защита от случайного или злонамеренного изменения флагов. Используется для улучшения работы механизма явного уведомления о перегрузке ECN (Explicit Congestion Notification).
CWR (Congestion Window Reduced). Подтверждение получения пакета с флагом ECE и включением механизма уменьшения перегрузки (Congestion Control). Этот механизм позволяет оптимизировать отправку пакетов в перегруженных сетях.
ECE (ECN-Echo). Выполняет две функции. Если соединение только устанавливается, то означает что отправитель поддерживает ECN. В другом случае, это означает перегрузку сети (или предстоящую перегрузку) для отправителя.
URG (Urgent)
Указатель важности. 0 если не используется, 1 – используется.
ACK
Устанавливается, когда принимающая сторона подтверждает полученный пакет. Чтобы отправитель знал, какие пакеты уже были доставлены получателю. При этом в поле acknowledgment number записывается номер подтверждаемого пакета.
PSH (Push). Обычно получатель не подтверждает каждый пакет при получении. Вместо этого пакеты накапливаются в буфере, пока не передадутся приложению. Данный флаг сообщает получателю, что нужно немедленно передать всё из буфера приложению и сразу же отправить подтверждение.
RST. Сообщает о немедленном разрыве соединения. При этом соединение обрывается, а буфер очищается. Самые распространенные причины отправки пакета с таким флагом:ответ на пакет, полученный для закрытого сокета;
пользователь сам прервал соединение (например, закрыв браузер, не дожидаясь ответа);
соединение не было нормально закрыто, но находится в неактивном состоянии некоторое время.
SYN. Данный флаг означает начало соединения. Он также синхронизирует начальные номера. Первый пакет, отправленный с каждой стороны, должен иметь этот флаг.
FIN. Сообщает другой стороне что все пакеты были отправлены, и соединение пора завершить.
TL;DR
HTTP (Hypertext Transfer Protocol) — прикладной протокол, с помощью которого сервер отдаёт странички нашему браузеру. HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов. На картинке светильник на микроконтроллере с ОС Contiki на борту, в котором цвета задаются через браузер.
IPv6 | IPv4 | исходники
HTTP протокол текстовый и достаточно простой. Собственно вот так выглядит метод GET, посылаемый утилитой netcat на локальный IPv6 адрес сервера с лампочками:
~$ nc fe80::200:e2ff:fe58:b66b%mazko 80 <<EOF GET /b HTTP/1.0 EOF
Метод HTTP (англ. HTTP Method) обычно представляет собой короткое английское слово, записанное заглавными буквами, чувствительно к регистру. Каждый сервер обязан поддерживать как минимум методы GET и HEAD. Кроме методов GET и HEAD, часто применяется методы POST, PUT и DELETE. Метод GET используется для запроса содержимого указанного ресурса, в нашем случае тут где путь /b отвечает за цвет (синий). Ответ сервера:
HTTP/1.0 200 OK Server: Contiki/2.4 http://www.sics.se/contiki/ Connection: close Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0 Content-type: text/html <html><head><title>Contiki RGB</title></head><body> <p style='color:red;'>Red is <a href='/r'>OFF</a></p> <p style='color:green;'>Green is <a href='/g'>OFF</a></p> <p style='color:blue;'>Blue is <a href='/b'>ON</a></p> </body></html>
Код состояния (у нас 200) является частью первой строки ответа сервера. Он представляет собой целое число из трёх цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа. В нашем случае сервер отработал без ошибок, всё пучком (ОК).
Как запрос, так и ответ содержат заголовки (каждая строка — отдельное поле заголовка, пара имя-значение разделена двоеточием). Заканчиваются заголовки пустой строкой, после чего могут идти данные.
Мой браузер отказывается открывать локальный IPv6-адрес, поэтому в прошивке микроконтроллера прописан дополнительный адрес и такой же префикс также нужно назначить виртуальному сетевому интерфейсу симулятора:
~$ sudo ip addr add abcd::1/64 dev mazko # linux ~$ netsh interface ipv6 set address mazko abcd::1 # windows ~$ curl http://
Если curl отработал без ошибок, то ссылку можно спокойно открывать в браузере.
Differences between OSI and TCP/IP models
Difference between OSI and TCP/IP model
Here, are some important differences between the OSI and TCP/IP model:
OSI Model | TCP/IP model |
---|---|
It is developed by ISO (International Standard Organization) | It is developed by ARPANET (Advanced Research Project Agency Network). |
OSI model provides a clear distinction between interfaces, services, and protocols. | TCP/IP doesn’t have any clear distinguishing points between services, interfaces, and protocols. |
OSI refers to Open Systems Interconnection. | TCP refers to Transmission Control Protocol. |
OSI uses the network layer to define routing standards and protocols. | TCP/IP uses only the Internet layer. |
OSI follows a vertical approach. | TCP/IP follows a horizontal approach. |
OSI model use two separate layers physical and data link to define the functionality of the bottom layers. | TCP/IP uses only one layer (link). |
OSI layers have seven layers. | TCP/IP has four layers. |
OSI model, the transport layer is only connection-oriented. | A layer of the TCP/IP model is both connection-oriented and connectionless. |
In the OSI model, the data link layer and physical are separate layers. | In TCP, physical and data link are both combined as a single host-to-network layer. |
Session and presentation layers are not a part of the TCP model. | There is no session and presentation layer in TCP model. |
It is defined after the advent of the Internet. | It is defined before the advent of the internet. |
The minimum size of the OSI header is 5 bytes. | Minimum header size is 20 bytes. |
Капли пакетов
Когда один одноранговой TCP отправляет пакеты TCP, для которых нет ответа, полученного с другого конца, одноранговая служба TCP в конечном итоге перенаправляет данные, а когда ответа не получено, сеанс завершится отправкой сброса ACK (это означает, что приложение признает все данные, которые обмениваются до сих пор, но из-за сброса пакета подключение закрывается).
Одновременные сетевые трассировки источника и назначения помогут вам проверить это поведение, если на стороне источника вы увидите, что пакеты перенаправлены, а в пункте назначения ни один из этих пакетов не будет замечен. Это означает, что сетевое устройство между источником и пунктом назначения сбрасывает пакеты.
Если начальное рукопожатие TCP не удается из-за перепадов пакетов, вы увидите, что пакет TCP SYN переназначяется только три раза.
Источник, подключающийся к порту 445:
Сторона назначения: применяя тот же фильтр, пакеты не видятся.
Для остальных данных TCP повторно передает пакеты пять раз.
След сторон 192.168.1.62:
Боковой след назначения 192.168.1.2:
Вы не увидите ни одного из вышеуказанных пакетов. Вовлеките свою команду в сеть, чтобы исследовать различные хмеля и узнать, являются ли какие-либо из них потенциально причиной падений в сети.
Если вы видите, что пакеты SYN достигают пункта назначения, но пункт назначения по-прежнему не отвечает, убедитесь, что порт, к который вы пытаетесь подключиться, находится в состоянии прослушивания. (Выход Netstat поможет). Если порт прослушивается, а ответа нет, может произойть падение WFP.
Выводы
Стек модели TCP/IP контролирует взаимодействие различных уровней системы. Ключевыми в нем являются сами протоколы, которые встраиваются друг в друга и обеспечивают передачу данных. Однако если сравнивать модель с OSI, то ее архитектура более простая. Также стоит отметить, что стандарты протоколов постоянно обновляются, в то время как принцип действия TCP/IP остается неизменным.
Надеемся, что вы разобрались в том, что такое TCP/IP и в чем заключаются принципы его работы. Если у вас остались вопросы по теме, то специалисты Xelent обязательно ответят на них.
Популярные услуги
Миграция вашей инфраструктуры в облако за 1 день
Перенесите Вашу физическую инфраструктуру в облако за 1 день.
Размещение серверов (colocation)
Мы советуем размещать сервера на ru-площадках, находящихся в регионе, где работает ваша компания. Это нужно для максимального качества связи. Наши клиенты могут воспользоваться хостингом для размещения серверов в ЦОД Санкт-Петербурга и Москвы.
Публичное облако на базе VMware
Публичное облако на базе VMware позволяет быстро расширить ИТ-инфраструктуру без значительных вложений в модернизацию оборудования.