|
|||||
Уровни модели OSIСтр 1 из 2Следующая ⇒
Цель: изучить программы-клиенты. Программы-серверы
Оборудование:лекция и ПК. Ход работы: Задача заключается в передаче зашифрованного сообщения по прослушиваемой сети. Две стороны заранее договариваются о ключе шифрования методом Цезаря. На стороне клиента сообщение должно шифроваться и передаваться по сети серверу, на стороне сервера должно происходить дешифрование сообщения и вывод его на экран. Интерфейс работы с программой на стороне клиента:
Пользователь вводит сообщение, которое хочет передать по сети, указывает ключ шифрования. Программа выводит на экран зашифрованное сообщение и отправляет его серверу. Интерфейс работы с программой на стороне сервера:
>>> На экране пользователя со стороны сервера в первую очередь выводится сообщение о том, что установлена связь с клиентом. Далее указывается ключ шифрования и выводятся зашифрованный и открытый тексты.
Применяемая в IP-сетях архитектура клиент-сервер использует IP-пакеты для коммуникации между клиентом и сервером. Клиент отправляет запрос серверу, на который тот отвечает. В случае с TCP/IP между клиентом и сервером устанавливается соединение (обычно с двусторонней передачей данных), а в случае с UDP/IP - клиент и сервер обмениваются пакетами (дейтаграммами) с негарантированной доставкой. Каждый сетевой интерфейс IP-сети имеет уникальный в этой сети адрес (IP- адрес). Упрощенно можно считать, что каждый компьютер в сети Интернет имеет собственный IP-адрес. При этом в рамках одного сетевого интерфейса может быть несколько сетевых портов. Для установления сетевого соединения приложение клиента должно выбрать свободный порт и установить соединение с серверным приложением, которое слушает (listen) порт с определенным номером на удаленном сетевом интерфейсе. Пара IP- адрес и порт характеризуют сокет (гнездо) - начальную (конечную) точку сетевой коммуникации. Для создания соединения TCP/IP необходимо два сокета: один на локальной машине, а другой - на удаленной. Таким образом, каждое сетевое соединение имеет IP-адрес и порт на локальной машине, а также IP-адрес и порт на удаленной машине. Модуль socket в Python обеспечивает доступ к интерфейсу BSD сокетов и обеспечивает возможность работать с сокетами из Python. Сокеты используют транспортный уровень согласно семиуровневой модели OSI (Open Systems Interconnection, взаимодействие открытых систем).
Уровни модели OSI
Рисунок. Модель взаимодействия открытых систем ISO/OSI.
Каждый сокет относится к одному из коммуникационных доменов. Модуль socket поддерживает домены UNIX и Internet. Каждый домен подразумевает свое семейство протоколов и адресацию. Данное изложение будет затрагивать только домен Internet, а именно протоколы TCP/IP и UDP/IP, поэтому для указания коммуникационного домена при создании сокета будет указываться константа socket.AF_INET (и socket.SOCK_STREAM для надежной потокоориентированной службы).
Далее представлены примеры двух программ, использующих протокол TCP/IP для передачи текстовой строки: сервер принимает строку и пересылает ее обратно клиенту.
|
|||||
|