
- •Федеральное агентство по образованию
- •XDsl, рабочие частоты и расстояния ……………...…….……… 37
- •Основная литература
- •Лекция 1.Служба dhcp Windows 2003 Основные понятия
- •Установка и настройка сервера dhcp
- •Дополнительная литература
- •Лекция 2.Протокол tcp. Структура tcp-сегмента
- •Лекция 3. Протокол tcp. Схема взаимодействия партнеров tcp-соединения Этапы tcp-взаимодействия
- •Таймеры протокола тср
- •Активные подключения Имя Локальный адрес Внешний адрес Состояние
- •Лекция 4. Протокол udp
- •Формат udp-пакета
- •Применение протокола
- •Лекция 5. Программный интерфейс сокетов
- •Лекция 6. Web-серверы на основе iis Windows 2003 Основные понятия
- •Настройка Web-сервера для работы в сети
- •Стандартные протоколы и радиочастоты wlan
- •Ieee 802.11a-1999│ 54 Мбит/с │ 5 гГц
- •Ieee 802.11b-1999│ 11 Мбит/с │ 2,4 гГц
- •Ieee 802.11g-2003│ 54 Мбит/с │ 2,4 гГц
- •Топологии сетей wlan
- •Некоторые сведения о работе адаптеров wlan на физическом уровне
- •1* │ Код Баркера │ dbpsk │ Код Баркера │ dbpsk
- •2* │ Код Баркера │ dqpsk │ Код Баркера │ dqpsk
- •Дополнительная литература к лекциям 7- 9
- •Словарь терминов к лекциям 7- 9
- •Работа адаптеров wlan на канальном уровне
- •2 2 6 6 6 2 6 До 2312 байт 4
- •Скорость передачи данных в сети wlan
- •Присоединение станций к сети wlan
- •Безопасность wlan
- •30 │ До 2312 байт │ 4
- •Принципы работы, протоколы, скорости xDsl
- •Кодирование сигналов в линиях xDsl, рабочие частоты и расстояния
- •Дополнительная литература к лекциям 10 - 11
- •Словарь терминов к лекциям 10-11
- •Типовое оборудование xDsl
- •Основные схемы применения технологии xDsl
- •Введение в технологию acl
- •Стандартные списки доступа
- •Ip access-group номер acl in | out
- •Просмотр и редактирование acl
- •Дополнительная литература к лекциям 12 - 13
- •Расширенные списки доступа
- •Применение в правилах ключевого слова tcp
- •Применение в правилах ключевого слова udp
- •Применение в правилах ключевого слова icmp
- •Удаленный доступ в корпоративных сетях
- •Протокол ppp канального уровня
- •Формат кадра протокола ppp
- •Особенности передачи ррр-кадров на физическом уровне
- •Принципы организации протокола ррр
- •Протокол управления соединенением lcp
- •Аутентификация партнеров
- •Протокол управления шифрованием данных ррр-соединения
- •Ipcp - протокол управления инкапсуляцией ip-пакетов
- •Конфигурации сетей удаленного доступа
- •Схемы взаимодействия “клиент–сеть”
- •Схемы взаимодействия “сеть–сеть”
- •Дополнительная литература к лекциям 14 - 16
- •3. Технология adsl скоростного доступа к глобальным сетям по телефонным
- •Туннелирование и криптография – базовые принципы организации виртуальных частных сетей
- •Протокол общей инкапсуляции gre
- •Протокол туннелирования рртр
- •Средства построения сетей vpn
- •Схемы сетей vpn с протоколом рртр на основе ос
- •Дополнительная литература к лекции 17
Лекция 2.Протокол tcp. Структура tcp-сегмента
Полная спецификация протокола TCPпредставлена в документеRFC793.
TCP (Transmission Control Protocol, Протокол управления передачей) был спроектирован в качестве связующего протокола для обеспечения интерактивной работы между компьютерами. TCP обеспечивает надежность и достоверность обмена данными между процессами на компьютерах, входящих в общую сеть.
TCP находится на транспортном уровне стека TCP/IP, между протоколом IP и собственно приложением. Протокол IP занимается пересылкой дейтаграмм по сети, никак не гарантируя доставку, целостность, порядок прибытия информации и готовность получателя к приему данных; все эти задачи возложены на протокол TCP.
При получении дейтаграммы, в поле Protocol которой указан код протокола TCP (6), модуль IP передает данные этой дейтаграммы модулю TCP. Эти данные представляют собой TCP-сегмент, содержащий TCP-заголовок и данные пользователя (прикладного процесса). Модуль TCP анализирует служебную информацию заголовка, определяет, какому именно процессу предназначены данные пользователя, проверяет целостность и порядок прихода данных и подтверждает их прием другой стороне. По мере получения правильной последовательности неискаженных данных пользователя они передаются прикладному процессу.
Ниже основные функции протокола TCP и их реализация рассмотрены более подробно.
Базовая передача данных
Протокол TCP способен передавать непрерывные потоки байтов между своими клиентами в обоих направлениях, пакуя байты в сегменты для передачи через системы Internet. В общем случае протоколы TCP решают по своему усмотрению, когда производить приостановку и передачу данных.
Обеспечение достоверности
Протокол TCP должен иметь защиту от разрушения данных, потери, дублирования и нарушения очередности получения. Это достигается присвоением очередного номера каждому передаваемому байту, а также требованием подтверждения (ACK) от программы TCP, принимающей данные. Если подтверждения не получено в течение контрольного интервала времени, то данные посылаются повторно. Со стороны получателя номера очереди используются для восстановления очередности сегментов, которые могут быть получены в неправильном порядке, а также для ограничения возможности появления дубликатов.
Повреждения обнаруживаются посредством контрольной суммы сегмента, проверки ее при получении и последующей ликвидацией дефектных сегментов повторной передачей.
Управление потоком
Протокол TCP дает средства получателю управлять количеством данных, посылаемых ему отправителем. Это достигается возвратом так называемого "окна" (window) вместе с каждым подтверждением, которое указывает диапазон приемлемых номеров, следующих за номером последнего успешно принятого сегмента. Окно определяет количество байтов, которое отправитель может послать до получения дальнейших указаний.
Мультиплексирование каналов
Протокол TCP обеспечивает на одном компьютере работу одновременно нескольких соединений. Каждый прикладной процесс идентифицируется номером порта. Заголовок TCP-сегмента содержит номера портов процесса-отправителя и процесса-получателя. При получении сегмента модуль TCP анализирует номер порта получателя и отправляет данные соответствующему прикладному процессу.
Все распространенные сервисы Интернет имеют стандартизованные номера портов. Например, номер порта сервера электронной почты - 25, сервера FTP – 21, сервера TELNET – 23, WWW-сервера – 80 и т.д.
Совокупность IP-адреса и номера порта называется сокетом. Сокет уникально идентифицирует прикладной процесс. Например, сокет сервера электронной почты на хосте 194.84.124.4 обозначается как 194.84.124.4.25; часто номер порта отделяется двоеточием.
Работа с соединениями
Соединение - это совокупность информации о состоянии потока данных, включающая сокеты, номера посланных, принятых и подтвержденных байтов, размеры окон. Каждое соединение уникально идентифицируется парой сокетов. Соединение характеризуется для клиента некоторым указателем на структуру TCB (Transmission Control Block), содержащую полную информацию о соединении.
Если два процесса желают обмениваться информацией, соответствующие программы протокола TCP должны сначала установить соединение (на каждой стороне инициализировать информацию о статусе). По завершении обмена информацией соединение должно быть расторгнуто или закрыто, чтобы освободить ресурсы для предоставления другим пользователям. Во избежание ошибочной инициализации соединений используется механизм подтверждения связи.
Формат TCP-сегмента
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
Source Port |
Destination Port | ||||||||||||||||||||||||||||||
Sequence Number (SN) | |||||||||||||||||||||||||||||||
Acknowledgment Number (AN) | |||||||||||||||||||||||||||||||
Data Offset |
Reserved |
U R G |
A C K |
P S H |
P S T |
S Y N |
F I N |
Window | |||||||||||||||||||||||
Checksum |
Urgent Pointer | ||||||||||||||||||||||||||||||
Options |
Padding | ||||||||||||||||||||||||||||||
Data |
Рис.1. ФорматTCP-сегмента
Source Port(16 бит) – номер порта отправителя.
Destination Port(16 бит) – номер порта получателя.
Sequence Number(32 бит) – последовательный номер передаваемого байта данных (номер первого байта поля данных сегмента). Каждая сторона счет передаваемых байт ведет независимо. При установке ТСР-соединения счетчикSNпринимает случайное 32-битовое значение, которое передается противоположной стороне в сегменте SYN.
Если в сегменте присутствует флаг SYN, то номер является инициализационным (ISN) и номер первого байта данных будет ISN+1.
Acknowledgment Number(32 бит) – ожидаемый номер первого байта данных в следую-щем принимаемом сегменте. Этим номером подтверждаются все принятые байты доAN-1 включительно.
Если установлен управляющий бит ACK, то поле ANсодержит следующий номер байта, который отправитель данной датаграммы желает получить в обратном направлении. Номера подтверждения посылаются постоянно, как только соединение будет установлено.
Data Offset(4 бита) – длина заголовка в 32-битных словах.
Указывает на начало поля данных. TCP заголовок всегда кончается на 32-битной границе слова, даже если он содержит опции.
Reserved(6 бит).
Резервное поле, должно быть заполнено нулями.
Control Bits(6 бит) – управляющие биты.
URG |
указатель срочности данных этого сегмента |
ACK |
подтверждение получения правильного сегмента |
PSH |
проталкивание приложению данного сегмента вне очереди |
RST |
перезагрузка данного соединения |
SYN |
синхронизация счетчиков байтов в фазе установления соединения |
FIN |
нет больше данных для передачи |
Рис. 2. Управляющие биты
Window(16 бит) – количество байтов, которое может принять отправитель настоящего сегмента.
Checksum(16 бит) – контрольная сумма.
Контрольная сумма – это 16-битное число, контролирующее ошибки сегмента. Если сегмент содержит в заголовке и данных нечетное количество байтов, подлежащих учету в контрольной сумме, последний байт будет дополнен нулями справа с тем, чтобы образовать для вычисления контрольной сумме 16-битное слово. Возникший при таком выравнивании байт не передается вместе с сегментом по сети. Перед вычислением контрольной суммы поле этой суммы заполняется нулями.
Контрольная сумма вычисляется с учетом специального псевдозаголовка, который ставится перед TCP заголовком (но никуда не передается). Псевдозаголовок содержит адрес отправителя и получателя (по 32 бита), код протокола (для ТСР это код 6) и длину TCP сегмента в байтах (без псевдозаголовка):
Адрес отправителя (32 бит) | ||
Адрес получателя (32 бит) | ||
8 нулей |
Код протокола (8 бит) |
Длина сегмента (16 бит) |
Рис. 3. Псевдозаголовок
Такой подход обеспечивает защиту протокола TCP от ошибившихся в маршруте сегментов.
Контрольная сумма – есть 16 младших разрядов от арифметического сложения 16-битных слов ТСР-сегмента и псевдозаголовка как целых чисел, инвертирования разрядов всей полученной суммы и прибавления единицы к младшему разряду суммы.
Urgent Pointer(16 бит) – указатель окончания срочных данных. Указывает на номер байта следующего за срочными данными, с которого данные имеют обычный статус. Это поле интерпретируется только в том случае, когда в сегменте выставлен бит URG.
Options(длина переменная) – опции.
Опции располагаются в конце TCP заголовка, их длина кратна 8 бит. Все опции учитываются при расчете контрольной суммы.
Опции могут начинаться с любого байта. Они могут иметь два формата:
однобайтный тип опций;
байт типа опции, байт длины опции и байты данных рассматриваемой опции.
В байте длины опции указывается длина всех полей опции (в байтах).
Часто используется опция определяющая максимальный размер сегмента. Поле данных опции - 16 бит. Если опция присутствует, то она указывает для другой стороны максимальный размер получаемого сегмента. Эту опцию следует посылать лишь при первоначальном запросе на установление соединения (т.е. в сегментах с установленным контрольным битом SYN).
Padding(длина переменная) – выравнивание.
Выравнивание TCP заголовка осуществляется с тем, чтобы указать, что TCP заголовок заканчивается, а поле данных сегмента начинается на 32-битной границе. Выравнивание вы-полняется нулями.
Data(длина переменная) – данные сегмента
Сегменты с установленными битами SYNиFIN, а также сегменты с данными требуют подтверждения. После посылки этих сегментов протокол всегда включает таймерRTO.