Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на вопросы upd / Воп_ сети2012 не кратко upd

.pdf
Скачиваний:
87
Добавлен:
03.06.2014
Размер:
1.58 Mб
Скачать

15. TCP/IP. IP протокол.

Internet Protocol (IP) — межсетевой протокол. Относится к маршрутизируемым протоколам сетевого уровня семейства TCP/IP. Именно IP стал тем протоколом, который объединил отдельные подсети во всемирную сеть Интернет. Неотъемлемой частью протокола является адресация сети.

IP объединяет сегменты сети в единую сеть, обеспечивая доставку данных между любыми узлами сети. Он классифицируется как протокол третьего уровня по сетевой модели OSI. IP не гарантирует надѐжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, продублироваться (приходят две копии одного пакета), оказаться повреждѐнными (обычно повреждѐнные пакеты уничтожаются) или не прийти вовсе. Гарантию безошибочной доставки пакетов дают некоторые протоколы более высокого уровня — транспортного уровня сетевой модели OSI, — например, TCP, которые используют IP в качестве транспорта.

Всовременной сети Интернет используется IP четвѐртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам — A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация).

Внастоящее время вводится в эксплуатацию шестая версия протокола — IPv6, которая позволяет адресовать значительно большее количество узлов, чем IPv4. Эта версия отличается повышенной разрядностью адреса, встроенной возможностью шифрования и некоторыми другими особенностями. Переход с IPv4 на IPv6 связан с трудоѐмкой работой операторов связи и производителей программного обеспечения и не может быть выполнен одномоментно. На середину 2010 года в Интернете присутствовало более 3000 сетей, работающих по протоколу IPv6. Для сравнения, на то же время в адресном пространстве IPv4 присутствовало более 320 тысяч сетей, но в IPv6 сети гораздо более крупные, нежели в IPv4.

] Версия — для IPv4 значение поля должно быть равно 4.

41

IHL — (Internet Header Length) длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных (англ. payload — полезный груз) в пакете. Минимальное корректное значение для этого поля равно 5.

Длина пакета - длина пакета в октетах, включая заголовок и данные. Минимальное корректное значение для этого поля равно 20, максимальное

65535.

Идентификатор — значение, назначаемое отправителем пакета и предназначенное для определения корректной последовательности фрагментов при сборке пакета. Для фрагментированного пакета все фрагменты имеют одинаковый идентификатор.

3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.

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

Время жизни (TTL) — число маршрутизаторов, которые должен пройти этот пакет. При прохождении маршрутизатора это число уменьшатся на единицу. Если значения этого поля равно нулю то, пакет должен быть отброшен и отправителю пакета может быть послано сообщение Time Exceeded (ICMP код

11 тип 0).

Протокол — идентификатор интернет-протокола следующего уровня указывает, данные какого протокола содержит пакет, например, TCP или ICMP

(см. IANA protocol numbers и RFC 1700). В IPv6 называется «Next Header».

Контрольная сумма заголовка — вычисляется в соответствии с RFC 1071

42

16. TCP/IP. TCP. UDP.

Transmission Control Protocol (TCP) (протокол управления передачей) —

один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.

Выполняет функции протокола транспортного уровня модели OSI. TCP — это транспортный механизм, предоставляющий поток данных, с

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

Реализация TCP, как правило, встроена в ядро ОС, хотя есть и реализации TCP в контексте приложения.

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

Существует набор служб (использующих для передачи данных TCP), за которыми закреплены определенные порты:

20/21 — FTP 22 — SSH 23 — Telnet 25 — SMTP 80 — HTTP 110 — POP3

194 — IRC (Internet Relay Chat)

443 — HTTPS (Secure HTTP)

1863 — MSN Messenger

2000 — Cisco SCCP (VoIP)

3389 — RDP

43

8080 — альтернативный порт HTTP Флаги (управляющие биты)

Это поле содержит 6 битовых флагов:

URG — Поле «Указатель важности» задействовано (англ. Urgent pointer field is significant)

ACK — Поле «Номер подтверждения» задействовано (англ.

Acknowledgement field is significant)

PSH — (англ. Push function) инструктирует получателя протолкнуть данные, накопившиеся в приемном буфере, в приложение пользователя

RST — Оборвать соединения, сбросить буфер (очистка буфера) (англ. Reset the connection)

SYN — Синхронизация номеров последовательности (англ. Synchronize sequence numbers)

FIN (англ. final, бит) — флаг, будучи установлен, указывает на завершение соединения (англ. FIN bit used for connection termination).

UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм) — один из ключевых элементов Internet Protocol Suite (более известного как TCP/IP), набора сетевых протоколов для Интернета. С UDP компьютерные приложения могут посылать сообщения (в данном случае называемые датаграммами) другим хостам по IP-сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных. Протокол был разработан Дэвидом П. Ридом в 1980 году и официально определѐн в RFC 768.

UDP использует простую модель передачи, без неявных «рукопожатий» для обеспечения надѐжности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадѐжный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. UDP подразумевает, что проверка ошибок и исправление либо не необходимы, либо должны исполняться в приложении. Чувствительные ко времени приложения часто используют UDP, так как предпочтительнее сбросить пакеты, чем ждать задержавшиеся пакеты, что может оказаться невозможным в системах реального времени. При необходимости исправления ошибок на сетевом уровне интерфейса приложение может задействовать TCP или SCTP, разработанные для этой цели.

Природа UDP как протокола без сохранения состояния также полезна для серверов, отвечающих на небольшие запросы от огромного числа клиентов, например DNS и потоковые мультимедийные приложения вроде IPTV, Voice over IP, протоколы туннелирования IP и многие онлайн-игры.

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

IANA разбила номера портов на три группы.

Порты с номерами от 0 до 1023 используются для обычных, хорошо известных служб. В Unix-подобных операционных системах для использования таких портов необходимо разрешение суперпользователя.

44

Порты с номерами от 1024 до 49151 предназначены для зарегистрированных IANA служб.

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

Заголовок UDP состоит из четырѐх полей, каждое по 2 байта (16 бит). Два из них необязательны к использованию в IPv4 (розовые ячейки в таблице), в то время как в IPv6 необязателен только порт отправителя.

Порт отправителя

Вэтом поле указывается номер порта отправителя. Предполагается, что это значение задаѐт порт, на который при необходимости будет посылаться ответ. В противном же случае, значение должно быть равным 0. Если хостомисточником является клиент, то номер порта будет, скорее всего, эфемерным. Если источником является сервер, то его порт будет одним из «хорошо известных».

Порт получателя Это поле обязательно и содержит порт получателя. Аналогично порту

отправителя, если клиент — хост-получатель, то номер порта эфемерный, иначе (сервер — получатель) это «хорошо известный порт».

Длина датаграммы Поле, задающее длину всей датаграммы (заголовка и данных) в байтах.

Минимальная длина равна длине заголовка — 8 байт. Теоретически, максимальный размер поля — 65535 байт для UDP-датаграммы (8 байт на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 — 65507 (помимо 8 байт на UDP-заголовок требуется ещѐ 20 на IP-заголовок).

ВJumbogram-ах IPv6 пакеты UDP могут иметь больший размер. Максимальное значение составляет 4 294 967 295 байт (2^32 — 1), из которых 8 байт соответствуют заголовку, а остальные 4 294 967 287 байт — данным.

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

ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями. Поле не является обязательным для IPv4.

45

17. Маршрутизация. Статическая маршрутизация

Стати́ческая маршрутиза́ция - вид маршрутизации, при котором маршруты указываются в явном виде при конфигурации маршрутизатора. Вся маршрутизация при этом происходит без участия каких-либо протоколов маршрутизации.

При задании статического маршрута указывается:

Адрес сети (на которую маршрутизируется трафик), маска сети Адрес шлюза (узла), который отвечает за дальнейшую маршрутизацию (или

подключен к маршрутизируемой сети напрямую)

(опционально) метрика (иногда именуется также "ценой") маршрута. При наличии нескольких маршрутов на одну и ту же сеть некоторые маршрутизаторы выбирают маршрут с минимальной метрикой

Внекоторых маршрутизаторах возможно указывать интерфейс, на который следует направить трафик сети и указать дополнительные условия, согласно которым выбирается маршрут (например, SLA в маршрутизаторах cisco).

Достоинства Основные:

Лѐгкость отладки и конфигурирования в малых сетях.

Отсутствие дополнительных накладных расходов (из-за отсутствия протоколов маршрутизации)

Мгновенная готовность (не требуется интервал для конфигурирования/подстройки)

Низкая нагрузка на процессор маршрутизатора Предсказуемость в каждый момент времени Недостатки

Очень плохое масштабирование (добавление (N+1)-ой сети потребует сделать 2*(N+1) записей о маршрутах, причѐм на большинстве маршрутизаторов таблица маршрутов будет различной, при N>3-4 процесс конфигурирования становится весьма трудоѐмким).

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

Отсутствие динамического балансирования нагрузки Необходимость в ведении отдельной документации к маршрутам, проблема

синхронизации документации и реальных маршрутов. Использование

Вреальных условиях статическая маршрутизация используется в условиях наличия шлюза по умолчанию (узла, обладающего связностью с остальными узлами) и 1-2 сетями. Помимо этого статическая маршрутизация используется для "выравнивания" работы маршрутизирующих протоколов в условиях наличия туннеля (для того, чтобы маршрутизация трафика, создаваемого туннелем, не производилась через сам туннель).

46

18. Маршрутизация. Динамическая маршрутизация.

Динамическая маршрутизация — вид маршрутизации, при котором таблица маршрутизации редактируется программно. В случае UNIX-систем демонами маршрутизации; в других системах — служебными программами, которые называются иначе, но фактически играют ту же роль.

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

Протоколы динамической маршрутизации:

RIP

Когда маршрутизатор отправляет обновление RIP, он добавляет к метрике маршрута, которую он использует, 1 и отправляет соседу. Сосед получает обновление, в котором указано какую метрику для полученного маршрута ему использовать.

Маршрутизатор отправляет каждые 30 секунд все известные ему маршруты соседним маршрутизаторам. Но, кроме этого, для предотвращения петель и для улучшения времени сходимости, используются дополнительные механизмы:

Split horizon — если маршрут достижим через определенный интерфейс, то в обновление, которое отправляется через этот интерфейс не включается этот маршрут;

Triggered update — обновления отправляются сразу при изменении маршрута, вместо того чтобы ожидать когда истечет Update timer;

Route poisoning — это принудительное удаление маршрута и перевод в состояние удержания, применяется для борьбы с маршрутными петлями.

Poison reverse — Маршрут помечается, как не достижимый, то есть с метрикой 16 и отправляется в обновлениях.

В обновлениях RIPv2 могут передаваться до 25 сетей.

OSPF

Маршрутизаторы обмениваются hello-пакетами через все интерфейсы, на которых активирован OSPF. Маршрутизаторы, совместно использующие общий канал передачи данных, становятся соседями, когда они приходят к договоренности об определенных параметрах, указанных в их hello-пакетах.

На следующем этапе работы протокола маршрутизаторы будут пытаться перейти в состояние смежности со своими соседями. Переход в состояние смежности определяется типом маршрутизаторов, обменивающихся helloпакетами, и типом сети, по которой передаются hello-пакеты. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии смежности, синхронизирует между собой базу данных состояния каналов.

Каждый маршрутизатор посылает объявление о состоянии канала маршрутизаторам, с которыми он находится в состоянии смежности.

Каждый маршрутизатор, получивший объявление от соседа, записывает информацию, передаваемую в нем, в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим своим соседям.

Рассылая объявления через зону, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора.

Когда база данных построена, каждый маршрутизатор использует алгоритм "кратчайший путь первым" (shortest path first) для вычисления графа без петель,

47

который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф — дерево кратчайшего пути.

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

EIGRP

RTP управляет процессом отправки и получения пакетов EIGRP. RTP обеспечивает:

Гарантированную доставку пакетов. Для этого используется проприетарный алгоритм Cisco, reliable multicast. Пакеты отправляются на muilticast-адрес 224.0.0.10. Каждый сосед получивший такой пакет отправляет подтверждение отправителю пакета.

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

В некоторых случаях RTP использует негарантированную доставку. В таких пакетах не проставляются номера последовательностей и они не требуют подтверждения о получении.

Все сообщения EIGRP инкапсулируются в IP-пакеты, номер EIGRP в поле protocol IP-пакета — 88.

EIGRP использует 5 типов сообщений:

Hello — маршрутизаторы используют hello-пакеты для обнаружения соседей. Пакеты отправляются multicast и не требуют подтверждения о получении.

Update — содержится информация об изменении маршрутов. Они отправляются только маршрутизаторам, которых касается обновление. Эти пакеты могут быть отправлены конкретному маршрутизатору (unicast) или группе маршрутизаторов (multicast). Получение update-пакета подтверждается отправкой ACK.

Query — когда маршрутизатор выполняет подсчет маршрута и у него нет feasible successor, он отправляет query-пакет своим соседям для того чтобы определить нет ли feasible successor для этого destination у них. Обычно query-

пакеты отправляются multicast, но могут быть и unicast. Получение query-пакета подтверждается отправкой ACK получателем пакета.

Reply — маршрутизатор отправляет reply-пакет в ответ на query-пакет. Reply-пакеты отправляются unicast тому, кто отправил query-пакет. Получение reply-пакета подтверждается отправкой ACK.

ACK — пакет, который подтверждает получение пакетов update, query, reply. ACK-пакеты отправляются unicast и содержат в себе acknowledgment number. Фактически это hello-пакеты, которые не передают данных.

Используется негарантированная доставка.

BGP

Таблица соседей (neighbor table) — список всех соседей BGP

Таблица BGP (BGP table, forwarding database, topology database):

Список всех сетей выученных от каждого соседа Может содержать несколько путей к destination сетям Атрибуты BGP для каждого пути

Таблица маршрутизации — список лучших путей к сетям

По умолчанию BGP отправляет keepalive-сообщения каждые 60 секунд.

48

Если существует несколько путей к получателю, то маршрутизатор будет анонсировать соседям не все возможные варианты, а только лучший маршрут из таблицы BGP.

IS-IS

Маршрутизаторы могут быть уровня 1, уровня 2 или уровня 1-2: Маршрутизаторы уровня 1 (как internal nonbackbone маршрутизаторы в

OSPF) — знают маршруты в пределах зоны в которой они соединены; Маршрутизаторы уровня 2 (как backbone маршрутизаторы в OSPF) —

знают маршруты между зонами;

Маршрутизаторы уровня 1-2 (как ABR в OSPF) — знают маршруты и в пределах зоны в которой они соединены и между зонами. Это маршрутизаторы аналогичные ABR в OSPF.

Путь соединения маршрутизаторов уровня 2 и уровня 1-2 называется backbone.

Границы зон приходятся на каналы (links). Каждый маршрутизатор принадлежит только одной зоне. Соседние маршрутизаторы определяют в одной они зоне или в разных и устанавливают соответствующие отношения соседства: уровня 1, уровня 2 или обоих.

Демоны динамической маршрутизации:

Quagga GNU Zebra XORP Bird

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

Сами протоколы динамической маршрутизации можно классифицировать по нескольким критериям.

По алгоритмам:

Дистанционно-векторные протоколы (Distance-vector Routing Protocols); RIP

Протоколы состояния каналов связи (Link-state Routing Protocols). OSPF

IS-IS

Иногда выделяют третий класс, усовершенствованные дистанционновекторные протоколы (advanced distance-vector), для того чтобы подчеркнуть существенные отличия протоколов от классических дистанционно-векторных.

EIGRP

Компания Cisco ранее называла протокол EIGRP смешанный протокол, однако по своим принципам работы, EIGRP дистанционно-векторный протокол.

По области применения: Междоменной маршрутизации;

BGP

Внутридоменной маршрутизации.

OSPF RIP EIGRP IS-IS

49

19. SLIP. CSLIP. PPP

Уровень передачи данных в Интернете

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

На практике соединение «точка — точка» используется прежде всего в двух ситуациях. Во-первых, у тысяч организаций есть по одной или по несколько локальных сетей, в каждой из которых есть несколько хостов (персональных компьютеров, рабочих станций пользователя, серверов и т. д.) наряду с маршрутизаторами (или функционально близких к ним мостов). Маршрутизаторы часто

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

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

SLIP (Serial Line Internet Protocol) — устаревший сетевой протокол канального уровня эталонной сетевой модели OSI для доступа к сетям стека TCP/IP через низкоскоростные линии связи путѐм простой инкапсуляции IPпакетов. Используются коммутируемые соединения через последовательные порты для соединений клиент-сервер типа точка-точка. В настоящее время вместо него используют более совершенный протокол PPP.

Принципы работы

Для установления связи необходимо заранее задать IP-адреса, так как в протоколе SLIP нет системы обмена адресной информацией.

В принимаемом потоке бит SLIP позволяет определить признаки начала и конца пакета IP. По этим признакам SLIP собирает полноценные пакеты IP и передаѐт верхнему уровню. При отправлении IP-пакетов происходит обратная операция — они переформатируются и посимвольно отправляются получателю через последовательную линию.

Для передачи необходимо использовать конкретную конфигурацию UART: 8 бит данных (8 data bits), без паритета (no parity), аппаратное управление каналом передачи (EIA hardware flow control) или трѐхпроводный нуль-модемный кабель (3-wire null-modem — CLOCAL mode).

Структура кадров

Так как передача данных в последовательных асинхронных линиях связи

байт-ориентированная, сначала IP-пакет разбивается на байты (октеты). Границей SLIP-кадра является уникальный флаг END (0xC0). Уникальность этого флага поддерживается байт-стаффингом (byte stuffing) внутри кадра с

50