С каждым годом даже обыкновенные пользователи сети интернет все чаще встречаются с понятием интернет-протоколов (Internet Protocol, IP). Далее рассмотрим основные принципы и определения, связанные с понятием IP.
Во-первых, сами протоколы появились задолго до всемирной паутины, да и самой электроники. Протоколом можно назвать любое соглашение о тех или иных условиях, которые должны соблюдать все участники какого-либо двухстороннего процесса. Простейшим примером протокола может быть такая, казалось бы, примитивная задача, как проезд в автобусе. Действительно, чтобы доехать до нужной остановки пассажир должен дождаться автобуса нужного маршрута, занять место в салоне, приобрести билет и т.д. В таком процессе присутствуют и другие участники: кондуктор и водитель, которые также должны выполнять определённые действия. Набор всех действий пассажира, водителя автобуса и кондуктора, необходимых для того, чтобы пассажир из пункта «А» прибыл в пункт «Б», и будет называться протоколом.
В случае сети интернет под протоколом понимаются те или иные стандарты, которые определяют форму представления, процедуры передачи и интерпретации сообщений, а также принципы и правила совместного функционирования разнообразного оборудования в сети.
Протоколы, применяемые в сети интернет, могут быть рассмотрены по принципу многоуровневой иерархии, на самом низком – основном уровне которой находятся протоколы IP и TCP, определяющие способы передачи пакетов данных получателю и методы контроля принятых получателем данных соответственно. Протоколы более высокого уровня предназначены для реализации различных сервисов сети интернет с помощью протоколов TCP и IP.
В основу протокола IP положен пакетный способ передачи данных. Его особенностью является разбиение передаваемой информации на блоки определённой длины, которые затем форматируются и передаются получателю. К блоку данных, размер которого составляет 65 Кбайт (в современной четвёртой версии протокола IP), добавляется служебная информация: сведения о версии используемого протокола, идентификатор (используемый получателем для «сборки» данных из принятых пакетов), число допустимых переходов пакета через роутеры, адреса отправителя и получателя, контрольные суммы и некоторые другие блоки. Полученная в результате форматирования (инкапсуляции) структура называется IP-пакетом, и именно она и передаётся в сети.
Вместе с тем, одной из особенностей протокола IP является отсутствие гарантии доставки данных между узлами. В сети, использующей такой протокол, в целях упрощения структуры не предусмотрен какой-либо централизованный контроль передачи пакетов и состояния сети. Следовательно, в такой сети возможны разнообразные ошибки: повреждение пакетов, приход их в неправильном порядке, дублирование или полная потеря некоторых из них. Полученные таким образом пакеты требуется предварительно обработать, расположить в правильном порядке, извлечь из них нужные данные, и лишь затем передать, например, какому-либо приложению. Эти функции возлагаются на более высокоуровневые протоколы.
Для обеспечения гарантии безошибочности доставки пакетов применяется протокол транспортного уровня TCP (Transmission Control Protocol) – протокол управления передачей. При использовании данного протокола непосредственной передаче информации предшествует установка соединения между отправителем и получателем. В случае потери части данных производится повторный запрос пакетов, также имеется возможность устранения дублирования. Таким образом, использование протокола TCP гарантирует получение данных в правильной последовательности и без потерь.
В типичном случае передачи HTML-файла с веб-сервера на удалённый компьютер в соответствие с правилами протокола TCP отправляемый файл разбивается на сегменты для оптимальной маршрутизации в сети. Сегменты TCP представляют собой блоки передаваемой информации и служебных данных и формируются по принципу, сходному с IP-пакетами. Затем сформированные сервером TCP-сегменты инкапсулируются в IP-пакеты с помощью программного обеспечения IP-уровня путём добавления заголовка и, в том числе, IP-адреса получателя. В сети подобные пакеты, предназначенные для одного получателя, все же могут передаваться по различным маршрутам. В том или ином порядке пакеты приходят на компьютер адресата, где клиентская программа TCP-уровня «собирает» полученные сегменты, располагает их в правильном порядке и принятый файл направляет соответствующему приложению.
В целом, являясь достаточно надёжным протоколом, TCP успешно применяется для решения множества задач. В качестве недостатка данного протокола следует отметить необходимость повторного запроса неполученных или повреждённых пакетов, что может быть не очень удобно для передачи информации в режиме реального времени, где часто требуется передать большую часть данных в предназначенный для этого короткий промежуток времени, а получение всех ста процентов пакетов и в правильном порядке является второстепенной задачей. Данная проблема ограничивает применение протокола TCP в интернет-радио, многопользовательских играх в реальном времени, телевидении.
Всё же, несмотря на некоторые недостатки и относительную сложность в реализации, протоколы IP и TCP являются основой передачи данных в сети интернет, а заложенные в них принципы еще долго будут иметь основополагающее значение. Безусловно, с развитием протоколов многое будет и изменяться, например размеры и способ организации пакетов и сегментов, однако сами основы пакетной передачи данных и маршрутизации сохранят свою высокую актуальность.