ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.03.2025
Просмотров: 1181
Скачиваний: 1
СОДЕРЖАНИЕ
255.255.255.0 - Маска для сети класса с.
1.2. Модель osi. Физический уровень.
1.3. Модель osi. Канальный уровень.
1.4. Модель osi. Сетевой уровень.
1.5. Модель osi. Транспортный уровень.
1.6. Модель osi. Сеансовый уровень.
1.7. Модель osi. Уровень представления.
1.8. Модель osi. Прикладной уровень.
1.10. Протоколы arp и rarp. Их место в стеке протоколов ip.
1.11. Маршрутизация в ip-сетях.
1.12. Структуризация ip-сетей с помощью масок.
255.255.255.0 - Маска для сети класса с.
1.13. Протокол tcp. Его место в стеке протоколов tcp/ip.
1.14. Протокол udp. Его место в стеке протоколов tcp/ip.
1.15. Протоколы надёжной доставки пакетов. Концепция квитирования.
1.16. Маршрутизаторы. Их место в сетевой модели osi.
1.17. Понятие маршрута. Принципы построения таблиц маршрутизации.
1.18. Понятие топологии сети. Средства объединения сетей с произвольной топологией.
1.19. Понятие стека сетевых протоколов. Стек протоколов tcp/ip.
1.20. Понятие сетевого интерфейса. Модель сетевого интерфейса для ip-сети.
2.1. Технология клиент-сервер.
2.2. Событийная модель соединения сокетов.
2.3. Особенности программирования сетевого приложения.
2.4. Этапы организации соединения сокетов.
2.5. Организация сетевого соединения со стороны клиента.
2.10. Сокеты, как средство межпрограммного взаимодействия.
2.11. Сокеты. Их место в сетевой модели osi.
2.12. Сокеты. Их место в стеке протоколов ip.
2.13. Сокеты в ос Windows. Технология Windows Sockets.
2.14. Средства библиотеки mfc для работы с сокетами.
2.16. Передача данных через сокет.
2.17. Приём данных через сокет.
2.18. Способы закрытия сетевого соединения между сокетами.
2.19. Типы сокетов. Область их применения.
2.20. Понятие номера порта для протоколов транспортного уровня сетевой модели osi.
2.2. Событийная модель соединения сокетов.
Класс WinSock позволяет работать с сокетами в рамках трех подходов, против двух классических. А именно, обычная блокирующая передача данных, неблокирующая передача данных, событийно ориентированная передача данных.
При 3 подходе создаваемый сокет имеет ряд связанных с ним событий, реакцию на которые определяет пользователь.
Общеизвестный факт, что все ПО развивается в сторону унификации интерфейса, это позволяет значительно упростить и ускорить его использование для пользователя. Вполне логично, что унификация программного API приводит к более эффективному и грамотному его использованию программистами, которые выступают в роли потребителей API. В событийном подходе мы исходим от события, мы знаем для какого сокета есть новости.
Если задуматься на тему что такое поступление новых данных в сокет или, например, что такое закрытие сокета с другой стороны. Можно придти к простому выводу - это события. Такие же события, как наступления времени Х или любое другое событие в программе. Более того, абсолютно законна постановка вопроса: "ждем пока произойдет какое-нибудь событие или пока придут данные от сокета". Поэтому это правильно и логично, что и работа с сокетами должна строится на событиях.
Для работы с сокетами в ходе лаб использовался класс CAsyncSocket, который инкапсулирует возможности работы с WinSock. Основными событиями в данном классе являются следующие:
|
OnAccept |
Уведомляет слушающий сокет (сервера) о приходе запроса на установление соединения от удаленного сокета (клиента; метод Accept). |
|
OnClose |
Уведомляет сокет о разрыве соединения с ним. |
|
OnConnect |
Уведомляет сокет, пытающийся установить соединение, о том, что попытка соединения завершена (как успешно, так и с ошибкой). |
|
OnReceive |
Уведомляет сокет о наличии в буфере принятых данных, которые могут быть прочитаны с помощью вызова Receive. |
|
OnSend |
Уведомляет сокет о возможности передачи данных с помощью вызова Send. |
Источники:
http://www.kalinin.ru/programming/network/12_12_00.shtml
http://msdn2.microsoft.com/en-us/library/09353w3t(VS.80).aspx
2.3. Особенности программирования сетевого приложения.
Чтобы две программы могли общаться друг с другом через сеть, каждая из них должна создать сокет. Каждый сокет обладает двумя основными характеристиками: протоколом и адресом, к которым он привязан. Протокол задаётся при создании сокета и не может быть изменён впоследствии. Адрес сокета задаётся позже, но обязательно до того, как через сокет пойдут данные. Формат адреса сокета определяется конкретным протоколом. В частности, для протоколов TCP и UDP адрес состоит из IP-адреса сетевого интерфейса и номера порта.
При использовании TCP сервер сам не является инициатором подключения, но может работать с любым подключившимся клиентом, какой бы у него ни был адрес. Для сервера принципиально, какой порт он будет использовать - если порт не определён заранее, клиент не будет знать, куда подключаться. Поэтому номер порта является важным признаком для сервера. С другой стороны, клиенту обычно непринципиально, какой порт будет у его сокета, поэтому чаще всего сервер использует фиксированный порт, а клиент оставляет выбор системе.
Протокол UDP не поддерживает соединение, но при его использовании часто одно приложение тоже можно условно назвать сервером, а другое - клиентом. Сервер создаёт сокет и ждёт, когда кто-нибудь что-нибудь пришлёт и высылает что-то в ответ, а клиент сам отправляет что-то куда-то. Поэтому, как и в случае TCP, сервер должен использовать фиксированный порт, а клиент может выбирать любой свободный.
В программе-сервер закладывается способность ожидать появления запроса от клиента на определенном порту. Для этого используется отдельный сокет. Для установления соединения с каждым клиентом сервер выделяет один сокет. Клиенту для организации взаимодействия с сервером необходим один сокет. Таким образом для создания Nсоединений будет задействован 2N+ 1 сокет.
Источники:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021
http://home.tula.net/angel/les15.html
2.4. Этапы организации соединения сокетов.
Создание сервером слушающего сокета с заданным номером порта (функция Create(n_port),IPадрес присваивается сам) и запуск его на прослушивание среды (функция Listen());
Создание клиентом сокета для соединения с сервером (функция Create(), номер порта не важен) и отправка запроса на подключение к сокету сервера Connect(m_ipaddr, m_port);
При приеме такого запроса (событие OnAccept) сервер выделяет клиенту сокет для организации соединения (методAcceptдля выделяемого сокета).
Если у сервера не осталось свободных сокетов для подключения очередного клиента, то необходимо организовать соединение с фиктивным сокетом для продвижения очереди запросов, после чего сразу же его разорвать.
2.5. Организация сетевого соединения со стороны клиента.
Для организации соединения с сервером клиент создает сокет (функция Create(), номер порта не важен) и отправляет запрос на подключение к сокету сервера Connect(m_ipaddr, m_port). При завершении попытки вызывается событие OnConnect(ErrCode). При установке соединенияErrCode= 0.
2.6. Организация сетевого соединения со стороны сервера.
Для организации сетевого соединения сервер создает слушающий сокета с заданным номером порта (функция Create(n_port),IPадрес присваивается сам) и запускает его на прослушивание среды (функция Listen());
При приеме от клиента запроса на подключение (событие OnAccept) сервер выделяет клиенту сокет для организации соединения (методAcceptдля выделяемого сокета).
2.7. Особенности программирования приложения-клиента.
Приложение клиент должно имеет один сокет для установления соединения с сервером.
2.8. Особенности программирования приложения-сервера.
В программе-сервер закладывается способность ожидать появления запроса от клиента на определенном порту. Для этого используется отдельный сокет. Для установления соединения с каждым клиентом сервер выделяет один сокет.
2.9. Сокеты. Понятие гнездового соединения.
Каждый процесс может создать слушающий сокет и привязать его к какому-нибудь порту компьютера. Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность просто проверить наличие соединений на данный момент, установить тайм-аут для операции и так далее.
Обычно клиент явно подсоединяется к слушателю, после чего любое чтение или запись через его файловый дескриптор будут на самом деле передавать данные между ним и сервером.
Зам.Такое соединение точка-точка между 2 сокетами по всей видимости называется гнездовым.
Источник:
http://ru.wikipedia.org/wiki/Сокет_(программный_интерфейс)
2.10. Сокеты, как средство межпрограммного взаимодействия.
Сокетом (от англ. socket - гнездо, розетка) называется специальный объект, создаваемый для отправки и получения данных через сеть. Этот объект создаётся внутри библиотеки сокетов, а программист, использующий эту библиотеку, получает уникальный номер (дескриптор) этого сокета. Конкретное значение этого дескриптора не несёт для программиста никакой полезной информации и может быть использовано только для того, чтобы при вызове функции из библиотеки сокетов указать, с каким сокетом требуется выполнить операцию.
Чтобы две программы могли общаться друг с другом через сеть, каждая из них должна создать сокет. Каждый сокет обладает двумя основными характеристиками: протоколом и адресом, к которым он привязан. Протокол задаётся при создании сокета и не может быть изменён впоследствии. Адрес сокета задаётся позже, но обязательно до того, как через сокет пойдут данные. В некоторых случаях привязка сокета к адресу может быть неявной.
Каждый сокет имеет два буфера: для входящих и для исходящих данных. При отправке данных они сначала кладутся в буфер исходящих, и лишь затем отправляются в фоновом режиме. Программа в это время продолжает свою работу. При получении данных сокет кладёт их в буфер для входящих, откуда они затем могут извлекаться программой.
После организации соединения сокетов любое чтение или запись через файловый дескриптор одного из них будут на самом деле передавать данные между ним и парным ему сокетом другого приложения.
Источник:
Надергано из предыдущих вопросов.
2.11. Сокеты. Их место в сетевой модели osi.
Когда мы создаем сокет (socket - гнездо), мы получаем возможность доступа к нужному нам уровню OSI. Ну а дальше мы можем использовать соответствующие вызовы для взаимодействия с ним. Сокеты устроены таким образом, что они могут взаимодействовать с ОС на любом уровне OSI, скрывая ту часть реализации, которой мы не интересуемся
В то время, как задачей сетевого уровня является передача данных между произвольными узлами сети, задача транспортного уровня заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети. Действительно, после того, как пакет средствами протокола IP доставлен в компьютер-получатель, данные необходимо направить конкретному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс тоже может иметь несколько точек входа, выступающих в качестве адреса назначения для пакетов данных.
Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами. Таким образом, адресом назначения, который используется на транспортном уровне, является идентификатор (номер) порта прикладного сервиса. Номер порта, задаваемый транспортным уровнем, в совокупности с номером сети и номером компьютера, задаваемыми сетевым уровнем, однозначно определяют прикладной процесс в сети.
Зам.На лабах мы юзали сокеты с номерами порта иIPадресом, то есть их средства доступа к транспортному уровню и сетевому уровню. На консультации было сказано, что каким-то боком туда относится и сеансовый уровень. Типа, сервер ведущий, клиент ведомый или что-то такое.
Источники:
http://www.gamedev.ru/articles/?id=80201&page=3
http://www.citforum.ru/nets/ip/glava_5.shtml
2.12. Сокеты. Их место в стеке протоколов ip.
Зам.Понятие стека протоколовIPотсутствует. Его нет в природе. ПротоколIPявляется базовым для стекаTCP/IP. Возможно, имелся ввиду именно этот стек.
Чтобы две программы могли общаться друг с другом через сеть, каждая из них должна создать сокет. Каждый сокет обладает двумя основными характеристиками: протоколом и адресом, к которым он привязан. Протокол задаётся при создании сокета и не может быть изменён впоследствии. Адрес сокета задаётся позже, но обязательно до того, как через сокет пойдут данные. Формат адреса сокета определяется конкретным протоколом. В частности, для протоколов TCP и UDP адрес состоит из IP-адреса сетевого интерфейса и номера порта.