• 38614
  • 17
  • 12
Нравится блог?
Подписывайтесь!

Введение в веб-программирование и Интернет в целом - 2. Общение без границ

1-я часть

Протокол

Каким образом происходит взаимодействие компьютеров в сети? Совершенно очевидно, что это взаимодействие не хаотично, более того, компьютеры, работая бок о бок, прекрасно справляются с поставленными задачами, каким-то образом согласуя действия между собой. Ведь организация работы группы компьютеров более сложная задача, нежели организация работы единственного компьютера или обособленных компьютеров. Стало быть, компьютеры как-то понимают друг друга. Это возможно благодаря протоколам связи. Где-то в справках Windows я прочитал, что протокол это:

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

Я считаю, что это довольно удачное определение.

Вот пример: http://www.conlex.kz/analogiya-iz-mira-lyudej/

OSI

В далекие-далекие времена сетевые технологии были основаны на различных корпоративных стандартах, т.е. использовали различные несовместимые протоколы и форматы данных. Тогда и была создана OSI (Open Systems Interconnection) – модель взаимодействия открытых систем. Модель состоит из семи уровней или слоев. Семиуровневая модель, также называемая стеком протоколов, была призвана стандартизировать всю вышеупомянутую мешанину, чтобы устройства от самых различных производителей могли взаимодействовать и понимать друг друга.

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

Физический уровень

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

Кто реализует функции: железо! Сетевые карты, концентраторы, усилители сигнала и т.д.

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

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

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

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

- MAC (Media access control) – регулирование доступа к физической среде, отсюда и MAC-адрес;

- LLC (Logical link control) – обработка ошибок, работа с сетевым уровнем.

Кто реализует функции: частично железо – коммутаторы, мосты. Частично – драйвер сетевой карты.

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

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

Кто реализует функции: маршрутизатор и ядро операционной системы.

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

Обеспечивает гарантированную, надежную доставку данных. Также гарантирует, что данные будут доставлены в том порядке, в котором они отправлены.

Кто реализует функции: операционная система.

Сеансовый уровень

Отвечает за установление, поддержку и возобновление (в случае разрыва) сеансов связи.

Кто реализует функции: прикладное ПО.

Уровень представления

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

Кто реализует функции: прикладное ПО.

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

Уровень, позволяющий пользовательским программам использовать сетевые службы. По сути этот уровень представляет из себя набор протоколов: HTTP, FTP, SMTP, XMPP, POP3 и множество других.

Кто реализует функции: прикладное ПО.

TCP/IP

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

Стек TCP/IP

Из картинки видно, что некоторые уровни в TCP/IP объединены в один.
Рассмотрим на простом примере, как работает стек TCP/IP. Допустим, отправляются данные по протоколу HTTP в виде текста: Hello world.
Вот как он проходит вниз по стеку:

Инкапсуляция данных в стеке TCP/IP

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

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

Кое-что о прикладных протоколах

Большинство протоколов прикладного уровня работают с TCP. На уровне протокола IP есть понятие IP-адреса. IP-адрес состоит из четырех чисел, называемых октетами, каждый из которых принимает значение от 0 до 255 включительно. Например: 219.23.112.7, 155.52.244.98. Как видите, октеты разделяются точками. Для TCP существует другое понятие – порт. Порт – это номер, принимающий значение от 0 до 65535 включительно. И он не имеет никакого отношения к физическим портам на компьютере, так что не путайте TCP-порты с USB или COM-портами. Так вот, для соединения с какой-то программой на каком-то компьютере необходимо знать IP-адрес и порт, на котором работает эта программа. В TCP-соединении есть два типа программ:

  • серверная программа или просто сервер, также именуется демоном – программа, осуществляющая прием входящих соединений. Также принято говорить, что сервер слушает порт, на котором он работает. Например, HTTP-сервер по умолчанию работает на порту 80, поэтому он слушает 80-ый порт.
  • клиентская программа или просто клиент – программа, осуществляющая подключение к серверу. Для подключения клиенту нужно знать IP-адрес и порт, на которые нужно соединиться. После успешного подключения, сервер в свою очередь может узнать с какого IP-адреса произошло подключение.

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

Надеюсь, с низкоуровневой теорией всё. Это лишь основы, а чтобы понять всю необъятность этой темы, рекомендую ознакомиться со следующими ссылками:

Протоколы

http://www.conlex.kz/setevye-protokoly/
http://www.conlex.kz/analogiya-iz-mira-lyudej/

TCP/IP

http://www.codenet.ru/webmast/tcpip.php
http://www.xakep.ru/magazine/xs/032/024/1.asp

OSI

http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI

Если есть мысли, вопросы – смело комментируем!

9 июля 2010, 12:35
6215

Загрузка...
Loading...

Комментарии

Оставьте свой комментарий

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

Также можно нажать Ctrl+Enter

Популярные посты

«Алматы – город, летящий под откос», или Кто заказал утку у российского блогера

«Алматы – город, летящий под откос», или Кто заказал утку у российского блогера

Некий блогер Сергей Никитский неустанно пишет о Казахстане, Астане, Экспо и посвящает два материала Алматы, причём подчёркнуто называет город Алма-Ата.
Langdon
19 июля 2017 / 15:44
  • 3658
  • 58
«Язык мой – враг мой», или 7 причин никогда не разговаривать с полицией

«Язык мой – враг мой», или 7 причин никогда не разговаривать с полицией

На этот раз пост очень важный и необходим к прочтению каждым! Не поленитесь и уделите время прочтению. Ни в коем случае, не разговаривайте с полицейскими до прихода вашего адвоката!
asselsabekova
18 июля 2017 / 14:19
  • 3375
  • 32
Один из способов выиграть суд против коллекторов

Один из способов выиграть суд против коллекторов

Сегодня в своем посте я постараюсь рассказать, как выиграть суд против некоторых коллекторских компании в нашей стране. Чем отличается коллекторское агенство от обычного банка?
Advokot
18 июля 2017 / 15:31
  • 3068
  • 10
Книга, которая сэкономит вам 150 тысяч долларов и два года жизни

Книга, которая сэкономит вам 150 тысяч долларов и два года жизни

Автор утверждает, что программы МБА не дают никакого позитивного выхлопа, если ты уже не являешься владельцем или наследником прибыльного бизнеса. Знания МБА можно получить бесплатно, уверяет он.
Aks_Ras
19 июля 2017 / 16:28
  • 2724
  • 2
Что происходит в казахстанской правоохранительной системе под видом борьбы с коррупцией

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

За день до своей гибели прямо около памятника жертвам политических репрессий 1937-го Жампозов сказал жене, что он – жертва точно таких же репрессий.
openqazaqstan
вчера / 10:18
  • 2255
  • 7
Госорганы, ответственные за жизни детей, хранят молчание. У них в отчетах все хорошо

Госорганы, ответственные за жизни детей, хранят молчание. У них в отчетах все хорошо

Вчера все информационные агентства страны передали сообщение, которое заставило забиться в ужасе сердца всех матерей страны. В мусорном контейнере города Сатпаев было обнаружено тело новорожденной девочки.
AliyaSadyrbaeva
19 июля 2017 / 11:06
  • 2329
  • 18
Почему путь к любимому Иссык-Кулю из года в год не становится легче

Почему путь к любимому Иссык-Кулю из года в год не становится легче

Минувшие выходные для казахстанских туристов, рвущихся от алматинской жары к иссык-кульской прохладе, снова обернулись настоящим кошмаром.
caravan_kz
19 июля 2017 / 18:39
  • 1802
  • 4
Наша новая рубрика «Топ-5»: самые красивые актрисы Казахстана

Наша новая рубрика «Топ-5»: самые красивые актрисы Казахстана

Решили сделать топ-5 красивых актрис Казахстана. Очень долго спорили о первых трех местах и даже чуть не подрались. Было очень тяжело выбирать.
asdbqwe
20 июля 2017 / 14:24
  • 1790
  • 41
Легендарный вокалист «Linkin Park» унёс за собой молодость десятков тысяч людей

Легендарный вокалист «Linkin Park» унёс за собой молодость десятков тысяч людей

Самое грустное, что, как и всегда в таких случаях, скоро на Честера начнут изливаться потоки грязи - что он был наркоманом, или что-то подобное (как в случае со многими знаменитостями).
demonica
21 июля 2017 / 15:13
  • 1811
  • 49