Хоумпэйдж на задворках • НавигацияОбо мне

Как работают протоколы TCP/IP? Если совсем по-простому

Недавно я решил погрузиться в веб-разработку: хочу узнать о том, как работают интернет и сети, различные протоколы, веб-доступность, HTML, CSS, JavaScript, а также другие базовые инструменты, на которых сегодня работают совершенно все сайты в интернете. Эти знания помогут мне в своих личных проектах и работе.

Чтобы усвоенное закреплялось лучше, я решил писать конспекты в своём блоге. Возможно, эти небольшие шпаргалки помогут не только мне, но и другим начинающим разработчикам. Тексты пишу как сам, так и прибегая к чатам GPT (там, где требуются простые сухие определения либо код).

Начинаем с базы: TCP/IP.

Как работают протоколы TCP/IP

База TCP/IP

Протоколы TCP/IP — это основа интернета, которая позволяет компьютерам и другим устройствам обмениваться данными. Давайте разберем это на простом примере.

Представьте себе почтовую службу.

  1. IP (Internet Protocol) — это как адрес на конверте. Он указывает, куда нужно доставить данные. Каждый компьютер в сети имеет уникальный IP-адрес, как дом имеет свой почтовый адрес.
  1. TCP (Transmission Control Protocol) — это как почтальон, который следит за тем, чтобы письмо дошло до адресата. Он разбивает данные на маленькие кусочки (пакеты), отправляет их и проверяет, что все пакеты дошли в правильном порядке и без ошибок.

И как это работает вместе?

  • Отправка данных — когда вы отправляете данные (например, сообщение или файл), TCP разбивает их на пакеты и нумерует их.
  • Маршрутизация — IP отвечает за то, чтобы каждый пакет нашел правильный путь к получателю, даже если они идут разными маршрутами.
  • Получение данных — на стороне получателя TCP собирает пакеты обратно в исходное сообщение и проверяет, что все пакеты на месте и в правильном порядке.

Представьте, что вы отправляете письмо другу. Вы пишете письмо (данные), кладете его в конверт и пишете адрес (IP). Почтальон (TCP) берет конверт, проверяет адрес и доставляет его вашему другу. Если письмо потеряется, почтальон попросит вас отправить его снова.

Пример простейшего TCP-соединения

Ниже представлен листинг простейшего TCP-соединения на Python. Этот код включает сервер и клиент, которые могут обмениваться сообщениями.

Код сервера:

import socket

# Настройки сервера
HOST = '127.0.0.1'  # Локальный хост
PORT = 65432        # Порт для прослушивания

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    print(f"Сервер запущен на {HOST}:{PORT}")
    conn, addr = s.accept()
    with conn:
        print(f"Подключение от {addr}")
        while True:
            data = conn.recv(1024)
            if not data:
                break
            print(f"Получено: {data.decode()}")
            conn.sendall(data)

Код клиента:

import socket

# Настройки клиента
HOST = '127.0.0.1'  # Серверный хост
PORT = 65432        # Порт сервера

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'Привет, сервер!')
    data = s.recv(1024)

print(f"Получено от сервера: {data.decode()}")

Как работает этот код?

  1. Сервер — создает сокет, привязывает его к адресу и порту, и начинает слушать входящие соединения.
  2. Клиент — создает сокет и подключается к серверу.
  3. Обмен сообщениями — клиент отправляет сообщение серверу, сервер получает его и отправляет ответ.

Дополнительный материал для изучения темы:

TCP — Википедия
Что такое TCP/IP и как работает этот протокол
Что такое TCP/IP — как работает, как настроить на Windows, MacOS
Что такое TCP/IP: Объясняем на пальцах — видео
TCP/IP: что это и зачем нужно — видео
Стек протоколов TCP/IP. Особенности технологии и многоуровневая модель — видео
Как настроить протокол TCP/IP: пошаговая инструкция для начинающих
Протоколы семейства TCP/IP. Теория и практика / Хабр
TCP: Transmission Control Protocol
Модель TCP/IP: что такое уровни и протоколы? Стек TCP/IP

Подписаться на блог
Отправить
Поделиться
Запинить
Дальше