Рубрики
Без рубрики

Удп

Введение UDP Давайте поговорим об этом действительно забавным протоколом, смешно – странный … Теги с учебником, Linux, сетью, Python.

Введение

Давайте поговорим об этом действительно забавным протоколом, смешно – странное слово для сетевого протокола, но я постараюсь сделать мою точку зрения. Я попробую тот же подход, что и мой последний пост на TCP сделать простой сценарий Python и посмотрите на Wireshark Отказ Давайте начнем.

Предварительные условия

  1. Python 3.
  2. Wireshark

Удп рукопожатие, то что?

Да, на мой взгляд UDP (Протокол DataGram UserAmam) едва ли протокол, я знаю, что я не компьютерный парень, но все же это не так, кажется, не соответствует этой категории протокола. Позвольте мне уточнить, что UDP чрезвычайно полезен Я просто говорю, что запчасти, связанные с коммуникацией, не следят за слишком многими правилами, как в TCP Отказ Вместо того, чтобы просто сказать это, я постараюсь показать вам, почему я сказал это, давайте сделаем наш простой сценарий Python. Опять же, это может быть сделано с любым языком программирования, я выбираю Python для простоты.

Наше Server.py будет содержать наши чрезвычайно упрощенные UDP Сервер:

# UDP server.py

import socket

def main():
    # creating the socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # binding the socket to the address, in our case the localhost
    sock.bind(('localhost', 7456))
    print("Just here on 7456...")

    # start reading data,
    # I'm just interested on a single message from the client and it will be
    # pretty short so don't need more than this
    data, address = sock.recvfrom(1024)
    print(f"FROM: {address} DATA: {data}")

if __name__ == "__main__":
    main()

Обратите внимание на разницу здесь с TCP В этом случае он просто начнет слушать без необходимости звонить Socket.Listen () или Socket.Accept () Посмотрите на этот вопрос на Переполнение стека Да, я использую Stackoverflow в качестве ссылки.

Как насчет клиента, здесь мы идем:

# UDP client.py

import socket

def main():
    # create the socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    print("Sending data...")
    # and ready to go
    sock.sendto(b"Hello Lola", ('localhost', 7456))

if __name__ == "__main__":
    main()

Мы создаем розетку и готовые к отправке сообщения, учитываете, что вам все равно, если сервер прослушивает, если есть сервер, вы просто отправляете и надеетесь на лучшее.

Как это похоже на Wireshark?

В последнем посте мы видели, что один TCP Соединение с одним сообщением генерирует несколько обратно и вперед между клиентом и сервером. Я рекомендую вам взглянуть на шаги, которые вы берете, чтобы понюхать движение в этом случае, в этом случае единственное отличие состоит в том, что фильтр в этом случае является udp.port.port. .

Теперь давайте посмотрим это, но с UDP Это будет смешно, потому что хорошо … Посмотрим:

Чего ждать? Только одно сообщение, клиент просто буквально отправил сообщение, ему все равно, если сервер слушает, потому что снова не так, как слушать UDP Отказ

Да, эта картина очень хорошо объясняет ситуацию, также была сделана с ExalidRaw. Вы знаете, продвижение проектов с открытым исходным кодом 😃.

Итак, В УДП нет рукопожатия , глядя на отправленную пакет, мы видим, что не слишком много, чтобы увидеть:

Только порт назначения, поисковый порт, длина исходного порта, UDP и контрольная сумма, и хорошо, чтобы пойти, отправил это сообщение !!

Использует случаи UDP

Вы можете задаться вопросом: «Так зачем мне это нужно?». Хорошо учитывая, что UDP Имеет низкую задержку, у нее есть довольно интересные случаи использования. Я позволю вам эти две ссылки ниже, чтобы вы могли их исследовать:

Это все на сегодня 👋.

Библиография

  1. Переполнение стека

Оригинал: “https://dev.to/gealber/udp-3pno”