Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Закрепляем пройденное
Эталонная модель OSI vs TCP/IP
Прикладной (Application)
Представления (Presentation)
Сеансовый (Session)
Транспортный (Transport)
Сетевой (Network)
Канальный (Data link)
Физический (Physical)
Прикладной (Application)
Транспортный (Transport)
Сетевой (Internet)
Канальный (Link)
Транспортный уровень
Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
- Идентификация приложений
- Пример протоколов: TCP, UDP
UDP (User Datagram Protocol)
- Отдельное сообщение - Дейтаграмма
- Отсутствуют накладные расходы (кроме заголовка)
- Нет гарантий надёжности
- Ошибки обрабатывает приложение
RFC 768
UDP (User Datagram Protocol)
|
0 |
1 |
2 |
3 |
| 0 |
Source port |
Destination port |
| 4 |
Length |
Checksum |
| 8 | Payload |
Клиент-серверная модель
Соединение зачастую описывается 5 компонентами: порт источника, порт назначения, IP адрес источника,
IP адрес назначения и протокол (5 tuple)
TCP
Abandon all hope
ye who enter here.
TCP (Transmission Control Protocol)
- Работает с потоком данных
- Отдельное сообщение - Сегмент (потока)
- Предоставляет гарантии
- Самостоятельно обрабатывает многие ошибки
RFC 9293 +
Работает с потоком данных?
Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
- Последовательность сообщений
- = явный сеанс связи
- => явные признаки начала и конца сеанса
Работает с потоком данных?
Сеансовый уровень
Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
- Выделение потоков данных
- Установление "сеанса связи"
- Сообщение намерения передачи данных
- Подтверждение возможности получения данных
- Согласование окончания сеанса
- Пример протоколов: TCP, SSL
TCP Заголовок
Начало и конец сеанса
Проблема двух армий при завершении, асинхронное завершение RST
Сегмент потока?
Гарантия доставки
(остановка и ожидание)
Maximum segment size (MSS)
UDP vs TCP
UDP
- Обеспечивает быстрое соединение
- Низкие накладные расходы
- Не даёт никаких гарантий
- Позволяет максимально утилизировать канал сразу
Подходит для приложений, где скорость передачи важнее целостности.
TCP
- Долго устанавливает соединение
- Много разных сложных механизмов
- Гарантия доставки сообщений
- Гарантия порядка сообщений (потока)
- Контроль потока
- Контроль перегрузки
Подходит в большинстве случаев)
Sockets
| syscall | |
| socket | Создать новый сокет |
| bind | Связать локальный endpoint с сокетом |
| listen | Объявить о желании принять соединение |
| accept | Пассивно установить входящее соединение |
| connect | Активно установить соединение |
| send/write | Отправить данные |
| recv/read | Получить данные |
| close/shutdown | Разорвать соединение |
TCP
TCP
UDP
Литература
-
Таненбаум Э., Фимстер Н., Уэзеролл Д. - Компьютерные сети. 6-е изд.
- Пункты 6.1, 6.2, 6.4.1, 6.5 (до 6.5.8)
-
В. Олифер, Н. Олифер - Компьютерные сети. Принципы, технологии, протоколы. 6-е изд.
- Глава 15 (до Концепции скользящего окна)