Лабораторная работа №1. Модель OSI

Понятие сетевых портов и сокетов

Как уже было сказано, основные прикладные сетевые сервисы используют средства транспортного уровня для взаимодействия.

Любые 2 сетевых процесса могут идентифицировать друг друга при помощи 3-х компонент: ip-адрес, протокол(TCP/UDP), порт. Часто данные компоненты носят название сокетами. Сокеты – это название программного интерфейса для обеспечения информационного обмена между процессами. Т.е. для прикладных сетевых процессов взаимодействие осуществляется через сокеты. Более детально сокеты мы будем изучать на последующих занятиях. Сейчас же рассмотрим понятие портов более подробно.

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

Согласно IP, в каждом пакете присутствуют IP адрес узла-источника и IP афдрес узла-назначения. В TCP/UDP пакетах дополнительно указываются порт источника и порт назначения. Узел назначения, получив пакет, смотрит на порт назначения и передает пакет соответствующему у себя приложению. Использование портов позволяет независимо использовать TCP/UDP протокол сразу многим приложениям на одном и том же компьютере.

Для сетевых приложений нотация указания порта следующая: «ip:port». Например, http://web-service.org:8888

Пояснение понятия портов представлено на рис. 6. На самом деле сетевой порт – это всего лишь числовой параметр в сетевом пакете протоколов TCP и UDP. Такие понятия как «открыть порт» означают что пакеты адресованные на данный порт будут приниматься на обработку.

Порты из диапазона 1-1024 являются привилегированными. Называются они так, потому что для их открытия (и, соответственно, запуска соответствующих сетевых сервисов) на большинстве ОС требуются права системного администратора. Большая часть привилегированных портов распределена для общеупотребительных сетевых протоколов. В табл. 1 перечислены некоторые протоколы и порты, за которыми они закреплены. Данные порты являются портами по умолчанию для соответствующих служб и чаще всего не перенастраиваются.

Табл. 1

Примеры некоторых стандартных сетевых портов

Порт / Протокол

Сервис

Описание

20/TCP

ftp-data

Порт данных FTP

21/TCP

ftp

Порт протокола передачи файлов (File Transfer Protocol, FTP); иногда используется протоколом файловой службы (File Service Protocol, FSP)

22/TCP

ssh

Служба Безопасной ОБолочки (Secure SHell, SSH)

23/TCP

telnet

Служба Telnet

25/TCP

smtp

Протокол простой передачи почты (Simple Mail Transfer Protocol, SMTP)

53/(UDP,TCP)

domain

Службы доменных имён (такие как BIND)

80/TCP

http

Протокол передачи гипертекста (HyperText Transfer Protocol, HTTP) для служб всемирной паутины (World Wide Web, WWW)

110/TCP

pop3

Протокол почтового отделения (Post Office Protocol) версии 3

443/TCP

https

Протокол HTTP поверх SSL

992/TCP

telnets

Telnet поверх SSL (TelnetS)

993/TCP

imaps

IMAP поверх SSL (IMAPS)

994/TCP

ircs

IRC поверх SSL (IRCS)

995/TCP

pop3s

POP 3 поверх SSL (POP3S)



История стека протоколов TCP/IP

История Internet и его протоколов началась в 1961 году, когда Леонард Клайнрок разработал в MIT теорию коммутации пакетов. Его работа была основана на идее о разделении данных между множеством небольших пакетов и отправке их на место назначения отдельно, без указания точного пути. После первоначального скептического отношения этот принцип был в конечном счете использован в исследовательском проекте ARPA (Advanced Research Projects Agency), отделения Министерства обороны США. В 1968 году ARPA выделила бюджет более чем в полмиллиона долларов для гетерогенных сетей, которые были названы ARPANET.

В 1969 году эта экспериментальная сеть соединяла 4 университета: Лос-Анжелеса (UCLA), Санта-Барбары (UCSB), Юты и Стенфордский исследовательский институт (SRI) – и расширялась очень быстро. Позже к ARPANET были успешно подключены спутниковые и сотовые каналы связи.

Эта система интенсивно использовалась в последующие годы. На основе знаний, полученных из этой системы, было разработано второе поколение протоколов. К 1982 году был определен набор протоколов с двумя важными протоколами: TCP и IP. Сегодня название TCP/IP используется для всего набора протоколов. В 1983 году TCP/IP стал стандартным протоколом для ARPANET. Протоколы TCP/IP оказались особенно подходящими для обеспечения надежного соединения в сетях внутри постоянно растущего ARPANET. ARPA было очень заинтересовано в установлении новых протоколов и убедило Калифорнийский университет в Беркли интегрировать протоколы TCP/IP в их широко используемую операционную систему Berkley BSD UNIX. Для проектирования приложений с сетевыми возможностями был использован принцип сокетов. Это помогло протоколам TCP/IP стать вскоре очень популярными для обмена между приложениями.

В последующие годы ARPENET выросла до таких размеров, которые сделали управление IP-адресами всех компьютеров в одном простом файле слишком дорогим. Как следствие, была разработана служба доменных имен (Domain Name ServiceDNS), которая используется для сокрытия IP-адресов за легко запоминаемыми именами компьютеров и доменов. Сегодня чаще всего использующимся протоколом сетевого уровня является протокол Internet версии 4. Однако он не был спроектирован для такого огромного распространения и уже достиг пределов своих возможностей, поэтому пришлось разработать новую версию. Новый протокол Internet версии 6 называется также IPv6 или IPng.