Книга построена в стиле "вопрос ответ". Ответы бывают двух видов

Вид материалаКнига
Интернет общие вопросы
Q: Что такое пакет? Дейтаграмма?
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   28

Интернет общие вопросы




Q: Что такое протоколы и с чем их едят?


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

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

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

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

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


Родственные вопросы:

Что такое дерево (стек) протоколов?


Q: Что такое пакет? Дейтаграмма?


В основе языка лежат слова. Слова состоят из букв. Буквы - из звуков. Единицей сетевых сообщений является пакет. Почему не байт? Это было бы слишком расточительным решением: каждый отправляемый байт пришлось снабжать заголовком, содержащим, как минимум, адреса получателя и отправителя. Сетевое сообщение, по сути, ничем не отличается от обычного письма. Транзитные узлы изучают конверт и передают его по цепочке друг другу, пока, наконец, он не окажется у получателя (или возвратится назад, к отправителю).

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

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

Нечто аналогичное происходит на почте. Отправители пишут письма и укладывают их в конверты. Почтальоны сортируют письма по близким адресам назначения и запаковывают их в большие мешки, собираемые с узлов связи и вновь сортируемые и укладываемые в огромные контейнеры. А у получателей протекает обратный процесс. – Протоколы нижнего уровня получают пакет, сверяют заголовок (нам ли он адресован и не был ли поврежден при доставке?), и в случае положительного результата извлекают на свет его содержимое и передают "наверх".

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


???? Рисунок "карикатура" Чел. опускает в модем конверт, он идет по проводам, откуда высыпается вместе с другими конвертами в мешок, мешки движутся по транспортеру…. и т.д.


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

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

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