Компьютерные сети (NET101)
Содержание лекции
Функции транспортного уровня
Взаимодействующие вычислительные процессы
Понятие порта
На самом деле, цепочка длиннее…
Протоколы транспортного уровня TCP/IP
Протокол UDP
Формат UDP-заголовка
Протокол TCP
Общие вопросы надёжной доставки
Обеспечение надёжной доставки
Обеспечение надёжной доставки
Обеспечение производительной надёжной доставки
Надёжность доставки в TCP
Формат TCP-заголовка
Флаги TCP
Фазы TCP-соединения
Установление соединения (handshake)
Разрыв соединения
Сетевая трансляция адресов и портов: NAT/PAT
Трансляция сетевых адресов (NAT)
Трансляция сетевых адресов и портов (PAT)
Трансляция сетевых адресов и портов (PAT)
Приложения, использующие TCP и UDP
Протокол Telnet
Протокол FTP
Протокол SMTP
Протокол SNMP
Протокол NFS
1.44M
Категория: ИнтернетИнтернет

Компьютерные сети (NET101)

1. Компьютерные сети (NET101)

Транспортный уровень TCP/IP

2. Содержание лекции

Обзор транспортного уровня
Функции транспортного уровня
Порты, мультиплексирование и демультиплексирование
Протоколы транспортного уровня TCP/IP
Протокол UDP
Протокол TCP
Описание протокола
Общие принципы обеспечения надёжной доставки
Примеры приложений использующих TCP и UDP

3. Функции транспортного уровня

Прикладной
Обеспечивает передачу данных
между вычислительными
процессами
Представи
тельский
Сеcсия
Транспортный
Сетевой
Звено данных
Физический
Функции:
[Де]мультиплексирование данных
от и к ВП
Обеспечение передачи данных
дейтаграммно
с установлением логического
соединения
Сегментация
Обеспечение надёжной доставки

4. Взаимодействующие вычислительные процессы

ВП1
Как указать какому
процессу предназначены
данные?
ВП1
ВП2
Host B
Host A
Internet
ВП1
ВП2
Host C
Блок данных протокола
транспортного уровня
Блок данных протокола
сетевого уровня

5. Понятие порта

«Передай эти данные процессу на узле A,
который подключен к порту номер N»
Понятие порта
Порт
tcp/21
Telne
t
FTP
Порт
tcp/23
srcPort/dstPort
DNS
Порт
tcp/53
Порт
udp/53
MUX / DEMUX
SNMP
Порт
udp/16
1
средство двустороннего
сообщения ВП с внешним
миром
пара очередей ОС (приёма и
передачи), к которым
подключается процесс,
открывая порт
srcPort/dstPort
TCP
Порт – это …
UDP
По полю
IP Protocol
Номера портов
передаются в заголовке
транспортного уровня
делятся на
well-known (RFC1700, RFC3232)
динамически назначаемые

6. На самом деле, цепочка длиннее…

Сокет
Порт {tcp/udp} №
xxxx
ВП
Сокет – программный объект
ВП, связывающий его с портом.
А точнее:
для UDP-сокетов:
DNS1
DNS2
Порт
udp/53
UDP
IP
If1
If2
{local_ip, local_port}
для TCP-сокетов:
{local_ip, local_port} (listen)
{local_ip, local_port,
remote_ip, remote_port}
(connected)

7. Протоколы транспортного уровня TCP/IP

Протокол пользовательских дейтаграмм (UDP, User
Datagram Protocol)
Протокол управления передачей (TCP,
Transmission Control Protocol)

8. Протокол UDP

RFC 768
Протокол UDP
Реализует сервис дейтаграммной передачи
сообщений (best effort)
Одно сообщение пользователя – одна UDPдейтаграмма
Возможна многоадресная рассылка (mcast, bcast)
UDP-дейтаграмма
Заголовок
UDP
8 байт
netstat -na -p udp
Данные процесса (сообщение)

9. Формат UDP-заголовка

0
15 16
31
Source Port
Destination Port
Length
CheckSum
Source Port и Destination Port – указывают на отправляющий и
принимающий процессы.
Поле Length содержит длину в байтах UDP заголовка и UDP данных.
CheckSum – контрольная сумма UDP охватывает UDP заголовок и UDP
данные.

10. Протокол TCP

RFC 793
Протокол TCP
TCP
bi t m
ВП2
TCP
Заголовок
TCP-сегмента
Заголовок
TCP-сегмента
bi t m
A lIttle

“A little bit more bytes for
you!”
A lIttle

ВП1
41 20 6C 69 74 74 6C 65 20 62 69 74 20 6D 6F 72 65
Предоставляет основанный на логическом
соединении надежный сервис потока байтов
Логическое соединение «точка-точка» –
многоадресная рассылка невозможна
20 62 79 74 65 73 20 66 6F 72 20 79 6F 75 21

11. Общие вопросы надёжной доставки

Задача: передать сообщение «1000р. с А на В.»
Нет ошибок
Принято: «1000р. с А на В.»
Потеря сегмента
Принято: «1000р. сВ.»

12. Обеспечение надёжной доставки

Использование подтверждений, таймаутов и
повторной передачи – решает проблему потери
сегментов
Таймаут
Принято: «1000р. с А на В.»
Таймаут
Принято: «1000р. с А на А на В.»

13. Обеспечение надёжной доставки

Нумерация сегментов и упорядочение их на
принимающей сторону – решает проблему нарушения
порядка доставки и дублирования сегментов
Таймаут

14. Обеспечение производительной надёжной доставки

Использование техники конвейеризации (pipelining)
Можно передать несколько сегментов, но не более окна
доступности, ещё до того как будет получено первое
подтверждение
Использование групповых подтверждений

15. Надёжность доставки в TCP

При отправке сегмента, TCP устанавливает таймер, ожидая, что с
удаленного конца придет подтверждение на этот сегмент. Если
подтверждение не получено по истечении времени, сегмент
передается повторно.
Когда TCP принимает данные от удаленной стороны соединения, он
отправляет подтверждение.
Если принят сегмент с неверной контрольной суммой, он
отбрасывается и подтверждение не генерируется.
TCP упорядочивает принимаемые сегменты и отбрасывает дубликаты.
TCP осуществляет контроль потока данных*.

16. Формат TCP-заголовка

Source Port
Destination Port
Sequence Number
Acknowledge Number
HdrLen Reserved
4bit
6bit
Flags
CheckSum
Options
Window Size
Urgent Pointer
Padding

17. Флаги TCP

URG – признак срочных данных.
ACK – учесть номер подтверждения.
PSH – получатель должен передать эти данные
приложению как можно скорее.
RST – сбросить соединение.
SYN – синхронизирующий номер последовательности
для установления соединения.
FIN – отправитель заканчивает посылку данных.

18. Фазы TCP-соединения

Установление соединения
Обмен данными
Разрыв соединения
netstat -na -p tcp

19. Установление соединения (handshake)

1.
Запрашивающая сторона отправляет SYN сегмент, указывая номер порта сервера и
исходный номер последовательности клиента. Это сегмент номер 1.
2.
Сервер отвечает своим сегментом SYN, содержащим исходный номер последовательности
сервера (сегмент 2) и подтверждает приход SYN клиента с использованием ACK (ISN
клиента плюс один).
3.
Клиент должен подтвердить приход SYN от сервера с использованием ACK (ISN сервера
плюс один, сегмент 3).
3 сегмента

20. Разрыв соединения

Каждая из сторон должна закрыть соединение
Сторона инициирующая закрытие со своей сторону отсылает
сегмент с FIN (сегмент 1).
Сторона принявшая FIN должна ответить на него ACK (сегмент 2).
4 сегмента

21. Сетевая трансляция адресов и портов: NAT/PAT

RFC1631
RFC 3022
Позволяет узлам с приватными адресами взаимодействовать с узлами в
Internet
Реализуется прозрачной для конечных узлов заменой ip-адресов [и портов]
отправителя и получателя

22. Трансляция сетевых адресов (NAT)

Узлам с приватными адресами по мере
необходимости назначаются адреса из пула

23. Трансляция сетевых адресов и портов (PAT)

При выходе за NAT осуществляется замена:
{srcip, srcport} {ip-from-pool, new-port}
{srcip, srcport}, {ip-from-pool, new-port} заносятся
в таблицу трансляции
Обратно:
Поиск {dstip, dstport} в таблице среди {ip-from-pool,
new-port}
Если надено – замена на сохранённые ранее {srcip,
srcport}

24. Трансляция сетевых адресов и портов (PAT)

25. Приложения, использующие TCP и UDP

Примеры приложений, использующих TCP:
Telnet
FTP
HTTP
SMTP
Примеры приложений, использующих UDP:
DNS
NTP
SNMP
NFS

26. Протокол Telnet

Позволяет пользователю работать с удалённой
системой в режиме терминала
«In-band» – управление
Использует TCP, порт 23

27. Протокол FTP

Реализует сервис передачи файлов через сеть
«Out-of-band» – управление
Использует TCP, порт 21 для команд и 20 для данных

28. Протокол SMTP

Лежит в основе сервиса электронной почты
Использует TCP, порт 25

29. Протокол SNMP

Протокол управления сетевыми устройствами
Использует UDP, порт 161 для управления и 162 для
уведомлений

30. Протокол NFS

Реализует сервис доступа к файлам удалённой
системы
Использует UDP, порт 2049
English     Русский Правила