Цель работы: Изучить протоколы Echo, Time, DayTime, WhoIs, Finger, RLogin, Telnet.
Краткие теоретические сведения
Протокол Echo.
Эхо-сервис весьма полезен для отладки и выполнения измерений. Этот сервис просто возвращает отправителю любые данные, полученные от него. Полное описание протокола можно найти в стандарте RFC 862.
Службы Echo на базе протокола TCP.
Один из вариантов эхо-сервиса определен как основанный на организации соединений приложение ТСР. Эхо-сервер прослушивает соединения ТСР на порту 7. После организации соединения все полученные через это соединение данные возвращаются отправителю. Процесс возврата полученных данных отправителю продолжается до тех пор, пока инициатор соединения не разорвет это соединение.
Службы Echo на базе протокола UDP.
Другой вариант эхо-сервиса не использует прямых соединений и основан на передаче дейтаграмм UDP. Эхо-сервер прослушивает порт 7 (UDP) и возвращает отправителю все принятые через этот порт дейтаграммы.
Time.
Данный протокол предназначен для синхронизации времени. В сети работают time-серверы, у которых можно запросить точное время. Следует заметить, что в настоящее время для синхронизации времени в глобальных сетях используется более сложный протокол - NTP - Network Time Protocol. В ответ на запрос клиента, сервер возвращает время в секундах (32х битное двоичное число), прошедшее с 00:00:00 1 января 1900 года.
Этот протокол может использовать в качестве транспортной службы как UDP-протокол, так и TCP-протокол. Стандартный порт протокола - 37.
Если в качестве транспортной службы используется TCP, взаимодействие осуществляется так:
SERVER: прослушивает 37 порт, ожидая соединений
CLIENT: запрашивает соединение с портом 37 сервера
SERVER: посылает время в виде двоичного 32х битного числа
CLIENT: получает время
SERVER: закрывает соединение
CLIENT: закрывает соединение
Если сервер по каким-либо причинам не может определить время на своей стороне, он отказывается от соединения, не посылая ничего.
Если в качестве транспортной службы используется UDP, взаимодействие осуществляется так:
SERVER: прослушивает 37 порт, ожидая соединений
CLIENT: посылает серверу пустой UDP-пакет, номер порта = 37
SERVER: получает пустой UDP-пакет
SERVER: посылает UDP-пакет, содержащий время в виде двоичного 32х битного числа
CLIENT: получает UDP -пакет, содержащий время
Если сервер по каким-либо причинам не может определить время на своей стороне, он отбрасывает полученный пустой UDP-пакет и не посылает ничего в ответ.