
Полный текст первых минут лекции «Модель TCP/IP объяснение протокола UDP» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
На этом уроке мы рассмотрим разницу между TCP и UDP. Посмотрим на их пакеты. Запустим Sniffer White Shark. Он захватывает и дает рассмотреть пакеты, проходящие по сети.
Начнем прослушивание. Послушаем сетевую карту, где есть немного движения. Двойной клик и откроем браузер. Зайдем на сайт gmail.com.
Допустим, проверить почту. А также, допустим, зайдем на Facebook. В целом мы открываем в браузере несколько табов, чтобы прошли какие-то пакеты. Вот, посмотрите, 18 тысяч пакетов прошло.
И мы остановим Caption захват. Нам уже достаточно для исследования, остановим. И начнем фильтровать, потому что иначе нечто искать трудно.
Будем фильтровать в связи с протоколом DNS. То есть нам покажут пакеты, которые посылает протокол DNS.
Вот, смотрите, все, что посылалось именно протоколом DNS. Вот, например, пакет к серверу DNS, где я запрашиваю IP, соответствующий имени Facebook.com.
И этот сервер мне ответил, что Facebook это такой-то IP. И мы заглянем в содержимое пакета. И мы рассмотрим все прослойки связи, через которые все тут прошло.
Прежде всего в пакете запроса мы видим все биты, которые тут прошли по связи, по кабелю или по беспроводной волне. И тут можно совершить правый клик и show bytes as bits.
И мы видим все биты в двоичном представлении, единички и нули. И физически проходит именно так, но нам удобнее представлять это в 16-ти ричной системе, поскольку так рассматривать короче, но информация все та же.
Вот тут мы видим все слои, связанные с передачей. Вот сама запрошенная информация на языке протокола DNS. А вот это служба, которую нам предоставляет операционная система.
Служба обмена посланиями UDP. И что мы видим на уровне UDP? Сколько занимает места эта информация? Синим обозначено. Информация, связанная с UDP, занимает 8 байт тут.
Эти 8 байт это упаковка, обертка вокруг информации. А сама информация изначальная, это вот это. Это информация на уровне аппликации, которая попросила это послать.
В данном случае это программа DNS. Эта информация передается операционной системе, а та уже накладывает упаковку UDP. Обертка UDP включает порт исхода, порт назначения, то есть от какой программы сообщения в какую программу.
То есть куда нужно отвечать уже в самом компьютере. И в том компьютере, куда послать. Может быть там много программ, куда можно послать.
И много разных портов они прослушивают. Вот, 53-й порт в компьютере-адресате. Это как раз DNS-сервер прослушивает порт 53. Откуда мой компьютер это узнал? Потому что это стандарт.
Если мы посмотрим здесь, в папке Windows, System32, Drivers, etc, и заглянем в File Services, откроем его через простой Notepad, мы увидим данные о стандарте, общемировом стандарте.
И именно так наша операционная система понимает, что через UDP нужно посылать на порт 53 запрос для DNS-сервера. Именно его на той стороне сервер DNS слушает, потому что это стандарт.
Если кто-нибудь этот файл изменит, то мой пакет не получит ответа. Так мой компьютер знает, что в адресате нужно указать 53-й порт. А на той стороне, когда мой пакет получен, то мне просто отвечают на этот указанный мною порт.
Порт исхода динамичен, он может быть разным. Неважно каким, потому что сервер увидит указанный мною порт в пакете. И ответит по указанному обратному адресу.
Но компьютер, инициирующий связь, должен сразу знать, куда нужно посылать. Он должен изначально знать, с каким портом он связывается. Поэтому операционная система знает, за каким портом стоит какая программа на сервере.
И это известно с помощью стандарта. Потому что сервер DNS дает нам только IP серверов. Он не дает мне порты в связи с моими нуждами.
Поэтому есть стандарт. Все сайты интернетовские это порт 80. А DNS сервера это порт 53. И если они изменят эти числа и не расскажут об этом всем операционным системам, то с ними никто не сможет связаться.
Итак, в обертке UDP есть порт исхода, порт назначения. И порт назначения в первой посылке должен быть в соответствии со стандартом. Length. Размер передаваемой информации.
В данном случае 38 байт. То есть, что в этих 38 байтах? Это размер самой информации аппликации плюс обертки UDP.