Ip
Содержание:
- Как работают IP-адреса
- IP-адреса используемые в локальных сетях
- Типы IP-адресов
- Порядок следования сообщений
- UDP
- IP[править]
- Номера портов
- 1977: Первое испытание сети по сценарию: СССР нападает на Европу
- Transport Layer
- Особые IP адреса
- TCP-соединение[править]
- TCP[править]
- The Network Interface Layer
- Сетевые протоколы UDP, TCP, ICMP
- Исчерпание адресного пространства
- Что такое сетевые порты
- TCP
- История
- Что такое IPv4?
Как работают IP-адреса
Понимание того, как работают IP-адреса, поможет разораться, почему определенное устройство не подключается так, как ожидалось, и устранить неполадки в работе сети.
Интернет-протокол работает так же, как и любой другой язык: передает информацию с использованием установленных правил. Устройства обнаруживают другие подключенные устройства и обмениваются с ними информацией, используя этот протокол. Проще говоря, все компьютеры, где бы они не находились, могут общаться друг с другом.
Использование IP-адресов обычно происходит незаметно. Процесс работает следующим образом:
- Устройство подключается к интернету не напрямую: сначала оно подключается к сети, подключенной к интернету, а сеть, в свою очередь, предоставляет устройству доступ к интернету.
- Если вы находитесь дома, скорее всего, этой сетью является сеть вашего интернет-провайдера. В офисе это будет сеть вашей компании.
- IP-адрес назначается устройству вашим интернет-провайдером.
- Ваша интернет-активность проходит через интернет-провайдера, а он перенаправляет вам ответы на запросы, используя ваш IP-адрес. Поскольку провайдер предоставляет доступ в Интернет, его роль заключается в назначении IP-адрес вашему устройству.
- Однако ваш IP-адрес может измениться, например, при включение или выключение модема или маршрутизатора. Можно также связаться с интернет-провайдером, чтобы он изменил IP-адрес.
- Если вы находитесь вне дома, например, путешествуете, и берете с собой устройство, домашний IP-адрес не закрепляется за устройством. Это связано с тем, что устройство будет использовать другую сеть (Wi-Fi в отеле, аэропорту, кафе) для доступа в интернет и другой временный IP-адрес, назначенный интернет-провайдером в отеле, аэропорту или кафе.
Как следует из этого процесса, существуют различные типы IP-адресов, которые будут описаны ниже.
IP-адреса используемые в локальных сетях
Все используемые в Интернете адреса, должны регистрироваться, что гарантирует их уникальность в масштабе всей планеты. Такие адреса называются реальными или публичными IP-адресами.
Для локальных сетей, не подключенных к Интернету, регистрация IP-адресов, естественно, не требуется, так как, в принципе, здесь можно использовать любые возможные адреса. Однако, чтобы не допускать возможность конфликтов при последующем подключении такой сети к интернету, рекомендуется применять в локальных сетях только следующие диапазоны так называемых частных IP-адресов (в интернете эти адреса не существуют и использовать их там нет возможности), представленных в таблице.
Типы IP-адресов
Существуют разные категории IP-адресов, и в каждой категории имеются разные типы.
Клиентские IP-адреса
У каждого человека или компании с тарифным планом на получение интернет-услуг есть два типа IP-адресов: частный и общедоступный. Термины частный и общедоступный относятся к сетевому расположению: частный IP-адрес используется внутри сети, а общедоступный – за пределами сети.
Частные IP-адреса
Каждое устройство, которое подключается к вашей интернет-сети, имеет частный IP-адрес. Это могут быть компьютеры, смартфоны, планшеты, а также любые устройства с поддержкой Bluetooth, такие как динамики, принтеры, смарт-телевизоры. С развитием интернета вещей растет и количество частных IP-адресов в домашней сети. Маршрутизатору необходимо идентифицировать каждое из этих устройств, а многие устройства также должны идентифицировать друг друга. Поэтому маршрутизатор генерирует частные IP-адреса, которые являются уникальными идентификаторами каждого устройства и позволяют различать их в сети.
Общедоступные IP-адреса
Общедоступный IP-адрес – это основной адрес, связанный со всей сетью. Каждое подключенное устройство имеет собственный IP-адрес, но они также включены в состав основного IP-адреса сети. Как было описано выше, общедоступный IP-адрес предоставляется маршрутизатору интернет-провайдером. Обычно у интернет-провайдеров есть большой пул IP-адресов, которые они присваивают клиентам. Общедоступный IP-адрес – это адрес, который устройства за пределами интернет-сети будут использовать для распознавания этой сети.
Общедоступные IP-адреса
Общедоступные IP-адреса бывают двух видов: динамические и статические.
Динамические IP-адреса
Динамические IP-адреса меняются автоматически и регулярно. Интернет-провайдеры покупают большой пул IP-адресов и автоматически присваивают их своим клиентам. Периодически они меняют присвоенные IP-адреса и помещают старые IP-адреса обратно в пул для использования другими клиентами. Обоснованием этого подхода служит экономия средств провайдера. Автоматизация регулярного изменения IP-адресов позволяет им не выполнять никаких действий для восстановления IP-адреса клиента, например, если он переезжает. Также имеются преимущества с точки зрения безопасности, поскольку изменение IP-адреса затрудняет взлом сетевого интерфейса злоумышленниками.
Статические IP-адреса
В отличие от динамических IP-адресов, статические IP- адреса остаются неизменными. После того, как сеть назначает IP-адрес, он остается неизменным
Большинству частных лиц и организаций не нужны статические IP-адреса, но для организаций, планирующих размещать собственные серверы, наличие статического IP-адреса крайне важно. Это связано с тем, что статический IP-адрес гарантирует, что привязанные к нему веб-сайты и адреса электронной почты будут иметь постоянные IP-адреса
Это очень важно, если требуется, чтобы другие устройства могли находить их в интернете.
В результате возникла классификация по типам IP-адресов веб-сайтов.
Два типа IP-адресов веб-сайтов
Для владельцев веб-сайтов, использующих пакет веб-хостинга (что характерно для большинства веб-сайтов), а не собственный сервер, существует два типа IP-адресов веб-сайтов: общие и выделенные.
Общие IP-адреса
Веб-сайты, использующие общие хостинговые планы от провайдеров веб-хостинга, обычно являются одним из многих веб-сайтов, размещенных на одном сервере. Это, как правило, веб-сайты физических лиц или компаний малого и среднего бизнеса, с ограниченным объемом трафика, количеством страниц и т. д. Такие веб-сайты имеют общие IP-адреса.
Выделенные IP-адреса
В некоторых тарифных планах веб-хостинга есть возможность приобрести выделенный IP-адрес (или адреса). Это может упростить получение SSL-сертификата и позволяет использовать собственный FTP-сервер (сервер протокола передачи файлов). Кроме того, это упрощает организацию общего доступа и передачу файлов в рамках организации и позволяет использовать анонимный FTP-доступ. Выделенный IP-адрес также позволяет получить доступ к веб-сайту, используя только IP-адрес, а не доменное имя. Это полезно, если требуется создать и протестировать его перед регистрацией домена.
Порядок следования сообщений
Но подтверждений и повторной отправки данных недостаточно для обеспечения надежной передачи потока байт. Это защищает только от потери сегментов, но не обеспечивает сохранение порядка следования сообщений.
Какие проблемы могут произойти? Протокол IP не сохраняет порядок следования сообщений и поэтому сегменты могут прийти к получателю не в том порядке в котором они были отправлены. Кроме того, некоторые сегменты могут прийти два и более раз. Рассмотрим одну из возможных причин дублирования сегментов.
Дублирование сегментов
Предположим, отправитель передал сегмент данных получателю, получатель этот сегмент принял и передал отправителю подтверждение, но при передаче подтверждения произошла ошибка. Отправитель не получил подтверждение, сработал таймер и тот же самый сегмент данных был отправлен второй раз.
Это один из возможных вариантов, на самом деле, таких вариантов еще очень много, поэтому в протокол TCP встроен механизм защиты от дублирования и нарушение порядка следования сообщений.
Механизм очень простой, все сообщения нумеруются. В TCP нумеруются не сегменты, так как разные сегменты могут иметь разный размер, а байты.
В нашем примере 4 сегмента первый сегмент содержит байты от 0 до 1023, второй от 1024 до 2047 и так далее.
Нумерация байтов
При передаче отправитель включают в сегмент номер первого байта данных, которые в нем содержатся.
- Например сегмент данных, байт 0, он содержит байты с 0 до 1023.
- Получатель отправляет подтверждение и в подтверждение включает номер следующего байта, который ожидается байт 1024.
- Отправитель передает следующий сегмент, включая в него номер первого байта, сегмент данных, номер первого байта 1024 содержит данные до номера байта 2047.
- Получатель отправляет подтверждение, что он ждет байт с номером 2048, если сегменты придут в неправильном порядке, то получатель по номерам байтов всегда сможет выставить их в правильной последовательности.
Дублирование сегментов
Рассмотрим как решается ситуация с дублированием сегментов.
- Отправитель включает в сегмент номер первого передаваемого байта 1024.
- Получатель отправляет подтверждение, где говорит что ждет байт в 2048.
- Но так как подтверждение не дошло, то отправитель передает тот же самый сегмент 1024.
- Однако получатель видит, что этот сегмент у него уже есть поэтому он этот сегмент игнорирует и снова отправляет подтверждение, где говорит что он ожидает байт 2048.
UDP
UDP protocol – протокол, обеспечивающий передачу данных (датаграмм) без предварительного создания соединения между хостами. При отправке датаграмм нет уверенности в существовании получателя и его готовности к обмену. Сетевой протокол UDP не обеспечивает также упорядочивание датаграмм при получении. Он используется приложениями для которых существенное значение имеет время доставки, когда нет возможности ждать задержавшиеся или запрашивать потерянные пакеты, например, в системах реального времени. Датаграммы могут доставляться не в заданном порядке, дублироваться или вовсе не доставляться. Поэтому протокол UDP называют «ненадёжным протоколом датаграмм».
Приложения, использующие протокол UDP не чувствительны к потерям данных, нарушению порядка получения датаграмм и дублированию. При этом они могут использовать механизмы обеспечения надёжности на прикладном уровне.
IP[править]
IP — протокол, лежащий в основе Интернета, его название так и расшифровывается: Internet Protocol.
В настоящее время используются следующие две версии протокола IP:
- IPv6 — сравнительно новая (текущая версия спецификации опубликована в декабре 1998); IP-адрес имеет разрядность 128 бит и записывается в виде восьми 16-битных полей, с использованием шестнадцатеричной системы счисления и с возможностью сокращения двух и более последовательных нулевых полей до ; пример: ;
- IPv4 — «классическая» (1981 г.); IP-адрес имеет разрядность 32 бита и записывается в виде четырех десятичных чисел в диапазоне 0 … 255 через точку; пример: .
Каждый узел может напрямую связаться только с узлами своей сети (например: подключенными к тому же сегменту Ethernet), для определения которых используется адрес сети — часть IP-адреса, определяемая маской сети. Связь с узлами других сетей осуществляется через промежуточные узлы — маршрутизаторы.
Посмотреть, как выглядит маршрут пакета от вашего компьютера к другим узлам, можно с помощью команды traceroute (в Linux) или tracert (в Windows).
Номера портов
Для идентификации узлов сети протокол IP использует IP-адреса, а транспортный уровень (уровень 4) использует конечные точки для идентификации приложения. Чтобы указать конечную точку приложения, протоколы TCP и UDP вместе с IP-адресом используют номер порта.
Сервер должен предоставить известную конечную точку, с которой мог бы соединиться клиент, хотя номер порта может создаваться для клиента динамически. Номера портов TCP и UDP имеют длину 16 битов, их можно подразделить на три категории:
-
Системные (известные) номера портов
-
Пользовательские (зарегистрированные) номера портов
-
Динамические, или частные, порты
Системные номера портов находятся в диапазоне от 0 до 1023. Эти номера должны использоваться только системными, привилегированными процессами. Широко известные протоколы пользуются номерами портов, установленными по умолчанию из этого диапазона.
Пользовательские номера портов находятся в диапазоне от 1024 до 49151. Ваше серверное приложение обычно будет занимать один из этих портов, и вы, если захотите сделать его известным сообществу пользователей Интернета, сможете зарегистрировать номер порта в IANA.
Динамические номера портов принимают значения из диапазона от 49 152 до 65 535. Если не требуется знать номер порта до запуска приложения, подойдет порт в этом диапазоне. Клиентские приложения, которые соединяются с серверами, могут использовать такой порт.
Запустив утилиту netstat с опцией -а, мы увидим перечень всех используемых в данный момент портов и указание о состоянии соединения — находится ли соединение в состоянии прослушивания или соединение уже было установлено:
В файле services из каталога <windir>\system32\drivers\etc перечислены многие предопределенные пользовательские и системные номера портов. Если порт содержится в перечне этого файла, то утилита netstat вместо номера порта отобразит имя протокола.
1977: Первое испытание сети по сценарию: СССР нападает на Европу
Из книги Яши Левина «Интернет как оружие» (2019 г):
Первое успешное испытание сети с протоколом TCP/IP, состоявшееся 22 ноября 1977 года, имитировало военный сценарий: при помощи спутниковых, кабельных и радиосетей поддерживалась связь с активной мобильной частью, ведущей бои против вторгшихся в Европу условных советских войск. Старый развозной фургон GMC, который стэнфордские специалисты напичкали радиоаппаратурой, играл роль моторизованной дивизии НАТО и ездил туда-сюда по шоссе рядом со Стэнфордом, посылая данные через радиосеть ARPANET. Затем они переправлялись по спутниковой сети ARPA в Европу — через Швецию и Лондон, после чего возвращались в США, в Калифорнийский университет в Лос-Анджелесе, по спутниковым и кабельным каналам ARPA.
Transport Layer
Transport layer builds on the network layer in order to provide data transport from a process on a source system machine to a process on a destination system. It is hosted using single or multiple networks, and also maintains the quality of service functions.
It determines how much data should be sent where and at what rate. This layer builds on the message which are received from the application layer. It helps ensure that data units are delivered error-free and in sequence.
Transport layer helps you to control the reliability of a link through flow control, error control, and segmentation or de-segmentation.
The transport layer also offers an acknowledgment of the successful data transmission and sends the next data in case no errors occurred. TCP is the best-known example of the transport layer.
Important functions of Transport Layers:
- It divides the message received from the session layer into segments and numbers them to make a sequence.
- Transport layer makes sure that the message is delivered to the correct process on the destination machine.
- It also makes sure that the entire message arrives without any error else it should be retransmitted.
Особые IP адреса
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:
- 0.0.0.0 — представляет адрес шлюза по умолчанию, т.е. адрес компьютера, которому следует направлять информационные пакеты, если они не нашли адресата в локальной сети (таблице маршрутизации);
- 255.255.255.255 – широковещательный адрес. Сообщения, переданные по этому адресу, получают все узлы локальной сети, содержащей компьютер-источник сообщения (в другие локальные сети оно не передается);
- «Номер сети».«все нули» – адрес сети (например 192.168.10.0);
- «Все нули».«номер узла» – узел в данной сети (например 0.0.0.23). Может использоваться для передачи сообщений конкретному узлу внутри локальной сети;
- Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast). При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует, что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на практике максимальное число узлов в сети класса С не может превышать 254, так как адреса 0 и 255 имеют специальное назначение. Из этих же соображений следует, что конечный узел не может иметь адрес типа 98.255.255.255, поскольку номер узла в этом адресе класса А состоит из одних двоичных единиц.
- Особый смысл имеет IP-адрес, первый октет которого равен 127.х.х.х. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Этот адрес имеет название loopback. Можно отнести адрес 127.0.0.0 ко внутренней сети модуля маршрутизации узла, а адрес 127.0.0.1 — к адресу этого модуля на внутренней сети. На самом деле любой адрес сети 127.0.0.0 служит для обозначения своего модуля маршрутизации, а не только 127.0.0.1, например 127.0.0.3.
В протоколе IP нет понятия широковещательности в том смысле, в котором оно используется в протоколах канального уровня локальных сетей, когда данные должны быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес, так и широковещательный IP-адрес имеют пределы распространения в интерсети — они ограничены либо сетью, к которой принадлежит узел-источник пакета, либо сетью, номер которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов на части локализует широковещательный шторм пределами одной из составляющих общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем узлам всех сетей составной сети.
TCP-соединение[править]
Соединение двух узлов начинается с handshake (рукопожатия):
- Узел A посылает узлу B специальный пакет SYN — приглашение к соединению
- B отвечает пакетом SYN-ACK — согласием об установлении соединения
- A посылает пакет ACK — подтверждение, что согласие получено
После этого TCP-соединение считается установленным, и приложения, работающие в этих узлах, могут посылать друг другу пакеты с данными.
«Соединение» означает, что узлы помнят друг о друге, нумеруют все пакеты, идущие в обе стороны, посылают подтверждения о получении каждого пакета и перепосылают потерявшиеся по дороге пакеты.
Для узла A это соединение называется исходящим, а для узла B — входящим.
Отметим, что эти термины не имеют никакого отношения к входящему или исходящему трафику. Они показывают только инициатора соединения, то есть направление самого первого пакета (SYN).
Любое установленное TCP-соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны.
Когда один из узлов решает, что пора заканчивать соединение, он посылает специальный пакет FIN, после этого узлы прощаются и разрывают соединение.
TCP[править]
TCP протокол базируется на IP для доставки пакетов, но добавляет две важные вещи:
- установление соединения — это позволяет ему, в отличие от IP, гарантировать доставку пакетов
- порты — для обмена пакетами между приложениями, а не просто узлами
Протокол TCP предназначен для обмена данными — это «надежный» протокол, потому что:
- Обеспечивает надежную доставку данных, так как предусматривает установления логического соединения;
- Нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организует повторную передачу;
- Делит передаваемый поток байтов на части — сегменты — и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.
The Network Interface Layer
Network Interface Layer is this layer of the four-layer TCP/IP model. This layer is also called a network access layer. It helps you to defines details of how data should be sent using the network.
It also includes how bits should optically be signaled by hardware devices which directly interfaces with a network medium, like coaxial, optical, coaxial, fiber, or twisted-pair cables.
A network layer is a combination of the data line and defined in the article of OSI reference model. This layer defines how the data should be sent physically through the network. This layer is responsible for the transmission of the data between two devices on the same network.
Сетевые протоколы UDP, TCP, ICMP
В рамках протокола TCP/IP для передачи данных используются протоколы — TCP и UDP. Многие наверняка слышали, что есть порты как TCP, так и UDP, но не все знают в чем разница и что это вообще. И так..
Передача данных по протоколу TCP (Transmission Control Protocol — Протокол Управления Передачей) предусматривает наличие подтверждений получения информации. «-Ну, мол, — получил? -Получил!» Если же передающая сторона не получит в установленные сроки необходимого подтверждения, то данные будут переданы повторно. Поэтому протокол TCP относят к протоколам, предусматривающим соединение, а UDP (User Datagram Protocol — Протокол Пользовательских Датаграмм) — нет. UDP применяется в тех случаях, когда не требуется подтверждения приема (например, DNS-запросы или IP-телефония (яркий представитель которой, — Skype) ). То есть разница заключается в наличии подтверждения приема. Казалось бы «Всего то!», но на практике это играет важную роль.
Есть еще так же протокол ICMP (Internet Control Message Protocol — межсетевой протокол управляющих сообщений), который используется для передачи данных о параметрах сети. Он включает в себя служебные типы пакетов, таки как ping, distination unreachable, TTL и пр.
Исчерпание адресного пространства
С 1980-х годов, было очевидно, что пул свободных адресов IPv4 был истощается со скоростью, которая не предполагалась изначально в первоначальном проектировании системы сетевого адреса. Угроза истощения была мотивацией для восстановительных технологий, таких как: сети классовой адресации, методы бесклассовой адресации (CIDR), и преобразование сетевых адресов (NAT). В конечном счете, был создан IPv6, который имеет гораздо больше доступных адресов.
Некоторые рыночные силы ускорили истощение IPv4 адресов:
- быстро растущее число Интернет-пользователей
- ADSL модемы, кабельные модемы
- мобильные устройства — ноутбуки, мобильные телефоны
Некоторые технологии смягчили истощение адресов IPv4:
- Трансляция сетевых адресов (NAT — Network address translation) — это технология, которая позволяет частной сети использовать один публичный IP-адрес. Она разрешает частные адреса для частной сети.
- Использование частных сетей
- Dynamic Host Configuration Protocol (DHCP)
- Виртуальный хостинг веб-сайтов на основе имени
- Более строгий контроль со стороны региональных интернет-реестров по распределению адресов по местным Интернет регистрам
- Перенумерация сети для возвращения крупных блоков адресного пространства, выделенного в первые дни Интернета
Основной пул адресов Интернета, утвержденный IANA, был исчерпан 3 февраля 2011 года, когда последние 5 блоков были выделены 5 региональным интернет-реестрам. Asia-Pacific Network Information Centre (APNIC) был первым региональным интернет-реестром, исчерпавшим свой региональный пул 15 апреля 2011, кроме небольшого количества адресного пространства, зарезервированного для перехода к IPv6, которые будут выделены в рамках гораздо более жесткой политики.
Принятое и стандартное долгосрочное решение заключается в использовании Internet Protocol Version 6. Размер адреса был увеличен в IPv6 до 128 бит, что обеспечивает существенное увеличение объема адресного пространства, что также позволяет улучшить агрегацию маршрута через Интернет и предлагает большие распределения подсетей с минимум 264 хост-адресов для конечных пользователей. Однако хосты IPv4-only не могут напрямую общаться с хостами IPv6-only, поэтому IPv6 в одиночку не обеспечивает немедленное решение проблемы исчерпания IPv4. Переход на IPv6 в стадии разработки, но завершение, как ожидается, займет значительное время.
Что такое сетевые порты
При передаче данных кроме IP-адресов отправителя и получателя пакет информации содержит в себе номера портов. Пример: 192.168.1.1:80, — в данном случае 80 — это номер порта. Порт — это некое число, которое используется при приеме и передаче данных для идентификации процесса (программы), который должен обработать данные. Так, если пакет послан на 80-й порт, то это свидетельствует, что информация предназначена серверу HTTP.
Номера портов с 1-го до 1023-й закреплены за конкретными программами (так называемые well-known-порты). Порты с номерами 1024-65 535 могут быть использованы в программах собственной разработки. При этом возможные конфликты должны решаться самими программами путем выбора свободного порта. Иными словами, порты будут распределяться динамически: возможно, что при следующем старте программа выберет иное значение порта, если, конечно, Вы вручную через настройки не задавали ей порт.
TCP
Протокол передачи данных TCP – протокол обеспечивающий надежную доставку пакетов данных, он обеспечивает установку соединения между двумя хостами методом «рукопожатия», после которого может осуществляться обмен данными.
Перед началом передачи пакетов через TCP соединение устанавливается сессия с получателем, в рамках которой затем производится передача данных. Это позволяет убедиться в том, что получатель существует и готов принимать данные. После завершения передачи сессия закрывается, получатель извещается о том, что данных больше не будет, а отправитель извещается о том, что получатель извещён.
Каждый пакет при обмене имеет свой порядковый номер. TCP автоматически упорядочивает пакеты, используя порядковый номер, и передает после склейки на уровень приложений. После отправки нескольких пакетов, ожидается подтверждение и порядковый номер следующего пакета. Если подтверждение не получено, отправка повторяется, если попытки не увенчались успехом, сессия разрывается. Количество пакетов данных, на которые будет запрашиваться подтверждение, зависит от надежности сети. Если данные теряются, то подтверждение автоматически запрашивается чаще. Это называется механизмом скользящего окна (sliding window), благодаря которому TCP может работать с сетями, независимо от уровня их надежности.
Применение TCP целесообразно там, где недопустима потеря данных, например, при авторизации, а также при передаче шифрованной информации.
История
Протокол управления передачей ранее был известен как «Программа управления передачей». Создание интернета, хотя многие утверждают, что он был изобретен, в основном можно отнести на счет Винт Серфа и Боба Хана. Одним из других примечательных имен в Интернет-технологиях является Джон Постел, который представил концепцию «стека протоколов», который также используется в протоколах TCP/IP. Это относится к их опубликованной в мае 1974 года работе под названием «Программа для взаимодействия по пакетным сетям». Он был опубликован Институтом инженеров электротехники и электроники при спонсорской поддержке Министерства обороны Соединенных Штатов Америки.
Что такое IPv4?
IPv4 — это аббревиатура от Internet Protocol version 4 (Интернет Протокол версии 4) – представляет собой основной тип адресов, используемый на сетевом уровне модели OSI, для осуществления передачи пакетов между сетями. IP-адреса состоят из четырех байт, к примеру 192.168.100.111.
Присвоение IP-адресов хостам осуществляется:
- вручную, настраивается системным администратором во время настройки вычислительной сети;
- автоматически, с использование специальных протоколов (в частности, с помощью протокола DHCP — Dynamic Host Configuration Protocol, протокол динамической настройки хостов).
Протокол IPv4 разработан в сентябре 1981 года.
Протокол IPv4 работает на межсетевом (сетевом) уровне стека протокола TCP/IP. Основной задачей протокола является осуществление передачи блоков данных (дейтаграмм) от хоста-отправителя, до хоста-назначения, где отправителями и получателями выступают вычислительные машины, однозначно идентифицируемые адресами фиксированной длины (IP-адресами). Также интернет протокол IP осуществляет, в случае необходимости, фрагментацию и сбору отправляемых дейтаграмм для передачи данных через другие сети с меньшим размером пакетов.
Недостатком протокола IP является ненадежность протокола, то есть перед началом передачи не устанавливается соединение, это говорит о том, что не подтверждается доставка пакетов, не осуществляется контроль корректности полученных данных (с помощью контрольной суммы) и не выполняется операция квитирования (обмен служебными сообщения с узлом-назначения и его готовностью приема пакетов).
Протокол IP отправляет и обрабатывает каждую дейтаграмму как независимую порцию данных, то есть не имея никаких других связей с другими дейтаграммами в глобальной сети интернет.
После отправки дейтаграммы протоколом IP в сеть, дальнейшие действия с этой дейтаграммой никак не контролируются отправителем. Получается, что если дейтаграмма, по каким-либо причинам, не может быть передана дальше по сети, она уничтожается. Хотя узел, уничтоживший дейтаграмму, имеет возможность сообщить о причине сбоя отправителю, по обратному адресу (в частности с помощью протокола ICMP). Гарантию доставки данных возложены на протоколы вышестоящего уровня (транспортный уровень), которые наделены для этого специальными механизмами (протокол TCP).
Как известно, на сетевом уровне модели OSI работают маршрутизаторы. Поэтому, одной из самых основных задач протокола IP – это осуществление маршрутизации дейтаграмм, другими словами, определение оптимального пути следования дейтаграмм (с помощью алгоритмов маршрутизации) от узла-отправителя сети к любому другому узлу сети на основании IP адреса.