Введение в TCP/IP
Схема TCP/IP
Общепринятым стандартом на организацию сетей передачи данных в настоящий момент является набор протоколов, называемых "схемой TCP/IP". IP и TCP --- названия двух ключевых протоколов схемы. Сетевой протокол определяется:
- своим назначением и предоставляемым возможностями;
- типами сообщений и правилами обмена ими;
- используемым нижестоящим протоколом или протоколами.
Перечисленные выше пять задач соответствуют четырехуровневой схеме TCP/IP. Уровень физического носителя иногда так же относят к интерфейсному уровню TCP/IP.
Решаемые задачи |
Уровни схемы TCP/IP |
Спецификация носителя данных |
Не охватывается схемой TCP/IP |
Интерфейс к носителю |
Интерфейсный (канальный) уровень (Link Layer) |
Организация межсетевого взаимодейтвия |
Сетевой уровень (IP Layer или Internet Layer) |
Котроль доставки данных |
Транспортный уровень (Transport Layer) |
Интерпретация данных |
Прикладной уровень (Application layer) |
Схему TCP/IP иногда также называют стеком TCP/IP или моделью TCP/IP.
Независимость уровней схемы TCP/IP
Одна из важных характеристик схемы TCP/IP --- высокая независимость уровней друг от друга.
- Если обеспечен интерфейс между компьютером и средой передачи данных (например, установлена сетевая карта Gigabit-Ethernet), то при решении задачи маршрутизации пакетов на сетевом уровне можно не беспокоиться о свойствах кабеля или радиосигнала.
- Транспортный уровень, организуя надёжный канал передачи данных, может не заботиться о том, по каким маршрутам передаются отдельные пакеты на сетевом уровне.
- Когда программа прикладного уровня, например, веб-браузер, получает некоторую страничку, она может не беспокоиться, сколько раз на транспортном уровне пришлось запрашивать повторные пакеты для обеспечения надёжной доставки.
Понятия пакета
Необходимо отметить, что существуют две фундаментально разных дисциплины передачи данных.
Сети с коммутацией каналов. В качестве примера можно рассмотреть аналоговую телефонную сеть. Два абонента арендуют канал для звонка. Этот канал в некотором смысле виртуальный --- он состоит из цепочки физических каналов, арендованных на каждом участке сети, однако абоненты этого не замечают. Во время звонка каждый из абонентов занят и не может осуществить другой звонок. Достоинством подобных сетей является то, что на время соединения качество связи более или менее гарантировано. Основной их недостаток --- возможные перегрузки сети, при которых из-за нехватки физических каналов на том или ином участке сети, не обязательно ближайшем к абоненту, абонент может быть "занят", хотя сам и не совершает звонка.
Сети с коммутацией пакетов в настоящий момент. Единицей передачи данных является пакет. Один абонент может отправить другому абоненту пакет в любой момент. Время между отправками отдельных пакетов определяется дисциплиной передачи пакетов, например, нужно ли дождаться ответного пакета от получателя или серию пакетов можно послать без подтверждения. Возможна ситуация, когда качество существующего соединения между абонентами ухудшится, например из-за перегрузки пакетами на каком-то из промежуточных узлов.
Уже на канальном уровне в свое время было принято решение использовать сеть с коммутацией пакетов. Понятие пакета встречается на каждом уровне. Для физического уровня это может быть кадр Ethernet, он же Ethernet-фрейм (от англ. frame), для сетевого --- IP-пакет, для траспортного --- TCP-пакет, для прикладного --- например, DNS-пакет.
Уровни схемы TCP/IP |
Название пакета |
Канальный |
кадр Ethernet (для сети Ethernet) |
Сетевой |
IP-пакет |
Транспортный |
TCP-пакет и датаграмма UDP |
Для сложных протоколов верхнего уровня вместо понятия пакета обычно используются понятия сообщения, запроса и ответа (например, HTTP-запрос и HTTP-ответ) или команды (например, команда FTP).
Понятие адреса
На каждом из уровней схемы TCP/IP используются своя система адресов отправителя и получателя.
Уровни схемы TCP/IP |
Тип адреса |
Пример |
Канальный |
MAC-адрес сетевой карты |
00:16:e6:4a:3b:60 |
Сетевой |
IP-адрес компьютера |
192.168.0.1 |
Транспортный |
IP-адрес компьютера + TCP- или UDP-порт сетевой службы |
192.168.0.1:80 |
На прикладном уровне используются так же символьные DNS-адреса (например, edu.ru) и адреса ресурсов (например, http://edu.ru/new.php).
Инкапсуляция протоколов TCP/IP
Пакеты протоколов более высокого уровня прозрачно передаются в качестве данных в пакетах протокола более низкого уровня. Именно поэтому используется понятие "стек TCP/IP".
Например, пусть у нас есть HTTP-клиент (веб-броузер) и HTTP-сервер, протокол HTTP относится к прикладному уровню. Допустим, сервер приготовил HTTP-специфический массив данных --- веб-страницу, и собирается его передать, воспользовавшись услугами транспортного уровня. Для передачи по протоколу TCP этот файл должен быть разбит на фрагменты определенного размера. Каждый такой фрагмент инкапсулируется в TCP-пакет и снабжается дополнительной служебной информацией, характерной для протокола TCP. На этом дело не останавливается. Для передачи каждого TCP-пакета средствами IP он должен быть, в свою очередь разбит на фрагменты определенного размера, характерного для протокола IP. Каждый из этих фрагментов инкапсулируется в IP-пакет и снабжается своей служебной информацией, на этот раз характерной для протокола IP. Допустим, по правилам маршрутизации выяснилось, что нам нужно передать этот пакет нашему ближайшему соседу по сети. Операция повторяется снова --- IP-пакет разбивается и инкапсулируется в несколько пакетов физического уровня, например, ethernet-фреймов.
После передачи фреймов по физическому каналу происходит обратное преобразование: протокол физического уровня Ethernet составляет из нескольких своих фреймов некоторый набор данных, который передает на уровень выше. Протокол IP в этом наборе данных узнаёт IP-пакет и интерпретирует служебную информацию, в частности IP-адрес. Предположим, по правилам маршрутизации IP-пакет надо отправить следующему соседу. Тогда пакет снова передаётся на физический уровень, где инкапсулируется в несколько фреймах, и т.д. Если IP-протокол решит, что именно эта машина является получателем, то он из нескольких IP-пакетов соберёт некоторый набор данных, и передает его на уровень TCP, который узнает в этом наборе TCP-пакет и обработает его подобающим образом.
В некоторых случаях, в частности, когда это связано с ретрансляцией через сетевые экраны, решение о судьбе пакета может приниматься на TCP-уровне.
Инкапсуляция протколов приводит к накладным расходам: фактически по сети передаётся существенно больше данных, чем было запланировано прикладном уровне.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
90 |
1 |
1 |
1 |
|
1 |
|