Автор работы: Пользователь скрыл имя, 13 Декабря 2009 в 16:25, Не определен
Реферат
КЛАСИЧЕСКИЙ ПРИВАТНЫЙ УНИВЕРСИТЕТ
РЕФЕРАТ
с дисциплины: Компьютерные сети (Локальные, корпоративные, глобальные)
на тему:
«Протоколы транспортного уровня»
Выполнил студент группы:
ДИ-204 Шевченко
М.Ю.
Приложение, работающее с Интернет, как правило, общается с одним из протоколов транспортного уровня TCP/IP: протоколом управления транспортировкой (TCP) или протоколом пользовательских датаграмм (UDP). Приложение строит свою работу на взаимодействии с одним из этих протоколов.
Приложения Интернет, например программа ftp, передающая файлы по сети, обычно использует TCP, так как он предлагает надежную потокоориентированную службу доставки. Приложения типа электронной почты часто пользуются TCP по той же самой причине. Не требующие особой надежности приложения типа tftp (протокол простой передачи файлов, trivial file transfer protocol) используют UDP. Приложения на основе протокола времени (time protocol), связывающиеся с серверами времени Интернет, могут пользоваться как тем, так и другим протоколом. Прочтя эту главу, вы будете точно знать, в каком случае может потребоваться TCP, а в каком — UDP.
Конечная цель сетевого взаимодействия заключается в передаче информации между приложением-клиентом и приложением-сервером. Понимание транспортных протоколов и транспортного уровня совершенно необходимо для эффективного проектирования приложений типа клиент-сервер. Закончив чтение данной главы, вы овладеете следующими понятиями и концепциями:
Что такое транспортный уровень?
На первый взгляд кажется, что IP, служба доставки Интернет, и транспортные протоколы выполняют одинаковые функции. На самом деле IP модуль доставляет данные только между двумя компьютерами. Транспортный уровень и его протоколы передают данные между приложениями.
Во многих случаях ответственность транспортных протоколов за передаваемые данные такая же, как и у протокола Интернет. И вообще, большинство из того, что вы узнали относительно IP-датаграммы и IP-заголовка, в полной мере применимо и к транспортным протоколам. Вы знаете, что TCP/IP включает два транспортных протокола: протокол управления транспортировкой (собственно, транспортный протокол, TCP) и протокол пользовательских датаграмм (UDP). Ориентированный на соединение протокол управления транспортировкой для приема и передачи данных использует надежный поточно-байтовый способ доставки. Сетевое соединение устанавливается в виде виртуальной цепи. Протокол пользовательских датаграмм ненадежен, не ориентирован на соединение, передает и принимает данные при помощи датаграмм.
Что такое порт транспортного уровня?
Понятие «порте» в терминологии TCP/IP очень похоже на IP-адрес компьютера. Только порт обозначает приложение, а IP-адрес — определенный компьютер (вернее, его сетевой интерфейс). Так же как IP-датаграммы содержат адреса источника и получателя данных, транспортные протоколы хранят номера портов источника и получателя. Если вышесказанное кажется вам несколько странным, давайте рассмотрим, что нам известно об аппаратных портах нашего персонального компьютера. Может быть, вам приходилось писать программу, посылающую данные на порт компьютера. Если нет, то вспомним процесс печати через параллельный или последовательный порт. Если вам приходилось пользоваться
модемом, концепция портов TCP/IP должна показаться вам еще более знакомой.
Примечание: В случае модема, компьютер принимает и посылает данные через последовательный порт. В случае принтера, данные обыкновенно только посылаются.
Порты персональных компьютеров имеют название и номер. Параллельные порты компьютера называются LPT1 и LPT2. Последовательные — СОМ1 и COM2. В сети Интернет номера портов протоколов только нумеруются. Параллельный порт LPT1 персональных компьютеров годами использовался для печати данных. Тысячи программных продуктов знают, что печатать надо через LPT1. Точно так же порт протокола Интернет ассоциируется со вполне определенным приложением или функцией.
Что такое порт протокола Интернет?
Мы уже
упоминали, что Интернет включает протоколы
для некоторых часто
Так же как программисты персональных компьютеров пользуются портом LPT1 для печати, программисты Интернет пользуются набором номеров портов для выполнения конкретных сетевых приложений. Например, официальный (общеизвестный) номер порта для простого протокола передачи файлов (tftp) — 69. Официальный номер порта telnet — 23. В табл. 5.1 приведен список широко используемых портов протоколов Интернет.
Таблица 5.1. Некоторые официальные номера портов протоколов Интернет
125
Номера портов которые существуют:
Служба эхо (Echo
Protocol)
Простой протокол передачи почты 25 (Simple Mail Transfer Protocol)
Точное время
(Time Protocol)
Протокол простой передачи файлов 69 (Trivial File Transfer Protocol)
Информация о пользователях (Finger Protocol) 79
Как используется порт UDP?
Протокол, не ориентированный на соединение (IP или UDP), можно сравнить с почтовой службой доставки. Если вы забыли эту аналогию, перечитайте раздел «Словарь терминов расширяется» в третьей главе. Аналогия позволяет увидеть отношение между UDP, портами и приложениями. Здесь почтовое отделение превращается в сетевой компьютер, абонентские ящики — в порты, а люди, их арендующие, — в прикладные программы.
Протокол Интернет — это сетевая служба доставки. Прежде вы думали, что IP похож на почтового работника. Теперь же IP больше походит на грузовик, развозящий письма между почтовыми отделениями, а транспортный протокол — на почтового работника, сортирующего и раскладывающего письма по абонентским ящикам.
Грузовик (IP) развозит письма (данные) по почтовым отделениям (сетевым компьютерам). Почтовые работники (UDP) сортируют почту по номерам абонентских ящиков (портам). Рассортировав письма, почтовые работники (UDP) кладут письма (данные) в абонентские ящики (порты). Клиенты почтового отделения (приложения) периодически проверяют свои ящики и забирают почту. Почтовые работники (UDP) не уведомляют клиентов (приложения) о приходе свежей корреспонденции (данных), а просто размещают ее в абонентском ящике (порту).
Как используется порт TCP?
Поскольку TCP является надежным и ориентированным на соединение протоколом, его способ использования портов несколько отличается от способа UDP. Например, будучи не ориентированным на соединение, UDP просто доставляет данные до определенного порта и не обеспечивает никакого соединения между передатчиком и получателем. TCP ориентирован на соединение, поэтому доставка данных для него — не просто передача в порт, но в первую очередь соединение. Например, приложение TCP, пожелавшее открыть несколько соединений одновременно на одном и том же порту, может без проблем сделать это — данные не потеряются.
Мы уже говорили о том, что TCP больше похож на телефонные переговоры, чем на почтовую службу. Сейчас мы немного изменим телефонную аналогию и представим ее в следующем виде. Офис станет сетевым компьютером, номер телефона — портом, а телефонный звонок — сетевым соединением. Служащие в офисе будут представлять прикладные протоколы, а их телефонные переговоры — обмен данными. Как и прежде, IP представляет телефонную компанию.
Служащие (прикладные протоколы), работающие в офисе (сетевом компьютере), пользуются услугами телефонной компании (IP). Каждому служащему присвоен определенный телефонный номер (порт). Несколько телефонных линий (портов) остаются все время свободными, то есть ими может воспользоваться любой желающий. Каждое рабочее место оборудовано телефонным аппаратом, с которого можно звонить (устанавливать соединение), пользуясь любой не занятой в данный момент телефонной линией (портом) в офисе (сетевом компьютере).
Телефонная компания (IP) передает все входящие звонки в офис (сетевой компьютер), заставляя телефонные аппараты звонить. Определенный номер (порт) соответствует определенному служащему (приложению), то есть тому, кто отвечает на звонок (устанавливает соединение). В начале служащий (прикладной протокол) с определенным номером (портом) всегда отвечает на звонок (устанавливает соединение). Далее, если служащий решает продолжить переговоры со звонящим абонентом, он некоторое время беседует с ним по телефону (производит обмен данными).
Служащий (прикладной
протокол) отвечает на звонки различным
образом. Например, он может пригласить
другого служащего принять
Как номер порта используется в программе?
Поскольку транспортный
уровень перемещает пакеты данных к
прикладным программам и от них, он
должен каким-то образом распознавать
те программы, с которыми имеет дело.
Тут на сцену и выступают номера портов.
Любое приложение, независимо от того,
сервер оно или клиент, имеет уникальный
номер порта. Когда программа устанавливает
соединение с сетью, ей присваивается
определенный номер порта. Разрабатывая
приложение-клиент, обычно не нужно беспокоиться
по поводу номера его порта. Клиент может
заранее и не знать его. Но совсем другое
дело — приложение-сервер. Каждый раз,
когда клиент посылает сообщение, транспортный
уровень автоматически присваивает ему
правильный номер порта в поле порта источника
сообщения. В главе 19 описан процесс создания
приложения-сервера, когда вы можете запросить
у сети назначить ему определенный, заранее
известный номер порта. Приложение-сервер,
таким образом, может обслуживать запросы,
поступающие с официальных номеров портов,
перечисленных, например, в табл. 5.1.
Что такое протокол пользовательских датаграмм?
UDP весьма похож
на IP в том смысле, что они оба ненадежные,
не ориентированные на соединение протоколы,
пользующиеся датаграммами. Они оба переносят
данные между компьютерами, однако только
UDP умеет распознать то приложение среди
многих, работающих внутри компьютера,
которому предназначены данные. Как правило,
сеть назначает таким приложениям определенный
номер порта. Итак, UDP пользуется датаграммами
для доставки данных. Точно так же, как
IP прицепляет к данным IP-заголовок, UDP прицепляет
к ним UDP-заголовок. Структура UDP-заголовка
намного проще. На рис. 5.1 изображена структура
UDP-датаграммы. UDP-заголовок содержит четыре
поля: «порт-источник», «порт-получатель»,
«длина сообщения» и «контрольная сумма».
Длина UDP-заголовка — восемь байтов. Поля портов состоят из 16-битных целых чисел, представляющих номера портов протоколов. Поле «порт-источник» содержит номер порта, которым пользуется приложение-источник данных. Поле «порт-получатель» соответственно указывает на номер порта приложения-получателя данных. Поле «длина сообщения» определяет длину (в байтах) UDP-датаграммы, включая UDP-заголовок. Наконец, поле «контрольная сумма», в отличие от контрольной суммы IP-заголовка, содержит результат суммирования всей UDP-датаграммы, включая ее данные, область которых начинается сразу после заголовка.
Примечание: Несмотря на то, что контрольная сумма UDP включает область данных, подсчитывать и помещать ее в заголовок не обязательно. Такое поведение не характерно, например, для протоколов IP или TCP. Последние обязаны подсчитать и включить в свой заголовок контрольную сумму.