Протоколы TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) используются для передачи данных в сети. Они работают на транспортном уровне модели OSI и определяют, как информация передаётся между узлами.
TCP (Transmission Control Protocol)
TCP — это протокол с установлением соединения, обеспечивающий гарантированную доставку данных. Он контролирует порядок передачи пакетов и их целостность.
Основные характеристики TCP
- Надёжная передача данных
- Контроль потока
- Коррекция ошибок
- Упорядоченная доставка
Пример TCP-сервера на C#
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
TcpListener server = new TcpListener(IPAddress.Any, 5000);
server.Start();
Console.WriteLine("Сервер запущен");
TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] buffer = Encoding.UTF8.GetBytes("Привет от сервера!");
stream.Write(buffer, 0, buffer.Length);
}
}
UDP (User Datagram Protocol)
UDP — это протокол без установления соединения. Он не гарантирует доставку данных, но быстрее TCP, что делает его полезным для потокового видео, VoIP и онлайн-игр.
Основные характеристики UDP
- Нет установления соединения
- Высокая скорость передачи
- Возможна потеря пакетов
- Нет контроля потока
Пример UDP-сервера на C#
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
UdpClient server = new UdpClient(5000);
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
Console.WriteLine("UDP сервер запущен");
byte[] receivedBytes = server.Receive(ref remoteEP);
string receivedData = Encoding.UTF8.GetString(receivedBytes);
Console.WriteLine($"Получено: {receivedData}");
}
}
TCP подходит для приложений, требующих надёжности, таких как веб-приложения и базы данных. UDP лучше использовать там, где важна скорость, например в мультимедиа-приложениях.