Протокол TCP/IP, адресация компьютеров в сетях
Для того чтобы информацию, переданную одним компьютером, понял другой компьютер, необходимо было разработать единые правила передачи данных, называемые протоколами. При их разработке учитывались все проблемы связи и вырабатывались.
Передача данных - сложный процесс, и его можно рассматривать на разных уровнях. Протокол передачи устанавливает соглашение между взаимодействующими компьютерами. Для того чтобы процесс коммуникации состоялся, необходимо снабдить компьютеры адресами. Они определяются сетевыми адаптерами, номерами телефонов и программами связи. Правила образования адресов компьютеров в сети должны быть абсолютно одинаковыми, несмотря на то что компьютеры в сети могут быть разнородными и могут использовать различные операционные системы.
Передача данных одним сплошным потоком может привести к их потере или искажению. Поэтому данные разделяются на блоки (пакеты) информации строго определенной длины, каждый такой пакет сопровождается служебным уведомлением, включая опознавательные знаки его начала и конца. Протоколы передачи содержат механизм распознавания начала пакета и его конца. Они управляют потоками данных, распределяют их. выстраивают в очереди. На другом конце приемник информации должен работать по тем же правилам (протоколам). Только тогда компьютеры поймут, что передают друг другу. Пакеты получают номер, чтобы устанавливать ошибочно переданную или утерянную при связи информацию, а также чтобы заново запросить именно тот пакет, с пересылкой которого возникли проблемы. Можно сравнить передачу этих пакетов с доставкой посылок по почте в одинаковых ящиках, со стандартным написанием адреса. Ведь каждая посылка тоже сопровождается служебной информацией. Если вам пришло несколько посылок и одной недостает, ее, конечно, можно запросить.
В связи с многочисленными задачами, которые должны решаться по стандарту, различают разного вида протоколы передачи данных, коррекции и исправления ошибок и пр.
В сети Интернет действует международный протокол TCP/IP, принятый в семидесятые годы. Управление сетью децентрализованное. Это значит, что при гибели в ней любого узла сохраняется функционирование (жизнедеятельность) всех остальных компьютеров. Пакеты данных перемещаются по сети к компьютеру с нужным адресом и при возникновении аварии одного из компьютеров автоматически направляются по другому маршруту. Для получателя совершенно неважно, по какому маршруту тот или иной пакет дойдет до него. На месте назначения они соединятся в одно целое. Так что пакеты могут достичь адресата и обходными путями.
Сетевой протокол - набор правил и соглашений, используемый при передаче данных между компьютерами в сети.
Как известно, компьютеры работают под управлением различных операционных систем. Для обеспечения корректного взаимодействия в компьютерных сетях разработан специальный стандарт, включающий несколько уровней сетевых протоколов (всего выделяют семь уровней). На прикладном уровне работает пользователь компьютерной сети, создавая конкретный документ для последующей передачи его по сети. На транспортном уровне документ преобразуется таким образом, чтобы можно было быстро и надежно передать его по линиям связи. Сетевой уровень отвечает за выбор маршрута и доставку документа по конкретному адресу. На физическом уровне происходит реальная передача данных.
Для передачи информации в сети Internet используется связка протоколов TCP/IP.
ТСР/IР (Transmission Control Protocol/lnternet Protocol, протокол управления передачей/протокол Internet)- протокол (семейство протоколов), являющийся стандартом для передачи данных между сетями, в том числе в Internet.
Протокол TCP (протокол управления передачей) разбивает информацию на порции (пакеты) и нумерует их. Затем протокол IP (протокол Internet) добавляет к каждой порции служебную информацию с адресами отправителя и получателя и обеспечивает доставку всех пакетов.
Благодаря такому способу передачи информации, в Internet нет необходимости устанавливать отдельный канал связи между двумя компьютерами. Каждый компьютер может одновременно принимать пакеты от большого количества других компьютеров.
TCP/IP является основным протоколом сети Internet, поэтому для работы в глобальной сети операционная система, установленная на пользовательском компьютере, должна обеспечивать поддержку указанного протокола. Операционная система Windows содержит средства установки и настройки сетевого протокола ТСР/IР.
Для каждого из ресурсов Internet существует свой протокол. Протоколы ресурсов Internet называются прикладными протоколами; все они используют ТСР/IР в качестве протокола транспортного/сетевого уровня. В таблице 1 представлены основные службы Internet и соответствующие прикладные протоколы.
Таблица 1 – Службы Internet и прикладные протоколы
Служба | Прикладной протокол |
WWW | HTTP |
SMTP, POPS, IMAP | |
Группы новостей | NNTP |
FTP | FTP |
Протоколы TCP/IP относятся к сетевому и транспортному уровням соответственно. IP обеспечивает продвижение пакета по составной сети, a TCP гарантирует надежность его доставки.
IP (Internet Protocol - межсетевой протокол) - обеспечивает транспортировку пакетов данных с одного компьютера на другой;
ICMP (Internet Control Message Protocol - протокол управляющих сообщений в сети Internet) - отвечает за различные виды низкоуровневой поддержки протокола IP, включая сообщения об ошибках, вспомогательные маршрутизирующие запросы и подтверждения о получении сообщений;
ARP (Address Resolution Protocol - протокол преобразования адресов) - выполняет трансляцию IP-адресов в аппаратные МАС-адреса;
UDP (User Datagram Protocol - протокол передачи дейтаграмм пользователя) и TCP (Transmission Control Protocol - протокол управления передачей) - обеспечивают доставку данных конкретным приложениям на указанном компьютере. Протокол UDP реализует передачу отдельных сообщений без подтверждения доставки, тогда как TCP гарантирует надёжный полнодуплексный канал связи между процессами на двух разных компьютерах с возможностью управления потоком и контроля ошибок.
На сегодняшний день протоколы TCP/IP представляет собой один из самых распространенных транспортных протоколов вычислительных сетей. Действительно, только в сети Internet объединено около 10 миллионов компьютеров по всему миру, которые взаимодействуют друг с другом с помощью протоколов TCP/IP.
Протоколы TCP/IP неразрывно связаны с Internet и каждый из многомиллионной армады компьютеров Internet работает на основе этого стека, существует большое количество локальных, корпоративных и территориальных сетей, непосредственно не являющихся частями Internet, в которых также используют протоколы TCP/IP. Чтобы отличать их от Internet эти сети называют сетями TCP/IP или просто IP-сетями.
Поскольку протоколы TCP/IP изначально создавались для глобальной сети Internet, они имеют много особенностей, дающих преимущество перед другими протоколами, когда речь заходит о построении сетей, включающих глобальные связи. В частности, очень полезным свойством, делающим возможным применение этих протоколов в больших сетях, является его способность фрагментировать пакеты. Действительно, большая составная сеть часто состоит из сетей, построенных на совершенно разных принципах. В каждой из этих сетей может быть установлена собственная величина максимальной длины единицы передаваемых данных (кадра). В таком случае при переходе из одной сети, имеющей большую максимальную длину, в сеть с меньшей максимальной длиной может возникнуть необходимость деления передаваемого кадра на несколько частей. Протокол IP стека TCP/IP эффективно решает эту задачу.
Другой особенностью технологии TCP/IP является гибкая система адресации, позволяющая более просто по сравнению с другими протоколами аналогичного назначения включать в интерсеть сети других технологий. Это свойство также способствует применению стека TCP/IP для построения больших гетерогенных сетей.
В протоколах TCP/IP очень экономно используются возможности широковещательных рассылок. Это свойство совершенно необходимо при работе на медленных каналах связи, характерных для территориальных сетей.
Стек протоколов TCP/IP имеет четыре основных уровня, поэтому часто говорят, что TCP/IP — это четырехуровневый стек протоколов. Стек протоколов (protocol stack) - это комбинация протоколов. Внизу стека расположен интерфейсный уровень, посредством которого происходит связь с аппаратурой. За ним следует уровень IP, поверх которого построены транспортные протоколы TCP и UDP. На вершине стека находится уровень приложений, таких как ftp, telnet и т. д. При отсылке пакета данных, IP, как и все протоколы без соединения, послав пакет, тут же «забывает» о нем. При приеме пакетов с верхних уровней стека, этот протокол обертывает их в IP-пакет и передает необходимому аппаратному обеспечению для отправки в сеть. Однако именно в такой простоте и заключается основное достоинство протокола IP. Дело в том, что поскольку IP является простым протоколом, он никак не связан со структурой физической среды, по которым передаются данные. Для протокола IP главное, что эта физическая среда в принципе способна к передаче пакетов. Поэтому IP работает как в локальных, так и в глобальных сетях, как в синхронном, так и в асинхронном режиме передачи данных, как в обычных линиях связи, так и беспроводных и т. д. А поскольку протокол IP является фундаментом четырехуровнего стека протоколов, то все семейство протоколов TCP/IP также может функционировать в любой сети с любым режимом передачи пакетов.
На сетевом уровне в семействе протоколов TCP/IP предусмотрено два обширных класса служб, которые используются во всех приложениях.
‒ служба доставки пакетов, не требующая установки соединения;
‒ надёжная потоковая транспортная служба.
Различие между службами, требующими установления надёжного соединения и службами, не требующими этого, является одним из самых основных вопросов сетевого программирования. Первое, на что следует обратить внимание, это то, что когда мы говорим об установлении соединения, то имеется в виду не соединение между компьютерами посредством физического носителя, а о способе передачи данных по этому носителю. Основное различие состоит в том, что службы, в которых устанавливается надёжное соединение, сохраняют информацию о состоянии и таким образом отслеживают информацию о передаваемых пакетах. В службах же, не требующих надёжного соединения, пакеты передаются независимо друг от друга.
Данные передаются по сети в форме пакетов, имеющих максимальный размер, определяемый ограничениями канального уровня. Каждый пакет состоит из заголовка и полезного содержимого (сообщения). Заголовок включает сведения о том, откуда прибыл пакет и куда он направляется. Заголовок, кроме того, может содержать контрольную сумму, информацию, характерную для конкретного протокола, и другие инструкции, касающиеся обработки пакета. Полезное содержимое - это данные, подлежащие пересылке.
Имя базового блока передачи данных зависит от уровня протокола. На канальном уровне это кадр или фрейм, в протоколе IP - пакет, а в протоколе TCP - сегмент. Когда пакет передаётся вниз по стеку протоколов, готовясь к отправке, каждый протокол добавляет в него свой собственный заголовок. Законченный пакет одного протокола становится полезным содержимым пакета, генерируемого следующим протоколом. Определение
Пакеты, которые посылаются протоколом, не требующим соединения, называются дейтаграммами. Каждая дейтаграмма является уникальной в том смысле, что никак не зависит от других. Как правило, при работе с протоколами без установления соединения, диалог между клиентом и сервером предельно прост: клиент посылает одиночный запрос, а сервер на него отвечает. При этом каждый новый запрос — это новая транзакция, т. е. инициируемые клиентом запросы никак не связаны друг с другом с точки зрения протокола. Протоколы без установления соединения ненадежны в том смысле, что нет никаких гарантий, что отправленный пакет будет доставлен по месту назначения.
Протоколы, требующие установления логического соединения, сохраняют информацию о состоянии, что позволяет обеспечивать надежную доставку пересылаемых данных. Когда говорится о сохранении состояния, имеется ввиду то, что между отправителем и получателем происходит обмен информацией о ходе выполнения передачи данных. К примеру, отправитель, посылая данные, сохраняет информацию о том, какие данные он послал. После этого в течение определенного времени он ожидает информацию от получателя о доставке этих данных, и, если такая информация не поступает, данные пересылаются повторно.
Работа протокола с установлением соединения включает в себя три основные фазы:
-установление соединения;
-обмен данными;
-разрыв соединения.
Передача всех данных при работе с таким протоколом, в отличие от протокола без установления соединения, происходит за одну транзакцию, т. е. в фазе обмена данными не происходит обмена адресами между отправителем и получателем, поскольку эта информация передается на этапе установки соединения. Возвращаясь к телефонной аналогии, можно сказать, что нам в этом случае нет необходимости для того, чтобы сказать собеседнику очередное слово, вновь набирать его номер и устанавливать соединение. Заметим, что приводимая аналогия имеет одну неточность. Дело в том, что при телефонном разговоре все же устанавливается физическое соединение. Когда же мы говорим о соединении с точки зрения протоколов, то это соединение, скорее, умозрительное. К примеру, если вдруг при телефонном разговоре, неожиданно сломается телефонный аппарат вашего собеседника, вы тут же узнаете об этом, поскольку разговор незамедлительно прервется. А вот если происходит обмен данными между двумя хостами и один из них вдруг аварийно остановится, то для его «хоста-собеседника» соединение по-прежнему будет существовать, поскольку для него не произошло ничего такого, что сделало бы недействительной хранящуюся у него информацию о состоянии.
Прикладные протоколы обеспечивают взаимодействие сети и пользователя обмен данными между ними. К наиболее популярным прикладным протоколам относятся: APPC(Advanced Program-to-Program Communication) — одноранговый SNA-протокол фирмы IBM, используемый в основном на AS/400®;
FTAM (File Transfer Access and Management) — протокол OSI доступа к файлам; Х.400 — протокол CCITT для международного обмена электронной почтой; Х.500 — протокол CCITT служб файлов и каталогов на нескольких системах; SMTP (Simple Mail Transfer Protocol) — протокол Интернета для обмена электронной почтой;
FTP (File Transfer Protocol) — протокол Интернета для передачи файлов; SNMP (Simple Network Management Protocol) — протокол Интернета для мониторинга сети и сетевых компонентов;
Telnet — протокол Интернета для регистрации на удаленных хостах и обработки данных на них;
Microsoft SMBs (Server Message Blocks, блоки сообщений сервера) и клиентские оболочки или редиректоры;
NCP (Novell NetWare Core Protocol) и клиентские оболочки или редиректоры фирмы Novell;
Apple Talk и Apple Share® — набор сетевых протоколов фирмы Apple; AFP (AppleTalk Filling Protocol) — протокол удаленного доступа к файлам фирмы Apple; DAP (Data Access Protocol) — протокол доступа к файлам сетей DECnet.
Протоколы и службы Internet можно использовать и в рамках локальной сети. В этом случае такая сеть имеет название intranet (интрасеть).
Intranet (интрасеть)- локальная сеть, в которой для передачи информации используются средства, программное обеспечение и протоколы Internet.
Для объединения нескольких локальных сетей, работающих по разным протоколам, используют специальные средства - шлюзы.
Шлюз- специальные средства (аппаратные или программные) для связи между собой локальных сетей, работающих по разным протоколам.
При любом виде соединения чрезвычайно важным фактором является безопасность. Internet используют сотни миллионов людей и не все они настроены позитивно. Поэтому для обеспечения сетевой безопасности между локальной и глобальной сетью устанавливают специальную систему защиты - брандмауэр.
Брандмауэр- комплекс аппаратных и программных средств, препятствующий несанкционированному перемещению данных между сетями.
Брандмауэр ограничивает доступ к ресурсам локальной сети извне, контролирует входящий и исходящий трафик (информацию, передаваемую за определенный промежуток времени), распознает пользователей и регистрирует информацию о трафике.
В состав брандмауэра, как правило, входит специальный компонент, управляющий потоками информации, под названием прокси-сервер.
Прокси-сервер- компонент брандмауэра, управляющий потоком информации, исходящим из локальной сети и входящим в нее.
Прокси-сервер, кроме ограничения доступа к ресурсам локальной сети извне, может выполнять функцию кэширования (сохранения в специальном месте на диске запрашиваемой информации с целью ускорения доступа к ней при повторном ее запросе клиентами локальной сети).