logo
Unix (28

Протоколы прикладного уровня.

Универсальный протолок — Telnet. Большинство протоколов интернета прикладного уровня можно реализовать, используя telnet. Это фактически передача неструктурированных данных. У этого протокола есть telnet-клиент.

У команды telnet два параметра: IP-адрес, к которому мы хотим обратиться, и порт, к которому мы хотим обратиться.

telnet (<адрес обращения>,<порт обращения>).

Пример работы:

$telnet 127.0.0.1 25

/*Запускается почтовый клиент(потому что указан порт 25) если команда выполнена успешно – код возврата начинается с 2, если неуспешно – с 5.*/

Trying 127.0.0.1...

Connected to localhost.

Escape characte is '^]'.

220 users.inse.eu ESMTP Sendmail 8.14.3/8.14.2; Wed, 28 Mar 2012 14:06:05

Надо для начала представиться:

HELO inse.ru

Теперь можно отправить письмо:

MAIL FROM: maximh

Но требуется ещё и домен указать, так что попробуем так:

MAIL FROM: maxim@inse.ru

Кому же мы посылаем письмо?

RCPT TO: maxim@kiae.ru

Теперь напишем само письмо с помощью

DATA

Теперь надо ввести текст письма, закончив точкой, к примеру:

test

.

Мы получим в ответ код и идентификатор а так же сообщение о том,что сообщение принято для отправки.

После этого мы закончим соединение с помощью

QUIT.

Все данные тут представляются печатными символами, двоичные данные не прокатят. Запрос выглядят следующим образом: команда + параметры. После запроса ответ выглядит следующим образом: статус выполненной команды + результат выполнения. И в запросе,и в ответе кроме имени команды могут передаваться данные, которые относятся либо к запросу, либо к ответу. Эти данные обычно состоят из двух частей: заголовок + тело. Заголовок от тела отделяется пустой строкой.

То есть выглядеть это должно примерно вот так:

\r\n\r\n

\r – возврат каретки, \n – перевод на новую строку

Заголовок выглядит следующим образом: ключ:значение, например, если бы мы правильно писали письмо, оно должно было выглядеть следующим образом:

From: maximh

To: tany

Data:

fgfkzd

.

В принципе, команду telnet можно вызвать без номера порта, тогда будет использоваться 23 порт. Обычно 23-й порт слушает программа под названием telnet-сервер. Она слушает логин/пароль, а затем начинает выполнять команды от имени указанного пользователя.