Сжатие данных с использованием преобразования Барроуза-Вилера
2.6.3 Сжатие данных с использованием преобразования Барроуза-Вилера
Семенов Ю.А. (ГНЦ ИТЭФ)
Майкл Барроуз и Давид Вилер (Burrows-Wheeler) в 1994 году предложили свой алгоритм преобразования (BWT). Этот алгоритм работает с блоками данных и обеспечивает эффективное сжатие без потери информации. В результате преобразования блок данных имеет ту же длину, но другой порядок расположения символов. Алгоритм тем эффективнее, чем больший блок данных преобразуется (например, 256-512 Кбайт). Пояснение работы алгоритма будет выполнено на ограниченном объеме исходных данных (строка S длиной N, например, SEMENOV). Строка S рассматривается как последовательность, состоящая из N строк.
Сначала осуществляется циклический сдвиг строки S и формируется N-1 новая строка. На практике строки не размножаются, а создается массив указателей на циклический буфер, где лежит исходная строка S.
Строка
S E M E N O V
S0
E M E N O V S
S1
M E N O V S E
S2
E N O V S E M
S3
N O V S E M E
S4
O V S E M E N
S5
V S E M E N O
S6
Далее выполняется лексикографическое упорядочение (сортировка) этих строк (указателей). Для упорядочения можно использовать С-функции типа strcmp() или memcmp() (учитывая особенности структуры буфера, это должны быть их функциональные аналоги).
F
L
Строка
E
M
E
N
O
V
S
S1
E
N
O
V
S
E
M
S3
M
E
N
O
V
S
E
S2
N
O
V
S
E
M
E
S4
O
V
S
E
M
E
N
S5
S
E
M
E
N
O
V
S0
V
S
E
M
E
N
O
S6
Первая колонка помечена буквой F, а последняя – L. Колонка F (EEMNOSV) содержит все символы исходной строки S, записанные в упорядоченной последовательности. Строка L представляет собой последовательность префиксных символов для строки S.
Результатом работы алгоритма BWT является строка L и первичный индекс, который представляет собой номер элемента строки L, где хранится первый символ исходной строки S. В приведенном примере индекс равен 1.
Надеюсь, эта таблица окажется полезной для WEB-дизайнеров. Пожалуйста, не пытайтесь печатать эти страницы, ничего хорошего не получится! Цвета отображены с использованием атрибута bgcolor. Ю.А.С.
23 1
50
Get Current Account Status
23 1
51
Submit Account Change
23 1
52
Submit Account Hold
23 1
53
Submit Account Note
Обслуживание файловой системы Apple
35
01
AFP Create Directory
35
02
AFP Create File
35
03
AFP Delete
35
04
AFP Get Entry ID from Name
35
05
AFP Get File Information
35
06
AFP Get Entry ID from NetWare Handle
35
07
AFP Rename
35
08
AFP Get Open File Fork
35
09
AFP Set File Information
35
10
AFP Scan File Information
35
11
AFP 2.0 Alloc Temporary Directory Handle
35
12
AFP Get Entry ID from Name Path
35
13
AFP 2.0 Create Directory
35
14
AFP 2.0 Create file
35
16
AFP 2.0 Set File Information
35
17
AFP 2.0Scan file Information
35
18
AFP Get DOS Name from Entry ID
35
19
AFP Get Macintosh Info on Deleted File
23
50
Create Bindery Object
23
51
Delete Bindery Object
23
52
Rename Object
23
53
Get Bindery Object ID
23
54
Get Bindery Object in Set
23
55
Scan Bindery Object
23
56
Change Bindery Object Security
23
57
Create Property
23
58
Delete Property
23
59
Change Bindery Security
23
60
Scan Property
23
61
Read Property Value
23
62
Write Property Value
23
63
Verify Bindery Object Password
23
64
Change Bindery Object Password
23
65
Add Bindery Object to Set
23
66
Delete Bindery Object from Set
23
67
Is Bindery Object in Set?
23
68
Close Bindery
23
69
Open Bindery
23
70
Get Bindery Access Level
23
71
Scan Bindery Object Trustee Paths
23
72
Get Bindery Object Access Level
23
73
Is Calling Station a Manager?
23
74
Keyed Verify Password
23
75
Keyed Change Password
23
76
List Relations of an Object
Обслуживание каналов
19
-
Get Station Number
23
20
Login Object
23
23
Get Login Key
23
24
Keyed Object Login
23
26
Get Internet Address
23
27
Get Object Connection List
23
28
Get Station’s Logged Information
23
29
Change Connection State
23
30
Watchdog Interval
23
31
Get Connection List from Object
24
-
End of Job
25
-
Logout
33
-
Negotiate Buffer Size
88
01
Clear Connection Number List
97
-
Get Big Packet NCP Max Packet Size
Работа с расширенными атрибутами
86
01
Close Extended Attribute Handle
86
02
Write Extended Attribute
86
03
Read Extended Attribute
86
04
Enumerate Extended Attribute
86
05
Duplicate Extended Attribute
Работа с каталогами и файлами
18
-
Get Volume Info with Number
22
00
Set Directory Handle
22
01
Get Directory Path
22
02
Scan Directory Information
22
04
Modify Maximum Rights Mask
22
05
Get Volume Number
22
06
Get Volume Name
22
10
Create Directory
22
11
Delete Directory
22
12
Scan Directory for Trustee
22
13
Add Trustee to Directory
22
14
Delete Trustee from Directory
22
15
Rename Directory
22
18
Allocate Permanent Directory Handle
22
19
Allocate Temporary Directory Handle
22
20
Deallocate Directory Handle
22
21
Get Volume Info with Handle
22
22
Allocate Special Temporary Directory Handle
22
23
Map Directory Number to Path
22
25
Set Directory Information
22
26
Get Path Name of a Volume-Directory Number Pair
22
29
Get Effective Directory Rights
22
30
Scan a Directory
22
31
Get Directory Entry
22
32
Scan Volume’s User Disk Restrictions
22
33
Add User Disk Space Restriction
22
34
Remove User Disk Space Restrictions
22
35
Get Directory Disk Space Restriction
22
36
Set Directory Disk Space Restrictions
22
37
Set Directory Entry Information
22
38
Scan File or Directory for Extended Trustee
22
39
Add Extended Trustee to Directory or File
22
40
Scan Directory Disk Space
22
41
Get Object Disk Usage and Restrictions
22
42
Get Effective Rights for Directory Entry
22
43
Remove Extended Trustee to Directory or File
22
44
Get Volume and Purge Information
22
45
Get Directory Information
22
46
Rename or Move
22
48
Get Name Space Directory Entry
22
49
Open Data Stream
22
50
Get Object Effective Rights for Directory Entry
22
51
Get Extended Volume Information
23
15
Scan File Information
23
16
Set File Information
23
26
Purge All Erased Files
61
-
Commit File
62
-
File Search Initialize
63
-
File Search Continue
64
-
Search for a File
66
-
Close File
67
-
Create File
68
-
Erase File
69
-
Rename File
70
-
Set File Attributes
71
-
Get Current Size of File
72
-
Read from a File
73
-
Write to a File
74
-
Copy from One File to Another
75
-
Set File Time Date Stamp
78
-
Allow Task to Access File
79
-
Set File Extended Attributes
84
-
Open/Create File
85
-
Get Sparse File Data Block Bit Map
87
01
Open/Create File or Subdirectory
87
03
Search for a File or Subdirectory
87
04
Rename or Move a File or Subdirectory
87
05
Scan File or Directory for Trustee
87
08
Delete a File or Subdirectory
87
09
Set Short Directory Handle
87
10
Add Trustee Set to File or Subdirectory
87
11
Delete Trustee Set from File or Subdirectory
87
12
Allocate Short Directory Handle
87
17
Recover Salvageable File
87
18
Purge Salvageable File
87
19
Get Name Space Information
87
20
Search for a File or Subdirectory Set
87
21
Get Path String from Short Directory Handle
87
22
Generate Directory Base and Volume Number
87
23
Query Name Space Information Format
87
24
Get Name Space Loaded List from Volume Number
87
25
Set Name Space Information
87
26
Get Huge Name Space Information
87
27
Set Huge Name Space Information
87
28
Get Full Path String
90
00
Parse Tree
90
150
File Migration Request
Среда файл-сервера
15
-
Locate a Resource
16
-
Deallocate a Resource
20
-
Get File Server Data and Time
23
05
Get File Server Login Status
23
12
Verify Serialization
23
14
Get Disk Utilization
23
17
Get File Server Information
23
18
Get Network Serial Number
23
23
Get File Server LAN I/O Statistics
23
200
Check Console Privileges
23
201
Get File Server Description String
23
202
Set File Server Date and Time
23
203
Disable File Server Login
23
204
Enable File Server Login
23
207
Disable Transaction Tracking
23
208
Enable Transaction Tracking
23
211
Down File Server
23
212
Get File System Statistics
23
213
Get Transaction Tracking Statistics
23
214
Read Disk Cache Statistics
23
215
Get Drive Mapping Table
23
216
Read Physical Disk Statistics
23
217
Get Disk Channel Statistics
23
221
Get Physical Record Locks by Connection and File
23
227
Get LAN Driver
23
229
Get Connection Usage Statistics
23
230
Get Object’s Remaining Disk Space
23
232
Get File Server Misc Information
23
233
Get Volume Information
23
234
Get Connection’s Task Information
23
235
Get Connection’s Open Files
23
236
Get Connections Using a File
23
237
Get Physical Record Locks by Connection and File
23
238
Get Physical Record Locks by File
23
239
Get Logical Records by Connection
23
240
Get Logical Record Information
23
241
Get Connection’s Semaphores
23
242
Get Semaphore Information
23
245
Get File Server Extended Misc Information
23
246
Get Volume Extended Miscellaneous Information
23
252
Release a Resource
23
253
Send Console Broadcast
23
254
Clear Connection Number
Работа с сообщениями
21
01
Get Broadcast Message
21
02
Disable Broadcasts
21
03
Enable Broadcasts
21
04
Send Personal Message
21
05
Get Personal Message
21
06
Open Message Pipe
21
07
Close Message Pipe
21
08
Check Pipe Status
21
09
Broadcast to Console
21
10
Send Broadcast Message
23
13
Log Network Message
Работа с принтером и очередями
17
00
Write to Spool File
17
01
Close Spool File
17
02
Set Spool File Flags
17
03
Spool a Disk File
17
04
Scan Spool File Queue
17
05
Delete Spool File
17
06
Get Printer Status
17
09
Create Spool File
17
10
Get Printer’s Queue
23
137
Get Queue Jobs from Form List
Работа с очередями
23
100
Create Queue
23
101
Destroy Queue
23
110
Change Queue Job Position
23
111
Attach Queue Server to Queue
23
112
Detach Queue Server from Queue
23
116
Change to Client’s Rights
23
117
Restore Queue Server Rights
23
119
Set Queue Server Current Status
23
121
Create Queue Job and File
23
122
Read Queue Job Entry
23
123
Change Queue Job Entry
23
124
Service Queue Job
23
125
Read Queue Current Status
23
126
Set Queue Current Status
23
127
Close a File and Start Queue Job
23
128
Remove Job from Queue
23
129
Get Queue Job List
23
130
Change Jobiority
23
131
Finish Servicing Queue Job
23
132
Abort Servicing Queue Job
23
134
Read Queue Server Current Status
23
135
Get Queue Job File Size
Синхронизация
01
-
File Set Lock
02
-
File Release Lock
05
-
Release File
06
-
Release File Set
07
-
Clear File
08
-
Clear File Set
11
-
Clear Logical Record
12
-
Release Logical Record
13
-
Release Logical Record Set
14
-
Clear Logical Record Set
28
-
Release Physical Record
29
-
Release Physical Record Set
30
-
Clear Physical Record
31
-
Clear Physical Record Set
105
-
Log File
106
-
Lock File Set
107
-
Log Logical Record
108
-
Lock Logical Record Set
109
-
Log Physical Record
110
-
Lock Physical Record Set
111
00
Open/Create Semaphore
111
01
Close Semaphore
111
02
Wait on Semaphore
111
03
Signal Semaphore
111
04
Examine Semaphore
Отслеживание транзакций
34
00
TTS Is Available
34
01
TTS Begin Transaction
34
02
TTS End Transaction
34
03
TTS Abort Transaction
34
04
TTS Transaction Status
34
05
TTS Get Application Thresholds
34
06
TTS Set Application Thresholds
34
07
TTS Get Workstation Thresholds
34
08
TTS Set Workstation Thresholds
34
09
TTS Get Transaction Bits
34
10
TTS Set Transaction Bits
Служба каталогов NetWare
104
01
Ping for NDS NCP
104
02
Send NDS Fragmented Request/Reply
104
03
Close NDS Fragment
104
04
Return Bindery Context
104
05
Monitor NDS Connection
Работа со статистикой
123
01
Get Cache Information
123
02
Get File Server Information
123
03
NetWare File Systems Information
123
04
User Information
123
05
Packet Burst Information
123
06
IPX/SPX Information
123
07
Garbage Collection Information
123
08
CPU Information
123
09
Volume switch Information
123
10
Get NLM Loaded List
123
11
NLM Information
123
12
Get Directory Cache Information
123
13
Get Operating System Version Information
123
14
Get Active Connection List by Type
123
15
Get NLM Resource Tag List
123
20
Active LAN Board List
123
21
LAN Configuration Information
123
22
LAN Common Counters Information
123
23
LAN Custom Counters Information
123
25
LSL Information
123
26
LSL Logical Board Information
123
30
Get Media Manager Object Information
123
31
Get Media Manager Objects List
123
32
Get Media Manager Children’s List
123
33
Get Volume Segment List
123
40
Active Protocol Stacks
123
41
Get Protocol Stack Configuration Information
123
42
Get Protocol Stack Statistics Information
123
43
Get Protocol Stack Custom Information
123
44
Get Protocol Stack Numbers by Media Number
123
45
Get Protocol Stack Numbers by LAN Board Number
123
46
Get Media Name by Media Number
123
47
Get Loaded Media Number List
123
50
Get General Router and SAP Information
123
51
Get Network Router Information
123
52
Get Network Routers Information
123
53
Get Known Networks Information
123
54
Get Server Information
123
55
Get Server Sources Information
123
56
Get Known Servers Information
123
60
Get Server Set Commands Information
123
61
Get Server Set Categories
Таблица операций службы каталогов Netware
10.5 Таблица операций службы каталогов Netware
Семенов Ю.А. (ГНЦ ИТЭФ)
Код операции
Описание
0x01
Resolve Name
0x02
Read Entry Information
0x03
Read
0x04
Compare
0x05
List
0x06
Search Entries
0x07
Add Entry
0x08
Remove Entry
0x09
Modify Entry
0x0A
Modify Relative Distinguished Name
0x0B
Define Attribute
0x0C
Read Attribute Definition
0x0D
Remove Attribute Definition
0x0E
Define Class
0x0F
Read Class Definition
0x10
Modify Class Definition
0x11
Remove Class Definition
0x12
List Containable Classes
0x13
Get Effective Rights
0x14
Add Partition
0x15
Remove Partition
0x16
List Partitions
0x17
Split Partition
0x18
Join Partition
0x19
Add Replica (копия секции каталога)
0x1A
Remove Replica
0x1B
Open Stream
0x1D
Create Subordinate Reference
0x1E
Link Replica
0x1F
Change Replica Type
0x20
Start Update Schema
0x21
End Update Schema
0x22
Update Schema
0x23
Start Update Replica
0x24
End Update Replica
0x25
Update Replica
0x26
Synchronize Partition
0x27
Synchronize Schema
0x29
Get Replica Root ID
0x2A
Begin Move Entry
0x2B
Finish Move Entry
0x2C
Release Move Entry
0x2D
Backup Entry
0x2E
Restore Entry
0x32
Close Iteration
0x35
Get Server Address
0x36
Set Keys
0x3B
Begin Authentication
0x3C
Finish Authentication
0x3F
Repair Timestamps
0x40
Create Back Link
0x41
Delete External Reference
0x42
Rename External Reference
0x43
Create Entry Directory
0x44
Remove Entry Directory
0x45
Designate New Master
0x46
Change Tree Name
0x47
Partition Entry Count
0x48
Check Login Restrictions
0x49
Start Join
0x4A
Low Level Split
0x4B
Low Level Join
0x4C
Abort Low Level Join
0x4D
Get All Servers
Таблица типов кадров управления доступом для сети Token Ring
10.6 Таблица типов кадров управления доступом для сети Token Ring
Семенов Ю.А. (ГНЦ ИТЭФ)
Код команды
Наименование
Класс адресата
Класс отправителя
0x0
Отклик (является реакцией на команды управления доступом)
Источник запроса
Рабочая станция
0x2
Аварийный сигнал (используется станциями для восстановления работоспособности после устойчивой ошибки)
Рабочая станция кольца
Рабочая станция кольца
0x3
Запрос маркера (используется для выбора активного монитора)
Рабочая станция
Рабочая станция
0x4
Очистка кольца (посылается активным монитором для повторного запуска маркерного доступа)
Рабочая станция
Рабочая станция
0x5
Активное мониторирование (используется активным монитором для опроса кольца)
Рабочая станция
Рабочая станция
0x6
Резервное мониторировние (используется дополнительным монитором для опроса кольца)
Рабочая станция
Рабочая станция
0x7
Проверка дублирования адреса (посылается станцией самой себе после подключения к кольцу)
Рабочая станция
Рабочая станция
0x8
Проверка среды ответвителя (проверяется целостность адаптера станции и ответвителя)
Рабочая станция
Рабочая станция
0x9
Пересылка вперед (служит для проверки наличия пути между станциями)
Рабочая станция
Сервер конфигурации
0xB
Удаление станции из кольца (если станция получает кадр с таким кодом и своим адресом получателя, она должна отключиться от сети)
Рабочая станция
Сервер конфигурации
0xC
Изменение параметров (используется сервером конфигурации для информирования станций об изменении параметров адаптера)
Рабочая станция
Сервер конфигурации
0xD
Инициализация станции (используется сервером параметров для пересылки данных в адаптер станции при ее инициализации)
Рабочая станция
Сервер параметров кольца
0xE
Запрос адреса станции (посылается серверу конфигурации в ответ на запрос)
Рабочая станция
Сервер конфигурации
0xF
Запрос состояния станции (Посылается сервером конфигурации для получения данных о состоянии станции)
Рабочая станция
Сервер конфигурации
0x10
Запрос подключения станции (используется станцией в ответ на запрос сервера конфигурации о подключении)
Рабочая станция
Сервер конфигурации
0x20
Запрос инициализации (используется для получения данных от сервера параметров)
Сервер параметров кольца
Рабочая станция
0x22
Запрос об адресе станции (посылается сервером конфигурации стации с целью определения ее адреса)
Сервер конфигурации
Рабочая станция
0x23
Запрос о состоянии станции (запрос о состоянии станции, посылаемый сервером конфигурации)
Сервер конфигурации
Рабочая станция
0x24
Запрос о подключении станции (используется сервером конфигурации для получения данных об адаптере станции)
Сервер конфигурации
Рабочая станция
0x25
Сообщение нового активного монитора (используется новым активным монитором для информирования о себе сервера конфигурации)
Сервер конфигурации
Рабочая станция
0x26
Сообщение об изменении адреса предшественника (используется станцией для сообщения серверу конфигурации об изменении ближайшего активного предшественника)
Сервер конфигурации
Рабочая станция
0x27
Сообщение о незавершенном опросе кольца (используется активным монитором для передачи монитору ошибок сообщений о нарушении порядка опроса)
Монитор ошибок
Рабочая станция
0x28
Сообщение об ошибке монитора (используется станцией для оповещения монитора ошибок о сбоях)
Монитор ошибок
Рабочая станция
0x29
Сообщение об ошибке (используется станциями для передачи серверу ошибок содержимого счетчиков нестабильных ошибок)
Монитор ошибок
Рабочая станция
0x2A
Отклик на передачу вперед (используется станцией для передачи серверу конфигурации результата передачи вперед)
Сервер конфигурации
Рабочая станция
Технические средства сетевой безопасности
6.1 Технические средства сетевой безопасности
Семенов Ю.А. (ГНЦ ИТЭФ)
Основу стабильности сети составляют надежность ЭВМ и сетевого оборудования, а также устойчивость каналов связи. Каналы связи, особенно если речь идет о проводных, достались нам от проклятого царизма, их создатели давно умерли и спросить не с кого. Начинать надо с того, что в вашей власти, а это прежде всего правильная конфигурация узла, разумное распределение ответственности и качество сетевого питания (стабильность напряжения и частоты, амплитуда помех). Для решения последней проблемы используют специальные фильтры, мотор-генераторы и UPS (Uninterruptable Power Supply). Выбор того или иного решения зависит от конкретных условий, но для серверов использование UPS крайне желательно (ведь вы не хотите восстанавливать дисковую систему, которая разрушилась из-за отключения питания в момент записи в FAT или dir). При снижении напряжения сети переменного тока ниже определенного уровня UPS (около 208v) отключает потребителя от сети и осуществляет питание ЭВМ от ~220v, получаемого от аккумулятора самого UPS. Учитывая нестабильность напряжения сети в России, можно считать полезным применение активных стабилизаторов на входе UPS.
При выборе UPS нужно учесть суммарную потребляемую мощность оборудования, подключаемого к источнику питания, и время, в течение которого UPS способен работать без напряжения в сети. При этом главная задача UPS - обеспечение завершения операций обмена с диском до того, как произойдет полное обесточивание сервера, или когда будет произведено переключение на резервный канал питания. Это осуществимо при использование специального интерфейса и соответствующего программного обеспечения, работающего согласно протокола SNMP(см. рис. 6.1.1).
Рис. 6.1.1. Схема подключения UPS.
При исчезновении первичного напряжения ~220V спустя некоторое время UPS выдает сигнал shutdown вычислительной машине. Современный UPS может мониторировать не только напряжение питание, но температуру окружающей среды, своевременно осуществляя спасение жизненно важных файлов до наступления чрезмерного перегрева системы. При этом значение напряжения питания и температуры можно считывать с использованием протокола SNMP. Некоторые продвинутые системы автономного питания допускают подключение агентов SNMP непосредственно к локальной сети, что открывает дополнительные возможности дистанционного управления и мониторинга.
Указанный интерфейс обеспечит блокировку начала новых операций обмена или выполнит shutdown, если напряжение в сети упало ниже допустимого уровня. К UPS не следует подключать дисплеи (эти приборы не столь критичны к питанию, как диски и оперативная память) и принтеры (лазерные принтеры запрещено подключать к UPS из-за мощных печек, входящих в состав этих приборов). Сетевые фильтры являются желательными при работе с любыми ЭВМ, так как сеть в России сильно засорена высокочастотными помехами.
Создавая сеть, следует сразу закладывать некоторые элементы, обеспечивающие безопасность. Так прокладку сетевых кабелей желательно производить в металлических коробах или трубах, что сделает подключение к ним более затруднительным. Повторители и концентраторы нужно размещать в запираемых шкафах. Некоторые концентраторы контролируют MAC-адреса пакетов. Такое оборудование позволяет блокировать порт, если обнаруживаются пакеты с неизвестным MAC-адресом, а также выявлять случаи подключения одного и того же MAC-адреса к разным портам. Определенную угрозу сетевой безопасности может представлять возможность присвоение хакером “чужого” MAC-адреса своей сетевой карте. Современные концентраторы запрещают подключенному к порту узлу передавать кадры с MAC-адресом, не совпадающим с определенным администратором для данного порта. Это обеспечивает дополнительную надежность канального уровня.
Активные разработки в последнее время ведутся в области систем идентификации, базирующихся на распознавания отпечатков пальцев, ладони, подписи или голоса. Для этих целей используются новейшие достижения в области быстрых Фурье-преобразований, нейронных сетей и пр. В качестве вводных устройств используются оптические сканеры, а также резистивные экраны. Для ввода подписи служат специальные планшеты , а также изощренные методы сравнения и установления идентичности.
Так как современные системы шифрования предполагают использование довольно трудоемких вычислений, которые заметно замедляют процесс, разрабатываются специальные микросхемы.
Поскольку абсолютная надежность недостижима, одним из средств сохранения информации является дублирование носителей (напр. дисков), копирование и сохранение копий в надежном месте. Если раньше для этой цели годились гибкие диски или магнитные ленты, сегодня их пригодность может быть подвергнута сомнению. Конечно, ленты типа Exabyte емкостью 2.5-10Гбайт еще достаточно широко используются, высокая стоимость таких накопителей ограничивает их применимость (да и скорость записи на них оставляет желать лучшего). Альтернативой им могут стать накопители с перезаписываемыми CD, где стоимость устройства несколько ниже, за то емкость одного диска для дешевых моделей пока не превосходит 1 Гбайт. Не исключено, что в скором времени основным средством сохранения информации станет ее дублирование на независимом жестком диске. Это может произойти при широком внедрении компактных жестких дисков емкостью 10 Гбайт и более .
В последнее время широкое распространение получают панели касания, способные распознавать людей по отпечатку пальца или ладони (см. http://elce.quarta.msk.ru/UCC/t_scrb_e.htm). Сходные устройства используются для непосредственного ввода подписи клиента (устройство типа планшет, иногда совмещаемое с дисплеем) и сверки ее с имеющимся образцом.
Типы субвекторов кадров управления доступом
10.7 Типы субвекторов кадров управления доступом
Семенов Ю.А. (ГНЦ ИТЭФ)
Тип
Наименование
Значение
0x01
Аварийный сигнал
0001 - установлен режим восстановления
0002 - в кольце потерян сигнал
0003 - борьба за монитор завершилась неудачей, нет кадров запроса маркера
0x02
Ближайший активный предшественник
Адрес станции - активного предшественника (нуль, если предшественник не выявлен)
0x03
Номер локального кольца
Номер локального кольца передающего адаптера
0x04
Задание номера физического отвода
Задает номер физического отвода для адаптера
0x05
Значение таймера для сообщения о неустойчивой ошибке
Время в мсек для таймера неустойчивой ошибки адаптера
0x06
Классы допустимых функций
Классы отправителей, которым разрешена передача
0x07
Приоритет разрешенного доступа
Максимальный приоритет маркера, при котором адаптеру разрешена передача (0-3)
0x08
Разрешенная среда
0 - несанкционированный режим сети
1 - санкционированный режим
0x09
Коррелятор
Используется для связи кадров друг с другом
0x0A
Последний адрес при опросе кольца
Адрес станции, передавшей последний кадр наличия активного или резервного монитора перед нарушением режима опроса кольца
0x0B
Номер физического отвода
Номер физического отвода адаптера (назначается администратором)
0x20
Код отклика
Код, используемый в кадре управления доступом:
0x001 - положительный отклик
0x8003 - команда не поддерживается
0x7007 - потерян необходимый субвектор
0x800A - операция заблокирована
0x21
Модификатор адреса
Посланный модификатор адреса адаптера не поддерживается
0x22
Идентификатор устройства
Идентифицирует параметры адаптера (код модели, имя фирмы производителя и пр.)
0x23
Характеристика программного обеспечения
Версия драйвера адаптера
0x26
Перенос данных
Заполнитель данных в кадрах управления доступом при проверке сетевой среды
0x27
Передача кадра
Кадр Token Ring, который быть должен передан адаптером получателю. Используется сервером конфигурации для тестирования маршрутов
Транспортный протокол реального времени RTCP
4.4.9.3 Транспортный протокол реального времени RTCP
Семенов Ю.А. (ГНЦ ИТЭФ)
Управляющий протокол RTCP (RTP control protocol; см. RFC-1889 “RTP: A Transport Protocol for Real-Time Applications” H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson) базируется на периодической передаче управляющих пакетов всем участникам сессии, используя тот же механизм рассылки, что и для пакетов данных. Этот протокол не имеет самостоятельного значения и используется лишь совместно с RTP. Нижележащий протокол должен обеспечивать мультиплексирование пакетов данных и управления, используя разные номера портов. RTCP выполняет четыре функции:
1. Главной задачей данного протокола является обеспечение обратной связи для контроля качества при рассылке данных. Обратная связь может быть непосредственно полезна при адаптивном кодировании [1,2], но эксперименты с IP мультикастингом показали, что для получателей крайне важно диагностировать ошибки при рассылке пакетов. Посылка сообщений-отчетов о приеме данных всем участникам позволяет тому, кто обнаружил какие-то проблемы, разобраться в том, являются ли эти трудности локальными или глобальными. При механизме рассылки типа IP-мультикастинга, сервис провайдер, который непосредственно не вовлечен в сессию, получив обратную связь, может независимо мониторировать ситуацию в сети.
2. RTCP имеет постоянный идентификатор транспортного уровня для RTP источника, который называется каноническим именем или cname. Так как SSRC-идентификатор может быть изменен, если будет зафиксировано столкновение или источник будет вынужден рестартовать, получатели нуждаются в cname, для того чтобы отслеживать каждого из участников. Получателям также нужно Cname, чтобы установить соответствие между многими потоками данных от одного участника при реализации нескольких сессий одновременно, например, чтобы синхронизовать аудио- и видео-каналы.
3. Первые две функции требуют, чтобы все участники посылали RTCP-пакеты, следовательно скорость передачи должна контролироваться для того, чтобы RTP мог работать с большим числом участников. При посылке каждым участником своих управляющих пакетов всем остальным любой партнер может независимо определить полное число участников сессии. Это число используется при вычислении частоты посылки пакетов.
Новые получатели должны приобрести cname для источника как можно быстрее, каждый составной RTCP-пакет должен включать в себя SDES Cname.
Число типов пакетов, которые могут впервые появиться в составном пакете, должно быть ограничено.
Таким образом, все rtcp-пакеты должны посылаться в составных пакетах (не менее 2) и иметь следующий рекомендованный формат:
Префикс шифрования. Если составной пакет должен быть зашифрован, он снабжается 32-битным случайным числом-префиксом, которое копируется для каждого передаваемого составного пакета.
SR или RR. Первый RTCP-пакет в составном пакете должен быть всегда сообщением-отчетом. Это справедливо, даже если не было послано или получено никаких данных, в этом случае посылается пустой пакет RR. Это справедливо, даже если другим RTCP -пакетом в составной дейтограмме является Bye.
Дополнительные RR. Если число источников, для которых приводится статистика приема, превышает 31, в первый пакет помещается информация по части источников, остальная часть размещается в следующих RR-пакетах.
SDES. SDES-пакет, содержащий Cname, должен быть включен в каждый составной RTCP-пакет. Другие элементы описания источника могут быть опционно добавлены, если этого требует характер приложения и позволяет пропускная способность используемого канала.
Bye или APP. Другие типы RTCP-пакетов, включая те, которые еще предстоит определить, могут следовать далее в произвольном порядке. Пакет bye, если он присутствует, должен быть последним и содержать SSRC/CSRC. Пакеты одного и того же типа могут повторяться.
Для трансляторов и смесителей рекомендуется объединять RTCP-пакеты от нескольких источников. Пример составного RTCP-пакета, который может быть сформирован смесителем, представлен на рис. 4.4.9.3.1. Если полная длина составного пакета превысит максимальный размер пересылаемого блока данных для сети (MTU), он может быть фрагментирован и переслан в нескольких составных пакетах нижележащего транспортного протокола. Заметьте, что каждый составной пакет должен начинаться с SR или RR-пакета.
Приложение может игнорировать RTCP пакеты неизвестного ему типа. Дополнительныетипы RTCP-пакетов могут быть зарегистрированы IANA (internet assigned numbers authority).
Рис. 4.4.9.3.1. Пример составного пакета RTCP (#: SSRC/CSRC)
Протокол RTP построен так, чтобы позволять приложению изменять число участников от единиц до тысяч. Например, при аудио конференциях информационный поток всегда ограничен (сколько бы не было участников, все они одновременно говорить не могут, так как не смогут ничего понять). Однако, трафик управления таким свойством не обладает. Если доклады о приеме от каждого участника поступают с постоянной частотой, трафик управления будет расти пропорционально числу участников. Следовательно, нужно принимать меры по ограничению трафика.
Для каждой сессии предполагается, что предельно допустимый информационный трафик сессии делится между участниками. Эта полоса пропускания может быть зарезервирована. Полоса не зависит от метода кодирования, но на выбор метода кодирования может оказать влияние имеющаяся в распоряжении полоса пропускания используемого канала. Определенные ограничения на полосу сессии может накладывать конкретное приложение. Вычисления полосы пропускания, необходимой для управления, требует учета издержек транспортных протоколов (например, UDP и IP).
Трафик управления должен быть ограничен малой долей полной полосы пропускания сессии: настолько малой, чтобы не нанести ущерба основной функции транспортного протокола – переносу информации. Предлагается, чтобы доля трафика сессии, выделенная на RTCP была фиксирована на уровне не более 5%. Параметры, определяющие трафик, должны быть идентичными для всех участников, так чтобы они могли корректно вычислить период рассылки отчетов. Эти параметры фиксируются в соответствующем профайле.
Алгоритм вычисления периода рассылки составных RTCP-пакетов включает в себя следующие моменты:
o Отправители коллективно выделяют по крайней мере 1/4 управляющего трафика, так чтобы в сессиях с большим числом получателей и малым числом отправителей новые участники быстро получали cname узлов отправителей.
o Вычисленный интервал между RTCP-пакетами должен быть больше 5 сек, с тем чтобы избежать превышения допустимого значения трафика при флуктуациях информационного потока, когда число участников мало.
o Интервалы между RTCP-пакетами варьируются случайным образом в пределах [0.5-1.5] от вычисленного значения, с тем чтобы избежать непреднамеренной синхронизации работы участников [3]. Первый RTCP-пакет, посланный после подключения к сессии, также задерживается случайным образом со средним значением, равным половине вычисленного интервала.
o Для того чтобы адаптироваться к количеству пересылаемой контрольной информации, вычисляется среднее значение размера составного пакета для отправляемых и получаемых дейтограмм.
Этот алгоритм может использоваться для сессий, в которых всем участникам позволено посылать данные. В этом случае полоса пропускания сессии зависит от произведения трафика индивидуального отправителя на число участников сессии, а полоса пропускания RTCP должна быть равна 5% от этого значения.
Вычисление периода рассылки RTCP-пакетов зависит от оценки числа узлов, участвующих в сессии. Новые узлы добавляются к этому числу, когда они услышаны и соответствующие записи занесены в таблицы SSRC или CSRC-идентификаторов. Новые записи не рассматриваются, как действующие, до тех пор, пока не будет получено несколько пакетов с новым SSRC. Записи могут быть стерты из таблицы, когда приходит пакет RTCP Bye с соответствующим идентификатором SSRC.
Участник может пометить другой узел как пассивный, или удалить его из списка, если от него не получено RTP или RTCP-пакетов в течение нескольких периодов RTCP-отчетов (пороговое число периодов предлагается сделать равным 5). Это обеспечивает определенную устойчивость против случайной потери пакетов. Все узлы должны вычислить период RTCP-отчетов, чтобы корректно оценить время тайм-аута.
Если зарегистрированный узел помечен как пассивный, он будет оставаться в списках достаточно долго и учитываться при вычислении распределения полосы пропускания для RTCP. Значение тайм-аута предлагается сделать равным 30 минутам. Заметим, что это значение почти в 5 раз больше, чем наибольшая величина периода рассылки RTCP-отчетов, который составляет 2-5 мин.
Данная спецификация определяет несколько элементов описания источника (SDES). Сюда входит CNAME (каноническое имя), Name (персональное имя) и Email (электронный адрес). Спецификация предлагает также средства для определения типа RTCP-пакетов, специфического для конкретного приложения. Приложения должно проявлять определенную осторожность при выделении полосы для любой дополнительной информации, так как это неизбежно вызовет замедление скорости предоставления отчетов и задержит присылку. Рекомендуется, чтобы дополнительная информация индивидуального участника не занимала более 20% полосы, выделенной для RTCP. Более того, даже не предполагается, что все элементы SDES будут включаться каждым приложением. Например, приложение может посылать только CNAME, name и email и не посылать более никакой дополнительной информации. name может быть присвоен более высокий приоритет чем email, так как name будет отображаться пользовательским интерфейсом приложения постоянно, в то время как Email может отображаться только при запросе. При каждой RTCP рассылке, должны посылаться RR- и SDES-пакеты. Последний содержит элемент Cname. Для небольших сессий, работающих с минимальными периодами рассылки, это будет делаться в среднем каждые 5 секунд. Каждая третья рассылка (15 секунд) может содержать один дополнительный элемент в пакете SDES. Семь из восьми раз это будет элемент name, и каждый восьмой раз (2 минуты) это будет элемент Email.
Когда несколько приложений работают одновременно, например, в случае мультимедиа конференции, допускается, чтобы дополнительная информация пересылалась только в рамках одной RTP-сессии. Остальные сессии будут использовать только элемент cname.
RTP-получатели обеспечивают обратную связь контроля качества, используя RTCP пакеты отчетов, которые могут принимать ту или иную форму в зависимости от того, является ли получатель одновременно и отправителем. Единственным различием между формами отчета отправителя (SR) и получателя (rr), помимо кода типа пакета, является то, что отчет отправителя содержит 20-байтовую секцию информации об отправителе. SR посылается, если узел отправил какие-либо информационные пакеты за время подотчетного периода (с момента отправки предыдущего отчета), в противном случае отправляется пакет RR.
Как SR так и RR-формы включают в себя нуль или более блоков отчетов о приеме, один для каждого источника синхронизации, от которого получатель принял информационные RTP-пакеты с момента последнего отчета. Отчеты не направляются для источников, перечисленных в списке CSRC. Каждый блок отчета о приеме содержит статистику данных, полученных от конкретного источника. Так как в SR или RR-пакет можно поместить максимум 31 блок отчетов, дополнительные RR-пакеты укладываются после исходного SR или RR-пакета.
Пакет отчета отправителя состоит из трех секций (см. рис. 4.4.9.3.2), за которыми может следовать четвертая, которая определяется, если необходимо, профайлом. Первая секция – заголовок, имеет 8 октетов. Эта секция содержит следующие поля:
Версия (v): 2 бита
Идентифицирует версию протокола RTP, которая совпадает с версией RTCP-пакетов. Для данной спецификации v=2.
Заполнитель (p): 1 бит
Если бит заполнителя p=1, то этот пакет RTCP содержит некоторые октеты заполнителя после управляющей информации. Последний октет заполнителя содержит число октетов заполнителя. Заполнитель может быть нужен при некоторых алгоритмах шифрования, использующих фиксированные блоки. В составных RTCP-пакетах, заполнитель может быть нужен только последнему пакету, так как составной пакет шифруется как целое.
Рис. 4.4.9.3.2. Формат RTCP пакета сообщения отправителя
Число отчетов о приеме (RC): 5 бит
Число блоков отчетов о приеме, содержащихся в этом пакете. Допустимо значение нуль.
Тип пакета(pt): 8 бит
Содержит константу 200 для пакетов RTCP SR.
Длина: 16 бит
Длина rtcp-пакета в 32-битных словах минус один, включая заголовок и заполнитель.
ssrc: 32 бит
Идентификатор источника синхронизации для отправителя sr-пакета.
Вторая секция информации из 20 октетов присутствует в каждом пакете отправителя. Поля этой секции имеют следующие значения:
Временная метка NTP: 64 бита
Указывает абсолютное время, когда данный доклад был послан, оно может быть использовано в комбинации с временными метками, присланными в докладах о приеме другими получателями, для измерения RTT до этих получателей.
Временная метка rtp: 32 бита
Соответствует тому же времени, что и временная метка ntp, но измеряется в тех же единицах и с тем же произвольным смещением, что и временные метки информационных пакетов RTP. Это соответствие может использоваться для внутри- и межсредовой синхронизации для источников, чьи временные метки NTP синхронизованы, и может быть использовано получателями, независящими от среды для оценки номинальной задающей частоты RTP. Заметьте, что в большинстве случаев эти временные метки не будут равны временным меткам RTP в любых последовательных информационных пакетах.
Число пакетов отправителя: 32 бита
Полное число информационных RTP-пакетов, переданных отправителем от начала передачи до момента генерации SR-пакета. Число сбрасывается в нуль, если отправитель изменяет свой SSRC-идентификатор.
Число октетов отправителя: 32 бита
Полное число октетов поля данных (исключая заголовки и заполнители), переданных в информационных RTP-пакетах отправителем, начиная с начала передачи до момента генерации SR-пакета. Это число сбрасывается в нуль, когда отправитель меняет свой SSRC-идентификатор. Это поле может быть использовано для оценки среднего потока данных.
Третья секция состоит из нуля или более блоков отчета о приеме в зависимости от числа источников, пакеты от которых приняты с момента последнего отчета. Каждый блок отчета о приеме несет в себе статистику получения RTP-пакетов, поступающих от одного из источников синхронизации. Получатель не сохраняет статистику, когда источник изменяет свой ssrc-идентификатор.
ssrc_n (идентификатор источника): 32 бита
ssrc-идентификатор источника, к которому относится информация, содержащаяся в блоке отчета о получении.
Доля потерянных (пакетов): 8 бит
Часть информационных RTP-пакетов от источника ssrc_n потерянная с момента посылки предыдущего SR или RR-пакетов, представленная в виде числа с фиксированной запятой, помещенной слева. Это эквивалентно целому, полученному после умножения данного числа на 256. Эта доля получается в результате деления числа потерянных пакетов на ожидаемое число пакетов. Если потери из-за дубликатов оказались отрицательны, доля потерянных пакетов объявляется равной нулю. Заметим, что от источника, все пакеты которого были потеряны при транспортировке отчета о приеме послано не будет.
Суммарное число потерянных пакетов: 24 бита
Полное число информационных RTP-пакетов от источника SSRC_n, которые были потеряны с момента начала передачи. Это число определяется как разность между ожидаемым и полученным числами пакетов, где число полученных включает в себя и дубликаты. Таким образом, пакеты, пришедшие с опозданием, не считаются потерянными, а число потерянных пакетов может оказаться отрицательным, если получены дубликаты пакетов. Число ожидаемых пакетов определяется как разность между номером последнего полученного пакета и номером первого пакета.
Наибольший номер из числа полученных пакетов
: 32 бита
Младшие 16 бит содержит наибольший порядковый номер полученного от источника SSRC_n информационного RTP-пакета. Старшие 16 бит несут в себе число циклов нумерации (переполнения счетчика номеров пакетов). Заметим, что различные получатели в рамках одной и той же сессии генерируют разные коды циклов нумерации (расширений), если они начали свою работу в разное время.
Разброс времени доставки: 32 бита
Оценка статистической вариации периода прихода RTP-пакетов, измеряемого с помощью временных меток и характеризуемого целым числом. Разброс периода прихода пакетов j определяется как усредненное отклонение разности D расстояния между пакетами со стороны получателя по отношению к той же величине для стороны отправителя. Эта величина характеризует относительный разброс времени транспортировки пакетов.
Если si равно временной метке i-го пакета RTP, а ri – время прибытия в единицах временной метки пакета i, тогда для двух пакетов i и j D может быть выражено как
di,j =(rj-ri)-(sj-si)=(rj-sj)-(ri-si)
Разброс времени доставки вычисляется непрерывно для каждого пребывающего от SSRC_n пакета i, используя разность D для данного пакета и предыдущего пакета i-1 согласно формуле
j=j+(|di-1,i|-j)/16
Вычисление разброса времени доставки позволяет мониторам, независимым от профайла, осуществлять интерпретацию докладов, приходящих от различных приложений. Это алгоритм является оптимальным первым приближением и масштабный параметр 1/16 обеспечивает приемлемое уменьшение влияние шума и разумную скорость сходимости [4].
Последняя временная метка (LSR) (last SR): 32 бита
Средние 32 бита из 64 во временной метке NTP, полученной как часть последнего отчета RTCP-отправителя (SR) об источнике SSRC_n. Если SR пока не получено, в поле заносится нуль.
Задержка с момента последнего SR (DLSR- delay of last sr): 32 бита
Задержка, выраженная в единицах 1/65536 секунды, между моментом получения последнего SR-пакета от источника SSRC_n и временем посылки блока отчета о приеме. Если ни одного пакета SR от ssrc_n пока не получено, в поле DLSR заносится нуль.
Пусть SSRC_r обозначает получателя, отправляющего отчет о приеме. Источник SSRC_n может вычислить циклическую задержку маршрута RTT для SSRC_r путем записи времени a, когда этот блок доклада о приеме был получен. Он вычисляет полное время RTT A-LSR, используя поле последней временной метки SR (LSR), и затем путем вычитания получает (A - LSR- DLSR). Это проиллюстрировано на рис. 4.4.9.3.3.
Это может быть использовано в качестве меры расстояния до кластера получателей, хотя некоторые связи имеют весьма асимметричный характер задержек.
rr: rtcp-пакет отчета о приеме (RFC-1889)
[10 nov 1995 11:33:25.125] [10 nov 1995 11:33:36.5]
Рис. 4.4.9.3.4. Формат пакета отчета о приеме (RR)
Формат пакета отчета о приеме (RR) аналогичен формату SR пакета за исключением того, что поле типа содержит код 201 и опущены первые пять слов информации об отправителе (это NTP/RTP временные метки, а также число пакетов и октетов отправителя). Остальные поля имеют то же самое значение, как и для пакета SR.
Когда нет информации об отправке или приеме, в начало составного RTCP-пакета вставляется пустой RR-пакет (RC = 0).
Профайл должен определять специфические для приложения расширения в докладах получателей и отправителей, если имеется дополнительная информация о получателе или отправителе, которая должна регулярно сообщаться. Этот метод предпочтительнее, чем описание нового типа RTCP-пакета, так как не требует дополнительных издержек:
меньше октетов в пакете (нет rtcp-заголовка или поля SSRC);
проще и быстрее разбор, так как приложение, работающее под управлением профайла, будет запрограммировано всегда ожидать поля расширения с известным их положением в пакетах отчетов.
Если необходима дополнительная информация, она должна быть включена в первую очередь в расширение для отчета отправителя, но не будет присутствовать в отчетах о приеме. Если должна быть подключена информация о получателях, эти данные могут структуризоваться в виде массива блоков дополнительно к существующему массиву блоков-отчетов, т.е., число блоков будет задано полем RC.
Ожидается, что качество обратной связи важно не только для отправителя и получателей, но и для независимых мониторов. Отправитель может модифицировать свою передачу на основе обратной связи, получатели могут определить, являются ли проблемы локальными, региональными или глобальными. Менеджер сети может использовать независимые мониторы, которые получают только RTCP-пакеты, а не соответствующие информационные RTP-пакеты, для оценки эксплуатационных параметров своей сети для мультикастного обмена.
На основе информации отправителя независимый монитор может вычислить усредненное значение потока данных, не получая этих данных. Если можно предположить независимость вероятности потери пакета от его размера, тогда число полученных пакетов, умноженное на средний размер поля данных, может дать оценку для пропускной способности получателя.
Для RTCP допустимо расщепление составных пакетов на пакеты нижележащего уровня, один зашифрованный и один открытый. Например, информация SDES может быть зашифрована, в то время как отчеты о приеме будут посылаться открыто для обеспечения мониторинга. В примере, представленном на рис. 4.4.9.3.5 информация SDES должна быть присоединена к RR-пакету, не содержащему отчета. Таким образом, соблюдается правило о том, что все составные пакеты начинаются с SR или RR пакетов.
Рис. 4.4.9.3.5. Зашифрованный и незашифрованный RTCP-пакеты (#ssrc)
SDES: RTCP-пакет описания источника
Рис. 4.4.9.3.6. Формат пакета SDES
Пакет SDES состоит из заголовка и нескольких фрагментов, каждый из которых содержит элементы описания источника, соответствующего данному фрагменту (число фрагментов может быть равно нулю).
Поля версия (v), заполнитель (p) и длина имеют то же назначения что и в случае SR-пакетов.
Тип пакета (pt): 8 бит
Содержит константу 202, которая идентифицирует данный пакет как RTCP SDES.
Число источников (SC): 5 бит
Число фрагментов SSRC/CSRC, содержащихся в данном SDES-пакете. Значение нуль допустимо, но бесполезно.
Каждый фрагмент состоит из идентификатора SSRC/CSRC, за которым следует список элементов описания источника SSRC/CSRC (число элементов может равняться нулю). Каждый фрагмент начинается на 32-битовой границе. Каждый элемент состоит из 8-битового поля типа, 8-битового поля числа октетов, характеризующего длину текста, исключая эти 2 октета заголовка, и собственно текста. Заметьте, что текст не может содержать более 255 октетов, но это вполне согласуется с требованиями ограничений на полосу, выделяемую для RTCP-пакетов.
Текст кодируется согласно требованиям UTF-2, описанным в стандарте 10646 [5,6], annex F ISO. Эта кодировка известна также под названием UTF-8 или UTF-FSS. Она описана в документе "File System Safe UCS Transformation Format (FSS_UTF)", “X/open preliminary specification”, документ номер P316 и “Unicode Technical Report #4". US-ASCII являются модификациями данного кодирования и требуют определенных доработок. Присутствие многооктетного кодирования задается путем установления старшего бита октета символа равным 1.
Описания элементов плотно прилегают друг к другу, т.е., их описания не выравниваются на 32-битовые границы путем индивидуального заполнения. Текст не завершается нулем, так как мультиоктетное кодирование может включать в себя нули. Список элементов в каждом фрагменте завершается одним или несколькими нулевыми октетами, первый из которых интерпретируется как тип элемента нуль, завершающий список, а последующие служат для заполнения до 32-битовой границы. Фрагменты, содержащие только нулевые элементы (4 нулевых октета), допускаются, но бесполезны.
Оконечные системы посылают один пакет SDES, содержащий их собственный идентификатор источника (то же, что и SSRC в фиксированных RTP-заголовках). Смеситель посылает один пакет SDES, содержащий фрагмент для каждого источника, от которого поступает SDES-информация, или несколько SDES-пакетов описанного выше формата в случае, когда число таких источников больше 31.
Из числа SDES-элементов только cname является обязательным. Некоторые элементы, описанные ниже, могут оказаться полезными только для определенных профайлов, но типы элементов выделяются из общего кодового пространства, с тем чтобы обеспечить совместную работу различных приложений. Дополнительные элементы могут быть определены в профайле путем регистрации их кодов IANA.
cname: Канонический идентификатор конечной системы (рис. 4.4.9.3.7).
Рис. 4.4.9.3.7. Формат Cname
Идентификатор cname имеет следующие свойства:
Так как характеризуемый случайным числом идентификатор ssrc может измениться, если обнаруживается конфликт или если программа перезапускается, элемент cname должен обеспечить связь между идентификатором SSRC и источником, которая должна оставаться неизменной.
Подобно идентификатору SSRC, идентификатор cname должен быть уникальным для каждого из участников RTP-сессии.
Чтобы обеспечить связь между мультимедийными средствами, используемыми одним и тем же участником в наборе взаимосвязанных RTP-сессий, cname должно быть зафиксировано для данного участника.
Для того чтобы обеспечить независимый мониторинг, Cname должно быть удобным средством идентификации источника как для программы, так и для человека.
Следовательно, cname должно по возможности получаться алгоритмически, а не вводиться вручную. Чтобы удовлетворить этому требованию следует использовать описанный ниже формат, если другой синтаксис или семантика не задана. Элемент cname должен иметь формат "user@host", или "host", если имя пользователя не доступно, как это бывает в однопользовательских системах. Для обоих форматов, "host" является либо полным именем домена ЭВМ, откуда поступают данные в реальном масштабе времени, форматированные согласно требованиям документов RFC-1034 [7], RFC-1035 [8] и раздела 2.1 RFC-1123 [9]; или стандартным ASCII-представлением цифрового, сетевого адреса интерфейса ЭВМ, используемого для RTP-обмена. Например, стандартное ASCII-представление IP-адреса (версия 4) в "точечно-цифровом" виде. Стандартное полное имя домена более удобно для человека и исключает необходимость посылать в дополнение элемент Name, но в некоторых обстоятельствах его может быть трудно или невозможно получить. Примерами могут служить "dwarf@sleepy.beauty.com" или "dwarf@192.166.148.9" для мультипользовательских систем. В системах, где нельзя получить имя пользователя, можно применить “sleepy.beauty.com" или "192.166.148.9".
Имя пользователя должно иметь форму, которая может быть использована в запросах "Finger" или "Talk", т.е., это скорее имя, вводимое при аутентификации, чем истинное имя пользователя. Имя ЭВМ не обязательно идентично электронному почтовому адресу участника.
Этот синтаксис не обеспечит уникальность имени в тех случаях, когда приложение позволяет пользователю сформировать несколько источников на своей ЭВМ. Такое приложение должно полагаться на SSRC для дополнительной идентификации источника, или на профайл, для которого приложение должно будет специфицировать синтаксис идентификаторов cname.
Если каждое приложение создает свои cname независимо, в результате можно получить дублирующие имена. Если необходимо осуществить связь между сессиями, работающими в разных средах, должны быть использованы специальные средства, которые с одной стороны обеспечат уникальность имен, а с другой припишут идентичные имена источникам, размещенным в одной ЭВМ, но работающих с разными средами.
Разработчики приложений должны учитывать возможность того, что использование сетевого адреса, например, для Net-10 (описано в документе RFC-1597 [10]) может привести к появлению имен дубликатов. Дубликаты имен могут возникать, когда ЭВМ с частными адресами, не имеющие выхода в Интернет, переадресуют свои RTP-пакеты в Интернет через транслятор RTP-уровня. (См. также RFC-1627 [11].) Для того чтобы разрешать такие конфликты приложение должно иметь средства для выработки и присвоения уникальных имен cname.
Name: Имя пользователя (рис. 4.4.9.3.8).
Рис. 4.4.9.3.8. Формат элемента Name
Это настоящее имя, используемое для описания источника, напр., "Иван Дурак, russia.com". Оно может быть сформировано пользователем в произвольной форме. Для приложений типа конференций эта форма имени может быть наиболее желательной при отображении в списках участников и, следовательно, может посылаться более часто, чем любые другие элементы помимо cname. Такой приоритет может быть установлен профайлом. Значение name предполагается неизменным, по крайней мере в пределах сессии. В то же время не требуется, чтобы оно было уникальным для группы участников сессии.
Email: Адрес электронной почты (рис. 4.4.9.3.9).
Рис. 4.4.9.3.9. Формат элемента Email
Адрес электронной почты должен иметь формат, согласующийся с требованиями документа RFC-822 [12], например, "yuri.semenov@itep.ru". Значение элемента Email предполагается неизменным в пределах сессии.
phone: Телефонный номер
Рис. 4.4.9.3.10. Формат элемента phone
Телефонный номер должен иметь формат с символом плюс, замещающим международный код. Например, , "+7 095 129 9442" для номера в России.
LOC: Географический адрес пользователя
Рис. 4.4.9.3.11. Формат элемента LOC
Различная детализация этого элемента сильно зависит от приложения. Для использования во время конференций строки типа "Zuzino, Moscow" может быть достаточно, в то время как для активной системы поиска сотрудников приемлемой может стать строка "room 322, itep bl 180". Значение LOC предполагается неизменным на время сессии. Исключение могут составлять мобильные ЭВМ.
TOOL: Имя приложения или программного средства
Рис. 4.4.9.3.12. Формат элемента TOOL
Строка, сообщающая имя и, возможно, версию приложения, формирующего поток, напр., "VC 2.1". Эта информация может быть полезной для отладочных целей и сходна с SMTP-заголовками. Предполагается, что значение TOOL остается постоянным в течение сессии.
Note: Уведомление/статус
Рис. 4.4.9.3.13. Формат элемента Note
Для этого элемента предлагается следующая семантика (она может быть определена профайлом). Элемент note предназначен для сообщений, характеризующих текущее состояние источника, напр., "on the phone, can't talk". Или, во время семинара этот элемент может быть использован для передачи темы обсуждения. Он может служить только для передачи необычной информации и не должен включаться в систематическую рассылку, так как замедлит скорость передачи отчетов. В частности, он не должен включаться в конфигурационный файл пользователя.
Так как может быть важно отобразить элемент Note (в случае, когда он активен), скорость, с которой передаются другие элементы (кроме cname), такие как Name, может быть уменьшена с тем, чтобы передать элемент Note. Когда сообщение становится не актуальным, элемент note передается еще несколько раз с той же частотой, но с длиной строки, равной нулю. Однако, получатели должны рассматривать элемент Note потерявшим актуальность, если они не получают его, например, на протяжении 20-30 RTCP-интервалов.
PRIV: Элемент частного расширения SDES
Рис. 4.4.9.3.14. Формат элемента расширения PRIV
Этот элемент используется, для того чтобы определить экспериментальные или специфические для приложения расширения SDES. Элемент содержит префикс, включающий в себя субполя длины и строки префикса, за которыми следует строка значения, занимающая остальное пространство элемента, и несущая необходимую информацию. Поле длины префикса занимает 8 бит. Строка префикса представляет собой имя, определенное человеком, который сформировал элемент PRIV. Это имя должно быть уникальным и никакой другой элемент priv не может иметь такое же. Разработчик приложения может выбрать имя приложения плюс, если необходимо, дополнение.
Заметьте, что префикс занимает некоторое место, из числа 255 октетов элемента, по этой причине желательно, чтобы он был короче.
Префиксы SDESpriv не нужно регистрировать в IANA. Если некоторая форма элемента PRIV окажется достаточно универсальной, она должна быть приписана некоторому регулярному типу элемента SDES, зарегистрированному IANA, так что необходимость в префиксе отпадет. Это упростит использование и увеличит эффективность передачи.
Bye: Пакет завершения сессии RTCP
Рис. 4.4.9.3.15. Формат пакета Bye
Пакет Bye указывает на то, что один или более источников покинули сессию.
Поля версия (V), заполнитель (P) и длина имеют то же назначения что и в случае SR-пакетов
Тип пакета (PT): 8 бит
Содержит код 203, который указывает на то, что это RTCP пакет Bye.
Число источников (SC): 5 бит
Число фрагментов SSRC/CSRC, содержащихся в данном bye-пакете. Значение нуль допустимо, но бесполезно.
Если пакет bye получен смесителем, он переадресует этот пакет с идентификаторами SSRC/CSRC без изменений. Если сам смеситель отключается, он должен послать пакет Bye, перечислив все источники, вносившие вклад в поток, с которым он работал, а также свой идентификатор SSRC. Опционно пакет Bye может содержать 8-битовое число октетов, за которым следует текст соответствующей длины, объясняющий причину отключения, например "camera malfunction" или "RTP loop detected". Строка имеет то же кодирование, что описано для SDES. Если строка заполняет пакет до очередной 32-битовой границы, то в конце ее не будет нуля. В противном случае, пакет Bye дополняется нулевыми октетами.
Пакет APP предназначен для экспериментального использования при разработке новых приложений или новых функций. Здесь не требуется регистрация типа пакета. APP-пакеты с не узнанными именами должны игнорироваться. После тестирования, когда предполагается широкое использование, рекомендуется новый APP-пакет переопределить без субтипа и поля имени, после чего его следует зарегистрировать в IANA (Internet Assigned Numbers Authority), как новый тип RTCP-пакета.
Поля версия (V), заполнитель (P) и длина имеют то же назначения что и в случае SR-пакетов.
Субтип: 5 бит
Может использоваться в качестве субтипа, допуская описание набора APP-пакетов с уникальным именем, или для любых данных, специфических для конкретного приложения.
Тип пакета (PT): 8 бит
Содержит код 204, который указывает на то, что это RTCP пакет APP.
Имя: 4 октета
Имя, выбираемое разработчиком, который определил набор APP-пакетов. Это имя должно быть уникальным и не совпадать ни с одним другим именем другого APP-пакета данного приложения. Разработчик приложения может использовать для данной цели имя приложения. При этом новые типы пакетов приложения будут отличаться друг от друга кодом субтипа. Имя интерпретируется как последовательность четырех ASCII-символов, где строчные и прописные буквы не являются тождественными.
Поле информация, зависящая от приложения имеет переменную длину.
Информация, зависящая от приложения используется в APP-пакетах опционно. Она интерпретируется приложением, а не самим RTP. Размер поля должен быть кратным 32 бит.
Обработка RTCP в трансляторах
Кроме переадресации информационных пакетов (иногда с некоторой модификацией) трансляторы и мультиплексоры должны также обрабатывать RTCP-пакеты. Во многих случаях они разделяют на составные части комбинированные RTCP-пакеты, полученные от оконечных систем, собирают SDES-информацию и модифицируют SR или RR-пакеты. Пересылка этой информации может инициироваться приходом пакета или RTCP-таймером транслятора или смесителя.
Транслятор, который не модифицирует информационные пакеты, например такой, который осуществляет связь между мультикастными и уникастными адресами, может просто переадресовывать RTCP-пакеты. Транслятор, который каким-то образом модифицирует поле данных, должен выполнить соответствующие преобразования в SR и RR-информации, так чтобы она отражала качество приема. Такие трансляторы не должны просто переадресовывать RTCP-пакеты. Вообще транслятор не должен объединять SR и RR-пакеты от различных источников, так как это ухудшит точность измерения задержки распространения, использующего поля LSR и DLSR.
Информация отправителя SR. Транслятор не генерирует своей собственной информации отправителя, а переадресует SR-пакеты, полученные из одной области и адресованные в другие области. SSRC остается неизменным, но, если необходима трансляция, информация отправителя должна быть модифицирована. Если транслятор изменяет кодировку данных, он должен изменить поле число октетов отправителя. Если он объединяет несколько информационных пакетов в один, то нужно изменить поле число пакетов отправителя. Если он изменяет частоту временных меток, нужно модифицировать поле временная метка RTP в SR-пакете.
Блоки отчетов о приеме SR/RR: Транслятор переадресует доклады о приеме, полученные из одной области сети в другие. Заметим, что эти сообщения движутся в направлении противоположном данным. SSRC при этом остается неизменным. Если транслятор объединяет несколько информационных пакетов в один выходной пакет, и, следовательно, изменяет номер по порядку, он должен позаботиться о модификации полей потерянных пакетов и наибольший номер из числа полученных пакетов.
Транслятор не нуждается в своем собственном SSRC-идентификаторе, но может и завести такой идентификатор, для того чтобы посылать отчеты о том, что получено. Такие отчеты будут посылаться во все области сети, подключенные к транслятору.
SDES. Трансляторы осуществляют переадресацию без изменения SDES-информации, полученной из сетевых областей, участвующих в сессии. Но они могут, например, решить отфильтровывать некоторую информацию, если этого требуют ограничения пропускной способности. Транслятор, который генерирует свои собственные RR-пакеты, должен посылать SDES CNAME-информацию о самом себе в область сети, куда он шлет эти RR-пакеты.
BYE. Трансляторы переадресуют пакеты BYE без изменений. Трансляторы, имеющие свой собственный SSRC должны генерировать пакеты BYE с этим SSRC-идентификатором, если они намереваются прекратить свою работу по переадресации.
APP. Трансляторы переадресовывают APP-пакеты без каких-либо изменений.
Обработка RTCP в смесителях
Так как смеситель генерирует, свой собственный информационный поток, он не пропускает через себя SR или RR-пакеты и вынужден формировать новые пакеты для отправки в обоих направлениях.
Информация отправителя SR. Смеситель не пропускает через себя данные об отправителе от источников, которые он объединяет, так как характеристики потока при смешении кардинально меняются. Как источник синхронизации смеситель генерирует свои собственные SR-пакеты с информацией отправителя и посылает их в том же направлении, что и смешанный поток.
Блоки отчетов о приеме SR/RR. Смеситель генерирует свои собственные отчеты о приеме для каждой из сетевых областей и посылает их туда. Он не посылает эти отчеты о приеме другим областям и не переадресует отчеты из одной области в другую.
SDES. Смесители обычно переадресуют без изменений SDES-информацию, которую они получают из сетевых областей зоны обслуживания, но могут отфильтровывать любую SDES-информацию помимо CNAME в случае ограничения полосы пропускания. CNAME должны доставляться, чтобы обеспечить работу по обслуживанию столкновений идентификаторов SSRC. (Идентификатор в списке CSRC, сгенерированный смесителем может вызвать столкновение с SSRC-идентификатором, сформированным оконечной системой.) Смеситель должен послать SDES CNAME информацию о самом себе той сетевой области, куда он посылает SR или RR пакеты.
Так как смесители не переадресуют SR или RR пакеты, они обычно извлекают SDES-пакеты из составных RTCP-пакетов. Для того чтобы минимизировать издержки, фрагменты из SDES-пакетов могут быть уложены в один SDES-пакет, который вкладывается в SR или RR пакет, посылаемый смесителем.
Смеситель, который не вводит идентификаторы CSRC, может также воздерживаться от пересылки SDES CNAME. В этом случае пространства идентификаторов SSRC для обоих сетевых областей оказываются независимыми.
BYE. Смесители должны переадресовывать пакеты BYE. Они должны генерировать пакеты BYE со своим собственным идентификатором SSRC, если они намериваются прервать пересылку пакетов.
APP. Обработка APP-пакетов смесителями зависит от вида приложения.
Таблица 4.4.9.3.1. Типы пакетов RTCP
Сокращенное название
Имя
Значение
SR
sender report – сообщение отправителя
200
RR
receiver report – сообщение получателя
201
SDES
source description – описание источника
202
BYE
goodbye - завершение
203
APP
application-defined – определен приложением
204
Эти значения типов были выбраны в диапазоне 200-204 для улучшенного контроля корректности заголовков RTCP пакетов. Когда поле типа пакета RTCP сравнивается с соответствующим октетом RTP-заголовка, этот диапазон соответствует маркерному биту 1 (который обычно отсутствует в информационных пакетах) и старшему биту стандартного поля типа данных равному 1 (так как статические типы поля данных обычно лежат в младшей половине).
Другие константы определены IANA. Экспериментаторам предлагается зарегистрировать числа, которые им нужны, а затем аннулировать регистрацию, если необходимость в них отпадет.
Таблица 4.4.9.3.2. Типы SDES
Сокращенное название
Имя
Значение
END
Конец списка SDES
0
CNAME
Каноническое имя
1
NAME
Имя пользователя
2
EMAIL
Электронный адрес пользователя
3
PHONE
Телефонный номер пользователя
4
OC
geographic user location
5
TOOL
Имя приложения или программного средства
6
NOTE
notice about the source
7
PRIV
Частные расширения
8
Типы пакетов RTCP. Могут быть определены и зарегистрированы IANA новые, специфические для определенных классов приложений типы пакетов RTCP.
Период отчетов RTCP. Профайл должен специфицировать, какие значения констант будут использоваться для вычисления периода посылки RTCP докладов. Это доля полосы пропускания выделенная для RTCP, минимальный период посылки отчетов.
Расширения SR/RR. Секция расширения может быть определена для RTCP SR и RR пакетов, если имеется дополнительная информация о получателе или отправителе, которая должна регулярно передаваться.
Проверка корректности заголовка RTCP
Пакеты RTCP подвергаются следующим проверкам.
RTP поле версии должно быть равно 2.
Поле типа данных первого RTCP пакета в составном пакете должно быть SR или RR.
Бит заполнителя (P) должен быть равен нулю для первого пакета составного RTCP пакета, так как заполнитель может присутствовать только в последнем.
Длина полей индивидуальных RTCP-пакетов должна в сумме равняться полной длине составного пакета.
Фрагмент приведенной ниже программы выполняет все рассмотренные проверки (текст взят из ссылки, приведенной в начале раздела). Тип пакета для последующих пакетов не проверяется, так как не известный тип пакета должен игнорироваться.
u_int32 len; /* Длина составного RTCP пакета в словах */
rtcp_t *r; /* заголовок RTCP */
rtcp_t *end; /* Конец составного RTCP пакета */
if ((*(u_int16 *)r & RTCP_VALID_MASK) != RTCP_VALID_VALUE) {
/* что-то не в порядке с форматом пакета */
}
end = (rtcp_t *)((u_int32 *)r + len);
do r = (rtcp_t *)((u_int32 *)r + r->common.length + 1);
while (r < end && r->common.version == 2);
if (r != end) {
/* что-то не в порядке с форматом пакета */
}
Генерирование пакетов SDES RTCP
Эта функция формирует фрагмент SDES, состоящий из элементов argc, взятых из массивов type, в буфере b.
char *rtp_write_sdes(char *b, u_int32 src, int argc,
rtcp_sdes_type_t type[], char *value[],
int length[])
{
rtcp_sdes_t *s = (rtcp_sdes_t *)b;
rtcp_sdes_item_t *rsp;
int i;
int len;
int pad;
/* SSRC header */
s->src = src;
rsp = &s->item[0];
/* SDES items */
for (i = 0; i < argc; i++) {
rsp->type = type[i];
len = length[i];
if (len > RTP_MAX_SDES) {
/* неверная длина, возможно нужны другие действия */
len = RTP_MAX_SDES;
}
rsp->length = len;
memcpy(rsp->data, value[i], len);
rsp = (rtcp_sdes_item_t *)&rsp->data[len];
}
/* завершить конечным маркером и заполнителем на очередной 4-октетной границе */
len = ((char *) rsp) - b;
pad = 4 - (len & 0x3);
b = (char *) rsp;
while (pad--) *b++ = RTCP_SDES_END;
return b;
}
Разбор пакетов RTCP SDES
Эта функция осуществляет разбор пакета SDES, вызывая функции find_member() для поиска указателя на информацию для члена сессии с идентификатором SSRC и member_sdes() для запоминания новой информации SDES для этого участника. Этой функции необходим указатель на заголовок пакета RTCP.
Следующая функция в качестве результата выдает время между посылками RTCP-пакетов, измеренное в секундах. Она должна вызываться после посылки одного составного RTCP-пакета для вычисления времени до посылки следующего пакета. Эта функция должна также вызываться для вычисления времени посылки первого RTCP-пакета при запуске. Это исключает любые кластеры RTCP-пакетов, если приложение запущено в нескольких узлах одновременно, например, в результате объявления об открытии сессии.
Параметры имеют следующий смысл:
rtcp_bw: Предельная полоса RTCP, т.е., полная пропускная способность, которая будет использоваться для RTCP-пакетов всеми участниками сессии, выраженная в октетах в секунду. Она должна быть порядка 5% от "полосы сессии", этот параметр задается при конфигурировании приложения.
senders: Число активных отправителей на момент посылки последнего отчета, известно из конструкции отчетов получателя.
members: Оценка числа членов сессии, включая нас самих. Инкрементируется, когда мы обнаруживаем новых членов сессии при получении RTP или RTCP-пакетов, и декрементируется, когда какой-либо участник покидает сессию (послав RTCP BYE) или он объявлен таковым по тайм-ауту (рекомендуемое время 30 минут). При первом вызове этот параметр должен иметь значение 1.
we_sent: Флаг, который равен true, если мы послали данные за время последних двух интервалов RTCP. Если флаг равен true, составной только что посланный пакет RTCP содержит SR пакет.
packet_size: Размер составного только что посланного пакета RTCP, в октетах, включая сетевую инкапсуляцию (напр., 28 октетов для UDP поверх IP).
avg_rtcp_size: Указатель оценщика размера составных пакетов RTCP; инициализируется и актуализуется для только что посланного пакета этой функцией, актуализуется также идентичной строкой программы приема пакетов RTCP для каждого пакета RTCP, полученного от другого участника сессии.
initial: Флаг, который равен true для первого вызова при инициализации с целью вычисления момента посылки первого отчета.
#include
double rtcp_interval(int members,
int senders,
double rtcp_bw,
int we_sent,
int packet_size,
int *avg_rtcp_size,
int initial)
{
/*
* Минимальное время между пакетами RTCP от данного узла (в секундах). Это время
* предотвращает группирование отчетов, когда в сессии участвует малое число
* участников. Это препятствует чрезмерному уменьшению интервалов межу отчетами.
*/
double const RTCP_MIN_TIME = 5.;
/*
* Доля полосы RTCP, которая должна быть поделена между активными участниками.
* (Эта доля была выбрана так, чтобы в типовой сессии с одним или двумя
* активными отправителями, вычисленный период посылки отчетов был примерно
* равен минимальному интервалу между отчетами. Доля получателя должна равняться
* Эффективное число узлов, умножаем на средний размер пакета отчета
* и получаем полное число посланных октетов, если каждый из узлов
* посылает отчет. Деля это число на эффективную полосу,
* получаем средний временной интервал посылки пакетов-отчетов.
*/
t = (*avg_rtcp_size) * n / rtcp_bw;
if (t < rtcp_min_time) t = rtcp_min_time;
/*
* Для того чтобы избежать всплесков трафика из-за непреднамеренной
* синхронизации с другими узлами мы выбираем следующий интервал
* отчета равным случайному числу с равномерным распределением в
* диапазоне 0.5*t - 1.5*t.
*/
return t * (drand48() + 0.5);
}
Библиография
[1]
I. Busse, B. Deffner, and H. Schulzrinne, " Dynamic QoS control of multimedia applications based on RTP," Computer Communications , Jan. 1996.
[2]
S. Floyd and V. Jacobson, "The synchronization of periodic routing messages," in SIGCOMM Symposium on Communications Architectures and Protocols (D. P. Sidhu, ed.), (San Francisco, California), pp. 33--44, ACM, Sept. 1993. also in [24]
[3]
J. A. Cadzow, Foundations of digital signal processing and data analysis New York, New York: Macmillan, 1987
[4]
International Standards Organization, "ISO/IEC DIS 10646-1:1993 information technology -- universal multiple-octet coded character set (UCS) -- part I: Architecture and basic multilingual plane," 1993
[5]
The Unicode Consortium, The Unicode Standard New York, New York: Addison-Wesley, 1991
[6]
Mockapetris, P., "Domain Names - Concepts and Facilities", STD13, RFC 1034, USC/Information Sciences Institute, November 1987
[7]
Mockapetris, P., "Domain Names - Implementation and Specification", STD 13, RFC 1035, USC/Information Sciences Institute, November 1987
[8]
Braden, R., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, Internet Engineering Task Force, October 1989
[9]
Rekhter, Y., Moskowitz, R., Karrenberg, D., and G. de Groot, "Address Allocation for Private Internets", RFC 1597, T.J. Watson Research Center, IBM Corp., Chrysler Corp., RIPE NCC, March 1994
[10]
Lear, E., Fair, E., Crocker, D., and T. Kessler, "Network 10 Considered Harmful (Some Practices Shouldn't be Codified)", RFC1627, Silicon Graphics, Inc., Apple Computer, Inc., Silicon Graphics, Inc., July 1994
[11]
Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982
[12]
W. Feller, An Introduction to Probability Theory and its Applications, Volume 1 , vol. 1. New York, New York: John Wiley and Sons, third ed., 1968
Удаленный доступ (Telnet)
4.5.3 Удаленный доступ (Telnet)
Семенов Ю.А. (ГНЦ ИТЭФ)
TELNET позволяет пользователю установить TCP-соединение с сервером и затем передавать коды нажатия клавиш так, как если бы работа проводилась на консоли сервера. TELNET (RFC-854, в некоторых реализациях tn) служит для выполнения удаленного доступа к вычислительным ресурсам и базам данных (например, к базам ядерных данных в Вене, Брукхейвене или STN-international в Карлсруэ). Для входа в базу данных или ЭВМ обычно нужна аутентификация (ввод имени-идентификатора пользователя и его слова-пропуска). В некоторых реализациях допускается использование параметров, которые подключают необходимые эмуляторы терминалов.
TELNET предлагает три услуги: Определяет сетевой виртуальный терминал (NVT - network virtual terminal), который обеспечивает стандартный интерфейс к удаленной системе.
Включает механизм, который позволяет клиенту и серверу согласовать опции обмена
Обеспечивает симметрию соединения, допуская любой программе (например FTP) выступать в качестве клиента
Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в кодах ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т. д.). На прикладном уровне над TELNET находится либо программа поддержки реального терминала, либо прикладной процесс в обслуживающей машине, к которому осуществляется доступ с терминала. Формат NTV достаточно прост. Для данных используются 7-битовые ASCII коды. 8-битовые же октеты зарезервированы для командных последовательностей.
Telnet взаимодействует с другой ЭВМ через протокол TELNET. Если команда TELNET вводится без аргументов ЭВМ переходит в командный режим, напечатав приглашение telnet>. В этом режиме она воспринимает и исполняет команды, описанные ниже.
При вводе TELNET с аргументами программа осуществит связь вашей ЭВМ с удаленным компьютером, имя или адрес которого вы ввели в качестве одного из аргументов.
После того как TELNET связь установлена, начинаются переговоры об используемых опциях (см. табл. 4.5.3.1). Каждая из договаривающихся сторон может послать другой один из четырех запросов will, do, wont и dont (см табл. 4.5.3.4).
Далее TELNET переходит в режим ввода. В этом режиме любой введенный текст пересылается удаленной ЭВМ. Ввод может производиться посимвольно или построчно. При посимвольном режиме каждый введенный символ пересылается немедленно, при построчном режиме отклик на каждое нажатие клавиши производится локально, а пересылка выполняется лишь при нажатии клавиши <Enter>. Некоторые опции требуют дополнительных данных, такая информация ожет быть получена с помощью субопций (RFC-1091). При этом клиент посылает трехбайтовую последовательность IAC WILL 24, где 24 - код-идентификатор терминала. Получатель может откликнуться последовательностью IAC DO 24, если все в порядке. Сервер в свою очередь посылает последовательность IAC SB 24 1 IAC SE, запрашивая тип терминала клиента. Здесь код 24 означает, что это субопция для опции типа терминала (см. табл. 4.5.3.1), а следующая 1 является командой "пришлите код вашего терминала". Клиент в свою очередь может откликнуться, послав последовательность - IAC SB 24 0 I B M P C IAC SE. Здесь байт 0 имеет значение "мой терминал имеет тип". Список кодов терминалов содержится в RFC-1700.
Таблица 4.5.3.1. Коды опций в Telnet
Код опции в Telnet
Описание
Номер RFC
0
Двоичный обмен
856
1
Эхо
857
2
Повторное соединение
NIC 15391
3
Подавление буферизации ввода
858
4
Диалог о размере сообщения
NIC 15393
5
Статус
859
6
Временная метка
860
7
Удаленный доступ и отклик
726
8
Длина выходной строки
nic 20196
9
Размер выходной страницы
nic 20197
10
Режим вывода символов
652
11
Вывод горизонтальной табуляции
653
12
Установка положения табуляции при выводе
654
13
Режим вывода команды смены страницы
655
14
Вывод вертикальной табуляции
656
15
Определяет положение вертикальной табуляции
657
16
Режим вывода символа
658
17
Расширенный набор кодов ASCII
698
18
Возврат (logout)
727
19
Байт-макро
735
20
Терминал ввода данных
732
21
Supdup
736
22
Supdup вывод
747
23
Место отправления
779
24
Тип терминала
930
25
Конец записи
885
26
Tacacs- идентификация пользователя
927
27
Пометка вывода
933
28
Код положения терминала
946
29
Режим 3270
1041
30
X.3 PAD
1053
31
Размер окна
1073
Когда связь с удаленной ЭВМ уже осуществлена, переход в командный режим может быть выполнен с помощью нажатия '^]' (escape).
В этом режиме доступны команды:
open имя_ЭВМ [ порт ]
open открывает связь с ЭВМ, имя которой указано в обращении. Если номер порта явно не указан, telnet пытается использовать для связи с сервером номер порта по умолчанию. Вместо имени ЭВМ-сервера может использоваться ее IP-адрес.
display [ аргумент ... ]
Отображает все, или часть, набора параметров telnet (см. описание команды send).
close
Закрывает сессию telnet и возвращает систему в командный режим.
quit
Закрывает любую сессию telnet.
mode type
Управляет режимом ввода ("построчный" или "посимвольный"). Удаленной машине посылается запрос на переход в соответствующий режим. Если она готова (способна) работать в запрошенном режиме, будет произведено соответствующее переключение.
status
Отображает текущий статус telnet. В перечень информации входит имя удаленной ЭВМ и действующий режим обмена.
? [ команда ]
Выдает справочную информацию о команде, название которой приведено в качестве аргумента
send arguments
Посылает удаленной ЭВМ один или несколько символьных аргументов. В качестве аргументов могут использоваться: escape, synch, brk, ip, ao, ayt, ecel, ga и др. Смотри таблицу 4.5.3.3.
escape
Посылает escape символ (например, `^]').
SYNCH
Посылает synch-последовательность. Эта последовательность позволяет аннулировать все, что было до этого напечатано, но еще не считано. Эта последовательность посылается как срочная (важная) TCP-информация (может не сработать, если удаленной системой является 4.2 BSD). Если она не сработала, на терминал будет послан символ "r".
brk
Посылает Break-последовательность при нажатии клавиши Break (Pause). (Исчерпывающую информацию об аргументах можно найти в описании используемого программного обеспечения или с помощью команд Help или Man)
set argument value
Присваивает любому числу переменных telnet новые значения. Специальное значение "off" выключает функцию, соответствующую данной переменной
<
/p>
Значения переменных можно узнать с помощью команды display. Такими переменными могут быть: echo, escape, interrupt, quit, flushoutput, erase, kill, eof, echo. Последняя переменная (в исходном состоянии `^E') в построчном режиме осуществляет переключение между локальным эхо на ввод символа (режим по умолчанию) и подавлением эхо, например при вводе пароля. Переменные процедуры telnet представлены в таблице 4.5.3.2.
Практически стандарт TELNET описан во многих RFC документах, которые определяют различные варианты реализации этой команды. Список опций команды telnet приведен в таблице 4.5.3.1 (не все эти возможности доступны в конкретных программных продуктах).
Таблица 4.5.3.2. Переменные telnet
Название переменной
Назначение
Echo
Определяет, будет ли отображаться на экране то, что вы вводите с клавиатуры. При значении off ввод не отображается, например, при вводе пароля.
Escape
Задает символ, который используется в качестве escape. Появление этого символа во входном потоке заставляет его и последующие символы интерпретироваться в ЭВМ, где функционирует процесс telnet, как команда
Interrupt
Специфицирует символ прерывания процесса. Ввод его приводит к остановке процесса пользователя, работающего на удаленной ЭВМ.
Quit
Специфицирует символ, который используется пользователем на его клавиатуре для выполнения команд brake или attention.
Flushoutput
Определяет символ, который служит для прерывания процедуры вывода на удаленной ЭВМ.
EOF
Специфицирует символ, который используется для обозначения конца файла на удаленной машине.
Таблица 4.5.3.3. Последовательности символов, используемые совместно с командой send
Последовательность символов
Назначение
?
Отображает справочную информацию о команде send
escape
Посылает символ escape (без прерывания посылки символов для Telnet)
ip
Посылает протокольную последовательность telnet. Удаленная машина должна прервать процесс, запущенный для вас.
ec
Посылает протокольную EC-последовательность telnet. Удаленная ЭВМ должна стереть последний напечатанный вами символ
Посылает протокольную AO-последовательность TELNET. Удаленная ЭВМ должна направить весь вывод на ваш терминал.
brk
Посылает протокольную BRK-последовательность TELNET. Удаленная ЭВМ должна обеспечить отклик.
ayt
Посылает протокольную AYT-последовательность TELNET (Are You There). Удаленная ЭВМ должна обеспечить отклик.
<
/p>
В таблице 4.5.3.4 представлены наименования и коды команд Telnet, которые используются как клиентом, так и сервером в сочетании с префиксным байтом 0xff (IAC - "интерпретировать как команду"). Если нужно послать код данных, равный 255, посылается два байта с кодами 255.
Отказ исполнения или продолжения выполнения (опционно)
Do("исполнить")
253
Индицирует запрос, который другая система исполняет (опционно)
Don't ("Нет")
254
Требует, чтобы другая система остановила исполнение (опционно)
IAC
255
Интерпретируется как начало командной последовательности
Операция прерывание процесса (IP) позволяет прервать, удалить или завершить процесс пользователя (например, выйти из бесконечного цикла).
Процедура прерывание вывода (AO) позволяет процессу пользователя продолжаться, но вывод на его рабочую станцию прерывается, при этом очищается буфер от уже записанной, но не отображенной информации.
Запрос "Вы здесь?" (AYT) удобен, когда необходимо выяснить выполняется ли пользовательская задача или нет.
Операция стереть символ (EC) позволяет пользователю удалить символ из потока данных, применяется для редактирования текста на экране.
Операция стереть строку (EL) позволяет пользователю при редактировании удалить целую строку.
Команда "go ahead" (GA, "продолжайте") устанавливает полудуплексный режим передачи данных. Каких-либо воздействий на удаленную ЭВМ обычно не производит. В таблице 4.5.3.5 приведен список комбинаций клавиш, нажатие которых вызывает определенный результат.
Таблица 4.5.3.5. Управляющие комбинации клавиш
Комбинация клавиш
Достигаемый результат
Ctrl+E
Echo
Ctrl+]
Escape
Ctrl+?
Erase
Ctrl+O
flushoutput
Ctrl+C
Interrupt (прерывание исполнения программы)
Ctrl+U
Kill
Ctrl+\
Quit
Ctrl+D
EOF
Блок данных процедуры TELNET содержит три байта и называется командой. Формат этого блока показан на рис. 4.5.3.1.
Рис. 4.5.3.1. Формат блока данных Telnet
Первый байт в соответствии с таблицей содержит 8 единиц, далее следует байт команды (табл. 4.5.3.4). Третий октет служит для размещения кода опции, он может и отсутствовать.
Рассмотрим несколько примеров этих команд. Допустим, вы хотите, чтобы обмен данными производился в виде 8-битовых посылок. Для реализации вашего пожелания достаточно выдать команду:
IAC WILL TRANSMIT-BINARY,
которая в цифровых кодах выглядит как - (255 251 0).
Для прекращения этого (двоичного) режима передачи нужно выдать команду:
IAC DON'T TRANSMIT-BINARY (255 254 0).
Субкоманды Telnet позволяют управлять откликом при работе с клавиатурой. Обычно отклик-эхо присылается удаленной ЭВМ, реже формируется локально. Для включения отклика можно выдать команду: IAC WILL ECHO (255 251 1) (часто это реализовано по умолчанию). Далее можете поупражняться самостоятельно и проверить какие команды и их опции доступны в используемом вами программном продукте.
При работе с Telnet рекомендуется сначала ознакомиться с конкретными возможностями команды с помощью описания (или F10/?). Это позволит вам, например, спасать результаты поиска в файле с указанным вами именем и т.д. Например, для PCTCP такая команда выдаст на экран:
Telnet with VT220 and 3270 emulation, escape character is alt-F10 or F10
Copyright (c) 1989-1992 by FTP Software, Inc. All rights reserved.
[Press SPACE to return to session, or enter another command (? for Help]
Многие telnet-клиенты позволяют также указывать явно номер порта, через который должна быть установлена связь. По умолчанию это порт 23. Обычный пользователь не интересуется, через какой порт он работает. Но иногда желательно реализовывать telnet через разные порты системы, обеспечивающие различные услуги, это бывает полезно и с отладочными целями. Используя команду:
telnet XXXXXX.domain
можно осуществить связь через порт с заданным номером с узлом XXXXXX.domain. Многие библиотеки используют метод портов для обеспечения доступа к своим ресурсам внешних Inernet-пользователей. Ссылки на RFC-документы по протоколу TELNET смотрите в приложении. Помимо telnet существуют и другие стандартные процедуры, выполняющие схожие задачи.
SUN Microsistems разработала и широко использует программный модуль RPC (Remote Procedure Call, RFC-1057), он используется для удаленного вызова программ почти во всех системах, базирующихся на UNIX. RPC может использоваться как на TCP, так и UDP транспортных уровнях.
Для удаленного исполнения программ может служить команда REXECD, которая активно используется на IBM-системах в рамках ОС AIX и DOS. Уязвимость протокола Telnet для хакеров привела к тому, что в последнее время эта утилита часто заменяется SSH
(Secure Shell) или другими программами, обеспечивающими безопасный удаленный доступ.
Управляющая база данных MIB
4.4.13.1 Управляющая база данных MIB
Семенов Ю.А. (ГНЦ ИТЭФ)
Вся управляющая информация для контроля ЭВМ и маршрутизаторами Интернет концентрируется в базе данных MIB (Management Information Base, RFC-1213 или STD0017). Именно эти данные используются протоколом SNMP. Система SNMP состоит из трех частей: менеджера SNMP, агента SNMP и базы данных MIB. Агент SNMP должен находиться резидентно в памяти объекта управления. SNMP-менеджер может быть частью системы управления сетью NMS (Network Management System), что реализуется, например, в маршрутизаторах компании CISCO (CiscoWorks).
MIB определяет, например, что IP программное обеспечение должно хранить число всех октетов, которые приняты любым из сетевых интерфейсов, управляющие программы могут только читать эту информацию.
Согласно нормативам MIB управляющая информация делится на восемь категорий (см. также рис. 4.4.13.1.1):
MIB-категория включает в себя информацию о
MIB-категория
Описание
Код
system
Операционная система ЭВМ или маршрутизатора.
1
Interfaces
Сетевой интерфейс.
2
addr.trans
Преобразование адреса (напр., с помощью arp).
3
IP
Программная поддержка протоколов Интернет.
4
ICMP
Программное обеспечение icmp-протокола.
5
TCP
Программное обеспечение TCP-протокола.
6
UDP
Программное обеспечение UDP-протокола.
7
EGP
Программное обеспечение EGP-протокола.
8
SNMP
Программное обеспечение SNMP-протокола.
11
Таблица 4.4.13.1.1. Системные переменные MIB
Системная переменная
Описание
Код
Sysdescr
Текстовое описание объекта;
1
Sysobjectid
Идентификатор производителя в рамках дерева 1.3.6.1.4.1
2
Sysuptime
Время с момента последней загрузки системы (timeticks);
3
Syscontact
Имя системного менеджера и способы связи с ним;
4
Sysname
Полное имя домена;
5
Syslocation
Физическое местоположение системы;
6
Sysservice
Величина, которая характеризует услуги, предоставляемые узлом (сумма номеров уровней модели OSI);
Sysuptime, когда интерфейс оказался в данном состоянии.
9
IfInOctets
counter
Полное число полученных байтов.
10
IfInUcastpkts
counter
Число пакетов, доставленных на верхний системный уровень (unicast).
11
IfInNUcastpkts
counter
Число пакетов, доставленных на верхний системный уровень (unicast).
12
IfInDiscads
counter
Число полученных но отвергнутых пакетов.
13
IfInErrors
counter
Число пакетов, полученных с ошибкой;
14
IfInUnknownProtos
counter
Число пакетов, полученных с ошибочным кодом протокола;
15
IfOutOctets
counter
Число отправленных байтов;
16
IfOutUcastPkts
counter
Число unicast- пакетов, полученных с верхнего системного уровня;
17
IfOutNucastPkts
counter
Число мультикастинг- и широковещательных пакетов, полученных с верхнего системного уровня;
18
IfOutDiscads
counter
Количество отвергнутых пакетов из числа отправленных;
19
IfOutErrors
counter
Число отправленных пакетов, содержащих ошибки;
20
IfOutQlen
gauge
Число пакетов в очереди на отправку;
21
Ниже представлена таблица цифро-точечного представления переменных, характеризующих состояние интерфейса. Эта таблица может быть полезной для программистов, занятых проблемами сетевой диагностики.
Указание на то, что данный объект осуществляет переадресацию (работает как маршрутизатор).
1
IPdefaultTTL
integer
Значение, которое использует IP в поле TTL.
2
IPinreceives
counter
Число полученных дейтограмм.
3
ipInHdrErrors
counter
Число дейтограмм, отвергнутых из-за ошибок формата или неверных адресов или опций, из-за истекшего TTL.
4
ipInHdrErrors
counter
Число дейтограмм, отвергнутых из-за неверного IP-адреса, например, 0.0.0.0, или неподдерживаемого класса, например Е.
5
ipForwDatagrams
counter
Число дейтограмм, для которых данный объект не является местом назначения (маршрутизация отправителя).
6
ipInUnknownProtos
counter
Число дейтограмм с неподдерживаемым кодом протокола.
7
ipInDiscards
counter
Число дейтограмм, отвергнутых из-за переполнения буфера.
8
ipInDelivers
counter
Полное число входных дейтограмм, успешно обработанных на IP-уровне.
9
ipOutRequests
counter
Полное число IP и ICMP дейтограмм, переданных для отправки.
10
ipOutRequests
counter
Полное число IP и ICMP дейтограмм, переданных для отправки.
11
IPoutNoroutes
counter
Число неудач при маршрутизации.
12
ipReasmTimeout
counter
Максимальное число секунд ожидания сборки фрагментов.
13
ipReasmReqds
counter
Число полученных фрагментов
14
ipReasmOKs
counter
Число полученных и успешно собранных IP-дейтограмм
15
ipReasmFails
counter
Число полученных IP-дейтограмм, которые по тем или иным причинам не удалось собрать
16
IPFragOKs
counter
Число успешно фрагментированных IP- дейтограмм.
17
ipFragFails
counter
Число IP- дейтограмм, которые нужно фрагментировать, но сделать это нельзя (например, из-за флага).
18
ipFragCreates
counter
Число IP-дейтограмм фрагментов, сформированных данным объектом.
19
ipAddrTable
counter
Таблица адресной информации данного объекта.
20
ipRouteTable
Последовательность записей маршрутной таблицы
Запись в маршрутной таблице
21
ipAddrEntry
IPAdEntAddr
IPaddress
IP-адрес для данного ряда
1
IPadentifindex
integer
Число интерфейсов.
2
IPadentnetmask
IPaddress
Маска субсети для данного IP-адреса;
3
IPAdEntBcastAddr
[0...1]
Значение младшего бита широковещательного адреса (обычно 1);
4
IPAdEntReasmMaxsize
[0...65535]
Размер наибольшей IP-дейтограммы, полученной интерфейсом, которая может быть собрана.
5
<
/p>
Помимо простых переменных объектами MIB могут быть таблицы. Для каждой таблицы имеется один или несколько индексов.
Таблица 4.4.13.1.4. Переменные TCP-группы
Переменные TCP-группы
Тип данных
Описание
Код
tcpRtoAlgorithm
integer
Алгоритм выявления таймаута для повторной передачи TCP-пакетов: 1 - ни один из следующих; 2 - постоянное RTO; 3 - стандарт MIL-std-1778; 4 - алгоритм Ван Джакобсона
1
tcpRtoMin
integer
Минимальное допустимое время повторной передачи tcp- пакетов.
2
tcpRtoMax
integer
Максимальное значение тайм-аута в миллисек.
3
tcpMaxConn
integer
Максимальное допустимое число tcp-соединений.
4
tcpActiveOpens
integer
Число TCP-соединений Active-Open
5
tcpPassiveOpens
integer
Число TCP-соединений Passive-Open (из состояния LISTEN)
6
tcpAttemptFails
integer
Число неудачных TCP-соединений
7
tcpEstabResets
integer
Число разрывов TCP-соединений из состояний ESTABLISHED или CLOSE-WAIT
8
tcpCurrEstab
Gauge
Число TCP-соединений, для которых текущее состояние ESTABLISHED или CLOSE-WAIT
9
tcpInSegs
counter
Полное число полученных tcp-сегментов.
10
tcpOutSegs
counter
Полное число посланных сегментов, исключая повторно пересылаемые.
11
tcpRetransSegs
counter
Полное число повторно пересланных сегментов.
12
tcpConnTable
counter
Таблица данных специфичных для соединения
13
tcpInErrs
counter
Полное число сегментов, полученных с ошибкой.
14
tcpOutRsts
counter
Полное число посланных сегментов с флагом rst=1.
15
tcpconntable. tcp-таблица связей
tcpconnstate
[1...12]
Состояние соединения: 1 - closed; 2 - listen; 3 - syn_sent; 4 - syn_rcvd; 5 - established, 6 - fin_wait_1; 7 - fin_wait_2; 8 - close_wait; 9 - last_ack; 10 - closing; 11 - time_wait;, 12 - delete TCB. Только последняя переменная может устанавливаться менеджером, немедленно прерывая связь.
tcpconnlocal
address
ipaddress
Местный IP-адрес. 0.0.0.0 означает, что приемник готов установить связь через любой из интерфейсов.
tcpconnlocal
port
[0...65535]
Местный номер порта.
tcpconnlocal
address
ipaddress
Удаленный ip-адрес.
tcpconnrem
port
[0...65535]
Удаленный номер порта.
<
/p>
Таблица 4.4.13.1.5. Переменные ICMP-группы (тип данных – counter)
Переменная icmp-группы
Описание
Код
icmpInMsgs
Полное число полученных ICMP-сообщений.
1
icmpInErrors
Число ICMP-сообщений, полученных с ошибками.
2
icmpInDestUnreach
Число ICMP-сообщений о недостижимости адресата.
3
icmpintimeexcds
Число ICMP-сообщений об истечении времени.
4
icmpInParmProbs
Число полученных ICMP-сообщений о проблемах с параметрами.
5
icmpInSrcQuench
Число ICMP-сообщений с требованием сократить или прервать посылку пакетов из-за перегрузки.
6
icmpInRedirects
Число ICMP-сообщений о переадресации.
7
icmpInEchos
Число полученных ICMP-запросов отклика.
8
icmpInEchoReps
Число полученных ICMP-эхо- откликов.
9
icmpInTimestamps
Число ICMP-запросов временных меток.
10
icmpInTimestampReps
Число ICMP-откликов временных меток.
11
icmpInAddrMasks
Число ICMP-запросов адресных масок.
12
icmpInAddrMaskReps
Число ICMP-откликов на запросы адресных масок.
13
icmpOutMsgs
Число отправленных ICMP- сообщений.
14
icmpOutErrors
Число не отправленных ICMP- сообщений из-за проблем в ICMP (напр. нехватка буферов).
15
icmpOutDestUnreachs
Число ICMP-сообщений о недоступности адресата.
16
icmpOutTimesExcds
Число посланных ICMP-сообщений об истечении времени.
17
icmpOutParmProbs
Число посланных ICMP-сообщений о проблемах с параметрами.
18
icmpOutSrcQuench
Число посланных ICMP-сообщений об уменьшении потока пакетов.
19
icmpOutRedirects
Число посланных ICMP-сообщений о переадресации.
20
icmpOutEchos
Число посланных ICMP-эхо-запросов.
21
icmpOutEchoReps
Число посланных ICMP-эхо-откликов.
22
icmpOutTimestamps
Число посланных ICMP-запросов временных меток.
23
icmpOutTimestampReps
Число посланных ICMP-откликов на запросы временных меток.
Физический адрес. Если эта переменная равна строке нулевой длины, физический адрес отсутствует.
2
atNetAddress
networkaddress
IP-адрес.
3
Каждый протокол (например IP) имеет свою таблицу преобразования адресов. Для IP это ipnettomediatable. Способ пропечатать эту таблицу с помощью программы SNMPI описан ниже.
MIB II содержит управляемые объекты, принадлежащие к группе snmp. SNMP-группа предоставляет информацию о SNMP-объектах, информационных потоках, о статистике ошибок:
Название объекта
Описание
Код
snmpInPkts
Число пакетов, полученных от слоя, расположенного ниже SNMP.
1
snmpOutPkts
Число пакетов доставленных от SNMP к нижележащему слою.
2
snmpInBadVersions
Индицирует число PDU, полученных с ошибкой в поле версия.
3
snmpInBadCommunityNames
Индицирует число PDU, полученных с нечитаемым или нелегальным именем community.
4
snmpInBadCommunityUses
Полное число SNMP-пакетов, полученных с нечитаемым или нелегальным значение операции для данного имени community.
5
snmpInAsnParsErrs
Указывает полное число ошибок ASN.1 или BER, которые не могут быть обработаны во входных SNMP-сообщениях
6
snmpInTooBigs
Указывает число полученных PDU со слишком большим значением поля статус ошибки.
8
snmpInNoSuchNames
Указывает число PDU, полученных с индикацией ошибки в поле nosuchname.
9
snmpInBadValues
Указывает число PDU, полученных с индикацией ошибки в поле badvalue.
10
snmpInReadOnlys
Указывает число PDU, полученных с индикацией ошибки в поле readonly.
11
snmpNnGenErrs
Указывает число PDU, полученных с generr-полем.
12
snmpInTotalReqVar
Указывает число объектов MIB, которые были восстановлены.
13
snmpInTotalSetVars
Указывает число объектов MIB, которые были изменены.
14
snmpInGetRequests
Указывает число соответствующих pdu, которые были получены.
15
snmpInGetNexts
Указывает полное число pdu с запросами GetNext
16
snmpInSetRequests
Указывает полное число pdu, полученных с запросами SET
17
snmpInGetResponses
Указывает полное число pdu, полученных c откликами на запросы
18
snmpInTraps
Указывает полное число, полученных и успешно обработанныз TRAP
19
snmpOutTooBig
Указывает число посланных PDU с полем toobig.
20
snmpOutNoSuchNames
Указывает число посланных PDU с полем nosuchname.
21
snmpOutBadValues
Указывает число посланных PDU с полем badvalue.
22
snmpOutGenErrs
Указывает число посланных PDU с полем genErrs.
24
snmpOutGetRequests
Указывает число посланных PDU Get-Request
25
snmpOutGetNexts
Указывает число посланных PDU Get-NEXT
26
snmpOutSetRequests
Указывает число посланных PDU SET
27
snmpOutGetResponses
Указывает число посланных PDU откликов
28
snmpOutTraps
Указывает число посланных PDU TRAPs
29
snmpEnableAuthTraps
Говорит о том, разрешены или нет ловушки (TRAPS).
30
<
/p>
Стандарт на структуру управляющей информации (SMI) требует, чтобы все MIB-переменные были описаны и имели имена в соответствии с ASN.1 (abstract syntax notation 1, формализованный синтаксис). ASN.1 является формальным языком, который обладает двумя основными чертами:
используемая в документах нотация легко читаема и понимаема, а в компактном кодовом представлении информация может использоваться коммуникационными протоколами. В SMI не используется полный набор типов объектов, предусмотренный в ASN.1, разрешены только следующие типы примитивов: integer, octet string, object identifier и null. Практически в протоколе SNMP фигурируют следующие виды данных:
integer
. Некоторые переменные объявляются целыми (integer) с указанием начального значения или с заданным допустимым диапазоном значений (в качестве примера можно привести номера UDP- или TCP-портов).
octet string
(последовательность байтов). В соответствии с требованиями BER (basic encoding rules, ASN.1) последовательность октетов должна начинаться с числа байт в этой последовательности (от 0 до n).
object identifier
(идентификатор объекта). Имя объекта, представляющее собой последовательность целых чисел, разделенных точками. Например, 192.148.167.129 или 1.3.6.1.2.1.5.
null.
Указывает, что соответствующая переменная не имеет значения.
displaystring
. Строка из 0 или более байт (но не более 255), которые представляют собой ASCII-символы. Представляет собой частный случай octet string.
physaddress
. Последовательность октетов, характеризующая физический адрес объекта (6 байт для Ethernet). Частный случай object identifier.
Сетевой адрес
. Допускается выбор семейства сетевых протоколов. В рамках ASN.1 этот тип описан как choice, он позволяет выбрать протокол из семейства протоколов. В настоящее время идентифицировано только семейство протоколов Интернет.
IP-адрес
. Этот адрес используется для определения 32-разрядного Интернет-адреса. В нотации ASN.1 - это octet string.
time ticks
(такты часов). Положительное целое число, которое используется для записи, например, времени последнего изменения параметров управляемого объекта, или времени последней актуализации базы данных. Время измеряется в сотых долях секунды.
gauge
(масштаб). Положительное целое число в диапазоне 0 - (232-1), которое может увеличиваться или уменьшаться. Если эта переменная достигнет величины 232-1, она будет оставаться неизменной до тех пор пока не будет обнулена командой сброс. Примером такой переменной может служить tcpcurresta, которая характеризует число TCP соединений, находящихся в состоянии established или close_wait.
counter
(счетчик). Положительное целое число в диапазоне 0 - (232-1), которое может только увеличиваться, допуская переполнение.
sequence
. Этот объект аналогичен структуре в языке Си.
Например, MIB определяет sequence с именем udpentry, содержащую информацию об активных UDP-узлах. В этой структуре содержится две записи:
1. UDPlocaladdress типа ipaddress, содержит местные IP-адреса.
2. UDPlocalport типа integer, содержит номера местных портов.
SEQUENCE OF
. Описание вектора, все элементы которого имеют один и тот же тип. Элементы могут представлять собой простые объекты, например, типа целое. В этом случае мы имеем одномерный список. Но элементами вектора могут быть объекты типа SEQUENCE, тогда этот вектор описывает двумерный массив.
В Интернет MIB каждый объект должен иметь имя (object identifier), синтаксис и метод кодировки.
Стандарт ASN.1 определяет форму представления информации и имен. Имена переменных MIB соответствуют в свою очередь стандартам ISO и CCITT. Структура имен носит иерархический характер, отображенный на рис. 4.4.13.1.1.
Рис. 4.4.13.1.1 Структура идентификаторов переменных в MIB
В приведенной ниже таблице охарактеризованы четыре простые переменные, идентификаторы которых помещены в нижней части рис. 4.4.13.1.1. Все эти переменные допускают только чтение.
Имя переменной
Тип данных
Описание
Код
udpInDatagrams
counter
Число UDP-дейтограмм, присланных процессам пользователя.
1
udpNoPorts
counter
Число полученных UDP-дейтограмм, для которых отсутствует прикладной процесс в порте назначения.
2
udpInErrors
counter
Число не доставленных UDP-дейтограмм по причинам, отличающимся от отсутствия процесса со стороны порта назначения (напр., ошибка контрольной суммы).
3
udpOutDatagrams
counter
Число посланных UDP-дейтограмм.
4
udpTable
counter
Таблица, содержащая данные о принимающей стороне
5
<
/p>
Ниже приведено описание таблицы (udptable; index = ,), состоящей из двух простых переменных (read-only).
Имя переменной
Тип данных
Описание
udplocaladdress
ipaddress
Местный IP-адрес для данного приемника;
udplocalport
(0 - 65535)
Местный номер порта приемника.
Согласно этой иерархии переменные, соответствующие ICMP, должны иметь префикс (идентификатор) 1.3.6.1.2.1.5 или в символьном выражении iso.org.dod.internet.mgmt.mib.icmp. Если вы хотите узнать значение какой-то переменной, следует послать запрос, содержащий соответствующий префикс и суффикс, последний определяет имя конкретной переменной. Для простой переменной суффикс имеет вид .0. Ветвь структуры на рис. 4.4.13.1.1, завершающейся узлом Interfaces (2) имеет продолжение в виде ifTable(2) и ifEntry(1). Таким образом переменная ifInUcastPkts будет иметь представление 1.3.6.1.2.1.2.2.1.11.
Помимо стандартного набора переменных и таблиц MIB возможно использование индивидуальных расширений этой базы данных. Это можно продемонстрировать на примере MIB маршрутизаторов Cisco (рис. 4.4.13.1.2).
Рис. 4.4.13.1.2. Расширение базы данных mib маршрутизаторов Cisco
Префикс 1.3.6.1.4.1. является стандартным, далее следует расширение, индивидуальное для маршрутизаторов компании Cisco. Например, группа IPcheckpoint accounting позволяет контролировать поток байтов с определенных адресов локальной сети, что бывает важно при работе с коммерческими провайдерами услуг.
Коды-префиксы для различных производителей телекоммуникационного оборудования приведены в таблице 4.4.13.1.7.
Таблица 4.4.13.1.7 Коды-префиксы производителей
Код префикса
Название фирмы
0
Зарезервировано
1
Proteon
2
IBM
3
CMU
4
UNIX
5
ACC
6
TWG
7
Cayman
8
PSI
9
Cisco
10
NSC
11
HP
12
Epilogue
13
U of Tennessee
14
BBN
15
Xylogics, inc.
16
Unisys
17
Canstar
18
Wellfleet
19
TRW
20
MIT
Группа локальных переменных IP checkpoint accounting (1.3.6.1.4.1.9.2.4.7.1) представляет собой таблицу, содержащую в каждом рекорде по четыре переменных (в скобках указан суффикс адреса MIBдля переменной):
ckactbyts [4] - число переданных байт,
ckactdst [2] - адрес места назначения,
ckactpkts [3] - число переданных пакетов
ckactsrc [1] - адрес отправителя
Маршрутизаторы Cisco поддерживают две базы данных: active accounting и checkpoint accounting. В первую заносятся текущие результаты измерения входящего и исходящего трафика. Эти результаты копируются в базу данных checkpoint accounting и, если там уже имеются предыдущие данные, они объединяются. Для очистки базы данных checkpointed database выдается команда clear IP accounting, а для базы checkpoint – clear IP accounting checkpoint (для использования этих команд необходимы системные привилегии). Объем памяти, выделяемой для этих баз данных задается командой IP accounting-threshold , по умолчанию максимальное число записей в базе данных равно 512.
Лучшим способом закрепить в памяти все вышесказанное является использование программы SNMPI (SNMP initiator) или ее аналога. Если в вашем распоряжении имеется ЭВМ, работающая под unix, например SUN, вы можете попутно узнать много полезного о вашей локальной сети. Ниже описан синтаксис обращения к SNMPI.
SNMPI - крайне простая программа, используемая для тестирования SNMPD. Для того чтобы проверить, работает ли она, выдайте команду:
% SNMPI dump
Следует отметить, что в ответ на эту операцию будет произведена весьма объемная выдача.
Опция -a предлагает возможность ввести адрес SNMP-объекта - имя ЭВМ, IP-адрес или транспортный адрес. По умолчанию это местная ЭВМ. Аналогично опция -p позволяет задать номер UDP-порта. По умолчанию это порт 161.
Опция -c позволяет задать групповой пароль (community) для snmp-запроса. По умолчанию - это public, т.е. свободный доступ.
Опция -f позволяет выбрать файл, содержащий откомпилированные описания mib-модулей. По умолчанию - это objects.defs.
Опция -w включает режим наблюдения, осуществляя выдачу на терминал всех служебных сообщений. Уход из программы по команде quit (q).
Если вы работаете на IBM/PC, и ваша машина подключена к локальной сети, получите допуск к одной из UNIX-машин в сети (если вы его не имели) и приступайте. Можно начать с обращения типа:
SNMPI -a 193.124.224.33
(адрес или символьное имя надо взять из вашей локальной сети)
Машина откликнется, отобразив на экране SNMPI>, это означает, что программа имеется и вы можете вводить любые команды.
Начать можно со знакомства с системными переменными системы (в дальнейшем курсивом выделены команды, введенные с клавиатуры):
SNMPI> get sysdescr.0
snmpi> sysdescr.0="GS software (gs3-k), version 9.1(4) [fc1], software copyright (c) 1986-1993 by cisco systems, inc. compiled thu 25-mar-93 09:49 by daveu"
Код 0x06 (sysservices.0) представляет собой сумму кодов уровней модели iso, поддерживаемых системой. Для справок: 0x01 - физический уровень; 0x02 – связной уровень; 0x04 - Интернет; 0x08 - связь точка-точка; 0x40 - прикладной уровень.
Если вы хотите получить информацию о состоянии интерфейсов на одной из ЭВМ, подключенных к вашей локальной сети (команды вызова snmpi далее не повторяются; в ниже приведенных примерах в круглых скобках помещены комментарии автора), выдайте команды:
SNMPI> next iftabl (команда next в данном случае соответствует запросу get-next, здесь понятие "следующий" подразумевает порядок переменных в MIB)
snmpi> ifindex.1=1
snmpi> get ifdescr.1
snmpi> ifdescr.1="ethernet0"
snmpi> get iftype.1
snmpi> iftype.1=ethernet-csmacd(6)
snmpi> get ifmtu.1
snmpi> ifmtu.1=1500
snmpi> get ifspeed.1
snmpi> ifspeed.1=10000000 (10Мб/с ethernet)
snmpi> get ifphysaddress.1
snmpi> ifphysaddress.1=0x00:00:0c:02:3a:49 (физический адрес интерфейса)
snmpi> next ifdescr.1 iftype.1 ifmtu.1 ifspeed.1 ifphysaddress.1
snmpi> ifdescr.2="serial0"
iftype.2=proppointtopointserial(22)
ifmtu.2=1500
ifspeed.2=2048000 (2 Мбит/ c радиорелейный последовательный канал, спутниковый канал был бы охарактеризован точно также).
ifphysaddress.2=
В приведенном примере размеры пересылаемых блоков для Ethernet и радиорелейного последовательного канала идентичны и равны 1500. Помните, что SLIP-канал характеризуется как pointtopointserial, а не slip. Скорость обмена по SLIP-каналу не сообщается.
Теперь просмотрим некоторые UDP-переменные. Например:
SNMPI> next UDP
SNMPI> udpindatagrams.0=98931
SNMPI> next udpindatagrams.0 (обратите внимание на суффикс простой переменной)
Ниже показана методика выяснения алгоритма и параметров задания величины тайм-аута:
SNMPI> get tcprtoalgorithm.0 tcprtomin.0 tcprtomax.0 tcpmaxconn.0
SNMPI> tcprtoalgorithm.0=vanj(4) (vanj - алгоритм Ван Джакобсона для расчета времени тайм-аута)
tcprtomin.0=300
(минимальное значение тайм-аута = 300 мс)
tcprtomax.0=60000
(максимальное - 60 сек)
tcpmaxconn.0=-1
(никаких ограничений на число соединений)
Чтобы получить информацию о состоянии таблицы адресных преобразований, выдайте команду: SNMPI –a 193.124.224.33 dump at (процедуры с использование субкоманды dump требуют определенного времени для своего исполнения)
atifindex.1.1.193.124.224.33=
1
atifindex.1.1.193.124.224.35=
1
atifindex.3.1.192.148.166.203=
3
atifindex.3.1.192.148.166.205=
3
atifindex.5.1.145.249.30.33=
5
atifindex.5.1.192.148.166.98=
5
atphysaddress.1.1.193.124.224.33=
0x00:00:0c:02:3a:49
atphysaddress.1.1.193.124.224.35=
0x08:00:20:12:1b:b1
atphysaddress.1.1.193.124.224.40=
0x00:00:cd:f9:0d:e7
atphysaddress.1.1.193.124.224.50=
0x00:00:0c:02:fb:c5
atnetaddress.1.1.193.124.224.33=
193.124.224.33
atnetaddress.1.1.193.124.224.35=
193.124.224.35
atnetaddress.1.1.193.124.224.40=
193.124.224.40
atnetaddress.1.1.193.124.224.50=
193.124.224.50
atnetaddress.1.1.193.124.224.60=
193.124.224.60
<
/p>
Текст выдачи с целью экономии места сокращен.
Обычно элементы таблицы расположены в порядке колонка-ряд. Если вы дошли до края колонки или всей таблицы ЭВМ выдаст вам, в зависимости от реализации программы, имя и значение следующего элемента или сообщение об ошибке.
Чтобы получить полный текст адресной таблицы в рамках SNMPI достаточно выдать команду:
SNMPI> dump ipaddrtable
snmpi> ipadentaddr.192.148.166.222=
192.148.166.222
ipadentaddr.192.168.1.1=
192.168.1.1
ipadentaddr.192.168.1.2=
192.168.1.2
ipadentaddr.193.124.224.33=
193.124.224.33
ipadentaddr.193.124.224.190=
193.124.224.190
ipadentifindex.192.148.166.222=
3
ipadentifindex.192.168.1.1=
4
ipadentifindex.192.168.1.2=
6
ipadentifindex.193.124.224.33=
1
ipadentifindex.193.124.224.190=
5
(Маски субсетей)
ipadentnetmask.192.148.166.222=
255.255.255.224
ipadentnetmask.192.168.1.1=
255.255.255.0
ipadentnetmask.192.168.1.2=
255.255.255.0
ipadentnetmask.193.124.224.33=
255.255.255.224
ipadentnetmask.193.124.224.190=
255.255.255.224
ipadentbcastaddr.192.148.166.222= 1 (Все эти субсети используют для широковещательной адресации одни и те же биты).
ipadentbcastaddr.192.168.1.1=
1
ipadentbcastaddr.192.168.1.2=
1
ipadentbcastaddr.193.124.224.33=
1
ipadentbcastaddr.193.124.224.190=
1
ipadentreasmmaxsize.192.148.166.222= 18024 (С точки зрения фрагментации и последующей сборки дейтограмм данные субсети эквивалентны).
ipadentreasmmaxsize.192.168.1.1=
18024
ipadentreasmmaxsize.192.168.1.2=
18024
ipadentreasmmaxsize.193.124.224.33=
18024
ipadentreasmmaxsize.193.124.224.190=
18024
Данная пропечатка совместно с приведенной для IFtable позволяет получить достаточно полную картину о данной конкретной локальной сети. Чтобы познакомиться с ARP таблицей, можно воспользоваться командой:
Синтаксис каждого объекта описывается в рамках ASN.1 и показывает побитовое представление объекта. Кодирование объекта характеризует то, как тип объекта отображается через его синтаксис и передается по телекоммуникационным каналам. Кодирование производится в соответствии с базовыми правилами кодирования asn.1. Все описания объектов базируются на типовых шаблонах и кодах asn.1 (см. RFC-1213). Формат шаблона показан ниже:
object (Объект):
Имя типа объекта с соответствующим ему идентификатором объекта (object identifier)
syntax (Синтаксис):
asn.1 описание синтаксиса типа объекта.
definition (Определение):
Текстовое описание типа объекта.
access (доступ):
Опции доступа.
status (состояние):
Статус типа объекта.
Маршруты также являются объектами mib. Согласно требованиям к mib, каждому маршруту в этой базе соответствует запись, схема которой приведена ниже на рис. 4.4.13.1.3:
Рис. 4.4.13.1.3 Формат записи маршрутной таблицы в MIB
Поле место назначения представляет собой IP-адрес конечной точки маршрута. Поле индекс интерфейса определяет локальный интерфейс (физический порт), через который можно осуществить следующий шаг по маршруту. Следующие пять полей (метрика 1-5) характеризуют оценку маршрута. В простейшем случае, например для протокола RIP, достаточно было бы одного поля. Но для протокола OSPF необходимо 5 полей (разные TOS). Поле следующий шаг представляет собой IP-адрес следующего маршрутизатора. Поле тип маршрута имеет значение 4 для опосредованного достижения места назначения; 3 - для прямого достижения цели маршрута; 2 - для нереализуемого маршрута и 1 – для случаев отличных от вышеперечисленных.
Поле протокол маршрутизации содержит код протокола. Для RIP этот код равен 8, для OSPF - 13, для BGP - 14, для IGMP - 4, для прочих протоколов - 1. Поле возраст маршрута описывает время в секундах, прошедшее с момента последней коррекции маршрута. Следующее поле - маска маршрута используется для выполнения логической побитовой операции И над адресом в IP-дейтограммы перед сравнением результата с кодом, хранящимся в первом поле записи (место назначения). Последнее поле маршрутная информация содержит код, зависящий от протокола маршрутизации и обеспечивающий ссылки на соответствующую информацию в базе MIB.
Новым расширением MIB является система удаленного мониторинга сетей (RMON; RFC-1513, -1271). RMON служит для мониторирования сети в целом, а не отдельных сетевых устройств. В RMON предусмотрено 9 объектных групп (см. табл. 4.4.13.1.8).
Таблица 4.4.13.1.8. Функциональные группы RMON
Группа
Назначение
statistics
Таблица, которая отслеживает около 20 статистических параметров сетевого трафика, включая общее число кадров и количество ошибок
history
Позволяет задать частоту и интервалы для измерений трафика
alarm
Позволяет установить порог и критерии, при которых агенты выдают сигнал тревоги
host
Таблица, содержащая все узлы сети, данные по которым приводятся в сетевой статистике
hostTopN
Позволяет создать упорядоченные списки, которые базируются на пиковых значениях трафика группы ЭВМ
matrix
Две таблицы статистики трафика между парами узлов. Одна таблица базируется на адресах узлов-отправителей, другая – на адресах узлов-получателей
filter
Позволяет определить конкретные характеристики кадров в канале. Например, можно выделить TCP-трафик.
packet capture
Работает совместно с группой filter. Позволяет специфицировать объем ресурса памяти, выделяемой для запоминания кадров, которые отвечают критериям filter.
event
Позволяет специфицировать набор параметров или условий, которые должен контролировать агент. Когда условия выполняются, информация о событии записывается в специальный журнал
Для того чтобы реализовать функционирование RMON-агента, сетевая карта должна быть способна работать в режиме 6 (promiscuous mode), когда воспринимаются все пакеты, следующие по кабельному сетевому сегменту.
Управляющие регистры модемов и их функции
10.8 Управляющие регистры модемов и их функции
Семенов Ю.А. (ГНЦ ИТЭФ)
Таблица 10.8.1
. Управляющие регистры модема
Регистр
Содержимое по умолчанию
Назначение
S0
0 1)
Управляет режимом отклика модема на телефонный вызов. Устанавливает число звонков, после которых модем снимает трубку. Диапазон допустимых значений 0-255. Если S0=0, режим автоответа выключен. Для снятия трубки надо выполнить команду ATA.
S1
0
Считает поступающие звонки и запоминает их число. Пользователь может прочесть регистр, но не должен менять содержимое. После 8 секунд с момента последнего звонка содержимое регистра сбрасывается в ноль.
S2
43
Хранит ASCII значение символа ESC, используемого для управления переходом в командный режим и обратно в режим данных. По умолчанию это символ “+”. Значение 128-255 блокирует ESC-код. Содержимое регистра не сохраняется.
S3
13
Хранит ASCII символ Carriage Return. Содержимое регистра не сохраняется.
S4
10
Хранит ASCII символ Line Feed. Содержимое регистра не сохраняется.
S5
8
Хранит ASCII символ Backspace. Содержимое регистра не сохраняется. Значение 128-255 блокирует функцию стирания символа Backspace.
S6
3
Устанавливает число секунд, в течение которых модем ждет набора номера, если выбраны X0 или X1. Если выбраны X2, X3, X4, X5, X6 или X7, модем начинает набор, как только обнаружит гудок. Этот регистр устанавливает также величину таймаута для W-модификатора набора (диапазон 1-255 сек). Содержимое регистра не сохраняется.
S7
60
Устанавливает число секунд, в течение которых модем ждет несущую после завершения набора номера. Если модем в течение этого времени не обнаружит несущую, он вешает трубку и переходит в режим NO CARRIER. Содержимое регистра не сохраняется.
S8
2
Устанавливает длительность задержки, генерируемой модификатором набора запятая (,) команды ATD. Содержимое регистра не сохраняется.
S9
6
Устанавливает время (в десятых секунды), в течение которого должна присутствовать несущая удаленного модема, прежде чем она будет опознана и модем передаст в ЭВМ сигнал DCD. Содержимое регистра не сохраняется.
S10
7
Устанавливает время (в десятых секунды), в течение которого модем ждет после потери несущей прежде чем повесить трубку (разорвать связь). Код S10 должен быть всегда больше кода S9. Содержимое регистра не сохраняется.
S11
70
Устанавливает длительность сигнала и паузы (в миллисекундах) при тоновом наборе
S12
Определяет задержку, которую следует выждать до и после передачи модему ESC-последовательности (+++). Пауза между символами ESC-последовательности должна быть меньше кода в S12.
S13
Зарезервировано
S14 2)
Битовый регистр, определяющий состояние модема
&Mn (7,6) =0
асинхронный, буферизованный
=1
асинхронные команды, синхронные данные
=2
прямой асинхронный без буфера
=3
синхронный
&Xn (5,4) =0
внутренние часы
=1
внешние часы
=2
удаленные часы
&Ln (3,2) =0
линия с набором номера
=1
2-проводная выделенная линия
=2
4-проводная выделенная линия
&T4 (1) =0
предоставление возможности запросов цифрового тестирования с удаленной замкнутой петлей
&T5 =1
запрещает запросы тестов с удаленной петлей
* 3) Mn (0) =0
Автоматический диалог в исходном режиме при работе на выделенную линию
=1
Автоматический диалог в режиме отклика при работе на выделенную линию
S15
Битовый регистр
Zn (7,6,5)=0-4
Профайл используется для установки режима при включении питания
*Сn (4,3) =0
10-битовая длина кодов символов
=1
11-битовая длина кодов символов
=2
9-битовая длина кодов символов
=3
8-битовая длина кодов символов 4)
(2)=0
1 стоп-бит
=1
2 стоп-бита
(1,0)=0
четная четность
=1
нечетная четность
=2
четность не используется.
S16
Тест-статусный регистр
=0
Не идет никаких тестов (по умолчанию);
=1
Идет тест с аналоговой петлей
=2
Зарезервировано
=3
Работает локальный цифровой тест
=6
Работает цифровой тест с удаленной петлей
=7
Выполняется цифровое самотестирование с удаленной петлей
=8
Выполняется аналоговое самотестирование
S17
Битовый регистр
*In (6) =0
AT-набор команд
=1
V.25bis-набор команд
*Pn (4,3,2,1)=0-15
Уровень сигналов для выделенной линии
*Sn (0) =0
Запрет вторичного канала
=1
Разрешение вторичного канала.
S18
Задает длительность теста в секундах. Если код S18=0, модем будет находиться в режиме теста до прихода команды &T0.
S19
Режим соединения модема
&Nn =0
Multi-auto, автоматический выбор наибольшей возможной скорости (V.32 9600T/9600/7200T/ 4800, V.22bis 2400/1200, V.22 1200, BELL 212A 1200, V17FAX 14400/12000/9600/7200, V.29FAX 9600/7200, V.27terFAX 4800/2400)
=1
V.33 14400/12000
=2
V.33 12000
=3
V.32 9600T/9600/7200T/4800
=4
V.32 9600/7200T/4800
=5
V.32 4800
=6
V.29 9600
=7
V.29 7200
=8
V.29 4800
=9
V.27ter 4800
=10
V.27ter 2400
=11
V.26bis 2400
=12
V.23 1200/75
=13
V.23 600/75
=14
V22bis 2400/1200
=15
V.22 1200
=16
V.21 300
=17
V.32bis 14400/12000/9600/7200/4800
=18
V.32bis 7200/4800
=19
V.32bis 7200/4800
=24
Bell 212A 1200
=25
Bell 103 300
=32
V.17FAX 14400/12000/9600/7200
=34
Зарезервировано
=35
Зарезервировано для 16800
=36
Зарезервировано для 19200
S20
Скорость DTE (определяется автоматически AT-командами)
=0
76,8 кбит/c
=1
57,6 кбит/c
=2
38,4 кбит/c
=3
19,2 кбит/c
=4
16,8 кбит/c
=5
14,4 кбит/c
=6
12,0 кбит/c
=7
9,6 кбит/c
=8
7,2 кбит/c
=9
4,8 кбит/c
=10
3,6 кбит/c
=11
2,4 кбит/c
=12
1,8 кбит/c
=13
1,2 кбит/c
=14
600 бит/c
=15
300 бит/c
S21
Битовый регистр
&Dn (7,6) =0
Модем игнорирует DTR-сигнал, предполагая, что он всегда присутствует
=1
108.1, переключение DTE-сигнала из OFF в ON приводит к набору номера по умолчанию. Переход DTE в состояние OFF приводит к вешанью трубки
=2
108.2, переход DTR в состояние OFF приводит к вешанию трубки и переключению в командный режим
&Rn (5) =0
CTS следует за RTS
=1
Игнорирует RTS (CTS всегда в состоянии ON).
&Cn (4) =0
CD всегда ON
=1
CD следит за несущей
$Sn (3) =0
Модем делает DSR всегда ON
=1
В соответствии с CCITT
Mn (2,1)=0
Громкоговоритель выключен
=1
Громкоговоритель включен, пока не появится несущая
=2
Громкоговоритель всегда включен
=3
Громкоговоритель включен с момента, когда закончен набор последней цифры и до тех пор, пока не будет детектирована несущая
*En (0) =0
Не поддерживает контроля ошибок, если не удалось об этом договориться
=1
Разрывается связь, если не удается договориться о контроле ошибок
S22
Зарезервировано
S23
Битовый регистр
Qn (7) =0
Модем возвращает код результата
=1
Модем не возвращает код результата
Vn (6) =0
Отображает код результата в цифровой форме
=1
Отображает код результата в полной форме
Xn (5,4,3) =0
Основной код результата (0-4).
=1
Код результата (0-5, 10-21).
=2
Код результата (0-6, 10-21).
=3
Код результата (0-5, 7-21).
=4
Код результата (0-21).
=5
Управление кодом ошибки включено
=6
Управление кодом ошибки включено
=7
Управление кодом ошибки включено
&Pn (2) =0
При импульсном наборе отношение make/break=39%/61%.
=1
При импульсном наборе отношение make/break=33%/67%.
T/P (1) =0
Тоновый набор
=1
Импульсный набор
En (0) =0
Отклик на команду блокирован
=1
Отклик на команду разрешен
S24
Битовый регистр
Ln (7,6,5)=0-7
Управление громкостью громкоговорителя
Nn (3,2,1)=0-7
Управление громкостью звонка
S25
Зарезервировано
S26
По умолчанию=0
RTS/CTS дисплей. Устанавливает задержку (в десятках миллисекунд) между RTS и откликом модема CTS в синхронном режиме
S27
Битовый регистр
*Qn (7,6) =0
Никакого отклика на плохое качество сигнала
=1
Запускает повторную попытку при плохом качестве сигнала
=2
Адаптивный алгоритм настройки скорости при изменении качества сигнала
=3
Разрывает связь при плохом качестве сигнала
&Hn (5,4,3)=0
Управление потоком отключено
=1
Зарезервировано
=2
Зарезервировано
=3
Аппаратный контроль потока CTS/RTS
=4
Программный контроль потока XON/XOFF
=5
Зарезервировано
&Kn (2,1,0)=0
Никакого контроля ошибок
=1
MNP4 (включая MNP3).
=2
MNP4 + MNP5
=3
V.42 + MNP4
=4
V.42 + V42bis (совместимо с &K2).
S28
Битовый регистр
Bn (7) =0
Выбирает V.22 для связи при скорости 1200 бит/с
=1
Выбирает Bell 212A для скорости 1200 бит/с
&Bn (6) =0
Быстродействие DTE/DCE следует за возможностями канала
=1
Быстродействие DTE/DCE фиксировано и определяется установкой DTE в диапазоне (300-76800)бит/с
&Gn (5,4) =0
Ведущий тон отсутствует
=1
Зарезервировано
=2
Ведущий тон имеет частоту 1800 Гц
S29
Указатель на номер телефона по умолчанию
*Dn =n
Устанавливает указатель в EEPROM на номер телефона по умолчанию (n=0-9).
S30
Указатель на запасной номер телефона
*Bn =0
Блокирует резервный номер телефона
=n
Разрешает наличие резервного номера и устанавливает указатель на его позицию в EEPROM (n=1-9).
1) Значения по умолчанию приведены для модема Zyxel U-1496
2) Функции битов для разных типов модемов варьируются
3) Опционная характеристика, присутствует не во всех модемах
4) Длина символа включает в себя стартовый бит, биты данных, бит четности и стоп-бит
Содержимое битовых регистров модема сохраняется в энергонезависимой памяти.
На этом список регистров, используемых в современном модеме не завершается, их число обычно превышает 50. Но функции этих регистров не стандартизованы и для получения информации о них рекомендуется обратиться к оригинальной документации по конкретным модемам.
Видеоконференции по каналам Интернет и ISDN
2.9 Видеоконференции по каналам Интернет и ISDN
Семенов Ю.А. (ГНЦ ИТЭФ)
Расширение международных контактов и реализация проектов с "удаленными" отечественными партнерами делает актуальной проблему экономии командировочных расходов особенно в случае коротких поездок (1-7 дней). Одним из средств решения проблемы является использование видеоконференций. Видеоконференции по каналам Интернет могут быть привлекательны для дистанционного обучения и медицинской диагностики. В отличие от телевизионных программ обучение с использованием Интернет предполагает диалог между преподавателем и обучаемым, что делает процесс более эффективным (эта техника может успешно дополнить WWW-методику, широко используемую в университетах США и Европы). Медицинские приложения еще более многообещающи. Видеоконференции позволят проконсультироваться в клинике, отстоящей на тысячи километров, устроить консилиум с участием врачей из разных городов, оперативно передать томограмму или многоканальную кардиограмму пациента с целью ее интерпретации и т.д. В более отдаленной перспективе технология видеоконференций может быть применена для целей телевидения.
Рис. 2.9.1. Оборудование, необходимое для видеоконференций
Для проведения видеоконференции необходимо иметь цифровой канал с пропускной способностью не менее 56-128кбит/с. Если канал не позволяет, можно ограничиться аудио телеконференцией (см. раздел IP-phone). Схеме оборудования, необходимого для видеоконференции показано на рис. 2.9.1.
Помимо стандартного оборудования рабочей станции (как правило, под ОС UNIX) требуется интерфейс для подключения видеокамеры и микрофонов. Этот интерфейс обычно снабжается аппаратной схемой сжатия видео и аудио данных. Многие современные мультимедиа интерфейсы снабжены входами для видеокамеры. Из обязательного оборудования на рис. 2.9.1 не показаны наушники и звуковые колонки. Полезным дополнением может служить сканнер, который позволит с высоким разрешением передать изображения документов или чертежей, видеомагнитофон, а также видео проектор для отображений принятого изображения на экране или телевизор с большим экраном.
Рис. 2.9.2. Структура системы H.323 и основных ее компонентов
H. 323 определяет четыре главных составляющих коммуникационной системы:
Терминалы
Шлюзы
Блоки многоточечного управления
Системы управления доступом (gatekeepers)
Терминалы служат для предоставления пользователям определенных услуг и обеспечивают двухсторонний обмен данными в реальном масштабе времени. Все терминалы H.323 должны также поддерживать стандарт H.245, который служит для выбора параметров канала. Структура терминала показана на рис. 2.9.3.
Рис. 2.9.3. Структура терминала H.323
Интерфейс RAS (registration/admission/status) служит для взаимодействия с блоком доступа (gatekeeper) и поддерживает протоколы RTP/RTCP. Опционными частями H.323 являются видео кодеки, протоколы для проведения информационных конференций (T.120) и возможности поддержания многоточечной связи (mcu). Внешний шлюз также является опционным элементом конференций H.323. Шлюз может выполнять функции интерфейса для согласования с требованиями других форматов, например, H.225 – H.221 или других коммуникационных процедур, например, H.245 – H.242. Типичным шлюзом можно считать соединитель H.323 с коммутируемой телефонной сетью (GSTN). Блок схема такого шлюза показана на рис. 2.9.4.
Данный шлюз устанавливает аналоговую связь с терминалами GSTN, с терминалами H.320 по каналам ISDN и с терминалами H.324 по сети GSTN. Терминалы взаимодействуют со шлюзом через протоколы H.245 и Q.931. Применяя соответствующую перекодировку, можно обеспечить работу шлюза H.323 с терминалами, поддерживающими протоколы V.70, H.322, H.310 и H.321. Многие функции шлюза не стандартизованы, к их числу, например, относится нумерация подключенных терминалов.
Рис. 2.9.4. Схема шлюза IP/GSTN
Узел управления доступом (gatekeeper) является центральным блоком сети H.323. Через него проходят все запросы обслуживания, при этом он выполняет функцию виртуального переключателя. Узел управления доступом осуществляет преобразование имен терминалов и шлюзов в их IP и IPX-адреса в соответствии со спецификацией RAS. Например, если администратор сети установил верхний предел на число участников конференции, при достижении этого порога узел управления доступом может отказать в установлении соединения. Совокупность терминалов, шлюзов и блоков MTU, управляемая общим блоком доступа, называется зоной H.323. Узел управления доступом может опционно маршрутизовать запросы H.323. Разработчики иногда совмещают функции шлюза, MCU и узла управления доступом, возможно независимое совмещение функций MCU и узла управления доступом. К числу обязательных функций узла управления доступом относится.
преобразование адресов (например, из стандарта E.164 в транспортный формат)
осуществление контроля доступа к локальной сети с использованием сообщений Admission Request, Confirm и Reject (возможен режим разрешения доступа для всех запросов)
управление полосой пропускания (поддержка сообщений Bandwidth Request, Confirm и Reject)
Управление зоной. Реализация всех вышеперечисленных функций для MCU, шлюза и терминалов, зарегистрированных в зоне.
Определены некоторые опционные функции узла управления доступом:
обработка запросов управления Q.931
осуществление авторизации терминалов (Q.931), допускаются ограничения доступа на определенные периоды времени
управление запросами (контроль занятости терминалов и использования полосы пропускания)
Для организации конференций с числом участников три и более используется блок многоточечного доступа (MCU). MCU включает в себя многоточечный контроллер (MC) и многоточечный процессор (MP). MC осуществляет согласование рабочих параметров терминалов для обеспечения совместимости при передаче видео и аудио информации в рамках протокола H.245. Многоточечный контроллер управляет также ресурсами каналов, при этом поддерживается как уникастный, так и мультикастный обмен. Все терминалы посылают аудио, видео и данные MCU в режиме соединения точка-точка. Управляющая канальная информация H.245 передается непосредственно в MC. MP может выполнять перекодировку в случае использования кодеков различного типа. Конференция может быть организована в централизованном (все обмены идут через MCU) и децентрализованном режиме, когда терминалы непосредственно взаимодействуют друг с другом. Терминалы используют протокол H.245, для того чтобы сообщить MC, сколько видео- и аудио- потоков они могут обработать одновременно. MP может осуществлять отбор видеосигналов и смешение аудио-каналов при децентрализованной многоточечной конференции. Допускается и смешенный режим, когда одновременно реализуется централизованная и децентрализованная схема обменов.
Новейшая версия H.323 (v2) за счет аутентификации и шифрования/дешифрования обеспечивает безопасность и конфиденциальность (перехват в промежуточных узлах становится невозможным). Более подробно возможности версии 2 изложены в документе http://www.databeam.com/h323/.
Звуковой сигнал передается в оцифрованной и сжатой форме. Алгоритмы компрессии, поддерживаемые H.323, соответствуют требованиям стандартов ITU. Терминалы H.323 должны быть способны работать со стандартом компрессии голоса G.711 (56 или 64 Кбит/c). Голосовой кодек должен следовать рекомендациям G.723, а видео кодек должен соответствовать стандарту H.261 (поддержка H.263 является опционной, этот стандарт обеспечивает более высокое качество изображения). В таблице 2.9.1 приведены форматы для видео-конференций ITU.
Таблица 2.9.1
Формат картинки для видео-конференции
Размер изображения в пикселях
H.261
H.263
Sub-QCIF
128*96
не специфицировано
необходимо
QCIF
176*44
необходимо
необходимо
CIF
352*288
опционно
опционно
4CIF
702*576
-
опционно
16CIF
1408*1152
-
опционно
Видеоконференции реализуемы на ЭВМ IBM/PC [1,2], Mackintosh, SUN, HP, DEC. Пакетная техника обеспечивает удовлетворительное качество изображения и звукового сопровождения при низкой загрузке канала и малой вероятности ошибок при передаче пакетов. Достижимое сжатие видеосигнала - 1000:1, звукового 8:1.
Например, система SPARC classic M позволяет передавать по сети Ethernet до 30 кадров в секунду при разрешении 768x576 точек (PAL). Рассмотренное оборудование может использоваться не только для "дальней" связи, но для коллективного редактирования документов и чертежей в пределах одного предприятия, используя локальную сеть. Это может найти применение при реализации систем САПР больших предприятий. Для компрессии применяются методы CellB, JFPEG, MPEG1, Capture (YUV, RGB-8).
Такие программные средства как VAT (Visual Audio Tool, ftp.ee.lbl.gov), nevot (network voice terminal, gaia.cs.umass.edu:/pub/hgschulz/nevot), VIC (Video Conference), IVS (INTRA Videoconferencing System, avahi.inria.fr:/pub/videoconference), NV (Net Video, beta.xerox.com:/pub/net-research) или wb (whiteboard, ftp.ee.lbl.gov) базируются на утилитах X11, они позволяют пользователю осуществить связь ЭВМ-ЭВМ или сессии с большим числом участников по каналам Интернет. Поддерживаются следующие схемы кодирования и передачи данных: PCM (64 Кбит/с), DVI, GSM и LPC (8 Кбит/с). В wb имеется возможность импорта файлов Postscript (обычно используемых для прозрачек). При этом достигается разрешение 640*512, число цветов равно 256, число кадров 2-20, коэффициент сжатия информации ~20:1, а требуемая полоса пропускания канала >128 Кбит/с. Эти параметры не идеальны. Желательно вдвое большее разрешение, число цветов должно быть равно 16 миллионам, а частота кадров 25-50, но это требует существенно большей пропускной способности каналов (> 2 Мбит/с). Но прогресс в области быстродействия каналов связи столь стремителен....
Система mmcc (Multimedia Conference Control program, ftp.isi.edu:confctrl/mmcc.tar.Z) во многом аналогична описанным выше, она позволяет клиенту осуществить вызов нужного партнера. Весьма полезной утилитой является SD (Session Directory, ftp.ee.lbl.gov:sd.tar.Z), которая может запускать приложения, необходимые для проведения видео конференций.
Пакет CUSeeMe (gated.cornell.edu:/pub/video/Mac.CU-SeeMe0.60b1) предназначен для персонального общения через Интернет, он работает на IBM/PC и MAC, требует 4 Мбайт оперативной памяти. Один кадр передается за 6-7 сек при полосе 28,8 Кбит/с, разрешение 320*240 пикселей. Такое качество соответствует скорее видео телефону. На экране предусмотрена область прокрутки, где можно напечатать какой-либо текст. Этим список доступных программных продуктов не исчерпывается. Приведенные здесь краткие описания даны лишь в качестве примеров.
Подчеркну, что качество работы сети более критично для передачи звука, чем изображения, ведь потеря нескольких кадров подчас совсем незаметна. Потеря же пакетов при передаче звука более заметна, особенно при диалоге. Когда же используется сжатие, любые повреждения пакетов приводят к потере целых блоков данных.
Для экспериментов с передачей звука и изображения группой IETF (Internet Engineering Task Force) была сформирована структура мультикастинг-сети MBONE. MBONE (Multicast Backbone, до 300 Кбит/с) представляет собой виртуальную сеть, построенную из уникаст-туннелей, которые функционируют поверх Интернет. MBONE составляет около 3,5% от всего Интернет. Рабочие станции для доступа к MBONE должны поддерживать IP-мультикастинг (см. RFC-1112 "Host Extensions for IP Multicasting"). Следует иметь в виду, что не все маршрутизаторы поддерживают мультикастинг.
При работе с MBONE отправитель не должен знать, кто является получателем, а требуемая пропускная способность канала не зависит от того, обслуживается один клиент или 100.
Требуемая полоса канала для видеоконференций определяется необходимой разрешающей способностью и частотой кадров. Таблица требований к каналу для передачи изображения представлена ниже.
Частота кадров/с
Размер экрана (24 цветовых бит)
1280*1024
640*480
320*240
160*120
30
900 Мбит/с
211 Мбит/с
53 Мбит/с
13 Мбит/с
В таблице приведены требования на пропускную способность канала при использовании различных степеней сжатия передаваемых видеоданных для частоты кадров 30/с и 24 бит на пиксель для отображения цвета.
Степень сжатия данных
Размер экрана
1280*1024
640*480
320*240
160*120
100:1
9 Мбит/с
2.11 Мбит/с
0.53 Мбит/с
0.13 Мбит/с
50:1
18
4,22
1,06
0,26
25:1
36
8,44
2,12
0.52
12:1
75
17,58
4,4
1,08
6:1
150
35,17
8,8
2,16
Требования при передаче звука определяются необходимым качеством, так для получения полосы 6 Кгц нужно 64 Кбит/с, а для уровня, сопоставимого с CD, - 1,4 Мбит/с. Применение сжатия информации позволяет снизить эти требования в 4-8 раз. Общепринятыми стандартами для сжатия изображения при видеоконференциях являются JPEG, MPEG, H.261. Обычно они реализуются программно, но есть и аппаратные реализации.
Если сегодня базовым транспортным протоколом для мультимедиа является UDP, то в самое ближайшее время его потеснит RTR и дополнят RSVP и ST-II, что заметно повысит качество и надежность (см. также раздел IP-phone).
Набор стеков протоколов, которые могут использоваться для реализации видео конференций в рамках стандартов ITU (транспортный протокол H.320):
6.2 Виртуальные локальные сети VLAN, Интранет
Семенов Ю.А. (ГНЦ ИТЭФ)
Широкое внедрение ИНТРАНЕТ, где группы разбросанных по сети пользователей локальных сетей объединяются друг с другом с помощью виртуальных каналов VLAN (Virtual Local Area Network; http://www.3com.com/nsc/200374.html), потребовало разработки новых протоколов. Архитектура VLAN позволяет эффективно разделять трафик, лучше использовать полосу канала, гарантировать успешную совместную работу сетевого оборудования различных производителей и обеспечить высокую степень безопасности. При этом пакеты следуют между портами в пределах локальной сети. В последнее время для задач построения VLAN разработан стандартный протокол IEEE 802.10 (3-ий сетевой уровень). Этот протокол предполагает, что пакеты VLAN имеют свои идентификаторы, которые и используются для их переключения. Протокол может поддерживать работу 500 пользователей и более. Полное название стандарта - IEEE 802.10 Interoperable LAN/MAN Security (MAN - Metropolitan Area Network - региональная или муниципальная сеть). Стандарт принят в конце 1992 года. Количество VLAN в пределах одной сети практически не ограничено. Протокол позволяет шифровать часть заголовка и информационное поле пакетов.
Стандарт ieee 802.10 определяет один протокольный блок данных (PDU), который носит название SDE (Secure Data Exchange) PDU. Заголовок пакета ieee 802.10 имеет внутреннюю и внешнюю секции и показан на рис. 6.2.1.
Рис. 6.2.1 Формат пакета IEEE 802.10
Поле чистый заголовок включает в себя три субполя. MDF (Management Defined Field) является опционным и содержит информацию о способе обработки PDU. Четырехбайтовое субполе said (Security Association Identifier) - идентификатор сетевого объекта (VLAN ID). Субполе 802.10 LSAP (Link Service Access Point) представляет собой код, указывающий принадлежность пакета к протоколу vlan. Предусматривается режим, когда используется только этот заголовок.
Защищенный заголовок копирует себе адрес отправителя из mac-заголовка (MAC - Media Access Control), что повышает надежность.
Поле ICV (Integrity Check Value) - служит для защиты пакета от несанкционированной модификации. Для управления VLAN используется защищенная управляющая база данных SMIB(security management information base).
Наличие VLAN ID (said) в пакете выделяет его из общего потока и переправляет на опорную магистраль, через которую и осуществляется доставка конечному адресату. Размер поля data определяется физической сетевой средой. Благодаря наличию mac-заголовка VLAN-пакеты обрабатываются как обычные сетевые кадры. По этой причине VLAN может работать в сетях TCP/IP (Appletalk или Decnet менее удобны). В среде типа Netbios работа практически невозможна. Сети ATM прозрачны для VLAN. Протокол VLAN поддерживается корпорацией cisco, 3com и др.. Хотя VLAN ориентирован на локальные сети, он может работать и в WAN, но заметно менее эффективно. В последнее время разработано большое число специальных программных средств сетевой безопасности. Среди них Firewall занимает лидирующее положение.
В разделе “Повторители, мосты (бриджи), мультиплексоры, переключатели и маршрутизаторы” упоминалась технология виртуальных сетей (vlan). Созданная для целей безопасности эта техника оказалась полезной для структуризации локальных сетей, приводящей к улучшению их рабочих характеристик. В настоящее время доступны переключатели, маршрутизаторы и даже концентраторы, поддерживающие виртуальные сети.
Виртуальные сети просто необходимы, когда локальная сеть в пределах одного здания совместно используется несколькими фирмами, а несанкционированный доступ к информации желательно ограничить. Принцип построения виртуальной сети показан на рис. 6.2.2.
Рис. 6.2.2. Схема переключателя (или концентратора) с поддержкой VLAN.
Для формирования VLAN необходимо устройство, где возможно осуществлять управление тем, какие порты могут соединяться. Например, пусть запрограммирована возможность пересылки пакетов между портами 1, 3 и 6, 2 и 5, а также между портами 4, 7 и 8. Тогда пакет из порта 1 никогда не попадет в порт 2, а из порта 8 в порт 6 и т.д. Таким образом, переключатель как бы разделяется на три независимых переключателя, принадлежащих различным виртуальным сетям. Управление матрицей переключения возможно через подключаемый из вне терминал или удаленным образом с использованием протокола SNMP. Если система переключателей, концентраторов (и возможно маршрутизаторов) запрограммирована корректно, возникнет три независимые виртуальные сети.
Данная технология может быть реализована не только в рамках локальной сети. Возможно выделение виртуальной сети в масштабах Интернет. В сущности, идея создания корпоративных сетей в Интернет (ИНТРАНЕТ) является обобщением идей виртуальных сетей на региональные сети.
Такая корпоративная сеть должна иметь один шлюз для входа в Интернет. Такой шлюз может выполнять функции Firewall, решая проблемы безопасности корпоративной сети.
Влияние шумов и помех
2.1.1 Влияние шумов и помех
Семенов Ю.А. (ГНЦ ИТЭФ)
Шумы определяют емкость канала и задают частоту ошибок при передаче цифровых данных. Шум по своей природе нестабилен и можно говорить лишь о том, что его величина с некоторой вероятностью лежит в определенном интервале значений. Плотность вероятности p(x) определяет вероятность того, что случайный сигнал X имеет значение амплитуды в интервале между x и x+Dx. При этом вероятность того, что значение х лежит в интервале между x1 и x2 определяется равенством:
.
P(x) – вероятность, а p(x) – плотность вероятности. Вероятность того, что x меньше некоторой величины y равна
Так называемый белый шум подчиняется непрерывному нормальному (Гауссову) распределению а – среднее значение x, а s – среднеквадратичное отклонение х от a. В случае шумов среднее значение х с учетом полярности часто принимает нулевое значение (а=0).
В этом случае, если мы хотим знать вероятность того, что амплитуда шумового сигнала лежит в пределах ±
v, то можно воспользоваться выражением
Для вычисления P{x1<x<-x1} обычно используются равенства
. Тогда P{x11} = .
Распределение P(x) обычно называется функцией ошибок (erf(x) = -erf(-x)). Полезной с практической точки зрения является вероятность
P{-kss}=Pk(k s) =
Из числа дискретных распределений наиболее часто используемым является распределение Пуассона.
Среднее значение x . Среднеквадратичное отклонение s случайной величины х определяется как: .
Как уже говорилось, во многих случаях шум имеет гауссово распределение с нулевым средним значением амплитуды. В этих случаях среднее значение мощности шумового сигнала равно вариации функции плотности вероятности. В этом случае отношение сигнал-шум будет равно
Шум определяет вероятность ошибки при передаче сообщения по каналу связи и, в конечном итоге, пропускную способность канала (см. теорему Шеннона; раздел 2.1 Передача сигналов по линиям связи ).
Внешний протокол BGP
4.4.11.4 Внешний протокол BGP
Семенов Ю.А. (ГНЦ ИТЭФ)
Протокол BGP (RFC-1267, BGP-3; RFC-1268; RFC-1467, BGP-4; -1265-66, 1655) разработан компаниями IBM и CISCO. Главная цель BGP - сократить транзитный трафик. Местный трафик либо начинается, либо завершается в автономной системе (AS); в противном случае – это транзитный трафик. Системы без транзитного трафика не нуждаются в BGP (им достаточно EGP для общения с транзитными узлами). Но не всякая ЭВМ, использующая протокол BGP, является маршрутизатором, даже если она обменивается маршрутной информацией с пограничным маршрутизатором соседней автономной системы. AS передает информацию только о маршрутах, которыми она сама пользуется. BGP-маршрутизаторы обмениваются сообщениями об изменении маршрутов (UPDATE-сообщения, рис. 4.4.11.4.1). Максимальная длина таких сообщений составляет 4096 октетов, а минимальная 19 октетов. Каждое сообщение имеет заголовок фиксированного размера. Объем информационных полей зависит от типа сообщения.
Рис. 4.4.11.4.1. Формат BGP-сообщений об изменениях маршрутов
Поле маркер содержит 16 октетов и его содержимое может легко интерпретироваться получателем. Если тип сообщения "OPEN", или если код идентификации в сообщении open равен нулю, то поле маркер должно быть заполнено единицами. Маркер может использоваться для обнаружения потери синхронизации в работе BGP-партнеров. Поле длина имеет два октета и определяет общую длину сообщения в октетах, включая заголовок. Значение этого поля должно лежать в пределах 19-4096. Поле тип представляет собой код разновидности сообщения и может принимать следующие значения:
После того как связь на транспортном протокольном уровне установлена, первое сообщение, которое должно быть послано - это OPEN. При успешном прохождении этого сообщения партнер должен откликнуться сообщением KEEPALIVE ("Еще жив"). После этого возможны любые сообщения. Кроме заголовка сообщение open содержит следующие поля (рис. 4.4.11.4.2):
Рис. 4.4.11.4.2 Формат сообщения open
Поле версия описывает код версии используемого протокола, на сегодня для BGP он равен 4. Двух-октетное поле моя автономная система определяет код AS отправителя. Поле время сохранения характеризует время в секундах, которое отправитель предлагает занести в таймер сохранения. После получения сообщения OPEN BGP-маршрутизатор должен выбрать значение времени сохранения. Обычно выбирается меньшее из полученного в сообщении open и значения, определенного при конфигурации системы (0-3сек). Время сохранения определяет максимальное время в секундах между сообщениями KEEPALIVE и UPDATE или между двумя UPDATE-сообщениями. Каждому узлу в рамках BGP приписывается 4-октетный идентификатор (BGP-identifier, задается при инсталляции и идентичен для всех интерфейсов локальной сети). Если два узла установили два канала связи друг с другом, то согласно правилам должен будет сохранен канал, начинающийся в узле, BGP-идентификатор которого больше. Предусмотрен механизм разрешения проблемы при равных идентификаторах.
Одно-октетный код идентификации позволяет организовать систему доступа, если он равен нулю, маркер всех сообщений заполняется единицами, а поле идентификационных данных должно иметь нулевую длину. При неравном нулю коде идентификации должна быть определена процедура доступа и алгоритм вычисления кодов поля маркера. Длина поля идентификационных данных определяется по формуле:
Длина сообщения = 29 + длина поля идентификационных данных.
Минимальная длина сообщения open составляет 29 октетов, включая заголовок.
Сообщения типа UPDATE (изменения) используются для передачи маршрутной информации между BGP-партнерами. Этот тип сообщения позволяет сообщить об одном новом маршруте или объявить о закрытии группы маршрутов, причем объявление об открытии нового и закрытии старых маршрутов возможно в пределах одного сообщения. Сообщение UPDATE всегда содержит стандартный заголовок и может содержать другие поля в соответствии со схемой:
Рис. 4.4.11.4.3 Формат update-сообщения
Если длина списка отмененных маршрутов равна нулю, ни один маршрут не отменен, а поле отмененные маршруты в сообщении отсутствует. Поле отмененные маршруты имеет переменную длину и содержит список IP-адресных префиксов маршрутов, которые стали недоступны. Каждая такая запись имеет формат:
Длина префикса (в битах), равная нулю означает, что префикс соответствует всем IP-адресам, а сам имеет нулевой размер. Поле префикс содержит IP-адресные префиксы, за которыми следуют разряды, дополняющие их до полного числа октетов. Значения этих двоичных разрядов смысла не имеют.
Нулевое значение полной длины списка атрибутов пути говорит о том, что информация о доступности сетевого уровня в UPDATE-сообщении отсутствует. Список атрибутов пути присутствует в любом UPDATE-сообщении. Этот список имеет переменную длину, а каждый атрибут содержит три составные части: тип атрибута, длину атрибута и значение атрибута. Тип атрибута представляет собой двух-октетное поле со структурой:
Старший бит (бит0) поля флаги атрибута определяет, является ли атрибут опционным (бит0=1) или стандартным (well-known, бит0=0). Бит 1 этого поля определяет, является ли атрибут переходным (бит1=1) или непереходным (бит1=0). Для обычных атрибутов этот бит должен быть равен 1. Третий бит (бит 2) поля Флагов атрибута определяет, является ли информация в опционном переходном атрибуте полной (бит2=0) или частичной (бит2=1). Для обычных и для опционных непереходных атрибутов этот бит должен быть равен нулю. Бит 3 поля флагов атрибута информирует о том, имеет ли длина атрибута один (бит3=0) октет или два октета (бит3=1). Бит3 может быть равен 1 только в случае, когда длина атрибута более 255 октетов. Младшие 4 бита октета флагов атрибута не используются (и должны обнуляться). Если бит3=0, то третий октет атрибута пути содержит длину поля данных атрибута в октетах. Если же бит3=1, то третий и четвертый октеты атрибута пути хранят длину поля данных атрибута. Остальные октеты поля атрибут пути характеризуют значение атрибута и интерпретируются согласно флагам атрибута.
Атрибуты пути бывают "стандартные обязательные" (well-known mandatory), "стандартные на усмотрение оператора", "опционные переходные" и "опционные непереходные". Стандартные атрибуты должны распознаваться любыми BGP-приложениями. Опционные атрибуты могут не распознаваться некоторыми приложениями. Обработка нераспознанных атрибутов задается битом 1 поля флагов. Пути с нераспознанными переходными опционными атрибутами должны восприниматься, как рабочие. Один и тот же атрибут может появляться в списке атрибутов пути только один раз.
Предусмотрены следующие разновидности кодов типа атрибута:
ORIGIN (код типа = 1) - стандартный обязательный атрибут, который определяет происхождение путевой информации. Генерируется автономной системой, которая является источником маршрутной информации. Значение атрибута в этом случае может принимать следующие значения:
Код атрибута
Описание
0
IGP - информация достижимости сетевого уровня является внутренней по отношению к исходной автономной системе;
1
EGP - информация достижимости сетевого уровня получена с помощью внешнего протокола маршрутизации;
2
Incomplete - информация достижимости сетевого уровня получена каким-то иным способом.
AS_PATH (код типа = 2) также является стандартным обязательным атрибутом, который составлен из совокупности сегментов пути. Атрибут определяет автономные системы, через которые доставлена маршрутная информация. Когда BGP-маршрутизатор передает описание маршрута, которое он получил от своего BGP-партнера, он модифицирует AS_PATH-атрибут, соответствующий этому маршруту, если информация передается за пределы автономной системы. Каждый сегмент AS_PATH состоит из трех частей . Тип сегмента пути представляет в свою очередь однооктетное поле, которое может принимать следующие значения:
Код типа сегмента
Описание
1
AS_set: неупорядоченный набор маршрутов в update сообщении;
2
AS_sequence: упорядоченный набор маршрутов автономной системы в UPDATE-сообщении.
<
/p>
Длина сегмента пути представляет собой одно-октетное поле, содержащее число as, записанных в поле оценка сегмента пути. Последнее поле хранит один или более кодов автономной системы, по два октета каждый.
NEXT_HOP (код типа = 3) - стандартный обязательный атрибут, определяющий IP-адрес пограничного маршрутизатора, который должен рассматриваться как цель следующего шага на пути к точке назначения.
MULTI_EXIT_DISC (код типа = 4) представляет собой опционный непереходной атрибут, который занимает 4 октета и является положительным целым числом. Величина этого атрибута может использоваться при выборе одного из нескольких путей к соседней автономной системе.
LOCAL_PREF (код типа = 5) является опционным атрибутом, занимающим 4 октета. Он используется BGP-маршрутизатором, чтобы сообщить своим BGP-партнерам в своей собственной автономной системе степень предпочтения объявленного маршрута.
ATOMIC_AGGREGATE (код типа = 6) представляет собой стандартный атрибут, который используется для информирования партнеров о выборе маршрута, обеспечивающего доступ к более широкому списку адресов.
aggregator (код типа = 7) - опционный переходной атрибут с длиной в 6 октетов. Атрибут содержит последний код автономной системы, который определяет агрегатный маршрут (занимает два октета), и IP-адрес BGP-маршрутизатора, который сформировал этот маршрут (4 октета). Объем информации о достижимости сетевого уровня равен (в октетах):
Длина сообщения UPDATE - 23 - полная длина атрибутов пути - длина списка отмененных маршрутов. Информация о достижимости кодируется в следующей форме:
Поле длина определяет длину IP-адресного префикса в битах. Если длина равна нулю, префикс соответствует всем IP-адресам. Префикс содержит IP-адресные префиксы и двоичные разряды, дополняющие код до целого числа октетов.
Информация о работоспособности соседних маршрутизаторов получается из KEEPALIVE-сообщений, которые должны посылаться настолько часто, чтобы уложиться во время, отведенное таймером сохранения (hold). Обычно это время не должно превышать одной трети от времени сохранения, но не должно быть и меньше 1 секунды. Если выбранное значение времени сохранения равно нулю, периодическая посылка KEEPALIVE-сообщений не обязательна.
NOTIFICATION- сообщения посылаются, когда обнаружена ошибка. BGP-связь при этом немедленно прерывается. Помимо заголовка NOTIFICATION-сообщение имеет следующие поля:
Код ошибки представляет собой одно-октетное поле и указывает на тип данного сообщения. Возможны следующие коды ошибки:
Таблица 4.4.11.4.1. Коды ошибок
Код ошибки
Описание
1
Ошибка в заголовке сообщения.
2
Ошибка в сообщении open
3
Ошибка в сообщении update
4
Истекло время сохранения
5
Ошибка машины конечных состояний
6
Прерывание
При отсутствии фатальной ошибки BGP-партнер может в любой момент прервать связь, послав NOTIFICATION-сообщение с кодом ошибки прерывание.
Одно-октетное поле cубкод ошибки предоставляет дополнительную информацию об ошибке. Каждый код ошибки может иметь один или более субкодов. Если поле содержит нуль, это означает, что никаких субкодов не определено.
Таблица 4.4.11.4.2 Субкоды ошибок
Ошибка
Субкод
Описание
Заголовок
1
2
3
Соединение не синхронизовано
Неверная длина сообщения
Неверный тип сообщения
Сообщения OPEN
1
2
3
4
5
6
Неверный код версии
Ошибочный код as-партнера
Ошибочный идентификатор BGP
Ошибка в коде идентификации
Ошибка при идентификации
Неприемлемое время сохранения
Сообщения UPDATE
1
2
3
4
5
6
7
8
9
10
11
Ошибка в списке атрибутов
Не узнан стандартный атрибут
Отсутствует стандартный атрибут
Ошибка в флагах атрибута
Ошибка в длине атрибута
Неправильный атрибут origin
Циклический маршрут
Ошибка в атрибуте next_hop
Ошибка в опционном атрибуте
Ошибка в сетевом поле
Ошибка в as_path
Вся маршрутная информация хранится в специальной базе данных RIB (routing information base). Маршрутная база данных BGP состоит из трех частей:
1.
ADJ-RIBS-IN:
Запоминает маршрутную информацию, которая получена из update-сообщений. Это список маршрутов, из которого можно выбирать. (policy information base - PIB).
2.
LOC-RIB:
Содержит локальную маршрутную информацию, которую BGP-маршрутизатор отобрал, руководствуясь маршрутной политикой, из ADJ-RIBS-IN.
3.
ADJ-RIBS-OUT:
Содержит информацию, которую локальный BGP-маршрутизатор отобрал для рассылки соседям с помощью UPDATE-сообщений.
<
/p>
Так как разные BGP- партнеры могут иметь разную политику маршрутизации, возможны осцилляции маршрутов. Для исключения этого необходимо выполнять следующее правило: если используемый маршрут объявлен не рабочим (в процессе корректировки получено сообщение с соответствующим атрибутом), до переключения на новый маршрут необходимо ретранслировать сообщение о недоступности старого всем соседним узлам.
Протокол BGP позволяет реализовать маршрутную политику, определяемую администратором AS (см. раздел "Автономные системы и маршрутная политика"). Политика отражается в конфигурационных файлах BGP. Маршрутная политика это не часть протокола, она определяет решения, когда место назначения достижимо несколькими путями, политика отражает соображения безопасности, экономические интересы и пр. Количество сетей в пределах одной AS не лимитировано. Один маршрутизатор на много сетей позволяет минимизировать таблицу маршрутов.
BGP использует три таймера:
Connectretry (сбрасывается при инициализации и коррекции; 120 сек),
Holdtime (запускается при получении команд Update или Keepalive; 90сек) и
keepalive (запускается при посылке сообщения Keepalive; 30сек).
BGP отличается от RIP и OSPF тем, что использует TCP в качестве транспортного протокола. Две системы, использующие BGP, связываются друг с другом и пересылают посредством TCP полные таблицы маршрутизации. В дальнейшем обмен идет только в случае каких-то изменений. ЭВМ, использующая BGP, не обязательно является маршрутизатором. Сообщения обрабатываются только после того, как они полностью получены.
BGP является протоколом, ориентирующимся на вектор расстояния. Вектор описывается списком AS по 16 бит на AS. BGP регулярно (каждые 30сек) посылает соседям TCP-сообщения, подтверждающие, что узел жив (это не тоже самое что "Keepalive" функция в TCP). Если два BGP-маршрутизатора попытаются установить связь друг с другом одновременно, такие две связи могут быть установлены. Такая ситуация называется столкновением, одна из связей должна быть ликвидирована. При установлении связи маршрутизаторов сначала делается попытка реализовать высший из протоколов (например, BGP-4), если один из них не поддерживает эту версию, номер версии понижается.
Протокол BGP-4 является усовершенствованной версией (по сравнению с BGP-3). Эта версия позволяет пересылать информацию о маршруте в рамках одного IP-пакета. Концепция классов сетей и субсети находятся вне рамок этой версии. Для того чтобы приспособиться к этому, изменена семантика и кодирование атрибута AS_PASS. Введен новый атрибут LOCAL_PREF (степень предпочтительности маршрута для собственной AS), который упрощает процедуру выбора маршрута. Атрибут INTER_AS_METRICSпереименован в MULTI_EXIT_DISC (4 октета; служит для выбора пути к одному из соседей). Введены новые атрибуты ATOMIC_AGGREGATE и AGGREGATOR, которые позволяют группировать маршруты. Структура данных отражается и на схеме принятия решения, которая имеет три фазы:
Вычисление степени предпочтения для каждого маршрута, полученного от соседней AS, и передача информации другим узлам местной AS.
Выбор лучшего маршрута из наличного числа для каждой точки назначения и укладка результата в LOC-RIB.
Рассылка информации из loc_rib всем соседним AS согласно политике, заложенной в RIB. Группировка маршрутов и редактирование маршрутной информации.
Бесклассовая интердоменная маршрутизация (CIDR- classless interdomain routing, RFC-1520, -1519) – способ избежать того, чтобы каждая С-сеть требовала свою таблицу маршрутизации. Основополагающий принцип CIDR заключается в группировке (агрегатировании) IP-адресов таким образом, чтобы сократить число входов в таблицах маршрутизации (RFC-1519, RFC-1518, RFC-1467, RFC-1466). Протокол совместим с RIP-2, OSPF и BGP-4. Основу протокола составляет идея бесклассовых адресов, где нет деления между полем сети и полем ЭВМ. Дополнительная информация, например 32-разрядная маска, выделяющая поле адреса сети, передается в рамках протокола маршрутизации. При этом выдерживается строгая иерархия адресов: провайдер > предприятие > отдел/здание > сегмент локальной сети. Групповой (агрегатный) адрес воспринимается маршрутизатором как один адрес. Группу может образовывать только непрерывная последовательность IP-адресов. Такой бесклассовый интернетовский адрес часто называется IP-префиксом. Так адрес 192.1.1.0/24 означает диапазон адресов 192.1.1.0 - 192.1.1.255, а адрес 192.1.128.0/17 описывает диапазон 192.1.128.0 - 192.1.255.255, таким образом, число, следующее после косой черты, задает количество двоичных разрядов префикса. Это представление используется при описании политики маршрутизации и самих маршрутов (см. разд.4.4.11.4 – "Маршрутная политика"). Для приведенных примеров это в терминах масок выглядит следующим образом:
24 и 17 длины префикса сети.
Следует помнить, что маски с разрывами здесь недопустимы. Ниже приведена таблица метрик маршрутизации для различных протоколов.
Протокол
Метрика
Диапазон
Код "маршрут недостижим"
RIP
hello
BGP
Число скачков
Задержка в ms
Не определена
0-15
0-29999
0-65534
16
30000
65535
Колонка "маршрут недостижим" содержит коды метрики, которые говорят о недоступности маршрута. Обычно предполагается, что если послан пакет из точки <А> в точку <B>, то маршруты их в одном и другом направлении совпадают. Но это не всегда так. Пример, когда маршруты пакетов "туда" и "обратно" не совпадают, представлен на рис. 4.4.11.4.4. В предложенной схеме имеется две ЭВМ "Место назначения" и "ЭВМ-отправитель", а также два маршрутизатора "GW-2" и "GW-1".
Рис. 4.4.11.4.4. Пример разных маршрутов для пути "туда" и "обратно".
Предполагается, что оператор находится в ЭВМ-отправителе. Команда traceroute 192.148.166.33 в этом случае выдаст:
1 GW-1
(192.148.166.35)
2 Место назначения
(192.148.166.33)
Команда же traceroute 192.148.165.80 распечатает:
1 GW-1
(192.148.166.35)
2 GW-2
(192.148.166.7)
3 Место назначения
(192.148.165.80)
Команда traceroute -g 192.148.165.80 сообщит вам:
1 GW-1
(192.148.166.35)
2 *****
; В этом режиме маршрутизатор не откликается
3 Место назначения
(192.148.165.80)
4 GW-1
(192.148.166.35)
5 ЭВМ-отправитель
(192.148.166.32)
Из приведенных примеров видна также полезность команды traceroute для понимания того, как движутся пакеты в сети. В некоторых случаях это может помочь оптимизировать маршрутизацию и улучшить пропускную способность сети.
Другой полезной командой является Netstat, которая позволяет получить разнообразную информацию о состоянии сети. Существует четыре модификации этой команды:
-a отображает состояния всех соединений;
-i отображает значения конфигурационных параметров;
-r отображает таблицу маршрутов;
- v отображает статистику обмена локального Ethernet-интерфейса.
Например, команда netstat -r может выдать:
Routing tables (таблицы маршрутизации)
Destination
Gateway
Flags
Refcnt
Use
Interface
Stavropol-GW.ITEP.RU
nb
UGHD
0
109
le0
ihep.su
itepgw
UGHD
0
103
le0
m10.ihep.su
itepgw
UGHD
0
16
le0
194.85.66.50
itepgw
UGHD
0
455
le0
Kharkov.ITEP-Kharkov
nb
UGHD
0
105
le0
Bryansk-GW.ITEP.Ru
nb
UGHD
1
8113
le0
193.124.225.67
nb
UGHD
0
0
le0
ixwin.ihep.su
itepgw
UGHD
1
6450
le0
ihep.su
itepgw
UGHD
0
14
le0
192.148.166.21
nb
UGHD
0
109
le0
ihep.su
itepgw
UGHD
0
224
le0
193.124.225.71
nb
UGHD
0
10
le0
194.85.112.0
ITEP-FDDI-BBone.ITEP
UGD
0
253
le0
default
itepgw
UG
10
102497
le0
Здесь приведен только фрагмент маршрутной таблицы. Колонка destination указывает на конечную точку маршрута (default - маршрут по умолчанию), колонка gateway – имена маршрутизаторов, через которые достижим адресат. Флаг "U" (Up) свидетельствует о том, что канал в рабочем состоянии. Флаг "G" указывает на то, что маршрут проходит через маршрутизатор (gateway). При этом вторая колонка таблицы содержит имя этого маршрутизатора. Если флаг "G" отсутствует, ЭВМ непосредственно связана с указанной сетью. Флаг "D" указывает на то, что маршрут был добавлен динамически. Если маршрут связан только с конкретной ЭВМ, а не с сетью, он помечается флагом "H" (host), при этом первая колонка таблицы содержит его IP-адрес. Базовая команда netstat может обеспечить следующую информацию:
Active Internet connections (активные Интернет связи)
Proto
Recv-Q
Send-Q
Local Address
Foreign Address
(state)
tcp
0
0
127.0.0.1.1313
127.0.0.1.sunrpc
TIME_WAIT
tcp
0
0
ns.1312
193.124.18.65.smtp
SYN_SENT
tcp
0
0
127.0.0.1.1311
127.0.0.1.sunrpc
TIME_WAIT
tcp
0
0
ns.1310
ns.domain
TIME_WAIT
tcp
0
0
127.0.0.1.1309
127.0.0.1.sunrpc
TIME_WAIT
tcp
39
24576
ns.nntp
Bryansk-GW.ITEP.1697
ESTABLISHED
tcp
0
0
ns.telnet
semenov.1802
ESTABLISHED
tcp
0
188
ns.1033
xmart.desy.de.6000
ESTABLISHED
udp
0
0
127.0.0.1.domain
*.*
udp
0
0
ns.domain
*.*
<
/p>
Active UNIX domain sockets (активные UNIX-соединители домена)