В основе работы глобальной сети Интернет лежит набор (стек) протоколов TCP/IP. Но эти термины лишь на первый взгляд кажутся сложными. На самом деле стек протоколов TCP/IP — это простой набор правил обмена информацией, и правила эти на самом деле вам хорошо известны, хоть вы, вероятно, об этом и не догадываетесь. Да, все именно так, по существу в принципах, лежащих в основе протоколов TCP/IP, нет ничего нового: все новое — это хорошо забытое старое.
Человек может учиться двумя путями:
- Через тупое формальное зазубривание шаблонных способов решения типовых задач (чему сейчас в основном и учат в школе). Такое обучение малоэффективно. Наверняка вам приходилось наблюдать панику и полную беспомощность бухгалтера при смене версии офисного софта — при малейшем изменении последовательности кликов мышки, требуемых для выполнения привычных действий. Или приходилось видеть человека, впадающего в ступор при изменении интерфейса рабочего стола?
- Через понимание сути проблем, явлений, закономерностей. Через понимание принципов построения той или иной системы. В этом случае обладание энциклопедическими знаниями не играет большой роли — недостающую информацию легко найти. Главное — знать, что искать. А для этого необходимо не формальное знание предмета, а понимание сути.
В этой статье я предлагаю пойти вторым путем, так как понимание принципов, лежащих в основе работы Интернета, даст вам возможность чувствовать себя в Интернете уверенно и свободно — быстро решать возникающие проблемы, грамотно формулировать проблемы и уверенно общаться с техподдержкой.
Итак, начнем.
Принципы работы интернет-протоколов TCP/IP по своей сути очень просты и сильно напоминают работу нашей советской почты.
Вспомните, как работает наша обычная почта. Сначала вы на листке пишете письмо, затем кладете его в конверт, заклеиваете, на обратной стороне конверта пишете адреса отправителя и получателя, а потом относите в ближайшее почтовое отделение. Далее письмо проходит через цепочку почтовых отделений до ближайшего почтового отделения получателя, откуда оно тетей-почтальоном доставляется до по указанному адресу получателя и опускается в его почтовый ящик (с номером его квартиры) или вручается лично. Все, письмо дошло до получателя. Когда получатель письма захочет вам ответить, то он в своем ответном письме поменяет местами адреса получателя и отправителя, и письмо отправиться к вам по той же цепочке, но в обратном направлении.
На конверте письма будет написано примерно следующее:
Адрес отправителя: От кого: Иванов Иван Иванович Откуда: Ивантеевка, ул. Большая , д. 8, кв. 25 Адрес получателя: Кому: Петров Петр Петрович Куда: Москва, Усачевский переулок, д. 105, кв. 110
Теперь мы готовы рассмотреть взаимодействие компьютеров и приложений в сети Интернет (да и в локальной сети тоже). Обратите внимание, что аналогия с обычной почтой будет почти полной.
Каждый компьютер (он же: узел, хост) в рамках сети Интернет тоже имеет уникальный адрес, который называется IP-адрес (Internet Protocol Address), например: 195.34.32.116. IP адрес состоит из четырех десятичных чисел (от 0 до 255), разделенных точкой. Но знать только IP адрес компьютера еще недостаточно, т.к. в конечном счете обмениваются информацией не компьютеры сами по себе, а приложения, работающие на них. А на компьютере может одновременно работать сразу несколько приложений (например почтовый сервер, веб-сервер и пр.). Для доставки обычного бумажного письма недостаточно знать только адрес дома — необходимо еще знать номер квартиры. Также и каждое программное приложение имеет подобный номер, именуемый номером порта. Большинство серверных приложений имеют стандартные номера, например: почтовый сервис привязан к порту с номером 25 (еще говорят: «слушает» порт, принимает на него сообщения), веб-сервис привязан к порту 80, FTP — к порту 21 и так далее.
Таким образом имеем следующую практически полную аналогию с нашим обычным почтовым адресом:
"адрес дома" = "IP компьютера" "номер квартиры" = "номер порта"
В компьютерных сетях, работающих по протоколам TCP/IP, аналогом бумажного письма в конверте является пакет, который содержит собственно передаваемые данные и адресную информацию — адрес отправителя и адрес получателя, например:
Адрес отправителя (Source address): IP: 82.146.49.55 Port: 2049 Адрес получателя (Destination address): IP: 195.34.32.116 Port: 53 Данные пакета: ...
Конечно же в пакетах также присутствует служебная информация, но для понимания сути это не важно.
Обратите внимание, комбинация: «IP адрес и номер порта» — называется «сокет».
В нашем примере мы с сокета 82.146.49.55:2049 посылаем пакет на сокет 195.34.32.116:53, т.е. пакет пойдет на компьютер, имеющий IP адрес 195.34.32.116, на порт 53. А порту 53 соответствует сервер распознавания имен (DNS-сервер), который примет этот пакет. Зная адрес отправителя, этот сервер сможет после обработки нашего запроса сформировать ответный пакет, который пойдет в обратном направлении на сокет отправителя 82.146.49.55:2049, который для DNS сервера будет являться сокетом получателя.
Как правило взаимодействие осуществляется по схеме «клиент-сервер»: «клиент» запрашивает какую-либо информацию (например страницу сайта), сервер принимает запрос, обрабатывает его и посылает результат. Номера портов серверных приложений общеизвестны, например: почтовый SMTP сервер «слушает» 25-й порт, POP3 сервер, обеспечивающий чтение почты из ваших почтовых ящиков «слушает» 110-порт, веб-сервер — 80-й порт и пр.
Большинство программ на домашнем компьютере являются клиентами — например почтовый клиент Outlook, веб-обозреватели IE, FireFox и пр.
Номера портов на клиенте не фиксированные как у сервера, а назначаются операционной системой динамически. Фиксированные серверные порты как правило имеют номера до 1024 (но есть исключения), а клиентские начинаются после 1024.
Повторение — мать учения: IP — это адрес компьютера (узла, хоста) в сети, а порт — номер конкретного приложения, работающего на этом компьютере.
Однако человеку запоминать цифровые IP адреса трудно — куда удобнее работать с буквенными именами. Ведь намного легче запомнить слово, чем набор цифр. Так и сделано — любой цифровой IP адрес можно связать с буквенно-цифровым именем. В результате например вместо 82.146.49.55 можно использовать имя www.ofnet.ru. А преобразованием доменного имени в цифровой IP адрес занимается сервис доменных имен — DNS (Domain Name System).
Рассмотрим подробнее, как это работает. Ваш провайдер явно (на бумажке, для ручной настройки соединения) или неявно (через автоматическую настройку соединения) предоставляет вам IP адрес сервера имен (DNS). На компьютере с этим IP адресом работает приложение (сервер имен), которое знает все доменные имена в Интернете и соответствующие им цифровые IP адреса. DNS-сервер «слушает» 53-й порт, принимает на него запросы и выдает ответы, например:
Запрос от нашего компьютера: "Какой IP адрес соответствует имени www.ofnet.ru?" Ответ сервера: "82.146.49.55."
Теперь рассмотрим, что происходит, когда в своем браузере вы набираете доменное имя (URL) этого сайта (www.ofnet.ru) и, нажав <enter>, в ответ от веб-сервера получаете страницу этого сайта.
Например:
IP адрес нашего компьютера: 91.76.65.216 Браузер: Internet Explorer (IE), DNS сервер (стрима): 195.34.32.116 (у вас может быть другой), Страница, которую мы хотим открыть: www.ofnet.ru.
Набираем в адресной строке браузера доменное имя www.ofnet.ru и жмем <enter>. Далее операционная система производит примерно следующие действия:
Отправляется запрос (точнее пакет с запросом) DNS серверу на сокет 195.34.32.116:53. Как было рассмотренно выше, порт 53 соответствует DNS-серверу — приложению, занимающемуся распознаванием имен. А DNS-сервер, обработав наш запрос, возвращает IP-адрес, который соответствует введенному имени.
Диалог примерно следующий:
- Какой IP адрес соответствует имени www.ofnet.ru? - 82.146.49.55.
Далее наш компьютер устанавливает соединение с портом 80 компьютера 82.146.49.55 и посылает запрос (пакет с запросом) на получение страницы www.ofnet.ru. 80-й порт соответствует веб-серверу. В адресной строке браузера 80-й порт как правило не пишется, т.к. используется по умолчанию, но его можно и явно указать после двоеточия — http://www.ofnet.ru:80.
Приняв от нас запрос, веб-сервер обрабатывает его и в нескольких пакетах посылает нам страницу в на языке HTML — языке разметки текста, который понимает браузер.
Наш браузер, получив страницу, отображает ее. В результате мы видим на экране главную страницу этого сайта.
Зачем эти принципы надо понимать?
Например, вы заметили странное поведение своего компьютера — непонятная сетевая активность, тормоза и пр. Что делать? Открываем консоль (нажимаем кнопку «Пуск» — «Выполнить» — набираем cmd — «Ок»). В консоли набираем команду netstat -anи жмем <Enter>. Эта утилита отобразит список установленных соединений между сокетами нашего компьютера и сокетами удаленных узлов. Если мы видим в колонке «Внешний адрес» какие-то чужие IP адреса, а через двоеточие 25-й порт, что это может означать? (Помните, что 25-й порт соответствует почтовому серверу?) Это означает то, что ваш компьютер установил соединение с каким-то почтовым сервером (серверами) и шлет через него какие-то письма. И если ваш почтовый клиент (Outlook например) в это время не запущен, да если еще таких соединений на 25-й порт много, то, вероятно, в вашем компьютере завелся вирус, который рассылает от вашего имени спам или пересылает номера ваших кредитных карточек вкупе с паролями злоумышленникам.
Также понимание принципов работы Интернета необходимо для правильной настройки файерволла (проще говоря брандмауэра :)). Эта программа (которая часто поставляется вместе с антивирусом), предназначенна для фильтрации пакетов — «своих» и «вражеских». Своих пропускать, чужих не пущать. Например, если ваш фаерволл сообщает вам, что некто хочет установить соединение с каким-либо портом вашего компьютера. Разрешить или запретить?
Ну и самое главное — эти знания крайне полезны при общении с техподдержкой.
Напоследок приведу список портов, с которыми вам, вероятно, придется столкнуться:
135-139 — эти порты используются Windows для доступа к общим ресурсам компьютера — папкам, принтерам. Не открывайте эти порты наружу, т.е. в районную локальную сеть и Интернет. Их следует закрыть фаерволлом. Также если в локальной сети вы не видите ничего в сетевом окружении или вас не видят, то вероятно это связано с тем, что фаерволл заблокировал эти порты. Таким образом для локальной сети эти порты должны быть открыты, а для Интернета закрыты. 21 — порт FTP сервера. 25 — порт почтового SMTP сервера. Через него ваш почтовый клиент отправляет письма. IP адрес SMTP сервера и его порт (25-й) следует указать в настройках вашего почтового клиента. 110 — порт POP3 сервера. Через него ваш почтовый клиент забирает письма из вашего почтового ящика. IP адрес POP3 сервера и его порт (110-й) также следует указать в настройках вашего почтового клиента. 80 — порт WEB-сервера. 3128, 8080 — прокси-серверы (настраиваются в параметрах браузера).
Несколько специальных IP адресов:
127.0.0.1 — это localhost, адрес локальной системы, т.е. локальный адрес вашего компьютера. 0.0.0.0 - так обозначаются все IP-адреса. 192.168.xxx.xxx — адреса, которые можно произвольно использовать в локальных сетях, в глобальной сети Интернет они не используются. Они уникальны только в рамках локальной сети. Адреса из этого диапазона вы можете использовать по своему усмотрению, например, для построения домашней или офисной сети.
Что такое маска подсети и шлюз по умолчанию (роутер, маршрутизатор)?
(Эти параметры задаются в настройках сетевых подключений).
Все просто. Компьютеры объединяются в локальные сети. В локальной сети компьютеры напрямую «видят» только друг друга. Локальные сети соединяются друг с другом через шлюзы (роутеры, маршрутизаторы). Маска подсети предназначена для определения — принадлежит ли компьютер-получатель к этой же локальной сети или нет. Если компьютер-получатель принадлежит этой же сети, что и компьютер-отправитель, то пакет передается ему напрямую, в противном случае пакет отправляется на шлюз по умолчанию, который далее, по известным ему маршрутам, передает пакет в другую сеть, т.е. в другое почтовое отделение (по аналогии с советской почтой).
Напоследок рассмотрим что же означают непонятные термины:
TCP/IP — это название набора сетевых протоколов. На самом деле передаваемый пакет проходит несколько уровней. (Как на почте: сначала вы пишете писмо, потом помещаете в конверт с адресом, затем на почте на нем ставится штамп и т.д.).
IP протокол — это протокол так называемого сетевого уровня. Задача этого уровня — доставка ip-пакетов от компьютера отправителя к компьютеру получателю. По-мимо собственно данных, пакеты этого уровня имеют ip-адрес отправителя и ip-адрес получателя. Номера портов на сетевом уровне не используются. Какому порту, т.е. приложению адресован этот пакет, был ли этот пакет доставлен или был потерян, на этом уровне неизвестно — это не его задача, это задача транспортного уровня.
TCP и UDP — это протоколы так называемого транспортного уровня. Транспортный уровень находится над сетевым. На этом уровне к пакету добавляется порт отправителя и порт получателя.
TCP — это протокол с установлением соединения и с гарантированной доставкой пакетов. Сначала производится обмен специальными пакетами для установления соединения, происходит что-то вроде рукопожатия (-Привет. -Привет. -Поболтаем? -Давай.). Далее по этому соединению туда и обратно посылаются пакеты (идет беседа), причем с проверкой, дошел ли пакет до получателя. Если пакет не дошел, то он посылается повторно («повтори, не расслышал»).
UDP — это протокол без установления соединения и с негарантированной доставкой пакетов. (Типа: крикнул что-нибудь, а услышат тебя или нет — неважно).
Над транспортным уровнем находится прикладной уровень. На этом уровне работают такие протоколы, как http, ftp и пр. Например HTTP и FTP — используют надежный протокол TCP, а DNS-сервер работает через ненадежный протокол UDP.
Как посмотреть текущие соединения?
Текущие соединения можно посмотреть с помощью команды
netstat -an
(параметр n указывает выводить IP адреса вместо доменных имен).
Запускается эта команда следующим образом:
«Пуск» — «Выполнить» — набираем cmd — «Ок». В появившейся консоли (черное окно) набираем команду netstat -an и жмем <Enter>. Результатом будет список установленных соединений между сокетами нашего компьютера и удаленных узлов.
Например получаем:
Активные подключения
Имя | Локальный адрес | Внешний адрес | Состояние |
TCP | 0.0.0.0:135 | 0.0.0.0:0 | LISTENING |
TCP | 91.76.65.216:139 | 0.0.0.0:0 | LISTENING |
TCP | 91.76.65.216:1719 | 212.58.226.20:80 | ESTABLISHED |
TCP | 91.76.65.216:1720 | 212.58.226.20:80 | ESTABLISHED |
TCP | 91.76.65.216:1723 | 212.58.227.138:80 | CLOSE_WAIT |
TCP | 91.76.65.216:1724 | 212.58.226.8:80 | ESTABLISHED |
...
В этом примере 0.0.0.0:135 — означает, что наш компьютер на всех своих IP адресах слушает (LISTENING) 135-й порт и готов принимать на него соединения от кого угодно (0.0.0.0:0) по протоколу TCP.
91.76.65.216:139 — наш компьютер слушает 139-й порт на своем IP-адресе 91.76.65.216.
Третья строка означает, что сейчас установлено (ESTABLISHED) соединение между нашей машиной (91.76.65.216:1719) и удаленной (212.58.226.20:80). Порт 80 означает, что наша машина обратилась с запросом к веб-серверу (у меня, действительно, открыты страницы в браузере).
В следующих статьях мы рассмотрим, как применять эти знания, например общаясь с техподдержкой.
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую. Чтобы обеспечить такую возможность, был разработан стек интернет-протоколов, известный как TCP/IP.
Разработка сетевой модели осуществлялась при содействии Министерства обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:
Уровневая модель TCP/IP
Выше мы уже упоминали, что модель TCP/IP разделена на уровни, как и OSI, но отличие двух моделей в количестве уровней. Документами, определяющими сертификацию модели, являются RFC 1122 и RFC1123. Эти стандарты описывают четыре уровня абстракции модели TCP/IP: прикладной, транспортный, межсетевой и канальный. Существуют и другие версии описания модели, в том числе включающие иное количество уровней и их наименований. Однако в этой статье мы придерживаемся оригинальной версии и далее рассмотрим четыре уровня модели.
Канальный уровень (link layer)
Предназначение канального уровня — дать описание тому, как происходит обмен информацией на уровне сетевых устройств, определить, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.
Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, который мы рассмотрим в конце статьи.
Межсетевой уровень (internet layer)
Глобальная сеть интернет состоит из множества локальных сетей, взаимодействующих между собой. Межсетевой уровень используется, чтобы описать обеспечение такого взаимодействия.
Межсетевое взаимодействие — это основной принцип построения интернета. Локальные сети по всему миру объединены в глобальную, а передачу данных между этими сетями осуществляют магистральные и пограничные маршрутизаторы.
Именно на межсетевом уровне функционирует протокол IP, позволивший объединить разные сети в глобальную. Как и протокол TCP, он дал название модели, рассматриваемой в статье.
Маска подсети и IP-адреса
Маска подсети помогает маршрутизатору понять, как и куда передавать пакет. Подсетью может являться любая сеть со своими протоколами. Маршрутизатор передает пакет напрямую, если получатель находится в той же подсети, что и отправитель. Если же подсети получателя и отправителя различаются, пакет передается на второй маршрутизатор, со второго на третий и далее по цепочке, пока не достигнет получателя.
Протокол IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Протокол имеет две действующие версии, первая из которых — IPv4 (IP version 4, версии 4) — была описана в 1981 году.
IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2^32). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает класс сети, классов всего 5: A, B, C, D, E. Gри этом адреса сети D являются мультикастовыми, а сети E вообще не используются.
Рассмотрим, например, IPv4 адрес класса С 223.135.100.7. Первые три октета определяют класс и номер сети, а последний означает номер конечного устройства. Например, если необходимо отправить информацию с компьютера номер 7 с IPv4 адресом 223.135.100.7 на компьютер номер 10 в той же подсети, то адрес компьютера получателя будет следующий: 223.135.100.10.
В связи с быстрым ростом сети интернет остро вставала необходимость увеличения числа возможных IP-адресов. В 1995 году впервые был описан протокол IPv6 (IP version 6, версии 6), который использует 128-битные адреса и позволяет назначить уникальные адреса для 2^128 устройств.
IPv6 имеет вид восьми блоков по четыре шестнадцатеричных значения, а каждый блок разделяется двоеточием. IPv6 выглядит следующим образом:
2dab:ffff:0000:0000:01aa:00ff:dd72:2c4a.
Так как IPv6 адреса длинные, их разрешается сокращать по определенным правилам, которые также описываются RFC:
- Для написания адреса используются строчные буквы латинского алфавита: a, b, c, d, e, f.
- Ведущие нули допускается не указывать — например, в адресе выше :00ff: можно записать как :ff:.
- Группы нулей, идущие подряд, тоже допустимо сокращать и заменять на двойное двоеточие. На примере выше это выглядит так: 2dab:аааа::01aa:00ff:dd72:2c4a. Допускается делать не больше одного подобного сокращения в адресе IPv6 на наибольшей последовательности нулей. Если одинаково длинных последовательностей несколько — на самой левой из них.
IP предназначен для определения адресата и доставки ему информации. Он предоставляет услугу для вышестоящих уровней, но не гарантирует целостность доставляемой информации.
IP способен инкапсулировать другие протоколы, предоставлять место, куда они могут быть встроены. К таким протоколам, например, относятся ICMP (межсетевой протокол управляющих сообщений) и IGMP (межсетевой протокол группового управления). Информация о том, какой протокол инкапсулируется, отражается в заголовке IP-пакета. Так, ICMP будет обозначен числом 1, а IGMP будет обозначен числом 2.
ICMP
ICMP в основном используется устройствами в сети для доставки сообщений об ошибках и операционной информации, сообщающей об успехе или ошибке при связи с другим устройством. Например, именно с использованием ICMP осуществляется передача отчетов о недоступности устройств в сети. Кроме того, ICMP используется при диагностике сети — к примеру, в эксплуатации утилит ping или traceroute.
ICMP не передает какие-либо данные, что отличает его от протоколов, работающих на транспортном уровне — таких как TCP и UDP. ICMP, аналогично IP, работает на межсетевом уровне и фактически является неотъемлемой частью при реализации модели TCP/IP. Стоит отметить, что для разных версий IP используются и разные версии протокола ICMP.
Транспортный уровень (transport layer)
Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.
TCP (протокол управления передачей) — надежный, он обеспечивает передачу информации, проверяя дошла ли она, насколько полным является объем полученной информации и т.д. TCP дает возможность двум конечным устройствам производить обмен пакетами через предварительно установленное соединение. Он предоставляет услугу для приложений, повторно запрашивает потерянную информацию, устраняет дублирующие пакеты, регулируя загруженность сети. TCP гарантирует получение и сборку информации у адресата в правильном порядке.
UDP (протокол пользовательских датаграмм) — ненадежный, он занимается передачей автономных датаграмм. UDP не гарантирует, что всех датаграммы дойдут до получателя. Датаграммы уже содержат всю необходимую информацию, чтобы дойти до получателя, но они все равно могут быть потеряны или доставлены в порядке отличном от порядка при отправлении.
UDP обычно не используется, если требуется надежная передача информации. Использовать UDP имеет смысл там, где потеря части информации не будет критичной для приложения, например, в видеоиграх или потоковой передаче видео. UDP необходим, когда делать повторный запрос сложно или неоправданно по каким-то причинам.
Протоколы транспортного уровня не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.
Прикладной уровень (application layer)
В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний, содержащим сведения о том, как приложения взаимодействуют между собой. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.
Протоколы прикладного уровня действуют для большинства приложений, они предоставляют услуги пользователю или обмениваются данными с «коллегами» с нижних уровней по уже установленным соединениям. Здесь для большинства приложений созданы свои протоколы. Например, браузеры используют HTTP для передачи гипертекста по сети, почтовые клиенты — SMTP для передачи почты, FTP-клиенты — протокол FTP для передачи файлов, службы DHCP — протокол назначения IP-адресов DHCP и так далее.
Сети в Selectel
Узнайте, как устроена сетевая архитектура крупного провайдера.
Узнать
Зачем нужен порт и что означает термин «сокет»
Приложения прикладного уровня, общаются также с предыдущим, транспортным, но они видят его протоколы как «черные ящики». Для приема-передачи информации они могут работать, например, с TCP или UDP, но понимают только конечный адрес в виде IP и порта, а не принцип их работы.
Как говорилось ранее, IP-адрес присваивается каждому конечному устройству протоколом межсетевого уровня. Но обмен данными происходит не между конечными устройствами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP-адреса, поэтому для идентификации приложений применяют также порты. Комбинация IP-адреса и порта называется сокетом, или гнездом (socket).
Кроме собственных протоколов, приложения на прикладном уровне зачастую имеют и фиксированный номер порта для обращения к сети. Администрация адресного пространства интернет (IANA), занимающаяся выделением диапазонов IP-адресов, отвечает еще за назначение сетевым приложениям портов.
Так почтовые приложения, которые общаются по SMTP-протоколу, используют порт 25, по протоколу POP3 — порт 110, браузеры при работе по HTTP — порт 80, FTP-клиенты — порт 21. Порт всегда записывается после IP и отделяется от него двоеточием, выглядит это, например, так: 192.168.1.1:80.
Что такое DNS и для чего используется эта служба
Чтобы не запоминать числовые адреса интернет-серверов была создана DNS — служба доменных имен. DNS всегда слушает на 53 порту и преобразует буквенные имена сетевых доменов в числовые IP-адреса и наоборот. Служба DNS позволяет не запоминать IP — компьютер самостоятельно посылает запрос «какой IP у selectel.ru?» на 53 порт DNS-сервера, полученного от поставщика услуг интернет.
DNS-сервер дает компьютеру ответ «IP для selectel.ru — XXX.XXX.XXX.XXX». Затем, компьютер устанавливает соединение с веб-сервером полученного IP, который слушает на порту 80 для HTTP-протокола и на порту 443 для HTTPS. В браузере порт не отображается в адресной строке, а используется по умолчанию, но, по сути, полный адрес сайта Selectel выглядит вот так: https://selectel.ru:443.
Для обеспечения корректной работы протоколов различных уровней в сетевых моделях используется специальный метод — инкапсуляция. Суть этого метода заключается в добавлении заголовка протокола текущего уровня к данным, полученным от протокола вышестоящего уровня. Процесс, обратный описанному, называется декапсуляцией. Оба процесса осуществляются на компьютерах получателя и отправителя данных попеременно, это позволяет долго не удерживать одну сторону канала занятой, оставляя время на передачу информации другому компьютеру.
Стек протоколов, снова канальный уровень
О канальном уровне модели TCP/IP мы рассказали меньше всего. Давайте вернемся еще раз к началу, чтобы рассмотреть инкапсуляцию протоколов и что значит «стек».
Большинству пользователей знаком протокол Ethernet. В сети, по стандарту Ethernet, устройства отправителя и адресата имеют определенный MAC-адрес — идентификатор «железа». MAC-адрес инкапсулируется в Ethernet вместе с типом передаваемых данных и самими данными. Фрагмент данных, составленных в соответствии с Ethernet, называется фреймом, или кадром (frame).
MAC-адрес каждого устройства уникален, и двух «железок» с одинаковым адресом не должно существовать. Совпадение может привести к сетевым проблемам. Таким образом, при получении кадра сетевой адаптер занимается извлечением полученной информации и ее дальнейшей обработкой.
После ознакомления с уровневой структурой модели становится понятно, что информация не может передаваться между двумя компьютерами напрямую. Сначала кадры передаются на межсетевой уровень, где компьютеру отправителя и компьютеру получателя назначается уникальный IP. После чего, на транспортном уровне, информация передается в виде TCP-фреймов либо UDP-датаграмм.
На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.
Point-to-Point протоколы
Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе, также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).
У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.
PPP и его старший аналог SLIP (протокол последовательной межсетевой связи) формально относятся к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.
Заключение
Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.
Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/IP получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.
Протоколы — это специализированные наборы правил, которые помогают организовать передачу данных от одного компьютера к другому. Протокол tcp ip — это набор протоколов, который сегодня используется наиболее часто. Передача файлов, удаленный вход в систему и даже электронная почта — все это поддерживается ими.
Давайте изучим семейство протоколов tcp ip, чтобы узнать больше о том, что это такое, а также о его возможностях и преимуществах. Также разберем, что такое стек tcp ip и какие модели tcp ip существуют.
Что включает в себя стек TCP/IP?
Реализация пакетной модели соединения стала возможной благодаря протоколам этого типа. По сути, они являются фундаментом, на котором построен весь Интернет.
И когда мы говорим о комбинации протоколов tcp ip, мы почти всегда подразумеваем всю сеть, которая функционирует на основе комбинации двух различных протоколов — TCP и IP. В набор протоколов входит ряд соглашений о межсетевом взаимодействии и маршрутизации.
Пользователи из различных учреждений, таких как университеты, исследовательские центры, промышленные предприятия и правительственные учреждения, могут общаться друг с другом с помощью подобного инструмента. Протокол управления передачей — это то, что обозначает аббревиатура TCP. По сути, это все, что нужно; передача данных контролируется уникальным протоколом.
Его цель — облегчить создание и поддержание надежных соединений между различными электронными устройствами. Он отвечает за передачу данных, контролирует и управляет общим объемом отправляемых файлов, а также повторяет процесс отправки в случае неудачи.
Ниже приведен список характеристик, которыми обладает протокол TCP:
- Взаимодействие, реализуемое на уровне логического соединения.
- Организация отправки потоковых данных.
- Соединение, которое идет в обоих направлениях.
- Функция передачи отдельных пакетов данных по отдельности.
- Для увеличения скорости передачи данных используется принцип «скользящего окна».
IP, что расшифровывается как «Internet Protocol», — это название еще одного протокола. Он служит основой архитектуры протокола передачи файлов и необходим для того, чтобы отправить сетевой пакет по нужному адресу.
Каждый фрагмент информации сначала предварительно сортируется на несколько пакетов, после чего они доставляются в конечный пункт назначения совершенно независимо друг от друга.
Ниже приведен список основных характеристик протокола tcp ip:
- Осуществление обмена данными посредством использования сегментов.
- Взаимодействие между электронными гаджетами, не требующее использования логического соединения.
- Когда это необходимо, сегменты IP фрагментируются.
- Нет возможности контролировать скорость продвижения сегментов.
- Для поддержания связи между компьютерами, также известными как хосты, и сетью необходим стек сетевых протоколов.
Основное преимущество использования этого набора заключается в том, что он обеспечивает независимость от базового оборудования, что невозможно при использовании других сетевых технологий.
Иными словами, TCP/IP не зависит от особенностей аппаратного обеспечения, что позволяет организовать передачу данных между сетями, использующими различные технологии передачи.
Установление соединения между любыми двумя устройствами становится возможным благодаря использованию IP-адресов.
Протоколы позволяют выполнять различные команды. Возьмем, к примеру:
- Перемещение данных из одной компьютерной системы в другую.
- Выполнение команд на расстоянии.
- Отправка сообщений пользователям, находящимся в удаленных местах.
- Печать файлов через удаленное соединение.
- Попытка войти в удаленную систему.
- Управление различными аспектами системы.
Когда появился TCP/IP и почему?
Стек протоколов TCP/IP в своей самой фундаментальной форме представляет собой сетевую модель, которая объясняет весь процесс передачи цифровых данных. До изобретения этого набора (которое произошло в 1970-х годах) было невозможно перемещать данные или информацию из одной сети в другую. Создание стека помогло найти решение этой проблемы.
Вследствие того, что семейство протоколов было разработано под руководством Министерства обороны США, его иногда называют DoD-системой. Разделение системы на уровни и выполнение отдельных функций на каждом из этих уровней является основополагающим принципом как этой системы, так и протоколов OSI, поэтому многие профессионалы отрасли проводят сравнения между ними.
Как работает TCP/IP?
Интернет-протокол (IP) — это протокол сетевого уровня, и он обеспечивается перемещением пакетов от одного сетевого узла к другому. Для того чтобы данные могли быть переданы от отправителя к получателю, необходимо указать IP-адрес отправителя и получателя в дополнение к номеру порта. Сокет — это название, данное комбинации IP-адреса и номера порта, которая используется для передачи данных.
Обычно принято использовать определенные порты в зависимости от функциональности приложения, чтобы максимально упростить стандарты. Например, почтовый сервер SMTP будет прослушивать порт 25, а сервер POP3 будет настроен на порт 110 и так далее. Подавляющее большинство приложений, работающих на персональных компьютерах, являются клиентами, и номера портов динамически выделяются операционной системой. Клиентские порты обычно имеют большее значение, чем серверные, которые нумеруются до 1024.
Рассмотрим следующий пример: при подключении к серверу через порт HTTP представление сокета может выглядеть следующим образом: 194.106.118.30:80. В этом конкретном сценарии ответ, отправленный на сокет, будет иметь вид aaa.bbb.ccc.ddd:xxxxxx. Протокол использует адреса Интернет-протокола (IP), совместимые с одной из двух версий протокола, известных как IPv4 или IPv6, чтобы он мог получить доступ к сетевому интерфейсу. Для версии протокола IPv4 используются 32-битные адреса, состоящие из четырех октетов (восемь позиций под нулем или единицей). Сеть может определить, с какого узла пришел пакет данных и на какой узел он должен быть отправлен, благодаря IP-адресам, которые присваиваются пакетам данных.
Поскольку неудобно использовать длинные адресные записи, состоящие из тридцати двух цифр, включающих как нули, так и единицы, было решено задавать IP-адрес с помощью десятичной системы. Поскольку количество адресов, которые можно использовать в IPv4, ограничено 4 294 967 296 (два в степени 32), была разработана более новая версия протокола — IPv6. Адреса IPv6 имеют длину 128 бит, тогда как адреса IPv4 — только 32 бита.
Вместо числовых значений используются символьные имена хостов, чтобы упростить адресацию. Служба доменных имен, или DNS, используется для преобразования IP-адреса в доменное имя (Domain Name Server). DNS следит за портом UDP 53 (реже — TCP).
Глобальная сеть состоит из множества локальных сетей, которые соединены друг с другом. Запись IP-адреса была изменена в связи с этой особенностью; теперь она содержит информацию как о сети, так и об адресах хостов, которые связаны с этой сетью. Маска подсети была разработана для того, чтобы можно было определить, где заканчивается адрес сети и начинается адрес компьютера, подключенного к этой сети. Это своего рода инструкция, которая рассказывает о том, как читать IP-адрес, где проходит граница между сетевым адресом и адресом хоста, и как его интерпретировать.
Какие протоколы взаимодействуют с TCP/IP?
Протокол доменных имен, или DOMAIN, позволяет хосту служить в качестве сервера имен для других хостов в сети. Протокол DOMAIN использует протокол более низкого уровня, такой как UDP или TCP. С помощью этого протокола можно назначать имена хостов в локальной сети, которые поступают из одного домена, не влияя на работу других доменов. В конфигурации по умолчанию протокол DOMAIN использует метод передачи данных UDP.
TCP используется вместо UDP в том случае, если ответные сообщения UDP являются сокращенными. Оба этих транспортных протокола поддерживаются протоколом DOMAIN, который является частью TCP/IP. Благодаря использованию протокола внешнего шлюза, или EGP, автономные системы могут обмениваться информацией о маршрутизации со своими внешними шлюзами.
Автономные системы
Он называется внутренним соседом, если шлюз расположен в той же автономной системе; в противном случае он называется внешним соседом, если он расположен в другой автономной системе. Шлюзы, которые взаимодействуют друг с другом, обмениваясь информацией о маршрутизации с помощью протокола EGP, называются одноранговыми шлюзами EGP или партнерами. Благодаря использованию EGP, шлюзы автономных систем могут предоставлять своим соседям EGP доступ к информации. Используя протокол EGP, внешние шлюзы могут проверять работоспособность своих EGP-соседей, запрашивать у других внешних шлюзов разрешение на обмен информацией об охвате сети и обмениваться сообщениями, содержащими информацию об изменениях маршрутов.
Протокол EGP позволяет внешним шлюзам обмениваться информацией о достижимости только для сетей, которые достижимы из автономной сети шлюза. Это ограничение применяется только к сетям, которые достижимы из шлюза. Поэтому внешний шлюз будет использовать EGP для передачи данных своим соседям внутри EGP, но он не будет распространять информацию о своих соседях EGP за пределы автономной системы.
Протокол передачи файлов, или FTP, используется для облегчения передачи данных и файлов между узлами различной конфигурации, а также для передачи данных и файлов между внешними узлами и промежуточными системами. FTP используется для выполнения таких задач, как просмотр списка удаленных каталогов, переход к другому удаленному каталогу, создание и удаление каталогов в другой системе, а также передача набора файлов в ответ на один запрос. Другие задачи, которые можно выполнить с помощью FTP, включают создание и удаление каталогов в другой системе.
Имя пользователя и пароль для файла учетной записи пользователя отправляются на внешний хост, чтобы защитить данные во время их передачи с помощью FTP. Хотя протокол передачи файлов (FTP) был разработан в первую очередь для приложений, он также поддерживает интерактивный разговор между пользователями. Протокол передачи файлов (FTP) использует соединения TCP/IP для передачи файлов и соединения Telnet для отправки команд и ответов. FTP совместим с различными форматами файлов, некоторые из которых NETASCII, IMAGE и Local 8.
Протокол передачи файлов (FTP) реализован в TCP/IP в виде команд для клиента (ftp) и сервера (ftpd). Не существует программного интерфейса приложения, которым бы он обладал (API).
При создании анонимных пользователей и каталогов FTP необходимо убедиться, что каталоги (например, /u/ftp) принадлежат пользователю root и что они не доступны для записи другим пользователям (например, dr-xr-xr-x). Такие учетные записи пользователей, файлы и каталоги могут быть созданы с помощью скрипта /usr/samples/tcpip/anon.ftp.
Целью упрощенного протокола передачи файлов, также известного как TFTP, является облегчение передачи файлов между внутренними и внешними узлами. Файлы передаются с помощью ненадежного протокола User Datagram Protocol с помощью TFTP, что делает его значительно быстрее, чем FTP. TFTP, как и FTP, позволяет передавать файлы как в формате NETASCII, так и в 8-битном двоичном формате. TFTP, в отличие от FTP, не поддерживает просмотр каталогов и не может быть использован для перехода в каталог другого внешнего узла. Кроме того, он не предлагает никакой защиты паролем. При работе с TFTP вам доступны только общие каталоги.
TFTP — это протокол передачи файлов, который реализован в TCP/IP в виде команд клиента (tftp и utftp) и сервера (tftpd). В конвейере вместо команды tftpd используется команда utftp. Протокол TCP/IP не имеет API для этого протокола.
Протокол Name/Finger, также известный как FINGER, — это протокол прикладного уровня Интернета, который обеспечивает интерфейс для передачи данных между командой finger и демоном fingerd. Этот протокол был разработан рабочей группой Finger Network Working Group.
Демон fingerd предоставляет подробную информацию о пользователях, которые в настоящее время вошли в систему на указанном удаленном узле. Если вы используете команду fingerd при подключении к одному хосту и укажете пользователя, будет отображена информация о нем. И удаленный, и локальный хост должны иметь поддержку протокола FINGER. Протокол управления передачей используется в FINGER в роли протокола нижнего уровня.
Протокол Telnet, также известный как TELNET, был разработан для облегчения связи между различными терминалами и связанными с ними процессами. Программы эмуляции терминалов часто используют TELNET в качестве метода входа в удаленные системы. С другой стороны, TELNET также может использоваться для установления соединений между различными терминалами или процессами. Для создания канала для передачи управляющей информации многие различные протоколы, такие как протокол передачи файлов (FTP), используют протокол TELNET.
TELNET реализован в TCP/IP как команда клиента, которая может быть либо tn, telnet, либо tn3270. Демон telnetd не предлагает интерфейс прикладного программирования (API) для работы с TELNET.
HELLO, или протокол локальной сети, является примером протокола внутреннего шлюза для системы, работающей независимо. HELLO предоставляет информацию о соединениях, маршрутах и времени прохождения пакетов по определенному маршруту. Любой компьютер, подключенный к сети и имеющий эту информацию, может рассчитать кратчайший маршрут к целевому узлу на основе временной задержки, а затем динамически обновить информацию о маршруте, чтобы добраться до этого узла.
Что представляет собой модель OSI, и как она связана с протоколом TCP/IP?
Модель Open Systems Interconnection, также известная как сетевая модель OSI, — это сетевая модель, основанная на стеках сетевых протоколов OSI и ISO (магазин). Благодаря этой модели несколько различных сетевых устройств могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия, которые могут происходить между системами. В контексте этого взаимодействия каждый уровень служит определенной цели.
Модель Open Systems Interconnection (OSI) была разработана в конце 1970-х годов для поддержки различных компьютерных сетевых технологий, которые в то время конкурировали друг с другом за использование в крупных национальных сетевых взаимодействиях в Соединенных Штатах Америки, Франции и Великобритании.
Группа по функциональной совместимости открытых систем Международной организации по стандартизации (ISO) начала работать над ней в 1980-х годах, и в итоге она стала рабочим продуктом этой группы. Модель не смогла обеспечить всестороннее описание сети и не была поддержана архитекторами на начальном этапе развития Интернета, что привело к ее последующей замене на менее предписывающий протокол TCP/IP, работа над которым велась в основном Инженерной рабочей группой Интернета (IETF).
Рассмотрение уровней OSI в сравнении с уровнями TCP/IP
Модель OSI — это так называемая концептуальная модель, учитывающая значения двух других моделей. В большинстве случаев она используется для обсуждения, понимания и описания функций отдельных сетей. TCP/IP, с другой стороны, была разработана в первую очередь с целью поиска решений для определенного класса проблем; она не была предназначена для того, чтобы служить поколенческим описанием сетевых технологий так же, как OSI. Модель TCP/IP основана на стандартных протоколах, разработанных для Интернета, в то время как модель OSI является общей и не зависит от какого-либо конкретного протокола. Однако модель OSI по-прежнему используется большинством протоколов и систем. Еще одна вещь, которую следует помнить о модели OSI, заключается в том, что не все ее уровни используются в приложениях, которые являются более простыми. Несмотря на то, что уровни 1, 2 и 3 должны присутствовать для передачи данных, приложение может использовать другой тип интерфейса уровня вместо обычных более высоких уровней модели.
Что такое сетевой порт и сокет?
Приложения, работающие на прикладном уровне, могут взаимодействовать с приложениями, работающими на расположенном ниже транспортном уровне, но они рассматривают протоколы транспортного уровня как «черные ящики». Они могут отправлять и получать информацию, используя такие протоколы, как TCP или UDP, но все, что они понимают, это IP-адрес и порт назначения; они понятия не имеют, как эти протоколы функционируют на самом деле.
Как было сказано ранее, протокол шлюза отвечает за предоставление каждой конечной точке своего уникального IP-адреса. Однако обмен данными происходит не между конечными устройствами, а между приложениями, установленными на каждом из этих устройств. Для получения доступа к определенному сетевому приложению недостаточно использовать только IP-адрес; поэтому для идентификации приложений необходимо также использовать порты. Сокет — это термин, используемый для обозначения комбинации IP-адреса и порта.
Приложения на уровне приложений обычно имеют фиксированный номер порта для обращения к сети в дополнение к своим собственным протоколам. Организация Internet Assigned Numbers Authority (IANA), которая отвечает за распределение диапазонов IP-адресов, также отвечает за распределение портов для различных приложений, работающих в сетях.
Порт 25 используется программами электронной почты, которые взаимодействуют с протоколом SMTP. Порт 110 используется для протокола POP3. Порт 80 используется веб-браузерами при взаимодействии с протоколом HTTP. Порт 21 используется FTP-клиентами. Номер порта всегда пишется после IP-адреса и обозначается двоеточием, когда он отделен от IP-адреса; например, 192.168.1.1:80.
Заключение
Стек TCP/IP отвечает за определение того, как различные уровни взаимодействуют друг с другом. Протоколы, которые формируют стек, вставляясь друг в друга для передачи данных, являются наиболее важной идеей в этом контексте. Архитектура предложенной модели более проста, чем архитектура модели OSI.
Работа с TCP/IP становится еще проще благодаря тому, что сама модель остается неизменной, несмотря на то, что стандарты протоколов могут быть изменены. Благодаря всем своим преимуществам стек TCP/IP стал чрезвычайно популярным. Изначально он был использован в качестве основы для создания глобальной сети, а позже его стали использовать для описания работы Интернета.
Сетевой порт – это набор параметров, который состоит из протоколов TCP и UDP. Они определяют маршрут пакета данных в форме IP, которые передаются на хост по сети. Это случайное число, которое состоит из цифр от 0 до 65545. Для установки некоторых программ необходимо знать порт TCP/IP.
Узнаем номер сетевого порта
Для того, чтобы выяснить номер своего сетевого порта, необходимо зайти в Windows 7 под учетной записью администратора. Выполняем следующие действия:
- Входим в «Пуск», пишем команду
cmd
и жмём «Enter» - Набираем команду
ipconfig
и жмём Enter. IP-адрес вашего устройства указан в пункте «Настройка протокола IP для Windows». Необходимо использовать IPv4-адрес. Возможно, что на вашем ПК установлены несколько сетевых адаптеров. - Пишем команду
netstat -a
и жмём «Enter». Вы увидите список TPC/IP подключений, которые находятся в активном состоянии. Номер порта пишется справа от IP-адреса, после двоеточия. К примеру, при IP-адресе равном 192.168.0.101, когда перед вами значение 192.168.0.101:16875, то это означает, что порт с номером 16876 является открытым.
Вот так каждый пользователь при помощи командной строки может узнать сетевой порт, работающий в интернет-соединении на операционной системе Виндовс 7.
Еще статьи по данной теме:
Помогла ли Вам статья?
Протокол TCP/IP или как работает Интернет для чайников:
В основе работы глобальной сети Интернет лежит набор (стек) протоколов TCP/IP — это простой набор хорошо известных правил обмена информацией.
Вам приходилось наблюдать панику и полную беспомощность бухгалтера при смене версии офисного софта — при малейшем изменении последовательности кликов мышки, требуемых для выполнения привычных действий? Или приходилось видеть человека, впадающего в ступор при изменении интерфейса рабочего стола? Вот для того, чтобы не быть лохом необходимо понимание сути. Основе информации дают вам возможность чувствовать себя уверенно и свободно — быстро решать проблемы, грамотно формулировать вопросы и нормально общаться с техподдержкой.
Принципы работы интернет-протоколов TCP/IP по своей сути просты и напоминают работу советской почты:
Сначала вы пишете письмо, затем кладете его в конверт, заклеиваете, на обратной стороне конверта пишете адреса отправителя и получателя, а потом относите в ближайшее почтовое отделение. Далее письмо проходит через цепочку почтовых отделений до ближайшего почтового отделения получателя, откуда оно тетей-почтальоном доставляется до по указанному адресу получателя и опускается в его почтовый ящик (с номером его квартиры) или вручается лично. Когда получатель письма захочет вам ответить, то он в своем ответном письме поменяет местами адреса получателя и отправителя, и письмо отправиться к вам по той же цепочке, но в обратном направлении.
Адрес отправителя:
От кого: Иванов Иван Иванович
Откуда: Ивантеевка, ул. Большая , д. 8, кв. 25
Адрес получателя:
Кому: Петров Петр Петрович
Куда: Москва, Усачевский переулок, д. 105, кв. 110
Рассмотрим взаимодействие компьютеров и приложений в сети Интернет, да и в локальной сети тоже. Аналогия с обычной почтой будет почти полной.
Каждый компьютер (он же: узел, хост) в рамках сети Интернет тоже имеет уникальный адрес, который называется IP (Internet Pointer), например: 195.34.32.116. IP адрес состоит из четырех десятичных чисел (от 0 до 255), разделенных точкой. Но знать только IP адрес компьютера еще недостаточно, т.к. в конечном счете обмениваются информацией не компьютеры сами по себе, а приложения, работающие на них. А на компьютере может одновременно работать сразу несколько приложений (например почтовый сервер, веб-сервер и пр.). Для доставки обычного бумажного письма недостаточно знать только адрес дома — необходимо еще знать номер квартиры. Также и каждое программное приложение имеет подобный номер, именуемый номером порта. Большинство серверных приложений имеют стандартные номера, например: почтовый сервис привязан к порту с номером 25 (еще говорят: «слушает» порт, принимает на него сообщения), веб-сервис привязан к порту 80, FTP — к порту 21 и так далее. Таким образом имеем следующую практически полную аналогию с нашим обычным почтовым адресом: «адрес дома» = «IP компьютера», а «номер квартиры» = «номер порта»
Адрес отправителя (Source address):
IP: 82.146.49.55
Port: 2049
Адрес получателя (Destination address):
IP: 195.34.32.116
Port: 53
Данные пакета:
…
Конечно же в пакетах также присутствует служебная информация, но для понимания сути это не важно.
Комбинация «IP адрес и номер порта» — называется «сокет».
В нашем примере мы с сокета 82.146.49.55:2049 посылаем пакет на сокет 195.34.32.116:53, т.е. пакет пойдет на компьютер, имеющий IP адрес 195.34.32.116, на порт 53. А порту 53 соответствует сервер распознавания имен (DNS-сервер), который примет этот пакет. Зная адрес отправителя, этот сервер сможет после обработки нашего запроса сформировать ответный пакет, который пойдет в обратном направлении на сокет отправителя 82.146.49.55:2049, который для DNS сервера будет являться сокетом получателя.
Как правило взаимодействие осуществляется по схеме «клиент-сервер»: «клиент» запрашивает какую-либо информацию (например страницу сайта), сервер принимает запрос, обрабатывает его и посылает результат. Номера портов серверных приложений общеизвестны, например: почтовый SMTP сервер «слушает» 25-й порт, POP3 сервер, обеспечивающий чтение почты из ваших почтовых ящиков «слушает» 110-порт, веб-сервер — 80-й порт и пр. Большинство программ на домашнем компьютере являются клиентами — например почтовый клиент Outlook, веб-обозреватели IE, FireFox и пр. Номера портов на клиенте не фиксированные как у сервера, а назначаются операционной системой динамически. Фиксированные серверные порты как правило имеют номера до 1024 (но есть исключения), а клиентские начинаются после 1024.
IP — это адрес компьютера (узла, хоста) в сети, а порт — номер конкретного приложения, работающего на этом компьютере. Однако человеку запоминать цифровые IP адреса трудно — куда удобнее работать с буквенными именами. Ведь намного легче запомнить слово, чем набор цифр. Так и сделано — любой цифровой IP адрес можно связать с буквенно-цифровым именем. В результате например вместо 82.146.49.55 можно использовать имя www.ofnet.ru. А преобразованием доменного имени в цифровой IP адрес занимается сервис доменных имен — DNS (Domain Name System).
Набираем в адресной строке браузера доменное имя www.yandex.ru и жмем
. Далее операционная система производит следующие действия:
— Отправляется запрос (точнее пакет с запросом) DNS серверу на сокет 195.34.32.116:53.
Порт 53 соответствует DNS-серверу — приложению, занимающемуся распознаванием имен. А DNS-сервер, обработав наш запрос, возвращает IP-адрес, который соответствует введенному имени. Диалог следующий: Какой IP адрес соответствует имени www.yandex.ru? Ответ: 82.146.49.55.
— Далее наш компьютер устанавливает соединение с портом 80 компьютера 82.146.49.55 и посылает запрос (пакет с запросом) на получение страницы www.yandex.ru. 80-й порт соответствует веб-серверу. В адресной строке браузера 80-й порт не пишется, т.к. используется по умолчанию, но его можно и явно указать после двоеточия — http://www.yandex.ru:80.
— Приняв от нас запрос, веб-сервер обрабатывает его и в нескольких пакетах посылает нам страницу в на языке HTML — языке разметки текста, который понимает браузер. Наш браузер, получив страницу, отображает ее. В результате мы видим на экране главную страницу этого сайта.
Зачем мне это знать?
Например, вы заметили странное поведение своего компьютера — непонятная сетевая активность, тормоза и пр. Что делать? Открываем консоль (нажимаем кнопку «Пуск» — «Выполнить» — набираем cmd — «Ок»). В консоли набираем команду netstat -an и жмем
. Эта утилита отобразит список установленных соединений между сокетами нашего компьютера и сокетами удаленных узлов.
Если мы видим в колонке «Внешний адрес» какие-то чужие IP адреса, а через двоеточие 25-й порт, что это может означать? (Помните, что 25-й порт соответствует почтовому серверу?) Это означает то, что ваш компьютер установил соединение с каким-то почтовым сервером (серверами) и шлет через него какие-то письма. И если ваш почтовый клиент (Outlook например) в это время не запущен, да если еще таких соединений на 25-й порт много, то, вероятно, в вашем компьютере завелся вирус, который рассылает от вашего имени спам или пересылает номера ваших кредитных карточек вкупе с паролями злоумышленникам.
Также понимание принципов работы Интернета необходимо для правильной настройки файерволла (брандмауэра) — программа (часто поставляется вместе с антивирусом), предназначенна для фильтрации пакетов «своих» и «вражеских». Например, ваш фаерволл сообщает, что некто хочет установить соединение с каким-либо портом вашего компьютера. Разрешить или запретить?
Все эти знания крайне полезны при общении с техподдержкой — список портов, с которыми вам придется столкнуться:
135-139 — эти порты используются Windows для доступа к общим ресурсам компьютера — папкам, принтерам. Не открывайте эти порты наружу, т.е. в районную локальную сеть и Интернет. Их следует закрыть фаерволлом. Также если в локальной сети вы не видите ничего в сетевом окружении или вас не видят, то вероятно это связано с тем, что фаерволл заблокировал эти порты. Таким образом для локальной сети эти порты должны быть открыты, а для Интернета закрыты.
21 — порт FTP сервера.
25 — порт почтового SMTP сервера. Через него ваш почтовый клиент отправляет письма. IP адрес SMTP сервера и его порт (25-й) следует указать в настройках вашего почтового клиента.
110 — порт POP3 сервера. Через него ваш почтовый клиент забирает письма из вашего почтового ящика. IP адрес POP3 сервера и его порт (110-й) также следует указать в настройках вашего почтового клиента.
80 — порт WEB-сервера.
3128, 8080 — прокси-серверы (настраиваются в параметрах браузера).
Несколько специальных IP адресов:
127.0.0.1 — это localhost, адрес локальной системы, т.е. локальный адрес вашего компьютера.
0.0.0.0 — так обозначаются все IP-адреса.
192.168.xxx.xxx — адреса, которые можно произвольно использовать в локальных сетях, в глобальной сети Интернет они не используются. Они уникальны только в рамках локальной сети. Адреса из этого диапазона вы можете использовать по своему усмотрению, например, для построения домашней или офисной сети.
Что такое маска подсети и шлюз по умолчанию, он же роутер и маршрутизатор? Эти параметры задаются в настройках сетевых подключений. Компьютеры объединяются в локальные сети. В локальной сети компьютеры напрямую «видят» только друг друга. Локальные сети соединяются друг с другом через шлюзы (роутеры, маршрутизаторы). Маска подсети предназначена для определения — принадлежит ли компьютер-получатель к этой же локальной сети или нет. Если компьютер-получатель принадлежит этой же сети, что и компьютер-отправитель, то пакет передается ему напрямую, в противном случае пакет отправляется на шлюз по умолчанию, который далее, по известным ему маршрутам, передает пакет в другую сеть, т.е. в другое почтовое отделение (по аналогии с бумажной почтой). Итак:
TCP/IP — это название набора сетевых протоколов. На самом деле передаваемый пакет проходит несколько уровней. (Как на почте: сначала вы пишете писмо, потом помещаете в конверт с адресом, затем на почте на нем ставится штамп и т.д.).
IP протокол — это протокол так называемого сетевого уровня. Задача этого уровня — доставка ip-пакетов от компьютера отправителя к компьютеру получателю. Помимо собственно данных, пакеты этого уровня имеют ip-адрес отправителя и ip-адрес получателя. Номера портов на сетевом уровне не используются. Какому порту=приложению адресован этот пакет, был ли этот пакет доставлен или был потерян, на этом уровне неизвестно — это не его задача, это задача транспортного уровня.
TCP и UDP — это протоколы так называемого транспортного уровня. Транспортный уровень находится над сетевым. На этом уровне к пакету добавляется порт отправителя и порт получателя.
TCP — это протокол с установлением соединения и с гарантированной доставкой пакетов. Сначала производится обмен специальными пакетами для установления соединения, происходит что-то вроде рукопожатия (-Привет. -Привет. -Поболтаем? -Давай.). Далее по этому соединению туда и обратно посылаются пакеты (идет беседа), причем с проверкой, дошел ли пакет до получателя. Если пакет не дошел, то он посылается повторно («повтори, не расслышал»).
UDP — это протокол без установления соединения и с негарантированной доставкой пакетов. (Типа: крикнул что-нибудь, а услышат тебя или нет — неважно).
Над транспортным уровнем находится прикладной уровень. На этом уровне работают такие протоколы, как http, ftp и пр. Например HTTP и FTP — используют надежный протокол TCP, а DNS-сервер работает через ненадежный протокол UDP.
Как посмотреть текущие соединения? — с помощью команды netstat -an (параметр n указывает выводить IP адреса вместо доменных имен). Запускается эта команда следующим образом: «Пуск» — «Выполнить» — набираем cmd — «Ок». В появившейся консоли (черное окно) набираем команду netstat -an и жмем
. Результатом будет список установленных соединений между сокетами нашего компьютера и удаленных узлов. Например получаем:
В этом примере 0.0.0.0:135 — означает, что наш компьютер на всех своих IP адресах слушает (LISTENING) 135-й порт и готов принимать на него соединения от кого угодно (0.0.0.0:0) по протоколу TCP.
91.76.65.216:139 — наш компьютер слушает 139-й порт на своем IP-адресе 91.76.65.216.
Третья строка означает, что сейчас установлено (ESTABLISHED) соединение между нашей машиной (91.76.65.216:1719) и удаленной (212.58.226.20:80). Порт 80 означает, что наша машина обратилась с запросом к веб-серверу (у меня, действительно, открыты страницы в браузере).
(с) Вольные сокращения статьи мои.
(с) Дубровин Борис полный оригинал статьи
Listen to this article
IP-address
Internet Protocol Address — уникальный сетевой адрес узла в компьютерной сети. По сути, чтоб тебе было понятней это твой домашний адрес. Каждому цифровому устройству (компьютеру, ноутбуку, телефону, планшету и т.д.) назначается IP-адрес, без этого адреса невозможно найти устройство и обратиться к нему.
Существует две системы ip адресов: IPv4 и IPv6 (IPv6 мы разберем в другом уроке, чтобы не распыляться) а сегодня IPv4.
В 4 версии IP адрес представляет собой 32-х битовое число, однако видим мы его в десятичном представлении, так банально удобней, а если быть точнее IP состоит из 4 групп по 8 битов каждая, разделенных точками, каждая группа может представлять числа в диапазоне от 0 до 255.
IP-адреса обычно делятся на три класса, каждому из которых соответствует свой диапазон:
- Класс А : 0.0.0.0 — 127.255.255.255
- Класс B : 128.0.0.0 — 191.255.255.255
- Класс C : 192.0.0.0 — 223.255.255.255
в одном из следующих уроков мы рассмотрим подсети и маски подсетей которые отличаются в зависимости от класса ip адреса
Публичные и частные IP-адреса
Система ip адресов имеет свои ограничения и самое основное из них связано с тем что адресов банально не хватает для всех устройств. Система IPv4, имеет только 4,3 миллиарда IP-адресов. А людей на планете более 7 миллиардов, а устройств еще больше и постоянно появляются новые. В результате, что бы решить эту проблему, была разработана система для повторного использования группы IP-адресов, которые будут использоваться в локальной сети, и которые нельзя будет использовать в сети Интернет. Эти адреса можно использовать снова и снова в каждой локальной сети.
Эти частные адреса включают в себя диапазоны ip-адресов:
192.168.0.0 — 192.168.255.255
10.0.0.0 — 10.255.255.255
172.16-.0.0 — 172.16.255.255
если ты наберешь в командной строке ipconfig (для linux это ifconfig) то сможешь узнать свой частный ip. При этом если тебе нужно узнать ip адрес сайта, т.е. доменного имени, нужно написать nslookup и адрес сайта
Для связи через Интернет его необходимо преобразовать в общедоступный IP-адрес с помощью устройства NAT, к этому мы ещё вернемся
DHCP
(англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла)
Отвечает за динамическое назначает IP-адреса. Это означает, что у тебя не один и тот же IP-адрес все время. Как правило эти назначения IP-адресов происходят в локальной сети. Когда устройство подключено к локальной сети, оно должно запросить IP-адрес. Это устройство отправляет запрос на сервер DHCP, который затем назначает IP-адрес этой системе на фиксированный период времени, это период времени называется «аренда».
NAT
(Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Что это означает?
Другими словами, это протокол, посредством которого внутренние частные IP-адреса «транслируются» на внешний общедоступный IP-адрес, который можно направить через Интернет к пункту назначения.
Устройство NAT принимает запросы с внутренней машины. Затем оно записывает IP-адрес этого устройства в таблицу и преобразует IP-адрес во внешний IP-адрес маршрутизатора. Когда пакет возвращается из пункта назначения, устройство NAT просматривает свою сохраненную таблицу исходных запросов и перенаправляет пакет на внутренний IP-адрес системы, которая сделала исходный запрос в локальной сети. При правильной работе пользователи не видят весь этот процесс, а многие и не знают что он вообще существует.
Порты
Порты это своего рода подадрес, если ip — это название улицы и номер дома, то порт — это номер квартиры.Точно также ip адрес приводит нас к нужному компьютеру, а порт к нужной службе.
Всего существует 65 535 портов. Первые 1024 из них обычно называют общие порты. Врядли ты сможешь запомнить их все, да и нет в этом особой необходимости, но толковый системный администратор (или хакер должен знать основные):
- 20 FTP
- 21 FTP
- 22 SSH
- 23 Telnet
- 25 SMTP
- 53 DNS
- 69 TFTP
- 80 HTTP
- 88 Kerberos
- 110 POP3
- 123 NTP
- 135 Microsoft’s RPC
- 137-139 Microsoft’s NetBIOS
- 143 IMAP
- 161 SNMP
- 389 LDAP
- 443 HTTPS or HTTP over SSL
- 445 SMB
- 500 IKE
- 514 syslog
- 3389 RDP
Теперь немного о применяемых терминах относительно портов:
Если процесс постоянно использует один номер порта, то такой порт называют «открытым», примером может быть если вэб-сервер использует 80 порт для приема-передачи данных, то соответственно 80 порт считается открытым
Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приёма и передачи данных, это называется «прослушивание» порта.
Ты ведь наверняка слышал или видел такое название как TCP/IP. Хочу заметить, что рассказать всё о TCP/IP в одном уроке невозможно физически, поэтому сегодня мы разберем основы, что это такое и как работает. Причем ты должен понимать, что именно эти знания лежат в основе искусства взлома, ну или теста на проникновение, называй как хочешь и именно эти знания дадут тебе возможность изучить и понять практически любую атаку, или придумать свою.
В интернете используется очень много разных протоколов, но наиболее распространенные это IP и TCP. Теперь, как я уже говорил, давай, рассмотрим их более подробно.
TCP — Transmission Control Protocol — это протокол управления передачей, а IP — межсетевой протокол, но прежде чем разбирать их, давай, для начала разберемся что такое вообще протокол. На самом деле всё просто, протокол — это всего навсего согласованный способ общения, как, допустим, английский язык в международном сообществе. Т.е. по сути, протокол определяет способ связи со всеми его правилами. А правила определяются RFC, это Request for Comments, что можно перевести как запрос на отзывы — это документ, который содержит технические спецификации и стандарты применяемые в интернете.
IP или интернет-протокол, он же межсетевой протокол — это протокол, который используется для определения IP-адреса источника и получателя пакета при прохождении через Интернет. Так как он часто используется в сочетании с другими протоколами, такими как TCP, поэтому мы и видим название TCP / IP.
Теперь давай посмотрим на header, т.е заголовок IP-пакета и разберемся, какая информация в нем содержится:
1 ряд
- version : определяет версию IP, v4 или v6.
- IHL : определяет длину заголовка.
- Type of Service (TOS) : определяет тип обслуживания этого пакета. К ним относятся минимизация задержки, максимизация пропускной способности, максимизация надежности и минимизация затрат.
- Total Length : определяет общую длину дейтаграммы IP (включая данные) или фрагмента. Его максимальное значение составляет 65 535.
2 ряд
- Identification : идентифицирует каждый пакет. Может иметь важное значение при повторной сборке фрагментированных пакетов.
- IP Flag: определяет, является ли пакет фрагментированным (M) или нет (D). Манипулирование этим полем может быть использовано для обхода межсетевых экранов.
- Fragment Offset : это поле используется, когда пакеты фрагментированы. Определяет, где пакеты должны быть повторно собраны.
3 ряд
- TTL : это «время жизни». Определяет, сколько прыжков до истечения срока действия пакета. Это зависит от операционной системы, что делает его полезным для определения ОС отправителя.
- Protocol : это поле определяет, какой протокол используется с IP. Чаще всего это 6 т.е. TCP, 1 это ICMP, 17 это UDP.
- Header checksum: это поле проверки ошибок, вычисляет контрольную сумму, чтобы определить целостность данных в заголовке.
4 и 5 ряд
- Source / Destination . Эти строки заголовка IP, пожалуй, наиболее важная часть заголовка, потому что они содержат IP-адрес источника и получателя.
6 ряд
- Options: Это поле переменной длины, и его использование не является обязательным
Теперь рассмотрим заголовок TCP пакета:
1 ряд
- Source Port / Destination Port : Это порт источника и порт назначения. Эти поля определяют, с какого порта пришло сообщение и куда оно идет.
Ряд 2
- Sequence Number: Порядковый номер, генерируется стеком TCP исходного компьютера и используется для обеспечения того, чтобы пакеты располагались в правильной последовательности при поступлении.
Ряд 3
- Acknowledgment Number : это эхо порядкового номера, отправленного обратно принимающей системой. Благодаря ему, отправитель знает, что пакет прибыл. Если отправитель не получает номер подтверждения обратно в фиксированный промежуток времени, он повторно отправит пакет, чтобы убедиться, что получатель получит пакет. Таким образом, TCP надежен (например, UDP не делает этого и поэтому ненадежен).
Ряд 4
- Data offset указывает значение длины заголовка, измеренное в 32-битовых словах
- CWR : Поле «Окно перегрузки уменьшено» — флаг установлен отправителем, чтобы указать, что получен пакет с установленным флагом ECE
- ECE : Поле «Эхо ECN» — указывает, что данный узел способен на ECN (явное уведомление перегрузки) и для указания отправителю о перегрузках в сети
Четвертый ряд содержит очень важную информацию, а именно флаги. Эти флаги используются TCP для связи;
- SYN : открытие нового соединения.
- FIN : нормальное, мягкое закрытие соединения.
- ACK : подтверждение пакета. У всех пакетов после трехстороннего рукопожатия должен быть установлен этот бит.
- RST : аппаратное закрытие соединения, которое обычно используется для сообщения о том, что пакет поступил не на тот порт или IP.
- URG : этот флаг указывает, что данные являются срочными.
- PSH : протолкнуть данные за буфер в приложение.
- Window Size : на некоторых диаграммах это просто описывается как поле окна . Его роль заключается в сообщении размера окна, которое стек TCP должен выполнять для буферизации пакетов. Именно так TCP управляет потоком. С точки зрения хакера, одного этого поля может быть достаточно для идентификации ОС, отправившей пакет.
Ряд 5
- Checksum : в этом поле используется простой алгоритм проверки на наличие ошибок. По сути, это проверка целостности.
- Urgent Pointer: в этом поле указывается последний байт порядкового номера срочных данных. Чтобы активировать это поле должен быть установлен флаг URG
Ряд 6
- Options: Как и заголовок IP, заголовок TCP имеет поле параметров, которое можно использовать при необходимости, и его длина варьируется.
- Padding: заполнение необходимо, чтобы заголовок TCP был кратным 32 битам.
Источник: //hacker-basement.ru/
Если Вам понравилась статья — поделитесь с друзьями
253 просмотров
Отказ от ответственности: Автор или издатель не публиковали эту статью для вредоносных целей. Вся размещенная информация была взята из открытых источников и представлена исключительно в ознакомительных целях а также не несет призыва к действию. Создано лишь в образовательных и развлекательных целях. Вся информация направлена на то, чтобы уберечь читателей от противозаконных действий. Все причиненные возможные убытки посетитель берет на себя. Автор проделывает все действия лишь на собственном оборудовании и в собственной сети. Не повторяйте ничего из прочитанного в реальной жизни. | Так же, если вы являетесь правообладателем размещенного на страницах портала материала, просьба написать нам через контактную форму жалобу на удаление определенной страницы, а также ознакомиться с инструкцией для правообладателей материалов. Спасибо за понимание.
Если вам понравились материалы сайта, вы можете поддержать проект финансово, переведя некоторую сумму с банковской карты, счёта мобильного телефона или из кошелька ЮMoney.
Протокол TCP/IP – это целая сетевая модель, описывающая способ передачи данных в цифровом виде. На правилах, включенных в нее, базируется работа интернета и локальных сетей независимо от их назначения и структуры.
Что такое TCP/IP
Произошло наименование протокола от сокращения двух английских понятий – Transmission Control Protocol и Internet Protocol. Набор правил, входящий в него, позволяет обрабатывать как сквозную передачу данных, так и другие детали этого механизма. Сюда входит формирование пакетов, способ их отправки, получения, маршрутизации, распаковки для передачи программному обеспечению.
Стек протоколов TCP/IP был создан в 1972 году на базе NCP (Network Control Protocol), в январе 1983 года он стал официальным стандартом для всего интернета. Техническая спецификация уровней взаимодействия описана в документе RFC 1122.
В составе стека есть и другие известные протоколы передачи данных – UDP, FTP, ICMP, IGMP, SMTP. Они представляют собой частные случаи применения технологии: например, у SMTP единственное предназначение заключается в отправке электронных писем.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Уровни модели TCP/IP
Протокол TCP/IP основан на OSI и так же, как предшественник, имеет несколько уровней, которые и составляют его архитектуру. Всего выделяют 4 уровня – канальный (интерфейсный), межсетевой, транспортный и прикладной.
Канальный (сетевой интерфейс)
Аппаратный уровень обеспечивает взаимодействие сетевого оборудования Ethernet и Wi-Fi. Он соответствует физическому из предыдущего стандарта OSI. Здесь задача состоит в кодировании информации, ее делению на пакеты и отправке по нужному каналу. Также измеряются параметры сигнала вроде задержки ответа и расстояния между хостами.
Межсетевой (Internet Layer)
Интернет состоит из множества локальных сетей, объединенных между собой как раз за счет протокола связи TCP/IP. Межсетевой уровень регламентирует взаимодействие между отдельными подсетями. Маршрутизация осуществляется путем обращения к определенному IP-адресу с использованием маски.
Если хосты находятся в одной подсети, маркируемой одной маской, данные передаются напрямую. В противном случае информация «путешествует» по целой цепочке промежуточных звеньев, пока не достигнет нужной точки. Назначение IP-адреса проводится по стандарту IPv4 или IPv6 (они не совместимы между собой).
Транспортный уровень (Transport Layer)
Следующий уровень отвечает за контроль доставки, чтобы не возникало дублей пакетов данных. В случае обнаружения потерь или ошибок информация запрашивается повторно. Такой подход дает возможность полностью автоматизировать процессы независимо от скорости и качества связи между отдельными участками интернета или внутри конкретной подсети.
Протокол TCP отличается большей достоверностью передачи данных по сравнению с тем же UDP, который подходит только для передачи потокового видео и игровой графики. Там некритичны потери части пакетов, чего нельзя сказать о копировании программных файлов и документов. На этом уровне данные не интерпретируются.
Прикладной уровень (Application Layer)
Здесь объединены 3 уровня модели OSI – сеансовый, представления и прикладной. На него ложатся задачи по поддержанию сеанса связи, преобразованию данных, взаимодействию с пользователем и сетью. На этом уровне применяются стандарты интерфейса API, позволяющего передавать команды на выполнение определенных задач.
Возможно и использование «производных» протоколов. Например, для открытия сайтов используется HTTPS, при отправке электронной почты – SMTP, для назначения IP-адресов – DHCP. Такой подход упрощает программирование, снижает нагрузку на сеть, увеличивает скорость обработки команд и передачи данных.
Порты и сокеты – что это и зачем они нужны
Процессы, работающие на прикладном уровне, «общаются» с транспортным, но они видны ему как «черные ящики» с зашифрованной информацией. Зато он понимает, на какой IP-адрес адресованы данные и через какой порт надо их принимать. Этого достаточно для точного распределения пакетов по сети независимо от месторасположения хостов. Порты с 0 до 1023 зарезервированы операционными системами, остальные, в диапазоне от 1024 до 49151, условно свободны и могут использоваться сторонними приложениями.
Комбинация IP-адреса и порта называется сокетом и используется при идентификации компьютера. Если первый критерий уникален для каждого хоста, второй обычно фиксирован для определенного типа приложений. Так, получение электронной почты проходит через 110 порт, передача данных по протоколу FTP – по 21, открытие сайтов – по 80.
Преобразование IP-адресов в символьные адреса
Технология активно используется для назначения буквенно-цифровых названий веб-ресурсов. При вводе домена в адресной строке браузера сначала происходит обращение к специальному серверу DNS. Он всегда прослушивает порт 53 у всех компьютеров, которые подключены к интернету, и по запросу преобразует введенное название в стандартный IP-адрес.
После определения точного местонахождения файлов сайта включается обычная схема работы – от прикладного уровня с кодированием данных до обращения к физическому оборудованию на уровне сетевых интерфейсов. Процесс называется инкапсуляцией информации. На принимающей стороне происходит обратная процедура – декапсуляция.