• 37142
  • 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
6130

Loading...

Комментарии

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

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

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

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

Известные казахи, женившиеся на русских женщинах

Известные казахи, женившиеся на русских женщинах

Говорят, что за каждым великим мужчиной стоит женщина. А еще говорят что, все великие люди меняют судьбу своего народа. Так давайте узнаем больше о русских женщинах, навсегда изменивших жизнь...
Shala-Kazakh
17 февр. 2017 / 23:21
  • 33941
  • 81
Архивные фотографии Алма-Аты из семейного альбома. Ностальгический пост

Архивные фотографии Алма-Аты из семейного альбома. Ностальгический пост

Насобирал разных фотографий про наш город, из семейного архива. Фотографии не от сканированные, а пересняты на телефон. Давно хотел выставить, но не решался) Сейчас уже мы все поменялись, уже...
Ispanec
сегодня / 11:05
  • 7084
  • 12
Вспомнились слова однокурсника: «Не завидую твоему будущему мужу»

Вспомнились слова однокурсника: «Не завидую твоему будущему мужу»

Среди моих знакомых есть одна милая девушка, она тоже молодая мама как и я. Очень открытая, видная, недавно вышла на работу. У нее счастливая семья и все, тьфу-тьфу, складывается хорошо.
Roza_pvl
19 февр. 2017 / 11:49
  • 5127
  • 43
Утверждён график выходных дней для жителей Казахстана в марте

Утверждён график выходных дней для жителей Казахстана в марте

Казахстанцы отдохнут около полумесяца в грядущем марте. В связи с праздниками в марте ожидается четыре дополнительных выходных дня. Первый, разумеется, выпадает на главный женский день в году, а...
Seattle
17 февр. 2017 / 13:20
  • 4483
  • 4
«Казахстанцы больше не смогут приобрести недвижимость за рубежом»

«Казахстанцы больше не смогут приобрести недвижимость за рубежом»

Так мог бы звучать заголовок этой публикации, откажись Европа, Турция, ОАЭ, США и другие от фундаментального права человека на имущество. Пост про то, кто заработает на поправках в Конституцию РК...
lyalusha
16 февр. 2017 / 14:45
  • 3664
  • 31
Секреты женского оргазма или Почему вокруг так много фригидных женщин

Секреты женского оргазма или Почему вокруг так много фригидных женщин

Просьба отключить режим высокой морали и узколобия, а внять советам, дабы сделать немножко счастливей и свою жизнь, и жизнь партнера. Всем уят! :D
kami_princesska
16 февр. 2017 / 11:39
Как купить свое жилье при зарплате в 100 тысяч тенге

Как купить свое жилье при зарплате в 100 тысяч тенге

Итак, по просьбам трудящихся и по крикам души коллективного бессознательного решила я написать пост на эту тему. Вводные данные: 1) нет имущества, которое можно продать для покупки собственного...
DanaJarlygapova
20 февр. 2017 / 16:17
  • 3446
  • 44
50 бизнес-встреч с лучшими предпринимателями Астаны. «Наш бизнес начинался как хобби»

50 бизнес-встреч с лучшими предпринимателями Астаны. «Наш бизнес начинался как хобби»

Друзья, представляю вашему вниманию второго героя моей рубрики "50 бизнес-встреч с лучшими (по моей версии) предпринимателей Астаны за 100 дней" - Асхата Солтанова!
Kultursyn
20 февр. 2017 / 12:46
  • 3032
  • 8
Я не националист, но выйду замуж только за казаха. 22 факта обо мне

Я не националист, но выйду замуж только за казаха. 22 факта обо мне

Всем доброго времени суток! Поскольку сейчас долгожданные выходные, я болею и имею полное право ничего не делать за чашечкой горячего чая, то решила все-таки написать этакий скромный пост о себе...
Sserikyzy
18 февр. 2017 / 16:35