Уровень доступа к среде передачи
Уровень приложений
Распространенными примерами приложений являются программы telnet, ftp, HTTP-серверы и клиенты (WWW-броузеры), программы работы с электронной почтой. Приложения обмениваются между собой через определенный протокол прикладного уровня. К наиболее известным относят:
HTTP (Hypertext Transfer Protocol) – протокол передачи гипертекста. В основном используется для передачи web-информации между www-сервером (HTTP-сервером) и web-браузером (HTTP-клиентом).
FTP (File Transfer Protocol). Протокол передачи файлов, используемый для копирования файлов с и на удаленный компьютер. Протокол FTP так же позволяет пользователям создавать файлы и каталоги на удаленном компьютере.
SMTP (Simple Mail Transfer Protocol) – простой протокол передачи элекронной почты. Используется для отправки почтовых сообщений на сервер и пересылки их между серверами электронной почты в Internet.
POP3 (Post Office Protocol - Version 3) – протокол почтового офиса. Используется для получения электронной почты с сервера (в основном для перекачки почтовых сообщений с сервера на машину клиента).
NNTP (Network News Transfer Protocol) – протокол передачи новостей. Протокол, используемый в сетях для распространения новостей по серверам NNTP и клиентам NNTP (читателям новостей) в Интернете.
Telnet - протокол, позволяющий пользователю входить и выполнять команды на удаленном компьютере.
SMTP (Simple Network Management Protocol) - используется для организации управления сетью (сетевыми) устройствами.
IMAP (Internet Mail Access Protocol) – протокол доступа к почте Internet.
Для пересылки данных другому приложению, приложение обращается к тому или иному модулю транспортного уровня.
Транспортный уровень
Протоколы транспортного уровня обеспечивают прозрачную (сквозную) доставку данных между двумя прикладными процессами. Процесс, получающий или отправляющий данные с помощью транспортного уровня, идентифицируется на этом уровне номером, который называется номером порта. Таким образом, роль адреса отправителя и получателя на транспортном уровне выполняет номер порта (или проще - порт).
Анализируя заголовок своего пакета, полученного от межсетевого уровня, транспортный модуль определяет по номеру порта получателя, какому из прикладных процессов направлены данные, и передает эти данные соответствующему прикладному процессу (возможно, после проверки их на наличие ошибок и т.п.). Номера портов получателя и отправителя записываются в заголовок транспортным модулем, отправляющим данные; заголовок транспортного уровня содержит также и другую служебную информацию; формат заголовка зависит от используемого транспортного протокола.
На транспортном уровне работают два основных протокола: UDP и TCP.
TCP (Transmission Control Protocol - протокол контроля передачи) - надежный протокол с установлением соединения: он управляет логическим сеансом связи (устанавливает, поддерживает и закрывает соединение) между процессами и обеспечивает надежную (безошибочную и гарантированную) доставку прикладных данных от процесса к процессу.
Протокол TCP используют многие сервисы Internet: WWW (HTTP), FTP, SMTP, POP3, Telnet.
UDP (User Datagram Protocol, протокол пользовательских дейтаграмм)- является ненадежным траспортным протоколом, который только обеспечивает отправку и прием отдельных сообщений без гарантии доставки данных.
Протокол UDP используется либо при пересылке коротких сообщений, когда накладные расходы на установление сеанса и проверку успешной доставки данных оказываются выше расходов на повторную (в случае неудачи) пересылку сообщения, либо в том случае, когда сама организация процесса-приложения обеспечивает установление соединения и проверку доставки пакетов (например, NFS).
Протокол UDP используется для отправки широковещательных и многоадресных рассылок.
Примеры прикладных процессов, использующих протокол UDP: NFS (Network File System - сетевая файловая система), TFTP (Trivial File Transfer Protocol - простой протокол передачи файлов), SNMP (Simple Network Management Protocol - простой протокол управления сетью), DNS (Domain Name Service - доменная служба имен).
Межсетевой уровень
IP (Internet Protocol) - основной протокол межсетевого уровня. Протокол IP доставляет блоки данных, называемых дейтаграммами, от одного IP-адреса к другому. IP-адрес является уникальным 32-битным идентификатором компьютера (точнее, его сетевого интерфейса).
Одна из основных задач, решаемых протоколом IP, - маршрутизация дейтаграмм, т.е. определение пути следования дейтаграммы от одного узла сети к другому на основании адреса получателя. Так как не все компьютеры могут непосредственно связаться друг с другом; часто для того, чтобы передать дейтаграмму по назначению, требуется направить ее через один или несколько промежуточных компьютеров по тому или иному маршруту. Задача определения маршрута для каждой дейтаграммы решается протоколом IP.
Когда модуль IP получает дейтаграмму с нижнего уровня, он проверяет IP-адрес назначения. Если дейтаграмма адресована данному компьютеру, то данные из нее передаются на обработку модулю вышестоящего уровня (какому конкретно - указано в заголовке дейтаграммы). Если же адрес назначения дейтаграммы - чужой, то модуль IP может принять два решения: первое - уничтожить дейтаграмму, второе - отправить ее дальше к месту назначения, определив маршрут следования - так поступают промежуточные станции - маршрутизаторы. Дальнейший маршрут следования IP - датаграммы выбирается на основе записей таблицы маршрутизации.
К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом - источником пакета. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п.
Уровень доступа к среде передачи
Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных.
От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу дейтаграммы между уровнями. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается дейтаграмма, в MAC-адрес (физический адрес сетевого устройства); так как пакет, отправляемый по сети, должен содержать физический адрес сетевого устройства, непосредсвенно подключенного к среде передачи.
Адресация в сетях TCP/IP
Главной системой адресации является IP-адресация. Каждый компьютер в Internet и локальных сетях, использующих протокол TCP/IP имеет уникальный IP-адрес – 32 - ух битное число. Отправка IP-пакета происходит на указанный IP-адрес.
Для удобства работы в сетях TCP/IP была разработана доменная система имен DNS, которая позволяет обращться к узлу по имени, например, www.yandex.ru, www.microsoft.com. Такие имена называются полными доменными именами. Полное доменное имя содержит имя узла и имя домена Internet, в котором находится хост. Если один домен находится внутри другого домена, то к его имени добавляется имя родительского домена. Например, существует домен 1 уровня – ru, внутри него находится домен yandex.ru.
Следует знать, что даже если к узлу идет обращение по имени, то это имя всегда преобразуется в IP-адрес. За преобразование полного доменного имени в IP-адрес отвечает DNS-сервер. DNS-сервер также позволяет по указанному IP-адресу определить полное доменное имя.
Многие узлы в Internet имеют псевдонимы, которые регистрируются в базах данных серверов DNS. Многие узлы имеют такие псевдонимы как: www, ftp, smtp, pop3 и другие, соответсвенно серверам, которые работают на данном узле.
IP - адресация
Каждый компьютер, работающий в сети TCP/IP (Internet) должен иметь уникальный IP-адрес. IP-адрес – это 32-ух битное число, идентифицирующее сетевое устройство.
IP-адреса принято записывать в точечно-десятичной форме: 32 бита IP-адреса разбиваются на октеты, каждый октет записывается в виде десятичного числа, числа разделяются точками. Например, адрес
записывается как
10100000.01010001.00000101.10000011 = 160.81.5.131
IP-адрес сетевого устройства состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть. Положение границы сетевой и хостовой частей обычно характеризуется количеством бит, отведенных на номер сети.
Для того, чтобы узлы сети могли обмениваться информацией, они должны принадлежать одной сети, т.е. сетевая часть у них должна быть одинакова.
Классовая модель
В классовой модели IP-адрес может принадлежать к одному из пяти классов сетей. Каждый класс характеризуется определенным размером сетевой части адреса, кратным восьми; таким образом, граница между сетевой и хостовой частями IP-адреса в классовой модели всегда проходит по границе октета. Принадлежность к тому или иному классу определяется по старшим битам адреса.
Первые три класса A, B и С используются для назначения IP-адресов хостам. Классы D и E используются для служебных целей.
Класс А. Старший бит адреса равен нулю. Размер сетевой части равен 8 битам. Таким образом, может существовать всего примерно 27 сетей класса А, но каждая сеть обладает адресным пространством на 224 хостов=16777216. Так как старший бит адреса нулевой, то все IP-адреса этого класса имеют значение старшего октета в диапазоне 0 — 127, который является также и номером сети.
Класс В. Два старших бита адреса равны 10. Размер сетевой части равен 16 битам. Таким образом, может существовать всего примерно 214 сетей класса В, каждая сеть обладает адресным пространством на 216 хостов=65536. Значения старшего октета IP-адреса лежат в диапазоне 128 — 191, при этом номером сети являются два старших октета.
Класс С. Три старших бита адреса равны 110. Размер сетевой части равен 24 битам. Количество сетей класса С примерно 221, адресное пространство каждой сети рассчитано на 28 хостов=256. Значения старшего октета IP-адреса лежат в диапазоне 192 - 223, а номером сети являются три старших октета.
Класс D. Четыре старших бита равны 1110. Это сети со значениями старшего октета IP-адреса 224 -239. Используются для мультикастинга - передачи дейтаграмм группе узлов сети.
Класс E. Четыре старших битов равны 1111. Этот класс включает в себя все остальные адреса со значениями старшего октета IP-адреса 240 и выше. Зарезервированы для специальных целей.
Класс | Ст. биты | Ст. октеты | Окт. под сеть | Окт. под хост | Адреса сетей | Кол-во сетей | Кол-во хостов | Границы адресов в 2-ной форме |
A | 0-127 | 1.0.0.0 – 126.0.0.0 искл: 0.0.0.0, 127.x.x.x | 224 – 2 = | 00000000.00000000.00000000.00000000 01111111.11111111.11111111.11111111 | ||||
B | 128-191 | 128.0.0.0 – 191.255.0.0 | 214 = | 216 – 2 = | 10000000.00000000.00000000.00000000 10111111.11111111.11111111.11111111 | |||
C | 192-223 | 192.0.0.0 – 223.255.255.0 | 221 = 2097152 | 28 – 2 = | 11000000.00000000.00000000.00000000 11011111.11111111.11111111.11111111 | |||
D | 224-239 | 11100000.00000000.00000000.00000000 11101111.11111111.11111111.11111111 | ||||||
E | 240-255 | 11110000.00000000.00000000.00000000 11111111.11111111.11111111.11111111 |
Адрес 0.0.0.0 – соответсвует маршруту по умолчанию.
Адрес 127.0.0.0 – адрес интерфейса loopback (обратной петли). Этот интерфейс используется для отправки пакетов на этот же хост. При этом IP-пакеты не отправляются в сеть через внешний сетевой интерфейс, а возвращаются обратно на транспортный уровень (хотя это зависит от реализации TCP/IP протокола).
Для указания IP-адреса сети в хостовой части в двоичном представлении находятся только нули.
Для указания широковещательноого адреса – BROADCAST – в хоствой части записываются в двоичном представлении записываются все единицы.
Задание IP –адреса сети c помощью маски подсети
Методы присваивания адресов с использованием классов A,B, и C крайне неэффективны. Класс C фактически предоставляет всего 254 адреса, а класс B – 65536. Что не совсем приемлемо для сетей, состоящих из нескольких тысяч компьютеров.
С другой стороны, нет никаких формальных причин проводить границу сеть-хост в IP-адресе именно по границе октета. Это было сделано исключительно для удобства представления IP-адресов и разбиения их на классы. Если выбрать длину сетевой части в 21 бит, а на номер хоста отвести, соответственно, 11 бит, мы получим сеть, адресное пространство которой содержит 211 = 2046 IP-адресов. Это будет одна сеть, определяемая своим уникальным 21-битным номером, следовательно, для ее обслуживания потребуется только одна запись в таблице маршрутов.
Единственная проблема, которую осталось решить: как определить, что на сетевую часть отведен 21 бит? В случае классовой модели старшие биты IP-адреса определяли принадлежность этого адреса к тому или иному классу и, следовательно, количество бит, отведенных на номер сети.
В случае адресации вне классов к IP-адресу прилагается 32-битовая маска, которую называют маской сети (netmask) или маской подсети (subnet mask). Сетевая маска конструируется по следующему правилу:
· на позициях, соответствующих номеру сети, биты установлены (1);
· на позициях, соответствующих номеру хоста, биты сброшены (0).
Т.е. маска состоит из 32 бит, вначале идет ряд единиц, указывающий на адрес сети, а затем ряд нулей, указывающих на адрес хоста. Маска обычно записывается в точечно-десятичной форме.
Рассмотрим пример IP-адреса хоста 205.37.193.134, в которой 26 бит отводится под адрес сети и соответственно 6 бит под адрес хоста:
IP = 205.37.193.134 netmask = 255.255.255.192
Распишем в двоичном виде:
IP хоста = | 11001101 00100101 11000111 10000110 |
Маска = | 11111111 11111111 11111111 11000000 |
Умножив побитно, получаем адрес сети (в хостовой части - нули):
network = | 11001101 00100101 11000111 10000000 |
или, 205.37.193.128 netmask 255.255.255.192