ТСР агенты обмениваются сегментами данных. Каждый сегмент имеет заголовок от 20 байтов и более (по выбору) и тело произвольной длины. ТСР агент решает какой длины может быть тело.
Основным протоколом, используемым ТСР агентом является протокол скользящего окна. Это значит, что каждый посланный сегмент должен быть подтвержден. Одновременно с отправление сегмента взводится таймер. Подтверждение придет либо с очередными данными в обратном направлении, если они есть, либо без данных. Подтверждение будет нести порядковый номер очередного ожидаемого сегмента. Если таймер исчерпается прежде чем придет подтверждение, то сегмент посылается повторно.
Несмотря на кажущуюся простоту, ТСР протокол достаточно сложен и должен решать следующие основные проблемы:
• восстанавливать порядок сегментов;
• убирать дубликаты сегментов, в каком бы виде (фрагментация) они не поступали;
• определять разумную задержку для time out для подтверждений в получении сегмента;
• устанавливать и разрывать соединения надежно;
• управлять потоком;
• управлять перегрузками.
Алгоритм скользящего окна
В рамках установленного соединения в протоколе TCP правильность передачи каждого сегмента должна подтверждаться квитанцией от получателя. Квитирование – это один из традиционных методов обеспечения надежной связи. В протоколе TCP используется частный случай квитирования – алгоритм скользящего окна. При установлении соединения обе стороны договариваются о начальном номере байта, с которого будет вестись отсчет в течение всего данного соединения. У каждой стороны свой начальный номер. Идентификатором каждого сегмента является номер его первого байта. Нумерация байтов в пределах сегмента осуществляется так, что первый байт данных сразу вслед за заголовком имеет наименьший номер, а следующие за ним байты имеют следующие порядковые номера.
Когда отправитель посылает TCP-сегмент, он в качестве идентификатора сегмента помещает в поле порядкового номера номер первого байта данного сегмента. На основании этих номеров TCP-получатель не только отличает данный сегмент от других, но и позиционирует полученный фрагмент относительно общего потока. Кроме того, он может сделать вывод, что полученный сегмент является дубликатом или что между двумя полученными сегментами пропущены данные и т.д.
В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число (номер подтверждения), на единицу превышающее максимальный номер байта в полученном сегменте. Квитанция (подтверждение) в протоколе TCP посылается только в случае правильного приема данных, отрицательные квитанции не посылаются.
В протоколе TCP в одном и том же сегменте могут быть помещены и данные, которые посылает приложение другой стороне, и квитанция, которой модуль TCP подтверждает получение данных.
Протокол TCP является дуплексным, то есть в рамках одного соединения регламентируется процедура обмена данными в обе стороны. Каждая сторона одновременно выступает и как отправитель, и как получатель. У каждой стороны есть пара буферов: один – для хранения принятых сегментов, другой – для сегментов, которые только еще предстоит отправить. Кроме того, имеется буфер для хранения копий сегментов, которые были отправлены, но квитанции о получении которых еще не поступили.
8. IP-адресация, классы адресов, маска сети
IP-адрес – это уникальный числовой адрес, однозначно идентифицирующий узел, группу узлов или сеть. IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел (так называемых «октетов»), разделенных точками – W.X.Y.Z, каждое из которых может принимать значения в диапазоне от 0 до 255, например, 213.128.193.154.
Классы IP-адресов
Существует 5 классов IP-адресов – A, B, C, D, E. Принадлежность IP-адреса к тому или иному классу определяется значением первого октета (W).
IP-адреса первых трех классов предназначены для адресации отдельных узлов и отдельных сетей. Такие адреса состоят из двух частей – номера сети и номера узла.
Компьютеры, входящие в одну и ту же сеть должны иметь IP-адреса с одинаковым номером сети.
Маска сети - это битовая маска, которая в результате применения побитовой конъюнкции (логической операции И) к IP-адресу узла позволяет указать, какая часть этого IP-адреса относится к адресу сети, а какая - к адресу самого узла в этой сети, и определяет максимально возможное количество узлов в этом сетевом пространстве (фактически указывает размер сети).
9. Протокол SMTP/POP3, формат почтового сообщения
SMTP (Simple Mail Transfer Protocol, упрощенный протокол пересылки почты) — протокол, основной задачей которого является отсылка подготовленных специальным образом сообщений. Перед тем, как это сделать, протокол устанавливает соединение между компьютерами, что гарантирует доставку сообщения. Самым большим недостатком SMTP является его неспособность к пересылке графики.
РОРЗ (Post Office Protocol 3, почтовый протокол версии 3) — почтовый протокол, который используется для приема электронных сообщений с почтового сервера.
Обычно РОРЗ работает в паре с протоколом SMTP, что позволяет организовать эффективную систему отсылки и приема электронных сообщений.
Формат почтового сообщения
Почтовое сообщение состоит из трех частей: конверта, заголовка и тела сообщения. Пользователь видит только заголовок и тело сообщения. Конверт используется только программами доставки. Заголовок всегда находится перед телом сообщения и отделен от него пустой строкой. Заголовок состоит из полей. Поля состоят из имени поля и содержания поля. Имя поля отделено от содержания символом ":". Минимально необходимыми являются поля Date, From, То.
10. IP-маршрутизация
IP-Маршрутизация - процесс выбора пути для передачи пакета из одной сети в другую. Под путем (маршрутом) понимается последовательность маршрутизаторов, через которые проходит пакет по пути к узлу-назначению. IP-маршрутизатор - это специальное устройство, предназначенное для передачи пакетовиз одной сети в другую и обеспечивающее определение пути прохождения пакетов в составной сети. Маршрутизатор должен иметь несколько IP-адресов с номерами сетей, соответствующими номерам объединяемых сетей.
Маршрутизация осуществляется на узле-отправителе в момент отправки IP-пакета, а затем на IP-маршрутизаторах.
Принцип маршрутизации на узле отправителе выглядит достаточно просто. Когда требуется отправить пакет узлу с определенным IP-адресом, то узел-отправитель выделяет с помощью маски подсети из собственного IP-адреса и IP-адреса получателя номера сетей. Далее номера сетей сравниваются и если они совпадают, то пакет направляется непосредственно получателю, в противном случае - маршрутизатору, чей адрес указан в настройках протокола IP.
Выбор пути на маршрутизаторе осуществляется на основе информации, представленной в таблице маршрутизации.
11. Служба DNS. Назначенные порты (RFC 1060)
Помимо IP-адресов хосты идентифицируются доменными именами, более легкими для запоминания и отражающими логическое структурирование сети и, часто, функциональное назначение того или иного хоста. Доменное имя состоит из символьных полей, разделенных точками. Крайнее правое поле обозначает домен верхнего уровня, далее, справа налево, следуют поддомены в порядке иерархической вложенности, крайнее левое поле обозначает имя хоста
Дерево доменных имен аналогично файловой системе Unix. Корнем дерева является домен "." (точка). Полное - абсолютное или полностью определенное, fully qualified domain name - доменное имя заканчивается точкой, обозначающей корень доменного дерева, но часто эта завершающая точка опускается. Доменами верхнего уровня выступают двухбуквенные национальные домены или трехбуквенные домены Фактически, имя узла в доменном дереве является указателем (индексом) данных, связанных с этим именем. Эти данные могут быть различных типов (IP-адрес, псевдонимы хоста и др.), они сохраняются в базе данных того или иного сервера в виде стандартных записей ресурсов. Имя домена может выступать также как и имя узла, т.е. быть указателем на связанную с этим именем информацию.
Служба DNS представляет собой иерархическую структуру серверов, где каждый сервер отвечает за определенную зону - т.е. свою часть дерева доменных имен, хранит соответствующие базы данных и отвечает на запросы. При этом вышестоящие по дереву серверы имеют информацию об адресах нижестоящих серверов, что обеспечивает связность дерева (говорят, что вышестоящий сервер делегирует нижестоящему серверу полномочия по обслуживанию определенной зоны). Важно понимать различие между доменом и зоной. Домен - это поддерево дерева доменных имен. Зона - это часть дерева, за которую отвечает тот или иной DNS-сервер. Например, в домене vvsu.ru есть поддомены cts, admin, labs. Администрация DNS-сервера домена vvsu.ru делегировала домены cts и admin серверам соотвествующих подразделений. Таким образом в домене vvsu.ru образовалось 3 зоны: две зоны, совпадающие с доменами cts.vvsu.ru и admin.vvsu.ru, и третья зона, состоящая из оставшейся части домена vvsu.ru, - это поддомен labs.vvsu.ru, хосты, находящиеся непосредственно в vvsu.ru, и сам узел vvsu.ru. Другой пример: домен com состоит из N поддоменов; администрация домена com делегировала отвественность за каждый поддомен соответствующему DNS-серверу. Таким образом в домене com образовалась N+1 зона: N зон, совпадающих с поддоменами, и одна "главная" зона com, в которой содержится только информация о делегировании полномочий для каждого поддомена.
12. Механизм передачи данных в локальных сетях
Локальная сеть предоставляет возможность совместного использования оборудования.
Оборудование, программы и данные объединяют одним термином: ресурсы. Можно считать, что основное назначение локальной сети — совместный доступ к ресурсам.