Телевизоры

Связь tcp. Принципы использования адресов в стеке протоколов

Связь tcp. Принципы использования адресов в стеке протоколов

Для упорядочения обмена данными между компьютерами применяются наборы правил, или протоколы . В настоящее время наиболее широко распространен набор протоколов под общим названием TCP/IP . (Следует помнить, что во многих странах Европы применяется протокол X.25 ). Основные функции семейства протоколов TCP/IP : электронная почта, передача файлов между компьютерами и удаленный вход в систему.

Пользовательская команда mail , пользовательские команды обработки сообщений (MH) и команда сервера sendmail могут применять TCP/IP для передачи сообщений между системами, а основные сетевые утилиты (BNU) могут применять TCP/IP для передачи файлов и команд между системами.

TCP/IP - это набор протоколов, который задает стандарты связи между компьютерами и содержит подробные соглашения о маршрутизации и межсетевом взаимодействии. TCP/IP широко применяется в Internet, поэтому с его помощью могут общаться пользователи из исследовательских институтов, школ, университетов, правительственных учреждений и промышленных предприятий.

TCP/IP обеспечивает связь подключенных к сети компьютеров, обычно называемых хостами. Любую сеть можно подключить к другой сети и организовать связь с ее хостами. Несмотря на то, что существуют различные сетевые технологии, многие из которых основаны на коммутации пакетов и потоковом режиме передачи, набор протокол TCP/IP обладает одним важным преимуществом: он обеспечивает аппаратную независимость.

Так как в протоколах Internet определяется только блок передачи и способ его отправки, TCP/IP не зависит от особенностей сетевого аппаратного обеспечения, позволяя организовать обмен информацией между сетями с различной технологией передачи данных. Система IP-адресов позволяет установить соединение между любыми двумя машинами сети. Кроме того, в TCP/IP также определены стандарты для многих служб связи, предназначенных для конечных пользователей.

TCP/IP обеспечивает средства, позволяющие вашему компьютеру выступать в роли хоста Internet, который может подключиться к сети и установить соединение с любым другим хостом Internet. В TCP/IP предусмотрены команды и средства, которые позволяют выполнять следующие действия:

  • Передавать файлы в другую систему
  • Входить в удаленную систему
  • Выполнять команды в удаленной системе
  • Печатать файлы в удаленной системе
  • Отправлять электронные сообщения удаленным пользователям
  • Вести интерактивный диалог с удаленными пользователями
  • Управлять сетью
Примечание: TCP/IP предусмотрены только основные функции управления сетью. По сравнению с TCP/IP, Простой протокол управления сетью (SNMP) предоставляет более широкий набор команд и функций управления.
  • Терминология TCP/IP
    Ознакомьтесь с основными понятиями Internet, связанными с TCP/IP.
  • Планирование сети TCP/IP
    Стек протоколов TCP/IP - это гибкое средство организации сетевого взаимодействия, поэтому каждый пользователь может настроить его с учетом собственных потребностей. При планировании сети обратите внимание не следующие вопросы. Более подробно эти вопросы обсуждаются в других разделах. Данный список следует рассматривать лишь как общий обзор задач.
  • Установка TCP/IP
    В этом разделе рассмотрена процедура установки TCP/IP .
  • Настройка TCP/IP
    Настройку программного обеспечения TCP/IP можно начинать сразу после его установки в системе.
  • Идентификация и защищенные rcmds
    Теперь у этих команд появились дополнительные способы идентификации.
  • Настройка TCP/IP
    Для настройки TCP/IP создайте файл .netrc .
  • Способы организации взаимодействия с другой системой или пользователем
    Существует несколько способов организации взаимодействия с другой системой или пользователем. В данном разделе описаны два возможных способа. Во-первых, можно установить соединение между локальным и удаленным хостами. Второй способ - это диалог с удаленным пользователем.
  • Передача файлов
    Несмотря на то, что сравнительно небольшие файлы можно передавать с помощью электронной почты, для больших файлов существуют более эффективные способы передачи.
  • Печать на удаленном принтере
    Если к вашему хосту подключен локальный принтер, то с помощью приведенной в этом разделе информации вы сможете печатать на удаленном принтере. Кроме того, если локального принтера нет, то вы сможете печатать на удаленном принтере, отличном от заданного по умолчанию.
  • Печать файлов из удаленной системы
    Вам может понадобиться напечатать файл, который расположен на удаленном хосте. В этом случае расположение напечатанного файла зависит от того, какие удаленные принтеры доступны удаленному хосту.
  • Просмотр сведений о состоянии
    С помощью команд TCP/IP вы можете получить информацию о состоянии, пользователях и хостах сети. Эта информация может потребоваться для связи с другим хостом или пользователем.
  • Протоколы TCP/IP
    Протоколом называется набор правил, задающих форматы сообщений и процедуры, которые позволяют компьютерам и прикладным программам обмениваться информацией. Эти правила соблюдаются каждым компьютером в сети, в результате чего любой хост-получатель может понять отправленное ему сообщение. Набор протоколов TCP/IP можно рассматривать как многоуровневую структуру.
  • Карты сетевых адаптеров локальной сети TCP/IP
    Карта сетевого адаптера - это физическое устройство, которое непосредственно подключается к сетевому кабелю. Она отвечает за прием и передачу данных на физическом уровне.
  • Сетевые интерфейсы TCP/IP
    На уровне сетевого интерфейса TCP/IP создает из IP-дейтаграмм пакеты, которые могут интерпретироваться и передаваться с помощью определенных сетевых технологий.
  • Адресация TCP/IP
    Схема IP-адресации, применяемая в TCP/IP , позволяет пользователям и приложениям однозначно идентифицировать сети и хосты, с которыми устанавливаются соединения.
  • Преобразование имен TCP/IP
    Несмотря на то, что 32-разрядные IP-адреса позволяют однозначно идентифицировать все хосты в сети Internet, пользователям гораздо удобнее работать с осмысленными, легко запоминающимися именами хостов. В Протоколе управления передачей/Протоколе Internet (TCP/IP) предусмотрена система имен, поддерживающая как одноуровневую, так и иерархическую структуру сети.
  • Планирование и настройка преобразования имен LDAP (Схема IBM SecureWay Directory)
    Упрощенный протокол доступа к каталогам (LDAP) - это открытый стандартный протокол, регламентирующий способ получения и изменения информации в каталоге.
  • Планирование и настройка преобразования имен NIS_LDAP (схема RFC 2307)
    В AIX 5.2 реализован новый механизм преобразования имен NIS_LDAP.
  • Присвоение адреса и параметров TCP/IP - протокол динамической настройки хостов
    предназначен для организации связи между компьютерами с определенными адресами. Одной из обязанностей администратора сети является присвоение адресов и задание параметров для всех машин в сети. Обычно администратор информирует пользователей о том, какие адреса выделены их системам, и предоставляет пользователям возможность самим выполнить настройку. Однако ошибки при настройке или неправильное понимание могут вызвать у пользователей вопросы, которые администратор должен будет рассматривать индивидуально. позволяет администратору централизованно настраивать сеть без участия конечных пользователей.
  • Протокол динамической настройки хостов версии 6
    Протокол динамической настройки хостов (DHCP) позволяет работать с сетевыми конфигурациями из централизованного расположения. Этот раздел посвящен DHCPv6 ; под IP-адресами понимаются адреса IPv6, а под DHCP - DHCPv6 (если не сказано обратное).
  • Демон PXE Proxy DHCP
    Сервер PXE Proxy DHCP работает примерно так же, как и сервер DHCP : он просматривает сообщения клиентов DHCP и отвечает на некоторые запросы. Однако, в отличие от сервера DHCP , сервер PXE Proxy DHCP не управляет сетевыми адресами, а всего лишь отвечает на запросы клиентов PXE.
  • Демон согласования загрузочных образов (BINLD)
    Сервер демона согласования загрузочных образов (BINLD) применяется на третьем этапе загрузки клиентов PXE.
  • Демоны TCP/IP
    Демоны (или серверы ) - это процессы, которые работают в фоновом режиме и выполняют запросы других процессов. Протокол управления передачей/Протокол Internet применяет программы-демоны для выполнения определенных функций в операционной системе.
  • Маршрутизация TCP/IP
    Маршрутом называется путь, по которому пакеты пересылаются от отправителя к получателю.
  • Mobile IPv6
    Протокол Mobile IPv6 обеспечивает поддержку переадресации для IPv6 . С его помощью пользователь может применять один и тот же IP-адрес в любой точке земного шара, а приложения, работающие с этим адресом, сохраняют связь и соединения верхнего уровня, независимо от местонахождения пользователя. Поддержка переадресации осуществляется в однородных и разнородных средах.
  • Виртуальный IP-адрес
    Виртуальный IP-адрес устраняет зависимость хоста от отдельных сетевых интерфейсов.
  • Канал EtherChannel и объединение линий IEEE 802.3ad
    Канал EtherChannel и объединение линий IEEE 802.3ad - это технологии объединения сетевых портов, позволяющие объединить несколько адаптеров Ethernet в одно псевдоустройство Ethernet.
  • Протокол IP для InfiniBand (IPoIB)
    Пакеты IP-протокола могут быть отправлены через интерфейс InfiniBand (IB). При этом IP-пакеты заключаются в пакеты IB с помощью сетевого интерфейса.
  • Инициатор ПО iSCSI и целевой объект ПО
    Программный инициатор iSCSI позволяет AIX получать доступ к запоминающим устройствам по сети TCP/IP с использованием адаптеров Ethernet. Целевой объект ПО iSCSI обеспечивает AIX доступ других инициаторов iSCSI к экспортированной локальной памяти с использованием протокола iSCSI, определенного в RFC 3720.

В современном мире информация распространяется за считанные секунды. Вот только что появилась новость, а через секунду она уже доступна на каком-либо сайте в сети интернет. Интернет считается одной из самых полезных разработок человеческого разума. Чтобы пользоваться всеми благами, которые предоставляет интернет, необходимо подключиться к этой сети.

Мало кто знает, что простой процесс посещения веб-страничек подразумевает незаметную для пользователя, сложную систему действий. Каждый переход по ссылке активирует сотни различных вычислительных операций в сердце компьютера. В их числе передачи запросов, прием ответов и многое другое. За каждое действие в сети отвечают так называемые протоколы TCP/IP. Что они собой представляют?

Любой протокол интернета TCP/IP работает на своем уровне. Иными словами, каждый занимается своим делом. Все семейство TCP/IP протоколов одновременно выполняет колоссальную работу. А пользователь в это время видит только яркие картинки и длинные строки текста.

Понятие стека протоколов

Стек протоколов TCP/IP - это организованный набор основных сетевых протоколов, который иерархическим способом разделен на четыре уровня и представляет собой систему транспортного распределения пакетов по компьютерной сети.

TCP/IP - это наиболее известный стек сетевых протоколов, который используется на данный момент. Принципы стека TCP/IP применяются как в локальных, так и в глобальных сетях.

Принципы использования адресов в стеке протоколов

Стек сетевых протоколов TCP/IP описывает пути и направления отправки пакетов. Это основная задача всего стека, выполняющаяся на четырех уровнях, которые взаимодействуют между собой протоколированным алгоритмом. Для правильной отправки пакета и его доставки ровно в ту точку, которая его запросила, была введена и стандартизирована адресация IP. Этому послужило наличие следующих задач:

  • Адреса различного типа, должны быть согласованы. Например преобразование домена сайта в IP адрес сервера и обратно, или преобразование имени узла в адрес и обратно. Таки образом становится возможен доступ к точке не только с помощью IP адреса, но и по интуитивному названию.
  • Адреса должны быть уникальны. Это вызвано тем, что в некоторых частных случаях пакет должен попасть только в одну конкретную точку.
  • Необходимость конфигурирования локальных вычислительных сетей.

В малых сетях, где используется несколько десятков узлов, все эти задачи выполняются элементарно, с помощью простейших решений: составление таблицы с описанием принадлежности машины и соответствующего ей IP адреса, или можно вручную раздать всем сетевым адаптерам IP адреса. Однако для крупных сетей на тысячу или две тысячи машин задача ручной выдачи адресов не кажется такой выполнимой.

Именно поэтому для сетей TCP/IP был изобретен специальный подход, который и стал отличительной чертой стека протоколов. Было введено понятие - масштабируемость.

Уровни стека протоколов TCP/IP

Здесь существует определенная иерархия. Стек протоколов TCP/IP предусматривает четыре уровня, каждый из которых обрабатывает свой набор протоколов:

Прикладной уровень : создан для обеспечения работы пользователя с сетью На этом уровне обрабатывается все то, что видит и делает пользователь. Уровень позволяет пользователю получить доступ к различным сетевым службам, например: доступ к базам данных, возможность прочитать список файлов и открыть их, отправить электронное сообщение или открыть веб-страницу. Вместе с пользовательскими данными и действиям, на этом уровне передается служебная информация.

Транспортный уровень: это механизм передачи пакетов в чистом виде. На этом уровне совершенно не имеет значения ни содержимое пакета, ни его принадлежность к какому бы то ни было действию. На этом уровне имеет значение только адрес узла отправки пакета и адрес узла, на который пакет должен быть доставлен. Как правило, размер фрагментов, передаваемых с использованием разных протоколов, может изменяться, потому на этом уровне блоки информации могут дробиться на выходе и собираться в единое целое в точке назначения. Этим обусловлена возможная потеря данных, если в момент передачи очередного фрагмента произойдет кратковременный разрыв соединения.

Транспортный уровень включает в себя много протоколов, которые делятся на классы, от простейших, которые просто передают данные, до сложных, которые оснащены функционалом подтверждения приема, или повторного запроса недополученного блока данных.

Данный уровень, предоставляет вышестоящему (прикладному) два типа сервиса:

  • Осуществляет гарантированную доставку, с помощью протокола ТСР.
  • Осуществляет доставку по возможности по протоколу UDP.

Чтобы обеспечить гарантированную доставку, согласно протоколу TCP устанавливается соединение, которое позволяет выставлять на пакетах нумерацию на выходе и подтверждать их прием на входе. Нумерация пакетов и подтверждение приема - это так называемая служебная информация. Этот протокол поддерживает передачу в режиме "Дуплекс". Кроме того, благодаря продуманному регламенту протокола, он считается очень надежным.

Протокол UDP предназначен для моментов, когда невозможно настроить передачу по протоколу TCP, либо приходится экономить на сегменте сетевой передачи данных. Также протокол UDP может взаимодействовать с протоколами более высокого уровня, для повышения надежности передачи пакетов.

Сетевой уровень или "уровень интернета": базовый уровень для всей модели TCP/IP. Основной функционал этого уровня идентичен одноименному уровню модели OSI и описывает перемещение пакетов в составной сети, состоящей из нескольких, более мелких подсетей. Он связывает соседние уровни протокола TCP/IP.

Сетевой уровень является связующим между вышестоящим транспортным уровнем и нижестоящим уровнем сетевых интерфейсов. Сетевой уровень использует протоколы, которые получают запрос от транспортного уровня, и посредством регламентированной адресации передают обработанный запрос на протокол сетевых интерфейсов, указывая, по какому адресу направить данные.

На этом уровне используются следующие сетевые протоколы TCP/IP: ICMP, IP, RIP, OSPF. Основным, и наиболее популярным на сетевом уровне, конечно же является протокол IP (Internet Protocol). Основной его задачей является передача пакетов от одного роутера к другому до тех пор, пока единица данных не попадет на сетевой интерфейс узла назначения. Протокол IP разворачивается не только на хостах, но и на сетевом оборудовании: маршрутизаторах и управляемых коммутаторах. Протокол IP работает по принципу негарантированной доставки с максимальными усилиями. Т. е., для отправки пакета нет необходимости заранее устанавливать соединение. Такой вариант приводит к экономии трафика и времени на движении лишних служебных пакетов. Пакет направляется в сторону назначения, и вполне возможно, что узел останется недоступным. В таком случае возвращается сообщение об ошибке.

Уровень сетевых интерфейсов: отвечает за то, чтобы подсети с разными технологиями могли взаимодействовать друг с другом и передавать информацию в том же режиме. Реализовано это двумя простыми шагами:

  • Кодирование пакета в единицу данных промежуточной сети.
  • Преобразование информации о месте назначения в стандарты необходимой подсети и отправка единицы данных.

Этот подход позволяет постоянно расширять количество поддерживаемых технологий построения сетей. Как только появляется новая технология, она сразу попадает в стек проколов TCP/IP и позволяет сетям со старыми технологиями передавать данные в сети, построенные с применением более современных стандартов и способов.

Единицы передаваемых данных

За время существования такого явления, как протоколы TCP/IP, установились стандартные термины по части единиц передаваемых данных. Данные при передаче могут дробиться по-разному, в зависимости от технологий, используемых сетью назначения.

Чтобы иметь представление о том, что и в какой момент времени происходит с данными, нужно было придумать следующую терминологию:

  • Поток данных - данные, которые поступают на транспортный уровень от протоколов вышестоящего прикладного уровня.
  • Сегмент - фрагмент данных, на которые дробится поток по стандартам протокола TCP.
  • Датаграмма (особо безграмотные произносят как "Дейтаграмма") - единицы данных, которые получаются путем дробления потока с помощью протоколов, работающих без установления соединения (UDP).
  • Пакет - единица данных, производимая посредством протокола IP.
  • Протоколы TCP/IP упаковывают IP-пакеты в передаваемые по составным сетям блоки данных, которые называются кадрами или фреймами .

Типы адресов стека протоколов TCP/IP

Любой протокол передачи данных TCP/IP для идентификации узлов использует один из следующих типов адресов:

  • Локальные (аппаратные) адреса.
  • Сетевые адреса (IP адреса).
  • Доменные имена.

Локальные адреса (MAC-адреса) - используются в большинстве технологий локальных вычислительных сетей, для идентификации сетевых интерфейсов. Под словом локальный, говоря о TCP/IP, следует понимать интерфейс, который действует не в составной сети, а в пределах отдельно взятой подсети. Например, подсеть интерфейса, подключенного к интернет - будет локальной, а сеть интернет - составной. Локальная сеть может быть построена на любой технологии, и независимо от этого, с точки зрения составной сети машина, находящаяся в отдельно выделенной подсети, будет называться локальной. Таким образом, когда пакет попадает в локальную сеть, дальше его IP адрес ассоциируется с локальным адресом, и пакет направляется уже на MAC-адрес сетевого интерфейса.

Сетевые адреса (IP-адреса). В технологии TCP/IP предусмотрена собственная глобальная адресация узлов, для решения простой задачи - объединения сетей с разной технологией в одну большую структуру передачи данных. IP-адресация совершенно не зависит от технологии, которая используется в локальной сети, однако IP адрес позволяет сетевому интерфейсу представлять машину в составной сети.

В итоге была разработана система, при которой узлам назначается IP адрес и маска подсети. Маска подсети показывает, какое количество бит отводится под номер сети, а какое количество под номер узла. IP адрес состоит из 32 бит, разделенных на блоки по 8 бит.

При передаче пакета ему назначается информация о номере сети и номере узла, в который пакет должен быть направлен. Сначала маршрутизатор направляет пакет в нужную подсеть, а потом выбирается узел, который его ждет. Этот процесс осуществляется протоколом разрешения адресов (ARP).

Доменные адреса в сетях TCP/IP управляются специально разработанной системой доменных имен (DNS). Для этого существуют серверы, которые сопоставляют доменное имя, представленное в виде строки текста, с IP адресом, и отправляет пакет уже в соответствии с глобальной адресацией. Между именем компьютера и IP адресом не предусмотрено соответствий, поэтому, чтобы преобразовать доменное имя в IP адрес, передающему устройству необходимо обратиться к таблице маршрутизации, которая создается на DNS сервере. Например, мы пишем в браузере адрес сайта, DNS сервер сопоставляет его с IP адресом сервера, на котором сайт расположен, и браузер считывает информацию, получая ответ.

Кроме сети интернет, есть возможность выдавать компьютерам доменные имена. Таким образом, упрощается процесс работы в локальной сети. Пропадает необходимость запоминать все IP-адреса. Вместо них можно придумать каждому компьютеру любое имя и использовать его.

IP-адрес. Формат. Составляющие. Маска подсети

IP адрес - 32-битное число, которое в традиционном представлении записывается в виде чисел, от 1 до 255, разделенных между собой точками.

Вид IP адреса в различных форматах записи:

  • Десятичный вид IP адреса: 192.168.0.10.
  • Двоичный вид того же IP адреса: 11000000.10101000.00000000.00001010.
  • Запись адреса в шестнадцатеричной системе счисления: C0.A8.00.0A.

Между ID сети и номером точки в записи нет разделительного знака, но компьютер способен их разделять. Для этого существует три способа:

  1. Фиксированная граница. При этом способе весь адрес условно делится на две части фиксированной длины побайтно. Таким образом, если под номер сети отдать один байт, тогда мы получим 2 8 сетей по 2 24 узлов. Если границу сдвинуть еще на байт вправо, тогда сетей станет больше - 2 16 , а узлов станет меньше - 2 16 . На сегодняшний день подход считается устаревшим и не используется.
  2. Маска подсети. Маска идет в паре с IP адресом. Маска имеет последовательность значений "1" в тех разрядах, которые отведены под номер сети, и определенное количество нулей в тех местах IP адреса, которые отведены на номер узла. Граница между единицами и нулями в маске - это граница между идентификатором сети и ID узла в IP-адресе.
  3. Метод классов адресов. Компромиссный метод. При его использовании размеры сетей не могут быть выбраны пользователем, однако есть пять классов - А, В, С, D, Е. Три класса - А, В и С - предназначены для различных сетей, а D и Е - зарезервированы для сетей специального назначения. В классовой системе каждый класс имеет свою границу номера сети и ID узла.

Классы IP адресов

К классу А относятся сети, в которых сеть идентифицируется по первому байту, а три оставшихся являются номером узла. Все IP адреса, которые имеют в своем диапазоне значение первого байта от 1 до 126 - это сети класса А. Количественно сетей класса А получается совсем мало, зато в каждой из них может быть до 2 24 точек.

Класс В - сети, в которых два высших бита равны 10. В них под номер сети и идентификатор точки отводится по 16 бит. В результате получается, что количество сетей класса В в большую сторону отличается от количества сетей класса А количественно, но они имеют меньшее количество узлов - до 65 536 (2 16) шт.

В сетях класса С - совсем мало узлов - 2 8 в каждой, но количество сетей огромно, благодаря тому, что идентификатор сети в таких структурах занимает целых три байта.

Сети класса D - уже относятся к особым сетям. Он начинается с последовательности 1110 и называется групповым адресом (Multicast adress). Интерфейсы, имеющие адреса класса А, В и С, могут входить в группу и получать вдобавок к индивидуальному еще и групповой адрес.

Адреса класса Е - в резерве на будущее. Такие адреса начинаются с последовательности 11110. Скорее всего, эти адреса будут применяться в качестве групповых, когда наступит нехватка IP адресов в глобальной сети.

Настройка протокола TCP/IP

Настройка протокола TCP/IP доступна на всех операционных системах. Это - Linux, CentOS, Mac OS X, Free BSD, Windows 7. Протокол TCP/IP требует только наличия сетевого адаптера. Разумеется, серверные операционные системы способны на большее. Очень широко, с помощью серверных служб, настраивается протокол TCP/IP. IP адреса в в обычных настольных компьютерах задаются в настройках сетевых подключений. Там настраивается сетевой адрес, шлюз - IP адрес точки, имеющий выход в глобальную сеть, и адреса точек, на которых располагается DNS сервер.

Протокол интернета TCP/IP может настраиваться в ручном режиме. Хотя не всегда в этом есть необходимость. Можно получать параметры протокола TCP/IP с динамически-раздающего адреса сервера в автоматическом режиме. Такой способ используют в больших корпоративных сетях. На DHCP сервер можно сопоставить локальный адрес к сетевому, и как только в сети появится машина с заданным IP адресом, сервер сразу даст ему заранее подготовленный IP адрес. Этот процесс называется резервирование.

TCP/IP Протокол разрешения адресов

Единственный способ установить связь между MAC-адресом и IP адресом - ведение таблицы. При наличии таблицы маршрутизации каждый сетевой интерфейс осведомлен о своих адресах (локальном и сетевом), однако встает вопрос, как правильно организовать обмен пакетами между узлами, применяя протокол TCP/IP 4.

Для чего был придуман протокол разрешения адресов (ARP)? Для того, чтобы связывать семейство TCP/IP протоколов и других систем адресации. На каждом узле создается таблица соответствия ARP, которая заполняется путем опроса всей сети. Происходит это после каждого выключения компьютера.

ARP таблица

Так выглядит пример составленной ARP таблицы.

В настоящее время я работаю над проектом, где мне нужно использовать Arduino Nano (http://arduino.cc/en/Main/arduinoBoardNano) для отправки данных с датчика температуры на веб-сервер.

Сначала я думал, что это будет легко, так как там очень много отличных библиотек, чтобы помочь с POST/GET и т.д. Однако мой профессор сказал мне, что мне нужно отправить данные на сервер с использованием TCP/IP, и, насколько я понимаю, POST и GET являются HTTP-методами.

Может ли кто-нибудь объяснить мне разницу между HTTP и TCP/IP? В частности, это касается отправки данных на веб-сервер. Я ищу ответ, который не слишком технический (я довольно новичок в этом).

Наконец, если есть кто-то, у кого есть опыт, когда Arduino делает то, что я описал выше, я бы очень признателен за некоторые указатели.

3 ответов

HTTP - это протокол, используемый в основном для просмотра Интернета (IE, Firefox и т.д.). Он распространяется поверх TCP, который обеспечивает надежную связь между двумя компьютерами (если пакет потерян - он повторно передается). Сам TCP проходит поверх IP-адреса, который обеспечивает унифицированную адресацию для связи между компьютерами. TCP/IP является основой для Интернета и 99% других сетей.

В основном это означает, что если вы сообщаете HTTP, вы делаете это с TCP/IP под ним (но я уверен, что это не то, что имел в виду ваш профессор).

Arduino Nano не поддерживает все эти функции, поэтому вам нужно что-то среднее между ними, которое будет транслировать передачу Nano на связь TCP/HTTP.

Некоторые из ваших вариантов:

  • Общение с Nano over Serial и перевод ПК на ваш последовательный протокол на HTTP/TCP
  • Switch Nano с другой платой Arduino, которая поддерживает расширение экрана Ethernet/Wifi (Uno/Mega) или выбор пользовательской платы, которая сама по себе содержит Ethernet
  • Использование другого Arduino (Uno/Mega) с экраном Ethernet в качестве дополнительной платы, которая взаимодействует с Nano over Serial или с помощью RF-модулей (я лично реализовал этот вариант в прошлом)
  • Еще один необычный вариант - подключить Nano к Android-смартфону с помощью аудиокабеля и использовать библиотеку soft-modem (https://code.google.com/p/arms22/issues/detail?id=2), которая содержит реализацию для Android и написать приложение для Android

Веб-сервер, о котором вы говорите, поддерживает HTTP только по определению, поэтому, если вы хотите общаться через TCP, вам нужно будет использовать какой-либо TCP-сервер.

Один из существующих веб-сервисов для предоставления графиков для визуализации данных Sensor - https://xively.com/ , он основан на REST, который проходит поверх HTTP. Но это не единственный.

Вкратце: TCP - это протокол транспортного уровня, а HTTP - протокол уровня приложения, который работает через TCP.

Подробнее: Чтобы понять разницу (и многие другие темы в сети), вам нужно понять идею многоуровневой сетевой модели. По сути, существуют разные протоколы, которые позволяют компьютеру разговаривать на разных расстояниях и разных уровнях абстракции.

В самом низу сетевого стека находится физический уровень. Здесь электрические сигналы или световые импульсы или радиоволны фактически передают информацию с места на место. Физический уровень действительно не имеет протоколов, но вместо этого имеет стандарты для напряжений, частот и других физических свойств. Вы можете передавать информацию прямо таким образом, но вам нужно много энергии или выделенной линии, и без более высоких уровней вы не сможете использовать пропускную способность.

Следующий слой вверх - это слой связи. Этот уровень охватывает связь с устройствами, которые совместно используют физический коммуникационный носитель. Здесь протоколы, такие как Ethernet, 802.11a/b/g/n и Token Ring, определяют, как обрабатывать несколько одновременных доступов к физическому носителю и как направлять трафик на одно устройство, а не на другое. В типичной домашней сети это то, как ваш компьютер разговаривает с вашим домашним "маршрутизатором".

Третий уровень - это сетевой уровень. В большинстве случаев в этом доминирует Internet Protocol (IP). Здесь происходит волшебство Интернета, и вы можете поговорить с компьютером на полпути по всему миру, не зная, где он находится. Маршрутизаторы обрабатывают ваш трафик из локальной сети в сеть, где живет другой компьютер, где его собственный уровень ссылок обрабатывает пакеты на нужном компьютере.

Теперь мы куда-то попадаем. Мы можем поговорить с компьютером где-то по всему миру, но на этом компьютере запущено множество разных программ. Как он должен знать, какой из них должен доставить ваше сообщение? Транспортный уровень позаботится об этом, как правило, с номерами портов. Двумя самыми популярными протоколами транспортного уровня являются TCP и UDP. TCP делает много интересного, чтобы сгладить шероховатые пятна коммуникаций с коммутацией пакетов на сетевом уровне, таких как переупорядочивание пакетов, повторная передача потерянных пакетов и т.д. UDP более ненадежный, но имеет меньше накладных расходов.

Итак, мы подключили ваш браузер к программному обеспечению веб-сервера на другом конце, но как сервер знает, какую страницу вы хотите? Как вы можете отправить вопрос или ответ? Это те вещи, которые обрабатываются протоколами прикладного уровня. Для веб-трафика это протокол передачи гипертекста (HTTP). Существуют тысячи протоколов прикладного уровня: SMTP, IMAP и POP3 для электронной почты; XMPP, IRC, ICQ для чата; Telnet, SSH, RDP для удаленного администрирования; и др.

Это пять уровней сетевой модели TCP/IP, но они действительно только концептуальны. Модель OSI имеет 7 уровней. В действительности, некоторые протоколы прокладывают между различными слоями или могут работать сразу с несколькими слоями. TLS/SSL, например, обеспечивает шифрование и информацию о сеансе между сетевым и транспортным уровнями. Над слоем приложения интерфейсы прикладного программирования (API) управляют взаимодействием с веб-приложениями, такими как Quora, Twitter и Facebook.

Доброго времени суток, дорогие читатели.
По многочисленным просьбам сегодня я публикую для Вас статью, которая познакомит Вас с основами основ терминов компьютерной сети, а именно:

  • Сетевые протоколы - что это за страшные названия и с чем их едят
  • UDP, TCP, ICMP , - что, зачем и в чем разница
  • IP -адрес, - у всех есть, но не все знают нафига эта штука:-)
  • Маска адреса (подсеть)
  • Шлюз (gateway)
  • Несколько слов о таблицах маршрутизации
  • Порты, - что это на самом деле
  • MAC -адрес

Примерно так.

Статья, думаю, будет полезна всем от мала до велика, ибо содержит не столько набор странных непонятных действий или слов, сколько блок доступным языком изложенной информации, которая, как минимум, даст Вам понимание как вообще это всё работает и зачем это нужно. Поехали.

Сетевые протоколы TCP/IP, NWLink IPX/SPX, NetBEUI

Давайте начнем с того, что вообще такое сетевой протокол и с чем его едят.
Сетевой протокол - это набор программно реализованных правил общения между компьютерами. Этакий язык, на котором компьютеры разговаривают друг с другом и передают информацию. Ранее компьютеры были, так сказать, многоязычны и в старых версиях Windows использовался целый набор протоколов, - TCP/IP, NWLink IPX/SPX, NetBEUI . Ныне же пришли к общей договоренности, и стандартом стало использование исключительно протокола TCP/IP , а посему речь далее пойдет именно о нем.

Когда говорят о TCP/IP , то обычно подразумевают под этим именем множество различных.. правил или, скажем, стандартов, которые прописаны с использованием (или под использование) этого протокола. Так, например, есть правила, по которым осуществляется обмен сообщениями между почтовыми серверами и есть правила, по которым конечный пользователь получает в свой ящик письма. Имеются правила для проведения видео-конференций и правила для организации "телефонных" переговоров по Интернету. Фактически, это даже не то чтобы правила.. Скорее этакая грамматика, что ли. Ну знаете, в английском одна структура построения диалогов, в французском другая.. Вот и в TCP/IP нечто подобное, т.е. некая связка различных грамматических правил представляет собой как раз цельный протокол TCP/IP или, точнее говоря, стек протоколов TCP/IP .

Сетевые протоколы UDP, TCP, ICMP

В рамках протокола TCP/IP для передачи данных используются протоколы - TCP и UDP . Многие наверняка слышали, что есть порты как TCP , так и UDP , но не все знают в чем разница и что это вообще. И так..

Передача данных по протоколу TCP (Transmission Control Protocol - Протокол Управления Передачей) предусматривает наличие подтверждений получения информации. "-Ну, мол, - получил? -Получил!" Если же передающая сторона не получит в установленные сроки необходимого подтверждения, то данные будут переданы повторно. Поэтому протокол TCP относят к протоколам, предусматривающим соединение, а UDP (User Datagram Protocol - Протокол Пользовательских Датаграмм) - нет. UDP применяется в тех случаях, когда не требуется подтверждения приема (например, DNS-запросы или IP-телефония (яркий представитель которой, - Skype)). То есть разница заключается в наличии подтверждения приема. Казалось бы "Всего то!", но на практике это играет важную роль.

Есть еще так же протокол ICMP (Internet Control Message Protocol - межсетевой протокол управляющих сообщений), который используется для передачи данных о параметрах сети. Он включает в себя служебные типы пакетов, таки как ping, distination unreachable, TTL и пр.

Что такое IP-адрес

У всех он есть, но не все имеют представление что за адрес такой и почему вообще без него нельзя. Рассказываю.

IP -адрес - 32 -х битное число, используемое для идентификации компьютера в сети. Адрес принято записывать десятичными значениями каждого октета этого числа с разделением полученных значений точками. Например, 192.168.101.36

IP- адреса уникальны, - это значит, что каждый компьютер имеет свое собственное сочетание цифр, и в сети не может быть двух компьютеров с одинаковыми адресами. IP -адреса распределяются централизованно, интернет-провайдеры делают заявки в национальные центры в соответствии со своими потребностями. Полученные провайдерами диапазоны адресов распределяются дальше между клиентами. Клиенты, в свою очередь, сами могут выступать в роли провайдера и распределять полученные IP -адреса между субклиентами и т.д. При таком способе распределения IP -адресов компьютерная система точно знает "расположение" компьютера, имеющего уникальный IP -адрес; - ей достаточно переслать данные в сеть "владельца", а провайдер в свою очередь проанализирует пункт назначения и, зная, кому отдана эта часть адресов, отправит информацию следующему владельцу поддиапазона IP -адресов, пока данные не поступят на компьютер назначения.

Для построения же локальных сетей выделены спец.диапазоны адресов. Это адреса 10.x.x.x , 192.168.x.x , 10.x.x.x , c 172.16.x.x по 172.31.x.x , 169.254.x.x , где под x - имеется ввиду любое число это от 0 до 254 . Пакеты, передаваемые с указанных адресов, не маршрутизируется, иными словами, попросту не пересылаются через Интернет, а поэтому в различных локальных сетях компьютеры могут иметь совпадающие адреса из указанных диапазонов. Т.е., в компании ООО "Рога и копыта " и ООО "Вася и компания " могут находится два компьютера с адресами 192.168.0.244 , но не могут, скажем, с адресами 85.144.213.122 , полученными от провайдера интернета, т.к. в интернете не может быть два одинаковых IP -адреса. Для пересылки информации с таких компьютеров в Интернет и обратно используются спец.программы и устройства, которые заменяют локальные адреса реальными при работе с интернетом. Иными словами, данные в Сеть пересылаются с реального IP -адреса, а не с локального. Этот процесс происходит не заметно для пользователя и называется трансляцией адресов. Хочется так же упомянуть, что в рамках одной сети, скажем, компании, ООО "Рога и копыта ", не может быть два компьютера с одним локальным IP-адресом, т.е., в указанном выше примере имелось ввиду, что один компьютер с адресом 192.168.0.244 в одной компании, второй с таким же адресом - в другой. В одной же компании два компьютера с адресом 192.168.0.244 попросту не уживутся.

Вы наверняка слышали такие термины как внешний IP и внутренний IP , постоянный (статический IP) и переменный (динамический) IP . В двух словах о них:

  • внешний IP - это как раз тот самый IP , который выдает Вам провайдер, т.е. Ваш уникальный адрес в интернете, например, - 85.144.24.122
  • внутренний IP , - это локальный IP , т.е. Ваш IP в локальной сети, например, - 192.168.1.3
  • статический IP - это IP , который не меняется с каждым подключением, т.е. закреплен за Вами твердо и навсегда
  • динамический IP , - это плавающий IP -адрес, который меняется с каждым подключением

Тип Вашего IP (статический или динамический) зависит от настроек провайдера.

Что такое маска адреса (подсеть)

Понятие подсети введено, чтобы можно было выделить часть IP -адресов одной организации, часть другой и тд. Подсеть представляет собой диапазон IP-адресов, которые считаются принадлежащими одной локальной сети. При работе в локальной сети информация пересылается непосредственно получателю. Если данные предназначены компьютеры с IP-адресом, не принадлежащим локальной сети, то к ним применяются специальные правила для вычисления маршрута для пересылки из одной сети в другую.

Маска - это параметр, который сообщает программному обеспечению о том, сколько компьютеров объединено в данную группу (подсеть). Маска адреса имеет такую же структуру как и сам IP-адрес: это набор из четырех групп чисел, каждое из которых может быть в диапазоне от 0 до 255 . При этом, чем меньше значение маски, тем больше компьютеров объединено в данную подсеть. Для сетей небольших компаний маска обычно имеет вид 255.255.255.x (например, 255.255.255.224). Маска сети присваивается компьютеру одновременно с IP-адресом. Так, например, сеть 192.168.0.0 с маской 255.255.255.0 может содержать в себе компьютеры с адресами от 192.168.0.1 до 192.168.254 192.168.0.0 с маской 255.255.255.128 допускает адреса от 192.168.0.1 до 192.168.0.127 . Думаю, смысл понятен. Как правило сети с небольшим возможным числом компьютеров используются провайдерами с целью экономии IP-адресов. Например, клиенту, может быть назначен адрес с маской 255.255.255.252 . Такая подсеть содержит в себе только два компьютера.

После того как компьютер получил IP-адрес и ему стало известно значение маски подсети, программа может начать работу в данной локальной подсети. Однако же, чтобы обмениваться информацией с другими компьютерами в глобальной сети, необходимо знать правила, куда пересылать информацию для внешней сети. Для этого служит такая характеристика как адрес шлюза (Gateway).

Что такое Шлюз (Gateway)

Шлюз - это устройство (компьютер или маршрутизатор), которое обеспечивает пересылку информации между различными IP-подсетями. Если программа определяет (по IP и маске), что адрес назначения не входит в состав локальной подсети, то она отправляет эти данные на устройство, выполняющее функции шлюза. В настройках протокола указывают IP-адрес такого устройства.

Хотите знать и уметь, больше и сами?

Мы предлагаем Вам обучение по направлениям: компьютеры, программы, администрирование, сервера, сети, сайтостроение, SEO и другое. Узнайте подробности сейчас!

Для работы только в локальной сети шлюз может не указываться.

Для индивидуальных пользователей, подключающихся к Интернету, или для небольших предприятий, имеющих единственный канал подключения, в системе должен быть только один адрес шлюза, - это адрес того устройства, которое имеет подключение к Интернету. При наличии нескольких маршрутов будет существовать несколько шлюзов. В этом случае для определения пути передачи данных используется таблица маршрутизации.

Что такое таблицы маршрутизации

И вот мы плавно добрались и до них. И так.. Что же за таблицы такие.

Организация или пользователь может иметь несколько точек подключения к Интернету (например, резервные каналы на случай, если у первого провайдера что-то выйдет из строя, а интернет таки очень нужен) или содержать в своей структуре несколько IP -сетей. В этом случае, чтобы система знала каким путем (через какой шлюз) посылать ту или иную информацию, используются таблицы маршрутизации. В таблицах маршрутизации для каждого шлюза указываются те подсети Интернета, для которых через них должна передаваться информация. При этом для нескольких шлюзов можно задать одинаковые диапазоны, но с разной стоимостью передачи данных: например, информация, будет пересылаться по каналу, имеющему самую низкую стоимость, а в случае выхода его из строя по тем или иным причинам, автоматически будет использоваться следующее доступное наиболее дешевое соединение.

Что такое сетевые порты

При передаче данных кроме IP -адресов отправителя и получателя пакет информации содержит в себе номера портов. Пример: 192.168.1.1:80 , - в данном случае 80 - это номер порта. Порт - это некое число, которое используется при приеме и передаче данных для идентификации процесса (программы), который должен обработать данные. Так, если пакет послан на 80 -й порт, то это свидетельствует, что информация предназначена серверу HTTP .

Номера портов с 1 -го до 1023 -й закреплены за конкретными программами (так называемые well-known-порты). Порты с номерами 1024 -65 535 могут быть использованы в программах собственной разработки. При этом возможные конфликты должны решаться самими программами путем выбора свободного порта. Иными словами, порты будут распределяться динамически: возможно, что при следующем старте программа выберет иное значение порта, если, конечно, Вы вручную через настройки не задавали ей порт.

Что есть MAC-адрес

Дело в том, что пересылаемые пакеты в сети адресуются компьютерам не по их именам и не на IP -адрес. Пакет предназначается устройству с конкретным адресом, который и называется MAC -адресом.

MAC-адрес - это уникальный адрес сетевого устройства, который заложен в него изготовителем оборудования, т.е. это этакий проштампованный номер Вашей сетевой карты. Первая половина MAC -адрес представляет собой идентификатор изготовителя, вторая - уникальный номер данного устройства.

Как правило MAC -адрес бывает требуется для идентификации, скажем, у провайдера (если провайдер использует привязку по мак-адресу вместо логина-пароля) или при настройке маршрутизатора.

Где посмотреть все сетевые настройки

Чуть не забыл сказать пару слов о том где можно поглядеть и поменять всё это.

Протокол TCP/IP (Transmission Control Protocol/Internet Protocol ) представляет собой стек сетевых протоколов, повсеместно используемый для Интернета и других подобных сетей (например, данный протокол используется и в ЛВС). Название TCP/IP произошло от двух наиболее важных протоколов:

  • IP (интернет протокол) - отвечает за передачу пакета данных от узла к узлу. IP пересылает каждый пакет на основе четырехбайтного адреса назначения (IP-адрес).
  • TCP (протокол управления передачей) - отвечает за проверку корректной доставки данных от клиента к серверу. Данные могут быть потеряны в промежуточной сети. TCP добавлена возможность обнаружения ошибок или потерянных данных и, как следствие, возможность запросить повторную передачу, до тех пор, пока данные корректно и полностью не будут получены.

Основные характеристики TCP/IP:

  • Стандартизованные протоколы высокого уровня, используемые для хорошо известных пользовательских сервисов.
  • Используются открытые стандарты протоколов, что дает возможность разрабатывать и дорабатывать стандарты независимо от программного и аппаратного обеспечения;
  • Система уникальной адресации;
  • Независимость от используемого физического канала связи;

Принцип работы стека протоколов TCP/IP такой же как и в модели OSI, данные верхних уровней инкапсулируются в пакеты нижних уровней.

Если пакет продвигается по уровню сверху вниз - на каждом уровне добавляется к пакету служебная информация в виде заголовка и возможно трейлера (информации помещенной в конец сообщения). Этот процесс называется . Служебная информация предназначается для объекта того же уровня на удаленном компьютере. Ее формат и интерпретация определяются протоколами данного уровня.

Если пакет продвигается по уровню снизу вверх - он разделяется на заголовок и данные. Анализируется заголовок пакета, выделяется служебная информация и в соответствии с ней данные перенаправляются к одному из объектов вышестоящего уровня. Вышестоящий уровень, в свою очередь, анализирует эти данные и также их разделяет их на заголовок и данные, далее анализируется заголовок и выделяется служебная информация и данные для вышестоящего уровня. Процедура повторяется заново пока пользовательские данные, освобожденные от всей служебной информации, не дойдут до прикладного уровня.

Не исключено, что пакет так и не дойдет до прикладного уровня. В частности, если компьютер работает в роли промежуточной станции на пути между отправителем и получателем, тогда объект, на соответствующем уровне, при анализе служебной информации определит, что пакет на этом уровня адресован не ему, в следствии чего, объект проведет необходимые мероприятия для перенаправления пакета к пункту назначения или возврата отправителю с сообщением об ошибке. Но так или иначе не будет осуществлять продвижение данных на верхний уровень.

Пример инкапсуляции можно представить следующим образом:

Рассмотрим каждые функции уровней

Прикладной уровень

Приложения, работающие со стеком TCP/IP, могут также выполнять функции представительного уровня и частично сеансового уровня модели OSI.

Распространенными примерами приложений являются программы:

  • Telnet
  • HTTP
  • Протоколы электронной почты (SMTP, POP3)

Для пересылки данных другому приложению, приложение обращается к тому или иному модулю транспортного модуля.

Транспортный уровень

Протоколы транспортного уровня обеспечивают прозрачную доставку данных меду двумя прикладными процессами. Процесс, получающий или отправляющий данные, с помощью транспортного уровня идентифицируется на этом уровне номером, который называется номером порта.

Таким образом, роль адреса отправителя и получателя на транспортном уровне выполняется номером порта. Анализируя заголовок своего пакета, полученного от межсетевого уровня, транспортный модуль определяет по номеру порта получателя по какому из прикладных процессов направленны данные и передает эти данные к соответствующему прикладному процессу.

Номер порта получателя и отправителя записывается в заголовок транспортным модулем отправляющим данные. Заголовок транспортного уровня содержит также и некоторую другую служебную информацию, и формат заголовка зависит от используемого транспортного протокола.

Средства транспортного уровня представляют собой функциональную надстройку над сетевым уровнем и решают две основных задачи:

  • обеспечение доставки данных между конкретными программами, функционирующими, в общем случае, на разных узлах сети;
  • обеспечение гарантированной доставки массивов данных произвольного размера.

В настоящее время в Интернет используются два транспортных протокола – UDP , обеспечивающий негарантированную доставку данных между программами, и TCP , обеспечивающий гарантированную доставку с установлением виртуального соединения.

Сетевой (межсетевой) уровень

Основным протоколом этого уровня является протокол IP, который доставляет блоки данных (дейтаграммы) от одного IP-адреса к другому. IP-адрес является уникальным 32-х битным идентификатором компьютера, точнее его сетевого интерфейса. Данные для дейтаграммы передаются IP модулю транспортным уровнем. IP модуль добавляет к этим данным заголовок, содержащий IP-адрес отправителя и получателя, и другую служебную информацию.

Таким образом, сформированная дейтаграмма передается на уровень доступа к среде передачи, для отправки по каналу передачи данных.

Не все компьютеры могут непосредственно связаться друг с другом, часто чтобы передать дейтаграмму по назначению требуется направить ее через один или несколько промежуточных компьютеров по тому или ному маршруту. Задача определения маршрута для каждой дейтаграммы решается протоколом IP.

Когда модуль IP получает дейтаграмму с нижнего уровня, он проверяет IP адрес назначения, если дейтаграмма адресована данному компьютеру, то данные из нее передаются на обработку модулю вышестоящего уровня, если же адрес назначения дейтаграммы чужой, то модуль IP может принять два решения:

  • Уничтожит дейтаграмму;
  • Отправить ее дальше к месту назначения, определив маршрут следования, так поступают промежуточные станции – маршрутизаторы .

Также может потребоваться на границе сетей, с различными характеристиками, разбить дейтаграмму на фрагменты, а потом собрать их в единое целое на компьютере получателя. Это также задача протокола IP.

Также протокол IP может отправлять сообщения – уведомления с помощью протокола ICMP , например, в случае уничтожения дейтаграммы. Более никаких средств контроля корректности данных, подтверждения или доставки, предварительного соединения в протоколе нет, эти задачи возложены на транспортный уровень.

Уровень доступа к среде

Функции этого уровня следующие:

  • Отображение IP-адресов в физические адреса сети. Эту функцию выполняет протокол ARP ;
  • Инкапсуляция IP-дейтаграмм в кадры для передачи по физическому каналу и извлечение дейтаграмм из кадров, при этом не требуется какого-либо контроля безошибочной передачи, поскольку в стеке TCP/IP такой контроль возложен на транспортный уровень или на само приложение. В заголовке кадров указывается точка доступа к сервису SAP, это поле содержащее код протокола;
  • Определение метода доступа к среде передачи, т.е. способа, с помощью которого компьютеры устанавливает свое право на передачу данных;
  • Определение представления данных в физической среде;
  • Пересылка и прием кадра.

Рассмотрим инкапсуляцию на примере перехвата пакета протокола HTTP с помощью сниффера wireshark, который работает на прикладном уровне протокола TCP/IP:


Помимо самого перехваченного протокола HTTP, на основании стека TCP/IP сниффер описывает каждый нижележащий уровень. HTTP инкапсулируется в TCP, протокол TCP в IPv4, IPv4 в Ethernet II.