ݺߣ

ݺߣShare a Scribd company logo
Сети и системы телекоммуникаций
Интерфейс сокетов
ИМКН УрФУ
Сети и системы телекоммуникаций. Интерфейс сокетов
Место сокетов в моделях OSI и TCP/IP
Сокеты Беркли
Основные операции над сокетами
Работа сокетов
Пример на Python
План
2
Сети и системы телекоммуникаций. Интерфейс сокетов
Сокеты, TCP и UDP относятся к транспортному
уровню
Сокеты – интерфейс транспортного уровня
TCP и UDP – протоколы транспортного уровня
Место в моделях OSI и TCP/IP
3
Сети и системы телекоммуникаций. Интерфейс сокетов
Место в моделях OSI и TCP/IP
4
Сетевых
интерфейсов
Сетевой
Транспортный
Приложение
Сетевых
интерфейсов
Сетевой
Транспортный
Хост 1 Хост 2
Протокол TCP
Интерфейс
сокетов
Приложение
Интерфейс
сокетов
Сети и системы телекоммуникаций. Интерфейс сокетов
Сокеты впервые появились в ОС Berkeley UNIX 4.2
BSD (1983 г.)
Сокеты – де-факто стандарт интерфейсов для
транспортной подсистемы
Различные варианты сокетов реализованы в
разных ОС и языках программирования
Сокеты Беркли
5
Сети и системы телекоммуникаций. Интерфейс сокетов
Сокет в Unix – файл специального типа
• В Unix все устройства представляются файлами
Операции чтения и записи в файл сокета
передают данные по сети
• Отправитель записывает данные в файл сокета
• Получатель читает данные их файла сокета
• Передача данных по сети скрыта от программиста
Сокеты Беркли
6
Сети и системы телекоммуникаций. Интерфейс сокетов
Операции сокетов Беркли
7
Операция Назначение
Socket Создать новый сокет
Bind Связать сокет с IP-адресом и портом
Listen Объявить о желании принимать соединения
Connect Установить соединение
Accept Принять запрос на установку соединения
Send Отправить данные по сети
Receive Получить данные из сети
Close Закрыть соединение
Сети и системы телекоммуникаций. Интерфейс сокетов
Взаимодействующие стороны сокетов Беркли:
• Сервер
• Клиент
Сервер – работает (слушает) на известном IP-
адресе и порту и пассивно ждет запросов на
соединение
Клиент – активно устанавливает соединение с
сервером на заданном IP и порту
Клиент и сервер
8
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
9
Сервер Клиент
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
10
Сервер Клиент
Socket
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
11
Сервер Клиент
Socket
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
12
Сервер Клиент
Socket
Bind
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
13
Сервер Клиент
Socket
Bind
192.168.1.1:80
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
14
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
15
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
16
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Socket
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
17
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Socket
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
18
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Socket
Connect
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
19
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Socket
Connect
Запрос на
соединение
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
20
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Запрос на
соединение
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
21
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Запрос на
соединение
Копия сокета
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
22
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Копия сокета Соединение
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
23
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Копия сокета Соединение
Send
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
24
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Копия сокета Соединение
Send
Receive
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
25
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Копия сокета Соединение
Send
Receive
Close
Сети и системы телекоммуникаций. Интерфейс сокетов
Работа сокетов
26
Сервер Клиент
Socket
Bind
192.168.1.1:80
Listen
Очередь для
соединений
Accept
Socket
Connect
Копия сокета
Send
Receive
Close
Сети и системы телекоммуникаций. Интерфейс сокетов
Передача данных возможна, только если
установлено соединение клиент-сервер
При получении запроса от клиента создается
копия сокета
• Соединение устанавливается с копией
Оригинальный сокет продолжает ждать запросы
от других клиентов
• Такой сокет не может принимать и передавать данные
Работа сокетов
27
Сети и системы телекоммуникаций. Интерфейс сокетов
«Серверный» сокет
Клиентский сокет
Передача данных
Пример на Python
28
Сети и системы телекоммуникаций. Интерфейс сокетов
Создание сокета:
serversocket = socket.socket( socket.AF_INET,
socket.SOCK_STREAM)
Привязка к IP-адресу:
serversocket.bind(('192.168.0.1', 80))
«Прослушивание»:
serversocket.listen(5)
Python. Серверный сокет
29
Сети и системы телекоммуникаций. Интерфейс сокетов
Протоколы сетевого уровня
socket.AF_INET – IPv4
socket.AF_INET6 – IPv6
Протоколы транспортного уровня
socket.SOCK_STREAM – TCP
socket.SOCK_DGRAM - UDP
Есть и другие типы, но они используются редко
Python. Типы сокетов
30
Сети и системы телекоммуникаций. Интерфейс сокетов
while 1:
#Принимаем соединение – создаем клиентский сокет
(clientsocket, address) = serversocket.accept()
#Создаем поток для обслуживания запроса клиента
ct = client_thread(clientsocket)
ct.run()
Python. Ожидание соединений
31
Сети и системы телекоммуникаций. Интерфейс сокетов
Создание сокета:
clientsocket = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
Установка соединения:
clientsocket.connect(('192.168.0.1', 80))
Python. Клиентский сокет
32
Сети и системы телекоммуникаций. Интерфейс сокетов
Отправка данных:
socket.send('Hello, world!')
Получение данных:
socket.recv(1024)
# 1024 – размер буфера
Закрытие сокета:
socket.close
Python. Передача данных
33
Сети и системы телекоммуникаций. Интерфейс сокетов
Место сокетов в моделях OSI и TCP/IP
Сокеты Беркли
Основные операции над сокетами
Работа сокетов
Пример на Python
Итоги
34
Сети и системы телекоммуникаций. Интерфейс сокетов
Вопросы?
35

More Related Content

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

  • 1. Сети и системы телекоммуникаций Интерфейс сокетов ИМКН УрФУ
  • 2. Сети и системы телекоммуникаций. Интерфейс сокетов Место сокетов в моделях OSI и TCP/IP Сокеты Беркли Основные операции над сокетами Работа сокетов Пример на Python План 2
  • 3. Сети и системы телекоммуникаций. Интерфейс сокетов Сокеты, TCP и UDP относятся к транспортному уровню Сокеты – интерфейс транспортного уровня TCP и UDP – протоколы транспортного уровня Место в моделях OSI и TCP/IP 3
  • 4. Сети и системы телекоммуникаций. Интерфейс сокетов Место в моделях OSI и TCP/IP 4 Сетевых интерфейсов Сетевой Транспортный Приложение Сетевых интерфейсов Сетевой Транспортный Хост 1 Хост 2 Протокол TCP Интерфейс сокетов Приложение Интерфейс сокетов
  • 5. Сети и системы телекоммуникаций. Интерфейс сокетов Сокеты впервые появились в ОС Berkeley UNIX 4.2 BSD (1983 г.) Сокеты – де-факто стандарт интерфейсов для транспортной подсистемы Различные варианты сокетов реализованы в разных ОС и языках программирования Сокеты Беркли 5
  • 6. Сети и системы телекоммуникаций. Интерфейс сокетов Сокет в Unix – файл специального типа • В Unix все устройства представляются файлами Операции чтения и записи в файл сокета передают данные по сети • Отправитель записывает данные в файл сокета • Получатель читает данные их файла сокета • Передача данных по сети скрыта от программиста Сокеты Беркли 6
  • 7. Сети и системы телекоммуникаций. Интерфейс сокетов Операции сокетов Беркли 7 Операция Назначение Socket Создать новый сокет Bind Связать сокет с IP-адресом и портом Listen Объявить о желании принимать соединения Connect Установить соединение Accept Принять запрос на установку соединения Send Отправить данные по сети Receive Получить данные из сети Close Закрыть соединение
  • 8. Сети и системы телекоммуникаций. Интерфейс сокетов Взаимодействующие стороны сокетов Беркли: • Сервер • Клиент Сервер – работает (слушает) на известном IP- адресе и порту и пассивно ждет запросов на соединение Клиент – активно устанавливает соединение с сервером на заданном IP и порту Клиент и сервер 8
  • 9. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 9 Сервер Клиент
  • 10. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 10 Сервер Клиент Socket
  • 11. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 11 Сервер Клиент Socket
  • 12. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 12 Сервер Клиент Socket Bind
  • 13. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 13 Сервер Клиент Socket Bind 192.168.1.1:80
  • 14. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 14 Сервер Клиент Socket Bind 192.168.1.1:80 Listen
  • 15. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 15 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений
  • 16. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 16 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Socket
  • 17. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 17 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Socket
  • 18. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 18 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Socket Connect
  • 19. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 19 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Socket Connect Запрос на соединение
  • 20. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 20 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Запрос на соединение
  • 21. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 21 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Запрос на соединение Копия сокета
  • 22. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 22 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Копия сокета Соединение
  • 23. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 23 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Копия сокета Соединение Send
  • 24. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 24 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Копия сокета Соединение Send Receive
  • 25. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 25 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Копия сокета Соединение Send Receive Close
  • 26. Сети и системы телекоммуникаций. Интерфейс сокетов Работа сокетов 26 Сервер Клиент Socket Bind 192.168.1.1:80 Listen Очередь для соединений Accept Socket Connect Копия сокета Send Receive Close
  • 27. Сети и системы телекоммуникаций. Интерфейс сокетов Передача данных возможна, только если установлено соединение клиент-сервер При получении запроса от клиента создается копия сокета • Соединение устанавливается с копией Оригинальный сокет продолжает ждать запросы от других клиентов • Такой сокет не может принимать и передавать данные Работа сокетов 27
  • 28. Сети и системы телекоммуникаций. Интерфейс сокетов «Серверный» сокет Клиентский сокет Передача данных Пример на Python 28
  • 29. Сети и системы телекоммуникаций. Интерфейс сокетов Создание сокета: serversocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM) Привязка к IP-адресу: serversocket.bind(('192.168.0.1', 80)) «Прослушивание»: serversocket.listen(5) Python. Серверный сокет 29
  • 30. Сети и системы телекоммуникаций. Интерфейс сокетов Протоколы сетевого уровня socket.AF_INET – IPv4 socket.AF_INET6 – IPv6 Протоколы транспортного уровня socket.SOCK_STREAM – TCP socket.SOCK_DGRAM - UDP Есть и другие типы, но они используются редко Python. Типы сокетов 30
  • 31. Сети и системы телекоммуникаций. Интерфейс сокетов while 1: #Принимаем соединение – создаем клиентский сокет (clientsocket, address) = serversocket.accept() #Создаем поток для обслуживания запроса клиента ct = client_thread(clientsocket) ct.run() Python. Ожидание соединений 31
  • 32. Сети и системы телекоммуникаций. Интерфейс сокетов Создание сокета: clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) Установка соединения: clientsocket.connect(('192.168.0.1', 80)) Python. Клиентский сокет 32
  • 33. Сети и системы телекоммуникаций. Интерфейс сокетов Отправка данных: socket.send('Hello, world!') Получение данных: socket.recv(1024) # 1024 – размер буфера Закрытие сокета: socket.close Python. Передача данных 33
  • 34. Сети и системы телекоммуникаций. Интерфейс сокетов Место сокетов в моделях OSI и TCP/IP Сокеты Беркли Основные операции над сокетами Работа сокетов Пример на Python Итоги 34
  • 35. Сети и системы телекоммуникаций. Интерфейс сокетов Вопросы? 35