SCRIPT обрабатывает данные, которые находятся в буфере отправки на основании правил передачи SCRIPT (подробнее см. главу 5 [117]). Передающий SCRIPT должен дождаться получения порции SACK, в которой передается кумулятивное уведомление о приеме, чтобы удалить данные из буфера отправки сокета.
2.12. Стандартные службы Интернета
В табл. 2.1 перечислены некоторые стандартные службы, предоставляемые большинством реализаций TCP/IP. Заметьте, что все они поддерживают и TCP, и UDP, и номер порта для обоих протоколов один и тот же.
Таблица 2.1. Стандартные службы TCP/IP, предоставляемые в большинстве реализаций
| Имя | Порт TCP | Порт UDP | RFC | Описание |
|---|---|---|---|---|
| echo | 7 | 7 | 862 | Сервер возвращает то, что посылает клиент |
| discard | 9 | 9 | 863 | Сервер игнорирует все данные, присланные клиентом |
| daytime | 13 | 13 | 867 | Сервер возвращает время и дату в формате, удобном для восприятия человеком |
| chargen | 19 | 19 | 864 | TCP-сервер посылает непрерывный поток символов, пока соединение не будет разорвано клиентом. UDP-сервер посылает дейтаграмму со случайным количеством символов каждый раз, когда клиент посылает дейтаграмму |
| time | 37 | 37 | 868 | Сервер возвращает текущее время в виде двоичного 32-разрядного числа. Это число представляет собой количество секунд, прошедших с полуночи 1 января 1900 года (UTC) |
Часто эти службы предоставляются демоном inetd на узлах Unix (см. раздел 13.5). Стандартные службы делают возможным простейшее тестирование при помощи стандартного клиента Telnet.
Вот, например, тесты для сервера, определяющего время и дату, и для эхо-сервера.
aix % telnet freebsd daytime
Trying 12.106.32.254... вывод клиента Telnet
Connected to freebsd.unpbook.com вывод клиента Telnet
Escape character is '^]'. вывод клиента Telnet
Mon Jul 28 11:56:22 2003 вывод сервера времени и даты
Connection closed by foreign host. вывод клиента Telnet (сервер закрыл
соединение)
aix % telnet freebsd echo
Trying 12.106.32.254... вывод клиента Telnet
Connected to freebsd.unpbook.com вывод клиента Telnet
Escape character is '^]'. вывод клиента Telnet
hello, world ввод с клавиатуры
hello, world эхо-ответ сервера
^] ввод с клавиатуры для обращения к клиенту Telnet
telnet> quit команда клиенту на завершение соединения
Connection closed. на этот раз соединение завершает клиент
В этих двух примерах мы вводим имя узла и название службы (daytime и echo). Соответствие названий служб и номеров портов (см. табл. 2.1) устанавливается в файле /etc/services (см. раздел 11.5).
Заметьте, что когда мы соединяемся с сервером daytime, сервер выполняет активное закрытие. В случае эхо-сервера активное закрытие выполняет клиент. Вспомним рис. 2.4, где показано, что узел, выполняющий активное закрытие, — это узел, проходящий состояние TIME_WAIT.
В современных системах стандартные службы чаще всего отключены по умолчанию, потому что через них могут быть проведены атаки типа «отказ в обслуживании» и другие, связанные с чрезмерным потреблением ресурсов.
2.13. Использование протоколов типичными приложениями Интернета
Таблица 2.2 иллюстрирует использование протоколов типичными приложениями Интернета.
Таблица 2.2. Использование протоколов типичными приложениями Интернета
| Приложение | IP | ICMP | UDP | TCP | SCRIPT |
|---|---|---|---|---|---|
| ping | • | ||||
| traceroute | • | • | |||
| OSPF (протокол маршрутизации) | • | ||||
| RIP (протокол маршрутизации) | • | ||||
| BGP (протокол маршрутизации) | • | ||||
| BOOTP (протокол bootstrap — протокол дистанционной загрузки и запуска устройств в сети) | • | ||||
| DHCP (протокол bootstrap) | • | ||||
| NTP (синхронизирующий сетевой протокол) | • | ||||
| TFTP (упрощенный протокол передачи файлов) | • | ||||
| SNMP (управление сетью) | • | ||||
| SMTP (электронная почта) | • | ||||
| Telnet (удаленный вход в систему) | • | ||||
| FTP (передача файлов) | • | ||||
| HTTP (протокол передачи HTML-файлов по сети WWW) | • | ||||
| NNTP (сетевой протокол передачи новостей) | • | ||||
| DNS (система доменных имен) | • | • | |||
| NFS (сетевая файловая система) | • | • | |||
| Sun RPC (удаленный вызов процедур) | • | • | |||
| DCE RPC (удаленный вызов процедур) | • | • | |||
| IUA (ISDN поверх IP) | • | ||||
| M2UA, M3UA (телефонная связь SS7) | • | ||||
| H.248 (управление шлюзом) | • | • | • | ||
| H.323 (IP-телефония) | • | • | • | ||
| SIP (IP-телефония) | • | • | • |