• Протокол 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Р-сетями.

    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. Полезная нагрузка отправленного сообщения. Например, в поле данных пакета может содержаться текст электронного письма.

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

    Стек 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 (Transmission Control Protocol и Internet Protocol). Слово ­­«стек» подразумевает, что все эти протоколы представляют собой как бы «стопку протоколов», в которой протокол верхнего уровня не может функционировать без протокола нижнего уровня.

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

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

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

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

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

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

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

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

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

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

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

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

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

    Стек протоколов TCP/IP – это альфа и омега Интернета, и нужно не только знать, но также понимать модель и принцип работы стека.

    Мы разобрались с классификацией, стандартами сетей и моделью OSI. Теперь поговорим о стеке, на базе которого построена всемирная система объединенных компьютерных сетей Интернет.

    Модель TCP/IP

    Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.

    Через модель описывается, как необходимо строить сети на базе различных технологий, чтобы в них работал стек протоколов TCP/IP.

    В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:

    1. Самый нижний, уровень сетевых интерфейсов , обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.
    2. Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
    3. Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
    4. Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.

    Иногда специалисты пытаются объединить обе модели в нечто общее. Например, ниже приведено пятиуровневое представление симбиоза от авторов «Компьютерные сети» Э. Таненбаума и Д. Уэзеролла:

    Модель OSI обладает хорошей теоретической проработкой, но протоколы не используются. С моделью TCP/IP все иначе: протоколы широко используются, но модель подходит исключительно для описания сетей на базе TCP/IP.

    Не путайте их:

    • TCP/IP – это стек протоколов, представляющий собой основу Интернета.
    • Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) подходит для описания самых разных сетей.

    Стек протоколов TCP/IP

    Рассмотрим каждый уровень более подробно.

    Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.

    Основной протокол сетевого уровня – IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.

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

    Прикладной уровень – это HTTP (для web), SMTP (передача почты), DNS (назначение IP-адресам понятных доменных имен), FTP (передача файлов). Протоколов на прикладном уровне стека TCP/IP больше, но приведенные можно назвать самыми значимыми для рассмотрения.

    Помните, что стек протоколов TCP/IP задает стандарты связи между устройствами и содержит соглашения о межсетевом взаимодействии и маршрутизации.