Протокол tcp/ip

Содержание:

Содержание:

Протоколы TCP против SCTP

И TCP (протокол управления передачей), и SCTP (протокол управления передачей данных) находятся на транспортном уровне и обеспечивают транспортные функции в основном в интернет-приложениях. TCP обеспечивает надежную передачу данных со строгим порядком доставки пакетов, но для некоторых приложений требуется надежная передача, но не 100% последовательность доставки пакетов. В этих случаях TCP может вызвать ненужную задержку во втором варианте, когда важна надежность, но не 100% последовательная доставка.

При транспортировке пакетов существует два основных ограничения: одно — надежность, другое — время ожидания. Надежность гарантируется доставкой пакета, а задержка — своевременной доставкой пакета. Оба не могут быть достигнуты пика одновременно, но могут быть оптимизированы.

SCTP разработан в основном для передачи сигналов PSTN по IP-сетям. (СИГТРАН). Но в наши дни другие приложения также считают, что SCTP хорошо соответствует их требованиям.

TCP:

Определено в RFC 793

TCP — это сквозной надежный протокол, ориентированный на соединение, обеспечивающий гарантированную передачу данных. TCP гарантирует надежность от самого установления соединения. Некоторые из основных функций TCP — это трехстороннее подтверждение (SYN, SYN-ACK, ACK), обнаружение ошибок, медленный запуск, управление потоком, управление перегрузкой.

TCP — надежный транспортный механизм, поэтому он будет использоваться там, где доставка пакетов необходима даже в условиях перегрузки. Типичный пример для приложений TCP и номеров портов: данные FTP (20), управление FTP (21), SSH (222), Telnet (23), почта (25), DNS (53), HTTP (80), POP3 (110). , SNMP (161) и HTTPS (443). Это хорошо известные приложения TCP.

SCTP:

Определено в RFC4960

SCTP (Stream Control Transmission Protocol) — это транспортный протокол IP, например TCP и UDP. SCTP — это протокол одноадресной рассылки, который поддерживает сквозную доставку данных ровно через две конечные точки. Но конечные точки могут иметь более одного IP-адреса.

SCTP — это полнодуплексный протокол передачи с такими функциями, как повторная передача, управление потоком и поддержание последовательности.

Помимо TCP, SCTP имеет больше функций, некоторые из которых перечислены ниже.

Функция многопотоковой передачи SCTP

SCTP позволяет разделять данные на несколько потоков, и каждый поток имеет свою собственную последовательность доставки. Рассмотрим случай телефонной сигнализации: необходимо поддерживать последовательность пакетов, которая влияет на один и тот же сеанс или ресурс. (Пример: тот же вызов или та же внешняя линия). Таким образом, отслеживания последовательности на основе потоков достаточно, и это приведет к более высокой производительности, чем одна полная потоковая передача.

SCTP множественная адресация

Эта функция позволяет одной конечной точке SCTP иметь несколько IP-адресов. Основная причина этого — поддерживать доступность конечной точки через несколько избыточных маршрутов маршрутизации.

Выбор пути

Счетчик поддерживается для отслеживания неуспешных подтверждений передачи конкретному адресату. Определен порог, и если он превышает адрес назначения, он объявляется неактивным, и SCTP начинает отправлять на альтернативный адрес.

Резюме:

(1) TCP и SCTP поддерживают надежные транспортные службы. (2) TCP поддерживает единый поток доставки данных, тогда как SCTP поддерживает множественные потоки доставки данных. (3) TCP поддерживает одну конечную точку TCP, чтобы иметь один IP-адрес, тогда как, поскольку SCTP поддерживает, одна конечная точка SCTP может иметь несколько IP-адресов в основном для целей избыточности. (4) Скорее TCP, SCTP более безопасен. (5) Процессы инициации и завершения SCTP отличаются от TCP.

TCP-соединение[править]

Соединение двух узлов начинается с handshake (рукопожатия):

  1. Узел A посылает узлу B специальный пакет SYN — приглашение к соединению
  2. B отвечает пакетом SYN-ACK — согласием об установлении соединения
  3. A посылает пакет ACK — подтверждение, что согласие получено

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

«Соединение» означает, что узлы помнят друг о друге, нумеруют все пакеты, идущие в обе стороны, посылают подтверждения о получении каждого пакета и перепосылают потерявшиеся по дороге пакеты.

Для узла A это соединение называется исходящим, а для узла B — входящим.

Отметим, что эти термины не имеют никакого отношения к входящему или исходящему трафику. Они показывают только инициатора соединения, то есть направление самого первого пакета (SYN).
Любое установленное TCP-соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны.

Когда один из узлов решает, что пора заканчивать соединение, он посылает специальный пакет FIN, после этого узлы прощаются и разрывают соединение.

Most Common TCP/IP Protocols

Some widely used most common TCP/IP protocol are:

TCP:

Transmission Control Protocol is an internet protocol suite which breaks up the message into TCP Segments and reassembling them at the receiving side.

IP:

An Internet Protocol address that is also known as an IP address is a numerical label. It is assigned to each device that is connected to a computer network which uses the IP for communication. Its routing function allows internetworking and essentially establishes the Internet. Combination of IP with a TCP allows developing a virtual connection between a destination and a source.

HTTP:

The Hypertext Transfer Protocol is a foundation of the World Wide Web. It is used for transferring webpages and other such resources from the HTTP server or web server to the web client or the HTTP client. Whenever you use a web browser like Google Chrome or Firefox, you are using a web client. It helps HTTP to transfer web pages that you request from the remote servers.

SNMP:

SNMP stands for Simple Network Management Protocol. It is a framework which is used for managing the devices on the internet by using the TCP/IP protocol.

DNS:

DNS stands for Domain Name System. An IP address that is used to identify the connection of a host to the internet uniquely. However, users prefer to use names instead of addresses for that DNS.

TELNET:

TELNET stands for Terminal Network. It establishes the connection between the local and remote computer. It established connection in such a manner that you can simulate your local system at the remote system.

FTP:

FTP stands for File Transfer Protocol. It is a mostly used standard protocol for transmitting the files from one machine to another.

Уязвимости безопасности

Веб-серверы обычно, но не исключительно, являются первой точкой воздействия векторов атак через Интернет. Порты локальной сети (LAN) по своей конструкции рекламируют информацию и, следовательно, часто становятся объектом большинства атак на сети клиент-сервер. Многие службы, уязвимые для таких атак, могут быть безопасно отключены — в зависимости от организационного воздействия на рабочие процессы. Это особенно верно в отношении сетевых сервисов, которые по своей сути ориентированы на интранет.

Два таких уязвимых сетевых протокола, которые предоставляют услуги: протокол Server Message Block (SMB) и NetBIOS поверх TCP / IP

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

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

Что такое маска адреса (подсеть)

Понятие подсети введено, чтобы можно было выделить часть 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).

Маска subnet

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

В TCP/IP части IP-адреса, используемые в качестве сетевых и хост-адресов, не исправлены. Если у вас нет дополнительных сведений, то сетевые и хост-адреса выше не могут быть определены. Эта информация предоставляется в другом 32-битовом номере, называемом подсетевой маской. В этом примере маска подсети — 255.255.255.0. Это не очевидно, что это число означает, если вы не знаете 255 в двоичной нотации равно 11111111. Таким образом, подсетевая маска 1111111.1111111.11111111.000000000.

Разделять IP-адрес и подсетевую маску вместе, можно разделять сетевые и хост-части адреса:

110000000.10101000.01111011.10000100 — IP-адрес (192.168.123.132)
111111111.11111111.1111111.00000000 — маска subnet (255.255.255.0)

Первые 24 бита (количество из них в подсети) определены как сетевой адрес. Последние 8 битов (количество оставшихся нулей в маске подсети) определены как адрес хоста. Он дает следующие адреса:

110000000.10101000.0111011.000000000 — адрес сети (192.168.123.0)
00000000.00000000.0000000.10000100 — адрес хозяина (000.000.000.132)

Итак, в этом примере с помощью маски подсети 255.255.255.0 используется сетевой ID 192.168.123.0, а адрес хоста — 0.0.0.132. Когда пакет поступает в подсеть 192.168.123.0 (из локальной подсети или удаленной сети) и имеет адрес назначения 192.168.123.132, компьютер получает его из сети и обрабатывает его.

Почти все маски десятичных подсетей преобразуются в двоичные числа, которые являются слева, и все нули справа. Некоторые другие распространенные подсети маски:

Десятичный двоичный 255.255.255.192 1111111.11111111.1111111.11000000 0 255.255.255.224 1111111.11111111.1111111.11100000

Internet RFC 1878 (доступна в InterNIC-Public Information Regarding Internet Domain Name Registration Services)описывает допустимые подсети и подсети, которые можно использовать в сетях TCP/IP.

1977: Первое испытание сети по сценарию: СССР нападает на Европу

Из книги Яши Левина «Интернет как оружие» (2019 г):

Первое успешное испытание сети с протоколом TCP/IP, состоявшееся 22 ноября 1977 года, имитировало военный сценарий: при помощи спутниковых, кабельных и радиосетей поддерживалась связь с активной мобильной частью, ведущей бои против вторгшихся в Европу условных советских войск. Старый развозной фургон GMC, который стэнфордские специалисты напичкали радиоаппаратурой, играл роль моторизованной дивизии НАТО и ездил туда-сюда по шоссе рядом со Стэнфордом, посылая данные через радиосеть ARPANET. Затем они переправлялись по спутниковой сети ARPA в Европу — через Швецию и Лондон, после чего возвращались в США, в Калифорнийский университет в Лос-Анджелесе, по спутниковым и кабельным каналам ARPA.

Выполняем атаку TCP reset против себя

Примечание: я тестировал этот процесс на OSX, но получил несколько комментариев, что в Linux он не работает нужным образом.

  • Наблюдать за сетевым трафиком («сниффить» его), передаваемым между двумя жертвами
  • Сниффить TCP-сегмент со включенным флагом и считать его подтверждённый номер
  • Изготовить ложный TCP-сегмент со включенным флагом и порядковым номером, равным подтверждённому номеру перехваченного сегмента (стоит учесть, что это предполагает медленную передачу, иначе выбранный порядковый номер быстро устареет. (Чтобы повысить шансы на успех, можно передать несколько сегментов с большим интервалом порядковых номеров.)
  • Отправить фальшивые сегменты одной или обеим жертвам, надеясь, что это приведёт к разрыву их TCP-соединения
  1. Настроить TCP-соединение между двумя окнами терминала
  2. Написать атакующую программу, которая будет заниматься сниффингом трафика
  3. Модифицировать программу так, чтобы она изготавливала и отправляла фальшивые сегменты .

2. Сниффинг трафика

  • — приказывает слушать сетевой интерфейс , или localhost
  • — функция фильтра, приказывающая игнорировать все пакеты, не являющиеся частью соединения двух IP-адресов localhost на порте сервера. Эта фильтрация необходима, потому что на машине есть множество других программ, использующих интерфейс . Мы хотим игнорировать все пакеты, не являющиеся частью нашего эксперимента.
  • — функция, которую должна выполнять для каждого пакета, соответствующего требованиям функции . Функция в показанном выше примере просто выводит пакет на терминал. На следующем этапе мы изменим эту функцию, чтобы она также передавала сегменты .
  • — количество пакетов, которое должна сниффить до выхода.

3. Отправка фальшивых пакетов

  • Меняем местами IP-адреса отправителя и получатели, а также их порты. Это необходимо, потому что наш пакет будет ответом на перехваченный пакет. Исходная точка нашего пакета должна быть конечной точкой исходного пакета, и наоборот.
  • Включаем флаг сегмента, потому что именно он сообщает, что сегмент является
  • Присваиваем порядковому номеру точное значение номера подтверждения перехваченного пакета, так как это следующий порядковый номер, который ожидает получить отправитель
  • Вызываем метод библиотеки для отправки сегмента жертве — источнику перехваченного пакета.

Дальнейшая работа

  1. Продолжите эксперименты с инструментом для атак. Проследите, что происходит, если прибавить или вычесть 1 из порядкового номера пакета . Убедитесь, что он должен быть точно равен значению перехваченного пакета.
  2. Скачайте Wireshark и используйте его для прослушивания интерфейса во время проведения атаки. Это позволит вам увидеть подробности о каждом из передаваемых по соединению TCP-сегментов, в том числе и о ложном . Используйте фильтр для фильтрации всего излишнего трафика других программ.
  3. Усложните проведение атаки, передавая по соединению непрерывный поток данных. Это затруднит выбор скриптом правильного порядкового номера для его сегментов , потому что ко времени прибытия сегмента к жертве та уже может получить дальнейшие истинные данные, увеличив таким образом следующий порядковый номер. Чтобы противодействовать этому, мы можем передавать несколько пакетов , каждый из которых имеет свой порядковый номер.

Connection Management

TCP communication works in Server/Client model. The client initiates the connection and the server either accepts or rejects it. Three-way handshaking is used for connection management.

Establishment

Client initiates the connection and sends the segment with a Sequence number. Server acknowledges it back with its own Sequence number and ACK of client’s segment which is one more than client’s Sequence number. Client after receiving ACK of its segment sends an acknowledgement of Server’s response.

Release

Either of server and client can send TCP segment with FIN flag set to 1. When the receiving end responds it back by ACKnowledging FIN, that direction of TCP communication is closed and connection is released.

Единицы передаваемых данных

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

Чтобы иметь представление о том, что и в какой момент времени происходит с данными, нужно было придумать следующую терминологию:

  • Поток данных — данные, которые поступают на транспортный уровень от протоколов вышестоящего прикладного уровня.
  • Сегмент — фрагмент данных, на которые дробится поток по стандартам протокола TCP.
  • Датаграмма (особо безграмотные произносят как «Дейтаграмма») — единицы данных, которые получаются путем дробления потока с помощью протоколов, работающих без установления соединения (UDP).
  • Пакет — единица данных, производимая посредством протокола IP.
  • Протоколы TCP/IP упаковывают IP-пакеты в передаваемые по составным сетям блоки данных, которые называются кадрами или фреймами.

Порты и протоколы

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

Протокол передачи файлов (FTP RFC 959: Порты 20/21)

Это один из наиболее часто используемых протоколов в Интернете и даже в частных сетях. Любой, у кого мало знаний о работе в сети, может настроить FTP-сервер. Это обеспечит простое перемещение файлов из одной системы в другую. Управление осуществляется через порт TCP 21, в то время как порт передачи данных — через порт TCP 20.

Протокол передачи гипертекста (RFC 2616: порт 80)

HTTP является одним из наиболее широко используемых протоколов в большинстве сетей и в Интернете. Это основной протокол, используемый веб-браузерами и наиболее часто используемый клиентами во всем мире.

Протокол передачи гипертекста по протоколу SSL/TLS (HTTPS RFC 2818: порт 443)

В сочетании с HTTP, основная роль HTTPS заключается в предоставлении тех же услуг через защищенное соединение, которое осуществляется либо с помощью Secure Sockets Layer, либо с помощью Transport Layer Security.

Защищенная оболочка (RFC 4250-4256: порт 22)

Secure Shell (SSH) — это протокол командного уровня, который в первую очередь управляет используемыми сетевыми устройствами. Это обычно используется в качестве альтернативы Telnet, который не обеспечивает безопасное соединение.

Telnet (RFC 854 — порт 23)

В отличие от Secure Shell, Telnet не обеспечивает защищенное соединение. По сути, он обеспечивает незащищенность. Поскольку он незащищен, большинство сетевых устройств более низкого уровня используют его вместо SSH, что требует дополнительной обработки. Справедливое предупреждение: использование Telnet через публичные сети может показать ваши учетные данные для входа в систему под открытым небом.

Протокол простой почтовой передачи (SMTP — порт 25)

SMTP используется в основном для двух функций. Используя порт 25 TCP, он в основном предназначен для передачи почты (электронной почты) от источника к получателю между почтовыми серверами, а также конечным пользователям для отправки почты в почтовую систему.

Встречается в статьях

Инструкции:

  1. Использование playbook и роли в Ansible на примере установки NGINX
  2. Как установить и настроить связку Asterisk + FreePBX на CentOS 8
  3. Установка, настройка и использование системы по сбору логов Grafana Loki на Linux
  4. Сервер радиовещания на базе Icecast под Windows и Linux
  5. Как работать с iptables для настройки брандмауэра
  6. Настройка почтового сервера iRedMail на Ubuntu
  7. Как настроить Freeradius для Active Directory и MySQL
  8. Как оптимизировать веб-сервер NGINX
  9. Установка и настройка кластера Kubernetes на Linux Ubuntu
  10. Как настроить почту для корпоративной среды на CentOS 8
  11. Как настроить почту для корпоративной среды на Ubuntu Server
  12. Настройка веб-сервера на Ubuntu со всем необходимым для правильной работы
  13. Как настроить samba4 на FreeBSD 10
  14. Трансляция видео с веб-сервера с помощью NGINX + rtmp
  15. Как настроить сервер OpenVPN на Windows
  16. Как настроить почту на базе Postfix для корпоративной среды
  17. Установка и настройка сервера ProFTPd на Linux CentOS 7
  18. Установка и настройка системы мониторинга Prometheus на Linux
  19. Настройка синхронизации на CentOS и Ubuntu с Rsync Server
  20. Установка и настройка файлового сервера Samba на Ubuntu
  21. Как установить и настроить прокси-сервер Squid на CentOS
  22. Как установить и настроить прокси-сервер Squid на Ubuntu Server
  23. Установка и настройка почтового сервера Zimbra на Linux
  24. Как установить и использовать сервер хранения секретов Hashicorp Vault

Мини-инструкции:

  1. Как установить MariaDB на Linux CentOS и Ubuntu
  2. Как поменять имя компьютера Windows
  3. Как настроить firewalld в CentOS
  4. Как создать и настроить вторичную зону в BIND
  5. Как установить и настроить Zabbix-agent на Linux CentOS
  6. Установка и базовая настройка vsFTPd на Ubuntu Server
  7. Перенаправление портов на роутере Mikrotik
  8. Шпаргалка по настройке SELinux для различных программ
  9. Как настроить Интернет шлюз на Linux CentOS 7
  10. Установка Firebird на Linux CentOS 7
  11. Инструкция по смене значения MTU на Windows и Linux
  12. Настройка Squid-аутентификации через службу каталогов Active Directory
  13. Установка и настройка сервера VNC для подключения по удаленному рабочему столу к Ubuntu
  14. Как настроить Интернет шлюз на Linux Ubuntu
  15. Настройка проксирования почты с NGINX для IMAP, POP3 и SMTP
  16. Настройка потоковой репликации СУБД PostgreSQL
  17. Инструкция по настройке сервера IOT VEGA с веб-интерфейсом под Ubuntu
  18. Установка и настройка прокси-сервера 3proxy на Ubuntu
  19. Отправка логов на удаленный сервер с помощью journald
  20. Настройка rsyslog для хранения логов на удаленном сервере Linux
  21. Управление Linux с помощью веб-интерфейса Webmin
  22. Установка, настройка и запуск Grafana-server на ОС Linux
  23. Установка платформы .NET Framework на Linux Ubuntu
  24. Установка и настройка MS SQL сервера на Linux Ubuntu
  25. Установка и настройка сервера 1С + PostgreSQL на Linux Ubuntu
  26. Установка и настройка FTP-сервера ProFTPd на Linux Ubuntu
  27. Установка и настройка сервера Rocket.Chat на Ubuntu
  28. Как установить и настроить telegraf + InfluxDB для хранения метрик
  29. Инструкция по установке и настройке phplist на Linux Ubuntu
  30. Как установить и настроить инструмент жизненного цикла DevOps GitLab на Ubuntu
  31. Установка и настройка сервера Collabora в связке с Nextcloud/Owncloud
  32. Загрузка, установка и настройка Zabbix Agent на компьютер с Windows
  33. Примеры настройки сервисов и их установки с помощью ролей в Ansible
  34. Настройка Runner в GitLab CI/CD для загрузки изменений проекта на веб-серверы после коммита
  35. Настройка почтовой системы Postfix + Dovecot с хранением данных в LDAP
  36. Как установить Jenkins на систему Linux Ubuntu Server
  37. Как настроить свой приватный репозиторий для хранения образов Docker
  38. Как установить, настроить и подключиться к MongoDB на Linux Ubuntu
  39. Как настроить балансировку http-запросов в веб-сервере NGINX
  40. Как настроить прозрачную аутентификацию в NGINX через LDAP
  41. Как установить и настроить веб-сервер на базе NGINX + uWSGI для поддержки приложений на Python

2015: Операторы связи выявили проблемы с решениями на основе TCP/IP в сетях 4G

В 2015 году несколько операторов мобильной связи выявили проблемы с технологиями на основе TCP/IP, применяемыми в 4G. Сложности связаны с неэффективным использованием спектра в результате добавления функций мобильности, безопасности, качества обслуживания и других к протоколу, который никогда для них не разрабатывался. Последующие исправления и обходные пути, предназначенные для решения этих проблем, сами стали приводят к увеличению затрат, задержкам и большему энергопотреблению. Поэтому TCP/IP был признан не оптимальным для более продвинутых услуг 5G.

Группа по протоколам следующего поколения (ISG NGP) проанализировала проблемы и предложила альтернативные решения. По результатам работы были определены требования к технологиям-кандидатам, которые заключались в сильном уменьшении размеров заголовков, времени обработки пакетов и задержки на сети, но, кроме этого, в совместимости с текущими сетями TCP/IP, SDN и MPLS.

Типы адресов стека протоколов TCP/IP

Любой протокол передачи данных TCP/IP для идентификации узлов использует один из следующих типов адресов:

  • Локальные (аппаратные) адреса.
  • Сетевые адреса (IP адреса).
  • Доменные имена.

Локальные адреса (MAC-адреса) — используются в большинстве технологий локальных вычислительных сетей, для идентификации сетевых интерфейсов. Под словом локальный, говоря о TCP/IP, следует понимать интерфейс, который действует не в составной сети, а в пределах отдельно взятой подсети. Например, подсеть интерфейса, подключенного к интернет — будет локальной, а сеть интернет — составной. Локальная сеть может быть построена на любой технологии, и независимо от этого, с точки зрения составной сети машина, находящаяся в отдельно выделенной подсети, будет называться локальной. Таким образом, когда пакет попадает в локальную сеть, дальше его IP адрес ассоциируется с локальным адресом, и пакет направляется уже на MAC-адрес сетевого интерфейса.

Сетевые адреса (IP-адреса). В технологии TCP/IP предусмотрена собственная глобальная адресация узлов, для решения простой задачи — объединения сетей с разной технологией в одну большую структуру передачи данных. IP-адресация совершенно не зависит от технологии, которая используется в локальной сети, однако IP адрес позволяет сетевому интерфейсу представлять машину в составной сети.

В итоге была разработана система, при которой узлам назначается IP адрес и маска подсети. Маска подсети показывает, какое количество бит отводится под номер сети, а какое количество под номер узла. IP адрес состоит из 32 бит, разделенных на блоки по 8 бит.

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

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

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

Functionality

Transmission Control Protocol (TCP) works with the Internet Protocol (IP). The sending of packets of data from one computer to the other is its main role. TCP and IP, together, are the two protocols that rule the internet. In the Request for Comment (RFC) standards document number 793, Transmission Control Protocol is defined by the Internet Engineering Task Force (IETF).

Data sent over TCP connections are divided into independently numbered segments. Each segment contains the source destination and data section which is put into a header. The transmission control protocol is the one responsible for reordering the segments in the right sequence as it arrives in the receiving end. TCP is responsible for keeping track of these segments while the IP handles the actual delivery of the data. It includes built-in error checking that ensures each requested segment is received. TCP also includes error checking, which ensures each packet is delivered as requested. The transfer of data such as files and webpages over the internet makes use of TCP. Controlling the reliable transfer of data is the main function of TCP.

In some cases, packets are lost or delivered out of order. This is because of unpredictable network behavior. To minimize the issue, request for reordering and redelivery is done by the TCP. This, however, trades off the speed of delivery by a couple of seconds. The need for reordering packets and retransmissions after they arrived introduces latency to the TCP stream. According to studies, applications such applications as FTP, Telnet, Electronic Mail, and World Wide Web (WWW); approximately 90% traffic of these networks prefer this transport service.

TCP/IP Addressing

Internet addresses such as IP (internet protocol) has a complete mechanism and is one of the more common ones. TCP, on the other hand, does not need one intricate addressing system. TCP only makes use of numbers, also called as “ports” which is provided by the device it’s currently working on. This is to identify where the sending and receiving packets are for which service.

Сравнение с моделью OSI

Три верхних уровня в модели OSI, то есть уровень приложения, уровень представления и уровень сеанса, отдельно не различаются в модели TCP/IP, которая имеет только прикладной уровень над транспортным уровнем. Хотя некоторые чистые приложения протокола OSI, такие как X.400, также объединяют их, нет требования, чтобы стек протокола TCP/IP должен накладывать монолитную архитектуру над транспортным уровнем. Например, протокол NFS-приложений работает через протокол представления данных External Data Representation (XDR), который, в свою очередь, работает по протоколу Remote Procedure Call (RPC). RPC обеспечивает надежную передачу данных, поэтому он может безопасно использовать транспорт UDP с максимальным усилием.

Различные авторы интерпретировали модель TCP/IP по-разному и не согласны с тем, что уровень связи или вся модель TCP/IP охватывает проблемы первого уровня модели OSI (физический уровень) или предполагается, что аппаратный уровень ниже уровня канала.

Несколько авторов попытались включить слои 1 и 2 модели OSI в модель TCP/IP, поскольку они обычно упоминаются в современных стандартах (например, IEEE и ITU). Это часто приводит к модели с пятью слоями, где уровень связи или уровень доступа к сети разделяются на слои 1 и 2 модели OSI.

Например, считается, что уровни сеанса и представления пакета OSI включены в прикладной уровень пакета TCP/IP. Функциональность уровня сеанса можно найти в протоколах, таких как HTTP и SMTP, и более очевидна в таких протоколах, как Telnet и протокол инициации сеанса (SIP). Функциональность уровня сеанса также реализована с нумерацией портов протоколов TCP и UDP, которые охватывают транспортный уровень в наборе TCP/IP. Функции уровня представления реализуются в приложениях TCP/IP со стандартом MIME при обмене данными.

Конфликты очевидны также в оригинальной модели OSI, ISO 7498, когда не рассматриваются приложения к этой модели, например, ISO 7498/4 Management Framework или ISO 8648 Internal Organization of the Network layer (IONL). Когда рассматриваются документы IONL и Management Framework, ICMP и IGMP определяются как протоколы управления уровнем для сетевого уровня. Аналогичным образом IONL предоставляет структуру для «зависимых от подсетей объектов конвергенции», таких как ARP и RARP.

Протоколы IETF могут быть инкапсулированы рекурсивно, о чем свидетельствуют протоколы туннелирования, такие как Инкапсуляция общей маршрутизации (GRE). GRE использует тот же механизм, который OSI использует для туннелирования на сетевом уровне.
Существуют разногласия в том, как вписать модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.

К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.

Вот как традиционно протоколы TCP/IP вписываются в модель OSI:

Распределение протоколов по уровням модели OSI
TCP/IP OSI
7 Прикладной Прикладной напр., HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
6 Представления напр., XDR, AFP, TLS, SSL
5 Сеансовый напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
4 Транспортный Транспортный напр., TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
3 Сетевой Сетевой напр., IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP
2 Канальный Канальный напр., Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS, ARP
1 Физический напр., электрические провода, радиосвязь, волоконно-оптические провода, инфракрасное излучение

Обычно в стеке TCP/IP верхние 3 уровня модели OSI (прикладной, представления и сеансовый) объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.

Что такое таблицы маршрутизации

И вот мы плавно добрались и до них. И так.. Что же за таблицы такие.

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

Выводы

UDP – протокол, который обеспечивает высокую скорость отправки пакетов данных, но без гарантии их доставки. Если для конечного пользователя важна надежность доставки с сохранением порядка отправки данных, придется переходить на использование протокола TCP. Применение протокола UDP актуально, если проводится групповая и широковещательная передача данных. Вот почему он пользуется большой популярностью в области потокового интернет-видео, а также в игровой индустрии.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *