Протоколы транспортного уровня

Поскольку TCP является надежным и ориентированным на соединение прото­колом, его способ использования портов несколько отличается от способа UDP. Например, будучи не ориентированным на соединение, UDP просто доставляет данные до определенного порта и не обеспечивает никакого соединения между передатчиком и получателем. TCP ориентирован на соединение, поэтому достав­ка данных для него — не прост

о передача в порт, но в первую очередь соединение. Например, приложение TCP, пожелавшее открыть несколько со­единений одновременно на одном и том же порту, может без проблем сделать это — данные не потеряются.

Мы уже говорили о том, что TCP больше похож на телефонные переговоры, чем на почтовую службу. Сейчас мы немного изменим телефонную аналогию и представим ее в следующем виде. Офис станет сетевым компьютером, номер телефона — портом, а телефонный звонок — сетевым соединением. Служащие в офисе будут представлять прикладные протоколы, а их телефонные перего­воры — обмен данными. Как и прежде, IP представляет телефонную компанию.

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

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

Служащий (прикладной протокол) отвечает на звонки различным образом. Например, он может пригласить другого служащего принять участие в перего­ворах. При этом другой служащий (прикладной протокол) поднимает трубку параллельного аппарата (порта) и участвует в переговорах (устанавливает еще одно соединение по тому же самому порту). В некоторых случаях служащий не хочет занимать служебную линию связи (официальный порт) и переключает собеседника на одну из редко используемых линий (другой порт), чтобы никто не прерывал беседу (обмен данными).

Как номер порта используется в программе?

Поскольку транспортный уровень перемещает пакеты данных к прикладным программам и от них, он должен каким-то образом распознавать те программы, с которыми имеет дело. Тут на сцену и выступают номера портов. Любое приложение, независимо от того, сервер оно или клиент, имеет уникальный номер порта. Когда программа устанавливает соединение с сетью, ей присваи­вается определенный номер порта. Разрабатывая приложение-клиент, обычно не нужно беспокоиться по поводу номера его порта. Клиент может заранее и не знать его. Но совсем другое дело — приложение-сервер. Каждый раз, когда клиент посылает сообщение, транспортный уровень автоматически присваивает ему правильный номер порта в поле порта источника сообщения. В главе 19 описан процесс создания приложения-сервера, когда вы можете запросить у сети назначить ему определенный, заранее известный номер порта. Приложение-сер­вер, таким образом, может обслуживать запросы, поступающие с официальных номеров портов, перечисленных, например, в табл. .1.

Что такое протокол пользовательских датаграмм?

UDP весьма похож на IP в том смысле, что они оба ненадежные, не ориенти­рованные на соединение протоколы, пользующиеся датаграммами. Они оба переносят данные между компьютерами, однако только UDP умеет распо­знать то приложение среди многих, работающих внутри компьютера, которому предназначены данные. Как правило, сеть назначает таким приложениям опре­деленный номер порта. Итак, UDP пользуется датаграммами для доставки данных. Точно так же, как IP прицепляет к данным IP-заголовок, UDP прицеп­ляет к ним UDP-заголовок. Структура UDP-заголовка намного проще. На рис. 5.1 изображена структура UDP-датаграммы. UDP-заголовок содержит четыре поля: «порт-источник», «порт-получатель», «длина сообщения» и «конт­рольная сумма».

Длина UDP-заголовка — восемь байтов. Поля портов состоят из 16-битных целых чисел, представляющих номера портов протоколов. Поле «порт-источ­ник» содержит номер порта, которым пользуется приложение-источник данных. Поле «порт-получатель» соответственно указывает на номер порта приложения-получателя данных. Поле «длина сообщения» определяет длину (в байтах) UDP-датаграммы, включая UDP-заголовок. Наконец, поле «контрольная сумма», в отличие от контрольной суммы IP-заголовка, содержит результат суммирования всей UDP-датаграммы, включая ее данные, область которых начинается сразу после заголовка.

Примечание: Несмотря на то, что контрольная сумма UDP включает область данных, подсчитывать и помещать ее в заголовок не обязательно. Такое поведение не характерно, например, для протоколов IP или TCP. Последние обязаны подсчитать и включить в свой заголовок контроль­ную сумму.

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

Рис 2. Поток данных через модуль UDP

Что такое транспортный протокол?

Транспортный протокол (Transport Control Protocol, TCP) наряду с протоколом IP — один из наиболее распространенных в Интернет. Так же, как и UDP, TCP служит для передачи данных между сетевым и прикладным уровнями сетевой модели. По сравнению с UDP TCP устроен гораздо сложнее. И это понятно — ведь ему приходится обеспечивать надежную, потоковую, ориентированную на соединение службу доставки данных. Другими словами, TCP сам следит за доставкой данных, а также за правильной последовательностью передаваемых пакетов. В отличие от TCP протокол пользовательских датаграмм (UDP) доставки данных не гарантирует. Не обеспечивает он и правильной последова­тельности прихода датаграмм.

TCP пытается оптимизировать пропускную способность сети, то есть увеличи­вает производительность доставки пакетов в Интернет, насколько это вообще возможно. Для этого он динамически управляет потоком данных в соединении. Если буфер приемника данных на принимающем конце переполняется, TCP просит передающую сторону снизить скорость передачи.

Рассмотрим, каким образом протокол управления транспортировкой пользуется услугами IP для передачи данных между двумя компьютерами. Может пока­заться странным, что TCP умудряется пользоваться ненадежным IP и при этом оставаться надежным. Также может казаться удивительным, что TCP, пользуясь не ориентированным на соединение IP, остается ориентированным на соедине­ние. Наконец, как получается, что TCP доставляет данные в виде потока байтов, тогда как IP пересылает датаграммы? Последующие абзацы ответят на все эти вопросы и устранят возможные недоразумения. Постигая секреты TCP, вы должны помнить о том, что его данные всегда переносит IP. To есть данные TCP всегда упаковываются в IP-датаграммы.

Страница:  1  2  3  4  5  6  7 


Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы