Что происходит при прибытии данных в хост назначения? Как выполняется их доставка в нужное приложение (процесс)?
Хост может участвовать одновременно в нескольких коммуникациях, из общего потока данных выделяется датаграмма и доставляется к нужному приложению . Процесс пересылки данных в нужный процесс называют демультипликсированием. Каждой конечной точке присвоен 16-разрядный идентификатор, называемый номером порта. Термин “порт” не очень удачен, порт для клиентской и серверной частей приложения не имеет никакого отношения к портам оборудования и физическому пути пересылки данных.
Порты с номерами от 0 до 1023 зарезервированы для стандартных служб. Такие порты называются общеизвестными (well-know). Их использование позволяет клиенту идентифицировать службу, к которой он хочет получить доступ.
Назначением портов занимается IANA. Номера портов для определенных приложений регистрируются этой организацией и публикуются в документе RFC Assigned Numbers. Порты 0 -1023 назначаются и контролируются IANA, порты от 1024 – нет.
Название
|
Порт/протокол
|
Описание |
7/udp
|
Echo
|
Посылка отправителю ответа на пользовательскую датаграмму- возвращает любую, посланную на этот порт, датаграмму. |
9/udp
|
Discard
|
Отмена пользовательской датаграммы-удаляет любую, посланную на этот порт, датаграмму. |
9/tcp
|
Discard
|
Отмена всех входящих данных. |
13/udp
|
Daytime
|
Отчет о времени дня в понятном формате, на любую датаграмму отвечает строкой с текущим временем и датой в формате ASCII. |
17/udp
|
Quote
|
Отвечает на любую датаграмму определенным сообщением. |
19/udp
|
Chargen
|
Отвечает на любое сообщение датаграммой, от 0 до 512 бит, выбирается случайным образом. |
19/tcp
|
Chargen
|
Генератор символов, обмен потоком символов. |
20/tcp
|
Ftp-data
|
Порт пересылки данных FTP. |
21/tcp
|
Ftp
|
Порт диалога FTP – проверки пароля и т.д. |
22/tcp
|
ssh SSH
|
Remote Login Protocol. Удаленная регистрация с использованием SSH. |
22/udp
|
ssh SSH
|
Remote Login Protocol. |
23/tcp
|
Telnet
|
Порт для удаленной регистрации по Telnet. |
25/tcp
|
Smtp
|
SMTP почтовый протокол. |
53/udp
|
Nameserver
|
Запросы на определение адресов DNS. При превышении пакетом порядка 250 байт, запрос идет по TCP. Запрос от клиента идет с верхнего порта (выше 1023) на 53 порт DNS-сервера. Запросы пресылаемые DNS между собой идут с- или на- 53 порты. |
53/tcp
|
Nameserver
|
|
63/tcp
|
Whois
|
|
67/udp
|
Bootps
|
Порт сервера, отдающий клиенту конфигурационную информацию при его первоначальной загрузке(Server) – IP адрес и другие. |
67/tcp
|
Bootps
|
Bootstrap Protocol Server. |
68/udp
|
Bootpc
|
Порт клиента для получения конфигурационной информации от сервера (Client). |
68/tcp
|
Bootpc
|
Bootstrap Protocol Client. |
69/udp
|
Tftp
|
Порт протокола Trivial File Transfer Protocol. Может нести значения, не уместившиеся в пакете от 67 для 68 порта – маршрутизатор по умолчанию, DNS и т.д. |
69/tcp
|
Tftp
|
Порт протокола Trivial File Transfer Protocol. |
109/tcp
|
Pop2
|
Старый почтовый POP протокол – забираем почту по POP2. |
110/tcp
|
Pop3
|
Почтовый POP протокол – забираем почту по POP3. |
111/udp
|
SunRPC
|
Вызов удаленных процедур (Remote Procedure Call). |
119/tcp
|
Nntp
|
Протокол новостей – читаем новостные группы. |
123/udp
|
NTP
|
Проокол Network Time Protocol. |
137/tcp
|
Netbios-ns
|
NETBIOS Name Service. |
138/tcp
|
Netbios-dgm
|
NETBIOS Datagram Service. |
139/tcp
|
Netbios-ssn
|
NETBIOS Session Service. |
143/tcp
|
Imap
|
IMAP почтовый протокол – забираем почту по IMAP. |
161/udp
|
SNMP
|
Используется для получения сетевых запросов обслуживания. |
162/udp
|
SNMP-trap
|
Служит для получения сетевых запросов обслуживания. |
465/tcp
|
Smtps smtp
|
Protocol over TLS/SSL (was ssmtp). |
993/tcp
|
Imaps
|
Imap 4 protocol SSL – забираем почту по IMAP с использованием SSL. |
995/tcp
|
Pop3s
|
Pop 3 protocol SSL – забираем почту по POP3 с использованием SSL. |
1080/tcp
|
Socks
|
Socks |
1080/udp
|
Socks
|
|
1000-2300
4000 |
Icq
|
ICQ-клиент использует для связи с ICQ-сервером протокол udp и порт 4000. В дальнейшем, для связи между клиентами используется протокол tcp и порты в диапазоне 1024-65535. Типичные порты ICQ 1000-2300. (Обычно 1027, 1029, 1032, 1080). |
3127-3128
|
Proxy
|
Типичные порты для обращений к прокси – серверам. |
8100-8102
|
Russian Apache
|
Механизм перенаправления запроса http с 80 порта для отображения верной русской кодировки. |
Верхние номера портов (выше 1023) предоставляются клиентам от программного обеспечения хоста по мере необходимости. Выделение предусматривает следующие шаги:
- Пользователь запускает клиентскую программу.
- Клиентский процесс исполняет системную подпрограмму, имеющую смысл:
“Я хочу выполнить коммуникацию. Предоставьте мне порт”. - Системная подпрограмма выбирает неиспользованный порт из пула доступных портов и предоставляет его клиентскому процессу.
Номера TCP и UDP независимы друг от друга. Один процесс может посылать сообщения из порта UDP с номером 1550, в то время как другой продолжает сеанс TCP через порт 1550. Существует несколько служб, доступных как через TCP, так и через UDP. В этом случае IANA предусматривает присвоение одинакового номера порта для службы UDP и TCP. Однако конечные точки коммуникации остаются в разных местах.
Само соединение происходит в несколько стадий: устанавливается соединение посредством обмена сообщениями, затем пересылаются данные, а далее соединение закрывается с помощью обмена специальными сообщениями. Каждый шаг в работе соединения соответствует определенному состоянию этого соединения. Программное обеспеченияе TCP на каждом конце соединения постоянно отслеживает текущее состояние другой стороны соединения.
Последовательность состояний клиента и сервера.
Состояние. | Описание. |
Closed (закрыто) | Фиктивное состояние перед началом соединения. |
Listen (отслеживание) | Сервер ожидает соединения с клиентом. |
Syn-sent | Приложение запрашивает соединение. |
Syn-received | Клиент получает Syn/Ack от сервера. |
Established (установленно) | Открыто соединение, можно перейти к пересыке данных. |
Конечные стороны соединения остаются в состоянии Established, пока одна из сторон не приступит к закрытию соединения.
Последовательность состояний закрытия соединения.
Состояние | Описание |
Esnablished | Локальное приложение запрашивает закрытие соединения. |
Fin-wait-1 | Закрывающая сторона ожидает ответа партнера. |
Close-wait | TCP ожидает от своего приложения закрытия соединения. В этот момент приложение может посылать достаточно большое количество данных. |
Fin-wait-2 | Закрывающая сторона ожидает Fin, принимая поступающие данные. |
Last-Ack | Приложение инициализирует закрытие соединения. |
Time-wait | Соединение поддерживается в неопределенном состоянии, чтобы позволить прибыть или отбросить все еще существующие в сети дублированные данные. |
Closed | Удалена вся информация о соединении. |
Команда Netstat позволяет проверить текущее состояние соединения.
Похожие записи
Нет комментариев