- •Глава 1
- •БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ
- •1.1. Упрощенная архитектура сети Интернет
- •1.2. Модель OSI. Понятие об интерфейсах и протоколах.
- •Рекомендация ITU-T X.200
- •1.3. Стек протоколов Интернет
- •1.4. Протоколы доступа в Интернет
- •1.5. Адресация в Интернет
- •1.5.2. IP-адресация версии 4
- •1.6. Физический уровень
- •1.7.1. Технология Ethernet
- •1.7.2. Технология Token Ring
- •1.7.3. Технология FDDI
- •1.8.1. Протокол Интернет версии 4
- •1.8.2. Протокол преобразования адресов
- •1.8.3. Протокол маршрутизации выбора кратчайшего пути первым
- •1.8.4. Протокол межсетевых управляющих сообщений
- •1.8.5. Протокол управления группами в Интернет
- •1.8.6. Протокол Интернет версии 6
- •1.9.1. Протокол управления передачей
- •1.9.2. Протокол дейтаграмм пользователя
- •1.10.1. Ин формационный протокол маршрутизации
- •1.10.2. Протокол динамической конфигурации оконечных устройств
- •1.10.3. Протокол разрешения доменных имен
- •1.12.1. Протокол Telnet
- •1.12.2. Протокол пересылки файлов. Простейший протокол пересылки файлов
- •1.12.3. Простой протокол передачи почты
- •1.12.4. Протокол передачи гипертекста
- •1.12.5. Простой протокол управления сетью
Глава 1 |
БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ |
______________________________________________________________________________
1.11.Представительный уровень
На этом уровне базовые протоколы Интернет пользователя отсутствуют. Этот уровень, в основном, используется администраторами для обеспечения безопасности сетей.
1.12.Прикладной уровень
1.12.1.Протокол Telnet
Протокол Telnet [RFC 854, STD 8] обеспечивает двухсторонний симметричный обмен байт-ориентированных управляющих сообщений между двумя узлами, каждый из которых представляется как сетевое виртуальное устройство (Network Virtual Terminal, NVT). Один из узлов обычно является сервером, другой – пользователем. Пользователем называется узел, инициировавший соединение, он имеет устройство ввода (клавиатуру) для запроса данных от удаленной стороны и устройство вывода (дисплей или принтер) для отображения запрашиваемых данных.
В качестве транспортного уровня Telnet использует TCP. Пользователь, использующий Telnet, запускает свой процесс через порт 23, набирая на клавиатуре “telnet <IP-адрес/доменное имя>”. На прикладном уровне над Telnet находится либо программа поддержки реального терминала (на стороне пользователя), либо прикладной процесс в обсуживающей машине (на стороне сервера), к которому осуществляется доступ с терминала. Взаимодействие пользователя с сервером происходит по принципу запрос-ответ: пользователь набирает на клавиатуре командную строку и нажимает клавишу “Ввод” (“Enter”), а сервер в ответ высылает соответствующий отклик.
Кодировка запросов и ответов производится в коде ASCII 7-разрядным кодом (первый бит всегда устанавливается в 0). Коды отдельных байтов приведены в табл. 1.21.
Табл. 1.21
|
|
(0) 000 |
(1) 001 |
(2) 010 |
(3) 011 |
(4) 100 |
(5) 101 |
(6)110 |
(7) 111 |
(0) |
0000 |
NUL |
DLE |
SP |
0 |
@ |
P |
' |
p |
(1) |
0001 |
SOH |
DC1 |
! |
1 |
A |
Q |
a |
q |
(2) |
0010 |
STX |
DC2 |
“ |
2 |
B |
R |
b |
r |
(3) |
0011 |
ETX |
DC3 |
# |
3 |
C |
S |
c |
s |
(4) |
0100 |
EOT |
DC4 |
$ |
4 |
D |
T |
d |
t |
(5) |
0101 |
ENQ |
NAK |
% |
5 |
E |
U |
e |
u |
(6) |
0110 |
ACK |
SYN |
& |
6 |
F |
V |
f |
v |
(7) |
0111 |
BEL |
ETB |
' |
7 |
G |
W |
g |
w |
(8) |
1000 |
BS |
CAN |
( |
8 |
H |
X |
h |
x |
(9) |
1001 |
HT |
EM |
) |
9 |
I |
Y |
i |
y |
(a) 1010 |
LF |
SUB |
* |
: |
J |
Z |
j |
z |
|
(b) 1011 |
VT |
ESC |
+ |
; |
K |
[ |
k |
{ |
|
(c) 1100 |
FF |
IS4 |
, |
< |
L |
\ |
l |
| |
|
(d) 1101 |
CR |
IS3 |
- |
= |
M |
] |
m |
} |
|
(e) 1110 |
SO |
IS2 |
. |
> |
N |
^ |
n |
~ |
|
(f) 1111 |
S1 |
IS1 |
/ |
? |
O |
_ |
o |
DEL |
|
Для определения двоичного кода символа следует к коду колонки приписать код строки, а для определения шестнадцатеричного – к значению кода колонки приписать значение кода строки. Например, прописной букве “а” соответствует двоичный код 0110 0001 или шестнадцатеричный – 61, цифре “7” – двоичный код 0011 0111 или шестнадцатеричный – 37 и т. д. Коды 0 – 31 являются служебными и используются для операциями над текстом: NUL(0) – незначимая комбинация; SOH(1) – начало заголовка; STX(2) – начало текста (после заголовка); ETX(3) – конец текста; EOT(4) –
75
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
конец передачи текста; ENQ(5) – запрос идентификатора или статуса удаленного терминала; ACK(6) – подтверждение приема; BEL(7) – указание о включении аварийного (извещающего) сигнала; BS(8) – возврат каретки (курсора) на предыдущую позицию; HT(9) – горизонтальная табуляция; LF(10) – перевод курсора на следующую стоку той же позиции; VT(11) – вертикальная табуляция; FF(12) – перевод курсора на следующую страницу в той же позиции; CR(13) – перевод курсора в начало строки; …
На рис. 1.50 показаны первые 5 этапов установления соединения по Telnet.
Узел |
Сервер |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
TCP (Flag=SYN, Options=0204, MaxSeqSise=05b4) |
|
TCP (Flag=ACK, SYN, Options=0204, MaxSeqSise=05b4) |
|
TCP (Flag=ACK) |
2 |
DATA (WILL Echo, WILL Suppress GA, DO Suppress GA, DO Negotiate Window Size) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
DATA (DO Echo, DO Suppress GA, WON’T Suppress GA, WON’T Negotiate Window Size) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
TCP (Flag=ACK) |
|
3 |
|
|
DATA (NGLS VoDSL with CPG/IAD) |
||
|
TCP |
(Flag=ACK, PUSH) |
|
|
|
|
DATA (CR LF) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
|
|
TCP (Flag=ACK)
4 |
DATA (login : ) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
TCP (Flag=ACK) |
|
5 |
DATA (a) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
TCP (Flag=ACK) |
|
|
DATA (a ) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
TCP (Flag=ACK) |
|
|
DATA (d) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
TCP (Flag=ACK) |
|
|
DATA (d ) |
|
|
TCP |
(Flag=ACK, PUSH) |
|
TCP (Flag=ACK) |
|
|
|
. . . |
|
Рис. 1.50. Диаграмма обмена по протоколу Telnet |
|
76
Глава 1 |
БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ |
______________________________________________________________________________
На первом этапе с помощью трех сообщений происходит синхронизация номеров сообщений и согласование размеров сегмента (Опция Maximum segment size – код 0204, длина сегмента 1460 байт – код 05b4).
На втором этапе с помощью трех сообщений стороны договариваются о форме обмена информацией. Сервер предлагает на своей стороне (WILL) установить режим “Эхо” и не запрашивать разрешение на новую передачу после окончания предыдущей, а удаленной стороне предлагает (DO) – запрашивать разрешения на новую передачу после окончания предыдущей и согласовать размер “окна” в протоколе TCP. Терминал соглашается с первыми двумя предложениями (DO) и отказывается от последующих
(WON’T).
На третьем этапе сервер извещает терминал о своем прикладном процессе (NGLS VoDSL with CPG/IAD) и завершает обмен комбинацией 0d0a – CR и LF. Терминал подтверждает получение.
На четвертом этапе сервер производит аутентификацию пользователя запросом его имени (login:).
На пятом этапе пользователь вводит свое имя: первую букву “a” (код 61), вторую букву “d” (код 64) и т.д. Сервер, в соответствии с принятой формой обмена (“Эхо”) возвращает принятые символы назад терминалу. В дальнейшем сервер потребует ввести код пароль (password:) и при его соответствии имени пользователя начнет переносить команды пользователя и возвращать отклики.
1.12.2. Протокол пересылки файлов. Простейший протокол пересылки файлов
Протокол Telnet позволяет пользователю только управлять операциями на удаленном узле, в том числе читать названия и удалять из него файлы, но не обеспечивает транспортировку файлов между разными узлами. Эту функцию обеспечивает протокол пересылки файлов (File Transfer Protocol, FTP) [RFC 959, STD 9]. В качестве транспортного уровня FTP использует TCP. Для транспортировки файлов вначале создается канал управления по протоколу Telnet (по умолчанию порт 21), который используется для передачи команд от пользователя и получения откликов от сервера. Затем создается канал передачи данных (по умолчанию порт 20), который открывается и закрывается по мере необходимости в течение сеанса связи. Канал управления закрывается только после закрытия информационного канала.
Типовой сеанс связи копирования файла file1.txt из сервера в каталог пользователя d: с именем test2.txt выглядит следующим образом (жирным курсивом выделены
символы, вводимые пользователем). |
|
|
ftp 163.1.23.45 |
/вызов сервера |
|
220 Service ready |
/ответ сервера о готовности |
|
username Ivanov |
/ввод имени пользователя |
|
User name OK, need password |
/запрос пароля |
|
password ****** |
/ввод пароля пользователя |
|
230 User logged in |
/успешная проверка пароля |
|
ASCII |
/установка режима передачи |
|
get file1.txt d:/test2.txt |
/копирование файла file1.txt |
|
|
/из сервера на компьютер |
|
|
/в папку d: с именем файла test2.txt |
|
200 Port command successful |
/открыт второй канал |
|
150 Opening ASCII mode data connection for file1.txt (300 bytes) /файл копируется |
||
226 Transfer complete |
|
/копирование завершено |
ftp: 300 bytes received in 0.1 Seconds 24,6 Kbytes/sec . |
/отчет о копировании |
|
quit |
|
/конец сеанса |
221 Goodbye. |
|
|
77
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
Простейший протокол пересылки файлов (Trivial File Transfer Protocol, TFTP)
[RFC 1350, STD 33] используется для дистанционной загрузки программного обеспечения и конфигурационных файлов, например, в шлюзы и маршрутизаторы по их запросу, который они инициируют при включении питания. В качестве транспортного уровня TFTP использует UDP с портом 69. TFTP не требует идентификации пользователя (запроса имени пользователя и пароля). Загрузка производится блоками по 512 байт. Надежность доставки обеспечивается TFTP.
1.12.3. Простой протокол передачи почты
Простой протокол передачи почты (Simple Mail Transfer Protocol, SMTP) [RFC 821, STD 10] в качестве транспортного протокола использует TCP (порт 25) и применяется для пересылки сообщений от клиентов к почтовым серверам клиентов и пересылки сообщений между серверами. Адресация почтовых сообщений аналогична той, что принята в система доменных имен (Domain Name System, DNS). Почтовый адрес имеет вид Alex@spez.com, где Alex – символическое имя, spez.com – почтовый домен. На рис. 1.51 показано прохождение почтового сообщения от абонента с именем
Alex@mail2.spez.com к почтовому серверу абонента с именем Bob@mail3.param.ru по протоколу SMTP.
Alex |
mail2.spez.com |
mail3.param.ru |
|
|
Установление TCP-соединения
Обмен сообщениями почты
220 mail2.spez.com SMTP generic mail handler
HELO Alex
250 mail2.spez.com Hello Alex, pleased to meet you
MAIL FROM: <15HAlex@spez.com>
250 <16HAlex@spez.com>... Sender ok
RCPT TO: <17HBob@param.ru>
250 <18HBob@param.ru>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
.
250 Message accepted for delivery
QUIT
221 mail2.spez.com closing connection
Разрушение TCP-соединения
Установление TCP-соединения
Обмен сообщениями почты
220 mail3.param.ru SMTP generic mail handler
HELO mail2.spez.com
250 mail3.param.ru Hello mail2.spez.com, pleased to
meet you
MAIL FROM: <9HAlex@spez.com>
250 <10HAlex@spez.com>... Sender ok
RCPT TO: <11HBob@param.ru>
250 <12HBob@param.ru>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
.
250 Message accepted for delivery
QUIT
221 mail2.spez.com closing connection
Разрушение TCP-соединения
Рис. 1.51. Пересылка по сети почтовых сообщений по протоколу SMTP
78
Глава 1 |
БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ |
______________________________________________________________________________
Вначале по инициативе пользователя устанавливается TCP-соединение от клиента Alex к своему почтовому серверу (mail2.spez.com) и поверх него по протоколу SMTP пересылается почтовое сообщение. Признаком окончания обмена является передача “точки”. После передачи сообщения TCP-соединение разрушается. Для получения IPадреса с именем Bob почтовый сервер mail2.spez.com выполнит запрос (иногда несколько запросов) к DNS-серверу (на рисунке не показан) и получит IP-адрес почтового сервера mail3.param.ru, к которому приписан абонент Bob. Таким же образом почтовое сообщение будет доставлено почтовому серверу mail3.param.ru.
Протокол SMTP обеспечивает только доставку почтовых сообщений до почтового сервера. Забрать же сообщение из своего почтового ящика абоненту Bob позволяет
протокол обслуживания почтового офиса (Post Office Protocol, POP) [RFC 1939, STD 53] версии 3 (POP3). Протокол POP3 функционирует поверх протокола TCP по порту 110. Процесс забора почты пользователем Bob из сервера показан на рис. 1.52.
mail3.param.ru |
Bob |
Установление TCP-соединения
Обмен сообщениями почты
+OK mail3.param.ru POP3 Service Ready
USER 13HBob@param.ru#mail3.param.ru
+OK
PASS **********
+OK
STAT
+OK 1 1783
LIST
+OK 1 1783
.
RETR 1
+OK
DELE 1
+OK
QUIT
+OK
Разрушение TCP-соединения
Рис. 1.52. Забор почтовых сообщений по протоколу POP3
Забор почты инициирует абонент Bob вызовом программы e-mail. После аутентификации (ввода пароля) почтовый сервер отдает поступившее почтовое сообщение (в данном случае одно, длиной 1783 байта) и закрывает сессию.
Сообщение электронной почты начинается с перечисления имен всех проходящих сетевых элементов, затем следуют заголовок и тело сообщения. Основные поля заголовка приведены в [RFC 822, STD 11] и перечислены ниже.
From: - поле, в котором задается символическое имя и DNS-адрес отправителя сообщения. Например, From: "Ivanova, Irina" <irina.ivanova@siemens.com>
To: - поле, в котором задается DNS-адрес получателя сообщения.
Cc: - поле, в котором задаются дополнительные DNS-адреса групповой рассылки. Sent: - поле, в которое помещается дата и время отправления сообщения.
Например, Sent: Tuesday, June 13, 2006 1:07 AM.
79
