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