Протоколы ТСР IP

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ



ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ И ФИНАНСОВ»







РЕФЕРАТ НА ТЕМУ:



Протоколы ТСР/IP















Выполнила: Морина Анна Александровна, 137 группа

Научный руководитель: Каминская Татьяна Ефимовна









Санкт- Петербург

2009

Оглавление



	  Введение	…………………………………………………………………………..…3

		2. Иерархия протоколов TCP/I………………………………………………………...4

3. Архитектура протоколов TCP/IP	…………………………………………………...5

	4. Основные протоколы семейства TCP/IP…………………………………………...6

5. Межсетевой протокол IP……………………………………………………………7

   	5.1.  Маршрутизация…………………………………………………………………8

       	5.1.1.  Прямая маршрутизация……………………………………………………8

   	    5.1.2. Косвенная маршрутизация…………………………………………………9

6. Протоколы TCP…………………………………………………………………….11

7. Заключение………………………………………………………………………….12

		8. Список литературы…………………………………………………………………13

































 Введение



Сеть Internet - это сеть сетей, объединяющая как локальные сети, так и глобальные сети. Поэтому центральным местом при обсуждении принципов построения сети является семейство протоколов межсетевого обмена TCP/IP. Под термином "TCP/IP" обычно понимают все, что связано с протоколами TCP и IP. Это не только собственно сами проколы с указанными именами, но и протоколы построенные на использовании TCP и IP, и прикладные программы. Главной задачей стека TCP/IP является объединение в сеть пакетных подсетей через шлюзы.

Каждая сеть работает по своим собственным законам, однако предполагается, что шлюз может принять пакет из другой сети и доставить его по указанному адресу. Реально, пакет из одной сети передается в другую подсеть через последовательность шлюзов, которые обеспечивают сквозную маршрутизацию пакетов по всей сети. В данном случае, под шлюзом понимается точка соединения сетей. При этом соединяться могут как локальные сети, так и глобальные сети. В качестве шлюза могут выступать как специальные устройства, маршрутизаторы, например, так и компьютеры, которые имеют программное обеспечение, выполняющее функции маршрутизации пакетов.

Маршрутизация - это процедура определения пути следования пакета из одной сети в другую. 

Такой механизм доставки становится возможным благодаря реализации во всех узлах сети протокола межсетевого обмена IP. Если обратиться к истории создания сети Internet, то с самого начала предполагалось разработать спецификации сети коммутации пакетов. Это значит, что любое сообщение, которое отправляется по сети, должно быть при отправке "нашинковано" на фрагменты. Каждый из фрагментов должен быть снабжен адресами отправителя и получателя, а также номером этого пакета в последовательности пакетов, составляющих все сообщение в целом. Такая система позволяет на каждом шлюзе выбирать маршрут, основываясь на текущей информации о состоянии сети, что повышает надежность системы в целом. При этом каждый пакет может пройти от отправителя к получателю по своему собственному маршруту. Порядок получения пакетов получателем не имеет большого значения, т.к. каждый пакет несет в себе информацию о своем месте в сообщении. При создании этой системы принципиальным было обеспечение ее живучести и надежной доставки сообщений, т.к. предполагалось, что система должна была обеспечивать управление Вооруженными Силами США в случае нанесения ядерного удара по территории страны.















 Иерархия протоколов TCP/IP



Обычно сетевые протоколы создаются на основе единой концепции в рамках многоуровневой системы, в которой каждый уровень отвечает за свою часть процессов передачи информации. Семейством протоколом (protocol suite) называют всю совокупность протоколов различных уровней.

 Семейство TCP/IP принято подразделять на четыре уровня:

1.      Канальный уровень (link layer, data-link layer), или уровень сетевого интерфейса (network interface), содержит две основные компоненты: аппаратный сетевой интерфейс компьютера (сетевую карту) и со от соответствующий драйвер этого сетевого интерфейса в операционной системе. Вместе они обеспечивают как физическое подключение к кабелю (или к другой физической среде), так и управление всеми аппаратными процессами передачи.

2.      Сетевой уровень (network layer, internet layer) отвечает за перемещение пакетов по тому или иному маршруту в сети. В семействе протоколов ТСР/IР сетевой уровень представлен: протоколами: IP (Internet Protocol), ICMP (Internet Control Message Protocol) и IGMP (Internet Group Management Protocol). 

3.      Транспортный уровень (transport, layer) организует для вышестоящего прикладного уровня обмен данными между двумя компьютерами и сети. В семействе протоколов TCP/IP одновременно используются два существенно различных транспортных протокола: TCP (Transmission Control Protocol — протокол управления передачей данных) и UDP (User Datagram Protocol — протокол дейтаграмм пользователя). TCP обеспечивает надежную передачу потоков данных между двумя компьютерами в сети. В его задачи входит: разделять данные, поступающие от обслуживаемых им приложений, на блоки приемлемого размера для нижестоящего сетевого уровня; подтверждать получение пришедших к нему по сети пакетов; в течение установленных им периодов времени (таймаутов) ожидать прихода подтверждений о получении отправленных им пакетов и т. п. Поскольку TCP берет нa себя все проблемы обеспечения надежной доставки врученных ему данных по назначению, то прикладной уровень освобождается от этих забот. Напротив, UDP предоставляет прикладному уровню намного более примитивный сервис. Он лишь рассылает данные адресатам в виде пакетов, называемых UDP-дейтаграммами (UDP datagrams), без гарантии их доставки, Предполагается, что требуемая степень надежности пересылки должна обеспечиваться самим прикладным уровнем. Каждый из этих двух транспортных протоколов находит соответствующее его достоинствам и недостаткам применение. Причины, по которым для одних приложений предпочтителен TCP, а для других — UDP, станут понятны при рассмотрении самих приложений.

4.      Прикладной уровень (application layer) обеспечивает выполнение разнообразных прикладных задач. Существует определенный "классический” набор стандартных прикладных сервисов, которые предлагаются в большинстве реализаций семейства TCP/IP. В их числе:

·          Telnet - протокол удаленного доступа,

·          FTP (File Transfer Protocol) — протокол передачи файлов.

·          SMTP (Simple Mail Transfer Protocol) — простой протокол обмена электронной почтой,

·          SNMP (Simple Network Management Protocol) — простой протокол управления сетью.

 Архитектура протоколов TCP/IP



Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым подключаются разнородные машины. Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети. Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный сквозной протокол. Таким образом, две машины, подключенные к одной подсети могут обмениваться пакетами. 

Когда необходимо передать пакет между машинами, подключенными к разным подсетям, то машина-отправитель посылает пакет в соответствующий шлюз (шлюз подключен к подсети также как обычный узел). Оттуда пакет направляется по определенному маршруту через систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той же подсети, что и машина-получатель; там пакет направляется к получателю. Объединенная сеть обеспечивает датаграммный сервис. 

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





Структура связей протокольных модулей

	прямоугольники – обработка данных;

 линии, соединяющие прямоугольники, - пути передачи данных;

горизонтальная линия внизу рисунка - кабель сети Ethernet, которая используется в качестве примера физической среды; 

"o" - это трансивер;

 "*" - обозначает IP-адрес;

"@" - адрес узла в сети Ethernet (Ethernet-адрес). 

		
Рис.1. Структура протокольных модулей в узле сети TCP/IP 





 Основные протоколы семейства TCP/IP



В семействе протоколов TCP/IP на транспортном уровне действуют протоколы TCP и UDP. Оба опираются на протокол IP в качестве нижележащего сетевого уровня.

TCP обеспечивает надежную транспортную службу поверх ненадежного сервиса IP. 

Протокол UDP позволяет приложениям отправлять и получать порции информации в виде так называемых UDP дейтаграмм (UDP datagrams). При этом, однако, UDP не обладает надежностью TCP: нет никакой гарантии, что UDP-дейтаграмма вообще дойдет до своего пункта назначения. 

Основным протоколом сетевого уровня является IР. Он обслуживает как TCP, так и UDP. Каждая порция данных формируемых TCP или UDP для пересылки по интерсети, проходит через уровень IP как на оконечных хостах, так и на каждом промежуточном маршрутизаторе. Также некий пользовательский процесс, имеющий прямой доступ к IP. Это допустимое исключение — некоторые протоколы маршрутизации напрямую контактируют с IP; кроме того, эта возможность используется и при проведении экспериментов с новыми протоколами транспортного уровня

Протокол IСМР примыкает к IP. Он служит для обмена сообщениями об ошибках и иной важной информацией с IP-модулем другого хоста или маршрутизатора. Хотя ICMP используется в основном протоколом IP, прикладная задача также может иметь к нему доступ. Мы увидим, что два наиболее популярных средства диагностики, Ping и Traceroute, обращаются к ICMP непосредственно, минуя IP.

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

ARP и RARP — специализированные протоколы, используемые определенными типами сетевых интерфейсов (например, Ethernet или Token Ring) для отображения адресов уровня IP в соответствующие им адреса канального уровня.

















 Межсетевой протокол IP



В семействе TCP/IP протоколу IP отведена роль "рабочей лошадки": в IP-дейтаграммах передаются все данные TCP, UDP, ICMP и IGMP. Однако доставка IP-дейтаграмм — это по определению ненадежный и не поддерживающий соединение сервис.

Ненадежный сервис не гарантирует того, что IP-дейтаграмма успешно доберется к месту назначения. О такой доставке пакетов принято говорить, что делается все возможное, но успех попытки зависит от обстоятельств (best effort deliveiy). Если на промежуточном узле происходит сбой (например, временно переполнен буфер маршрутизатора), то его IP-модуль действует просто: он уничтожает дейтаграмму. Предполагается, что требуемая степень надежности должна обеспечиваться протоколами верхних уровней (например, TCP).

Термин не поддерживающий соединение (connectionless) означает, что IP не ведет никакого учета очередности доставки дейтаграмм и каждая обрабатывается независимо от остальных. Как следствие, очередность доставки может нарушаться. Когда хост одну за другой последовательно отправляет две дейтаграммы (сначала А, потом В) одному и тому же адресату, маршрутизация обеих происходит независимо. Маршруты их продвижения могут оказаться разными, причем такими, что В прибудет раньше А.

Модуль IP является базовым элементом технологии internet, а центральной частью IP является его таблица маршрутов. Протокол IP использует эту таблицу при принятии всех решений о маршрутизации IP-пакетов. Содержание таблицы маршрутов определяется администратором сети. Ошибки при установке маршрутов могут заблокировать передачи. 



























 Маршрутизация



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



 Прямая маршрутизация





Рис.2. Простая IP-сеть 



На рисунке 2 показана небольшая IP-сеть, состоящая из 3 машин: A, B и C. Каждая машина имеет такой же стек протоколов TCP/IP как на рис.1. Каждый сетевой адаптер этих машин имеет свой Ethernet-адрес. Менеджер сети должен присвоить машинам уникальные IP-адреса.

Когда A посылает IP-пакет B, то заголовок IP-пакета содержит в поле отправителя IP-адрес узла A, а заголовок Ethernet-кадра содержит в поле отправителя Ethernet-адрес A. Кроме этого, IP-заголовок содержит в поле получателя IP-адрес узла B, а Ethernet-заголовок содержит в поле получателя Ethernet-адрес B. 

В этом простом примере протокол IP является излишеством, которое мало что добавляет к услугам, предоставляемым сетью Ethernet. Однако протокол IP требует дополнительных расходов на создание, передачу и обработку IP-заголовка. Когда в машине B модуль IP получает IP-пакет от машины A, он сопоставляет IP-адрес места назначения со своим и, если адреса совпадают, то передает датаграмму протоколу верхнего уровня. 

В данном случае при взаимодействии A с B используется прямая маршрутизация. 



 Косвенная маршрутизация





 

Рис.3. Сеть internet, состоящая из трех IP-сетей 



На рисунке 3 представлена более реалистичная картина сети internet. В данном случае сеть internet состоит из трех сетей Ethernet, на базе которых работают три IP-сети, объединенные шлюзом D. Каждая IP-сеть включает четыре машины; каждая машина имеет свои собственные IP- и Ethernet адреса. 

За исключением D все машины имеют стек протоколов, аналогичный показанному на рисунке. Шлюз D соединяет все три сети и, следовательно, имеет три IP-адреса и три Ethernet-адреса. Машина D имеет стек протоколов TCP/IP, он содержит три модуля ARP и три драйвера Ethernet. 

Менеджер сети присваивает каждой сети Ethernet уникальный номер, называемый IP-номером сети. На рис.3 IP-номера не показаны, вместо них используются имена сетей. 

Когда машина A посылает IP-пакет машине B, то процесс передачи идет в пределах одной сети. При всех взаимодействиях между машинами, подключенными к одной IP-сети, используется прямая маршрутизация.

Когда машина D взаимодействует с машиной A, то это прямое взаимодействие. Когда машина D взаимодействует с машиной E, то это прямое взаимодействие. Когда машина D взаимодействует с машиной H, то это прямое взаимодействие. Это так, поскольку каждая пара этих машин принадлежит одной IP-сети. 

Однако, когда машина A взаимодействует с машинами, включенными в другую IP-сеть, то взаимодействие уже не будет прямым. Машина A должна использовать шлюз D для ретрансляции IP-пакетов в другую IP-сеть. Такое взаимодействие называется "косвенным". 

Маршрутизация IP-пакетов выполняется модулями IP и является прозрачной для модулей TCP, UDP и прикладных процессов. 

Если машина A посылает машине E IP-пакет, то IP-адрес и Ethernet-адрес отправителя соответствуют адресам A. IP-адрес места назначения является адресом E, но поскольку модуль IP в A посылает IP-пакет через D, Ethernet-адрес места назначения является адресом D. 

Модуль IP в машине D получает IP-пакет и проверяет IP-адрес места назначения. Определив, что это не его IP-адрес, шлюз D посылает этот IP-пакет прямо к E. 

Итак, при прямой маршрутизации IP- и Ethernet-адреса отправителя соответствуют адресам того узла, который послал IP-пакет, а IP- и Ethernet-адреса места назначения соответствуют адресам получателя. При косвенной маршрутизации IP- и Ethernet-адреса не образуют таких пар. 





































 Протокол TCP 



Протокол TCP предоставляет транспортные услуги, отличающиеся от услуг UDP. Вместо ненадежной доставки датаграмм без установления соединений, он обеспечивает гарантированную доставку с установлением соединений в виде байтовых потоков. 

Протокол TCP используется в тех случаях, когда требуется надежная доставка сообщений. Он освобождает прикладные процессы от необходимости использовать таймауты и повторные передачи для обеспечения надежности. Наиболее типичными прикладными процессами, использующими TCP, являются FTP (File Transfer Protocol - протокол передачи файлов) и TELNET. Кроме того, TCP используют система X-Window, rcp (remote copy - удаленное копирование) и другие "r-команды". Большие возможности TCP даются не бесплатно. Реализация TCP требует большой производительности процессора и большой пропускной способности сети. Внутренняя структура модуля TCP гораздо сложнее структуры модуля UDP. 

Прикладные процессы взаимодействуют с модулем TCP через порты. Для отдельных приложений выделяются общеизвестные номера портов. Например, сервер TELNET использует порт номер 23. Клиент TELNET может получать услуги от сервера, если установит соединение с TCP-портом 23 на его машине. 

Когда прикладной процесс начинает использовать TCP, то модуль TCP на машине клиента и модуль TCP на машине сервера начинают общаться. Эти два оконечных модуля TCP поддерживают информацию о состоянии соединения, называемого виртуальным каналом. Этот виртуальный канал потребляет ресурсы обоих оконечных модулей TCP. Канал является дуплексным; данные могут одновременно передаваться в обоих направлениях. Один прикладной процесс пишет данные в TCP-порт, они проходят по сети, и другой приклад ной процесс читает их из своего TCP-порта. 

Протокол TCP разбивает поток байт на пакеты; он не сохраняет границ между записями. Например, если один прикладной процесс делает 5 записей в TCP-порт, то прикладной процесс на другом конце виртуального канала может выполнить 10 чтений для того, чтобы получить все данные. Но этот же процесс может получить все данные сразу, сделав только одну операцию чтения. Не существует зависимости между числом и размером записываемых сообщений с одной стороны и числом и размером считываемых сообщений с другой стороны. 

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

 Заключение



Семейство протоколов TCP/IP работает на любых моделях компьютеров, произведенных различными производителями компьютерной техники и работающих под управлением различных операционных систем. С помощью протоколов TCP/IP можно объединить практически любые компьютеры. И что самое удивительное, сегодняшние реализации протокола TCP/IP очень далеки от того, как он задумывался исходно. В конце 60-х годов начался исследовательский проект, финансируемый правительством США, по разработке сети пакетной коммутации, а в 90-х годах результаты этих исследований превратились в наиболее широко используемую форму сетевого взаимодействия между компьютерами. В настоящее время это действительно открытая система, а именно, семейство протоколов и большое количество бесплатных реализаций (либо достаточно дешевых). Они составляют основу того, что в настоящее время называется словом Internet. 



































 Список литературы:



Брежнев А.Ф., Смелянский Р.Л. «Семейство протоколов TCP/IP»

Н. Угринович «Информатика и информационные технологии»

http://www.citforum.ru/internet/comer/contents.shtml

http://tcpips.ru/?Obzor_TCP%2FIP:Realizacii_TCP%2FIP_v_Unix

http://tcpip.pp.ru/





1