PHP скрипты, MySQL, Java, документация Unix, Linux, FreeBSD, Apache, Оптимизация сайта
Библиотека компании MNWhost.RU

Web-development
Shell
PHP
Perl
Java
ASP
VB Script
HTML
XML
WML
Cookies

Документация
FreeBSD
Linux
Apache
Язык UML
Поисковые системы
Модель OSI
CGI
Технология VPN
ADSL
SSI
DNS
Протоколы
Шифрование дисков
Обжим витой пары
Маски сети/подсети

Хостинг MNW.RU
Услуги
Хостинг
Регистрация доменов
Размещение серверов
Аренда серверов


Hosted by MNW

Яндекс цитирования

Стек протоколов TCP/IP

Стек протоколов TCP/IP

Стек протоколов TCP/IP — набор сетевых протоколов, на которых базируется интернет. Название образовано из аббревиатур двух базовых протоколов — TCP и IP.

Прикладной уровень HTTP, SMTP, FTP, DHCP, SSH, IRC, SNMP
Транспортный уровень TCP, UDP, SCTP, SDCCP
Сетевой уровень IP (IPv4, IPv6), ARP, ICMP, IGMP
Канальный уровень Ethernet, 802.11 WiFi, Token ring, FDDI
Физический уровень RS-232, EIA-422, RS-449, EIA-485

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

Модель OSI более логична, её проще использовать, т. к. протоколы чётко разделены по уровням. Однако модель TCP наиболее распространена. Логичнее изучить сначала модель OSI, а потом переходить к TCP/IP.

Уровни стека TCP/IP

Существуют разногласия в том, как вписать модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.

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

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


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

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


Прикладной
«7 уровень»
напр. HTTP, FTP, DNS ( RIP, работающий поверх UDP, и BGP, работающий поверх TCP, являются частью сетевого уровня)
4 Транспортный напр. TCP, UDP, RTP, SCTP(протоколы маршрутизации, подобные OSPF, что работают поверх IP, являются частью сетевого уровня)
3 Сетевой Для TCP/IP это IP(вспомогательные протоколы, вроде ICMP и IGMP работают поверх IP, но являются частью сетевого уровня; ARP не работает поверх IP)
2 Канальный напр. Ethernet, Token ring, и подобные.
1 Физический напр. физическая среда и принципы кодирования информации, T1, E1

Физический уровень

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

Канальный уровень

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

Примеры протоколов канального уровня — Ethernet, IEEE 802.11 Wireless Ethernet, SLIP, Token ring и ATM.

PPP не совсем вписывается в такое определение, поэтому обычно описывается в виде пары протоколов HDLC/SDLC.

Этот уровень иногда разделяют на 2 подуровня — LLC и MAC.

Сетевой уровень

Изначально разработан для передачи данных из одной (под)сети в другую. Примерами такого протокола является X.25 и IPC в сети ARPANET.

С развитием концепции глобальной сети в уровень были внесены дополнительные возможности по передачи из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны, например в протоколе ICMP (используется для передачи диагностической информации IP-соединения) и IGMP (используется для управления multicast-потоками).

ICMP и IGMP расположены над IP и должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, а поэтому их невозможно вписать в модель OSI.

Пакеты сетевого протокола IP могут содержать код, указывающий какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2.

Транспортный уровень

Протоколы транспортного уровня могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют для какого именно приложения предназначены эти данные.

Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня; например OSPF (IP идентификатор 89).

TCP (IP идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.

UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.

UDP обычно используется в таких приложениях, как потоковое видео, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.

И TCP, и UDP используют для определения протокола верхнего уровня число, называемое портом. Существует список стандартных портов TCP и UDP.

Прикладной уровень

На прикладном уровне работает большинство сетевых приложений.

Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.

В массе своей эти протоколы работают поверх TCP или UDP, и привязаны к определённому порту, например:

  • HTTP на TCP-порт 80 или 8080,
  • FTP на TCP-порт 21,
  • SSH на TCP-порт 22,
  • запросы DNS на порт UDP (реже TCP) 53,
  • обновление маршрутов по протоколу RIP на UDP-порт 520.

Эти порты определены Агентством по выделению имен и уникальных параметров протоколов (IANA).

Бесспорно, к этому уровню относятся: DHCP, Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.

размещение сервера