Смагин М.С. Вычислительные машины, системы и сети (1088253), страница 39
Текст из файла (страница 39)
Этот кадр он отправляет всем узлам своего сегмента сети. Узелсети, имеющий соответствующий IP-адрес, получает ARP-запрос и отсылаетназад ARP-ответ – тот же кадр, но в поле аппаратного адреса получателя,вместо нулей, будет указан его аппаратный адрес. Узел-отправитель, получивARP-ответ от требующегося ему узла-получателя, пополняет информацию всвоей ARP-таблице, после чего отправляет само сообщение.Наконец, третий вопрос, который возникает после рассмотрения протокола IP, − каким образом маршрутизаторы составных сетей определяют, накакой выход передавать пакеты, предназначенные узлам, не подключённым кним напрямую.
Как мы уже упоминали, когда говорили о маршрутизаторах,передача данных в них осуществляется на основании так называемой «таблицы маршрутизации». Эта таблица ставит в соответствие IP-адресам различных узлов сети номера выходов данного маршрутизатора, на которые надо передавать IP-пакеты с определёнными адресами, чтобы они дошли до получателей.Таблицы маршрутизации, как и ARP-таблицы, могут быть созданывручную администратором сети или автоматически, с помощью специальныхпротоколов, называемых протоколами маршрутизации.Основной задачей протоколов маршрутизации является формированиев маршрутизаторах таблиц маршрутизации и согласование их между собой.259Причём их согласованность необходимо периодически проверять.
В случаеесли информация в таблицах маршрутизации перестала соответствовать действительности, например вследствие отказа некоторых узлов или связей сети,их адекватность нужно восстанавливать. Время, необходимое для восстановления соответствия между реальным состоянием сети и таблицами маршрутизации, называется «временем конвергенции сети».Одним из наиболее популярных протоколов маршрутизации, используемых в небольших вычислительных сетях, является протокол RIP.
Его название расшифровывается как Routing Information Protocol, что можно перевести как «Протокол маршрутной информации». Принцип работы данногопротокола построен на том, что каждый маршрутизатор, собрав информациюо сетях, непосредственно подключённых к нему, формирует так называемуюминимальную таблицу маршрутизации. Далее он упаковывает сформированную таблицу в так называемое RIP-сообщение, которое отсылает всем окружающим его маршрутизаторам и, в свою очередь, получает RIP-сообщенияот них. Каждый маршрутизатор, получив RIP-сообщения от соседей, вноситполученную информацию в свою таблицу маршрутизации, после чего сноваупаковывает её в RIP-сообщение и опять отсылает его всем своим непосредственным соседям.
Так может продолжаться несколько раз до тех пор, пока вкаждом маршрутизаторе составной сети не будет сформирована полная таблица маршрутизации, хранящая информацию о всех сегментах составной сети.260Лекция №18Транспортный уровеньНа этом мы закончим рассмотрение сетевого уровня стека протоколовTCP/IP и перейдём к рассмотрению более высокого уровня, – транспортного.Транспортный уровень стека протоколов TCP/IP интегрирует в себе функциидвух уровней модели OSI, – сеансового и транспортного.
Иными словами,протоколы транспортного уровня стека TCP/IP обеспечивают выполнениезадач по взаимодействию отправителя и получателя данных и непосредственно по передаче данных между ними.Для решения данных задач в стеке протоколов TCP/IP предусмотренодва протокола – UDP и TCP. Протокол UDP является из них более простыми, соответственно, обеспечивает более высокую скорость передачи, но, в силу отсутствия механизмов обеспечения надёжной доставки данных, можетбыть использован только в сетях с надёжными каналами передачи. ПротоколTCP более сложный, зато он обеспечивает надёжную передачу данных по ненадёжным каналам и поддерживает функции контроля передачи данных иповторной передачи отдельных пакетов в случае их утраты в процессе продвижения по сети.Одной из основных задач, решаемых обоими этими протоколами, является задача мультиплексирования и демультиплексирования данных, поступающих от протоколов более высоких уровней.
Согласно модели OSI, надсеансовым и транспортным уровнями находятся ещё два уровня – прикладной и представлений. На них могут работать несколько протоколов или приложений, и каждое способно взаимодействовать с сетью через стек TCP/IP.Соответственно, протоколам TCP и UDP необходимо, при отправке, собиратьотправляемые данные от нескольких приложений, а после доставки распределять принимаемые данные между несколькими приложениями.В протоколе LLC технологии Ethernet, аналогичная задача решаласьпутём присвоения каждому из протоколов сетевого уровня специального261цифрового идентификатора, который позволял однозначно определить, какому из сетевых протоколов принадлежат данные, содержащиеся в кадреLLC.
Точно также она решена в протоколах TCP и UDP, где каждому протоколу более высокого уровня тоже присваивается свой цифровой идентификатор, позволяющий однозначно выделить его среди прочих приложений, запущенных на данном узле сети. В стандартах протоколов TCP и UDP этиидентификаторы называются «номерами портов». Стандарты данных протоколов позволяют каждому из них выделять приложениям верхних уровней до65535 портов, причём порты в TCP и UDP нумеруются независимо друг отдруга.
Т.е. порт TCP с номером 80 и UDP с номером 80 могут быть выделенысовершенно разным приложениям. Пара «IP-адрес - номер порта» называетсясокетом. В зависимости от используемого протокола, могут существоватьTCP- и UDP-сокеты.Для широко используемых протоколов и приложений верхних уровнейномера портов прописываются в стандартах.
Например, за протоколом передачи гипертекстовых страниц HTTP закреплён TCP-порт номер 80, а за протоколом синхронизации времени NTP – UDP-порт 131. Если же необходимоорганизовать передачу данных по сети для какого-нибудь специализированного или нового приложения, то программисты могут выбрать для него номер порта TCP или UDP из диапазона незанятых номеров, либо эти номерабудут автоматически назначаться для них операционной системой.Протокол UDPНачнём рассмотрение протоколов сетевого уровня с протокола UDP.UDP расшифровывается как User Datagram Protocol или «Протокол пользовательских дейтаграмм». Дейтаграммой называется независимая единица передачи данных, используемая в данном протоколе.
Особенностью протоколаUDP является принцип работы «доставка по возможности», т.е. в нём не предусмотрено никаких средств, обеспечивающих гарантированную доставку262сообщений. Фактически протокол UDP работает по принципу «отправил изабыл».Дейтаграмма UDP состоит из поля данных и заголовка. Заголовок UDPочень простой и состоит из 4 полей по 2 байта в каждом. В первом поле указывается номер порта приложения-отправителя (Source Port), во втором, соответственно, − номер порта приложения-получателя (Destination Port). Втретьем поле указывается общая длина дейтаграммы, включая заголовок (Total Length), а в четвёртом – контрольная сумма дейтаграммы (Checksum).015Source Port31Destination Port47Total Length63ChecksumРис.100 Структура UDP-дейтаграммыНаличие поля контрольной суммы позволяют протоколу UDP, работающему на принимающей стороне, отделять правильно переданные пакетыот переданных с ошибками.
Однако механизма организации повторной передачи ошибочных пакетов в протоколе UDP не предусмотрено.Протокол TCPПротокол TCP гораздо сложнее и имеет более развитую логику работы.В отличие от протокола UDP, работающего по дейтаграммному принципу,работа протокола TCP строится по принципу образования логических соединений. Процесс установления логического соединения между протоколамиTCP, работающими на узле-отправителе и узле-получателе, заключается втом, что они обмениваются между собой специальными служебными сообщениями, в которых указывают желательные для них параметры соединения.К таким параметрам, в частности, относятся: максимальный размер единицыпередачи данных, максимальное количество таких единиц, которые отправитель может передать в сеть, не дожидаясь подтверждения приёма от получателя, и т.д.263Алгоритм установления логического соединения разбит на три этапа,поэтому его ещё иногда называют «алгоритмом трёх рукопожатий».
На первом этапе отправитель посылает получателю запрос на установление логического соединения с указанием желательных для него параметров. Если получатель готов к приёму данных и его устраивают эти параметры, то он переходит ко второму этапу и посылает в ответ подтверждение установления логического соединения. Отправитель, получивший подтверждение установления логического соединения от получателя, переходит к третьему этапу и отсылает получателю сообщение с подтверждением приёма сообщения о подтверждении установления логического соединения, после чего, выдержавпаузу, начинает передачу данных.
Передача данных в протоколе TCP осуществляется, как и в других протоколах, порциями, замкнутыми блоками данных, которые называют «сегментами TCP».Надёжность передачи данных обеспечивается в протоколе TCP с помощью механизма подтверждения успешного приёма каждого TCP-сегмента.Т.е. получатель, после приёма каждого сегмента, отсылает отправителю специальное служебное сообщение об этом.