Sysadminium
Протокол TCP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.
Транспортные протоколы (TCP и UDP) используются для передачи информации. Информация передаётся маленькими частями – сетевыми пакетами. То есть поток информации разбивается на много маленьких пакетов.
Каждый пакет состоит из заголовка и самих данных. Заголовок содержит служебную информацию, например порт источника и назначения.
Адресация
Связь TCP между двумя удаленными хостами выполняется с помощью номеров портов (TSAP). Номера портов могут варьироваться от 0 до 65535, которые делятся как:
- Порты системы (0 — 1023)
- Порты пользователей (1024 — 49151)
- Частные / динамические порты (49152 — 65535)
TCP [ править ]
TCP протокол базируется на IP для доставки пакетов, но добавляет две важные вещи:
- установление соединения — это позволяет ему, в отличие от IP, гарантировать доставку пакетов
- порты — для обмена пакетами между приложениями, а не просто узлами
Протокол TCP предназначен для обмена данными — это «надежный» протокол, потому что:
- Обеспечивает надежную доставку данных, так как предусматривает установления логического соединения;
- Нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организует повторную передачу;
- Делит передаваемый поток байтов на части — сегменты — и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.
Где применяют
Модель взаимодействия открытых систем часто используют для описания работы различных сетей, например Fiber Channel, SS7)
p, blockquote 17,0,0,0,0 —>
p, blockquote 18,0,0,0,0 —>
15.4 Второй уровень или уровень сети Интернет
Второй уровень модели TCP/IP называется уровнем сети Интернет, сетевым или межсетевым уровнем. Это один из самых важных уровней для сетевого инженера, так как именно здесь работает протокол IP, отвечающий за логическую адресацию в компьютерных сетях и в сети Интернет, если говорить о частностях. Непосредственно протоколу IP мы уделим целых две части, сначала мы поговорим про версию IPv4, а затем разберемся с версией протокола IPv6. Также на этом уровне работают протоколы динамической маршрутизации, в этом курсе мы разберемся с протоколом RIP, который очень прост, но уже практически нигде не используется. А если будет продолжение, то мы еще будем разбираться с такими замечательными протоколами динамической маршрутизации, как OSPF и EIGRP.
Также на сетевом уровне модели TCP/IP работает такой протокол как NAT, отвечающий за магию превращения (трансляцию) частных IP-адресов в публичные, которые маршрутизируются в сети Интернет. Вообще, этот уровень разрабатывался для того, чтобы появилась возможность взаимодействия между двумя независимыми сетями. Основным физическим устройством уровня сети Интернет является маршрутизатор, который определяет куда направить пакет по IP-адресу, находящемуся в заголовке IP-пакета, для этого маршрутизатор использует маски, а также в этом ему помогают протоколы динамической маршрутизации, при помощи которых один роутер рассказывает о известных ему IP-адресах другому роутеру.
Вообще, как я уже говорил, мы будем разбираться с протоколом IP и IP-адресами в дальнейшем, сейчас же стоит отметить, что есть так называемый мультикаст трафик и специальные IP-адреса, если нужен пример использования, то это IPTV (вот здесь вы можете немного узнать о видах сетевого взаимодействия и сетевого трафика). Так вот для работы с мультикаст IP-адресами используются такие протоколы как IGMP и PIM, которые мы не будем затрагивать в рамках этого трека, но упомянуть о них стоит. Вообще, протоколов сетевого уровня достаточно много, самые важные для нас на данном этапе мы уже перечислили, однако не упомянули протокол ARP, который помогает определить мак-адрес по известному IP-адресу, этот протокол работает между канальным и сетевым уровнем.
На межсетевом уровне единица измерения данных или PDU называется пакетом, хотя об этом вы уже догадались, когда я использовал слово IP-пакет. При этом структура заголовка IP-пакета в IPv4 достаточно сильно отличается от структуры пакета в IPv6, как и сами IP-адреса этих протоколов.
Стоит еще добавить, что настройки, производимые на сетевом уровне модели TCP/IP влияют на логику работу компьютерной сети, то есть на ее логическую топологию, в то время как действия выполняемые на первом уровне влияют на физическую топологию компьютерной сети.
Уровни протоколов TCP/IP.
Сетевые протоколы обычно разрабатываются по уровням, где каждый уровень отвечает за собственную фазу коммуникаций и состоит из четырех уровней:
1. Канальный уровень: драйвер устройства и интерфейсная плата;
2. Сетевой уровень: IP, ICMP, IGMP;
3. Транспортный уровень: TCP,UDP;
4. Прикладной уровень: Telnet, FTP, e-mail и т.д.
Каждый уровень несет собственную функциональную нагрузку.
1.Канальный уровень.
Канальный уровень (link layer). Еще его называют уровнем сетевого интефейса. Обычно включает в себя драйвер устройства в операционной системе и соответствующую сетевую интерфейсную плату в компьютере. Вместе они обеспечивают аппаратную поддержку физического соединения с сетью (с кабелем или с другой используемой средой передачи).
2.Сетевой уровень.
Сетевой уровень (network layer) , иногда называемый уровнем межсетевого взаимодействия, отвечает за передачу пакетов по сети. Маршрутизация пакетов осуществляется именно на этом уровне. IP (Internet Protocol — протокол Internet), ICMP (Internet Control Message Protocol — протокол управления сообщениями Internet) и IGMP (Internet Group Management Protocol — протокол управления группами Internet) обеспечивают сетевой уровень в семействе протоколов TCP/IP.
IP это основной протокол сетевого уровня. Он используется как TCP, так и UDP. Каждый блок информации TCP и UDP, который передается по объединенным сетям, проходит через IP уровень в каждой конечной системе и в каждом промежуточном маршрутизаторе.
ICMP является дополнением к протоколу IP. Он используется IP уровнем для обмена сообщениями об ошибках и другой жизненно важной информацией уровня IP.Несмотря на то, что ICMP используется в основном IP уровнем, приложения также могут получить доступ к ICMP
Протокол управления группами Internet IGMP — Internet Groupe Management Protocol, используется при групповой адресации: при этом UDP датаграммы рассылаются нескольким получателям.
Протокол определения адреса ARP — Address Resolution Protocol и обратный протокол определения адреса (RARP — Reverse Address Resolution Protocol) это специализированные протоколы, используемые только с определенным типом сетевых интерфейсов (такие как Ethernet и Token ring). Они применяются для преобразования формата адресов, используемого IP уровнем в формат адресов, используемый сетевым интерфейсом.
3.Транспортный уровень.
Транспортный уровень (transport layer) отвечает за передачу потока данных между двумя компьютерами и обеспечивает работу прикладного уровня, который находится выше.
В семействе протоколов TCP/IP существует два транспортных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol).
TCP осуществляет надежную передачу данных между двумя компьютерами. Он обеспечивает деление данных, передающихся от одного приложения к другому, на пакеты подходящего для сетевого уровня размера, подтверждение принятых пакетов, установку тайм-аутов, в течение которых должно прийти подтверждение на пакет, и так далее. Так как надежность передачи данных гарантируется на транспортном уровне, на прикладном уровне эти детали игнорируются.
UDP предоставляет более простой сервис для прикладного уровня. Он просто отсылает пакеты, которые называются датаграммами (datagram) от одного компьютера к другому. При этом нет никакой гарантии, что датаграмма дойдет до пункта назначения. За надежность передачи данных, при использовании датаграмм отвечает прикладной уровень. Для каждого транспортного протокола существуют различные приложения, которые их используют.
4.Прикладной уровень.
Прикладной уровень (application layer) определяет детали каждого конкретного приложения. Существует несколько распространенных приложений TCP/IP, которые присутствуют практически в каждой реализации:
Telnet — удаленный терминал;
FTP (File Transfer Protocol) — протокол передачи файлов;
SMTP (Simple Mail Transfer Protocol) — простой протокол передачи электронной почты;
SNMP (Simple Network Management Protocol) — простой протокол управления сетью.
Маршрутизатор, по определению, имеет два или несколько интерфейсов сетевого уровня (если он объединяет две или более сетей). Любая система с несколькими интерфейсами называется многоинтерфейсной (multihomed). Компьютер, имеющий несколько интерфейсов, но не перенаправляющий пакеты с одного интерфейса на другой, не может называться маршрутизатором. Большинство реализаций TCP/IP позволяют компьютерам с несколькими интерфейсами функционировать в качестве маршрутизаторов. Однако компьютеры должны быть специально сконфигурированы, чтобы решать задачи маршрутизации. Таким образом, мы можем называть систему хостом, когда на нем работают такие приложения как FTP или Telnet, или маршрутизатором, когда он осуществляет передачу пакетов из одной сети в другую. В зависимости от того какие функции выполняются компьютером, мы будем использовать тот или иной термин.
Одна из основных задач объединения сетей заключается в том, чтобы скрыть все детали физического процесса передачи информации между приложениями, находящимися в разных сетях. Поэтому нет ничего удивительного в том, что в объединенных сетях, как, например, на рисунке 1.3, прикладные уровни не заботятся (и не должны заботиться) о том, что один компьютер находится в сети Ethernet, а другой в сети Token ring с маршрутизатором между ними. Даже если бы между сетями было 20 маршрутизаторов и различные типы физического соединения, приложения работали бы точно так же. Подобная концепция, при которой детали физического объединения сетей скрыты от приложений, определяет мощность и гибкость такой технологии объединения сетей.
Существует еще один метод объединения сетей — с помощью мостов (bridge). В этом случае сети объединяются на канальном уровне, тогда как маршрутизаторы объединяют сети на сетевом уровне.
Стоит отметить, что объединение TCP/IP сетей осуществляется в основном с помощью маршрутизаторов, а не с помощью мостов.
Перевод книги f»Richard_stevens__tcp_ip_illustrated», краткое изложение.
Протоколы семейства TCP/IP
В свое время создатели ЛВС пришли к осознанию важности использования межсетевых технологий для передачи данных. Результатом стали исследования и создание набора сетевых стандартов, которые детально описывают процесс взаимодействия компьютеров, а также содержат ряд соглашений при взаимодействии сетей и маршрутизации данных.
Принципы построения сетей и организации процессов, которые в них происходят, во. многом связаны со стандартами, которые называют протоколами. Протоколы реализуют способы передачи сообщений, описывают детали форматов сообщений и указывают, как обрабатывать ошибки.
Однако важным является то, что они позволяют рассматривать стандарты взаимодействия вне зависимости от типа оборудования, на котором они реализованы. Другими словами, коммуникационный протокол позволяет описать или понять процесс передачи данных, не привязываясь к какому-либо конкретному оборудованию, использованному для выполнения этого процесса.
Официально названный Transmission Control Protocol/ Internet Protocol (TCP/IP) стал промышленным стандартом протоколов, разработанных для глобальных сетей. Он может использоваться для взаимодействия компьютеров с помощью неограниченного числа сетей. Например, можно использовать TCP/IP для связи отдельных сетей внутри организации или жилого дома, даже если связь с внешними сетями отсутствует. Технология TCP/IP хороша благодаря своей высокой жизнеспособности, поэтому она стала базовой технологией для большого количества ЛВС.
Сам протокол TCP/IP состоит из нескольких уровней реализации, На нижнем уровне он поддерживает все популярные стандарты физического (канального) уровня реализации: для локальных сетей это, например. Ethernet, TokenRing, FastEthernet, а для глобальных сетей это могут быть протоколы соединений SLIP и РРР.
На более высоком уровне обеспечивается межсетевое взаимодействие — здесь происходит передача пакетов данных с использованием различных транспортных технологий локальных сетей, территориальных сетей или линий специальной связи.
Виды IP-адресов
В сетях используются два вида IP-адресов:
Публичные (Public) используются в Интернете. Главное правило – абсолютная уникальность. Пример их использования – маршрутизаторы, каждый из которых имеет свой IP-адрес для взаимодействия с сетью Интернет. Такой адрес называется публичным.
Приватные (Private) не используются в Интернете. В глобальной сети такие адреса не являются уникальными. Пример – локальная сеть. Каждому устройству присваивается уникальный в пределах данной сети IP-адрес.
Взаимодействие с сетью Интернет ведется через маршрутизатор, который, как уже было сказано выше, имеет свой публичный IP-адрес. Таким образом, все компьютеры, подключенные к маршрутизатору, представляются в сети Интернет от имени одного публичного IP-адреса.
Самая распространенная версия интернет-протокола. Предшествует IPv6. Формат записи — четыре восьмибитных числа, разделенные точками. Через знак дроби указывается маска подсети. Длина адреса — 32 бита. В подавляющем большинстве случаев, когда речь идет об IP-адресе, имеется в виду именно IPv4.
Формат записи: [192.168.7.2/24].
Эта версия предназначается для решения проблем предыдущей версией. Длина адреса — 128 бит.
Основная проблема, которую решает IPv6 – это исчерпание адресов IPv4. Предпосылки начали проявляться уже в начале 80-х годов. Несмотря на то, что эта проблема вступила в острую стадию уже в 2007-2009 годах, внедрение IPv6 очень медленно «набирает обороты».
Главное преимущество IPv6 – более быстрое интернет-соединение. Это происходит из-за того, что для этой версии протокола не требуется трансляции адресов. Выполняется простая маршрутизация. Это является менее затратным и, следовательно, доступ к интернет-ресурсам предоставляется быстрее, чем в IPv4.
Пример записи: [4003:0af3:06s8:11f3:8b4e:09d8:623b:d34f].
Существует три типа IPv6-адресов:
- Unicast.
- Anycast.
- Multicast.
Unicast – тип одноадресных IPv6. При отправке пакет достигает только интерфейса, расположенного на соответствующем адресе.
Anycast относится к групповым IPv6-адресам. Отправленный пакет попадет в ближайший сетевой интерфейс. Используется только маршрутизаторами.
Multicast являются многоадресными. Это значит, что отправленный пакет достигнет всех интерфейсов, находящихся группе мультивещания. В отличие от broadcast, который является «вещанием для всех», multicast вещает лишь определенной группе.
TCP/IP Протокол разрешения адресов
Единственный способ установить связь между MAC-адресом и IP адресом — ведение таблицы. При наличии таблицы маршрутизации каждый сетевой интерфейс осведомлен о своих адресах (локальном и сетевом), однако встает вопрос, как правильно организовать обмен пакетами между узлами, применяя протокол TCP/IP 4.
Для чего был придуман протокол разрешения адресов (ARP)? Для того, чтобы связывать семейство TCP/IP протоколов и других систем адресации. На каждом узле создается таблица соответствия ARP, которая заполняется путем опроса всей сети. Происходит это после каждого выключения компьютера.