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

Работа сети Internet основана на использовании семейства коммуникационных протоколов ТСР/IР,что расшифровывается как Transmission Control Protocol/Intemet Protocol (Протокол правления передачей Данных/Протокол Internet). TCP/IP используется для передачи данных как в глобальной сети Internet, так и во многих локальных сетях.
Разумеется, для работы с Internet в качестве пользователя не требуется никаких специальных знаний о протоколах TCP/IP, но понимание основных принципов поможет вам в решении возможных проблем общего характера, возникающих, в частности, при настройке системы электронной почты.
TCP/IP также тесно связан с двумя другими базовыми приложениями Internet: FTP и Telnet. Наконец, знание ряда основополагающих концепций Internet поможет вам в полной мере оценить степень сложности этой системы, подобно тому как представление о работе двигателя внутреннего сгорания помогает проникнуться уважением к устройству автомобиля.
TCP/IP - достаточно сложная и обширная тема, которой посвящено множество справочников и объемных статей. В этом разделе рассматриваются лишь базовые концепции, а технические подробности не описываются.

Что такое TCP/IP

TCP/IP - это название семейства протоколов передачи данных в сети. Протокол - это набор правил, которых должны придерживаться все компании, чтобы обеспечить совместимость производимого аппаратного и программного обеспечения. Эти правила гарантируют, что машина фирмы Digital Equipment, работающая с пакетом TCP/IP, сможет общаться с PC Compaq, также работающим с TCP/IP. При соблюдении определенных стандартов для функционирования всей системы нс имеет значения, кто является производителем программного обеспечения или аппаратных средств. Идеология открытых систем предполагает использование стандартных аппаратных средств и программного обеспечения. TCP/IP - открытый протокол, и это значит, что вся специальная информация о протоколе издана и может быть свободно использована.
Протокол определяет, каким образом одно приложение связывается с другим. Эта связь программного обеспечения подобна диалогу: "Я посылаю вам эту порцию информации, затем вы посылаете мне обратно то-то, потом я отправлю вам это. Вы должны сложить все биты и послать обратно общий результат, а если возникнут проблемы, вы должны послать мне соответствующее сообщение."Протокол определяет, как различные части полного пакета управляют передачей информации. Протокол показывает, содержит ли пакет сообщение электронной почты, статью телеконференции или служебное сообщение. Стандарты протокола сформулированы таким образом.что принимают во внимание возможные непредвиденные обстоятельства. Протокол также включает правила обработки ошибок.
Термин TCP/IP включает названия двух протоколов - Transmission Control Protocol (TCP) и Internet Protocol (IP). TCP/IP не является одной программой, как ошибочно полагают многие пользователи. Напротив, TCP/IP относится к целому семейству связанных между собой протоколов, разработанных для передачи информации по сети и одновременного обеспечения информацией о состоянии самой сети. TCP/IP является программным компонентом сети. Каждая часть семейства TCP/IP решает определенную задачу: отправление электронной почты, обеспечение удаленного обслуживания входа в систему, пересылку файлов, маршрутизацию сообщений или обработку сбоев в сети. Применение TCP/IP не ограничено глобальной сетью Internet. Это наиболее широко используемые во всем мире сетевые протоколы, применяемые как в крупных корпоративных сетях, так и в локальных сетях с небольшим числом компьютеров.
Как только что говорилось, TCP/IP - не один протокол, а их семейство. Почему иногда употребляют термин TCP/IP, хотя имеется в виду сервис, отличный от TCP или IP? Обычно общее название используют при обсуждении всего семейства сетевых протоколов. Однако некоторые пользователи, говоря о TCP/IP, имеют в виду лишь некоторые из протоколов семейства: они предполагают, что другая сторона в диалоге понимает, о чем конкретно идет речь. В действительности лучше называть каждый из сервисов своим именем, чтобы внести большую ясность в предмет разговора.

Компоненты TCP/IP

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

  • TCP (Transmission Control Protocol). Протокол, поддерживающий передачу данных, основанную на логическом соединении между посылающим и принимающим компьютерами.
  • UDP (User Datagram Protocol). Протокол, поддерживающий передачу данных без установления логического соединения. Это означает, что данные посылаются без предварительного установления соединения между компьютерами получателя и отправителя. Можно провести аналогию с отправлением почты по какому-то адресу, когда нет никакой гарантии, что это сообщение прибудет к адресату, если он вообще существует. , (Две машины соединены в том смысле, что обе подключены к Internet, но они не поддерживают связь между собой через логическое соединение.)
Протоколы маршрутизации обрабатывают адресацию данных и определяют наилучшие пути до адресата. Они также могут обеспечивать разбиение больших сообщений на несколько сообщений меньшей длины, которые затем последовательно передаются и компонуются в единое целое на компьютере-адресате.
  • IP (Internet Protocol). Обеспечивает фактическую передачу данных.
  • ICMP (Internet Control Message Protocol). Обрабатывает сообщения состояния для IP, например, ошибки и изменения в сетевых аппаратных средствах, которые влияют на маршрутизацию.
  • RIP (Routing Information Protocol). Один из нескольких протоколов, которые определяют наилучший маршрут доставки сообщения.
  • OSPF (Open Shortest Path First). Альтернативный протокол для определения маршрутов.
Поддержка сетевого адреса - это способ идентификации машины с уникальным номером и именем. (Более подробно об адресах см. ниже)
  • ARP (Address Resolution Protocol). Определяет уникальные числовые адреса машин в сети.
  • DNS (Domain Name System). Определяет числовые адреса по именам машин.
  • RARP (Revere Address Resolution Protocol). Определяет адреса машин в сети, но способом, обратным ARP.
Прикладные сервисы - это программы, которые пользователь (или компьютер) использует для получения доступа к различным услугам.
  • ВООТР (Boot Protocol) загружает сетевую машину, читая информацию для начальной загрузки с сервера.
  • FTP (File Transfer Protocol) передает файлы между компьютерами.
  • TELNET обеспечивает уличенный терминальный доступ к системе, т. с. пользователь одного компьютера может соединяться с другим компьютером и чувствоиать себя так, как будто он работает за клавиатурой удаленной машины.
Шлюзовые протоколы помогают передавать по сети сообщения о маршрутизации и информацию о состоянии сети, а также обрабатывать данные для локальных сетей.
  • EGP (Exterior Gateway Protocol) служит для передачи маршрутизационной информации для внешних сетей.
  • GGP (Gateway-to-Gateway Protocol) служит win передачи маршрутизационной информации между шлюзами.
  • IGP (Interior Gateway Protocol) служит для передам маршрутизационной информации для внутренних сетей.
Другие протоколы не относятся к категориям, упомянутым выше, но играют важную роль в сети.
  • NFS (Network File System) позволяет использовать каталоги и файлы удаленного компьютера так, как если бы они существовали на локальной машине.
  • NIS (Network Information Service) поддерживает в сети информацию о пользователях нескольких компьютеров, упрощая вход в систему и проверку паролей .
  • RPC (Remote Procedure Call) позволяет удаленным прикладным программам связываться друг с другом простым и эффективным способом.
  • SMTP (Simple Mail Transfer Protocol) - это протокол, который передает сообщения электронной почты между машинами.
  • SNMP (Simple Network Management Protocol) - протокол для администрирования, который посылает сообщения о состоянии сети и подключенных к ней устройств.
Все эти виды сервиса в совокупности составляют TCP/IP - мощное и эффективное семейство сетевых протоколов.
Мы не будем рассматривать все эти протоколы подробно, потому что технические подробности несущественны для конечного пользователя. Вместо этого мы кратко остановимся на некоторых важных аспектах протоколов TCP/IP. Если вы хотите больше узнать о TCP/IP, то обратитесь к специально посвященным этой теме книгам.

Краткая история TCP/IP и Internet

Internet, как уже говорилось ранее, не является единой сетью, а представляет собой совокупность многих сетей, поддерживающих связь путем использования общих протоколов. TCP/IP и Internet так тесно связаны, что архитектура TCP/IP-сетеИ часто называется Internet-apхитектурой. Internet появился на базе первой сети ARPANET (the Advanced Research Projects Agency"s network), которая была разработана, чтобы предоставить исследователям, работающим над военными проектами, возможность быстро общаться друг с другом. На начальном этапе сеть была разработана фирмой Bolt, Beranek и Newinan (BBN) - компанией, которая оказала сильное влияние на пути развития этой сети.
ARPANET начала функционировать в 1971 г. С самого начала сеть постоянно модернизировалась в соответствии с требованиями пользователей, предоставляя им все большее количество функциональных возможностей. Одним из важных требований была возможность передачи (файлов между компьютерами, что в конечном счете привело к разработке щютокола передачи файлов (FTP).
Другой важной потребностью была поддержка удаленного терминального доступа в систему, который позволил бы пользователю одной системы соединиться с другой машиной в сети и работать на ней, как на своей собственной. Для этого были созданы Telnet и login - две утилиты, реализующие удаленный терминальный доступ к системе.
С увеличением количества пользователей и ростом интенсивности использования сети уже подключенными пользователями существенно увеличился сетевой трафик. Вследствие этого стало очевидным, что не только сеть должна расширяться, но должен быть разработан улучшенный протокол связи. Протоколы TCP/IP были предложены в 1973 г. и приняты в стандартизованной версии в 1982 г. Одна из исследовательских лабораторий, работающих над программным обеспечением для сетей, находилась в Калифорнийском Университете в Беркли (University of California at Berkeley - UCB). Этот университет многие годы был центром разработки операционной системы UNIX и внес большой вклад в усовершенствование TCP/IP. В 1983 г. UCB выпустил версию системы UNIX, которая включала в себя TCP/IP как неотъемлемую часть операционной системы. TCP/IP стал очень популярным благодаря широкому использованию UNIX, особенно в сетях, соединенных с растущим ARPANET.
Когда TCP/IP стал достаточно развит, были поданы предложения в National Science Foundation, которые привели к открытию финансирования проекта создания Computer Science Network (Научной компьютерной сети) в качестве замены перегруженной ARPANET. В 1984 г. это привело к разделению сети на две. Одна сеть, названная MILNET, была выделена для военного ведомства. Другая часть ARPANET была отдана для проведения исследований и для иных невоенных применений.
Сеть ARPANET была преобразована, когда был утвержден проект создания сети для широкомасштабного доступа к суперкомпьютерам, реализация которого была поручена Office of Advanced Scientific Computing (OASC, Центр перспективных научных вычислений). OASC создал другую сеть - NSFNET, которая с использованием высокоскоростных телефонных каналов соединила шесть суперкомпьютеров, находящихся в разных частях страны. Другие сети присоединились к этой сети для совместного использования доступа к суперкомпьютерам и высокоскоростных каналов связи. NFSNET стал основной магистральной структурой (backbone) сети Internet. В 1990 г. Министерство обороны, которое создало сеть ARPANET, официально объявило об ее упразднении как выполнившей свои задачи и ныне устаревшей.

Числовой адрес компьютера

Каждая машина, которая подключена к Internet или любой другой TCP/IP-ссти, должна быть уникально идентифицирована. Без уникального идентификатора сеть не знает, как доставить сообщение для вашей машины. Если один и тот же идентификатор окажется у нескольких компьютеров, то сеть не сможет адресовать сообщение.
В Internet компьютеры сети идентифицируются путем назначения Internet-адреса или, более правильно, IP-адреса. IP-адреса всегда имеют длину 32 бита и состоят из четырех частей по 8 бит. Это значит, что каждая часть может принимать значение в пределах от 0 до 255. Четыре части объединяют в запись, в которой каждое восьмибитовое значение отделяется точкой. Например, 255.255.255.255 или 147.120.3.28 - это два IP-адреса. Когда речь идет о сетевом адресе, то обычно имеется в виду IP-адрес.
Если бы использовались все 32 бита в IP-адресе, то получилось бы свыше четырех миллиардов возможных адресов - более чем достаточно для будущего расширения Internet! Однако некоторые комбинации битов зарезервированы для специальных целей, что уменьшает число потенциальных адресов. Кроме того, 8-битные четверки сгруппированы специальными способами в зависимости от типа сети, так что фактическое число возможных адресов еще меньше.
IP-адреса назначаются не по принципу перечисления хостов в сети -1,2,3,.... На самом деле IP-адрес как бы состоит из двух частей: адреса сети и адреса хоста в этой сети. Благодаря такой структуре IP-адреса компьютеры в разных сетях могут иметь одинаковые номера. Поскольку адреса сетей различны, то компьютеры идентифицируются однозначно. Без такой схемы нумерация быстро становится очень неудобной.
IP-адреса выделяются в зависимости от размеров организации и типа ее деятельности. Если это небольшая организация, то скорее всего в ее сети немного компьютеров (и, следовательно, IP-адресов). Напротив, у большой корпорации могут быть тысячи компьютеров, объединенных в несколько соединенных между собой локальных сетей. Для обеспечения максимальной гибкости IP-адреса выделяются в зависимости от количества сетей и компьютеров в организации и разделяются на классы А, В и С. Еще существуют классы D и Е, но они используются для специфических целей.
Три класса IP-адресов позволяют распределять их в зависимости от размера сети организации. Так как 32 бита - допустимый полный размер IP-адреса, то классы разбивают четыре 8-битные части адреса на адрес сети и адрес хоста в зависимости от класса. Один или несколько битов зарезервированы в начале IP-адреса для идентификации класса.
Адрес сети класса А имеет только 7 бит для сетевого адреса и 24 бита для адреса хоста. Это позволяет идентифицировать более 16 миллионов различных хостов в одной подсети - более чем достаточно для самой большой организации. Конечно, может существовать только 128 (2 в седьмой степени) сетей класса А.
Адрес сети класса В имеет 14 бит для сетевого адреса и 16 бит для адреса хоста, что позволяет выделить большее количество сетей класса В, но с меньшим количеством хостов. Тем не менее 16 бит позволяют идентифицировать более 65000 хостов. И, наконец, IP-сети класса С могут иметь максимум 254 хоста, но таких сетей может быть очень много. Большинство сетей относятся к классам В или С, хотя решающее слово относительно назначения класса сети оставлено за Internet Network Information Center (InterNIC).
Тип класса, к которому относится сеть компании, можно узнать по первому числу IP-адреса. Существуют следующие правила для первого 8-битного числа:

  • Адреса класса А - числа между 0 и 127
  • Адреса класса В - числа между 128 и 191
  • Адреса класса С - числа между 192 и 223
Если IP-адрес вашей машины - 147.14.87.23, то вы знаете, что ваша машина находится в сети класса В, сетевой идентификатор - 147.14, а уникальный номер вашей машины в этой сети - 87.23. Если IP-адрес - 221.132.3.123, то машина находится в сети класса С с сетевым идентификатором 221.132.3 и идентификатором хоста 123.
Всякий раз, когда посылается сообщение какому-либо хост-компьютеру в Internet, IP-адрес используется для указания адреса отправителя и получателя. Конечно, вам не придется самому запоминать все IP-адреса, так как для этого существует специальный сервис TCP/IP, называемый Domain Name System (Доменная система имен).

Шлюзовые протоколы

Для быстрого и эффективного перенаправления датаграмм шлюзы должны знать, что происходит в сети. Помимо информации о маршрутизации сообщений, им необходима информация о параметрах подсетей, подключенных к более крупной сети, для корректировки маршрутов в случае сбоев в некоторых частях сети.
Существуют шлюзы двух типов: внутренние и внешние. Шлюзы, которые расположены в небольшой подсети, могут обеспечивать связь с более крупной корпоративной сетью. Такие шлюзы называются автономными или самодостаточными, потому что соединения между этими шлюзами являются постоянными и редко изменяются. Эти шлюзы поддерживают связь между собой с помощью внутреннего шлюзового протокола - IGP (Internal Gateway Protocol).
Большие сети, подобные Internet, не являются статическими по своей структуре. Настройки шлюзов постоянно меняются, поскольку происходят изменения в многочисленных мелких подсетях. Связь между такими шлюзами осуществляется через внешний шлюзовый протокол - EGP (Extenor Gateway Protocol).
Существует еще один шлюзовый протокол, о котором вы, может быть, слышали, называемый Gateway-to-Gateway Protocol, или GGP. Он используется между специальными шлюзами в магистральных каналах Internet. Такие шлюзы относятся ко всему Internet в целом и обес- печивают передачу трафика в скоростной магистральной части сети.

TCP и UDP

Как уже говорилось в начале этой главы при рассмотрении уровней протоколов, транспортый уровень архитектуры TCP/IP обеспечивает сервис доставки сообщений. В семейство TCP/IP входят два различных протокола, реализующие этот сервис: Transmission Control Protocol (TCP) и User Datagram ProtocolUser Datagram Protocol (UDP). Оба нашли широкое применение.
Различие между ними заключается в способе установления соединения между двумя компь- ютерами. TCP устанавливает непосредственное логическое соединение, т. е. компьютеры как бы соединяются напрямую и каждый из них знает о состоянии другого. UDP не пытается устанавливать такое соединение. Этот протокол просто добавляет к сформированному сообщению IP-адрес и отправляет его в сеть.
Очевидно, что TCP - более надежный метод связи, поскольку происходит подтверждение каждого принятого сообщения. С использованием UDP нет никакой гарантии, что сообщение будет действительно получено. Для подтверждения приема сообщения UDP использует схему, при которой машина адресата должна послать подтверждение о принятом сообщении, и если в течение некоторого промежутка времени такое подтверждение не будет получено отправителем, то передача сообщения повторяется.
Можно подумать, что все захотят использовать TCP для передачи сообщения, но на самом деле большинство полагается на UDP. Представьте, сколько соединений неоходимо установить со всеми машинами в сети - это гигантская цифра, и каждую секунду появляются новые и исчезают старые соединения. Использование UDP чрезвычайно упрощает сетевой трафик.
Каждый вид сервиса TCP/IP разработан так, что допускает использование или UDP, или TCP. Например, Telnet и FTP используют TCP, так как соединение должно постоянно существовать между двумя компьютерами. Другой способ передачи файлов - протокол, называемый Trivial FTP (TFTP, тривиальный FTP) использует UDP (см. "Тривиальный FTP" далее в этой главе).
Оба протокола (TCP и UDP) добавляют заголовок в начало сообщения, которое транспортный уровень получает от более высоких уровней. Содержание и структура заголовка TCP отличны от UDP, но оба содержат одну и ту же базовую информацию о том, кто послал пакет и кому, специальную информацию о типе сообщения и статистические данные.
И в заключение несколько слов о связанном с TCP/IP термином "датаграмма". Датагралма - это скомпонованное сообщение, переданное через все уровни в сеть. Когда говорят о TCP/IP, то правильнее использовать именно термин "датаграмма" вместо термина "сообщение".

TCP-порты и сокеты

Прикладные программы, которые используют TCP, должны иметь способ установления связи с определенным сервисом. Для этого введены номера портов, соответствующих каждому виду сервиса. Например, Telnet использует порт с номером 23. Номер порта определяет тип сервиса, запрашиваемого одной машиной у другой, поэтому когда одна машина посылает запрос на 23-й порт другой машины, ответ придет тоже на 23-й порт.
Не путайте порты TCP с портами на задней панели вашего компьютера. Последовательные порты машины, например, являются физическими, в то время как порты TCP - логические. При установлении соединения с компьютером может быть использован его физический порт (к нему может быть подключена линия передачи данных), но система потом назначит логический TCP-порт для каждого типа сервиса.
Номера портов могут быть переназначены администратором, но при изменении номера порта могут появиться проблемы. Большинство систем используют стандартные номера портов, список которых имеется в документации по TCP/IP. Обычные пользователи могут не знать, какой порт когда используется, но в этом нет никакой необходимости, так как все Windows-версии TCP/IP пакетов используют стандартные номера портов. Список наиболее часто используемых портов приведен ниже:

Каждая точка входа/выхода любого из TCP-уровней на каждой машине уникально идентифицируется парой чисел, вместе называемых номером сокета (socket number), который состоит из IP-адреса и номера порта. Компьютер может использовать номер сокета для связи с другим компьютером и сети, так как IP-адреса однозначно идентифицируют все компьютеры в сети.
Каждая машина в сети поддерживает небольшую таблицу, которая содержит описание использования всех портов. Она называется таблицей портов (port table). Когда устанавливается соединение, в таблицу портов заносится номер порта другой машины, поддерживающей соединение. Таким образом, обе машины, участвующие в соединении, будут иметь номера портов другой машины, что называется port bindings (связывание портов). Порт может быть одновременно использован для нескольких соединений - это называется мультиплексированием.

Протокол IP

Internet Protocol (IP) - основной протокол TCP/IP. Важно понимать, что хотя слово "Internet" встречается в имени протокола, это не ограничивает его использование. IP определяет протокол, а не соединение.
Internet Protocol не устанавливает логического соединения. Это значит, что IP не контролирует доставку сообщений конечному адресату. IP-адреса машины-отправителя и машины-получателя включаются в заголовок датаграммы и используются для передают датаграмм между шлюзами. При этом используется информация о маршрутизации, находящаяся на шлюзе и указывающая, куда передать датаграмму на каждом этапе.
Основной задачей IP является адресация датаграмм и их передача между компьютерами. Он анализирует информацию об адресате и использует ее для определения наилучшего маршрута. IP добавляет свой собственный заголовок к сообщению, полученному от более высоких уровней (TCP или UDP).
IP решает также другую задачу, связанную с разбиением длинных датаграмм на несколько частей меньшего размера и последующей сборкой в первоначальный вид в точке назначения. Большие датаграммы могут быть разбиты по ряду причин, включая ограничение размера IP-сообщений (приблизительно 64К). Обычно сеть не может непосредственно передать такое большое сообщение, требуя разрыва датаграммы на маленькие фрагменты по несколько килобайт.
Для описания этого процесса используются несколько специальных терминов:

  • Segmentation (сегментация) - процесс разбиения датаграммы на несколько меньших датаграмм.
  • Reassembly (компоновка) - процесс объединения маленьких датаграмм в первоначальную большую датаграмму.
  • Separation (разделение) - обратный конкатенации процесс разбиения целой датаграммы на несколько небольших сообщений для различных прикладных программ.
Все эти процессы IP выполняет незаметно для вас. Реализованы специальные алгоритмы проверки того, что сообщение восстановлено правильно и в первоначальном виде, и что все части большого сообщения получены правильно. Это обеспечивает информация в заголовке IP и ряд специальных счетчиков, которые IP использует, чтобы дождаться всех частей сообщения. Одна из проблем, связанных с такой разбивкой сообщений, состоит в том, что фрагментированное сообщение имеет меньшую вероятность доставки, чем нефрагментированное сообщение. Большинство прикладных программ стараются избегать фрагментации везде, где это возможно.

Протокол IСМР

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

Приложения TCP/IP

Теперь, когда вы знаете, как TCP, UDP и IP обеспечивают упаковку и передачу сообщений, мы можем познакомиться с протоколами семейства TCP/IP, которые непосредственно используются в прикладных программах. Одними из наиболее часто используемых протоколов являются Telnet и FTP. К числу основных прикладных протоколов относится также протокол Simple Mail Transfer Protocol (SMTP), применяемый для передачи сообщений электронной почты. И, наконец, существует набор утилит, называемых г-утилитами Беркли (Berkeley r-utilities) по имени университета, в котором они были разработаны.

Telnet

Протокол Telnet (от слов telecommurncation network - телекоммуникационная сеть) обеспечивает возможность входа в удаленную систему. Он позволяет пользователю одного компьютера зарегистрироваться на удаленном компьютере, расположенном в другой части сети. При этом пользователю кажется, что он работает за терминалом удаленного компьютера. Telnet может оказаться полезным, если вы, работая на медленном компьютере, хотите воспользоваться вычислительными ресурсами более мощной машины, а также если на удаленном компьютере имеется необходимое вам программное обеспечение.
До того, как был разработан Telnet, единственным способом доступа к ресурсам другого компьютера являлось непосредственное подключение через модем или через выделенные порты сети, которое наряду с простотой имело и ряд существенных ограничений.
Работу Telnet обеспечивает специальная программа (сервер), запущенная на компьютере, к которому вы подключаетесь, и обрабатывающая поступающие запросы. На вашем компьютере выполняется программа Telnet (Telnet-KAiiCHT), которая обращается к серверу. В процессе установления соединения компьютеры догопариваются о режиме эмуляции терминала в данном сеансе работы. По-сушеству, одна машина запрашивает у другой, какие (функции она поддерживает.
Для начала сеанса работы Telnet необходимо ввести доменное имя или IP-адрес удаленного компьютера. Применение доменного имени возмож"но только в том случае, когда система может преобразовать это имя в числовой IP-адрес, используя сервис DMS. После установления соединения уд:итснная система обычно запрашивает имя пользователя и пароль , хотя это зависит от типа операционной системы и программного обеспечения Telnet, установленных на удушенном компьютере.
Команды Telnet различаются в зависимости от используемого Tclnet-клиента, особенно при работе с графическим интерфейсом типа Windows. В большинстве случаев Tclnet-клиент создаст окно, работа в котором происходит в режиме командной строки.
После установления соединения ваш компьютер играет роль терминала удаленной машины. Все вводимые вами команды выполняются на удаленном компьютере. Для завершения сеанса работы следует ввести соответствующую команду (для UNIX-систем - обычно logout или +.
Находясь в режиме ввода команд для удаленной системы, вы можете персити в командный режим Telnet, используя, как правило, комбинацию клавиш +. В этом режиме вы управляете работой Tclnet-клиента, а не удаленного компьютера.

FTP

В отличие от Telnet, протокол FTP (File Transfer Protocol) предназначен не для работы на удаленном компьютере, а для передачи файлов между подключенными к сети компьютерами. Так же как и Telnet, сервис FTP основан на совместном использовании двух программ - программы-ссрвер, которая выполняется постоянно в фоновом режиме, и программы-клиент, которую вы должны запустить на своем компьютере, чтобы начать сеанс работы по протоколу FTP. Протокол FTP позволяет передавать фаилы как в текстовом, так п и двоичном формате.
Для установления FTP-соединения требуется ввести доменное имя или числовой IP-адрес компьютера, на котором работает программа-сервер.
После установления соединения с удаленным компьютером, как правило, требуется зарегистрироваться на нем. (Некоторые FTP-серверы поддерживают так называемый анонимный доступ, позволяющий всем пользователям свободно копировать хранящиеся там файлы.) Зарегистрировавшись на удаленном компьютере, вы тем не менее продолжаете работать на своем компьютере, отправляя на удаленную машину только команды для просмотра каталогов и передачи файлов. В этом заключается существенное отличие FTP от Telnet, поскольку используя Telnet, вы по-существу работаете на удаленном компьютере.
Большинство FTP-клиентов предназначены для работы в режиме командной строки. Однако FTP-клиенты для Windows предоставляют пользователю графический интерфейс, позволяющий обойтись без ввода команд в режиме командной строки. Все действия выполняются с помощью мента, диалоговых окон и графических кнопок. Поэтому соединение с удаленным компьютером, просмотр каталогов и передача файлов требуют лишь выбора соответствующих пунктов меню и кнопок.
В общем случае работа с FTP-сервером требует ввода идентификатора пользователя и пароля , но многие системы предоставляют возможность свободного копирования находящихся на них файлов всеми пользователями Internet. Такой сервис называют анонимным FTP. Для работы с анонимным FTP не требуется быть зарегистрированным пользователем системы, а достаточно ввести в качестве имени пользователя (login name) "anonymous". При этом пароль либо вообще не вводится, либо в качестве пароля можно ввести слово "guest" (гость), или ваше настоящее имя, или ваш адрес электронной почты.

Тривиальный FTP

Trivial File Transfer Protocol (TFTP, Тривиальный протокол передачи файлов) - это один из простейших протоколов, используемых для передаём файлов. Он отличается от FTP тем, что для передачи файлов не требуется регистрации на удаленном компьютере. Пользователь просто вводит запрос на передачу файла, указывая имя удаленного компьютера. При этом TFTP формирует UDP-сообщения, которые отправляются на удаленную машину и с помощью которых происходит передача файла. По окончанию передачи некоторые версии TFTP отправ- ляют соответствующее уведомление пользователю. Заметим, что многие версии программного обеспечения TCP/IP для Windows не предусматривают поддержку TFTP.

SMTP

Simple Mail Transfer Protocol (SMTP, Простой протокол передачи почты) поддерживает работу электронной почты в Internet и в других сетях. Поскольку способы передачи сообщении электронной почты различаются в разных операционных системах, во многих локальных сетях протокол SMTP не применяется, но он используется для передачи почты в Internet.
Internet (а также большая часть крупных корпоративных сетей) построен на основе UNIX-систем, в которых SMTP принят в качестве стандартного протокола передачи почты. В UNIX-системах SMTP поддерживается с помощью программы, называемой sendmail. Пользователи не взаимодействуют непосредственно с sendmail, а используют различные прикладные программы работы с электронной почтой. Эти программы, в свою очередь, обмениваются сообщениями с sendmail.
Пакеты для работы с электронной почтой в среде Windows базируются на использовании различных протоколов, в том числе и SMTP. Многие развитые почтовые системы имеют встроенную поддержку SMTP, позволяющую обмениваться сообщениями с глобальными ТСР/IР-сетями.

Стек 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 – простой протокол управления сетью) предназначен для диагностики работоспособности различных устройств сети.

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

Что же это за технология? Название TCP-IP произошло от двух сетевых протоколов: TCP и IP. Конечно, этими двумя протоколами построение сетей не ограничивается, но они являются базовыми в том, что касается именно организации передачи данных. Фактически, TCP-IP есть набор протоколов, позволяющих индивидуальным сетям объединяться для образования

Протокол TCP-IP, описание которого невозможно обозначить только определениями IP и TCP, включает в себя также протоколы UDP, SMTP, ICMP, FTP, telnet, и не только. Эти и другие протоколы TCP-IP обеспечивают наиболее полноценную работу сети Интернет.

Ниже приведем развернутую характеристику каждому протоколу, входящему в общее понятие TCP-IP.

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

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

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

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

1. FTP (File Transfer Protocol) организует перенос файлов и используется для передачи информации между двумя узлами Internet с использованием TCP-соединений в виде бинарного или же простого текстового файла, как поименованной области в памяти компьютера. При этом не имеет никакого значения, где данные узлы расположены и как соединяются между собой.

2. Протокол пользовательских дейтаграмм , или User Datagram Protocol, не зависит от подключений, он передает данные пакетами, которые называют UDP-дейтаграммами. Однако этот протокол не так надежен, как TCP, потому что отравитель не получает данных о том, был ли принят пакет в действительности.

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

4. Telnet - который используется для реализации текстового интерфейса в сети с помощью транспорта TCP.

5. SMTP (Simple Mail Transfer Protocol) - это специальный электронными сообщениями, определяющий формат сообщений, которые пересылаются с одного компьютера, называемого SMTP-клиентом, на другой компьютер, на котором запущен SMTP-сервер. При этом данная пересылка может быть отложена на некоторое время до тех пор, пока не активируется работа как клиента, так и сервера.

Схема передачи данных по протоколу TCP-IP

1. Протокол TCP разбивает весь объем данных на пакеты и нумерует их, упаковывая в TCP-конверты, что позволяет восстановить порядок получения частей информации. При помещении данных в такой конверт происходит вычисление контрольной суммы, которая записывается потом в TCP-заголовок.

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

4. После подтверждения получения всех пакетов протокол TCP упорядочивает их соответствующим образом и собирает заново в единое целое.

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

Тем самым протокол TCP-IP снимает необходимость использования повторных передач и ожиданий для прикладных процессов (таких, как Telnet и FTP).

Для обмена информации между компьютерами были разработаны стандарты передачи и обработки информации, которые назвали сетевыми протоколами. Наиболее распространены протоколы IP, ICMP, TCP, UDP, SMTP, POP/POP3, IMAP, HTTP/HTTPS и FTP, но существуют и другие, менее известные, такие как SSH, TELNET и другие.

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

IP, ICMP, TCP и UDP

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

При передачи информации по интернету, её разбивают на мелкие части – интернет пакеты, которые передаются независимо друг от друга. Это существенно ускоряет передачу информации за счет того, что различные части могут передаваться по разным маршрутам, после чего вновь собираются на месте получения в единое целое. Это также мера предотвращения потери информации в процессе передачи. Протокол TCP отвечает за создание интернет пакетов и из обратную сборку в нужном порядке в месте получения, а также проверяет целостность информации. Если часть пакетов утеряна в процессе передачи, они передаются повторно.

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

Для передачи малых кусков информации можно использовать протокол UDP (User Datagram Protocol – протокол пользовательских дейтаграмм). Он также используется совместно с интернет протоколом, но намного проще чем TCP. В отличии от TCP, UDP не гарантирует доставку пакетов в нужной последовательности и не дублирует передачу утерянных пакетов, соответственно он потребляет меньше системных ресурсов, а скорость передачи существенно выше. Он применяется в приложениях которым, требуется большая пропускная способность линий связи, либо малое время доставки данных, например для аудио или видео связи.

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

Почтовые протоколы – SMTP, POP, IMAP

Для передачи и получения электронной почты требуются свои собственные протоколы. Почту обычно отправляют по протоколу SMTP (Simple Mail Transfer Protocol – простой протокол передачи почты). Его также используют для передачи почты между почтовыми серверами. При настройке почтовых клиентов (например, Outlook Express) требуется указывать адрес SMTP сервера. Для получения почты с сервера почтового ящика почтовые клиенты обычно используют протокол POP (Post Office Protocol – протокол почтового отделения). На текущий момент действует его третья редакция (версия), которая называется POP3 (Post Office Protocol Version 3 – протокол почтового отделения, версия 3). Для возможности получения почты при настройке в почтовом клиенте необходимо указать адрес POP3 сервера. Адреса SMTP и POP3 серверов могут совпадать, а могут и не совпадать, их следует уточнить у почтового провайдера. Протоколы SMTP и POP3 работают совместно с TCP протоколом для передачи и доставки почты через интернет.

Существует и более функциональный, но менее известный протокол для чтения электронной почты – IMAP (Internet Message Access Protocol – протокол доступа к электронной почте интернета). Данный протокол позволяет получить доступ к письмам хранящимся в почтовом ящике на сервере без необходимости загрузки её на локальный компьютер. Это очень удобно, когда требуется доступ к письмам почтового ящика с нескольких компьютеров. IMAP также работает совместно с протоколом TCP.

Протоколы HTTP и HTTPS

Веб страницы используют язык разметки гипертекста (HTML – HyperText Markup Language). HTML страницы передаются через интернет по стандарту, который называется протокол передачи гипертекста (HTTP – HyperText Transfer Protocol). Основой HTTP является технология «клиент-сервер», то есть пользователь инициирует соединение к серверу для запроса информации, а сервер ожидает соединения для получения запроса, обрабатывает запрос и возвращают обратно сообщение с результатом. HTTP работает совместно с протоколом TCP. Адреса использующие HTTP протокол начинаются с „http:”.

С протоколом HTTP связан протокол HTTPS (HTTP over TLS – HTTP по TLS). Он обеспечивает шифрование при передачи данных для защиты конфиденциальной информации. Адреса URL использующие HTTP протокол начинаются с „https:”.

Протокол передачи файлов – FTP

Протокол передачи файлов (FTP – File Transfer Protocol) предназначен для передачи файлов в компьютерных сетях с одного компьютера на другой. Он обеспечивает возможность простого управления файлами на удаленном компьютере. Это достаточно старый протокол, который был введен в эксплуатацию до всемирной паутины (WWW – World Wide Web). В настоящее время он используется в основном для загрузки файлов на веб сервера, однако существуют и файловые хранилища, работающие по протоколу FTP. Он работает совместно с протоколом TCP. Адреса URL использующие FTP протокол начинаются с „ftp:”.

Для одновременной работы серверов по протоколам SMTP , POP , IMAP , HTTP , HTTPS , FTP и др. вовсе не требуются отдельные компьютеры или ip-адреса. Все эти сервера можно установить на один компьютер с одним ip-адресом. Это достигается за счет то, что каждый из протоколов использует свой .