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

Содержание

Слайд 2

Содержание лекции Обзор транспортного уровня Функции транспортного уровня Порты, мультиплексирование и

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

Обзор транспортного уровня
Функции транспортного уровня
Порты, мультиплексирование и демультиплексирование
Протоколы транспортного уровня

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

Функции транспортного уровня Сеcсия Физический Прикладной Представи тельский Транспортный Сетевой Звено

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

Сеcсия

Физический

Прикладной

Представи
тельский

Транспортный

Сетевой

Звено данных

Обеспечивает передачу данных между вычислительными процессами
Функции:
[Де]мультиплексирование данных от

и к ВП
Обеспечение передачи данных
дейтаграммно
с установлением логического соединения
Сегментация
Обеспечение надёжной доставки
Слайд 4

Internet Взаимодействующие вычислительные процессы Как указать какому процессу предназначены данные? Host

Internet

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

Как указать какому процессу предназначены данные?
Host A
Host C

ВП1

ВП2

ВП1

ВП2
Host B

ВП1

Блок

данных протокола транспортного уровня

Блок данных протокола сетевого уровня

Слайд 5

Понятие порта Порт – это … средство двустороннего сообщения ВП с

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

Порт – это …
средство двустороннего сообщения ВП с внешним миром
пара

очередей ОС (приёма и передачи), к которым подключается процесс, открывая порт
Номера портов
передаются в заголовке транспортного уровня
делятся на
well-known (RFC1700, RFC3232)
динамически назначаемые

FTP

Telnet

DNS

Порт tcp/21

TCP

IP

UDP

Порт tcp/23

Порт tcp/53

Порт udp/53

SNMP

Порт udp/161

По полю Protocol

srcPort/dstPort

srcPort/dstPort

«Передай эти данные процессу на узле A, который подключен к порту номер N»

MUX / DEMUX

Слайд 6

На самом деле, цепочка длиннее… Сокет – программный объект ВП, связывающий

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

Сокет – программный объект ВП, связывающий его

с портом.
А точнее:
для UDP-сокетов:
{local_ip, local_port}
для TCP-сокетов:
{local_ip, local_port} (listen)
{local_ip, local_port, remote_ip, remote_port} (connected)

ВП

Порт {tcp/udp} № xxxx

Сокет

DNS1

DNS2

IP

UDP

Порт udp/53

If1

If2

Слайд 7

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

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

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

передачей (TCP, Transmission Control Protocol)
Слайд 8

Протокол UDP Реализует сервис дейтаграммной передачи сообщений (best effort) Одно сообщение

Протокол UDP

Реализует сервис дейтаграммной передачи сообщений (best effort)
Одно сообщение пользователя –

одна UDP-дейтаграмма
Возможна многоадресная рассылка (mcast, bcast)

RFC 768

Данные процесса (сообщение)

Заголовок
UDP

UDP-дейтаграмма

8 байт

netstat -na -p udp

Слайд 9

Формат UDP-заголовка Source Port Destination Port Length CheckSum 0 31 15

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

Source Port

Destination Port

Length

CheckSum

0

31

15

16

Source Port и Destination Port – указывают на

отправляющий и принимающий процессы.
Поле Length содержит длину в байтах UDP заголовка и UDP данных.
CheckSum – контрольная сумма UDP охватывает UDP заголовок и UDP данные.
Слайд 10

Заголовок TCP-сегмента Протокол TCP Предоставляет основанный на логическом соединении надежный сервис

Заголовок
TCP-сегмента

Протокол TCP

Предоставляет основанный на логическом соединении надежный сервис потока байтов
Логическое соединение

«точка-точка» – многоадресная рассылка невозможна

RFC 793

ВП1

ВП2

20 62 79 74 65 73 20 66 6F 72 20 79 6F 75 21

“A little bit more bytes for you!”

TCP

TCP

41 20 6C 69 74 74 6C 65 20 62 69 74 20 6D 6F 72 65

A l I t t l e bi t m …

A l I t t l e bi t m …

Заголовок
TCP-сегмента

Слайд 11

Общие вопросы надёжной доставки Задача: передать сообщение «1000р. с А на

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

Задача: передать сообщение «1000р. с А на В.»

Нет

ошибок

Принято: «1000р. с А на В.»

Потеря сегмента

Принято: «1000р. сВ.»

Слайд 12

Обеспечение надёжной доставки Использование подтверждений, таймаутов и повторной передачи – решает

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

Использование подтверждений, таймаутов и повторной передачи – решает проблему

потери сегментов

Принято: «1000р. с А на В.»

Принято: «1000р. с А на А на В.»

Таймаут

Таймаут

Слайд 13

Обеспечение надёжной доставки Нумерация сегментов и упорядочение их на принимающей сторону

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

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

решает проблему нарушения порядка доставки и дублирования сегментов

Таймаут

Слайд 14

Обеспечение производительной надёжной доставки Использование техники конвейеризации (pipelining) Можно передать несколько

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

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

не более окна доступности, ещё до того как будет получено первое подтверждение
Использование групповых подтверждений
Слайд 15

Надёжность доставки в TCP При отправке сегмента, TCP устанавливает таймер, ожидая,

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

При отправке сегмента, TCP устанавливает таймер, ожидая, что

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

Формат TCP-заголовка Destination Port Source Port Options Padding Acknowledge Number Sequence

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

Destination Port

Source Port

Options

Padding

Acknowledge Number

Sequence Number

HdrLen
4bit

Reserved
6bit

Flags

Window Size

Urgent Pointer

CheckSum

Слайд 17

Флаги TCP URG – признак срочных данных. ACK – учесть номер

Флаги TCP

URG – признак срочных данных.
ACK – учесть номер подтверждения.
PSH

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

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

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

Установление соединения
Обмен данными
Разрыв соединения

netstat -na -p tcp

Слайд 19

Установление соединения (handshake) Запрашивающая сторона отправляет SYN сегмент, указывая номер порта

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

Запрашивающая сторона отправляет SYN сегмент, указывая номер порта сервера

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

3 сегмента

Слайд 20

Разрыв соединения Каждая из сторон должна закрыть соединение Сторона инициирующая закрытие

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

Каждая из сторон должна закрыть соединение
Сторона инициирующая закрытие со своей

сторону отсылает сегмент с FIN (сегмент 1).
Сторона принявшая FIN должна ответить на него ACK (сегмент 2).

4 сегмента

Слайд 21

Сетевая трансляция адресов и портов: NAT/PAT Позволяет узлам с приватными адресами

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

Позволяет узлам с приватными адресами взаимодействовать

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

RFC1631
RFC 3022

Слайд 22

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

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

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

адреса из пула
Слайд 23

Трансляция сетевых адресов и портов (PAT) При выходе за NAT осуществляется

Трансляция сетевых адресов и портов (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)

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

Слайд 25

Приложения, использующие TCP и UDP Примеры приложений, использующих TCP: Telnet FTP

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

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

Слайд 26

Протокол Telnet Позволяет пользователю работать с удалённой системой в режиме терминала

Протокол Telnet

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

управление
Использует TCP, порт 23
Слайд 27

Протокол FTP Реализует сервис передачи файлов через сеть «Out-of-band» – управление

Протокол FTP

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

21 для команд и 20 для данных
Слайд 28

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

Протокол SMTP

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

Слайд 29

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

Протокол SNMP

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

162 для уведомлений