Лекция №4. Стек протоколов TCP (1244998), страница 3
Текст из файла (страница 3)
Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh.TCP/IP - это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами,операционными системами и сетями. Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся"близкими родственниками".Стек TCP/IP был разработан до появления модели взаимодействия открытых систем (ЭMBOC), он также имеет многоуровневую структуру, соответствиеуровней стека TCP/IP уровням модели OSI достаточно условно.
Сеть TCP/IP поддерживает все популярные стандарты физического и канальногоуровней: для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, Gigabit Ethernet, АТМ. Специально для TCP/IP разработан протоколканального уровня PPP (Point to Point Protocol) .TCP — дуплексный транспортный протокол с установлением логического соединения. TCP обеспечивает верхним уровням стека, прикладному исеансовому, заданный уровень сервиса - передачу данных с той степенью надежности, которая им требуется, делит поток байт на части сегменты, и передает их ниже лежащему уровню межсетевого взаимодействия. После того как эти сегменты будут доставлены средствами уровнямежсетевого взаимодействия в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.Функции протокола: установление виртуального канала путем обмена запросом и согласием на соединение, упаковка и распаковка сообщений наконцах транспортного соединения, контроль правильности передачи пакетов (получатель подтверждает правильность полученных данных),управление потоком (получатель сообщает размер окна, т.е.
диапазон номеров пакетов, которые получатель готов принять), управление скоростьюпередачи.Протокол TCP является байтовым, т.е. каждый байт в передаваемых сегментах конкретного сообщения имеет уникальный порядковый номер.Структура TCP-пакета (в скобках указано число битов) показана рис.2 и представлена следующим списком:- порт отправителя (16);- порт получателя (16);- порядковый номер первого байта в поле данных сегмента (32);- подтверждение в виде номера первого байта (32) из числа еще не подтвержденных байтов;- управление (16);- размер окна (16), т.е.
число байт, которое можно послать до получения подтверждения (размер окна указывает получатель в сегментахподтверждения приема);- контрольная сумма (16);-дополнительные признаки, например срочность передачи (16);опции (24);заполнитель (8);данные.Порты, сокетыПакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различныхприкладных процессов, называемых портами. Адресом назначения, который используется протоколом TCP, является номер порта прикладнойслужбы (от 1 до 65436).
Централизованное присвоение сервисам номеров портов выполняется организацией Internet Assigned Numbers Authority. Этиномера затем закрепляются и опубликовываются в стандартах Internet. Например, порт http -80, https - 443, FTP - 21, Telnet -23. При локальномприсвоении номера порта некоторому приложению, ОС связывает с ним любой доступный числовой идентификатор, так чтобы он не входил в числозарезервированных ISNA номеров портов.Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот наборидентифицирующих параметров имеет название сокет. Протокол TCP ведет для каждого порта две очереди: очередь пакетов, поступающих вданный порт из сети, и очередь пакетов, отправляемых данным портом в сеть.
Процедура обслуживания протоколом TCP запросов, поступающих отнескольких различных прикладных служб, называется мультиплексированием. Обратная процедура распределения протоколом TCPпоступающих от сетевого уровня пакетов между набором высокоуровневых служб, идентифицированных номерами портов, называетсядемультиплексированием.Подтверждение правильности передачи в протоколе TCPПравильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методовобеспечения надежной связи. В протоколе TCP используется частный случай квитирования - алгоритм скользящего окна. Квитанция(подтверждение) посылается только в случае правильного приема данных, отрицательные квитанции не посылаются.
Таким образом, отсутствиеквитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции. В случае постоянного правильного приемаквитанция посылается после 5,10, N-го сегмента.Выбор времени ожидания (тайм-аута) очередной квитанции влияет на производительность протокола TCP. Тайм-аут не должен быть слишкомкоротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы.
Но он недолжен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или "заблудившейся" квитанции.При переполнении приемного буфера конечного узла "перегруженный" протокол TCP, отправляя квитанцию, помещает в нее новый, уменьшенныйразмер окна. Если он совсем отказывается от приема, то в квитанции указывается окно нулевого размера.Сетевой уровень.Стержнем всей архитектуры сети является уровень межсетевого взаимодействия (уровень IP), который реализует концепцию передачи пакетовв режиме без установления соединений, то есть дейтаграммным способом, с использованием того маршрута, который в данный момент являетсянаиболее рациональным.
Уровень также называют уровнем internet, указывая тем самым на основную его функцию - передачу данных черезсоставную сеть.Протокол IP отправляет дейтаграммы от одного IP-адреса к другому без установления соединения. Его функции: фрагментация исборка пакетов при прохождении через объединенную систему компьютерных сетей имеющих разные протоколы, маршрутизация.проверка контрольной суммы заголовка пакета (правильность передачи всего пакета проверяется на транспортном уровне протоколом TCP в оконечномузле), управление потоком — сброс дейтаграмм при превышении заданного времени жизни. Важной особенностью протокола IP, отличающей его отдругих сетевых протоколов (например, от сетевого протокола IPX), является его способность выполнять динамическую фрагментацию пакетовпри передаче их между сетями с различными, максимально допустимыми значениями длины поля данных кадров.
Свойство фрагментации во многомспособствовало тому, что протокол IP смог занять доминирующие позиции в сложных составных сетях.Среди недостатков — 32-битный размер адреса. 32 бита соответствуют 2324,3 миллиардам адресов, что уже вызывает затруднения сраспределением адресного пространства в Internet. Поэтому разработана версия IPv6, в которой применена другая структура заголовка и адресации. Впротоколе IPv6 размер адреса увеличен до 128 бит. Как частный случай, в структуре IPv6-адреса можно разместить IPv4-адрес, т.е. сети с протоколамиэтих версий могут работать совместно.
Пока большинство доменов Internet работает по протоколу IPv4.Структура дейтаграммы в IP (в скобках указано число бит) показана на рис. 1 и представлена следующим списком:- версия протокола IP (4) (сейчас практически используются четвертая IPv4 и шестая IPv6 версии);- длина заголовка (4байт= 32битному слову),- тип сервиса (8), включает трехбитовое поле приоритета пакета (большее значение кода означает больший приоритет) и 4 признака, соответствующиетребованиям к задержке, пропускной способности, надежности и стоимости передачи пакета, лишь один из этих признаков может быть равен 1, т.е.активизирован;Рис. 1.
Структура IP-пакета (соответствует версии IPv4).Структура протокола TCP- общая длина (16) информационной части пакета в байтах;- идентификация (16) — порядковый номер дейтаграммы, он используется, если из-за особенностей промежуточных сетей при маршрутизациитребуется разделение дейтаграммы на несколько частей, тогда номер дейтаграммы идентифицирует принадлежность фрагмента к определеннойдейтаграмме;- место фрагмента в дейтаграмме (16), т.е. номер фрагмента, который используется при восстановлении дейтаграммы из фрагментов;- время жизни дейтаграммы в сети (8);- тип протокола (8), который должен использоваться на транспортном уровне для обработки инкапсулированного сегмента (TCP, UDP и т.п.);- контрольный код (CRC) заголовка (16);- адрес источника (32 бит);- адрес назначения (32); IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта вдесятичной форме и разделенных точками, например, 128.10.2.30 - традиционная десятичная форма представления адреса, а 10000000 0000101000000010 00011110 - двоичная форма представления этого же адреса.- опции (32);- данные (не более 65536).IP-Телефония - это технология, которая использует IP-протокол для передачи голоса и данных.