Реализация скользящего окна в протоколе TCP

Особенность использования алгоритма скользящего окна в протоколе TCP состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байтов неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP. Получающий модуль TCP отправляет «окно» посылающему модулю TCP. Данное окно задает количество байтов (начиная с номера байта, о котором уже была выслана квитанция), которое принимающий модуль TCP готов в настоящий момент принять.

Квитанция (подтверждение) посылается только в случае правильного приема данных. Отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции. В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Это число часто называют номером очереди.

Если размер окна равен W, а последняя по времени квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.

 

IP-адресация, классы адресов, маска сети.

IP-адрес – это уникальный числовой адрес, однозначно идентифицирующий узел, группу узлов или сеть. IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел (так называемых «октетов»), разделенных точками – W.X.Y.Z , каждое из которых может принимать значения в диапазоне от 0 до 255, например, 213.128.193.154.

Для того, чтобы компьютер мог участвовать в сетевом взаимодействии с помощью протокола IP, ему должен быть обязательно присвоен уникальный IP-адрес.

Классы IP-адресов.

Существует 5 классов IP-адресов – A, B, C, D, E. Принадлежность IP-адреса к тому или иному классу определяется значением первого октета (W).

Класс IP-адреса A B C D E
Диапазон первого октета 1-126 128-191 192-223 224-239 240-247

IP-адреса первых трех классов предназначены для адресации отдельных узлов и отдельных сетей. Такие адреса состоят из двух частей – номера сети и номера узла.

Преимущества двухуровневой схемы очевидны: она позволяет, во-первых, адресовать целиком отдельные сети внутри составной сети, что необходимо для обеспечения маршрутизации, а во-вторых – присваивать узлам номера внутри одной сети независимо от других сетей. Естественно, что компьютеры, входящие в одну и ту же сеть должны иметь IP-адреса с одинаковым номером сети.

В случае если два компьютера имеют IP-адреса с разными номерами сетей (даже если они принадлежат одной физической сети), то они не смогут общаться друг с другом напрямую: для их взаимодействия необходим маршрутизатор.

IP-адреса разных классов отличаются разрядностью номеров сети и узла, что определяет их возможный диапазон значений.

Характеристика Класс
А В С
Номер сети W WX WXY
Номер узла XYZ YZ Z
Возможное количество сетей 16 384 2 097 151
Возможное количество узлов 16 777 214 65 534
  Особые адреса
Запись адреса сети в целом W.0.0.0 W.X.0.0 W.X.Y.0
Широковещательный адрес в сети W.255.255.255 W.X.255.255 W.X.Y.255

Схема адресации, определяемая классами A, B, и C, позволяет пересылать данные либо отдельному узлу, либо всем компьютерам отдельной сети (широковещательная рассылка). Однако существует сетевое программное обеспечение, которому требуется рассылать данные определенной группе узлов, необязательно входящих в одну сеть. Для того чтобы программы такого рода могли успешно функционировать, система адресации должна предусматривать так называемые групповые адреса. Для этих целей используются IP-адреса класса D.

Диапазон адресов класса E зарезервирован и в настоящее время не используется.

Маски сети.

Для более гибкого определения границ между разрядами номеров сети и узла внутри IP-адреса используются так называемые маски подсети. Маска подсети – это 4-байтовое число специального вида, которое используется совместно с IP-адресом. "Специальный вид" маски подсети заключается в следующем: двоичные разряды маски, соответствующие разрядам IP-адреса, отведенным под номер сети, содержат единицы, а в разрядах, соответствующих разрядам номера узла – нули.

Маска подсети обязательно указывается при настройке программного модуля протокола IP на каждом компьютере вместе с IP-адресом.

Для стандартного деления IP-адресов на номер сети и номер узла, определенного классами A, B и C маски подсети имеют вид:

Класс Двоичная форма Десятичная форма
А 11111111 00000000 00000000 00000000 255.0.0.0
В 11111111 11111111 00000000 00000000 255.255.0.0
С 11111111 11111111 11111111 00000000 255.255.255.0