Для любого кто имеет дело с обслуживанием серверов необходимо базовое понимания сетевых технологий. Это поможет вам не только с легкостью публиковать свои услуги в интернет, но и также быстро находить и устранять проблемы связанные с сетевыми технологиями. Все, что я буду описывать, относится ко всем операционным системам и поможет в настройке различных сетевых служб на вашем сервере.
Глоссарий
Для начала перечислим основные сетевые термины, с которыми вы будете сталкиваться не только на протяжении этой статьи, но и в любой литературе связанной с сетевыми технологиями.
- Соединение — в сетях это понятие относится к информации необходимой для передачи данных. То есть, прежде чем начать передачу данных, необходимо установить соединение (следуя определенному протоколу), а по завершению — разорвать его.
- Пакет — в общих чертах, это минимальный набор данных, передаваемых по сети. По сути, пакеты — это своего рода конверты, в которых данные передаются из одного узла сети в другой.
Пакет включает в себя заголовок, в котором содержится информация о пакете, а именно исходная точка, пункт назначения, точка во времени, а также количество необходимых сетевых переходов и так далее. Основная доля пакета содержит в себе именно передаваемые данные. Обычно она называет телом пакета.
Winderton / Основы программирования. TCP/IP.
- Сетевой интерфейс — это может быть как программный продукт, так и физическое устройство. Например, если в вашем компьютере установлены две сетевые карты, то вы можете отдельно контролировать оба этих сетевых интерфейса.
Сетевой интерфейс может быть как физическим, так и виртуальным. loopback — пример виртуального устройства, на локальном компьютере.
- LAN — локальная сеть. Так называют участок сети, к которому запрещен доступ из внешних сетей. Домашняя и офисные сети — пример LAN.
- WAN — глобальная сеть. Сеть, намного превосходящая по своим размерам LAN. Это довольно относительный термин, который, как правило, применяется для обозначения интернета как такового.
При подключении сетевого интерфейса к WAN, обычно, предполагают, что он доступен из сети интернет.
- Протокол — набор правил и стандартов, которые определяют последовательность коммуникации между сетевыми устройствами. Существует довольно много их разновидностей, которые, как правило, находятся на разных уровнях в сетевой иерархии.
Примером низкоуровневых протоколов служат TCP, UDP, IP и ICMP. Наверняка, вы слышали про протоколы, построенные на их основе — HTTP, SSH, TLS/SSL, FTP.
- Порт — адрес на одном компьютере, к которому привязан какой-то программный продукт. Это не физическое устройство или адрес, это, своего рода, способ использования одного интерфейса несколькими программами одновременно.
- Firewall — программное обеспечение, отвечающее за соединения разрешение или запрет серверного трафика. Обычно, создаётся определенный набор правил, оговаривающих допустимый тип трафика на определенных портах. По сути, firewall блокирует все порты, за исключением оговоренных правилами.
- NAT — преобразование сетевых адресов. То есть, это способ передавать входящие на роутер запросы соответствующим сетевым устройствам в пределах LAN. Таким образом, несколько машин могут работать в сети интернет используя один IP адрес.
- VPN — виртуальная частная сеть. Способ соединения нескольких сетей LAN с соблюдением требований безопасности. При помощи VPN можно соединить удаленные сетевые сегменты, таким образом, для пользователя они будут выглядеть так, что все они находятся в одной сети.
Конечно, это не окончательный список терминов. По мере углубления мы будет рассматривать и другие термины. На данном этапе достаточно основного набора понятий, который позволит нам понять друг друга при обсуждении последующих тем.
Что такое TCP IP / Урок 22 / Тестировщик с нуля
Протоколы сетевого уровня
Хотя, обычно, сети обсуждаются на уровне топологии в горизонтальной плоскости, между узлами она выполнена в вертикальной манере.
То есть, существует целый ряд технологий, построенных поверх друг друга, что обеспечивает более понятную картину соединения. Каждая последующая технология добавляет свой уровень абстракции к исходным данным, что облегчает их использование в приложениях. Так же это позволяет отделить низкоуровневые технологии, что в свою очередь упрощает разработку приложений, работающих с определёнными типами трафика.
Язык, который мы используем для описания того или иного сетевого уровня может значительно отличаться в зависимости от используемой модели. Но путь, который проходят данные, не зависит от выбранной модели.
Данные, отправленные из одной точки, проходят через каждый сетевой уровень сверху вниз. Затем, на самом низком, уровне данные передаются от одного узла к другому. Как только данные поступили в пункт назначения, они поднимаются по уровням снизу вверх.
Каждый уровень добавляет свою “обертку” к данным, полученным от предыдущего уровня. Таким образом, за каждым уровнем закреплен определенный функционал.
Сетевая модель OSI
Исторически сложилось так, что модель OSI используется для описания сетевых уровней. OSI — базовая эталонная модель взаимодействия открытых систем.
Модель содержит в себе 7 уровней:
- Прикладной — с этим уровнем чаще всего сталкиваются пользователи. Здесь присутствуют такие понятия, как доступность ресурсов, узлов, с которыми возможно соединение и синхронизация данных.
- Уровень представления — этот уровень отвечает за связку ресурсов и создание контекста. Он переводит данные в вид, который способны принять приложения.
- Сеансовый — этот слой отвечает за создание и сброс сетевых соединений между узлами.
- Транспортный — отвечает за надежность соединения, используемого вышестоящими уровнями. То есть он проверяет, что данные были полностью переданы другому сетевому узлу. На этом уровне данные могут быть отправлены повторно в случае возникновения ошибки.
- Сетевой — отвечает за построение маршрута между узлами. Он применяет адреса, для определения пункта назначения. Так же на этом уровне, большие данные разделяются на части, отправляются и вновь объединяются в пункте назначения.
- Канальный — данный уровень отвечает за установку надежных связей между разными узлами или устройствами в пределах сети при помощи физических соединений.
- Физический — отвечает за физические устройства, необходимые для создания соединения. Он включает в себя как программные продукты для управления соединениями, так и физическое оборудование (например, Ethernet).
Как видите, существуют различные уровни, которые можно по-разному рассматривать в зависимости от самих данных и заключенного в них функционала.
Модель TCP/IP
TCP/IP — еще одна модель, которая, чаще всего, используется для описания протокола сети интернет. Она заключает в себе 4 уровня, которые иногда пересекаются с ровнями модели OSI.
- Прикладной — отвечает за передачу пользовательских данных между приложениями, причем сами приложения могут находиться на удаленных узлах. Связь устанавливается между участниками.
- Транспортный — уровень, отвечающий за связь между процессами. Это уровень использует порты для обращения к различным приложениям. В зависимости от вида протокола, этот уровень устанавливает как надежное, так и ненадежное соединения.
- Сетевой — слой, передающий данные от одного узла к другому. В нем заключены конечные точки соединения, но отсутствует информация о соединении как таковом. IP адреса используются для задачи пункта назначения.
- Канальный — данный уровень реализует фактическую топологию сети, которая позволяет использовать адресную систему сетевого уровня. На этом уровне устанавливается соединение между узлами для передачи данных.
Эта модель более абстрактна. Таким образом, она используется чаще всего для описания сетевых уровней.
Интерфейсы
Интерфейсы — сетевые точки для построения соединений. Каждый интерфейс закреплен за отдельным физическим или виртуальным устройством.
Чаще всего, на вашем сервере будет присутствовать отдельный сетевой интерфейс для каждого Ethernet или беспроводного устройства.
В дополнении ко всеми, у вас появится, интрефейс под названием “петля” (loopback). Он используется для построения связи между приложениями в пределах одной машины. Иногда он называется “lo” интерфейс.
Чаще всего, администраторы используют один интерфейс для связи с сетью интернет, а второй для работы с LAN сетями или VPN.
Протоколы
Сети работают таким образом, что накладывают друг на друга несколько протоколов. Благодаря этому один поток данных может быть передан при помощи нескольких протоколов. Мы обсудим часто используемые протоколы и рассмотрим, когда какой используется. Начнем с низкоуровневых протоколов и поднимемся вверх к более абстрактным уровням.
Уровень управления доступом к среде (Media Access Control)
Этот протокол отвечает за выделения отдельных сетевых устройств. Каждое сетевое устройство имеет свой уникальный адрес (MAC адрес), который задаётся при производстве. Вы можете обратиться к устройству по уникальному MAC адресу, даже если его имя было изменено ранее.
Это, наверное, именно тот протокол из канального уровня, с которым вам чаще всего придется столкнуться.
IP
Протокол IP является основополагающим в работе интернета. IP адреса уникальны для каждой сети и именно они позволяют машинам из одной сети общаться друг с другом. Этот протокол используется на сетевом уровне.
Существует несколько вариантов этого протокола. Сегодня, самый распространенный из них — IPv4, хотя, вполне возможно, его место в будущем займет IPv6 из-за нехватки адресов.
ICMP
Протокол межсетевых управляющих сообщений. Используется для передачи сообщений между устройствами, одновременно отображая доступность узлов или возникновение ошибок. Такие пакеты данных часто используются для диагностики сети, например, ping и traceroute . Обычно, ICMP пакеты передаются, в том случае, когда пакеты другого типа столкнулись с проблемами при передаче. По сути, это что-то вроде обратной связи для отладки соединений.
TCP
TCP — протокол управления передачей. Используется на транспортном уровне для установки надежных соединений.
Этот протокол размещает данные внутри пакета. Затем, средствами нижестоящих уровней, он передает эти данные удаленному узлу. На другом конце соединения, он проверят целостность данных, вновь собирает их воедино и отправляет на прикладной уровень.
Этот протокол устанавливает соединение перед передачей данных путем трехэтапного согласования. Это способ установки связи между узлами, при котором определяется метод определения целостности данных.
После передачи данных соединение разрывается путем четырехэтапного согласования. TCP протокол используется в основе WWW, FTP, SSH и email. Можно смело утверждать, что интернета не было бы без этого протокола.
UDP
Протокол пользовательских диаграмм. Этот протокол используется на транспортном уровне и часто соседствует с TCP.
Основное различие заключается в том, что UDP устанавливает ненадежное соединение. То есть данные не проверяются на целостность после передачи. Конечно, сначала, такой подход кажется не практичным, но иногда он очень помогает.
Так как проверка данных не требуется, этот протокол работает значительно быстрее. Он не устанавливает соединение, а просто отправляет данные удаленному узлу.
Часто этот протокол используется для получения списка доступных сетевых ресурсов. Так же он не контролирует состояние соединения, то есть довольно легко рассылать данные сразу нескольким клиентам. Он чаще всего используется в VOIP, играх и других приложениях, где скорость работы очень критична.
HTTP
Протокол передачи гипертекста. Он используется на прикладном уровне и определяет основу веб-соединений.
Он задает ряд функций для управления удаленным содержимым. Например, запросы, GET, POST и DELETE означают разные действия.
FTP
Протокол передачи файлов. Он также используется прикладным уровнем и предоставляет функционал для передачи файлов от одного узла другому.
Он является крайне небезопасным и его использование может быть оправдано только в качестве построения хранилищ данных только для чтения.
DNS
Система доменных имен. Протокол прикладного уровня, предназначенный для построения адресной системы, которую было бы проще воспринимать человеку, чем систему IP адресов. Этот протокол связывает IP адрес и доменное имя.
SSH
Безопасная оболочка. Кодированный протокол, используемый на прикладном уровне для обеспечения безопасной связи с удаленным сервером. Существует довольно много технологий построенных на его основе.
Конечно, мы обсудили далеко не все протоколы. Но, тем не менее, этого достаточно для общего понимания построения сетей.
На данном этапе вы должны четко понимать основные сетевые термины и представлять, каким образом различные сетевые компоненты соотносятся друг с другом. Эти знания помогут вам понять статьи на сетевую тематику и документацию к вашему сетевому оборудованию.
Post Views: 810
Введение в Foreign keys Foreign keys это движущая сила реляционных БД. Выборка по нескольким таблицам по прежнему формируется при помощи JOIN-конструкций, но FK создаёт логические…
Случайные сети Случайный граф Эрдоша и Ренуи (P. Erdős, A. Renyi) начинается с фиксированного числа вершин и 0 связей между ними. Далее,…
Как регламентировать перекуры в течение рабочего дня? Можно ли разрешать опаздывать к началу рабочего дня? Можно ли чатится во время…
Источник: evilinside.ru
Основы сетевых технологий
Сетевое взаимодействие — это основа современных технологий, необходимая для подключения устройств и служб. В этой статье вы узнаете о ключевых понятиях, терминологии и протоколах, которые используются в сетевых технологиях.
Терминология
Прежде чем мы погрузимся в эту концепцию, давайте сначала разберёмся в терминологии, используемой в сетевых технологиях. Ниже перечислены наиболее распространённые термины, используемые в сетевых технологиях:
Этот список не является исчерпывающим, и другие термины будут объясняться по мере их появления. Понимание этих высокоуровневых понятий поможет при обсуждении последующих тем.
Сетевые уровни
Сетевая коммуникация построена по слоям, при этом несколько технологий и протоколов работают вместе в рамках компьютера или сети. Такой многоуровневый подход позволяет эффективно передавать данные и использовать нижние уровни для новых целей. Язык, используемый для описания уровней, может быть разным, но путь данных остаётся неизменным: данные проходят через уровни сверху вниз для передачи и обратно для приёма. Каждый уровень добавляет обёртку к данным для обработки следующим уровнем.
Модель TCP/IP
Модель TCP/IP, также известная как набор протоколов Интернета, является широко принятой моделью слоёв, которая определяет четыре отдельных уровня:
- Приложение: отвечает за создание и передачу пользовательских данных между приложениями, позволяя взаимодействию выглядеть так, как будто оно происходит локально между равными.
- Транспорт: отвечает за связь между процессами и использует порты для обращения к различным службам.
- Интернет: отвечает за транспортировку данных от узла к узлу в сети, используя IP-адреса для доступа к удалённым системам.
- Связь: реализует топологию локальной сети и устанавливает соединения между соседними узлами для отправки данных.
Модель TCP/IP абстрактна и подвижна, что сделало её популярной для реализации и стало доминирующим способом категоризации сетевых уровней.
Интерфейсы
Сетевой интерфейс — это точка связи для подключения компьютера к сети. Каждый интерфейс связан с физическим или виртуальным сетевым устройством.
Как правило, сервер имеет один настраиваемый сетевой интерфейс для каждой имеющейся у него карты Ethernet или беспроводного интернета. Эти интерфейсы обычно обозначаются такими именами, как eth0 , wlan0 и т.д.
В дополнение к этим физическим интерфейсам сервер также имеет виртуальный сетевой интерфейс, называемый loopback или localhost . Этот интерфейс представлен IP-адресом loopback (127.0.0.1) и используется как средство связи приложений и процессов на одном компьютере друг с другом. Во многих программах этот интерфейс обозначается как lo .
В центрах обработки данных администраторы часто настраивают один интерфейс, например eth0 , для обслуживания трафика в Интернет, а другой интерфейс, например eth1 , для локальной или частной сети. Это позволяет чётко разделить трафик и повысить безопасность. В некоторых случаях VPS будет иметь два сетевых интерфейса, eth0 будет настроен для обработки трафика из интернета, а интерфейс eth1 будет работать для связи с частной сетью.
Протоколы
Сетевые протоколы — это наборы правил, которые регулируют обмен данными между устройствами в сети. Они определяют формат пакетов данных, способ их передачи и реакцию устройств на различные типы трафика. Некоторые примеры распространённых сетевых протоколов включают:
- TCP (Transmission Control Protocol): Протокол транспортного уровня, который обеспечивает надёжную, упорядоченную доставку данных между устройствами. Он часто используется в сочетании с IP (Internet Protocol), образуя набор TCP/IP.
- UDP (User Datagram Protocol): Более простой протокол транспортного уровня, который не обеспечивает такой же уровень надёжности, как TCP. Он часто используется для приложений реального времени или в ситуациях, когда потеря данных допустима.
- IP (Internet Protocol): Протокол сетевого уровня, который обеспечивает маршрутизацию и адресацию устройств в сети. Он отвечает за перемещение пакетов данных между устройствами, используя IP-адреса.
- HTTP (Hypertext Transfer Protocol): Протокол прикладного уровня, который используется для передачи данных через Интернет. Он является основой Всемирной паутины и используется браузерами для запроса и получения веб-страниц.
- HTTPS (HTTP Secure): Расширение HTTP, использующее Transport Layer Security (TLS) или Secure Sockets Layer (SSL) для шифрования данных при передаче. Обычно используется для онлайн-транзакций и передачи других конфиденциальных данных.
- DNS (Domain Name System): Протокол прикладного уровня, который переводит доменные имена (например, www.example.com) в IP-адреса.
Заключение
К этому моменту вы должны иметь базовое представление о сетевой терминологии и о том, как различные компоненты подключаются и взаимодействуют друг с другом. Эти знания помогут вам лучше понять последующие темы.
Источник: www.dev-notes.ru
Русские Блоги
Из модели OSI видно, что IP — это сетевой уровень, TCP — транспортный уровень, а HTTP — прикладной уровень, который включает их взаимосвязь.
Насколько я понимаю, TCP — это протокол транспортного уровня. Передача, как следует из названия, передает пакеты данных из одной сети в другую. Затем вы хотите передать в другую сеть. Как вы определяете адрес этой сети? Таким образом, роль протокола IP приходит, потому что IP-адрес является уникальным
Протокол TCP определяет местонахождение соответствующей сети по протоколу IP, а затем передает пакет данных в соответствующую сеть. Это взаимосвязь между TCP и протоколом IP.
Затем пакеты данных, передаваемые по протоколу TCP, генерируются из-за правил фиксированного формата, так что принятые пакеты могут быть проанализированы только после их получения. Таким образом, HTTP генерирует пакет данных (другие протоколы прикладного уровня также могут генерировать пакеты данных, давайте возьмем HTTP в качестве примера)
В дополнение к TCP и UDP на транспортном уровне, разница между этими двумя заключается в том, что TCP обеспечивает гарантированную передачу данных, то есть TCP имеет специальный механизм, обеспечивающий безопасность данных от безошибочной передачи от одной конечной точки к другой конечной точке.
Источник: russianblogs.com