Zip-файл, мамкины хацкеры! С вами Денчик, и сегодня мы с вами продолжим рассматривать базовые концепции сетевых технологий. А конкретнее, познакомимся с такими транспортными протоколами, как TCP и UDP. Разберем, что из себя представляют данные протоколы, поговорим о том, что происходит на транспортном уровне моделей TCPIP и OSI, ну и напоследок разберемся в механизмах работы транспортных протоколов. Если вам интересна данная тема и вы хотите с головой погрузиться в сетевую информационную безопасность, тогда устраивайтесь поудобнее в пропуканном кресле, обновите себе вискарик в бокале и больше не будем терять ни минуты на праздную болтовню.
Погнали! Но прежде чем мы перейдем к космическим кораблям в виде механизмов работы транспортных протоколов, мне бы хотелось поговорить о более реальной земной работе офисных клерков. Так уж сложилось, что наиболее популярными программулинами в любом офисе, в том числе у САТ... сотрудников, занимающих внушительные позиции в топах, являются Word, Outlook и, конечно, Excel в связке с Google таблицами. Согласно официальной статистике, в одном только Excel ежедневно работают более 1 миллиарда пользователей.
Однако, по данным Acuity Training, лишь 6% из них знакомы со всеми возможностями этой программы. Но благо, это легко поправимо, ведь недавно образовательная платформа Skillbox запустила курс по работе с Excel и Google таблицами с нуля до уровня Pro. Курс проектировали опытные методисты и эксперты, ежедневно проводящие в Excel большую часть своего рабочего времени. Программа построена таким образом, что за 4 месяца вы с нуля получите продвинутые навыки работы с табличным редактором. Уже с первых занятий вы будете выполнять практические задания, получая...
подробную обратную связь от опытных наставников и кураторов курса, попутно перенимая их опыт, профессиональные навыки и лайфхаки. Помимо IT-специалистов различных мастей, материал будет полезен бухгалтерам, юристам, экономистам, маркетологам, проект-менеджерам и всем тем, кто всерьез занимается или планирует заняться в будущем собственным бизнесом. Весь процесс обучения построен по принципу «от простого к сложному».
После каждого модуля вам необходимо будет выполнить домашнее задание для того, чтобы закрепить полученные знаки. знания на практике, а опытные кураторы в свою очередь все проверят и предоставят вам корректирующую обратную связь в течение суток. Всего пару месяцев занятий в таком темпе и вы сможете эффективнее решать любые задачи связанные с таблицами, визуализировать данные, строить прогнозы, графики и диаграммы. И кто знает?
Быть может именно эти скиллы позволят вам получить повышение или увеличить цену за ваши услуги Ведь с ними вы сможете не только быстро и качественно обрабатывать данные, но и брать на себя более ответственные задачи Более подробно ознакомиться со всей информацией по курсу Excel и Google таблицы с нуля до про, а также подобрать наиболее подходящий тариф, вы сможете перейдя по ссылочке в описании, либо отсканировав QR-код, который видите на экране. А по моему промокоду, специально для мамкиных хацкеров ребята из Skillbox сделают 50% скидку. Так что не протупите. Переходите по ссылке в описании или по QR-коду, оставляйте заявку прямо сейчас и уже завтра будете щелкать макросы в Excel покруче любого гендира.
Бегом записываться. Окей, теперь собственно вернемся к основной теме ролика. И начнем мы как водится с определения.
Транспортный уровень определяет способы передачи данных. То есть по сути это сам механизм для доставки. Тип взаимодействия в нем точка-точка.
Основные проблемы, которые как правило решаются на данном уровне это мультиплексирование. так как он может работать с несколькими потоками данных между двумя устройствами. Надежная передача данных, регулирование количества передаваемых данных, ну и конечно контроль доставки. Единицы измерения, с которыми работает Transport Layer, это сегмент и датограмма. На транспортном уровне работают популярные протоколы TCP и UDP.
Спецификация TCP приведена в RFC 675. Он является так называемой рабочей лошадкой для интернета и передает данные между приложениями. К его основным функциям относятся надежная доставка данных, сборка сегментов на стороне получателя, контроль сессии и скорость передачи данных. Ведь согласитесь, когда приложение посылает данные в сеть, никто не знает какой именно путь будет выбран для каждого отдельного пакета.
Также ничто не гарантирует, что до получателя отойдут все пакеты из данных. Маршрут пакетов даже в рамках одной сессии может быть изменен по целому ряду причин. Это может быть авария на одном из маршрутизаторов, неправильная работа балансировщика на грузке, или просто какие-то ошибки маршрутизации, которые могут привести к ошибкам при доставке пакетов.
Таким образом, получатель может получить сегменты не в том порядке, в котором они отправлялись, или вообще не получить часть пакетов от слова совсем. Надежная же доставка осуществляется за счет повторной пересылки пропавших сегментов. Каждый сегмент в TCP содержит так называемый Sequence Number, по-русски порядковый номер. После того, как отправитель выслал определенное количество сегментов, он ожидает подтверждения от получателя с указанием номера следователя.
сегмента, который адресат желает само собой получить. Если такое подтверждение не будет получено, отправка будет инициирована повторно. Сборка сегментов, пришедших в неправильном порядке, будет осуществлена автоматически с использованием все тех же полей. Таким образом, протокол TCP соберет сегменты сессии в нужном порядке и перешлет правильные данные приложению получателя. Перед началом передачи TCP всегда проверяет, что получатель вообще существует и в принципе готов принять данные.
Этот механизм называется трехсторонним рукопожатием. Во время сессии все данные тщательно контролируются, а после закрытия и отправитель, и получатель оповещают друг друга о том, что сеанс связи был завершен. Помимо этого, в TCP существует так называемый механизм скользящего окна.
Он позволяет менять количество передаваемых данных до следующего подтверждения. Благодаря этому отправитель может динамически менять размер пересылаемых данных, анализируя подтверждение от получателя. Давайте более подробно проанализируем из чего состоит классический DCP-шный заголовок. Основные поля тут номера портов получателя и отправителя, порядковый номер и номер подтверждения, длина самого заголовка, размер окна, признак важности, необязательное поле options, значение номера подтверждения, паш, ресет, сан, ну и конечно же фим. Номер порта это идентификатор на хосте получателя и отправителя.
В значении порта у вас всегда будет целое положительное число. Сами номера в свою очередь делятся на административные, пользовательские и частные. Список тех, которые стоит запомнить, вы сейчас видите на экране. На практике, если использовать какой-нибудь сетевой сканер а-ля Wireshark, это будет выглядеть следующим образом.
Кстати, по практике в Wireshark на канале есть отдельный полноценный урок. Настоятельно рекомендую к просмотру, если хотите вникнуть в тему анализа не только поверхностно. Но одну фишку я расскажу вам прямо сейчас. FlagUrgent используется для передачи каких-то недостоверных данных.
То есть, по сути, потенциальная уязвимость. По умолчанию большинство современных систем умеют его откидывать, но, как показывает практика, далеко не все делают это корректно. Поэтому очень часто именно с его помощью злоумышленники обманывают плохо настроенные IPS-ки и передают жертве данные как ни в чем не бывало. Сетевой сокет это структура, которая определяет конечную точку во время сетевого обмена данными.
Для TCP-IP сокетом является сочетание трех параметров сессии. Транспортного протокола, TCP или UDP номера порта и разумеется ip-адреса сетевой сокете себе и пи также называют интернет сокетом парные сокеты это некий локальный и удаленный сокет хорошей аналогии может быть скажем микрофон и динамик на вашем смартфоне при разговоре по мобильному телефону вы говорите в микрофон который расположен на вашем устройстве а слышит вас собеседник по своему динамику то есть это такая виртуальная труба соединяющая две точки в сети где каждый пишет и читает в свой из своего сокета и тем самым автоматически осуществляя взаимодействие. По подключению сокеты бывают трех типов.
Потоковый TCP, сокет DataGram UDP и сырой RAF сокет, в который просто зашит IP-пакет с данными. По функциям сокеты делятся на клиентский, он всегда один, и серверный, это когда на одном сервере их может быть несколько. Установка соединения важная стадия сетевого обмена. На нем хосты убеждаются, что другой хост существует и в данный момент работает, а также что на обоих из них используется один и тот же стек сетевых протоколов.
Как я уже упоминал, протокол TCP устанавливает соединение с помощью трехстороннего рукопожатия, то есть в три этапа. Сначала отправляется SYN-пакет, от сервера приходит ответ сына ASC и потом наш клиент снова отсылает серверу TCP сегмент с флагом ASC. Нормальное завершение TCP соединения происходит в виде двухстороннего рукопожатия.
Во время этой процедуры оба хоста закрывают свои сокеты и освобождают занятые во время сеанса ресурсы. Сначала посылаем пакет с флагом FIN, в данном случае флаг ASK отвечает за подтверждение передачи, хотя по факту это вообще не имеет отношения к закрытию соединения. Далее получает в ответ подтверждение, что соединение закрыто. И затем получаем уведомление ASK и FIN. от удаленного хоста, что соединение закрыто.
Ну и закрываем эту историю подтверждением закрытия, то есть флагом ASK. Важно помнить, что в заголовке сегмента TCP есть специальный флаг RESET, он же сброс. При получении хостом такого флага в значении единичка, он должен немедленно разрывать соединение и оповестить удаленный хост в завершении обмена.
Данный механизм нужен для уведомления противоположной стороны о случившемся сбое. Протокол UDP является рабочей лошадкой для всех потоковых сервисов, так или иначе связанных с аудио-видео-стримингом и геймдевом. Он служит для работы всех современных цифровых сервисов.
Спецификация протокола UDP приведена в RFC 768. Главными особенностями данного протокола являются Ориентация на транзакции, запрос-ответ, это может быть DNS или NTP. Простота исполнения, так как тут не требуется какая-то сложная модель для обмена данными. Отсутствие сохранения состояния соединения, актуально в ситуации, когда вам необходимо отправить инфу на большое число хостов.
Допустим, это какое-нибудь IPTV. Ну и отсутствие повторной передачи данных, что позволяет работать в режиме реального времени. Актуальненько в играх.
Также эта история поддерживает многоадресную рассылку. В этом режиме информация передается сразу на группу хостов. В сетях IPv4 для многоадресного вещания зарезервирована подсеть с маской 4. Преимущество многоадресного вещания в том, что снижается нагрузка на общую пропускную способность сети, так как часть информации, передаваемая до клиента, пропускается один раз по одному общему маршруту. Это опять же хорошо заходит при стриминге и интернет-телевидении. Как видно на рисунке, протокол крайне прост.
В нем нет никаких средств для синхронизации, флагов, контроля сессий и прочих нагружающих пакет-штук. Если сравнить протоколы TCP и UDP по основным показателям, то в случае с TCP управление потоком данных происходит через проверку после передачи, регулировку скорости. И повторную пересылку пакетов.
В UDP же ничего, к сожалению, этого нет. По критерию упорядоченности, если пакеты попали к получателю не в правильном порядке, то в случае с TCP он может самостоятельно пересобрать сегментики в нужном порядке, так что приложение даже этого не заметит. Ну а в случае с UDP так не работает, там данные передаются по факту. А вот в вопросе ресурсоемкости TCP проигрывает, так как требует слишком уж много накладных расходов по времени и по нагрузке сети. Именно поэтому UDP работает значительно шустрее и не требует никакого дополнительного геморроя.
Опять же помним, что в нем есть широковещательный режим, поэтому данные, которые будут переданы одновременно на все узлы, не будут требовать проверки соединения и передадутся значительно быстрее, чем по TCP. Ну и само собой многоадреска, где каждая датаграмма может быть передана группе подписчиков без каких-либо дополнительных накладных расходов. Последние два пункта в принципе невозможны при использовании TCP.
Это связано с требованиями к установлению соединения и высоким расходом ресурсов для контроля каждой созданной сессии. Так что ребзи для каждой ситуации нужно выбирать своего фаворита, исходя из перечисленных преимуществ и недостатков. Окей, друзья, вот мы с вами и познакомились с базовыми представлениями о протоколах TCP и UDP. Если остались вопросы, можете задать их в комментах сразу после просмотра этого ролика.
А если не поленитесь и чекните описание, то найдете там ссылочку на домашнее задание к данному видеосюжету, опубликованное на моем авторском сайте. Там же я выкладываю все домашние задания к видеороликам из серии «Информационная безопасность 0 до Джуна». Переходите, решайте задачки и становитесь реальными профессионалами своего дела. Ну и это, если вдруг забрели на видосик...
Шатаясь перед реками ютубчика, то не забудьте оформить подписочку на канал, а то пропустите выход новых полезных видеороликов на тему сетевого администрирования и инфобеза. Ну а всем молодам по традиции хочу пожелать удачи, успеха и самое главное отличного настроения. Большое спасибо, что смотрите мои ролики до конца, это вдохновляет снимать их почаще.
Хочется верить, что вы действительно замечаете рост в уровне проработки и подачи трудновоспринимаемых материалов. А то лично у меня порой мозг действительно плавится от такого лютого уровня душноты. Ладненько, это все лирика. До новых встреч, мои кайфные дружи. Всем пока.