Сетевые модели tcp/ip и osi
Содержание:
- Семь уровней модели OSI:
- IP-адрес[править]
- Что такое маска адреса (подсеть)
- Сервисы IP
- Уровень приложения
- Соединение TCP
- Связующий слой
- 1977: Первое испытание сети по сценарию: СССР нападает на Европу
- Соединение TCP
- Differences between OSI and TCP/IP models
- Internet Layer
- Обзор сетевой модели TCP/IP
- Общие принципы построения сетей
- Концептуальное понимание:
- TCP протокол
- Subnetting
Семь уровней модели OSI:
- Уровень приложения: С помощью этого уровня пользователи могут получить доступ к сети с помощью интерфейсов и служб, таких как электронная почта, управление общей базой данных, доступ / передача файлов и другие службы.
- Слой презентации: Уровень представления фокусируется на синтаксисе и семантике передаваемой информации. Он выполняет такие задачи, как перевод, шифрование и сжатие, когда фактическая информация, существующая в виде строк символов, чисел, символов, кодируется в потоки битов, преобразуется в другую форму и сжимается.
- Сессионный уровень: Этот уровень устанавливает сеанс между различными машинами, чтобы синхронизировать и поддерживать взаимодействие между ними. Сеансовый уровень предоставляет такие услуги, как управление диалогом, управление токенами и синхронизация.
- Транспортный уровень: Он принимает данные со своего предыдущего уровня в виде независимых пакетов и передает их на следующий уровень в надлежащем порядке. Другие функции, выполняемые этим уровнем, — адресация точек обслуживания, управление соединением, сегментация и повторная сборка, управление потоком и контроль ошибок.
- Сетевой уровень: Логическая адресация и маршрутизация — основные операции, выполняемые сетевым уровнем. Он преобразует логический адрес сети в физический MAC-адрес, чтобы две системы, находящиеся в разных сетях, также могли эффективно взаимодействовать. Пакет также требует, чтобы путь достиг места назначения, избегая перегрузки и отказавших компонентов, поэтому он также облегчает автоматическое обновление маршрутов.
- Уровень канала передачи данных: Он отвечает за преобразование необработанной службы передачи (физический уровень) в надежный канал. Это освобождает физический уровень от ошибок, маскируя их так, чтобы сетевой уровень их не замечал. В этом слое входные данные разбиваются на кадры. На уровне канала данных выполняются следующие задачи: формирование кадров, управление доступом, физическая адресация, управление ошибками и потоками.
- Физический слой: Он передает отдельные биты по каналу передачи. Физический уровень имеет дело с описанием характеристик интерфейса между устройствами и средой передачи, представлением битов, синхронизацией битов, скоростью передачи данных, физической топологией, конфигурацией линии, режимом передачи.
IP-адрес[править]
Определение: |
IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу IP. |
IPv4-адресправить
IPv4 использует 32-битные адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными адресами. У каждого хоста и маршрутизатора в Интеренете есть IP-адрес. IP-адрес не имеет отношения к хосту. Он имеет отношение к сетевому интерфейсу, поэтому иногда хост или маршрутизатор могут иметь несколько IP-адресов.
IP-адреса имеют иерархическую организацию. Первая часть имеет переменную длину и задает сеть, а последняя указывает на хост.
Обычно IP-адреса записываются в виде 4 десятичных чисел, каждое в диапозоне от 0 до 255, разделенными точками (dot-decimal notation). Каждая часть представляет один байт адреса. Например, шестнадцатиричный адрес 80D00297 записывается как 128.208.2.151.
Определение: |
Префикс — непрерывный блок пространства IP-адресов, соответствующий сети, в которой сетевая часть совпадает для всех хостов. |
Префикс задается наименьшим IP-адресом в блоке и размером блока. Размер определяется числом битов в сетевой части, оставшиеся биты в части хоста могут варьироваться. Таким образом, размер является степенью двойки. Он записывается после префикса IP-адреса в виде слэша и длины сетевой части в битах. В предыдущем примере префикс содержит 28 адресов и поэтому для сетевой части отводится 24 бита. Записывается так: 128.208.2.0/24.
Сетевые адреса, адреса интерфейсов и широковещательные адресаправить
IP адрес может означать одно из трех:
- Адрес IP сети (группа IP устройств, имеющих доступ к общей среде передаче — например, все устройства в сегменте Ethernet). Сетевой адрес всегда имеет биты интерфейса (хоста) адресного пространства установленными в 0 (если сеть не разбита на подсети);
- Широковещательный адрес IP сети (адрес для ‘разговора’ со всеми устройствами в IP сети). Широковещательные адреса для сети всегда имеют интерфейсные (хостовые) биты адресного пространства установленными в 1 (если сеть не разбита на подсети).
- Адрес интерфейса (например Ethernet-адаптер или PPP интерфейс хоста, маршрутизатора, сервера печать итд). Эти адреса могут иметь любые значения хостовых битов, исключая все нули или все единицы — чтобы не путать с адресами сетей и широковещательными адресами.
IPv6-адресправить
Адрес в IPv6 представляется как восемь групп из четырех шестнадцатеричных чисел, разделенных двоеточиями.
При записи адреса используются следующие правила:
- Если одна и более групп, идущих подряд, равны 0000, то они опускаются и заменяются на двойное двоеточие.
- Незначащие старшие нули в группах опускаются.
- Для записи встроенного или отображенного IPv4 адреса последние две группы цифр заменяются на IPv4 адрес.
- При использовании IPv6 адреса в URL он помещается в квадратные скобки.
- Порт в URL пишется после закрывающей квадратной скобки.
Типы IPv6 адресовправить
- Одноадресный (Unicast) — для отправки пакет на конкретный адрес устройства.
- Global unicast — глобальные адреса. Могут находиться в любом не занятом диапазоне.
- Link loсal — локальный адрес канала. Позволяет обменивать данными по одному и тому же каналу (подсети). Пакеты с локальным адресом канала не могут быть отправлены за пределы этого канала.
- Unique local — уникальный локальные адреса. Используются для локальной адресации в пределах узла или между ограниченным количеством узлов.
- Многоадресный (Multicast) — для отправки пакетов на группу адресов.
- Assigned — назначенные адреса. Зарезервированные для определённых групп устройств Multicast адреса.
- Solicited — запрошенные адреса. Остальные адреса, которые устройства могут использовать для прикладных задач.
- Групповой (Anycast) — для отправки пакета на «любой» индивидуальный адрес. Такой адрес может быть назначен нескольким устройствам. Пакет будет доставлен ближайшему устройству с этим адресом.
Фрагментацияправить
Большинство каналов передачи данных устанавливают максимальную длину пакета (MTU). В случае, когда длина пакета превышает это значение, происходит фрагментация.
Определение: |
IP-фрагментация — разбиение пакета на множество частей, которые могут быть повторно собраны позже. |
Что такое маска адреса (подсеть)
Понятие подсети введено, чтобы можно было выделить часть IP-адресов одной организации, часть другой и тд. Подсеть представляет собой диапазон IP-адресов, которые считаются принадлежащими одной локальной сети. При работе в локальной сети информация пересылается непосредственно получателю. Если данные предназначены компьютеры с IP-адресом, не принадлежащим локальной сети, то к ним применяются специальные правила для вычисления маршрута для пересылки из одной сети в другую.
Маска — это параметр, который сообщает программному обеспечению о том, сколько компьютеров объединено в данную группу (подсеть). Маска адреса имеет такую же структуру как и сам IP-адрес: это набор из четырех групп чисел, каждое из которых может быть в диапазоне от 0 до 255. При этом, чем меньше значение маски, тем больше компьютеров объединено в данную подсеть. Для сетей небольших компаний маска обычно имеет вид 255.255.255.x (например, 255.255.255.224). Маска сети присваивается компьютеру одновременно с IP-адресом. Так, например, сеть 192.168.0.0 с маской 255.255.255.0 может содержать в себе компьютеры с адресами от 192.168.0.1 до 192.168.254. А сеть 192.168.0.0 с маской 255.255.255.128 допускает адреса от 192.168.0.1 до 192.168.0.127. Думаю, смысл понятен. Как правило сети с небольшим возможным числом компьютеров используются провайдерами с целью экономии IP-адресов. Например, клиенту, может быть назначен адрес с маской 255.255.255.252. Такая подсеть содержит в себе только два компьютера.
После того как компьютер получил IP-адрес и ему стало известно значение маски подсети, программа может начать работу в данной локальной подсети. Однако же, чтобы обмениваться информацией с другими компьютерами в глобальной сети, необходимо знать правила, куда пересылать информацию для внешней сети. Для этого служит такая характеристика как адрес шлюза (Gateway).
Сервисы IP
IP также, как и Ethernet обеспечивают передачи данных без гарантии доставки, не гарантируется как доставка, так и порядок следования сообщений. Протокол Ip так же как и Ethernet использует передачу данных без установки соединения.
IP пакет просто отправляется в сеть в надежде, что он дойдет до получателя, если пакет по каким-то причинам не дошел, не предпринимается никаких попыток оповестить отправителя, и также не предпринимается попыток запросить этот пакет снова. Считается, что ошибка должна быть исправлена протоколами, которые находятся на вышестоящих уровнях.
Задачей IP является объединение сети, построенных на основе разных технологий канального уровня, которые могут значительно отличаться друг от друга в одну крупную объединенную сеть, в которой компьютеры могут свободно общаться друг с другом не взирая на различия конкретной сетевой технологии. Вторая важная задача протокола IP, это маршрутизация, то есть поиск маршрута от отправителя к получателю в крупной составной сети через промежуточные узлы маршрутизаторы. Также IP обеспечивает необходимое качество обслуживания.
Уровень приложения
Прикладной уровень включает в себя протоколы , используемые в большинстве приложений для предоставления услуг пользователя или обмена данных приложений за сетевые соединения , установленных протоколами нижнего уровня. Это может включать некоторые базовые службы поддержки сети, такие как протоколы маршрутизации и конфигурация хоста. Примеры протоколов прикладного уровня включают протокол передачи гипертекста (HTTP), протокол передачи файлов (FTP), простой протокол передачи почты (SMTP) и протокол динамической конфигурации хоста (DHCP). Данные, закодированные в соответствии с протоколами прикладного уровня, инкапсулируются в единицы протокола транспортного уровня (такие как потоки TCP или дейтаграммы UDP), которые, в свою очередь, используют протоколы нижнего уровня для фактической передачи данных.
Модель TCP / IP не учитывает специфику форматирования и представления данных и не определяет дополнительные уровни между прикладным и транспортным уровнями, как в модели OSI (уровни представления и сеанса). Согласно модели TCP / IP, такие функции являются областью библиотек и интерфейсов прикладного программирования . Прикладной уровень в модели TCP / IP часто сравнивают с комбинацией пятого (сеансовый), шестого (представление) и седьмого (приложения) уровней модели OSI.
Протоколы прикладного уровня часто связаны с конкретными клиент-серверными приложениями, а общие службы имеют хорошо известные номера портов, зарезервированные Internet Assigned Numbers Authority (IANA). Например, протокол передачи гипертекста использует порт сервера 80, а Telnet использует порт сервера 23. Клиенты, подключающиеся к службе, обычно используют эфемерные порты , т. Е. Номера портов , назначаемые только на время транзакции случайным образом или из определенного диапазона, настроенного в заявление.
На уровне приложений модель TCP / IP различает пользовательские протоколы и протоколы поддержки . Протоколы поддержки предоставляют услуги системе сетевой инфраструктуры. Пользовательские протоколы используются для реальных пользовательских приложений. Например, FTP — это протокол пользователя, а DNS — протокол поддержки.
Хотя приложения обычно осведомлены о ключевых качествах соединения транспортного уровня, таких как IP-адреса конечных точек и номера портов, протоколы прикладного уровня обычно рассматривают протоколы транспортного уровня (и более низких уровней) как черные ящики, которые обеспечивают стабильное сетевое соединение, через которое осуществляется обмен данными. . Транспортный уровень и уровни нижнего уровня не заботятся о специфике протоколов прикладного уровня. Маршрутизаторы и коммутаторы обычно не проверяют инкапсулированный трафик, а просто предоставляют для него канал. Однако некоторые брандмауэры и приложения для регулирования полосы пропускания используют глубокую проверку пакетов для интерпретации данных приложения. Примером может служить протокол резервирования ресурсов (RSVP). Иногда необходимо учитывать полезную нагрузку приложения.
Соединение TCP
Чтобы установить соединение между двумя процессами на разных компьютерах сети, необходимо знать не только интернет-адреса компьютеров, но и номера тех ТСР-портов (sockets), которые процессы используют на этих компьютерах. Любое TCP-соединение в сети Интернет однозначно идентифицируется двумя IP-адресами и двумя номерами ТСР-портов.
Протокол TCP умеет работать с поврежденными, потерянными, дублированными или поступившими с нарушением порядка следования пакетами. Это достигается благодаря механизму присвоения каждому передаваемому пакету порядкового номера и механизму проверки получения пакетов.
Когда протокол TCP передает сегмент данных, копия этих данных помещается в очередь повтора передачи и запускается таймер ожидания подтверждения.
Связующий слой
Протоколы канального уровня работают в рамках локального сетевого подключения, к которому подключен хост. Этот режим называется каналом на языке TCP / IP и является самым низким уровнем компонентов пакета. Ссылка включает все хосты, доступные без прохождения через маршрутизатор. Таким образом, размер канала определяется конструкцией сетевого оборудования. В принципе, TCP / IP разработан как независимый от оборудования и может быть реализован поверх практически любой технологии канального уровня. Это включает не только аппаратные реализации, но и уровни виртуальных каналов, такие как виртуальные частные сети и сетевые туннели .
Канальный уровень используется для перемещения пакетов между интерфейсами Интернет-уровня двух разных хостов по одному и тому же каналу. Процессами передачи и приема пакетов по каналу можно управлять в драйвере устройства для сетевой карты , а также в прошивке или с помощью специализированных наборов микросхем . Они выполняют такие функции, как кадрирование, для подготовки пакетов Интернет-уровня к передаче и, наконец, передают кадры на физический уровень и через среду передачи . Модель TCP / IP включает спецификации для преобразования методов сетевой адресации, используемых в Интернет-протоколе, в адреса канального уровня, такие как адреса управления доступом к среде (MAC). Однако все другие аспекты ниже этого уровня неявно предполагаются существующими и явно не определены в модели TCP / IP.
Канальный уровень в модели TCP / IP имеет соответствующие функции на уровне 2 модели OSI.
1977: Первое испытание сети по сценарию: СССР нападает на Европу
Из книги Яши Левина «Интернет как оружие» (2019 г):
Первое успешное испытание сети с протоколом TCP/IP, состоявшееся 22 ноября 1977 года, имитировало военный сценарий: при помощи спутниковых, кабельных и радиосетей поддерживалась связь с активной мобильной частью, ведущей бои против вторгшихся в Европу условных советских войск. Старый развозной фургон GMC, который стэнфордские специалисты напичкали радиоаппаратурой, играл роль моторизованной дивизии НАТО и ездил туда-сюда по шоссе рядом со Стэнфордом, посылая данные через радиосеть ARPANET. Затем они переправлялись по спутниковой сети ARPA в Европу — через Швецию и Лондон, после чего возвращались в США, в Калифорнийский университет в Лос-Анджелесе, по спутниковым и кабельным каналам ARPA.
Соединение TCP
TCP для передачи данных использует соединение. Соединение нужно установить перед тем, как начать передачу данных, а после того как передача данных завершена, соединение разрывается.
Задачи соединения
- Убедиться в том, что отправитель и получатель действительно хотят передавать данные друг другу
- Договориться о нумерации потоков байт. С точки зрения практической реализации нельзя всегда нумеровать данные в потоке байт с нуля. Каждый раз начальное значение для нумерации байт выбираются по определенному алгоритму и отправитель и получатель должны договориться между собой какое начальное значение они будут использовать для нумерации потока байт.
- При установке соединения происходит договоренность о некоторых параметрах соединения.
Установка соединения в TCP
Отправитель посылает запрос на установку соединения сообщение SYN от слова синхронизация. Также в сегмент включаются порядковый номер передаваемого байта.
Получатель в ответ передаёт сообщение SYN, куда включает подтверждение получения предыдущего сообщения ACK от слова acknowledge и порядковый номер байта, который он ожидает 7538, потому что на предыдущем этапе был получен байт с номером 7537.
Также отправитель включает в сегмент номер байта в потоке байт 36829. Номера байт в первом сообщении не могут быть всегда нулевыми, они выбираются по достаточно сложным алгоритмам, но для простоты можно представлять себе что эти номера выбираются случайным образом.
На третьем этапе пересылается подтверждение получения предыдущего запроса на установку соединения ACK номер следующего ожидаемого байта 36830, а также номер байта в сообщении. После этого соединение считается установленным и можно передавать данные.
Разрыв соединения в TCP
Соединение в TCP дуплексное — это означает, что после установки соединения передавать данные можно в две стороны. Есть две схемы разрыва соединения. Возможен одновременный разрыв соединения, в этом случае обе стороны разрывают соединение в одно и то же время, либо односторонние, в этом случае одна сторона говорит о том, что данные для передачи у нее закончились, но другая сторона может передавать данные еще достаточно долго.
Протокол TCP предусматривает два варианта разрыва соединения: корректное, с помощью одностороннего разрыва соединения и сообщения FIN и разрыв из-за критической ситуации с помощью сообщения RST.
Рассмотрим, как выполняется корректный разрыв соединения. Сторона, которая хочет разорвать соединение пересылает другой стороне сообщение FIN и в ответ получает сообщение ACK. Однако соединение разорвано только с одной стороны.
Когда другая сторона решила, что данные для передачи у нее закончились, она также передает сообщение FIN в ответ получает сообщение ACK подтверждение. На этом этапе соединение закрыто полностью в обе стороны.
Для разрыва соединения в критической ситуации из-за ошибок в приложении или с оборудованием используется одно сообщение RST. В этом случае соединение закрывается в обе стороны. Хотя сообщение RST предназначено для использования в критических ситуациях, некоторые протоколы используют его для быстрого закрытия соединения.
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. |
Internet Layer
An internet layer is a second layer of TCP/IP layes of the TCP/IP model. It is also known as a network layer. The main work of this layer is to send the packets from any network, and any computer still they reach the destination irrespective of the route they take.
The Internet layer offers the functional and procedural method for transferring variable length data sequences from one node to another with the help of various networks.
Message delivery at the network layer does not give any guaranteed to be reliable network layer protocol.
Layer-management protocols that belong to the network layer are:
- Routing protocols
- Multicast group management
- Network-layer address assignment.
Обзор сетевой модели TCP/IP
Модель TCP/IP определяет и опирается на большой набор протоколов, которые позволяют компьютерам обмениваться данными. Чтобы определить протокол, TCP/IP использует документы, называемые RFC (Requests For Comments) (вы можете найти эти RFC в Интернете с помощью любой поисковой системы). Модель TCP/IP также позволяет избежать повторения работы, уже проделанной другим органом по стандартизации или консорциумом производителей, просто ссылаясь на стандарты или протоколы, созданные этими группами. Например, Институт инженеров по электротехнике и электронике (IEEE) определяет локальные сети Ethernet; модель TCP/IP не определяет Ethernet в RFC, но в качестве дополнения ссылается на IEEE Ethernet.
Модель TCP/IP создает набор правил, который позволяет всем нам вынуть компьютер (или мобильное устройство) из коробки, подключить все нужные кабели, включить его, подключиться к сети и использовать ее. Вы можете использовать веб-браузер для подключения к любимому веб-сайту, использовать практически любое приложение, и всё это работает. Как? Что ж, операционная система на компьютере реализует части модели TCP/IP. Сетевая карта Ethernet или карта беспроводной локальной сети, встроенная в компьютер, реализует стандарты локальной сети, на которые ссылается модель TCP/IP. Проще говоря, производители, создавшие аппаратное и программное обеспечение, реализовали TCP/IP.
Чтобы помочь людям понять сетевую модель, каждая модель разбивает функции на небольшое количество категорий, называемых уровнями. Каждый уровень включает в себя протоколы и стандарты, относящиеся к своей категории функций. Данное разбиение показано на рисунке 2.
Рисунок 2 – Уровни сетевой модели TCP/IP
Модель TCP/IP показывает общие термины и уровни, используемые сегодня, когда люди говорят о TCP/IP.
Нижний (физический) уровень фокусируется на том, как передавать биты по каждому отдельному каналу.
Канальный уровень ориентирован на отправку данных по одному типу физического канала: например, сети используют отличающиеся протоколы канала передачи данных для локальных сетей Ethernet по сравнению с беспроводными локальными сетями.
Сетевой (межсетевой) уровень фокусируется на доставке данных по всему пути от исходного компьютера-отправителя до конечного компьютера-получателя.
И два верхних уровня больше ориентированы на приложения, которым необходимо отправлять и получать данные.
ПРИМЕЧАНИЕ. В RFC 1122 используется несколько отличная четырехуровневая оригинальная версия модели TCP/IP (в которой физический и канальный уровни были объединены в уровень сетевого доступа), но и для реальных сетей, и для сегодняшней сертификации CCNA (2020 год, информация из «CCNA 200-301 Official Cert Guide» Уенделла Одома), используйте пятиуровневую модель, показанную здесь на рисунке 2.
Многие из вас уже слышали о нескольких протоколах TCP/IP (примеры, которых перечислены в таблице 1). Большинство протоколов и стандартов в этой таблице будут объяснены позже более подробно.
Уровень модели TCP/IP | Примеры протоколов | |
---|---|---|
Прикладной уровень (уровень приложений) | Система имен | DNS |
Конфигурация узла | BOOTP, DHCP | |
Электронная почта | SMTP, POP, IMAP | |
Передача файлов | FTP, TFTP | |
Веб | HTTP | |
Транспортный уровень | TCP, UDP | |
Сетевой (межсетевой) уровень | IP, NAT | |
Поддержка IP | ICMP | |
Протоколы маршрутизации | OSPF, EIGRP | |
Уровень сетевого доступа (канальный уровень и физический уровень) | ARP, PPP, Ethernet, 802.11 (Wi-Fi) |
Далее в этой главе мы более подробно рассмотрим уровни модели TCP/IP.
Общие принципы построения сетей
Со временем основной целью компьютерных развития сетей (помимо передачи информации) стала цель распределенного использования информационных ресурсов:
- Периферийных устройств: принтеры, сканеры и т. д.
- Данных хранящихся в оперативной памяти устройств.
- Вычислительных мощностей.
Достичь эту цель помогали сетевые интерфейсы. Сетевые интерфейсы это определенная логическая и/или физическая граница между взаимодействующими независимыми объектами.
Сетевые интерфейсы разделяются на:
- Физические интерфейсы (порты).
- Логические интерфейсы (протоколы).
Порт
Из определения обычно ничего не ясно. Порт и порт, а что порт?
Начнем с того что порт это цифра. Например 21, 25, 80.
Это число записывается в заголовках протоколов транспортного уровня (об этом ниже). Порт указывает для какой программы предназначен тот или иной пакет (грубо говоря та или иная информация). Например, http-сервер работает через порт 80. Когда вы открываете браузер, вы отправляете запрос на веб-сервер через 80 порт и сервер понимает что это http запрос и вам нужен сервер который передаст вам страницу в формате html (ответ сервера).
Протокол
Протокол, например TCP/IP это адрес узла (компьютера) с указанием порта и передаваемых данных. Например что бы передать информацию по протоколу TCP/IP нужно указать следующие данные:
Адрес отправителя (Source address):
IP: 82.146.49.11
Port: 2049
Адрес получателя (Destination address):
IP: 195.34.32.111
Port: 53
Данные пакета:
…
Благодаря этим данным информация будет передана на нужный узел.
Концептуальное понимание:
- IP: Протокол сетевого уровня; (шоссе)
- TCP и UDP: Протокол транспортного уровня; (грузовик)
- TCP/IP: Означает Протокол управления передачей / Интернет-протокол и относится к серии протоколов. Модель TCP / IP была упрощена на основе модели OSI и стала четырьмя уровнями снизу вверх: уровень сетевого интерфейса, сетевой уровень, Транспортный уровень, прикладной уровень.
- SOCKET: Сокет, API сети TCP / IP. (Портовый терминал / станция) Сокет — это промежуточный уровень абстракции программного обеспечения для связи между прикладным уровнем и семейством протоколов TCP / IP, представляющий собой набор интерфейсов. Сокет — это уровень абстракции между прикладным уровнем и транспортным уровнем, который абстрагирует сложные операции уровня TCP / IP в несколько простых уровней поставки интерфейса для вызова реализованных процессов для связи в сети.
- HTTP: Соглашение прикладного уровня; (товары). HTTP (Hypertext Transfer Protocol) — это протокол, который использует TCP для передачи информации между двумя компьютерами (обычно веб-сервером и клиентом). Клиент использует веб-браузер, чтобы инициировать HTTP-запрос к веб-серверу, и веб-сервер отправляет запрошенную информацию клиенту.
- WebSocketПротокол WebSocket — это новый протокол HTML5. Он реализует полнодуплексную связь между браузером и сервером. Начальное рукопожатие должно быть завершено с помощью HTTP-запросов. WebSokcet Цель: обмен мгновенными сообщениями вместо опроса. Обмен мгновенными сообщениями на сайте очень распространен, например, QQ веб-страниц, системы чата и т. д. Согласно предыдущим техническим возможностям, это обычно решается с помощью опроса и технологии Comet. HTTP-протокол является непостоянным односторонним сетевым протоколом. После установления соединения браузер может только отправлять запросы на сервер, прежде чем сервер сможет вернуть соответствующие данные. Когда требуется обмен мгновенными сообщениями, браузер отправляет запрос на сервер через определенный интервал времени (например, 1 секунду), а затем возвращает последние данные в браузер. Наиболее очевидным недостатком этого метода является то, что он должен отправлять запросы непрерывно, и, как правило, заголовок HTTP-запроса очень длинный. Для передачи небольшого количества данных ему необходимо заплатить огромную цену, что является очень неэкономичным и требует большого количества широкополосной связи. Недостатки: это вызовет слишком много ненужных запросов, тратит трафик и ресурсы сервера. Каждый запрос и ответ тратят определенное количество трафика на одну и ту же информацию заголовка. Однако появление WebSocket может восполнить этот недостаток. В WebSocket только сервер и браузер должны выполнить рукопожатие по протоколу HTTP, а затем отдельно установить канал связи TCP для передачи данных.
TCP протокол
TCP — это транспортный протокол, является частью стека протоколов TCP IP, он выполняет функции управления передачей данных и следит за их сохранностью, считается надежным. Расшифровывается как Transmission Control Protocol (протокол управления передачей).
Это стандарт, который определяет как нужно устанавливать связь и поддерживать ее, чтобы две программы могли обмениваться данными между собой.
Является именно надежным протоколом так как:
1. Использует логическое соединение, благодаря чему обеспечивается надежная доставка данных.2. Пронумеровывает передаваемые пакеты данных и проверяет их доставку, принимающая сторона высылает подтверждение о получении, в случае потери каких-либо пакетов создается повторная передача.3. Делит передаваемые данные на части — пакеты данных, затем передает их нижнему уровню, и собирает их, когда они приходят к получателю.4. Проверяет контрольную сумму передаваемых пакетов, если она отличается — создается новая отправка.5. Проверяет пакеты на дубликаты, в случае обнаружения таковых — уничтожает.6. Контролирует скорость передачи.
Заголовок TCP протокола
Весит 20 байт, если нет дополнительных опций, вот как он выглядит:
У каждого TCP сегмента указывается порт источника и назначения, с помощью которых происходит идентификация отправляющего и принимающего приложения. Эти порты вместе с IP адресами уникально идентифицируют каждое соединение. Комбинация IP и порта — это сокет (socket).
Номер последовательности — нумерация каждого отправляемого байта в потоке передаваемых данных. А номер подтверждения — это следующий номер байта после полученного, который ждет получатель. Т.е. передача идет последовательно, например, получатель получил 100-ый байт, следующим ждет 101.
Остальные значения можно понять из самой картинки. Разве, что размер окна — он скользящий, т.е. зависит от качества сети. Если много данных теряется он может уменьшаться и наоборот. Он регулирует количество передаваемых байтов.
А флаги: URG, ACK, PSH и т.д. — описывают дополнительные значения сегмента, так, например, флаг FIN применяется для завершения соединения.
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.