2.5 KiB
2.5 KiB
Работа с сетевыми соединениями в Python
Описание проекта
Практическая работа по изучению основ работы с сетевыми соединениями в Python.
Реализованы клиент-серверные приложения по протоколам TCP и UDP, выполнен анализ сетевого трафика в Wireshark, проведено сравнение HTTP-запросов через socket и requests, а также выполнено взаимодействие с API Gitea.
Используемые протоколы и методы
| Протокол/метод | Назначение |
|---|---|
| TCP | Надёжная передача данных с установкой соединения |
| UDP | Быстрая передача данных без установки соединения |
| HTTP (socket) | Низкоуровневая отправка HTTP-запросов |
| HTTP (requests) | Высокоуровневая работа с HTTP-запросами |
| Gitea API | Взаимодействие с Git-сервером через REST API |
| Wireshark | Анализ сетевого трафика |
-
TCP vs UDP
- TCP надёжный, но медленный. Используется для веб-сайтов, почты, файлов.
- UDP быстрый, но может терять данные. Используется для видео, игр, звонков.
-
socket vs requests
requestsудобнее для реальной разработки: автоматические заголовки, редиректы, меньше кода.socketподходит для низкоуровневого контроля и изучения протокола HTTP.
-
Анализ Wireshark
- Зафиксировано трёхстороннее рукопожатие TCP (SYN, SYN-ACK, ACK)
- Зафиксирована передача данных с флагом PSH, ACK
- Зафиксировано завершение соединения (FIN, ACK)
- В UDP подтверждено отсутствие установки соединения
-
API Gitea
- Токены должны храниться в
.envи не попадать в Git - Для чтения нужны права
read:user - Для создания репозитория нужны права
write:repository
- Токены должны храниться в