Networks 2014 — различия между версиями
Antonk (обсуждение | вклад) |
Devdays (обсуждение | вклад) |
||
Строка 22: | Строка 22: | ||
* [[Медиа:Networks_2013_Sockets_02.ppt|Сокеты-02]] | * [[Медиа:Networks_2013_Sockets_02.ppt|Сокеты-02]] | ||
+ | == Третье задание == | ||
+ | Нужно сделать сервер и клиент, работающие по какому-нибудь простому протоколу REQUEST-RESPONSE, | ||
+ | в котором время обработки запросов зависит от размера этого запроса. | ||
+ | |||
+ | В рамках одного соединения может быть несколько запросов. | ||
+ | |||
+ | |||
+ | Возможны два способа реализации сервера: | ||
+ | * Модель, как в apache. | ||
+ | Есть главный процесс, обрабатывающий новые соединения. | ||
+ | Есть процессы-воркеры. | ||
+ | |||
+ | Когда появился новый клиент, если есть свободный воркер, нужно передать обработку соединения ему, иначе создать новый процесс-воркер. | ||
+ | |||
+ | * Неблокирующий многопоточный сервер. | ||
+ | |||
+ | То есть один процесс неблокирующе читает из сокетов, и раздает задания фиксированному числу потоков. | ||
+ | |||
+ | Потоки ничего про сокеты не знают. | ||
+ | |||
+ | |||
+ | Для полученного сервера надо запустить много клиентов и нарисовать графики изменения среднего времени ответа и еще чего-нибудь от числа клиентов. | ||
== Рейтинг == | == Рейтинг == | ||
[https://docs.google.com/spreadsheets/d/1fut5LyIzNx5XpP-E2oMwKGA3cvdv_MKMjrT3bTQiB-M/edit?usp=sharing Рейтинг] | [https://docs.google.com/spreadsheets/d/1fut5LyIzNx5XpP-E2oMwKGA3cvdv_MKMjrT3bTQiB-M/edit?usp=sharing Рейтинг] |
Версия 18:41, 5 декабря 2014
Содержание
Список тем по теории
- Стек протоколов TCP/IP
- TCP, UDP
- IP, ICMP
- ARP, Ethernet
- DNS, DHCP
- IP адреса, маска сети, шлюз. Порт
- Устройство IP пакета. TOS, TTL
- Схема работы стека протоколов при передаче данных между компьютерами
- Маршрутизация. Статическая и динамическая. Протоколы динамической маршрутизации: OSPF, BGP
- Маршрутизаторы
- HTTP, HTTPS
Задания
Третье задание
Нужно сделать сервер и клиент, работающие по какому-нибудь простому протоколу REQUEST-RESPONSE, в котором время обработки запросов зависит от размера этого запроса.
В рамках одного соединения может быть несколько запросов.
Возможны два способа реализации сервера:
- Модель, как в apache.
Есть главный процесс, обрабатывающий новые соединения. Есть процессы-воркеры.
Когда появился новый клиент, если есть свободный воркер, нужно передать обработку соединения ему, иначе создать новый процесс-воркер.
- Неблокирующий многопоточный сервер.
То есть один процесс неблокирующе читает из сокетов, и раздает задания фиксированному числу потоков.
Потоки ничего про сокеты не знают.
Для полученного сервера надо запустить много клиентов и нарисовать графики изменения среднего времени ответа и еще чего-нибудь от числа клиентов.