Какие единицы используются в сетевой терминологии? Где мы их используем?
Я знаю следующее, но я не уверен, что они означают:
- Фрагмент
- Сегмент
- Пакет
- Рамка
- Дейтаграмма
Могут ли они быть назначены определенному уровню OSI? Это более сложно?
Какие единицы используются в сетевой терминологии? Где мы их используем?
Я знаю следующее, но я не уверен, что они означают:
Могут ли они быть назначены определенному уровню OSI? Это более сложно?
Взяв за основу раздел 1.2 в TCP/IP Illustrated: Vol 1 by Richard Stevens et al., рассмотрим четырехуровневый стек TCP/IP:
+-------------+-------------------------+
| Application | Telnet, FTP, etc |
+-------------+-------------------------+
| Transport | TCP, UDP |
+-------------+-------------------------+
| Network | IP, ICMP |
+-------------+-------------------------+
| Link | drivers, interface card |
+-------------+-------------------------+
Сегмент. Если транспортным протоколом является TCP, единица данных, отправляемая с TCP на сетевой уровень, называется Сегмент.
Дейтаграмма: используется на двух уровнях. Если сетевым протоколом является IP, единица данных называется Дейтаграмма. На транспортном уровне, если протокол UDP, мы также используем дейтаграмму. Следовательно, мы различаем их как UDP-датаграммы и IP-датаграммы.
Кадр: представление физического уровня.
Пакет. Это более общий термин, используемый либо на транспортном уровне, либо на сетевом уровне. Пакет TCP, Пакет UDP, Пакет IP и т. д. Я не видел, чтобы он представлял единицы данных физического уровня.
Фрагмент: я предполагаю, что когда блок данных нарезается протоколом, чтобы соответствовать размеру MTU, результирующий блок данных называется фрагментами. Но я предполагаю.
Эти термины используются для обозначения уровня OSI, на который мы ссылаемся, данные остаются прежними, но заголовки и трейлеры добавляются или удаляются.
На уровне Phy, то есть на физическом уровне, фактические данные представлены в «битах», то есть 0 и 1.
Когда он достигает уровня канала передачи данных или уровня 2, он становится «кадром» с добавлением исходного и целевого MAC-адресов.
Когда он достигает третьего уровня или сетевого уровня, он становится «пакетом» с прикрепленными к нему IP-адресами источника и получателя.
Наконец, он становится «сегментом» на уровне 4 или уровне TCP/IP. В основном термин «сегмент» используется для TCP-соединений и «дейтаграмм» для UDP.
А как насчет других уровней, таких как: сеанс, презентация и приложение? В этих слоях данные называются «PDU» или «блок данных протокола».
Поэтому, когда кто-то говорит, что сетевое устройство получает «кадр», вы знаете, что это устройство является коммутатором.
Маршрутизатор получает пакет и обрабатывает его.
Ответ выше полный. Тем не менее, я думаю, что термин «пакет» произошел от коммутации пакетов, если я правильно это помню.
Есть 2 типа:
Коммутация каналов — это методология реализации телекоммуникационной сети, в которой два сетевых узла устанавливают выделенный канал связи (канал) в сети до того, как узлы смогут взаимодействовать. Схема гарантирует полную пропускную способность канала и остается подключенной на время сеанса связи. Схема функционирует так, как если бы узлы были физически связаны, как электрическая цепь. (Wiki)
Коммутация пакетов – это метод связи в цифровой сети, который группирует все передаваемые данные, независимо от содержания, типа или структуры, в блоки подходящего размера, называемые пакетами.(Wiki)
Я бы определил это сам, но просто для уверенности.
Итак, вот термин пакета. Что касается фрагмента, я согласен с ответом Джошуа Шмида.
Кадр как представление физического уровня не кажется мне на 100% точным. В основном это уровень канала передачи данных, который находится выше физического.
Для более оперативного определения я бы сказал, что фрейм — это блок данных протокола, который имеет средства для определения своих границ. Примеры:
ячейка, как и в ATM, если ввести еще один термин, представляет собой кадр фиксированной длины.
Вместо этого пакет представляет собой блок данных протокола, который полагается на блок нижнего уровня для определения своих границ. Он может помещаться точно в один кадр или быть разбитым на фрагменты, если это необходимо. В последнем случае необходимо разработать механизмы фрагментации и повторной сборки. Дейтаграмма чаще всего является синонимом пакета.
Поток данных приложения можно разбить на сегменты. Сегмент переносится в дейтаграмме, затем сегменты повторно собираются в исходный поток приложения. Обычно это делается на уровне TCP. Таким образом, в TCP у нас есть поток приложения по сегменту TCP по IP-датаграмме по кадру канала передачи данных. В UDP нет сегментации, поэтому дейтаграмма UDP взаимно однозначно отображается на дейтаграмму IP.
Я согласен с приведенными выше ответами, но важно подчеркнуть, что это предполагает стек TCP/IP. Если бы мы использовали модель OSI, которая, на мой взгляд, более распространена, мы бы имели следующий случай:
Транспортный уровень: Сегмент, если TCP, Дейтаграмма, если UDP Сетевой уровень: Дейтаграмма, Фрагмент может использоваться при разделении (это все равно будет дейтаграмма) Канальный уровень: Кадр на подуровне MAC, кадр или бит на подуровне LLC (в зависимости от того, какой уровень вы работаете, они не взаимозаменяемы) Физический уровень: Бит
И, как упоминалось в предыдущих ответах, пакет является более общим, его можно использовать для транспортного, сетевого или канального уровня, но НЕ для физического уровня. На этом уровне он еще не "упакован". Так что я бы сказал, что это самая большая разница между моделью стека TCP/IP и моделью OSI. Модель OSI разбивает физический уровень стека TCP/IP на два уровня: канальный и физический.
Надеюсь это поможет.
Дейтаграмма - это... Автономный, независимый объект данных, несущий достаточную информацию для маршрутизации от источника к компьютеру-получателю, не полагаясь на более ранние обмены между этим источником и компьютером-получателем и транспортной сетью. (... используется в UDP)
Сегмент - это .... Блок данных протокола, который состоит из заголовка TCP и части данных приложения (пакета), которая поступает с (верхнего) прикладного уровня.