• 37778
  • 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
6176

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

Комментарии

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

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

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

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

Школа High Tech High – дети здесь самостоятельны так же, как и профессионалы в офисах

Школа High Tech High – дети здесь самостоятельны так же, как и профессионалы в офисах

Известный казахстанский бизнесмен становится первопроходцем и создает школу, о которой можно только мечтать. То, что мы, как взрослые, делаем в бизнесе, дети будут делать в этой школе.
Zhumanova
24 апр. 2017 / 16:29
  • 21652
  • 5
Кому в Казахстане жить хорошо? Почему мы остаёмся в топ-5 стран мира по числу самоубийств

Кому в Казахстане жить хорошо? Почему мы остаёмся в топ-5 стран мира по числу самоубийств

Всё ли так хорошо у жителей Казахстана? Почему-то наша страна сохраняет твёрдые позиции в первых строчках мировых рейтингов по числу самоубийств.
openqazaqstan
24 апр. 2017 / 16:54
  • 4234
  • 20
«Казпочта» отжигает. Редкий шанс вспомнить агрессивные советские очереди

«Казпочта» отжигает. Редкий шанс вспомнить агрессивные советские очереди

Люди старшего и среднего поколений помнят шумные, недобрые, грубо ругающиеся очереди советских лет. Увидеть, как это было, можно теперь разве что в каком-нибудь фильме. Хотя не только.
openqazaqstan
26 апр. 2017 / 16:14
  • 2926
  • 33
Президент велел делиться. Почему бы казахстанским миллиардерам не послушаться?

Президент велел делиться. Почему бы казахстанским миллиардерам не послушаться?

Президент Назарбаев призвал крупных бизнесменов делиться с народом, следуя примеру своих коллег из развитых стран. В Казахстане, действительно, сегодня много богатых людей.
openqazaqstan
27 апр. 2017 / 14:09
  • 2469
  • 26
Юный алматинец покорил Первый канал на шоу Максима Галкина

Юный алматинец покорил Первый канал на шоу Максима Галкина

Житель Алматы по имени Марк Усачев недавно оказался на телепрограмме "Лучше всех", с успехом идущей на Первом канале России. 9-летний алматинец покорил публику своими недюжинными знаниями.
Seattle
24 апр. 2017 / 16:59
  • 2533
  • 2
Любовница. «Мне часто доставались мужчины, поломанные браком»

Любовница. «Мне часто доставались мужчины, поломанные браком»

Мне часто доставались мужчины, поломанные браком. Таких почти сразу видно – у них маска состоявшегося мужчины по швам трещит. И каждый из них реагирует по-своему. Поясню на паре примеров.
Jamiklisa
28 апр. 2017 / 14:21
Преподаватели и ЭКСПО: «Пока газеты пишут одно, нас заставляют покупать билеты на выставку»

Преподаватели и ЭКСПО: «Пока газеты пишут одно, нас заставляют покупать билеты на выставку»

Чтобы вы знали, чем занимаются в сфере образования - педагоги являются основой массовок. Какое отношение к учителям со стороны государства, такого же уровня и качество образования.
SaukovV
26 апр. 2017 / 16:05
  • 2366
  • 16
Инстаграм – это «рынок девушек» и он круче любой базы данных

Инстаграм – это «рынок девушек» и он круче любой базы данных

Для меня Инстаграм – это рынок. Почему? Ничего не изменилось, девушки все так же бьются в попытках наиболее выгодно себя продать, посредством привлечения внимания.
Annette_Scherer
24 апр. 2017 / 22:35
  • 2399
  • 5
Жуткие истории о рабстве – такие вещи творятся в стране, принимающей «ЭКСПО»

Жуткие истории о рабстве – такие вещи творятся в стране, принимающей «ЭКСПО»

Мы живём, возможно, уже совсем в другом обществе, а не в том, к которому привыкли. Не первый год Казахстан периодически потрясают жуткие истории о рабстве.
openqazaqstan
26 апр. 2017 / 9:39
  • 2150
  • 22