Знакомство с протоколом TCP
Стеки протоколов. Семейство протоколов, архитектура TCP/IP, расшифровка аббревиатур. Адресация в IP сетях. Подсети. Назначение маски подсети. Маршрутизация. Протокол RIP, OSPF. Алгоритм работы протокола. Принцип работы и таблица маршрутизатора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 07.10.2008 |
Размер файла | 147,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
18
Знакомство с протоколом TCP/IP
Стеки протоколов
Как уже упоминалось, многие разработчики не следуют точно стеку протоколов OSI. Они применяют свои стеки протоколов, близко напоминающие модель OSI и совместимые с ней. Напрямую могут «общаться» только сети одних протоколов.
TCP/IP (Transmission Control Protocol/Internet Protocol) был одним из первых стеков сетевых протоколов. IP-составляющая обеспечивает одно из лучших на сегодня определений межсетевой связи и применяется многими разработчиками в качестве метода взаимодействия продуктов в ЛВС и ГВС.
Протоколы NetBEUI/NetBIOS фирмы Microsoft представляют собой транспортный и сетевой протоколы, не поддерживающие маршрутизацию. Обладают хорошими временными характеристиками, защитой от ошибок, легко реализуются.
Протокол NetWare SPX/IPX - это "родной" протокол фирмы Novell для сетей NetWare, который сейчас практически не используется.
Протоколы AppleTalk были определены фирмой Apple Computer в качестве способа взаимодействия систем Apple Macintosh.
Семейство протоколов TCP/IP
TCP/IP - это аббревиатура термина Transmission Control Protocol/Internet Protocol (Протокол управления передачей/Протокол Internet). Фактически TCP/IP не один протокол, а несколько. Именно поэтому его называют набором, или комплектом протоколов, среди которых TCP и IP - два основных.
Программное обеспечение для TCP/IP представляет собой специфичную для данной платформы реализацию TCP, IP и других членов семейства TCP/IP. Обычно в нем также имеются такие высокоуровневые прикладные программы, как FTP (File Transfer Protocol, Протокол передачи файлов), которые дают возможность через командную строку управлять обменом файлами по Сети.
TCP/IP - зародился в результате исследований, профинансированных Управлением перспективных научно-исследовательских разработок (Advanced Research Project Agency, ARPA) правительства США в 1970-х годах. Этот протокол был разработан с тем, чтобы вычислительные сети исследовательских центров во всем мире могли быть объединены в форме виртуальной "сети сетей" (internetwork). Первоначальная Internet была создана в результате преобразования существующего конгломерата вычислительных сетей, носивших название Arpanet, с помощью TCP/IP.
Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами. Маршрутизатор - это устройство, которое передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). По существу TCP/IP скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.
TCP/IP дает решение проблемы обмена данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело.
IP - самый фундаментальный протокол из комплекта TCP/IP - передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для "прыжков" между сетями.
TCP - это протокол более высокого уровня, который позволяет прикладным программам, запущенным на различных компьютерах сети, обмениваться потоками данных. TCP делит потоки данных на цепочки, которые называются TCP-сегментами, и передает их с помощью IP. В большинстве случаев каждый TCP-сегмент пересылается в одной IP-дейтаграмме. Однако при необходимости TCP будет расщеплять сегменты на несколько IP-дейтаграмм, вмещающихся в физические кадры данных, которые используют для передачи информации между компьютерами в сети. Поскольку IP не гарантирует, что дейтаграммы будут получены в той же самой последовательности, в которой они были посланы, TCP осуществляет повторную "сборку" TCP-сегментов на другом конце маршрута, чтобы образовать непрерывный поток данных. FTP и telnet - это два примера популярных прикладных программ TCP/IP, которые опираются на использование TCP.
Другой важный член комплекта TCP/IP - User Datagram Protocol (UDP, протокол пользовательских дейтаграмм), который похож на TCP, но более примитивен. TCP - "надежный" протокол, потому что он обеспечивает проверку на наличие ошибок и обмен подтверждающими сообщениями чтобы данные достигали своего места назначения заведомо без искажений. UDP - "ненадежный" протокол, ибо не гарантирует, что дейтаграммы будут приходить в том порядке, в котором были посланы, и даже того, что они придут вообще. Если надежность - желательное условие, для его реализации потребуется программное обеспечение. Но UDP по-прежнему занимает свое место в мире TCP/IP, и используется во многих программах. Прикладная программа SNMP (Simple Network Management Protocol, простой протокол управления сетями), реализуемый во многих воплощениях TCP/IP, - это один из примеров программ UDP.
Другие TCP/IP протоколы играют менее заметные, но в равной степени важные роли в работе сетей TCP/IP. Например, протокол определения адресов (Address Resolution Protocol, ARP) преобразует IP-адреса в физические сетевые адреса, такие, как идентификаторы Ethernet. Родственный протокол - протокол обратного преобразования адресов (Reverse Address Resolution Protocol, RARP) - выполняет обратное действие, преобразуя физические сетевые адреса в IP-адреса.
Протокол управления сообщениями Internet (Internet Control Message Protocol, ICMP) представляет собой протокол сопровождения, который использует IP для обмена управляющей информацией и контроля над ошибками, относящимися к передаче пакетов IP. Например, если маршрутизатор не может передать IP-дейтаграмму, он использует ICMP, с тем чтобы информировать отправителя, что возникла проблема. Краткое описание некоторых других протоколов, которые "прячутся под зонтиком" TCP/IP, приведено ниже.
Архитектура TCP/IP
Проектировщики вычислительных сетей часто используют семиуровневую модель ISO/OSI (International Standards Organization/Open Systems Interconnect, Международная организация по стандартизации/ Взаимодействие открытых систем), которая описывает архитектуру сетей. Каждый уровень в этой модели соответствует одному уровню функциональных возможностей сети. В самом основании располагается физический уровень, представляющий физическую среду, по которой "путешествуют" данные, - другими словами, кабельную систему вычислительной сети. Над ним имеется канальный уровень, или уровень звена данных, функционирование которого обеспечивается сетевыми интерфейсными платами. На самом верху размещается уровень прикладных программ, где работают программы, использующие служебные функции сетей.
В таблице 2.1 показано, как TCP/IP согласуется с моделью ISO/OSI. Этот рисунок также иллюстрирует уровневое строение TCP/IP и показывает взаимосвязи между основными протоколами. При переносе блока данных из сетевой прикладной программы в плату сетевого адаптера он последовательно проходит через ряд модулей TCP/IP. При этом на каждом шаге он доукомплектовывается информацией, необходимой для эквивалентного модуля TCP/IP на другом конце цепочки. К тому моменту, когда данные попадают в сетевую плату, они представляют собой стандартный кадр Ethernet, если предположить, что сеть основана именно на этом интерфейсе. Программное обеспечение TCP/IP на приемном конце воссоздает исходные данные для принимающей программы путем захвата кадра Ethernet и прохождения его в обратном порядке по набору модулей TCP/IP. (Один из наилучших способов разобраться во внутреннем устройстве TCP/IP стоит в использовании программы-"шпиона", чтобы найти внутри кадров, "пролетающих" по сети, информацию, добавленную различными модулями TCP/IP.)
Таблица 2.1 Соответствие уровней TCP/IP и уровней модели OSI
Уровень OSI |
Уровень TCP/IP |
Протокол |
|
7. Прикладной 6. Представления данных |
4. Прикладной |
HTTP, FTP, TELNET, SMTP, POP, IMAP |
|
5. Сеансовый 4. Транспортный |
3. Транспортный |
TCP, UDP |
|
3. Сетевой |
2. Межсетевой |
IP, ICMP, IGMP, RIP, OSPF |
|
2. Канальный 1. Физический |
1. Доступа к сети |
PPP, SLIP, X.25 Ethernet, Token Ring, FDDI |
На каждом уровне семейства TCP/IP присутствует несколько протоколов. Связь между наиболее употребительными протоколами и их принадлежность уровням изображены на рисунке 2.1
Рисунок 2.1 Связь между протоколами семейства TCP/IP
Для иллюстрации роли, которую TCP/IP играет в вычислительных сетях в реальном мире, рассмотрим, что происходит, когда Web-браузер использует HTTP (Hypertext Transfer Protocol, протокол передачи гипертекста) для извлечения страницы HTML-данных из Web-сервера, подключенного к Internet.
Для формирования виртуального подключения к серверу браузер использует абстракцию программного обеспечения высокого уровня, называемую сокетом (socket). А чтобы извлечь страницу Web, он посылает на сервер команду GET HTTP, записывая ее в сокет. Программное обеспечение сокета, в свою очередь, применяет TCP для пересылки битов и байтов, составляющих команду GET на Web-сервер. TCP сегментирует данные и передает отдельные сегменты модулю IP, который пересылает сегменты в дейтаграммах на Web-сервер.
Если браузер и сервер работают на компьютерах, подключенных к различным физическим сетям (как это обычно бывает), дейтаграммы передаются от сети к сети до тех пор, пока не достигнут той, к которой физически подключен сервер. В конце концов дейтаграммы достигают пункта своего назначения и вновь собираются таким образом, чтобы Web-сервер, который считывает цепочки данных из своего сокета, получал непрерывный поток данных. Для браузера и сервера данные, записанные в сокет на одном конце "всплывают" на другом конце. Но между этими событиями происходят все виды сложных взаимодействий для создания иллюзии непрерывной передачи данных между вычислительными сетями.
И это практически все, чем занимается TCP/IP: превращением множества небольших сетей в одну большую и предоставлением услуг, которые нужны прикладным программам для обмена информацией друг с другом по сети Internet.
Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур
ARP (Address Resolution Protocol, протокол определения адресов): конвертирует 32-разрядные IP-адреса в физические адреса вычислительной сети, например, в 48-разрядные адреса Ethernet.
FTP (File Transfer Protocol, протокол передачи файлов): позволяет передавать файлы с одного компьютера на другой с использованием TCP-соединений. В родственном ему, но менее распространенном протоколе передачи файлов - Trivial File Transfer Protocol (TFTP) - для пересылки файлов применяется UDP, а не TCP.
ICMP (Internet Control Message Protocol, протокол управляющих сообщений Internet): позволяет IP-маршрутизаторам посылать сообщения об ошибках и управляющую информацию другим IP-маршрутизаторам и главным компьютерам сети. ICMP-сообщения "путешествуют" в виде полей данных IP-дейтаграмм и обязательно должны реализовываться во всех вариантах IP.
IGMP (Internet Group Management Protocol, протокол управления группами Internet): позволяет IP-дейтаграммам распространяться в циркулярном режиме (multicast) среди компьютеров, которые принадлежат к соответствующим группам.
IP (Internet Protocol, протокол Internet): низкоуровневый протокол, который направляет пакеты данных по отдельным сетям, связанным вместе с помощью маршрутизаторов для формирования Internet или интрасети. Данные "путешествуют" в форме пакетов, называемых IP-дейтаграммами.
RARP (Reverse Address Resolution Protocol, протокол обратного преобразования адресов): преобразует физические сетевые адреса в IP-адреса.
SMTP (Simple Mail Transfer Protocol, простой протокол обмена электронной почтой): определяет формат сообщений, которые SMTP-клиент, работающий на одном компьютере, может использовать для пересылки электронной почты на SMTP-сервер, запущенный на другом компьютере.
TCP (Transmission Control Protocol, протокол управления передачей): протокол ориентирован на работу с подключениями и передает данные в виде потоков байтов. Данные пересылаются пакетами - TCP-сегментами, - которые состоят из заголовков TCP и данных. TCP - "надежный" протокол, потому что в нем используются контрольные суммы для проверки целостности данных и отправка подтверждений, чтобы гарантировать, что переданные данные приняты без искажений.
UDP (User Datagram Protocol, протокол пользовательских дейтаграмм): протокол, не зависящий от подключений, который передает данные пакетами, называемыми UDP-дейтаграммами. UDP - "ненадежный" протокол, поскольку отправитель не получает информацию, показывающую, была ли в действительности принята дейтаграмма.
Адресация в IP сетях
Типы адресов: физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNS-имя)
Каждый компьютер в сети TCP/IP имеет адреса трех уровней:
Локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем. Для узлов, входящих в глобальные сети, такие как Х.25 или frame relay, локальный адрес назначается администратором глобальной сети.
IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами.
Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IP-адреса на поле номера сети и номера узла - гибкое, и граница между этими полями может устанавливаться весьма произвольно. Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
Символьный идентификатор-имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес, называемый также DNS-именем, используется на прикладном уровне, например, в протоколах FTP или telnet.
Классы IP адресов
Все IP-адреса версии 4 принято делить на 5 классов. Принадлежность адреса к некоторому классу определяют по количеству последовательных 1 в старших битах адреса (рис. 2.2). Адреса классов A, B и C используют собственно для адресации сетевых интерфейсов. Адреса класса D применяются для групповой рассылки информации (multicast addresses) и далее нас интересовать не будут. Класс E (про который во многих книгах по сетям забывают) был зарезервирован для будущих расширений.
Рисунок 2.2 Классы IP адресов
Каждый из IP-адресов классов A-C логически делится на две части: идентификатор или номер сети и идентификатор или номер узла в этой сети. Идентификаторы сетей в настоящее время присваиваются локальным сетям специальной международной организацией - корпорацией Internet по присвоению имен и номеров (ICANN). Присвоение адреса конкретному узлу сети, получившей идентификатор, является заботой ее администратора. Класс A предназначен для небольшого количества сетей, содержащих очень много компьютеров, класс C - напротив, для большого количества сетей с малым числом компьютеров. Класс B занимает среднее положение. Надо отметить, что все идентификаторы сетей классов A и B к настоящему моменту уже задействованы.
Любая организация, которой был выделен идентификатор сети из любого класса, может произвольным образом разделить имеющееся у нее адресное пространство идентификаторов узлов для создания подсетей.
Допустим, что вам выделен адрес сети класса C, в котором под номер узла сети отведено 8 бит. Если нужно присвоить IP-адреса 100 компьютерам, которые организованы в 10 Ethernet-сегментов по 10 компьютеров в каждом, можно поступить по-разному. Можно присвоить номера от 1 до 100 компьютерам, игнорируя их принадлежность к конкретному сегменту - воспользовавшись стандартной формой IP-адреса. Или же можно выделить несколько младших бит из адресного пространства идентификаторов узлов для идентификации сегмента сети, например 4 бита, а для адресации узлов внутри сегмента использовать оставшиеся 4 бита. Последний способ получил название адресации с использованием подсетей (рис. 2.3).
Рисунок 2.3 Принцип адресации с использованием подсетей
Запоминать четырехбайтовые числа для человека достаточно сложно, поэтому принято записывать IP-адреса в символической форме, переводя значение каждого байта в десятичный вид по отдельности и разделяя полученные десятичные числа в записи точками, начиная со старшего байта: 192.168.253.10.
Соглашения о специальных адресах: broadcast, multicast, loopback
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:
если IР-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет;
если в поле номера сети стоят 0, то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет;
если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);
если в поле адреса назначения стоят сплошные 1, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast);
адрес 127.0.0.1 зарезервирован для организации обратной связи при проверке работы ПО узла без реальной отправки пакета по сети. Этот адрес имеет название loopback.
Уже упоминавшаяся форма группового IP-адреса - multicast - означает, что данный пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, то есть определяют, к какой из групп они относятся. Один и тот же узел может входить в несколько групп. Такие сообщения в отличие от широковещательных называются мультивещательными. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом.
В протоколе IP нет понятия широковещательности в том смысле, в котором оно используется в протоколах канального уровня локальных сетей, когда данные должны быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес, так и широковещательный IP-адрес имеют пределы распространения в интерсети - они ограничены либо сетью, к которой принадлежит узел - источник пакета, либо сетью, номер которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов на части локализует широковещательный шторм пределами одной из составляющих общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем узлам всех сетей составной сети.
Подсети
Маской подсети или маской сети называется битовая маска, показывающая, какая часть IP-адреса относится к адресу сети, а какая - к адресу узла в этой сети
Чтобы получить адрес сети, зная IP-адрес и маску подсети необходимо применить к ним поразрядную операцию логического «И». Результатом выполнения данной операции будет адрес сети.
IP-адрес: 00001100 00100010 00111000 01001110 (12.34.56.78)
Маска подсети:11111111 11111111 11100000 00000000 (255.255.224.0)
Адрес сети: 00001100 00100010 00100000 00000000 (12.34.32.0)
Разбиение одной большой сети на несколько маленьких позволяет упростить маршрутизацию. Например: пусть в таблице маршрутизации имеется следующая запись:
Сеть назначения |
Маска |
Адрес шлюза |
|
12.34.0.0 |
255.255.0.0 |
11.22.3.4 |
Пусть теперь маршрутизатор получает пакет данных с адресом назначения 12.34.56.78. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении маски 255.255.0.0 на адрес 12.34.56.78 получается адрес сети 12.34.0.0. В таблице маршрутизации этой сети соответствует шлюз 11.22.3.4, которому и будет отправлен пакет.
Назначение маски подсети
Маска назначается по следующей схеме 28 ? n (для сетей класса C), где n - количество компьютеров в под/сети + 2, округленное до ближайшей большей степени двойки.
Пример: В некой сети класса C есть 30 компьютеров, маска для такой сети вычисляется следующим образом:
28 - 32 = 224 (0E0h) < = > 255.255.255.224 (0xFFFFFFE0)
Маршрутизация
Маршрутизация - это процесс определения маршрута следования информации в сетях связи.
Маршруты могут задаваться администратором (статическая маршрутизация) или вычисляться с помощью алгоритмов маршрутизации исходя из топологии и состояния сети.
Для определения оптимального пути пакетов от источника к приемнику применяются алгоритмы маршрутизации. Для формулирования алгоритмов маршрутизации сеть рассматривается как граф. При этом маршрутизаторы являются узлами, а физические линии между маршрутизаторами -- рёбрами соответствующего графа. Каждой грани графа присваивается определённое число -- стоимость, зависящая от физической длины линии, скорости передачи данных по линии или финансовой стоимости линии.
Протоколы маршрутизации
Протокол маршрутизации - это сетевой протокол, используемый маршрутизаторами для определения возможных маршрутов передачи данных в компьютерной сети.
Протоколы маршрутизации делятся на два вида, зависящие от типов алгоритмов, на которых они основаны:
Дистанционно-векторные протоколы, основаны на Distance Vector Algorithm (DVA);
RIP- Routing Information Protocol
IGRP - Interior Gateway Routing Protocol (лицензированный протокол Cisco Systems)
BGP - Border Gateway Protocol
Протоколы состояния каналов связи, основаны на Link State Algorithm (LSA).
EIGRP - Enhanced Interior Gateway Routing Protocol (лицензированный протокол Cisco Systems)
IS-IS- Intermediate System to Intermediate System (стек OSI)
OSPF- Open Shortest Path First
NLSP - NetWare Link-Services Protocol (стек Novell)
Протокол RIP
Протокол RIP -- один из наиболее распространенных протоколов маршрутизации в небольших компьютерных сетях, который позволяет маршрутизаторам динамически обновлять маршрутную информацию (направление и дальность в хопах), получая ее от соседних маршрутизаторов.
RIP -- так называемый протокол вектор-расстояния, который оперирует хопами в качестве метрики маршрутизации. Максимальное количество хопов, разрешенное в RIP -- 15 (метрика 16 означает "бесконечно большую метрику"). Каждый RIP-маршрутизатор по умолчанию вещает в сеть свою полную таблицу маршрутизации раз в 30 секунд, генерируя довольно много трафика на низкоскоростных линиях связи. RIP работает на сетевом уровне стека TCP/IP, используя UDP порт 520.
В современных сетевых средах RIP -- не самое лучшее решение для выбора в качестве протокола маршрутизации, так как его возможности уступают более современным протоколам, таким как EIGRP, OSPF. Ограничение на 15 хопов не дает применять его в больших сетях. Единственный плюс этого протокола -- простота конфигурирования.
Протокол OSPF
OSPF -- протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути Алгоритм Дейкстры (Dijkstra's algorithm).
Алгоритм работы протокола:
Маршрутизаторы обмениваются hello-пакетами через все интерфейсы на которых активирован OSPF. Маршрутизаторы разделяющие общий канал передачи данных становятся соседями, когда они приходят к договоренности об определенных параметрах указанных в их hello-пакетах.
На следующем этапе работы протокола маршрутизаторы будут пытаться перейти в состояние соседства со своими соседями. Переход в состояние соседства определяется типом маршрутизаторов обменивающихся hello-пакетами и типом сети по которой передаются hello-пакеты. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии соседства синхронизирует между собой базу данных состояния каналов.
Каждый маршрутизатор посылает объявление о состоянии канала маршрутизаторам с которыми он находится в состоянии соседства.
Каждый маршрутизатор получивших объявление от соседа записывает информацию передаваемую в нем в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим своим соседям.
Рассылая объявления через зону, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора.
Когда база данных построена, каждый маршрутизатор использует алгоритм кратчайшего пути для вычисления графа без петель, который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф - дерево кратчайшего пути.
Каждый маршрутизатор строит таблицу маршрутизации из своего дерева кратчайшего пути.
Принцип работы маршрутизатора
Обычно маршрутизатор использует адрес получателя, указанный в пакетах данных и определяет по таблице маршрутизации путь, по которому следует передать данные. Если в таблице маршрутизации для адреса нет описанного маршрута, пакет отбрасывается.
Существуют и другие способы определения маршрута пересылки пакетов, когда, например, используется адрес отправителя, используемые протоколы верхних уровней и другая информация, содержащаяся в заголовках пакетов сетевого уровня. Нередко маршрутизаторы могут осуществлять трансляцию адресов отправителя и получателя, фильтрацию транзитного потока данных на основе определённых правил с целью ограничения доступа, шифрование/дешифрование передаваемых данных и т. д.
Таблица маршрутизации
Таблица маршрутизации содержит информацию, на основе которой маршрутизатор принимает решение о дальнейшей пересылке пакетов. Таблица состоит из некоторого числа записей -- маршрутов, в каждой из которых содержится адрес сети получателя, адрес следующего узла, которому следует передавать пакеты и некоторый вес записи -- метрика. Метрики записей в таблице играют роль в вычислении кратчайших маршрутов к различным получателям. В зависимости от модели маршрутизатора и используемых протоколов маршрутизации, в таблице может содержаться некоторая дополнительная служебная информация. Например: 192.168.64.0/30 [110/49] via 192.168.1.2, 00:34:34, FastEthernet0/0.1
192.168.64.0/30 -- сеть назначения,
110/49 -- метрика маршрута,
192.168.1.2 -- адрес следующего маршрутизатора, которому следует передавать пакеты для сети 192.168.64.0/30,
00:34:34 -- время, в течение которого был известен этот маршрут,
FastEthernet0/0.1 -- интерфейс маршрутизатора, через который можно достичь «соседа» 192.168.1.2.
Команда ROUTE
Команда ROUTE выводит на экран и изменяет записи в локальной таблице IP-маршрутизации.
Синтаксис
Route [-f] [-p] [команда [конечная_точка] [mask сетевая_маска] [шлюз] [metric метрика]] [if интерфейс]]
Параметры
F - jчищает таблицу маршрутизации от всех записей, которые не являются узловыми маршрутами (маршруты с маской подсети 255.255.255.255), сетевым маршрутом замыкания на себя (маршруты с конечной точкой 127.0.0.0 и маской подсети 255.0.0.0) или маршрутом многоадресной рассылки (маршруты с конечной точкой 224.0.0.0 и маской подсети 240.0.0.0). При использовании данного параметра совместно с одной из команд (таких, как add, change или delete) таблица очищается перед выполнением команды.
P - при использовании данного параметра с командой add указанный маршрут добавляется в реестр и используется для инициализации таблицы IP-маршрутизации каждый раз при запуске протокола TCP/IP. По умолчанию добавленные маршруты не сохраняются при запуске протокола TCP/IP. При использовании параметра с командой print выводит на экран список постоянных маршрутов. Все другие команды игнорируют этот параметр. Постоянные маршруты хранятся в разделе регистра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes.
Команда - указывает команду, которая будет запущена на удаленной системе. В следующей таблице представлен список допустимых параметров.
Команда |
Назначение |
|
add |
Добавление маршрута |
|
change |
Изменение существующего маршрута |
|
delete |
Удаление маршрута или маршрутов |
|
|
Печать маршрута или маршрутов |
конечная_точка - определяет конечную точку маршрута. Конечной точкой может быть сетевой IP-адрес (где разряды узла в сетевом адресе имеют значение 0), IP-адрес маршрута к узлу, или значение 0.0.0.0 для маршрута по умолчанию.
Mask маска_сети - указывает маску сети (также известной как маска подсети) в соответствии с точкой назначения. Маска сети может быть маской подсети соответствующей сетевому IP-адресу, например 255.255.255.255 для маршрута к узлу или 0.0.0.0. для маршрута по умолчанию. Если данный параметр пропущен, используется маска подсети 255.255.255.255. Конечная точка не может быть более точной, чем соответствующая маска подсети. Другими словами, значение разряда 1 в адресе конечной точки невозможно, если значение соответствующего разряда в маске подсети равно 0.
Шлюз - указывает IP-адрес пересылки или следующего перехода, по которому доступен набор адресов, определенный конечной точкой и маской подсети. Для локально подключенных маршрутов подсети, адрес шлюза -- это IP-адрес, назначенный интерфейсу, который подключен к подсети. Для удаленных маршрутов, которые доступны через один или несколько маршрутизаторов, адрес шлюза -- непосредственно доступный IP-адрес ближайшего маршрутизатора.
Metric метрика - задает целочисленную метрику стоимости маршрута (в пределах от 1 до 9999) для маршрута, которая используется при выборе в таблице маршрутизации одного из нескольких маршрутов, наиболее близко соответствующего адресу назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика отражает количество переходов, скорость прохождения пути, надежность пути, пропускную способность пути и средства администрирования.
If интерфейс - указывает индекс интерфейса, через который доступна точка назначения. Для вывода списка интерфейсов и их соответствующих индексов используйте команду route print. Значения индексов интерфейсов могут быть как десятичные, так и шестнадцатеричные. Перед шестнадцатеричными номерами вводится 0х. В случае, когда параметр if пропущен, интерфейс определяется из адреса шлюза.
Отображение физических адресов на IP-адреса: протоколы ARP и RARP
В протоколе IP-адрес узла, то есть адрес компьютера или порта маршрутизатора, назначается произвольно администратором сети и прямо не связан с его локальным адресом, как это сделано, например, в протоколе IPX. Подход, используемый в IP, удобно использовать в крупных сетях и по причине его независимости от формата локального адреса, и по причине стабильности, так как в противном случае, при смене на компьютере сетевого адаптера, это изменение должны бы были учитывать все адресаты всемирной сети Internet (в том случае, конечно, если сеть подключена к Internet).
Локальный адрес используется в протоколе IP только в пределах локальной сети при обмене данными между маршрутизатором и узлом этой сети. Маршрутизатор, получив пакет для узла одной из сетей, непосредственно подключенных к его портам, должен для передачи пакета сформировать кадр в соответствии с требованиями принятой в этой сети технологии и указать в нем локальный адрес узла, например его МАС-адрес. В пришедшем пакете этот адрес не указан, поэтому перед маршрутизатором встает задача поиска его по известному IP-адресу, который указан в пакете в качестве адреса назначения. С аналогичной задачей сталкивается и конечный узел, когда он хочет отправить пакет в удаленную сеть через маршрутизатор, подключенный к той же локальной сети, что и данный узел.
Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol, ARP. Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети - протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, frame relay), как правило не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу - нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP - RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.
В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом.
Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети.
Команда ARP
Служит для вывода и изменения записей кэша протокола ARP, который содержит одну или несколько таблиц, использующихся для хранения IP-адресов и соответствующих им физических адресов Ethernet или Token Ring. Для каждого сетевого адаптера Ethernet или Token Ring, установленного в компьютере, используется отдельная таблица. Запущенная без параметров, команда arp выводит справку
Параметры команды:
-a [IP-адрес] [-N Интерфейс] - выводит таблицу протокола ARP для всех интерфейсов.
-d [IP-адрес] [-N Интерфейс] - удаление записи.
-s IP-адрес MAC-адрес [Интерфейс] - добавление статичной записи в ARP таблицу
Протоколы TCP и UDP. Понятие инкапсуляции
Для каждого транспортного протокола в стеке TCP/IP существуют собственные сокеты, имеющие различные адресные пространства своих локальных адресов - портов. В семействе протоколов TCP/IP адресные пространства портов представляют собой положительные значения целого 16-битового числа. Поэтому, говоря о локальном адресе сокета, мы часто будем использовать термин "номер порта". Из различия адресных пространств портов следует, что порт 1111 TCP - это совсем не тот же самый локальный адрес, что и порт 1111 UDP. О том, как назначаются номера портов различным сокетам, мы поговорим позже.
Итак, мы описали иерархическую систему адресации, используемую в семействе протоколов TCP/IP, которая включает в себя несколько уровней:
Физический пакет данных, передаваемый по сети, содержит физические адреса узлов сети (MAC-адреса) с указанием на то, какой протокол уровня Internet должен использоваться для обработки передаваемых данных (поскольку пользователя интересуют только данные, доставляемые затем на уровень приложений/процессов, то для него это всегда IP).
IP-пакет данных содержит 32-битовые IP-адреса компьютера-отправителя и компьютера-получателя, и указание на то, какой вышележащий протокол (TCP, UDP или еще что-нибудь) должен использоваться для их дальнейшей обработки.
Служебная информация транспортных протоколов (UDP-заголовок к данным и TCP-заголовок к данным) должна содержать 16-битовые номера портов для сокета отправителя и сокета получателя.
Добавление необходимой информации к данным при переходе от верхних уровней семейства протоколов к нижним принято называть английским словом инкапсуляция. На рисунке 2.4 приведена схема инкапсуляции при использовании протокола UDP на сети Ethernet.
Рисунок 2.4 Схема инкапсуляции данных
Поскольку между MAC и IP-адресами существует взаимно однозначное соответствие, то фактически, для полного задания адреса доставки и адреса отправления, нужно указать пять параметров: транспортный протокол, IP-адрес отправителя, порт отправителя, IP-адрес получателя, порт получателя.
Трансляция сетевых адресов (NAT)
Механизм трансляции сетевых адресов (Network Address Translation, NAT) осуществляет преобразование IP-адресов и номеров портов пакетов TCP и датаграмм UDP, которыми обмениваются локальная и внешняя (такая, как Интернет) сети. Наличие этого механизма позволяет организовать взаимодействие корпоративной сети с Интернетом простыми средствами, без привлечения специализированного программного обеспечения.
Механизм трансляции сетевых адресов включает в себя следующие элементы:
компонент преобразования. В этом качестве рассматривается компьютер (далее называемый компьютер-преобразователь адресов), выступающий в качестве транслятора сетевых адресов (NAT). Именно транслятор сетевых адресов является тем компонентом, который собственно и выполняет преобразование IP-адресов и номера портов пакетов TCP и датаграмм UDP, передаваемых между локальной сетью и внешней сетью;
компонент адресации. Компьютер, выступающий в качестве транслятора сетевых адресов, предоставляет информацию о конфигурации IP-адреса другим компьютерам домашней сети. Компонент адресации представляет собой упрощенный DHCP-сервер, предоставляющий клиентам сведения о IP-адресе, маске подсети, IP-адресе шлюза по умолчанию, DNS-сервера (в качестве последних двух адресов используется IP-адрес непосредственно самого транслятора сетевых адресов). Все компьютеры в локальной сети (являющиеся клиентами NAT) должны быть сконфигурированы как клиенты DHCP, чтобы автоматически получать конфигурацию IP;
компонент разрешения имен. Компьютер с преобразователем адресов становится DNS-сервером и WINS-сервером для других компьютеров в домашней сети. Когда компьютер с преобразователем адресов получает запросы о разрешении имен, он пересылает запросы о разрешении имен серверам DNS и WINS в межсетевой среде, на которые он настроен, и возвращает ответы на компьютер в локальной сети.
Архитектура стека протоколов TCP/IP требует, чтобы каждый хост в сети имел уникальный IP-адрес. Это требование справедливо и для Интернета. Любой хост, подключающийся к Интернету, должен являться обладателем уникального IP-адреса. В целях упорядочивания процесса адресации распределением IP-адресов занимается специальный Информационный центр сети Интернет (Network Information Center, InterNIC). Согласно терминологии NAT, эти адреса называются действительными (public address). Как правило, предприятие получает действительный адрес (или пул адресов) от своего Интернет-провайдера, который, в свою очередь, получил некоторый диапазон действительных адресов от InterNIC.
Для того чтобы разрешить нескольким компьютерам в сети малого офиса или в домашней сети устанавливать соединение с ресурсами Интернета, необходимо, чтобы каждый компьютер имел собственный действительный адрес. Чтобы решить эту проблему, необходимо или обратиться к провайдеру за дополнительными IP-адресами (что влечет за собой дополнительные расходы), или приобрести специализированное программное обеспечение. Для решения данной проблемы администратор может использовать механизм трансляции сетевых имен. Благодаря этому механизму ограниченное количество действительных адресов может использоваться компьютерами локальной сети для организации доступа в Интернет.
В качестве альтернативы механизму трансляции сетевых адресов в сетях малых офисов или домашних сетях на базе Windows Server 2003 можно использовать механизм общего доступа к подключению Интернета (Internet Connection Sharing, ICS).
Поскольку механизм трансляции сетевых адресов изначально разрабатывался как инструмент организации взаимодействия локальной сети с Интернетом, центром InterNIC были зарезервированы специальные пулы IP-адресов. Адреса из этих пулов не могут быть использованы для именования хостов в Интернете. Эти адреса получили название частных адресов (private address). Частные адреса предназначены для адресации хостов в корпоративных сетях, использующих механизм NAT как простое средство интеграции с Интернетом.
Для частных адресов зарезервированы следующие диапазоны (задаются идентификатором подсети и маской):
10.0.0.0с маской 255.0.0.0
172.16.0.0с маской 255.240.0.0
192.168.0.0 с маской 255.255.0.0
Как уже было замечено ранее, частные адреса резервируются для специальных целей и не могут быть использованы для адресации хостов в сети Интернет. Для получения доступа к ресурсам Интернета используются разрешенные действительные адреса. Механизм NAT осуществляет трансляцию частных адресов в действительные адреса Интернета. Механизм NAT выступает в качестве посредника между корпоративными хостами и службами Интернета. Пакеты, исходящие из локальной сети, имеют частные адреса, которые NAT транслирует в действительные адреса. Поступающие из Интернета пакеты имеют, соответственно, действительные адреса, и механизм NAT выполняет их трансляцию в частные адреса.
Принципы действия NAT
Для установки соединения используется уникальная связка "адрес-порт". Другими словами, с хостом, имеющим один IP-адрес, может быть установлено множество соединений. Однако каждое из этих соединений будет использовать различные порты. Как правило, механизм NAT используется в ситуации, когда несколько частных адресов отображаются на один действительный адрес.
Для пакетов, исходящих из NAT, частный адрес, указанный в заголовке пакета в поле отправителя, отображается в действительный адрес, выданный интернет-провайдером, а номер порта TCP/UDP отображается в другой номер порта TCP/UDP. Для пакетов, приходящих к NAT, действительный адрес, указанный в заголовке пакета в поле получателя, отображается в оригинальный адрес интрасети (частный адрес), а номер порта TCP/UDP отображается обратно к оригинальному номеру порта TCP/UDP. При этом TCP- и UDP-порты выбираются динамически, чтобы отличить один компьютер внутри интрасети от другого. Механизм NAT поддерживает специальную таблицу, в которую заносятся сведения об отображениях. Благодаря этой таблице механизм поддерживает уже установленные соединения, используя для передачи входящих пакетов ту же связку "адрес-порт", которая использовалась для установки соединения.
Для демонстрации принципов работы механизма NAT рассмотрим следующий пример. Допустим, имеется небольшая локальная сеть предприятия, в которой для адресации хостов используется идентификатор сети 192.168.0.0. Так же предприятию интернет-провайдером выделен некоторый адрес a.b.c.d. Механизм NAT отображает все частные адреса в сети 192.168.0.0 в IP-адрес a.b.c.d (рис. 2.5).
Рисунок 2.5 Трансляция сетевых адресов
Допустим, пользователь локальной сети предпринимает попытку соединиться с веб-сервером, имеющим действительный адрес e.f.g.h. В этом случае клиентский компьютер формирует IP-пакет со следующей информацией в заголовке:
IP-адрес получателя: e.f.g.h
IP-адрес отправителя: 192.168.0.10
порт получателя: TCP-порт 80
порт отправителя: TCP-порт 1025
Механизм NAT выполняет преобразование заголовка этого пакета в следующий заголовок:
IP-адрес получателя: e.f.g.h
IP-адрес отправителя: a.b.c.d
порт получателя: TCP-порт 80
порт отправителя: TCP-порт 5000
После выполнения преобразования IP-пакет может быть передан в Интернет. Поскольку в качестве отправителя пакета указан компьютер-преобразователь, удаленная служба сформирует ответный пакет, который будет адресован этому компьютеру. Ответный пакет содержит следующую информацию в заголовке:
IP-адрес получателя: a.b.c.d
IP-адрес отправителя: e.f.g.h
порт получателя: TCP-порт 5000
порт отправителя: TCP-порт 80
Механизм NAT анализирует полученный пакет и, используя собственную адресную таблицу, отображает действительные адреса в частные. По окончании преобразования пакет будет передан хосту во внутренней сети (в нашем случае по адресу 192.168.0.10). При этом пакет содержит следующую информацию в заголовке:
IP-адрес получателя: 192.168.0.10
IP-адрес отправителя: e.f.g.h
порт получателя: TCP-порт 1025
порт отправителя: TCP-порт 80
Подобные документы
Стеки протоколов общемировой сетевой базе. Формат кадра сообщения NetBIOS. Использование в сети стеков коммуникационных протоколов: IPX/SPX, TCP/IP, OSI и DECnet. Дистанционное управление освещением. Особенности использования коммуникационных протоколов.
презентация [3,1 M], добавлен 21.02.2015Предназначение стек протоколов TCP/IP для соединения отдельных подсетей, построенных по разным технологиям канального и физического уровней в единую составную сеть. Современные стандарты IP протоколов. Использование стандартных классов сетей маски.
презентация [244,8 K], добавлен 10.11.2016Общая характеристика протокола ICMP, его назначение и формат сообщений. Анализ применимости протокола ICMP при переходе с набора протоколов IP v4 на набор IP v6. Свойства и принцип работы, сферы применения протоколов обмена маршрутной информацией.
курсовая работа [210,8 K], добавлен 24.08.2009Разработка и использование протокола маршрутизации RIP в небольших и сравнительно однородных сетях. Причины неустойчивой работы по протоколу, их устранение. Применения протокола Hello для обнаружения соседей и установления с ними отношений смежности.
курсовая работа [264,0 K], добавлен 06.06.2009Адресация в TCP-IP сетях. Локальные, IP-адреса и символьные доменные имена, используемые в стеке TCP. Основные типы классов IP адресов, максимальное число узлов в сети. Маска подсети, её значения. Протокол IPv6, его главные особенности и функции.
презентация [105,6 K], добавлен 10.09.2013Описание общих функций сетевого уровня модели OSI: протоколирование, маршрутизация и логическая адресация. Изучение принципов работы сетевого протокола TCP/IP и сетевых утилит командной строки. Адрес локальной сети и определение класса сети Интернет.
презентация [412,7 K], добавлен 05.12.2013Создание компьютерной сети в программе cisco. Распределение ip-адресов для каждого из узлов сети. Теоретические основы о протоколах OSPF и RIP. Принцип работы протоколов. Распределение адресного пространства. Конфигурирование маршрутизаторов и OSPF.
практическая работа [521,4 K], добавлен 03.05.2019TCP/IP-установка протоколов, используемых для связи компьютерных сетей и маршрутизации движения информации между большим количеством различных компьютеров. "TCP" означает "Протокол контроля передачи". "IP" означает "Протокол межсетевого взаимодействия".
контрольная работа [23,4 K], добавлен 04.10.2008Межсетевой уровень модели TCP/IP. Понятие IP-адреса. Адрес узла для решения задачи маршрутизации. Схема классовой адресации, специальные адреса. Определение IP-адреса и маски подсети для каждого узла. Таблица маршрутизации IP, алгоритм выбора маршрута.
презентация [63,2 K], добавлен 25.10.2013Работы по созданию сети ARPANET, протоколы сетевого взаимодействия TCP/IP. Характеристика программного обеспечения для TCP/IP. Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур. Архитектура, уровни сетей и протоколы TCP/IP.
реферат [15,7 K], добавлен 03.05.2010