TCP/IP язык общения в InternetВесь мир попал в сеть Internet и ему уже не выбраться. Internet проникла повсюду, постепенно захватывая все новые и новые компьютеры. Например, если вы пытаетесь дозвониться другу, а у него уже который час занят телефон - не думайте, что это авария. Просто он ушел в Internet и вернется не скоро.
Что же это такое - Internet?Это сеть, объединяющая большое количество компьютеров от огромных мэйнфреймов до персоналок. Объединить столь разношерстные машины - непростая задача, но создатели Internet справились с ней блестяще. Это удалось благодаря используемому в этой сети сетей языку общения компьютеров - TCP/IP.Язык взаимодействия компьютеров - основа Internet. Именно с его помощью можно передавать информацию между компьютерами различной архитектуры и назначения. Правила компьютерного языка, как и правила любого другого языка, разбиты на несколько групп. Каждая группа называется протоколом. Аналогом грамматики можно считать межсетевой протокол (Internet Protocol - IP). Более сложный протокол, который описывает правильное построение "предложений" на машинном языке, называется протокол управления передачей (Transmission Control Protocol - TCP). Есть и другие протоколы, но основные - это TCP и IP. Именно в их честь сеть Internet иногда называют Сеть TCP/IP. Чем же хороши эти протоколы и почему они столь популярны? TCP/IP работает ! ! ! Как же устроен TCP/IP и как с его помощью компьютеры общаются между собой? Механизмы работы межсетевого протокола IP похожи на действия почтовой службы. Когда люди отправляют письма и посылки по почте, на них должны стоять адреса отправителя и получателя. На основе этой информации почтовые службы самостоятельно выбирают оптимальный маршрут для корреспонденции и доставляют письма и посылки получателю. Точно так же действуют и компьютеры, упаковывая информацию в пакеты и передавая их от одного компьютера к другому. У информационных пакетов, как и у почтовых, есть стандартная упаковка. Текст послания запаковывается в конверт (специальные символы конца и начала - заголовок сообщения), на котором ставится адрес отправителя и получателя (так называемые IP-адреса). Конверт обеспечивает целостность послания и служит его проводником по сети. После того, как письмо отправлено, оно находится во власти почтовой службы. Каждое почтовое отделение, чтобы доставить послание адресату, выполняет простую операцию: читает адрес получателя (или индекс), определяет через какие почтовые отделения оно может отправить послание, выбирает из них наиболее близкое к получателю и отправляет послание следующему отделению связи. Примерно такой же алгоритм "последовательных приближений" реализован и в вычислительных сетях. Есть специальное устройство, называемое маршрутизатором, которое работает аналогично почтовому отделению и выбирает оптимальный маршрут для каждого информационного пакета в отдельности.
Одно из достоинств межсетевого протокола состоит в том, что он самодостаточен для передачи информации. Однако "ручная работа" с протоколом IP очень смахивает на изобретение велосипеда каждый раз, когда нужно куда-либо поехать. Поэтому обычно IP используется как основа для более удобных и простых в обращении протоколов. Чего же не хватает IP для полноценной передачи информации? При использовании IP существуют следующие проблемы: Oграниченный объем пакета Стандартная упаковка IP может переносить ограниченный объем информации. Максимальная длина сообщения, помещающегося в один IP- пакет, всего 1500 символов. Представьте, что почта пересылает только сообщения не больше почтовой открытки. Ненадежность связи Компьютерная сеть, как и почта, нередко теряет или искажает пакеты информации. Internet, в отличие от почты, способна справиться с этой проблемой, так как информация может размножаться простым копированием; Несогласованность связей Пакеты, посланные по компьютерной сети, как и письма, могут прийти к получателю не в той последовательности, в которой они отправлялись. Поэтому получатель должен правильно восстанавливать последовательность полученных пакетов. Все перечисленные проблемы можно решить с помощью другого протокола Internet - TCP. Протокол управления передачей (TCP)
Лет пять назад я зарабатывал себе на жизнь сбором популярных в то время компьютеров - Синклеров. Мне заказывали компьютер, давали все детали, и я должен был собрать работающий компьютер. Алгоритм моей работы был прост: я проверял наличие всех деталей, потом тестировал их и впаивал в печатную плату. Если пайка была хорошей, то компьютер "оживал" сразу, и я отдавал его заказчику. Протокол управления передачей IP-пакетов (TCP) работает примерно по тому же алгоритму. Информация разбивается на несколько IP-пакетов (деталей) и передается по сети. Получатель же должен проверить наличие всех пакетов, затем проверить качество каждого пакета (не было ли искажения информации во время передачи) и только потом собрать их вместе, в целое сообщение. Аналогия может показаться странной, но в сборке компьютеров и информационных пакетов есть следующие общие черты:
Практически, с помощью TCP можно передавать по сети сообщения любой длины. Благодаря проверке пакетов на искажения TCP позволяет передавать пакеты даже по ненадежным сетям. Если пакет информации потеряется или исказится, то получатель запросит его копию. Поскольку сообщение восстанавливается только после получения всех неискаженных пакетов, то последовательность их получения уже не имеет значения. TCP - это протокол, тесно связанный с IP, но используется для других целей. Если задача IP - передать пакеты от отправителя к получателю, то цель TCP - сделать передачу IP-пакетов наиболее надежной. Так как TCP без IP невозможен, а IP без TCP ненадежен, то эти протоколы часто называют вместе - TCP/IP. Но термин "TCP/IP" обычно подразумевает не просто два описанных протокола. Он охватывает целое семейство протоколов, программ и даже саму сеть. В состав семейства входят протоколы TCP, UDP, ICMP и другие. Кроме того, TCP/IP используют такие широко известные сервисы, например FTP, telnet, X-Windows (многооконный графический интерфейс с пользователем), "r-команды" и многие другие. TCP/IP - это язык межсетевого взаимодействия, язык Internet. Красив и мрачен Чем же привлекателен TCP/IP? Как ни странно, громадной популярностью этот протокол обязан самому факту своего рождения. От заказчика - Министерства обороны - он получил надежность, а от исполнителей - ученых США - открытость. Надежность передачи информации - одно из основных требований, предъявляемых к компьютерным сетям. В принципе вычислительные сети предназначены именно для того, чтобы предоставлять пользователям доступ к ресурсам и данным других компьютеров. А так как надежную сеть построить достаточно сложно, то часто приходится встраивать в протоколы механизмы поиска и исправления ошибок. В TCP/IP такой механизм есть - контроль за передачей сообщений и повторный запрос при искажениях информации. Немаловажным фактором для популярности протокола является его масштабируемость, то есть возможность подключения к сети, которую обслуживает протокол, новых компьютеров. Для TCP/IP-сети, в которой при подключении нового компьютера достаточно определить его адрес, размер сети ограничивается только количеством компьютерных адресов. Межсетевой протокол позволяет адресоваться к более чем 4 миллиардам компьютеров. Даже Internet еще не исчерпала столь огромного адресного пространства. В то же время TCP/IP успешно работает и в маленьких сетях с небольшим количеством компьютеров. Кроме того, программное обеспечение, которое поддерживает TCP/IP, есть практически для всех существующих платформ. Столь широкому распространению этого семейства способствовало два фактора - исторический и финансовый. Поскольку TCP/IP - один из старых протоколов, то для совместимости с уже существующим программным обеспечением многие производители программ вынуждены включать в комплект поставки поддержку TCP/IP. А так как TCP/IP разрабатывался в институтах и университетах США, то вначале он распространялся бесплатно, как некоммерческий продукт. Когда же вычислительная техника нашла свое коммерческое применение, то вокруг TCP/IP накопилось огромное семейство тесно связанных протоколов, и установить, кто же их разработал было невозможно. А нет патента - нет и лицензионных выплат. Именно поэтому программное обеспечение, предназначенное для этого семейства протоколов, достаточно дешево. Следует отметить, что широкое распространение и дешевизна TCP/IP послужили причиной для разработки многочисленных сервисов. Некоторые известные сервисы разрабатывались сразу для TCP/IP (например, telnet и FTP). Некоторые же были перенесены с других протоколов. Например, сервис электронной почты был предназначен для протокола UUCP (UNIX-UNIX Connect Protocol), а затем перенесен на TCP/IP как SMTP. Сегодня для TCP/IP разработаны практически все необходимые типы сервисов: от электронной почты до гипертекстового протокола, по которому можно передавать информацию практически в любом виде - текстовую, графическую, звуковую, видео и другие. Однако TCP/IP имеет и некоторые недостатки. Одни из них - обратная сторона достоинств, другие - огрехи реализации. Открытость и масштабируемость протокола порождает его плохую управляемость. Часто после нескольких модернизаций компьютерной сети разобраться в ее работе становится сложно. Но основной недостаток протокола - его плохая защита от подделки и прослушивания. Слабая защита протокола TCP/IP породила особый класс пользователей - хакеров. Защита протокола подразумевает доступность удаленных данных и неизменность их при транспортировке. В некоторых случаях требуется еще и защита от прослушивания, но таких случаев, как правило, немного. К сожалению, современная реализация TCP/IP не может гарантировать неизменность данных, а иногда даже и их доступность. Поскольку TCP/IP первоначально разрабатывался для Министерства обороны, то предполагалось, что потенциально опасные пользователи просто не будут допущены к компьютерам и линиям связи, по которым передается информация. Кроме того, скорости вычислений на заре вычислительной техники были небольшими, и загружать и без того перегруженные компьютеры механизмами защиты было неразумно. Однако современные вычислительные машины работают достаточно быстро и могут полностью зашифровывать все пакеты информации и вычислять для них электронную подпись, а межсетевой протокол, к сожалению, не предусматривает таких простых средств защиты. TCP/IP, как уже было сказано, достаточно легко можно адаптировать для работы в любой сети, но так же легко его можно блокировать. Причем проконтролировать и предотвратить опасные действия очень сложно - ложная информация о состоянии линий связи и наиболее эффективных маршрутах быстро распространяется по сети и блокировать ее распространение бывает очень трудно. Кроме того, помехи для управления сетью создает и плохая защита протоколов - если хакер проник в какой-либо компьютер сети, то у него есть достаточно средств для сокрытия следов своей деятельности. Но даже если не все следы атаки были уничтожены, найти их в системных журналах и других контрольных записях бывает достаточно трудно. TCP/IP подчиняется только профессионалам. Как уже было сказано, TCP/IP разрабатывался для связи между локальными сетями по ненадежным линиям. Для этого в нем есть некоторая избыточность, позволяющая исправлять ошибки. Но если локальная сеть работает достаточно надежно, то избыточность протокола становится обузой. Поэтому TCP/IP слишком неповоротлив в локальных сетях и работает медленно. Хотя задержки, возникающие при использовании этого семейства протоколов, незначительные, но, повторенные огромное количество раз, они могут сильно замедлить работу сети. Кроме того, все пакеты, передаваемые по TCP/IP-сети, имеют одинаковый приоритет. Но встречается ситуация, когда пакет нужно передать за минимальное время. Такое требование возникает при передаче информации в режиме реального времени. К сожалению, TCP/IP не поддерживает такой передачи сообщений, и поэтому, например, в музыкальных сообщениях, которые передаются по TCP/IP-сетям, бывают неприятные паузы. Следует отметить еще и тот факт, что сеть Internet уже почти исчерпала возможности современной версии TCP/IP. Это выражается в том, что количество компьютерных адресов, на которое рассчитана Internet, уже подходит к концу. Чтобы предотвратить этот так называемый коллапс Internet, который ожидается уже через несколько лет, была создана специальная группа инженеров, которая работает над созданием IPng (Internet Protocol - new genegation) - нового поколения межсетевого протокола. Ожидается, что новая версия сможет устранить самые существенные недостатки старой - плохую защиту, слабое управление и ограниченность адресного пространства. Но переход Internet на новую версию - процесс длительный и мучительный.
Количество пользователей Inter-net возрастает очень быстро. Удобство этой сети и ее колоссальные возможности стали основной причиной популярности TCP/IP. Многие ведущие производители программного обеспечения, которые раньше не интересовались глобальными сетями, сейчас уже включили в свои сетевые продукты поддержку TCP/IP. В результате появилась возможность использовать TCP/IP в локальных сетях, где ранее уже использовали продукты этих производителей. Поэтому можно с уверенностью сказать: "TCP/IP - основа для взаимодействия разнородного оборудования". Основные конкуренты TCP/IP - NetBIOS и IPX (Internetwork Packet Exchange) - не могут похвастаться этим качеством. NetBIOS, разработанный IBM, обеспечивает достаточно большую скорость передачи данных в пределах локальной сети, но не допускает использования маршрутизаторов. Поэтому применять его в сетях большого размера становится невозможно. IPX, разработанный фирмой Novell, хоть и работает в более крупных сетях, но уступает по масштабируемости TCP/IP. Хотя межсетевой протокол и имеет некоторые недостатки, но его можно считать лучшим из существующих протоколов для передачи информации между локальными сетями и отдельными компьютерами. Кроме того, новое поколение IP, вероятно, сможет решить проблемы старого межсетевого протокола, но переход на новый протокол - задача достаточно сложная. Поэтому существующее семейство протоколов TCP/IP еще послужит верой и правдой своим владельцам. Так что смерти TCP/IP не предвидится еще минимум лет десять. Валерий Коржов |