Все о tcp ip. Что такое протокол TCP-IP

13.10.06 5.6K

Большинство из нас знает TCP/IP как "клей", связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое TCP/IP в действительности?

TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.

Понимание TCP/IP главным образом подразумевает способность разбираться в наборах таинственных протоколов, которые используются главными компьютерами TCP/IP для обмена информацией. Давайте рассмотрим некоторые из этих протоколов и выясним, что составляет оболочку TCP/IP.

Основы 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 с расшифровкой аббревиатур
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 — "ненадежный" протокол, поскольку отправитель не получает информацию, показывающую, была ли в действительности принята дейтаграмма.

Архитектура TCP/IP

Проектировщики вычислительных сетей часто используют семиуровневую модель ISO/OSI (International Standards Organization/Open Systems Interconnect, Международная организация по стандартизации/ Взаимодействие открытых систем), которая описывает архитектуру сетей. Каждый уровень в этой модели соответствует одному уровню функциональных возможностей сети. В самом основании располагается физический уровень, представляющий физическую среду, по которой "путешествуют" данные, — другими словами, кабельную систему вычислительной сети. Над ним имеется канальный уровень, или уровень звена данных, функционирование которого обеспечивается сетевыми интерфейсными платами. На самом верху размещается уровень прикладных программ, где работают программы, использующие служебные функции сетей.

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

Уровни сетей и протоколы TCP/IP

ISO/OSI TCP/IP _____________________________ __________________________ | Уровень прикладных программ | | | |_____________________________| | _________ _________ | _____________________________ | |Сетевая | |Сетевая | | Уровень | Уровень представления | | |программа| |программа| | прикладных |_____________________________| | |_________| |_________| | программ _____________________________ | | | Уровень сеанса | | | |_____________________________| |__________________________| | | _____________________________ _____|_____________|______ | Транспортный уровень | | TCP UDP | Транспортный |_____________________________| |_____|_____________|______| уровень | | _____________________________ _____|_____________|______ | Сетевой уровень | | | | | Сетевой |_____________________________| | ----> IP <--- | уровень |__________________________| _________ _____________________________ _______| Сетевая |________ | Уровень звена данных | | ARP<->| плата |<->RARP | Уровень |_____________________________| |_______|_________|________| звена | данных _____________________________ | | Физический уровень | _____________|______________ Физический |_____________________________| Кабельные соединения сети уровень

В левой части этой диаграммы показаны уровни модели ISO/OSI. Правая часть диаграммы иллюстрирует корреляцию 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 можно было бы рассказать много больше, но есть три ключевых момента:

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

Хорошо Плохо

Основное, что отличает Интернет от других сетей - это ее протоколы — TCP/IP . Вообще, термин TCP/IP обычно означает все, что связано с протоколами взаимодействия между компьютерами в Интернете. Он охватывает целое семейство протоколов, прикладные программы, и даже саму сеть. TCP/IP - это технология межсетевого взаимодействия. Сеть, которая использует технологию TCP/IP, называется «internet» . Если речь идет о глобальной сети, объединяющей множество сетей с технологией TCP/IP, то ее называют Интернет.

Свое название протокол TCP/IP получил от двух коммуникационных протоколов (или протоколов связи). Это Transmission Control Protocol (TCP) и Internet Protocol (IP). Несмотря на то, что в сети Интернет используется большое число других протоколов, сеть Интернет часто называют ТСР/1Р-сетью , так как эти два протокола, безусловно, являются важнейшими.

Протокол IP (Internet Protocol) заведует непосредственной передачей информации по сети. Вся информация разбивается на части - пакеты и пересылается от отправителя получателю. Для того чтобы точно адресовать пакет, необходимо задать четкие координаты получателя или его адрес.

Адрес в Интернете состоит из 4 байт. При записи байты отделяются друг от друга точками: 123.45.67.89 или 3.33.33.3. В действительности адрес состоит из нескольких частей. Так как Интернет есть сеть сетей, начало адреса говорит узлам Интернета, частью какой из сетей является адрес. Правый конец адреса говорит этой сети, какой компьютер или хост должен получить пакет. Каждый компьютер в Интернете имеет в этой схеме уникальный адрес.

Числовой адрес компьютера в Интернете аналогичен почтовому индексу отделения связи. Существует несколько типов адресов Интернета (типы: А, В, С, D, Е), которые по-разному делят адрес на поля номера сети и номера узла, от типа такого деления зависит количество возможных сетей и машин в таких сетях.

Из-за ограничений оборудования информация, пересылаемая по сетям IP, делится на части (по границам байтов), раскладываемые в отдельные пакеты . Длина информации внутри пакета обычно составляет от 1 до 1500 байт. Это защищает сеть от монополизирования каким-либо пользователем и предоставляет всем примерно равные права. По этой же причине, если сеть недостаточно быстра, чем больше пользователей ее одновременно использует, тем медленнее она будет общаться с каждым.

Одно из достоинств Интернета состоит в том, что протокола IP самого по себе уже вполне достаточно для работы. Однако этот протокол имеет и ряд недостатков:

  • - большая часть пересылаемой информации длиннее 1500 символов, поэтому ее приходится разбивать на несколько пакетов;
  • - некоторые пакеты могут теряться в пути следования;
  • - пакеты могут приходить в последовательности, отличной от начальной.

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

Протокол управления передачей (TCP, Transmission Control Protocol) - это протокол, тесно связанный с IP, который используется в аналогичных целях, но на более высоком уровне. Протокол TCP занимается проблемой пересылки больших объемов информации, основываясь на возможностях протокола IP.

TCP делит информацию, которую надо переслать, на несколько частей и нумерует каждую часть, чтобы позже восстановить порядок. Чтобы пересылать эту нумерацию вместе с данными, он обкладывает каждый кусочек информации своей обложкой - TCP-конвертом, который содержит соответствующую информацию.

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

Поскольку семейство протоколов TCP/IP является основой построения Интернета, рассмотрим эти протоколы более подробно.

В пределах каждой физической компьютерной сети подсоединенные к ней компьютеры используют ту или иную сетевую технологию: Ethernet, Token Ring, FDDI, ISDN, соединение типа «точка-точка», а в последнее время к этому списку добавились сеть АТМ и беспроводные технологии. Между механизмами коммуникаций, зависящими от данных физических сетей, и прикладными системами встраивается программное обеспечение, которое делает возможным соединение различных физических сетей друг с другом. При этом детали подобного соединения «скрыты» от пользователей, которым предоставляется возможность работать как бы в одной большой физической сети.

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

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

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

С точки зрения конечных пользователей, Интернет представляет собой единую виртуальную сеть, к которой подсоединены все компьютеры - независимо от их реальных физических соединений.

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

Семейство протоколов ТСР/IP позволяет построить универсальную сеть, осуществляющую указанные выше принципы. Оно включает в себя протоколы 4-х уровней коммуникаций (рис. 2.2).

Рис. 2.2. Уровни стека протоколов TCP/IP

Уровень сетевого интерфейса отвечает за установление сетевого соединения в конкретной физической сети. На этом уровне работают драйвер устройства в операционной системе и соответствующая сетевая плата компьютера.

Сетевой уровень - основа ТСР/IP. Именно на этом уровне реализуется принцип межсетевого соединения, в частности маршрутизация пакетов через Интернет. На сетевом уровне протокол реализует ненадежную службу доставки пакетов по сети от системы к системе без установления соединения (connectionless packet delivery service). Это означает, что будет выполнено все необходимое для доставки пакетов, однако эта доставка не гарантируется. Пакеты могут быть потеряны, переданы в неправильном порядке, продублированы и т. д. Служба, работающая без установления соединения, обрабатывает пакеты независимо друг от друга. Но главное, что именно на этом уровне принимается решение о маршрутизации пакета по межсетевым соединениям.

Надежную передачу данных реализует следующий, транспортный уровень, на котором два основных протокола, TCP и UDP, осуществляют связь между машиной - отправителем пакетов и машиной - адресатом пакетов.

Наконец, прикладной уровень - это приложения типа клиент-сервер, базирующиеся на протоколах нижних уровней. В отличие от протоколов остальных трех уровней, протоколы прикладного уровня занимаются деталями конкретного приложения и для них обычно не важны способы передачи данных по сети. Среди основных приложений ТСР/IP, имеющихся практически в каждой его реализации, - протокол эмуляции терминала Telnet, протокол передачи файлов FTP, протокол электронной почты SMTP, протокол управления сетью SNMP, используемый в системе World Wide Web протокол передачи гипертекста НТТР и др.

На рис. 2.3 показано, как осуществляется взаимодействие двух компьютеров из разных сетей с использованием стека протоколов TCP/IP. Программное обеспечение IP-протокола с помощью маршрутизатора передает пакеты из одной сети Ethernet в другую. Протоколы верхних уровней, прикладного и транспортного, осуществляют соединения между компьютерами, клиентом и сервером приложения, в то время как IP обеспечивает связь между конечной и промежуточной системами.

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

Поскольку в Интернете детали физических соединений скрыты от приложений, прикладной уровень совершенно «не заботится» о том, что клиент и сервер приложения работают в разных сетях, и что в качестве канального протокола в обеих сетях используется протокол Ethernet. Между конечными системами может быть несколько десятков маршрутизаторов и множество промежуточных физических сетей различных типов. Приложение в любом случае будет воспринимать этот конгломерат как единую физическую сеть. Это обуславливает основную силу и привлекательность технологии Интернета.

Коммуникационная система считается универсальной, если при помощи нее два любых компьютера могут взаимодействовать друг с другом. Для того чтобы добиться такой универсальности, необходимо установить глобальный метод идентификации компьютеров в распределенной системе для доступа к ним. В TCP/IP выбрана схема идентификации, аналогичная адресации в физических сетях. Каждому сетевому интерфейсу присваивается уникальный 32-битный адрес (IP-адрес). IP-адрес компьютера имеет определенную структуру. Она задает идентификатор сети, к которой подсоединен компьютер, и уникальный идентификатор самого компьютера. На рис. 2.4 показаны различные классы IP-адресов.

Рис. 2.4. Классы IP-адресов

Для 32-битных IP-адресов принята десятичная нотация, в которой каждый из четырех байтов адреса записывается десятичным числом. Адреса класса С, например, охватывают диапазон от 192.0.0.0 до 223.255.255.255. Структура адресов различных классов делает достаточно очевидным их применение. Адреса класса С, в которых 21 бит отводится для идентификатора сети и только 8 бит для идентификатора оконечного узла сети (хоста), присваиваются компьютерам локальных сетей небольших организаций, которые объединяют до 255 машин. Более крупные организации могут получить адреса класса В, которые способны обслужить до 256 сетей, в состав которых входит до 64 тысяч рабочих станций. И наконец, адреса класса А присваиваются компьютерам, подключенным к ограниченному числу глобальных сетей очень большого масштаба, например, в Arpanet.

Компьютеры, подсоединенные к нескольким физическим сетям (multihomed), имеют несколько IP-адресов - по одному для каждого сетевого интерфейса. Соответственно, эти IP-адреса различаются своими сетевыми идентификаторами. Таким образом, адрес характеризует не отдельную машину, а ее сетевое соединение.

Помимо адресов, предназначенных для одного хоста (unicast), существуют также широковещательные (broadcast) и групповые (multicast) адреса.

Уникальный IP-адрес присваивается каждому сетевому интерфейсу. Назначение идентификаторов хостов обычно находится в ведении системного администратора или поставщика услуг Интернета, а выделение адресов сетям, объединенным в мировую Сеть, в юрисдикции специальной организации - InterNIC (Internet Network Information Center Internet).

В связи с бурным ростом Интернета 32-битная схема адресации нынешней версии IP - IPv4, уже не удовлетворяет потребности мировой Сети. Новая версия, IPv6, проект которой был обнародован в 1991 г., призвана решить эти проблемы. IPv6 обеспечит 128-битный формат IP-адреса и будет поддерживать автоматическое назначение адресов.

TCP/IP предоставляет пользователям возможность работать не только с адресами компьютеров, но и с их именами. Это обеспечивается при помощи распределенной базы данных - доменной системы имен (Domain Name System, DNS), которая обеспечивает отображение IP-адресов в имена хостов. Эта база данных является распределенной, поскольку ни один объект в Интернете не обладает всей информацией об именах компьютеров. Каждый объект поддерживает свою базу данных и имеет серверную программу, к которой могут обращаться другие системы (клиенты) в сети.

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

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

Контролем использования TCP/IP, определением основных направлений развития, разработкой и утверждением стандартов сегодня занимается несколько организаций. Основной из них является ISOC (Internet Society) - профессиональное сообщество, которое занимается общими вопросами эволюции и роста Интернета как глобальной инфраструктуры исследовательских коммуникаций.

Под управлением ISOC действует IAB (Internet Architecture Board) - организация, в ведении которой находится технический контроль и координация Интернета. IAB координирует направления исследований и новых разработок для TCP/IP и является конечной инстанцией при определении новых стандартов для Интернета.

В IAB входят две основные группы: IETF (Internet Engineering Task Force) и IRTF (Internet Research Task Force). IETF - инженерная группа, которая занимается решением ближайших технических проблем Интернета. Она делится на девять подгрупп в соответствии с основными областями (приложения, маршрутизация и адресация, защита информации и т. д.) и определяет спецификации, которые затем становятся стандартами Интернета. В частности, протоколы IPv6 и DHCP являются плодом усилий IETF. В свою очередь, IRTF координирует долгосрочные исследовательские проекты по протоколам TCP/IP и технологии Интернета в целом.

Разнообразная документация, связанная с Интернетом, предложения по стандартам и сами официальные стандарты протоколов TCP/IP публикуются в серии технических сообщений Internet Request for Comments, или RFC. RFC могут быть короткими или длинными, излагать глобальные концепции или описывать детали того или иного проекта, формулировать официальный стандарт или давать предложения по новым протоколам.

Если вкратце, то это набор правил, которые регулируют «общение» компьютеров между собой по сети. Их существует около десятка, и каждый из них определяет правила передачи отдельного типа данных. Но для удобства в обращении их все объединяют в так называемый «стек», называя его именем самого важного протокола - протокола TCP/IP (Transmission Control Protocol и Internet Protocol). Слово ­­«стек» подразумевает, что все эти протоколы представляют собой как бы «стопку протоколов», в которой протокол верхнего уровня не может функционировать без протокола нижнего уровня.

Стек TCP/IP включает 4 уровня:

1. Прикладной - протоколы HTTP, RTP, FTP, DNS. Самый верхний уровень; отвечает за работу прикладных приложений, например почтовых сервисов, отображение данных в браузере и прочее.

2. Транспортный - протоколы TCP, UDP, SCTP, DCCP, RIP. Данный уровень протоколов обеспечивает правильное взаимодействие компьютеров между собой и является проводником данных между разными участниками сети.

3. Сетевой - протокол IP. Этот уровень обеспечивает идентификацию компьютеров в сети, раздавая каждому из них уникальный цифровой адрес.

4. Канальный - протоколы Ethernet, IEEE 802.11, Wireless Ethernet. Самый низкий уровень; он взаимодействует с физическим оборудованием, описывает среду передачи даннных и ее характеристики.

Следовательно, для отображения этой статьи ваш компьютер использует стек протоколов «HTTP - TCP - IP - Ethernet».

Как передается информация по интернету

Каждый компьютер в сети называется хостом и с помощью одноименного протокола получает уникальный IP-адрес. Этот адрес записывается в следующей форме: четыре числа от 0 до 255, разделенных точкой, например, 195.19.20.203. Для успешного обмена информацией по сети IP-адрес также должен включать номер порта. Поскольку информацией обмениваются не сами компьютеры, а программы, каждый тип программы должен также иметь собственный адрес, который и отображается в номере порта. Например, порт 21 отвечает за работу FTP, порт 80 - за работу HTTP. Общее количество портов у компьютера ограничено и равно 65536 с нумерацией от 0 до 65535. Номера портов от 0 до 1023 зарезервированы серверными приложениями, а нишу портов с 1024 по 65535 занимают клиентские порты, которыми программы вольны распоряжаться как угодно. «Клиентские порты» назначаются динамически.

Комбинация IP-адреса и номера порта называется «сокет» . В нем значения адреса и порта разделяются двоеточием, например, 195.19.20.203:110

Таким образом, чтобы удаленный компьютер с IP 195.19.20.203 получил электронную почту, нужно всего лишь доставить данные на его порт 110. А, поскольку, этот порт денно и нощно «слушает» протокол POP3 , который отвечает за прием электронных писем, значит дальнейшее — «дело техники».

Все данные по сети для удобства разбиваются на пакеты. Пакет - это файл размером 1-1,5 Мб, который содержит адресные данные отправителя и получателя, передаваемую информацию, плюс служебные данные. Разбиение файлов на пакеты позволяет намного снизить нагрузку на сеть, т.к. путь каждого из них от отправителя к получателю не обязательно будет идентичным. Если в одном месте в сети образуется «пробка», пакеты смогут ее оминуть, используя другие пути сообщения. Такая технология позволяет максимально эффективно использовать интернет: если какая-то транспортная часть его обрушится, информация сможет и дальше передаваться, но уже по другим путям. Когда пакеты достигают целевой компьютер, он начинает собирать их обратно в цельный файл, используя служебную информацию, которую они содержат. Весь процесс можно сравнить с неким большим паззлом, который, в зависимости от размеров передаваемого файла, может достигать воистину огромных размеров.

Как уже было сказано ранее, IP-протокол выдает каждому участнику сети, в том числе, сайтам уникальный числовой адрес. Однако запомнить миллионы IP-адресов никакому человеку не под силу! Поэтому был создан сервис доменных имен DNS (Domain Name System), который занимается тем, что переводит цифровые IP-адреса в буквенно-цифровые имена, которые гораздо легче запомнить. Например, вместо того, чтобы набирать каждый раз ужасное число 5.9.205.233, можно набрать в адресной строке браузера www.сайт.

Что же происходит, когда мы набираем в браузере адрес искомого сайта? С нашего компьютера отправляется пакет с запросом DNS-серверу на порт 53. Этот порт зарезервирован службой DNS, которая, обработав наш запрос, возвращает IP-адрес, соответствующий буквенно-цифровому имени сайта. После этого наш компьютер соединяется с сокетом 5.9.205.233:80 компьютера 5.9.205.233, на котором расположен HTTP-протокол, отвечающий за отображение сайтов в браузере, и посылает пакет с запросом на получение страницы www.сайт. Нам нужно установить соединение именно на 80-й порт, поскольку именно он соответствует Веб-серверу. Можно, при большом желании, указать 80-й порт и прямо в адресной строке браузера — http://www.сайт:80. Веб-сервер обрабатывает полученный от нас запрос и выдает несколько пакетов, содержащих текст HTML, который отображает наш браузер. В результате мы видим на экране главную страницу

Стек TCP / IP .

Стек TCP/IP – это набор иерархически упорядоченных сетевых протоколов. Название стек получил по двум важнейшим протоколам – TCP (Transmission Control Protocol) и IP (Internet Protocol). Помимо них в стек входят ещё несколько десятков различных протоколов. В настоящее время протоколы TCP/IP являются основными для Интернета, а также для большинства корпоративных и локальных сетей.

В операционной системе Microsoft Windows Server 2003 стек TCP/IP выбран в качестве основного, хотя поддерживаются и другие протоколы (например, стек IPX/SPX, протокол NetBIOS).

Стек протоколов TCP/IP обладает двумя важными свойствами:

    платформонезависимостью, т. е. возможна его реализация на самых разных операционных системах и процессорах;

    открытостью, т. е. стандарты, по которым строится стек TCP/IP, доступны любому желающему.

История создания TCP / IP .

В 1967 году Агентство по перспективным исследовательским проектам министерства обороны США (ARPA – Advanced Research Projects Agency) инициировало разработку компьютерной сети, которая должна была связать ряд университетов и научно-исследовательских центров, выполнявших заказы Агентства. Проект получил название ARPANET. К 1972 году сеть соединяла 30 узлов.

В рамках проекта ARPANET были разработаны и в 1980–1981 годах опубликованы основные протоколы стека TCP/IP – IP, TCP и UDP. Важным фактором распространения TCP/IP стала реализация этого стека в операционной системе UNIX 4.2 BSD (1983).

К концу 80-х годов значительно расширившаяся сеть ARPANET стала называться Интернет (Interconnected networks – связанные сети) и объединяла университеты и научные центры США, Канады и Европы.

В 1992 году появился новый сервис Интернет – WWW (World Wide Web – всемирная паутина), основанный на протоколе HTTP. Во многом благодаря WWW Интернет, а с ним и протоколы TCP/IP, получил в 90-е годы бурное развитие.

В начале XXI века стек TCP/IP приобретает ведущую роль в средствах коммуникации не только глобальных, но и локальных сетей.

Модель OSI .

Модель взаимодействия открытых систем (OSI – Open Systems Interconnection) была разработана Международной организацией по стандартизации (ISO – International Organization for Standardization) для единообразного подхода к построению и объединению сетей. Разработка модели OSI началась в 1977 году и закончилась в 1984 году утверждением стандарта. С тех пор модель является эталонной для разработки, описания и сравнения различных стеков протоколов.

Рассмотрим кратко функции каждого уровня.


Модель OSI включает семь уровней: физический, канальный, сетевой, транспортный, сеансовый, представления и прикладной.

    Физический уровень (physical layer) описывает принципы передачи сигналов, скорость передачи, спецификации каналов связи. Уровень реализуется аппаратными средствами (сетевой адаптер, порт концентратора, сетевой кабель).

    Канальный уровень (data link layer) решает две основные задачи – проверяет доступность среды передачи (среда передачи чаще всего оказывается разделена между несколькими сетевыми узлами), а также обнаруживает и исправляет ошибки, возникающие в процессе передачи. Реализация уровня является программно-аппаратной (например, сетевой адаптер и его драйвер).

    Сетевой уровень (network layer) обеспечивает объединение сетей, работающих по разным протоколам канального и физического уровней, в составную сеть. При этом каждая из сетей, входящих в единую сеть, называется подсетью (subnet). На сетевом уровне приходится решать две основные задачи – маршрутизации (routing, выбор оптимального пути передачи сообщения) и адресации (addressing, каждый узел в составной сети должен иметь уникальное имя). Обычно функции сетевого уровня реализует специальное устройство – маршрутизатор (router) и его программное обеспечение.

    Транспортный уровень (transport layer) решает задачу надежной передачи сообщений в составной сети с помощью подтверждения доставки и повторной отправки пакетов. Этот уровень и все следующие реализуются программно.

    Сеансовый уровень (session layer) позволяет запоминать информацию о текущем состоянии сеанса связи и в случае разрыва соединения возобновлять сеанс с этого состояния.

    Уровень представления (presentation layer) обеспечивает преобразование передаваемой информации из одной кодировки в другую (например, из ASCII в EBCDIC).

    Прикладной уровень (application layer) реализует интерфейс между остальными уровнями модели и пользовательскими приложениями.

Структура TCP / IP . В основе структуры TCP/IP лежит не модель OSI, а собственная модель, называемая DARPA (Defense ARPA – новое название Агентства по перспективным исследовательским проектам) или DoD (Department of Defense – Министерство обороны США). В этой модели всего четыре уровня. Соответствие модели OSI модели DARPA, а также основным протоколам стека TCP/IP показано на рис. 2.2.

Следует заметить, что нижний уровень модели DARPA – уровень сетевых интерфейсов – строго говоря, не выполняет функции канального и физического уровней, а лишь обеспечивает связь (интерфейс) верхних уровней DARPA с технологиями сетей, входящих в составную сеть (например, Ethernet, FDDI, ATM).

Все протоколы, входящие в стек TCP/IP, стандартизованы в документах RFC.

Документы RFC .

Утвержденные официальные стандарты Интернета и TCP/IP публикуются в виде документов RFC (Request for Comments – рабочее предложение). Стандарты разрабатываются всем сообществом ISOC (Internet Society – Сообщество Интернет, международная общественная организация). Любой член ISOC может представить на рассмотрение документ для его публикации в RFC. Далее документ рассматривается техническими экспертами, группами разработчиков и редактором RFC и проходит в соответствии с RFC 2026 следующие этапы, называемые уровнями готовности (maturity levels):

    черновик (Internet Draft) – на этом этапе с документом знакомятся эксперты, вносятся дополнения и изменения;

    предложенный стандарт (Proposed Standard) – документу присваивается номер RFC, эксперты подтвердили жизнеспособность предлагаемых решений, документ считается перспективным, желательно, чтобы он был опробован на практике;

    черновой стандарт (Draft Standard) – документ становится черновым стандартом, если не менее двух независимых разработчиков реализовали и успешно применили предлагаемые спецификации. На этом этапе ещё допускаются незначительные исправления и усовершенствования;

    стандарт Интернета (Internet Standard) – наивысший этап утверждения стандарта, спецификации документа получили широкое распространение и хорошо зарекомендовали себя на практике. Список стандартов Интернета приведен в RFC 3700. Из тысяч RFC только несколько десятков являются документами в статусе «стандарт Интернета».

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

    экспериментальный (Experimental) – документ, содержащий сведения о научных исследованиях и разработках, которые могут заинтересовать членов ISOC;

    информационный (Informational) – документ, опубликованный для предоставления информации и не требующий одобрения сообщества ISOC;

    лучший современный опыт (Best Current Practice) – документ, предназначенный для передачи опыта конкретных разработок, например реализаций протоколов.

Статус указывается в заголовке документа RFC после слова Category (Категория). Для документов в статусе стандартов (Proposed Standard, Draft Standard, Internet Standard) указывается название Standards Track , так как уровень готовности может меняться.

Номера RFC присваиваются последовательно и никогда не выдаются повторно. Первоначальный вариант RFC никогда не обновляется. Обновленная версия публикуется под новым номером. Устаревший и замененный документ RFC получает статус исторический (Historic).

Все существующие на сегодня документы RFC можно посмотреть, например, на сайте www.rfc-editor.org . В августе 2007 года их насчитывалось более 5000. Документы RFC, упоминаемые в этом курсе, приведены в Приложении I.

Обзор основных протоколов.

Протокол IP (Internet Protocol ) – это основной протокол сетевого уровня, отвечающий за адресацию в составных сетях и передачу пакета между сетями. Протокол IP является дейтаграммным протоколом, т. е. не гарантирует доставку пакетов до узла назначения. Обеспечением гарантий занимается протокол транспортного уровня TCP.

Протоколы RIP (Routing Information Protocol протокол маршрутной информации) и OSPF (Open Shortest Path First – « первыми открываются кратчайшие маршруты») – протоколы маршрутизации в IP-сетях.

Протокол ICMP (Internet Control Message Protocol протокол управляющих сообщений в составных сетях) предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом-источником пакета. С помощью специальных пакетов сообщает о невозможности доставки пакета, о продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т. п.

Протокол ARP (Address Resolution Protocol – протокол преобразования адресов) преобразует IP-адреса в аппаратные адреса локальных сетей. Обратное преобразование осуществляется с помощью протокола RAPR (Reverse ARP).

TCP (Transmission Control Protocol – протокол управления передачей) обеспечивает надежную передачу сообщений между удаленными узлами сети за счет образования логических соединений. TCP позволяет без ошибок доставить сформированный на одном из компьютеров поток байт на любой другой компьютер, входящий в составную сеть. TCP делит поток байт на части – сегменты и передает их сетевому уровню. После того как эти сегменты будут доставлены в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.

UDP (User Datagram Protocol – протокол дейтаграмм пользователя) обеспечивает передачу данных дейтаграммным способом.

HTTP (HyperText Transfer Protocol – протокол передачи гипертекста) – протокол доставки web-документов, основной протокол службы WWW.

FTP (File Transfer Protocol – протокол передачи файлов) – протокол для пересылки информации, хранящейся в файлах.

POP 3 (Post Office Protocol version 3 – протокол почтового офиса) и SMTP (Simple Mail Transfer Protocol – простой протокол пересылки почты) – протоколы для доставки входящей электронной почты (POP3) и отправки исходящей (SMTP).

Telnet – протокол эмуляции терминала 1 , позволяющий пользователю подключаться к другим удалённым станциям и работать с ними со своей машины, как если бы она была их удалённым терминалом.

SNMP (Simple Network Management Protocol – простой протокол управления сетью) предназначен для диагностики работоспособности различных устройств сети.