^] ввод с клавиатуры для обращения к клиенту Telnet
telnet> quit команда клиенту на завершение соединения
Connection closed. на этот раз соединение завершает клиент
В этих двух примерах мы вводим имя узла и название службы ( daytimeи echo). Соответствие названий служб и номеров портов (см. табл. 2.1) устанавливается в файле /etc/services(см. раздел 11.5).
Заметьте, что когда мы соединяемся с сервером daytime, сервер выполняет активное закрытие. В случае эхо-сервера активное закрытие выполняет клиент. Вспомним рис. 2.4, где показано, что узел, выполняющий активное закрытие, это узел, проходящий состояние TIME_WAIT.
В современных системах стандартные службы чаще всего отключены по умолчанию, потому что через них могут быть проведены атаки типа «отказ в обслуживании» и другие, связанные с чрезмерным потреблением ресурсов.
2.13. Использование протоколов типичными приложениями Интернета
Таблица 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-телефония) |
Первые два приложения, pingи traceroute, являются диагностическими и используют протокол ICMP, tracerouteсоздает свои собственные пакеты UDP и считывает ответы ICMP.
Три популярных протокола маршрутизации демонстрируют многообразие транспортных протоколов, которые используются протоколами маршрутизации. Алгоритм OSPF (Open Shortest Path First первоочередное открытие кратчайших маршрутов) использует IP непосредственно через символьный сокет, в то время как RIP (Routing Information Protocol протокол информации о маршрутизации) использует UDP, a BGP (Border Gateway Protocol протокол граничных шлюзов) использует TCP.
Далее идут пять приложений, основанные на UDP, за ними следуют семь приложений TCP и четыре приложения UDP/TCP. Последние пять приложений относятся к IP-телефонии. Они могут использовать либо только SCRIPT, либо UDP, TCP и SCRIPT по выбору.
2.14. Резюме
TCP устанавливает соединения, используя трехэтапное рукопожатие, и разрывает соединение, используя обмен четырьмя пакетами. Когда соединение TCP установлено, оно переходит из состояния CLOSED в состояние ESTABLISHED. При разрыве соединения оно переходит обратно в состояние CLOSED. Всего существует 11 состояний, в которых может находиться соединение TCP, и диаграмма переходов состояний определяет правила перемещения между этими состояниями. Понимание этой диаграммы существенно для диагностики проблем при использовании программы netstatи для понимания того, что происходит, когда мы вызываем такие функции, как connect, acceptи close.
Состояние TCP TIME_WAIT неиссякаемый источник путаницы, возникающей у сетевых программистов. Это состояние существует для того, чтобы реализовать разрыв двустороннего соединения TCP (то есть для решения проблем, возникающих в случае потери последнего сегмента ACK), а также чтобы дождаться, когда истечет время жизни в сети старых дублированных сегментов.
SCRIPT устанавливает ассоциацию, выполняя четырехэтапное рукопожатие, и завершает соединение обменом тремя пакетами. При установлении ассоциации SCRIPT происходит переход из состояния CLOSED в состояние ESTABLISHED, а при завершении ассоциации возврат к состоянию CLOSED. Ассоциация SCRIPT может находиться в восьми состояниях, правила перехода между которыми описываются диаграммой состояний. Благодаря использованию контрольных меток SCRIPT не нуждается в состоянии TIME_WAIT.
Упражнения
Подсказка2. Где вы будете искать дополнительную информацию о протоколе, которому присвоено название «IP версия 5»?
3. Описывая рис. 2.15, мы отметили, что TCP считает MSS равным 536, если не получает величину параметра MSS от собеседника. Почему используется это значение?
4. Нарисуйте рисунок, аналогичный рис. 2.5, для клиент-серверного приложения времени и даты из главы 1, предполагая, что сервер возвращает 26 байт данных в отдельном сегменте TCP.
5. Допустим, что установлено соединение между узлом в Ethernet, чей TCP объявляет MSS, равный 1460, и узлом в Token-ring, чей TCP объявляет MSS, равный 4096. Ни один из узлов не пытается обнаружить, чему равна транспортная MTU. При просмотре пакетов мы никогда не видим более 1460 байт данных в любом направлении. Почему?
6. Описывая табл. 2.2, мы отметили, что OSPF использует IP непосредственно. Каково значение поля протокола в заголовке IPv4 (см. рис. А.1) для дейтаграмм OSPF?