Применение протокола tcp ip в сетях электроснабжения. Что такое протокол TCP-IP

Стек протоколов TCP/IP

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

Корпоративная информация, интенсивность ее потоков и способы ее обработки постоянно меняются. Примером резкого изменения технологии обработки корпоративной информации стал беспрецедентный рост популярности глобальной сети Internet за последние 2-3 года. Сеть Internet изменила способ представления информации, собрав на своих серверах все ее виды - текст, графику и звук. Транспортная система сети Internet существенно облегчила задачу построения распределенной корпоративной сети.

Соединение и взаимодействие в рамках одной мощной компьютерной сети явилось целью проектирования и создания семейства протоколов, названных в дальнейшем стеком протоколов TCP/IP (Transmission Control Protocol / Internet Protocol ) . Главной идеей стека является создание механизма межсетевого обмена.

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

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

История создания стека протоколов TCP/IP началась с момента, когда Министерство обороны США столкнулось с проблемой объединения большого числа компьютеров с различными операционными системами. Для этого в 1970 году был составлен набор стандартов. Протоколы, разработанные на базе этих стандартов, получили обобщенное название TCP/IP.

Стек протоколов TCP/IP был изначально предназначен для сети Advanced Research Project Agency Network (ARPANET ). ARPANET рассматривалась как экспериментальная распределенная сеть коммутации пакетов. Эксперимент по применению стека протоколов TCP/IP в этой сети закончился с положительными результатами. Поэтому стек протоколов был принят в промышленную эксплуатацию, а в дальнейшем был расширен и усовершенствовался в течение нескольких лет. Позже стек адаптировали для использования в локальных сетях. В начале 1980 года протокол стал использоваться как интегральная часть операционной системы Вег kley UNIX v 4.2. В этом же году появилась объединенная сеть Internet . Переход к технологии Internet был завершен в 1983 году, когда Министерство обороны США установило, что все компьютеры, присоединенные к глобальной сети, используют стек протоколов TCP/IP.

Стек протоколов TCP/IP предоставляет пользователям два основных сервиса , которые используют прикладные программы:

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

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

Основными преимуществами стека протоколов TCP/IP являются:

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

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

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

Стандартные прикладные протоколы. Протоколы TCP/IP включают в свой состав средства для поддержки наиболее часто встречающихся приложений, таких как электронная почта, передача файлов, удаленный доступ и т.д.

Резкий рост сети Internet и, естественно, ускоренное развитие стека протоколов TCP/IP потребовали от разработчиков создания серии документов, которые способствовали бы дальнейшему упорядоченному развитию протоколов. Организация Internet Activities Board (IAB ) разработала серию документов, называемых RFC (Request For Comments ). Некоторые RFC описывают сетевые сервисы или протоколы и их реализацию, другие документы описывают условия их применения. В том числе в RFC опубликованы стандарты стека протоколов TCP/IP. При этом следует иметь в виду, что стандарты TCP/IP всегда публикуются в виде документов RFC , но не все RFC определяют стандарты.

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

1.Состояние стандартизации. Протокол может иметь несколько состояний:

стандарт на протокол утвержден;

стандарт на протокол предлагается к рассмотрению;

предлагается экспериментальный протокол;

протокол устарел и в настоящее время не используется.

2.Статус протокола. Протокол может иметь несколько статусов:

протокол требуется для внедрения;

протокол может внедряться производителем по выбору;

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

распознавать сбои в сети и восстанавливать ее работоспособность;

распределять пропускную способность сети и знать способы уменьшения потока данных при перегрузке;

распознавать задержки и потери пакетов, знать способ уменьшения ущерба от этого;

распознавать ошибки в данных и информировать о них прикладное программное обеспечение;

производить упорядоченное движение пакетов в сети.

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

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

Рис. 1.1. Структура стека протоколов TCP/IP .

Рис. 1. 2. Путь передачи сообщений .

Теоретически посылка сообщения от одной прикладной программы к другой означает последовательную передачу сообщения вниз через соседние уровни стека у отправителя, передачу сообщений по уровню сетевого интерфейса (уровню IV ) или, в соответствии с эталонной моделью OSI , по физическому уровню, прием сообщения получателем и передачу его вверх через соседние уровни протокольного программного обеспечения. На практике взаимодействие уровней стека организовано гораздо сложнее. Каждый уровень принимает решение о корректности сообщения и производит определенное действие на основании типа сообщения или адреса назначения. В структуре стека протоколов TCP/IP имеется явный «центр тяжести» - это сетевой уровень и протокол IP в нем. Протокол IP может взаимодействовать с несколькими модулями протоколов более высокого уровня и несколькими сетевыми интерфейсами. То есть на практике процесс передачи сообщений от одной прикладной программы к другой будет выглядеть следующим образом: отправитель передает сообщение, которое на уровне III про токолом IP помещается в дейтаграмму и посылается в сеть (сеть 1). На промежуточных устройствах, например маршрутизаторах , дейтаграмма передается вверх до уровня протокола IP , который отправляет ее обратно вниз, в другую сеть (сеть 2). Когда дейтаграмма достигает получате ля, протокол IP выделяет сообщение и передает его на верхние уровни. Рис. 1.2 иллюстрирует данный процесс.

Структуру стека протоколов TCP/IP можно разделить на четыре уровня . Самый нижний - уровень сетевого интерфейса (уровень IV ) -соответствует физическому и канальному уровню модели OSI . В стеке протоколов TCP/IP этот уровень не регламентирован. Уровень сетево го интерфейса отвечает за прием дейтаграмм и передачу их по конкрет ной сети. Интерфейс с сетью может быть реализован драйвером уст ройства или сложной системой, которая использует свой протокол ка нального уровня (коммутатор, маршрутизатор ). Он поддерживает стан дарты физического и канального уровня популярных локальных сетей: Ethernet , Token Pang , FDDI и т.д. Для распределенных сетей поддержи ваются проколы соединений РРР и SLIP , а для глобальных сетей - протокол Х.25. Предусмотрена поддержка использования развивающейся технологии коммутации ячеек - ATM . Обычной практикой стало вклю чение в стек протоколов TCP/IP новых технологий локальных или рас пределенных сетей и регламентация их новыми документами RFC .

Сетевой уровень (уровень III ) - это уровень межсетевого взаимо действия. Уровень управляет взаимодействием между пользователями в сети. Он принимает от транспортного уровня запрос на посылку пакета от отправителя вместе с указанием адреса получателя. Уровень инкапсулирует пакет в дейтаграмму, заполняет ее заголовок и при необходи мости использует алгоритм маршрутизации. Уровень обрабатывает при ходящие дейтаграммы и проверяет правильность поступившей инфор мации. На стороне получателя программное обеспечение сетевого уровня удаляет заголовок и определяет, какой из транспортных протоколов будет обрабатывать пакет.

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

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

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

На этом уровне функционирует протокол управления передачей данных TCP (Transmission Control Protocol ) и протокол передачи при кладных пакетов дейтаграммным методом UDP (User Datagram Protocol ). Протокол TCP обеспечивает гарантированную доставку данных за счет образования логических соединений между удаленными прикладными процессами. Работа протокола UDP аналогична работе протокола IP , но основной его задачей является выполнение функций связующего звена между сетевым протоколом и различными приложениями.

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

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

Стек протоколов TCP/IP включает в свой состав большое число протоколов прикладного уровня. Эти протоколы выполняют различные функции, в том числе: управление сетью, передачу файлов, оказание распределенных услуг при использовании файлов, эмуляцию термина лов, доставку электронной почты и т.д. Протокол передачи файлов (File Transfer Protocol - FTP ) обеспечивает перемещение файлов между ком пьютерными системами. Протокол Telnet обеспечивает виртуальную тер минальную эмуляцию. Простой протокол управления сетью (Simple Network Management Protocol - SNMP ) является протоколом управле ния сетью, используемым для сообщений об аномальных условиях в сети и установления значений допустимых порогов в сети. Простой протокол передачи почты (Simple Mail Transfer Protocol - SMTP ) обеспечивает механизм передачи электронной почты. Эти протоколы и другие прило жения используют услуги стека TCP/IP для обеспечения пользователей базовыми сетевыми услугами.

Более подробно протоколы прикладного уровня стека протоколов TCP/IP в рамках данного материала не рассматриваются.

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


Рис. 1. 3. Обозначение фрагментов информации на уровнях стека TCP/IP.

Очень важно дополнить описание уровней стека протоколов TCP/IP описанием различия между передачей от отправителя непосредственно к получателю и передачей через несколько сетей. На рис. 4 показано различие между этими видами передач.


Рис. 1.4. Способы передачи информации.

При доставке сообщения через две сети с применением маршрутизатора оно использует два разных сетевых кадра (кадр 1 и кадр 2). Кадр 1 - для передачи от отправителя до маршрутизатора , кадр 2 - от маршрутизатора до получателя.

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

Стек протоколов TCP/IP – это альфа и омега Интернета, и нужно не только знать, но также понимать модель и принцип работы стека.

Мы разобрались с классификацией, стандартами сетей и моделью OSI. Теперь поговорим о стеке, на базе которого построена всемирная система объединенных компьютерных сетей Интернет.

Модель TCP/IP

Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.

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

В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:

  1. Самый нижний, уровень сетевых интерфейсов , обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.
  2. Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
  3. Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
  4. Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.

Иногда специалисты пытаются объединить обе модели в нечто общее. Например, ниже приведено пятиуровневое представление симбиоза от авторов «Компьютерные сети» Э. Таненбаума и Д. Уэзеролла:

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

Не путайте их:

  • TCP/IP – это стек протоколов, представляющий собой основу Интернета.
  • Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) подходит для описания самых разных сетей.

Стек протоколов TCP/IP

Рассмотрим каждый уровень более подробно.

Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.

Основной протокол сетевого уровня – IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.

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

Прикладной уровень – это HTTP (для web), SMTP (передача почты), DNS (назначение IP-адресам понятных доменных имен), FTP (передача файлов). Протоколов на прикладном уровне стека TCP/IP больше, но приведенные можно назвать самыми значимыми для рассмотрения.

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

Интернет – глобальная система взаимосвязанных компьютерных, локальных и других сетей, которые взаимодействуют друг с другом посредством стека протоколов TCP/IP (рис. 1.).

Рисунок 1 – Обобщенная схема сети Интернет

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

Основные ячейки Интернета – локальные вычислительные сети (LAN – Local Area network). Если некоторая локальная сеть непосредственно подключена к Интернету, то каждая рабочая станция этой сети также может подключаться к нему. Существуют также компьютеры, самостоятельно подключенные к Интернету. Они называются хост-компьютерами (host – хозяин).

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

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

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

Интернет не является коммерческой организацией и никому не принадлежит. Пользователи Интернета имеются практически во всех странах мира.

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

Организации, соединенные друг с другом самыми скоростными линиями связи, образуют базовую часть сети, или хребет Интернета Backbon [Бэкбон]. Если поставщик подключен непосредственно к хребту, то скорость передачи информации будет максимальной.

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

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

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

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

Что такое протокол? Как ранее было сказано, протокол - это правила взаимодействия. Например, дипломатический протокол предписывает, как поступать при встрече зарубежных гостей или при проведении приема. Так же сетевой протокол предписывает правила работы компьютерам, которые подключены к сети. Стандартные протоколы заставляют разные компьютеры "говорить на одном языке". Таким образом осуществляется возможность подключения к Интернету разнотипных компьютеров, работающих под управлением различных операционных систем.

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

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

Для понимания сути протокола TCP можно представить игру в шахматы по переписке, когда двое участников разыгрывают одновременно десяток партий. Каждый ход записывается на отдельной открытке с указанием номера партии и номера хода. В этом случае между двумя партнерами через один и тот же почтовый канал работает как бы десяток соединений (по одному на партию). Два компьютера, связанные между собой одним физическим соединением, могут точно так же поддерживать одновременно несколько TCP-соединений. Так, например, два промежуточных сетевых сервера могут одновременно по одной линии связи передавать друг другу в обе стороны множество ТСР-пакетов от многочисленных клиентов.

Когда мы работаем в Интернете, то по одной единственной телефонной линии можем одновременно принимать документы из Америки, Австралии и Европы. Пакеты каждого из документов поступают порознь, с разделением во времени, и по мере поступления собираются в разные документы.

Протокол IP. Теперь рассмотрим адресный протокол - IP (Internet Protocol). Его суть состоит в том, что у каждого участника Всемирной сети должен быть свой уникальный адрес (IP-адрес). Без этого нельзя говорить о точной доставке ТСР-пакетов на нужное рабочее место. Этот адрес выражается очень просто - четырьмя числами, например: 195.38.46.11. Структуру IP-адреса мы подробнее рассмотрим позже. Она организована так, что каждый компьютер, через который проходит какой-либо TCP-пакет, может по этим четырем числам определить, кому из ближайших «соседей» надо переслать пакет, чтобы он оказался «ближе» к получателю. В результате конечного числа перебросок ТСР-пакет достигает адресата.

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

Стек протоколов TCP/IP

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

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

Стек протоколов TCP/IP включает в себя четыре уровня:

  • прикладной уровень (application layer),
  • транспортный уровень (transport layer),
  • сетевой уровень (internet layer),
  • канальный уровень (link layer).

Протоколы этих уровней полностью реализуют функциональные возможности модели OSI (таблица 1). На стеке протоколов TCP/IP построено всё взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных.

Таблица 1 – Сравнение стека протоколов TCP/IP и эталонной модели OSI

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

На прикладном уровне (Application layer) работает большинство сетевых приложений.

Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.

В массе своей эти протоколы работают поверх TCP или UDP и привязаны к определённому порту, например:

  • HTTP на TCP-порт 80 или 8080,
  • FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд),
  • запросы DNS на порт UDP (реже TCP) 53,

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

Протоколы транспортного уровня (Transport layer) могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные.

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

TCP (IP идентификатор 6) - «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.

UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.

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

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

Сетевой уровень

Сетевой уровень (Internet layer) изначально разработан для передачи данных из одной (под)сети в другую. С развитием концепции глобальной сети в уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны, например в протоколе ICMP (используется для передачи диагностической информации IP-соединения) и IGMP (используется для управления multicast-потоками).

ICMP и IGMP расположены над IP и должны попасть на следующий - транспортный - уровень, но функционально являются протоколами сетевого уровня, и поэтому их невозможно вписать в модель OSI.

Пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число - уникальный IP-номер протокола . ICMP и IGMP имеют номера, соответственно, 1 и 2.

Канальный уровень

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

Примеры протоколов канального уровня - Ethernet, Wi-Fi, Frame Relay, Token Ring, ATM и др.

Канальный уровень иногда разделяют на 2 подуровня - LLC и MAC.

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

Инкапсуляция

Инкапсуляция – упаковка, или вложение, пакетов высокого уровня (возможно, разного протокола) в пакеты одного протокола (нижнего уровня), включая адрес.

Например, когда приложению требуется послать сообщение с помощью TCP, то производится следующая последовательность действий (рис. 2):

Рисунок 2 – Процесс инкапсуляции

  • в первую очередь, приложение заполняет специальную структуру данных, в которой указывает информацию о получателе (сетевой протокол, IP-адрес, порт TCP);
  • передаёт сообщение, его длину и структуру с информацией о получателе обработчику протокола TCP (транспортный уровень);
  • обработчик TCP формирует сегмент, в котором в качестве данных выступает сообщение, а в заголовках находится TCP-порт получателя (а также другие данные);
  • обработчик TCP передаёт сформированный сегмент обработчику IP (сетевой уровень);
  • обработчик IP рассматривает переданный TCP сегмент как данные и предваряет их своим заголовком (в котором, в частности, находится IP-адрес получателя, взятый из той же структуры данных приложения, и номер верхнего протокола;
  • полученный пакет обработчик IP передаёт на канальный уровень, который опять-таки рассматривает данный пакет как «сырые» данные;
  • обработчик канального уровня, аналогично предыдущим обработчикам, добавляет в начало свой заголовок (в котором так же указывается номер протокола верхнего уровня, в нашем случае это 0x0800(IP)) и, в большинстве случаев, добавляет конечную контрольную сумму, тем самым формируя кадр;
  • далее полученный кадр передаётся на физический уровень, который осуществляет преобразование битов в электрические или оптические сигналы и посылает их в среду передачи.

На стороне получателя для распаковки данных и предоставления их приложению производится обратный процесс (снизу вверх), называемый декапсуляцией.

Похожая информация.


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


Вторая часть этой статьи, где рассматривается практическое применение изложенных здесь основ: Заметки о Cisco Catalyst: настройка VLAN, сброс пароля, перепрошивка операционной системы IOS

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

Задача - передать информацию от пункта А в пункт В. Её можно передавать непрерывно. Но задача усложняется, если надо передавать информацию между пунктами A<-->B и A<-->C по одному и тому же физическому каналу. Если информация будет передаваться непрерывно, то когда С захочет передать информацию в А - ему придётся дождаться, пока В закончит передачу и освободит канал связи. Такой механизм передачи информации очень неудобен и непрактичен. И для решения этой проблемы было решено разделять информацию на порции.

На получателе эти порции требуется составить в единое целое, получить ту информацию, которая вышла от отправителя. Но на получателе А теперь мы видим порции информации как от В так и от С вперемешку. Значит, к каждой порции надо вписать идентификационный номер, что бы получатель А мог отличить порции информации с В от порций информации с С и собрать эти порции в изначальное сообщение. Очевидно, получатель должен знать, куда и в каком виде отправитель приписал идентификационные данные к исходной порции информации. И для этого они должны разработать определённые правила формирования и написания идентификационной информации. Далее слово «правило» будет заменяться словом «протокол».

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

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

Как правило, извлечённые данные в свою очередь сформированы в соответствии с протоколом IP и имеют другой вид идентификационной информации - ip адрес получателя (число размером в 4 байта), ip адрес отправителя и данные. А так же много другой необходимой служебной информации. Данные, сформированные в соответствии с IP протоколом, называются пакетами.

Далее извлекаются данные из пакета. Но и эти данные, как правило, ещё не являются изначально отправляемыми данными. Этот кусок информации тоже составлен в соответствии определённому протоколу. Наиболее широко используется TCP протокол. В нём содержится такая идентификационная информация, как порт отправителя (число размером в два байта) и порт источника, а так же данные и служебная информация. Извлечённые данные из TCP, как правило, и есть те данные, которые программа, работающая на компьютере В, отправляла «программе-приёмнику» на компьютере A.

Вложность протоколов (в данном случае TCP поверх IP поверх Ethernet) называется стеком протоколов.

ARP: протокол определения адреса

Существуют сети классов A, B, C, D и E. Они различаются по количеству компьютеров и по количеству возможных сетей/подсетей в них. Для простоты, и как наиболее часто встречающийся случай, будем рассматривать лишь сеть класса C, ip-адрес которой начинается на 192.168. Следующее число будет номером подсети, а за ним - номер сетевого оборудования. К примеру, компьютер с ip адресом 192.168.30.110 хочет отправить информацию другому компьютеру с номером 3, находящемуся в той же логической подсети. Это значит, что ip адрес получателя будет такой: 192.168.30.3

Важно понимать, что узел информационной сети - это компьютер, соединённый одним физическим каналом с коммутирующим оборудованием. Т.е. если мы отправим данные с сетевого адаптера «на волю», то у них одна дорога - они выйдут с другого конца витой пары. Мы можем послать совершенно любые данные, сформированные по любому, выдуманному нами правилу, ни указывая ни ip адреса, ни mac адреса ни других атрибутов. И, если этот другой конец присоединён к другому компьютеру, мы можем принять их там и интерпретировать как нам надо. Но если этот другой конец присоединён к коммутатору, то в таком случае пакет информации должен быть сформирован по строго определённым правилам, как бы давая коммутатору указания, что делать дальше с этим пакетом. Если пакет будет сформирован правильно, то коммутатор отправит его дальше, другому компьютеру, как было указано в пакете. После чего коммутатор удалит этот пакет из своей оперативной памяти. Но если пакет был сформирован не правильно, т.е. указания в нём были некорректны, то пакет «умрёт», т.е. коммутатор не будет отсылать его куда либо, а сразу удалит из своей оперативной памяти.

Для передачи информации другому компьютеру, в отправляемом пакете информации надо указать три идентификационных значения - mac адрес, ip адрес и порт. Условно говоря, порт - это номер, который, выдаёт операционная система каждой программе, которая хочет отослать данные в сеть. Ip адрес получателя вводит пользователь, либо программа сама получает его, в зависимости от специфики программы. Остаётся неизвестным mac адрес, т.е. номер сетевого адаптера компьютера получателя. Для получения необходимой данной, отправляется «широковещательный» запрос, составленный по так называемому «протоколу разрешения адресов ARP». Ниже приведена структура ARP пакета.

Сейчас нам не надо знать значения всех полей на приведённой картинке. Остановимся лишь на основных.

В поля записываются ip адрес источника и ip адрес назначения, а так же mac адрес источника.

Поле «адрес назначения Ethernet» заполняется единицами (ff:ff:ff:ff:ff:ff). Такой адрес называется широковещательным, и такой фрейм будер разослан всем «интерфейсам на кабеле», т.е. всем компьютерам, подключённым к коммутатору.

Коммутатор, получив такой широковещательный фрейм, отправляет его всем компьютерам сети, как бы обращаясь ко всем с вопросом: «если Вы владелец этого ip адреса (ip адреса назначения), пожалуйста сообщите мне Ваш mac адрес». Когда другой компьютер получает такой ARP запрос, он сверяет ip адрес назначения со своим собственным. И если он совпадает, то компьютер, на место единиц вставляет свой mac адрес, меняет местами ip и mac адреса источника и назначения, изменяет некоторую служебную информацию и отсылает пакет обратно коммутатору, а тот обратно - изначальному компьютеру, инициатору ARP запроса.

Таким образом ваш компьютер узнаёт mac адрес другого компьютера, которому вы хотите отправить данные. Если в сети находится сразу несколько компьютеров, отвечающих на этот ARP запрос, то мы получаем «конфликт ip адресов». В таком случае необходимо изменить ip адрес на компьютерах, что бы в сети не было одинаковых ip адресов.

Построение сетей

Задача построения сетей

На практике, как правило, требуется построить сети, число компьютеров в которой будет не менее ста. И кроме функций файлообмена, наша сеть должна быть безопасной и простой в управлении. Таким образом, при построении сети, можно выделить три требования:
  1. Простота в управлении. Если бухгалтера Лиду переведут в другой кабинет, ей по-прежнему понадобится доступ к компьютерам бухгалтеров Анны и Юлии. И при неправильном построении своей информационной сети, у администратора могут возникнуть трудности в выдаче Лиде доступа к компьютерам других бухгалтеров на её новом месте.
  2. Обеспечение безопасности. Для обеспечения безопасности нашей сети, права доступа к информационным ресурсам должны быть разграничены. Так же сеть должна быть защищена от угроз раскрытия, целостности и отказа в обслуживании. Подробнее читайте в книге «Атака на Internet» автора Илья Давидович Медведовский, глава «Основные понятия компьютерной безопасности» .
  3. Быстродействие сети. При построении сетей есть техническая проблема - зависимость скорости передачи от количества компьютеров в сети. Чем больше компьютеров - тем ниже скорость. При большом количестве компьютеров, быстродействие сети может стать настолько низким, что она станет неприемлемой заказчику.
Из-за чего при большом количестве компьютеров снижается скорость сети? - причина проста: из-за большого количества широковещательных сообщений (ШС). ШС - это сообщение, которое, приходя на коммутатор, отправляется всем хостам сети. Или, грубо говоря, всем компьютерам, находящимся в вашей подсети. Если компьютеров в сети 5, то каждый компьютер будет принимать по 4 ШС. Если их будет 200, то каждый компьютер в такой большой сети будет принимать по 199 ШС.

Существует большое множество приложений, программных модулей и сервисов, которые, для своей работы отправляют в сеть широковещательные сообщения. Описанный в пункте ARP: протокол определения адреса лишь один из множества ШС, отправляемый вашим компьютером в сеть. Например, когда вы заходите в «Сетевое окружение» (ОС Windows), ваш компьютер посылает ещё несколько ШС со специальной информацией, сформированной по протоколу NetBios, что бы просканировать сеть на наличие компьютеров, находящихся в той же рабочей группе. После чего ОС рисует найденные компьютеры в окне «Сетевое окружение» и вы их видите.

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

Виртуальные локальные сети

Для решения первой и третьей проблем, а так же в помощь решения второй проблемы, повсеместно используют механизм разбиения локальной сети на более маленькие сети, как бы отдельные локальные сети (Virtual Local Area Network). Грубо говоря, VLAN - это список портов на коммутаторе, принадлежащих одной сети. «Одной» в том смысле, что другой VLAN будет содержать список портов, принадлежащих другой сети.

Фактически, создание двух VLAN-ов на одном коммутаторе эквивалентно покупке двух коммутаторов, т.е. создание двух VLAN-ов - это всё равно, что один коммутатор разделить на два. Таким образом происходит разбиение сети из ста компьютеров на более маленькие сети, из 5-20 компьютеров - как правило именно такое количество соответствует физическому местонахождению компьютеров по надобности файлообмена.

  • При разбиении сети на VLAN-ы достигается простота управления. Так, при переходе бухгалтера Лиды в другой кабинет, администратору достаточно удалить порт из одного VLAN-а и добавить в другой. Подробнее это рассмотрено в пункте VLAN-ы, теория.
  • VLAN-ы помогают решить одно из требований к безопасности сети, а именно разграничение сетевых ресурсов. Так, студен из одной аудитории не сможет проникнуть на компьютеры другой аудитории или компьютер ректора, т.к. они находятся в фактически разных сетях.
  • Т.к. наша сеть разбита на VLAN-ы, т.е. на маленькие «как бы сети», пропадает проблема с широковещательными сообщениями.

VLAN-ы, теория

Возможно, фраза «администратору достаточно удалить порт из одного VLAN-а и добавить в другой» могла оказаться непонятной, поэтому поясню её подробнее. Порт в данном случае - это не номер, выдаваемый ОС приложению, как было рассказано в пункте Стек протоколов, а гнездо (место) куда можно присоединить (вставить) коннектор формата RJ-45. Такой коннектор (т.е. наконечник к проводу) прикрепляется к обоим концам 8-ми жильного провода, называемого «витая пара». На рисунке изображён коммутатор Cisco Catalyst 2950C-24 на 24 порта:
Как было сказано в пункте ARP: протокол определения адреса каждый компьютер соединён с сетью одним физическим каналом. Т.е. к коммутатору на 24 порта можно присоединить 24 компьютера. Витая пара физически пронизывает все помещения предприятия - все 24 провода от этого коммутатора тянутся в разные кабинеты. Пусть, к примеру, 17 проводов идут и подсоединяются к 17-ти компьютерам в аудитории, 4 провода идут в кабинет спецотдела и оставшиеся 3 провода идут в только что отремонтированный, новый кабинет бухгалтерии. И бухгалтера Лиду, за особые заслуги, перевели в этот самый кабинет.

Как сказано выше, VLAN можно представлять в виде списка принадлежащих сети портов. К примеру, на нашем коммутаторе было три VLAN-а, т.е. три списка, хранящиеся во flash-памяти коммутатора. В одном списке были записаны цифры 1, 2, 3… 17, в другом 18, 19, 20, 21 и в третьем 22, 23 и 24. Лидин компьютер раньше был присоединён к 20-ому порту. И вот она перешла в другой кабинет. Перетащили её старый компьютер в новый кабинет, или она села за новый компьютер - без разницы. Главное, что её компьютер присоединили витой парой, другой конец которой вставлен в порт 23 нашего коммутатора. И для того, что бы она со своего нового места могла по прежнему пересылать файлы своим коллегам, администратор должен удалить из второго списка число 20 и добавить число 23. Замечу, что один порт может принадлежать только одному VLAN-у, но мы нарушим это правило в конце этого пункта.

Замечу так же, что при смене членства порта в VLAN, администратору нет никакой нужды «перетыкать» провода в коммутаторе. Более того, ему даже не надо вставать с места. Потому что компьютер администратора присоединён к 22-ому порту, с помощью чего он может управлять коммутатором удалённо. Конечно, благодаря специальным настройкам, о которых будет рассказано позже, лишь администратор может управлять коммутатором. О том, как настраивать VLAN-ы, читайте в пункте VLAN-ы, практика [в следующей статье].

Как вы, наверное, заметили, изначально (в пункте Построение сетей) я говорил, что компьютеров в нашей сети будет не менее 100. Но к коммутатору можно присоединить лишь 24 компьютера. Конечно, есть коммутаторы с большим количеством портов. Но компьютеров в корпоративной сети/сети предприятия всё равно больше. И для соединения бесконечно большого числа компьютеров в сеть, соединяют между собой коммутаторы по так называемому транк-порту (trunk). При настройки коммутатора, любой из 24-портов можно определить как транк-порт. И транк-портов на коммутаторе может быть любое количество (но разумно делать не более двух). Если один из портов определён как trunk, то коммутатор формирует всю пришедшую на него информацию в особые пакеты, по протоколу ISL или 802.1Q, и отправляет эти пакеты на транк-порт.

Всю пришедшую информацию - имеется в виду, всю информацию, что пришла на него с остальных портов. А протокол 802.1Q вставляется в стек протоколов между Ethernet и тем протоколом, по которому были сформированные данные, что несёт этот кадр.

В данном примере, как вы, наверное, заметили, администратор сидит в одном кабинете вместе с Лидой, т.к. витая пора от портов 22, 23 и 24 ведёт в один и тот же кабинет. 24-ый порт настроен как транк-порт. А сам коммутатор стоит в подсобном помещении, рядом со старым кабинетом бухгалтеров и с аудиторией, в которой 17 компьютеров.

Витая пара, которая идёт от 24-ого порта в кабинет к администратору, подключается к ещё одному коммутатору, который в свою очередь, подключён к роутеру, о котором будет рассказано в следующих главах. Другие коммутаторы, которые соединяют другие 75 компьютеров и стоят в других подсобных помещениях предприятия - все они имеют, как правило, один транк-порт, соединённый витой парой или по оптоволокну с главным коммутатором, что стоит в кабинете с администратором.

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

Примерно так выглядело построение сетей больших предприятий во времена коммутатора Cisco Catalyst 1900. Вы, наверное, заметили два больших неудобства таких сетей. Во первых, использование транк-порта вызывает некоторые сложности и создаёт лишнюю работу при конфигурировании оборудования. А во вторых, и в самых главных - предположим, что наши «как бы сети» бухгалтеров, экономистов и диспетчеров хотят иметь одну на троих базу данных. Они хотят, что бы та же бухгалтерша смогла увидеть изменения в базе, которые сделала экономистка или диспетчер пару минут назад. Для этого нам надо сделать сервер, который будет доступен всем трём сетям.

Как говорилось в середине этого пункта, порт может находиться лишь в одном VLAN-е. И это действительно так, однако, лишь для коммутаторов серии Cisco Catalyst 1900 и старше и у некоторых младших моделей, таких как Cisco Catalyst 2950. У остальных коммутаторов, в частности Cisco Catalyst 2900XL это правило можно нарушить. При настройке портов в таких коммутаторах, каждый пор может иметь пять режимов работы: Static Access, Multi-VLAN, Dynamic Access, ISL Trunk и 802.1Q Trunk. Второй режим работы именно то, что нам нужно для выше поставленной задачи - дать доступ к серверу сразу с трёх сетей, т.е. сделать сервер принадлежащим к трём сетям одновременно. Так же это называется пересечением или таггированием VLAN-ов. В таком случае схема подключения может быть такой.

Протокол 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 означает, что наша машина обратилась с запросом к веб-серверу (у меня, действительно, открыты страницы в браузере).

(с) Вольные сокращения статьи мои.
(с) Дубровин Борис