Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OIS Exam.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
618 Кб
Скачать
☆

3.1.2. Обеспечение достоверности

Модуль TCP обеспечивает защиту от повреждения, потери, дублирования и нарушения очередности получения данных.

Для выполнения этих задач все октеты в потоке данных сквозным образом пронумерованы в возрастающем порядке. Заголовок каждого сегмента содержит число октетов данных в сегменте и порядковый номер первого октета той части потока данных, которая пересылается в данном сегменте. Например, если в сегменте пересылаются октеты с номерами от 2001 до 3000, то номер первого октета в данном сегменте равен 2001, а число октетов равно 1000.

Номер первого байта в потоке определяется на этапе установления соединения и обозначается ISN+1 (подробнее см. п. 3.1.4). Например, ISN+1=1.

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

При удачном приеме октета данных принимающий модуль посылает отправителю подтверждение о приеме - номер удачно принятого октета. Если в течение некоторого времени отправитель не получит подтверждения, считается, что октет не дошел или был поврежден, и он посылается снова. Этот механизм контроля надежности называется PAR (Positive Acknowledgment with Retransmission). В действительности подтверждение посылается не для одного октета, а для некоторого числа последовательных октетов (подробнее см. п. 3.1.5).

Нумерация октетов используется также для упорядочения данных в порядке очередности и обнаружения дубликатов (которые могут быть посланы из-за большой задержки при передаче подтверждения или потери подтверждения).

21. Многоуровневая архитектура стека tcp/ip

Этот пункт книги является необязательным: если вы считаете, что у вас уже достаточно знаний о протоколе TCP/IP, то можете перейти к следующим разделам, а к этому вернуться позже. Здесь будет описана многоуровневая архитектура протокола TCP/IP - для большего понимания происходящего.        Вначале давайте рассмотрим историю создания протокола TCP/IP. Протокол TCP/IP был создан в конце 60-х - начале 70-х годов агентством DARPA Министерства Обороны США (U.S. Department of Defense Advanced Research Projects Agency). Основные этапы развития этого протокола отмечены в табл. 1.4.

Этапы развития протокола TCP/IP Таблица 1.4

Год

Событие

1970

Введен в использование протокол NCP (Network Control Protocol) для узлов сети Arpanet

1972

Вышла первая спецификация Telnet (см. RFC 318)

1973

Введен протокол FTP (RFC 454)

1974

Программа TCP (Transmission Control Program)

1981

Опубликован стандарт протокола IP (RFC 791)

1982

Объединение протоколов TCP и IP в одно целое — TCP/IP

1983

Сеть Arpanet переведена на протокол TCP (ранее использовался протокол NCP)

1984

Введена доменная система имен DNS

       Как вы видите, все стандарты Интернет-протоколов опубликованы в документах RFC. Документы RFC (Request for Comments) - это запрос комментариев. В этих документах описывается устройство сети Интернет. Документы RFC создаются сообществом Интернет (Internet Society, ISOC). Любой член ISOC может опубликовать свой стандарт в документе RFC. Документы RFC делятся на пять типов:

Требуется (Required)

данный стандарт должен быть реализован на всех основных узлах TCP/IP.

Рекомендуется (Recommended)

обычно такие спецификации RFC также реализуются.

Выборочно (Elective)

реализация не обязательна.

Ограниченное использование (Limited use)

не рекомендуется для всеобщего применения.

Не рекомендуется (Not recommended)

не рекомендуется.

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

Уровни стека протоколов TCP/IP

Уровень 1

Прикладной уровень (уровень приложения, Application Layer)

Уровень 2

Основной (транспортный) уровень (Transport Layer)

Уровень 3

Межсетевой уровень (уровень Internet, Internet Layer)

Уровень 4

Уровень сетевых интерфейсов (Network Interface Layer)

       Каждый из этих уровней выполняет определенную задачу для организации надежной и производительной работы сети.

Уровень сетевого интерфейса        Данный уровень лежит в основании всей модели протоколов семейства TCP/IP. Уровень сетевого интерфейса отвечает за отправку в сеть и прием из сети кадров, которые содержат информацию. Кадры передаются по сети как одно целое. Кадр (frame) - это единица данных, которыми обмениваются компьютеры в сети Ethernet. Для обозначения блоков данных определенных уровней используют термины кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment). Все эти термины обозначают транспортируемые отдельно блоки данных и их можно считать синонимами. Название блока пересылаемых данных изменяется в зависимости от уровня (см. рис. 1.12).

Рис. 1.12.Пересылка блока данных в стеке протоколов TCP/IP

Межсетевой уровень        Протоколы Интернет инкапсулируют блоки данных в пакеты (дейтаграммы) и обеспечивают необходимую маршрутизацию. К основным Интернет- протоколам относятся:

IP (Internet Protocol)

предназначен для отправки и маршрутизации пакетов.

ARP (Address Resolution Protocol)

используется для получения МАС-адресов (аппаратных адресов) сетевых адаптеров.

ICMP (Internet Control Message Protocol)

предназначен для отправки извеще- ний и сообщений об ошибках при передаче пакетов.

IGMP (Internet Group Management Protocol)

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

RIP (Route Internet Protocol) и OSPF (Open Shortest Path First)

протоколы маршрутизации.

       На этом уровне реализуется передача пакетов без установки соединения - дейтаграммным способом. Межсетевой уровень обеспечивает перемещение пакетов по сети с использованием наиболее рационального маршрута (протокол OSPF). Основная функция межсетевого уровня - передача пакетов через составную сеть, поэтому этот уровень также называется уровнем Интернет.

Транспортный (основной) уровень        Данный уровень обеспечивает сеансы связи между компьютерами. Существует два транспортных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол TCP ориентирован на установление соединения, то есть перед передачей данных компьютеры "договариваются" между собой. Обычно по этому протоколу передаются большие объемы данных или данные, для которых требуется подтверждение их приема. Этот протокол используется большинством сетевых приложений, так как обеспечивает достаточную надежность при передаче данных.        Протокол UDP не ориентирован на соединение и не гарантирует доставку пакетов (дейтаграмм). Однако протокол UDP является более быстродействующим по сравнению с TCP. Обычно по этому протоколу передаются небольшие объемы данных. Ответственность за доставку данных несет сетевая программа.

Уровень приложений        Данный уровень является вершиной модели TCP/IP. На этом уровне работают практически все распространенные утилиты и службы: DNS, Telnet, WWW, Gopher, WAIS, SNMP, FTP, TFTP, SMTP, POP, IMAP.        В качестве завершения данного пункта рассмотрим соответствие уровней стека протокола TCP/IP семиуровневой модели OSI (см. табл. 1.5).

Соответствие уровней стека TCP/IP модели OSI Таблица 1.5

Уровень модели OSI

Протокол

Уровень стека TCP/IP

7,6

WWW (HTTP), FTP, TFTP, SMTP, POP, telnet, WAIS, SNMP

1

5,4

TCP, UDP

2

3

IP, ICMP, RIP, OSPF, ARP

3

2,1

Ethernet, PPP, SLIP

4

       В следующем пункте рассмотрено такое важное понятие протокола TCP/IP как порт. В том же пункте будут рассмотрены структуры пакетов IP и TCP, поскольку рассмотрение этого материала без введения определения порта не имеет смысла.

Инкапсуляция (туннелирование) протоколов (вложение заголовков)

Инкапсуляция (encapsulation) или туннелирование (tunneling) - это еще один метод решения задачи согласования сетей, который однако применим только для согласования транспортных протоколов и только при определенных ограничениях. Инкапсуляция может быть использована, когда две сети с одной транспортной технологией необходимо соединить через сеть, использующую другую транспортную технологию. В приведенном на рисунке 1.3 примере две сети с протоколом NetBIOS нужно соединить через сеть TCP/IP. Необходимо обеспечить только взаимодействие узлов двух сетей NetBIOS, а взаимодействие между узлами NetBIOS и узлами сети TCP/IP не предусматривается. То есть, при инкапсуляции промежуточная сеть используется только как транзитная транспортная система.

Рис. 1.3. Инкапсуляция протоколов сетевого уровня (вложение друг в друга)

Метод инкапсуляции заключается в том, что пограничные маршрутизаторы, которые подключают объединяемые сети к транзитной, упаковывают пакеты транспортного протокола объединяемых сетей в пакеты транспортного протокола транзитной сети. В данном случае пакеты NetBIOS упаковываются в пакеты TCP, как если бы пакеты NetBIOS представляли собой сообщения протокола прикладного уровня. Затем пакеты NetBIOS переносятся по сети TCP/IP до другого пограничного маршрутизатора. Второй пограничный маршрутизатор выполняет обратную операцию - он извлекает пакеты NetBIOS из пакетов TCP и отправляет их по сети назначения адресату.

Для реализации метода инкапсуляции пограничные маршрутизаторы должны быть соответствующим образом сконфигурированы. Они должны знать, во-первых, IP-адреса друг друга, во-вторых - NetBIOS-имена узлов объединяемых сетей. Имея такую информацию, они могут принять решение о том, какие NetBIOS-пакеты нужно переправить через транзитную сеть, какой IP-адрес указать в пакете, передаваемом через транзитную сеть и каким образом доставить NetBIOS-пакет узлу назначения в конечной сети.

Инкапсуляция может быть использована для транспортных протоколов любого уровня. Например, протокол сетевого уровня Х.25 может быть инкапсулирован в протокол транспортного уровня TCP, или же протокол сетевого уровня IP может быть инкапсулирован в протокол сетевого уровня Х.25. Для согласования сетей на сетевом уровне могут быть использованы многопротокольные и инкапсулирующие маршрутизаторы, а также программные и аппаратные шлюзы.

Обычно инкапсуляция приводит к более простым и быстрым решениям по сравнению с трансляцией, так как решает более частную задачу, не обеспечивая взаимодействия с узлами транзитной сети.

Мультиплексирование

Рассмотрим потоки данных, проходящие через стек протоколов, изобра-

женный на рис.1. В случае использования протокола TCP (Transmission Con-

trol Protocol - протокол управления передачей), данные передаются между

прикладным процессом и модулем TCP. Типичным прикладным процессом,

использующим протокол TCP, является модуль FTP (File Transfer Protocol -

протокол передачи файлов). Стек протоколов в этом случае будет

FTP/TCP/IP/ENET. При использовании протокола UDP (User Datagram Protocol

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

ным процессом и модулем UDP. Например, SNMP (Simple Network Management

Protocol - простой протокол управления сетью) пользуется транспортными

услугами UDP. Его стек протоколов выглядит так: SNMP/UDP/IP/ENET.

Модули TCP, UDP и драйвер Ethernet являются мультиплексорами n x 1.

Действуя как мультиплексоры, они переключают несколько входов на один

выход. Они также являются демультиплексорами 1 x n. Как демультиплек-

соры, они переключают один вход на один из многих выходов в соответствии

с полем типа в заголовке протокольного блока данных (рис.2).

Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet,

он может быть направлен либо в модуль ARP (Address Resolution Protocol -

адресный протокол), либо в модуль IP (Internet Protocol - межсетевой про-

токол). На то, куда должен быть направлен Ethernet-кадр, указывает зна-

чение поля типа в заголовке кадра.

Если IP-пакет попадает в модуль IP, то содержащиеся в нем данные

могут быть переданы либо модулю TCP, либо UDP, что определяется полем

"протокол" в заголовке IP-пакета.

Если UDP-датаграмма попадает в модуль UDP, то на основании значения

поля "порт" в заголовке датаграммы определяется прикладная программа,

которой должно быть передано прикладное сообщение. Если TCP-сообщение

попадает в модуль TCP, то выбор прикладной программы, которой должно быть

передано сообщение, осуществляется на основе значения поля "порт" в заго-

ловке TCP-сообщения.

Мультиплексирование данных в обратную сторону осуществляется

довольно просто, так как из каждого модуля существует только один путь

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

основании которого машина, принявшая пакет, выполняет демультиплексирова-

ние.

1 2 3 .... n | 1 2 3 .... n ^

\ | | / | \ | | / |

----------------- поток ------------------- поток

| мультиплексор | данных | демультиплексор | данных

----------------- | ------------------- |

| | ^ |

v V | |

1 1

Рис.2. Мультиплексор n x 1 и демультиплексор 1 x n

-- 55 --

Данные от прикладного процесса проходят через модули TCP или UDP,

после чего попадают в модуль IP и оттуда - на уровень сетевого интер-

фейса.

Хотя технология internet поддерживает много различных сред передачи

данных, здесь мы будем предполагать использование Ethernet, так как

именно эта среда чаще всего служит физической основой для IP-сети.

Машина на рис.1 имеет одну точку соединения с Ethernet. Шестибайтный

Ethernet-адрес является уникальным для каждого сетевого адаптера и рас-

познается драйвером.

Машина имеет также четырехбайтный IP-адрес. Этот адрес обозначает

точку доступа к сети на интерфейсе модуля IP с драйвером. IP-адрес дол-

жен быть уникальным в пределах всей сети Internet.

Работающая машина всегда знает свой IP-адрес и Ethernet-адрес.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]