Wiki Барышева Анна
(Новая страница: «= Сетевая модель OSI = '''Сетевая модель OSI''' (Open Systems Interconnection) — эталонная модель взаимодейс…») |
|||
| Строка 86: | Строка 86: | ||
== Примечания == | == Примечания == | ||
| − | |||
* {{книга | автор = Таненбаум Э. | заглавие = Компьютерные сети | год = 2020 | страницы = 78-95}} | * {{книга | автор = Таненбаум Э. | заглавие = Компьютерные сети | год = 2020 | страницы = 78-95}} | ||
* {{стандарт | автор = ISO/IEC | номер = 7498-1 | заглавие = Модель OSI | год = 1994}} | * {{стандарт | автор = ISO/IEC | номер = 7498-1 | заглавие = Модель OSI | год = 1994}} | ||
Текущая версия на 11:37, 16 декабря 2025
Содержание |
[править] Сетевая модель OSI
Сетевая модель OSI (Open Systems Interconnection) — эталонная модель взаимодействия открытых систем. Разработана ISO в 1984 году. Описывает семь уровней, через которые данные передаются по сети.
TOC
[править] Уровни модели
Модель делит процесс передачи данных на семь уровней, каждый из которых выполняет свою функцию.
[править] Верхние уровни (прикладные)
- Прикладной уровень (Application) — интерфейс пользователя (HTTP, FTP).
- Уровень представления (Presentation) — шифрование, сжатие данных.
- Сеансовый уровень (Session) — управление сеансами связи.
[править] Нижние уровни (транспортные)
- Транспортный уровень (Transport) — надёжная доставка (TCP, UDP).
- Сетевой уровень (Network) — маршрутизация и IP-адресация.
- Канальный уровень (Data Link) — доступ к среде, MAC-адреса.
- Физический уровень (Physical) — передача битов по кабелю.
[править] Формальное описание процесса инкапсуляции
При передаче данные проходят сверху вниз, на каждом уровне добавляется служебный заголовок. Математически это можно выразить как последовательное преобразование:
где:
-
— исходные данные приложения,
-
— заголовок i-го уровня,
-
— данные после обработки на уровне i.
Общий размер передаваемого кадра:
[править] Пример работы модели
Рассмотрим передачу HTTP-запроса через сеть Ethernet.
[править] Имитация инкапсуляции на Python
<syntaxhighlight lang="python"> def encapsulate_osi(data: str, protocol_headers: dict) -> dict:
"""Моделирует процесс инкапсуляции по уровням OSI."""
packet = {"data": data}
# Уровни с 7 по 1 (сверху вниз)
levels = [
"Прикладной (HTTP)",
"Представления (TLS)",
"Сеансовый (SSL)",
"Транспортный (TCP)",
"Сетевой (IP)",
"Канальный (Ethernet)",
"Физический (биты)"
]
for level in levels:
header = protocol_headers.get(level, "")
packet[level] = f"{header}{packet.get('data', data)}"
return packet
- Пример использования
if name == "main":
http_request = "GET /index.html HTTP/1.1"
headers = {
"Прикладной (HTTP)": "[HTTP-Header]",
"Транспортный (TCP)": "[TCP-Segment]",
"Сетевой (IP)": "[IP-Packet]",
"Канальный (Ethernet)": "[Ethernet-Frame]"
}
result = encapsulate_osi(http_request, headers)
for level, value in result.items():
if level != "data":
print(f"{level}: {value[:50]}...")
</syntaxhighlight>
[править] Сравнение с моделью TCP/IP
Модель TCP/IP — практическая реализация, где уровни OSI объединены:
- Прикладной + Представления + Сеансовый → Прикладной (TCP/IP)
- Транспортный → Транспортный
- Сетевой → Интернет
- Канальный + Физический → Сетевой интерфейс
Процесс передачи данных можно представить как поток, проходящий через уровни: Данные → [Уровень 7] → Данные₇ → [Уровень 6] → Данные₆ → ... → [Уровень 1] → Биты
Где каждый уровень добавляет свой заголовок (инкапсуляция).
[править] Примечания
- Шаблон:Книга
- Шаблон:Стандарт
- Модель OSI используется как эталон при обучении, хотя на практике чаще применяется TCP/IP.