35
Сети и системы телекоммуникаций Интерфейс сокетов ИМКН УрФУ

Сети и системы телекоммуникаций. Интерфейс сокетов

Embed Size (px)

Citation preview

Page 1: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций

Интерфейс сокетов

ИМКН УрФУ

Page 2: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Место сокетов в моделях OSI и TCP/IP

Сокеты Беркли

Основные операции над сокетами

Работа сокетов

Пример на Python

План

2

Page 3: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Сокеты, TCP и UDP относятся к транспортномууровню

Сокеты – интерфейс транспортного уровня

TCP и UDP – протоколы транспортного уровня

Место в моделях OSI и TCP/IP

3

Page 4: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Место в моделях OSI и TCP/IP

4

Сетевых интерфейсов

Сетевой

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

Приложение

Сетевых интерфейсов

Сетевой

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

Хост 1 Хост 2

Протокол TCP

Интерфейс сокетов

Приложение

Интерфейс сокетов

Page 5: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Сокеты впервые появились в ОС Berkeley UNIX 4.2BSD (1983 г.)

Сокеты – де-факто стандарт интерфейсов длятранспортной подсистемы

Различные варианты сокетов реализованы вразных ОС и языках программирования

Сокеты Беркли

5

Page 6: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Сокет в Unix – файл специального типа• В Unix все устройства представляются файлами

Операции чтения и записи в файл сокетапередают данные по сети

• Отправитель записывает данные в файл сокета• Получатель читает данные их файла сокета• Передача данных по сети скрыта от программиста

Сокеты Беркли

6

Page 7: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Операции сокетов Беркли

7

Операция Назначение

Socket Создать новый сокет

Bind Связать сокет с IP-адресом и портом

Listen Объявить о желании принимать соединения

Connect Установить соединение

Accept Принять запрос на установку соединения

Send Отправить данные по сети

Receive Получить данные из сети

Close Закрыть соединение

Page 8: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Взаимодействующие стороны сокетов Беркли:• Сервер• Клиент

Сервер – работает (слушает) на известном IP-адресе и порту и пассивно ждет запросов насоединение

Клиент – активно устанавливает соединение ссервером на заданном IP и порту

Клиент и сервер

8

Page 9: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

9

Сервер Клиент

Page 10: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

10

Сервер Клиент

Socket

Page 11: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

11

Сервер Клиент

Socket

Page 12: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

12

Сервер Клиент

Socket

Bind

Page 13: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

13

Сервер Клиент

Socket

Bind

192.168.1.1:80

Page 14: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

14

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Page 15: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

15

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Page 16: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

16

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Socket

Page 17: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

17

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Socket

Page 18: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

18

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Socket

Connect

Page 19: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

19

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Socket

Connect

Запрос на соединение

Page 20: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

20

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Запрос на соединение

Page 21: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

21

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Запрос на соединение

Копия сокета

Page 22: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

22

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Копия сокета Соединение

Page 23: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

23

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Копия сокета Соединение

Send

Page 24: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

24

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Копия сокета Соединение

Send

Receive

Page 25: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

25

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Копия сокета Соединение

Send

Receive

Close

Page 26: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Работа сокетов

26

Сервер Клиент

Socket

Bind

192.168.1.1:80

Listen

Очередь для соединений

Accept

Socket

Connect

Копия сокета

Send

Receive

Close

Page 27: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Передача данных возможна, только еслиустановлено соединение клиент-сервер

При получении запроса от клиента создаетсякопия сокета

• Соединение устанавливается с копией

Оригинальный сокет продолжает ждать запросыот других клиентов

• Такой сокет не может принимать и передавать данные

Работа сокетов

27

Page 28: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

«Серверный» сокет

Клиентский сокет

Передача данных

Пример на Python

28

Page 29: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Создание сокета:

serversocket = socket.socket( socket.AF_INET,socket.SOCK_STREAM)

Привязка к IP-адресу:

serversocket.bind(('192.168.0.1', 80))

«Прослушивание»:

serversocket.listen(5)

Python. Серверный сокет

29

Page 30: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Протоколы сетевого уровня

socket.AF_INET – IPv4

socket.AF_INET6 – IPv6

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

socket.SOCK_STREAM – TCP

socket.SOCK_DGRAM - UDP

Есть и другие типы, но они используются редко

Python. Типы сокетов

30

Page 31: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

while 1:

#Принимаем соединение – создаем клиентский сокет

(clientsocket, address) = serversocket.accept()

#Создаем поток для обслуживания запроса клиента

ct = client_thread(clientsocket)

ct.run()

Python. Ожидание соединений

31

Page 32: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Создание сокета:

clientsocket = socket.socket(socket.AF_INET,

socket.SOCK_STREAM)

Установка соединения:

clientsocket.connect(('192.168.0.1', 80))

Python. Клиентский сокет

32

Page 33: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Отправка данных:socket.send('Hello, world!')

Получение данных:socket.recv(1024)# 1024 – размер буфера

Закрытие сокета:

socket.close

Python. Передача данных

33

Page 34: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Место сокетов в моделях OSI и TCP/IP

Сокеты Беркли

Основные операции над сокетами

Работа сокетов

Пример на Python

Итоги

34

Page 35: Сети и системы телекоммуникаций. Интерфейс сокетов

Сети и системы телекоммуникаций. Интерфейс сокетов

Вопросы?

35