Презентация лекции "Интерфейс сокетов".
План лекции:
Место сокетов в моделях OSI и TCP/IP
Сокеты Беркли
Основные операции над сокетами
Работа сокетов
Пример на Python
1 of 35
Downloaded 22 times
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