Протокол IP
Каждый компьютер в сети имеют свой уникальный адрес. В глобальной сети Интернет, компьютер имеет этот адрес, который называется IP-адрес (Internet Protocol Address).
По аналогии с почтой, IP- адрес это номер дома. Но номера дома для получения письма недостаточно.
Передаваемая по сети информация передается не компьютером, как таковым, а приложениями, установленными на него. Такими приложениями являются сервер почты, веб-сервер, FTP и т.п. Для идентификации пакета передаваемой информации, каждое приложение прикрепляется к определенному порту. Например: веб-сервер слушает порт 80, FTP слушает порт 21, почтовый SMTP сервер слушает порт 25, сервер POP3 читает почту почтовых ящиков на порте 110.
Таким образом, в адресном пакете в протоколе TCP/IP, в адресатах появляется еще одна строка: порт. Аналог с почтой – порт это номер квартиры отправителя и адресата.
Пример:
Source address (Адрес отправителя):
IP: 82.146.47.66
Port: 2049
Destination address (Адресполучателя):
IP: 195.34.31.236
Port: 53
Стоит запомнить: IP адрес + номер порта – называется «сокет». В примере выше: с сокета 82.146.47.66:2049 пакет отправляется на сокет 195.34.31.236: 53.
Уровни стека протоколов TCP/IP
Здесь существует определенная иерархия. Стек протоколов TCP/IP предусматривает четыре уровня, каждый из которых обрабатывает свой набор протоколов:
Прикладной уровень: создан для обеспечения работы пользователя с сетью На этом уровне обрабатывается все то, что видит и делает пользователь. Уровень позволяет пользователю получить доступ к различным сетевым службам, например: доступ к базам данных, возможность прочитать список файлов и открыть их, отправить электронное сообщение или открыть веб-страницу. Вместе с пользовательскими данными и действиям, на этом уровне передается служебная информация.
Транспортный уровень: это механизм передачи пакетов в чистом виде. На этом уровне совершенно не имеет значения ни содержимое пакета, ни его принадлежность к какому бы то ни было действию. На этом уровне имеет значение только адрес узла отправки пакета и адрес узла, на который пакет должен быть доставлен. Как правило, размер фрагментов, передаваемых с использованием разных протоколов, может изменяться, потому на этом уровне блоки информации могут дробиться на выходе и собираться в единое целое в точке назначения. Этим обусловлена возможная потеря данных, если в момент передачи очередного фрагмента произойдет кратковременный разрыв соединения.
Транспортный уровень включает в себя много протоколов, которые делятся на классы, от простейших, которые просто передают данные, до сложных, которые оснащены функционалом подтверждения приема, или повторного запроса недополученного блока данных.
Данный уровень, предоставляет вышестоящему (прикладному) два типа сервиса:
- Осуществляет гарантированную доставку, с помощью протокола ТСР.
- Осуществляет доставку по возможности по протоколу UDP.
Чтобы обеспечить гарантированную доставку, согласно протоколу TCP устанавливается соединение, которое позволяет выставлять на пакетах нумерацию на выходе и подтверждать их прием на входе. Нумерация пакетов и подтверждение приема — это так называемая служебная информация. Этот протокол поддерживает передачу в режиме «Дуплекс». Кроме того, благодаря продуманному регламенту протокола, он считается очень надежным.
Протокол UDP предназначен для моментов, когда невозможно настроить передачу по протоколу TCP, либо приходится экономить на сегменте сетевой передачи данных. Также протокол UDP может взаимодействовать с протоколами более высокого уровня, для повышения надежности передачи пакетов.
Сетевой уровень или «уровень интернета»: базовый уровень для всей модели TCP/IP. Основной функционал этого уровня идентичен одноименному уровню модели OSI и описывает перемещение пакетов в составной сети, состоящей из нескольких, более мелких подсетей. Он связывает соседние уровни протокола TCP/IP.
Сетевой уровень является связующим между вышестоящим транспортным уровнем и нижестоящим уровнем сетевых интерфейсов. Сетевой уровень использует протоколы, которые получают запрос от транспортного уровня, и посредством регламентированной адресации передают обработанный запрос на протокол сетевых интерфейсов, указывая, по какому адресу направить данные.
На этом уровне используются следующие сетевые протоколы TCP/IP: ICMP, IP, RIP, OSPF. Основным, и наиболее популярным на сетевом уровне, конечно же является протокол IP (Internet Protocol). Основной его задачей является передача пакетов от одного роутера к другому до тех пор, пока единица данных не попадет на сетевой интерфейс узла назначения. Протокол IP разворачивается не только на хостах, но и на сетевом оборудовании: маршрутизаторах и управляемых коммутаторах. Протокол IP работает по принципу негарантированной доставки с максимальными усилиями. Т. е., для отправки пакета нет необходимости заранее устанавливать соединение. Такой вариант приводит к экономии трафика и времени на движении лишних служебных пакетов. Пакет направляется в сторону назначения, и вполне возможно, что узел останется недоступным. В таком случае возвращается сообщение об ошибке.
Уровень сетевых интерфейсов: отвечает за то, чтобы подсети с разными технологиями могли взаимодействовать друг с другом и передавать информацию в том же режиме. Реализовано это двумя простыми шагами:
- Кодирование пакета в единицу данных промежуточной сети.
- Преобразование информации о месте назначения в стандарты необходимой подсети и отправка единицы данных.
Этот подход позволяет постоянно расширять количество поддерживаемых технологий построения сетей. Как только появляется новая технология, она сразу попадает в стек проколов TCP/IP и позволяет сетям со старыми технологиями передавать данные в сети, построенные с применением более современных стандартов и способов.
Транспортный уровень
Из названия понятно, что на этом уровне происходит передача данных по сети. Так и есть. Два главных протокола здесь — TCP и UDP. Они как раз и отвечают за то, как именно будут передаваться данные.
TCP (Transmission Control Protocol) — это протокол, который гарантирует доставку данных в корректном виде. Он жёстко следит за каждым битом информации, но работает гораздо медленнее UDP.
Например, когда вы вводите логин и пароль при входе в социальную сеть, очень важно, чтобы все символы отправились в определённой последовательности. Если какие-то потеряются или изменятся, вы просто не сможете авторизоваться
Поэтому протокол TCP использует разные методы проверок — например, контрольные суммы.
Для этого и нужен TCP — чтобы данные доходили в правильном видеИзображение: Skillbox Media
А вот в видео или аудио небольшие потери некритичны, зато важна скорость передачи данных. Для таких задач как раз и придумали протокол UDP (User Datagram Protocol). Он уже не проверяет цельность битов, его задача — как можно быстрее передать данные с одного устройства на другое.
В протоколе TCP данные делятся на сегменты. Каждый сегмент — часть пакета. Сегменты нужны, чтобы передавать информацию по сети, учитывая её пропускную способность.
Например, если вы передаёте данные с компьютера, у которого пропускная способность 100 Мб/c, на смартфон с пропускной способность 10 Мб/c, то данные разделятся так, чтобы не застревать в самом медленном устройстве.
Вот так данные разделяются на несколько сегментов, чтобы протиснуться в сеть с пропускной способностью 10 Мб/сИзображение: Skillbox Media
Ещё сегментация важна для надёжности. Один большой пакет может быть потерян или направлен не тому адресату. А маленькие пакеты снижают риск подобных ошибок и даже позволяют проверять их количество. Если какой-то сегмент не получилось доставить, протокол TCP может запросить его у отправителя снова. Так обеспечивается надёжность.
Rational reactions[edit]
There was considerable controversy over the magnitude of the potential problem. Within the computer industry, though few people advocated outright ignoring the problem, most seemed to feel that it would be mostly an annoyance, and that the real concern was not so much in data centers as date-sensitive embedded control devices such as industrial monitoring and control devices, ATMs, and security systems. Banks were certainly alarmed at the notion, as a failure in their interest calculation systems could cause them to lose money. Within the IT world, however, there were numerous minor issues — many operating systems (Microsoft Windows in particular) used 2-digit years internally, and though the problem itself was conceptually simple, it required many man-hours of picking through code and archived data — an issue more of tedium than ingenuity.
Целевая группа интернет-инженеров
- Internet Draft — интернет-проект стандарта, который выносится на всеобщее утверждение. Если в течение шести месяцев никто не вносил правок и не было обсуждения предложения, документ удаляется.
- Proposed Standard — статус предложенного стандарта документ получает, если проект поддерживается сообществом редакторов. Документу присваивается собственный номер RFC.
- Draft Standard — проект стандарта. Это более высокий статус, который означает, что предложенный стандарт не только принят, но и ведется разработка и реализация как минимум двумя независимыми командами. В стандарты могут вноситься мелкие правки, но эти решения считаются уже достаточно стабильными.
- Internet Standard — интернет-стандарт. Высший статус RFC — это де-факто принятые стандарты, которые используют все разработчики.
- Historic — если стандарт устарел и заменен на новые формы, то такому документу присваивается статус «исторический».
- Исторически основные VoIP-протоколы — SIP и H.323. Стандарты SIP, безусловно, нужны, но долгое время SIP не претендовал на роль ведущего стандарта. Она отводилась H.323 (Н.323 — первый VoIP стек протоколов, который был принят Международным союзом электросвязи (ITU) в 1996 году). SIP к этому времени только набирал популярность и лишь в 1999 году был описан IETF в рекомендациях RFC2543. В последующие годы оба протокола развивались параллельно именно потому что не было утвержденного SIP-стандарта и, следовательно, чрезмерного формализма при внесении дополнений/изменений, SIP-протокол быстрее эволюционировал в условиях динамично развивающегося телекоммуникационного рынка.
Также не стоит забывать, что H.323 появился раньше, и многие фирмы-производители и поставщики услуг уже вложили значительные средства в оборудование Н.323 и не были заинтересованы в разработке стандартов SIP. Такая ситуация с Н.323 — одна из основных причин, почему до сих пор не существует стандарта SIP. - Протоколы интернет-телефонии так или иначе завязаны на интеграцию с обычной телефонией, которая в силу исторического развития и аппаратного обеспечения уступает современным средствам коммуникаций. Например, вы никогда не сможете установить видеосвязь с обычным телефоном — это очевидно. Следовательно, разработчики перераспределили свои силы в другие, более перспективные направления — унифицированные коммуникации, видеоконференцсвязь, мессенджеры и т. п.
- SIP (Session Initiation Protocol) — протокол установления соединений (сеанса). Имеет множество RFC, первым из которых появился RFC2543 еще в 1999 году. Затем, в 2002 году, протокол был несколько пересмотрен и вышел RFC3261, который считается Standards Track по текущий момент. Фактически SIP является аналогом SS-7 «для мира IP», цель протокола — найти абонента, установить его статус и организовать с ним сеанс связи. Собственно передача голосовой информации осуществляется по протоколу RTP или H.323.
- RTP (Real-time Transport Protocol) — протокол передачи реального времени. Впервые описание протокола появилось в RFC1889 в далеком 1996 году, а в 2003 году он был заменен на RFC3550. Протокол описывает способы передачи мультимедийных данных (не только голоса) в режиме реального времени. И это единственный протокол, связанный с телефонией, который имеет высший статус Internet Standard.
- RTSP (Real Time Streaming Protocol) — потоковый протокол реального времени. Описывается RFC2326. Если протокол RTP отвечал за восстановление сессии передачи данных end-to-end и описание формата, то RTSP — это протокол, который описывает потоковую передачу мультимедиаинформации и доступ к потокам данных, чем сильно расширяет функционал RTP, например реализацией конференций или записью потоковой информации на серверы.
- RTСP (Real-Time Transport Control Protocol) — протокол управления передачей в реальном времени. Дополняет протокол RTP функциями мониторинга и управления качеством связи. Имеет тот же номер RFC, что и RTP, — RFC3550. Собственно, RTCP и стал причиной замены старого RFC1889.
- ENUM — это акроним от E.164 NUmber Mapping. Исторически описывается стандартом RFC2915 (посвящён Name Authority Pointer (NAPTR) — одному из видов записи ресурса в системе доменных имён (DNS)), но с более поздними дополнениями RFC3761, RFC6116 и RFC6117. Этот стандарт, пожалуй, стоит описать более подробно в других статьях, но если коротко, то ENUM — это набор протоколов для объединения интернет-телефонии и PSTN на уровне выбора абонентов по привычному всем телефонному номеру. ENUM представляет собой что-то похожее на DNS, но для телефонных номеров и предназначен для расширения планов телефонной нумерации за счет интернет-клиентов.
On Y2K, some poor person got charged over $91,000 for renting The General’s Daughter.
Renting The General’s Daughter—the ho-hum 1999 military thriller starring John Travolta that was bound for the bargain bin—wouldn’t be anyone’s proudest moment. But one upstate New Yorker quickly found himself (and his taste in movies) making headlines nationwide, after the Y2K bug seemingly focused its wrath on the computer system of his local VHS rental store. The glitch erroneously reported that the man’s copy of the tape was 100 years overdue and presented him a bill for over $91,250 on New Year’s Day. The problem was quickly fixed, and the customer was given a free video rental for his troubles.
Что сделать в первую очередь
- Скачайте и запустите всемирно известный CCleaner (скачать по прямой ссылке) — это программа, которая очистит ваш компьютер от ненужного мусора, в результате чего система станет работать быстрее после первой же перезагрузки;
- Обновите все драйверы в системе с помощью программы Driver Updater (скачать по прямой ссылке) — она просканирует ваш компьютер и обновит все драйверы до актуальной версии за 5 минут;
- Установите Advanced System Optimizer (скачать по прямой ссылке) и включите в ней игровой режим, который завершит бесполезные фоновые процессы во время запуска игр и повысит производительность в игре.
Пакетная передача данных
Когда один компьютер хочет передать что-то другому, то он не отправляет байт за байтом по очереди. Вместо этого он отправляет данные мелкими порциями, а получатель собирает из них исходные данные. Этим как раз занимаются протоколы — разбивают всё на части и склеивает заново, потому что каждый пакет пронумерован.
Пакет может быть размером от 1 до 64 килобайт, но в нём всегда есть несколько обязательных полей — по ним протокол понимает, кому какие данные нужно передать.
Протокол IP разбивает исходные данные на пронумерованные пакетыВ каждом пакете: адреса отправителя и получателя, служебная информация, номер пакета и сами данные. Так получатель сможет собрать исходные данные и ответить, что они дошли без потерь
Обзор HTTP
Что на самом деле происходит, чтобы эта веб-страница могла отобразиться в вашем браузере?
Представьте, что Роб открывает свой браузер. Его браузер был настроен так, чтобы по умолчанию автоматически запрашивать веб-страницу Гарри (т.е. его домашнюю страницу). Общая логика показана на рисунке 1.
Рисунок 1 – Базовая логика работы приложения для получения веб-страницы
Итак, что же произошло на самом деле? Изначальный запрос Роба на самом деле просит Гарри отправить свою домашнюю страницу обратно Бобу. Программное обеспечение веб-сервера Гарри настроено так, чтобы знать, что домашняя веб-страница содержится в файле с именем home.htm. Роб получает файл от Гарри и отображает содержимое файла в окне веб-браузера Роба.
Базовые протоколы (IP, TCP, UDP)
Стек протоколов TCP/IP TCP/IP – собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:
- Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;
- Независимость от физической среды передачи;
- Система уникальной адресации;
- Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.
Рис. 3 Стек протоколов TCP/IP
Стек протоколов TCP/IP делится на 4 уровня:
- Прикладной
- Транспортный
- Межсетевой
- Физический и канальный.
Данные передаются в пакетах. Пакеты имеют заголовок и окончание, которые содержат служебную информацию. Данные, более верхних уровней вставляются, в пакеты нижних уровней.
Рис. 4 Пример инкапсуляции пакетов в стеке TCP/IP
Физический и канальный уровень. Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.
TCP IP – уровни сетевой модели
иерархия уровней TCP lP
Протоколы TCP (Transmission Control Protocol) и lP ( Internet Protocol) были разработаны Министерством обороны США, в стек входят несколько протоколов, используемых для определенных задач, например, отправка электронной почты через SMTP. TCP IP является официальным стандартом для глобальной сети Интернет, он основан на сетевой модели OSI и имеет четыре уровня, каждый из которых выполняет собственные функции.
Уровневая архитектура TCP IP описана в документе RFC 1122, но в некоторых других источниках присутствует пять уровней, так как физический выделен отдельно.
Канальный уровень сетевой модели TPC IP
На аппаратном уровне (Link Layer) определены правила взаимодействия сетевого оборудования между собой. Для передачи той или иной информации между хостами она должна быть поделена на пакеты и передана по нужному каналу связи.
На канальном уровне сетевой модели TCP IP определены физические свойства среды обмена информацией:
- максимальное расстояние, на которое передаются пакеты;
- частота сигнала;
- время задержки ответа.
Наиболее часто на канальном уровне используется протокол Ethernet.
Межсетевой уровень
Мировая паутина состоит из множества локальных подсетей, которые объединяются между собой посредством протокола TCP IP. Для организации взаимодействия между ними и корректного предоставления информации необходимо обеспечить возможность соединяться с другими локальными сетями. В основе такой маршрутизации лежит обращение к IP с использованием маски подсети. Если передать данные нужно в пределах одной локальной сети, пакеты отправляются напрямую по IP, в этом случае использование маски не требуется.
Назначение маски подсети – помочь маршрутизатору определить, какому хосту и как передавать данные. Пакет данных может путешествовать через несколько маршрутизаторов, пока не достигнет получателя. IP может быть представлен в двух форматах: v4 и v6, которые не совместимы между собой.
v4 имеет формат из четырех блоков чисел от 0 до 255, которые разделяются точками. До 1998 года использовался только этот формат, но с ростом количества устройств в Интернете возникла необходимость большего количества уникальных адресов. v6 использует 128-битные адреса, состоящие из восьми блоков, разделяемых двоеточием, при записи адреса допускаются сокращения по определенным правилам.
Протокол lP предназначен для идентификации адресата, но он не гарантирует целостность данных. lP инкапсулирует в себе другие протоколы такие как ICMP (межсетевой протокол управляющих сообщений) и IGMP (межсетевой протокол группового управления). Первый служит для передачи сообщений об ошибках при попытке связи между разными хостами. Второй объединяет сетевые устройства в группы для передачи информации только тем компьютерам, которые ее запросили, например, в онлайн-играх или воспроизведении потокового видео.
Транспортный уровень
Transport Layer берет на себя функцию контроля доставки пакетов. На этом уровне работают протоколы TCP и UDP. Первый устанавливает соединение между двумя хостами и гарантирует предоставление информации в полном объеме. Если во время передачи часть информации была утеряна, протокол запрашивает ее повторно, таким образом у адресата есть полный пакет данных, собранный в нужном порядке.
Протокол UDP не устанавливает соединение между хостами, а передает автономные датаграммы. В процессе передачи часть из них может быть утеряна, проверка целостности информации не производится. UDP используется в случаях, когда требуется снизить нагрузку на сеть, а потеря какой-то доли информации не является критичной для адресата, например, при воспроизведении потокового видео.
Прикладной уровень
Applicatopn Layer объединяет три уровня сетевой модели OSI: сеансовый, уровень представления и прикладной. На прикладном уровне происходит поддержание сеанса связи между хостами, преобразование передаваемых данных, работа с конечным пользователем и сетью. Здесь же используются стандарты API интерфейса, которые передают команды для выполнения определенных задач.
На прикладном уровне используются производные протоколы, предназначенные для выполнения тех или иных действий. HTTPS открывает сайты в Интернете, электронная почта отправляется с использованием протокола SMTP, для динамического назначения адресов в сети применяется набор правил, определенных протоколом DHCP.
Обзор протокола IMAP
IMAP (Internet Message Access Protocol) – протокол прикладного уровня для доступа к электронной почте.
IMAP предоставляет пользователю богатые возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без необходимости постоянной пересылки с сервера и обратно файлов с полным содержанием писем.
IMAP был разработан для замены более простого протокола POP3 и имеет следующие преимущества по сравнению с последним:
- Письма хранятся на сервере, а не на клиенте. Возможен доступ к одному и тому же почтовому ящику с разных клиентов. Поддерживается также одновременный доступ нескольких клиентов. В протоколе есть механизмы с помощью которых клиент может быть проинформирован об изменениях, сделанных другими клиентами.
- Поддержка нескольких почтовых ящиков (или папок). Клиент может создавать, удалять и переименовывать почтовые ящики на сервере, а также перемещать письма из одного почтового ящика в другой.
- Возможно создание общих папок, к которым могут иметь доступ несколько пользователей.
- Информация о состоянии писем хранится на сервере и доступна всем клиентам. Письма могут быть помечены как прочитанные, важные и т. п.
- Поддержка поиска на сервере. Нет необходимости скачивать с сервера множество сообщений для того чтобы найти одно нужное.
- Поддержка онлайн-работы. Клиент может поддерживать с сервером постоянное соединение, при этом сервер в реальном времени информирует клиента об изменениях в почтовых ящиках, в том числе о новых письмах.
- Предусмотрен механизм расширения возможностей протокола.