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

07.04.2019 Мониторы

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

Операционная система QNX Neutrino реализует еще один протокол автоматического конфигурирования под названием AutoIP, который является проектом комитета IETF по автоматической настройке. Этот протокол используется в небольших сетях для назначения хостам IP-адресов, локальных для канала (link-local ). Протокол AutoIP самостоятельно определяет IP-адрес, локальный для канала, используя схему согласования с другими хостами и не обращаясь к центральному серверу.

Использование протокола PPPoE

Сокращение PPPoE расшифровывается как "Point -to -Point Protocol over Ethernet" (протокол соединения "точка-точка" через среду Ethernet). Этот протокол инкапсулирует данные для передачи через сеть Ethernet с мостовой топологией.

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

Протокол PPPoE объединяет технологию Ethernet с протоколом PPP, что позволяет эффективно создавать отдельное соединение с удаленным сервером для каждого пользователя. Управление доступом, учет соединений и выбор поставщика услуг определяется для пользователей, а не для узлов сети. Преимущество этого подхода заключается в том, что ни телефонная компания, ни поставщик услуг Интернета не должен обеспечивать для этого какую-либо специальную поддержку.

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

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

Установка сеанса PPPoE

Для того чтобы создать сеанс PPPoE, следует воспользоваться сервисом pppoed . Модуль io-pkt-* п редоставляет службы протокола PPPoE. Сначала необходимо запустить io-pkt-* с подходящим драйвером . Пример :


Введение в 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

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

Разумеется, для работы с Internet в качестве пользователя не требуется никаких специальных знаний о протоколах TCP/IP, но понимание основных принципов поможет вам в решении возможных проблем общего характера, возникающих, в частности, при настройке системы электронной почты. TCP/IP также тесно связан с двумя другими базовыми приложениями Internet FTP и Telnet. Наконец, знание ряда основополагающих концепций Internet поможет вам в полной мере оценить степень сложности этой системы, подобно тому как представление о работе двигателя внутреннего сгорания помогает проникнуться уважением к устройству автомобиля.

Что такое 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. Это наиболее широко используемые во всем мире сетевые протоколы, применяемые как в крупных корпоративных сетях, так и в локальных сетях с небольшим числом компьютеров.

Как только что говорилось, ТСР/IР - не один протокол, а их семейство. Почему иногда употребляют термин ТСР/IР, хотя имеется в виду сервис, отличный от 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 (Reverse Address Resolution Protocol). Определяет адреса машин в сети, но способом, обратным ARP.

Прикладные сервисы - это программы, которые пользователь (или компьютер) использует для получения доступа к различным услугам. (Более подробно см. "Прикладные программы TCP/IP" позже в этой главе.)

ВООТР (Boot Protocol) загружает сетевую машину, читая информацию для начальной загрузки с сервера.

FTP (File Transfer Protocol) передает файлы между компьютерами.

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

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

EGP (Exterior Gateway Protocol) служит для передачи маршрутизационной информации для внешних сетей.

GGP (Gateway-to-Gateway Protocol) служит для передачи маршрутизационной информации между шлюзами.

IGP (Interior Gateway Protocol) служит для передачи маршрутизационной информации для внутренних сетей.

NFS (Network File System) позволяет использовать каталоги и файлы удаленного компьютера так, как если бы они существовали на локальной машине.

NIS (Network Information Service) поддерживает в сети информацию о пользователях не­скольких компьютеров, упрощая вход в систему и проверку паролей.

RPC (Remote Procedure Call) позволяет удаленным прикладным программам связываться друг с другом простым и эффективным способом.

SMTP (Simple Mail Transfer Protocol) - это протокол, который передает сообщения электронной почты между машинами. SMTP обсуждается более подробно в гл. 13 "Как работает электронная почта в Internet."

SNMP (Simple Network Management Protocol) - протокол для администрирования, который посылает сообщения о состоянии сети и подключенных к ней устройств.

Все эти виды сервиса в совокупности составляют TCP/IP - мощное и эффективное семейство сетевых протоколов.

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

Каждая машина, которая подключена к 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-адреса для идентификации класса.

Адреса класса А - числа между 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 (Доменная система имен).

Доменные имена

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

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

Чтобы получить один из этих уникальных идентификаторов, называемых доменным именем, ком­пания или организация посылает запрос в орган, который контролирует подключение к Internet - Network Information Center (InterNIC). Если InterNIC утверждает имя компании, то оно добавляется в базу данных Internet. Доменные имена должны быть уникальны, чтобы предотвратить коллизии.

Последняя часть доменного имени называется идентификатором домена верхнего уровня (например, .corn). Существуют шесть доменов верхнего уровня, установленных InterNIC:

Агра Идентификатор сети ARPANET

Corn Коммерческие компании

Edu Образовательные учреждения

Gov Правительственные учреждения или организации

Mil Военные учреждения

Org Организации, которые не относятся ни к одной из перечисленных категорий

Сервис WWW

World Wide Web (WWW, Всемирная паутина) - это новейший вид информационных услуг Internet, основанный на архитектуре клиент-сервер. В конце 80-х годов в CERN (Европейский центр физики элементарных частиц) начались работы по созданию информационного сервиса, который позволил бы любому пользователю легко найти и прочитать документы, размещенные на серверах в любой части Internet. Для этого был разработан стандартный формат документов, позволяющий наглядным образом представить информацию на дисплее компьютера любого типа, а также обеспечить возможность установки внутри одних документов ссылок на другие документы.

Хотя WWW был разработан с целью применения сотрудниками CERN, после того как этот вид сервиса был обнародован, его популярность стала расти необычайно быстро. Было разработано множество прикладных программ, используемых в качестве WWW-клиентов, т. е. обеспечивающих доступ к WWW-серверам и представление документов на экране. Имеется клиентское программное обеспечение, основанное как на графическом интерфейсе пользователя (одной из наиболее популярных является программа Mosaic), так и на эмуляции алфавитно-цифрового терминала (примером является программа Lynx). Большинство WWW-клиентов позволяют использовать их интерфейс и для доступа к другим видам сервиса Internet, таким как FTP и Gopher.

Документы, расположенные на WWW-серверах, представляют собой не просто текстовые документы в стандарте ASCII. Это ASCII-файлы, содержащие команды специального языка, названного HTML (HyperText Markup Language, Язык разметки гипертекста). Команды HTML позволяют структурировать документ, выделяя в нем логически различающиеся части текста (заголовки разных уровней, абзацы, перечисления и т. д.). В результате каждая из клиентских программ просмотра WWW может форматировать текст документа таким образом, чтобы наилучшим способом отобразить его на конкретном дисплее. Для придания документам большей выразительности текст обычно форматируется с использованием увеличенных размеров шрифта заголовков, применением полужирного и курсивного начертаний для важных терминов, выде­лением пунктов перечислений и т. д. Язык HTML позволяет также включать в документы иллюстративную графику, которая может быть отображена программами просмотра, основанными на использовании графического интерфейса пользователя.

Одним из самых важных свойств HTML является возможность включения в документ гипер­текстовых ссылок. Эти ссылки позволяют пользователю загрузить новый документ на свой компьютер, просто щелкнув указателем мыши в том месте экрана, где расположена ссылка. Любой документ может содержать ссылки на другие документы. Документ, на который указывает ссылка, может находиться как на том же WWW-сервере, что и исходный документ, так и на любом другом компьютере в Internet. Областью документа, используемой в качестве ссылки, может служить слово, группа слов, графическое изображение или даже заданный фрагмент изображения. Большинство программ просмотра WWW могут также обращаться к ресурсам других информационных сервисов, таких как FTP и Gopher. В дополнение к этому программы просмотра WWW позволяют работать с файлами мультимедиа, содержащими видео и звук, посредством использования программ поддержки мультимедиа, инсталлированных на локальном компьютере.

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

UNIX , что способствовало росту популярности протокола, так как производители включали TCP/IP в набор программного обеспечения каждого UNIX -компьютера. TCP/IP находит свое отображение в эталонной модели OSI , как это показано на рисунке 3.1 .

Вы видите, что TCP/IP располагается на третьем и четвертом уровнях модели OSI . Смысл этого состоит в том, чтобы оставить технологию работы LAN разработчикам. Целью TCP/IP является передача сообщений в локальных сетях любого типа и установка связи с помощью любого сетевого приложения.

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


Рис. 3.1.

  • Сетевой интерфейс. Позволяет TCP/IP активно взаимодействовать со всеми современными сетевыми технологиями, основанными на модели OSI.
  • Межсетевой. Определяет, как IP управляет пересылкой сообщений через маршрутизаторы сетевого пространства, такого как интернет.
  • Транспортный. Определяет механизм обмена информацией между компьютерами.
  • Прикладной. Указывает сетевые приложения для выполнения заданий, такие как пересылка, электронная почта и прочие.

Благодаря своему широкому распространению протокол TCP/IP фактически стал интернет -стандартом. Компьютер , на котором реализована сетевая технология , основанная на модели OSI ( Ethernet или Token Ring ), имеет возможность устанавливать связь с другими устройствами. В "Основы организации сети" мы рассматривали уровни 1 и 2 при обсуждении LAN -технологий. Теперь мы перейдем к стеку OSI и посмотрим, каким образом компьютер устанавливает связь в интернете или в частной сети. В этом разделе рассматривается протокол TCP/IP и его конфигурации.

Что такое TCP/IP

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

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

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


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

TCP и UDР

При пересылке IP-сообщения по сети используется один из протоколов транспортировки: TCP или UDР. TCP (Transmission Control Protocol) составляет первую половину аббревиатуры TCP/IP. Протокол пользовательских дейтаграмм (User Datagram Protocol, UDР) используется вместо ТСР для транспортировки менее важных сообщений. Оба протокола служат для корректного обмена сообщениями в сетях TCP/IP. Между этими протоколами есть одно существенное различие.

ТСР называют надежным протоколом, так как он связывается с получателем для проверки факта получения сообщения.

UDР называют ненадежным протоколом, так как он даже не пытается устанавливать связь с получателем, чтобы убедиться в доставке.


Важно помнить, что для доставки сообщения можно воспользоваться только одним протоколом. Например, при загрузке веб-страницы доставкой пакетов управляет ТСР без всякого вмешательства UDP. С другой стороны, простой протокол передачи файлов (Trivial File Transfer Protocol, TFTP) загружает или отправляет сообщения под контролем протокола UDP.

Используемый способ транспортировки зависит от приложения - это может быть электронная почта, НТТР, приложение, отвечающее за сетевую работу, и так далее. Разработчики сетевых программ используют UDP везде, где только можно, так как этот протокол снижает избыточный трафик. Протокол ТСР прилагает больше усилий для гарантированной доставки и передает гораздо больше пакетов, чем UDP. На рисунке 3.2 представлен список сетевых приложений, и показано, в каких приложениях применяется ТСР, а в каких - UDP. Например, FTP и TFTP делают практически одно и то же. Однако TFTP, в основном, применяется для загрузки и копирования программ сетевых устройств. TFTP может использовать UDP, потому что при неудачной доставке сообщения ничего страшного не происходит, поскольку сообщение предназначалось не конечному пользователю, а администратору сети, уровень приоритета которого гораздо ниже. Другим примером является сеанс голосовой видеосвязи, в котором могут быть задействованы порты как для ТСР-сессий, так и для UDP. Так, сеанс TCP инициируется для обмена данными при установке телефонной связи, в то время как сам телефонный разговор передается посредством UDP. Это связано со скоростью потоковой передачи голоса и видео. В случае потери пакета не имеет смысла повторно посылать его, так как он уже не будет соответствовать потоку данных.


Рис. 3.2.
Формат IP-дейтаграммы

IP-пакеты можно разбивать на дейтаграммы. Формат дейтаграммы создает поля для полезной нагрузки и для данных управления передачей сообщения. На рисунке 3.3 показана схема дейтаграммы.

Примечание. Пусть вас не вводит в заблуждение величина поля данных в дейтаграмме. Дейтаграмма не перегружена дополнительными данными. Поле данных является на самом деле самым большим полем дейтаграммы.


Рис. 3.3.

Важно помнить, что IP-пакеты могут иметь различную длину. В "Основы организации сети" говорилось о том, что информационные пакеты в сети Ethernet имеют размер от 64 до 1400 байт. В сети Token Ring их длина составляет 4000 байт, в сети ATM - 53 байта.

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

Если вы еще раз посмотрите на формат дейтаграммы на рисунке 3.3 , то заметите, что крайние поля слева имеют постоянную величину. Так происходит, потому что центральный процессор, работающий с пакетами, должен знать, где начинается каждое поле. Без стандартизации этих полей конечные биты будут представлять собой мешанину из нулей и единиц. В правой части дейтаграммы находятся пакеты переменной длины. Назначение различных полей дейтаграммы состоит в следующем.

  • VER . Версия протокола IP, используемого станцией, где появилось исходное сообщение. Текущей версией IP является версия 4. Это поле обеспечивает одновременное существование различных версий в межсетевом пространстве.
  • HLEN. Поле информирует получающее устройство о длине заголовка, чтобы центральный процессор знал, где начинается поле данных.
  • Service type (Тип сервиса). Код, сообщающий маршрутизатору о типе управления пакетом с точки зрения уровня сервиса (надежность, первоочередность, отсрочка и т. д.).
  • Length (Длина). Общее количество байт в пакете, включая поля заголовка и поле данных.
  • ID, frags и frags offset. Эти поля указывают маршрутизатору, как следует проводить фрагментацию и сборку пакета и как компенсировать различия в размере кадров, которые могут возникать во время прохождения пакета по сегментам локальной сети с различными сетевыми технологиями (Ethernet, FDDI и т.д.).
  • TTL. Аббревиатура для Time to Live (Время жизни) - число, которое уменьшается на единицу при каждой последующей пересылке пакета. Если время жизни становится равным нулю, то пакет прекращает существование. TTL предотвращает возникновение циклов и бесконечное блуждание потерянных пакетов в межсетевом пространстве.
  • Protocol. Протокол транспортировки, который следует использовать для передачи пакета. Чаще всего в этом поле указывается протокол TCP, но могут быть использованы и другие протоколы.
  • Header checksum . Контрольная сумма - это число, которое используется для проверки целостности сообщения. Если контрольные суммы всех пакетов сообщения не совпадают с правильным значением, то это означает, что сообщение было искажено.
  • Source IP address (Адрес отправителя). 32-битный адрес хоста, отправившего сообщение (обычно персональный компьютер или сервер).
  • Destination IP address (Адрес получателя). 32-битный адрес хоста, которому отправлено сообщение (обычно персональный компьютер или сервер).
  • IP options. Используются для тестирования сети или других специальных целей.
  • Padding. Заполняет все неиспользованные (пустые) позиции битов, чтобы процессор мог правильно определить позицию первого бита в поле данных.
  • Data. Полезная нагрузка отправленного сообщения. Например, в поле данных пакета может содержаться текст электронного письма.

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