Telnet — пример на тему порядковых номеров и номеров подтверждения

Протокол Telnet, описанный в документе RFC 854, является популярным протоколом прикладного уровня, применяемым для удаленного доступа к сети. В нем используются службы протокола TCP, и он может выполняться на любой паре хостов. В отличие от приложений, рассмотренных в главе 2 и передающих большие объемы данных, Telnet является интерактивным приложением. Ниже мы рассмотрим пример обмена данными по протоколу Telnet, поскольку он очень наглядно иллюстрирует механизм использования порядковых номеров и номеров подтверждения протокола TCP.

Предположим, что хост А инициирует Telnet-сеанс с хостом В. Это означает, что А будет играть роль клиента, а В — сервера. Каждый символ, введенный пользователем клиентской стороны, передается удаленному хосту; последний отсылает обратно копии символов, которые отображаются на экране пользователя. Это «обратное эхо» позволяет убедиться в том, что вводимые символы успешно принимаются сервером. Таким образом, введенные символы проходят двойной путь между хостами перед тем, как отобразиться на экране.

Предположим, что пользователь вводит единственный символ «С», и посмотрим, какими TCP-сегментами обмениваются клиент и сервер в этом случае. На рис. 3.28 показано, что начальными порядковыми номерами клиента и сервера являются 42 и 79 соответственно. Как вы помните, порядковый номер ТСР-сегмента определяется как порядковый номер первого байта его поля данных. Таким образом, первый переданный клиентом сегмент будет иметь номер 42, а первый сегмент, переданный сервером, — 79. Далее, вспомним о том, что номер подтверждения — это порядковый номер байта данных, которого ожидает хост. После того как ТСР-со-единение установлено, клиент будет ожидать получения байта с номером 79, а сервер — байта с номером 42.

328.png

Как видно из рисунка, в рассматриваемом нами случае между хостами передаются три сегмента. Первый сегмент посылается клиентом и содержит в своем поле данных ASCII-код символа «С», а в поле порядкового номера — число 42. Поскольку к моменту отправки сегмента клиентом не получено никаких данных от сервера, поле номера подтверждения будет содержать число 79.

Второй сегмент передается от сервера к клиенту и содержит две информационные составляющие. Во-первых, он квитирует данные, полученные от клиента: число 43 в поле номера подтверждения говорит о том, что байты с номерами до 42 приняты сервером успешно и ожидается байт с номером 43. Во-вторых, сегмент возвращает символ «С» клиенту, поэтому ASCII-код этого символа заносится в поле данных. Порядковый номер сегмента равен 79, поскольку он является первым сегментом, посылаемым клиентом. Обратите внимание на то, что квитанции для данных, передаваемых от клиента к серверу, отправляются вместе с данными, передаваемыми от сервера к клиенту. Подобные квитанции называют вложенными.

mastercard platinum

Наконец, третий сегмент вновь передается от клиента к серверу. Он необходим лишь для квитирования данных, посланных сервером в предыдущем сегменте (ASCII-кода символа «С»). Поле данных третьего сегмента оказывается пустым (квитанция не является «вложенной» в том смысле, что она не передается вместе с данными). Поскольку байт с номером 79 был успешно принят клиентом, последний ожидает появления байта с номером 80 и записывает число 80 в поле номера подтверждения. Кроме того, сегмент имеет порядковый номер 43. Наличие порядкового номера на первый взгляд кажется лишним (сегмент не несет никаких данных), однако, будучи обязательной частью сегмента, поле порядкового номера всегда должно содержать какое-либо значение.

Данная статья "Telnet — пример на тему порядковых номеров и номеров подтверждения" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Telnet — пример на тему порядковых номеров и номеров подтверждения" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Telnet — пример на тему порядковых номеров и номеров подтверждения", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *