Что такое ack в роутере

ACK (англ. Acknowledge — подтверждение) является одним из управляющих символов ASCII и флагом TCP. Он применяется в сетевых протоколах для подтверждения получения или передачи данных. Символ ACK используется для сообщения о том, что определенное сообщение или пакет данных были доставлены или получены успешно.

  1. Роль SYN и ACK в сетевых протоколах
  2. Роль поля ACK в TCP сегменте
  3. Принцип работы TCP рукопожатия
  4. Зачем нужен протокол TCP/IP
  5. Полезные советы
  6. Выводы

Роль SYN и ACK в сетевых протоколах

SYN (Synchronise) — это флаг, который отправляется клиентским компьютером и инициирует установку связи между клиентом и сервером. Когда клиент отправляет пакет с установленным флагом SYN, сервер должен ответить пакетом с установленными флагами SYN и ACK (SYN-ACK), чтобы подтвердить запрос на установку соединения.

ACK (Acknowledgement) — это флаг, который используется для подтверждения получения сообщения, отправленного получателем. Это значит, что получатель успешно получил данные и готов принять новые.

Таким образом, трехстороннее рукопожатие (TCP handshake) завершается командой ACK, которую отправляет инициатор соединения, подтверждая успех установки соединения.

Роль поля ACK в TCP сегменте

ACK-флаг является одним из флагов, используемых в TCP сегменте. Когда ACK-флаг установлен, это означает, что поле «Номер подтверждения» задействовано. В этом поле содержится порядковый номер, ожидаемый получателем в следующий раз. Установка ACK-флага информирует отправителя о том, что получатель успешно получил предыдущие данные и готов принять новые.

Принцип работы TCP рукопожатия

TCP рукопожатие (TCP handshake) является процессом установления соединения между клиентом и сервером. В процессе передачи данных клиент и сервер обмениваются сегментами с установленными флагами ACK или PSH+ACK. Последовательность передачи данных происходит следующим образом:

  1. Клиент отправляет пакет с установленным флагом SYN, инициируя запрос на установку соединения.
  2. Сервер получает пакет и отвечает пакетом с установленными флагами SYN и ACK, подтверждая запрос на установку соединения.
  3. Клиент получает пакет сервера и отправляет пакет с установленным флагом ACK, подтверждая подтверждение от сервера.
  4. После завершения трехстороннего рукопожатия, клиент и сервер могут начать передачу данных.

В процессе этого рукопожатия, ACK играет важную роль в подтверждении получения и передачи данных между клиентом и сервером.

Зачем нужен протокол TCP/IP

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

Полезные советы

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

Выводы

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

Как узнать пин код WPS

Хотите узнать пин-код WPS для своего принтера? Ничего проще! Просто выполните следующие шаги. Нажмите и удерживайте кнопку Стоп на принтере в течение нескольких секунд, пока не загорится оранжевый индикатор Аварийный сигнал. Обычно он мигает примерно 15 раз. Как только это произойдет, отпустите кнопку Стоп. После этого ваш принтер напечатает информацию о настройках беспроводного соединения, где вы сможете найти и ваш пин-код WPS. Именно через этот пин-код можно осуществить беспроводное подключение к принтеру. Таким образом, вы сможете печатать свои документы, не используя проводное соединение. Необходимость ввода пин-кода может возникнуть при первом настройке принтера или при подключении к нему нового устройства. Этот простой и быстрый способ позволяет вам легко узнать пин-код WPS для беспроводного подключения к вашему принтеру.

Как считать P&L

Для расчета показателя P&L проекта необходимо выполнить несколько простых шагов. Во-первых, суммируются все значения прибыли, полученные от проекта, за определенный период, например, за месяц или за квартал. При этом учитываются все поступления денежных средств от клиентов или других источников. Во-вторых, суммируются все расходы, которые были произведены в рамках проекта за тот же период. Это включает в себя затраты на материалы, оборудование, оплату труда и другие издержки. После этого, сумма прибыли вычитается из суммы расходов. Если результат положительный, то проект приносит прибыль. Если же результат отрицательный, то проект считается убыточным. Важно помнить, что P&L является одним из ключевых показателей, которые помогают оценить финансовую эффективность и успех проекта.

Что такое WPS Office для чего он нужен

WPS Office — это мощный офисный пакет программ, который предназначен для работы с различными типами документов. Он включает в себя такие инструменты, как WPS Writer, Spreadsheets, Presentation и PDF.

WPS Writer — это программа для создания и редактирования документов в формате DOC. С помощью нее можно писать эссе, письма, отчеты и другие текстовые документы.

Spreadsheets — это инструмент, который позволяет работать с таблицами, создавать расчеты, диаграммы и заметки. Благодаря разнообразным функциям, можно легко обрабатывать числовые данные и анализировать информацию.

Presentation — это программа для создания презентаций с использованием различных эффектов и анимации. Она позволяет создавать профессиональные и запоминающиеся презентации для работы или учебы.

PDF — это инструменты для работы с файлами в формате PDF. Вы можете просматривать, редактировать, объединять или разделять PDF-документы, а также конвертировать их в другие форматы.

WPS Office является удобным и многофункциональным офисным пакетом, который помогает пользователям эффективно работать с различными типами документов.

Что означает Сяо в Китае

Сяо — это имя родового клана, который владел властью на юге Китая в V-VI веках н.э. Также Сяо — это название длинной продольной бамбуковой флейты, используемой в Китае. Однако, Сяо также имеет другое значение в этике восточной Азии. Оно означает сыновнюю почтительность. Это понятие подразумевает, что дети должны проявлять уважение и заботу по отношению к своим родителям, а также исполнять свои обязанности в семье. Такое отношение считается важным в культуре Китая и других восточных странах. Практика Сяо помогает поддерживать гармоничные отношения внутри семьи и укреплять уважение к старшим поколениям. Сяо является основой для сильных семейных связей и семейных ценностей, которые в Китае и восточной Азии ценятся высоко.

Время на прочтение
6 мин

Количество просмотров 42K


Ускорение каких-либо процессов невозможно без детального представления их внутреннего устройства. Ускорение интернета невозможно без понимания (и соответствующей настройки) основополагающих протоколов — IP и TCP. Давайте разбираться с особенностями протоколов, влияющих на скорость интернета.

IP (Internet Protocol) обеспечивает маршрутизацию между хостами и адресацию. TCP (Transmission Control Protocol) обеспечивает абстракцию, в которой сеть надежно работает по ненадежному по своей сути каналу.

Протоколы TCP/IP были предложены Винтом Серфом и Бобом Каном в статье «Протокол связи для сети на основе пакетов», опубликованной в 1974 году. Исходное предложение, зарегистрированное как RFC 675, было несколько раз отредактировано и в 1981 году 4-я версия спецификации TCP/IP была опубликована как два разных RFC:

  • RFC 791 – Internet Protocol
  • RFC 793 – Transmission Control Protocol

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

TCP обеспечивает нужную абстракцию сетевых соединений, чтобы приложениям не пришлось решать различные связанные с этим задачи, такие как: повторная передача потерянных данных, доставка данных в определенном порядке, целостность данных и тому подобное. Когда вы работаете с потоком TCP, вы знаете, что отправленные байты будут идентичны полученным, и что они придут в одинаковом порядке. Можно сказать, что TCP больше «заточен» на корректность доставки данных, а не на скорость. Этот факт создает ряд проблем, когда дело доходит до оптимизации производительности сайтов.

Стандарт НТТР не требует использования именно TCP как транспортного протокола. Если мы захотим, мы можем передавать НТТР через датаграммный сокет (UDP – User Datagram Protocol) или через любой другой. Но на практике весь НТТР трафик передается через TCP, благодаря удобству последнего.

Поэтому необходимо понимать некоторые внутренние механизмы TCP, чтобы оптимизировать сайты. Скорее всего, вы не будете работать с сокетами TCP напрямую в своем приложении, но некоторые ваши решения в части проектирования приложения будут диктовать производительность TCP, через который будет работать ваше приложение.

Тройное рукопожатие

Все TCP-соединения начинаются с тройного рукопожатия (рис. 1). До того как клиент и сервер могут обменяться любыми данными приложения, они должны «договориться» о начальном числе последовательности пакетов, а также о ряде других переменных, связанных с этим соединением. Числа последовательностей выбираются случайно на обоих сторонах ради безопасности.

SYN

Клиент выбирает случайное число Х и отправляет SYN-пакет, который может также содержать дополнительные флаги TCP и значения опций.

SYN ACK

Сервер выбирает свое собственное случайное число Y, прибавляет 1 к значению Х, добавляет свои флаги и опции и отправляет ответ.

АСК

Клиент прибавляет 1 к значениям Х и Y и завершает хэндшейк, отправляя АСК-пакет.


Рис. 1. Тройное рукопожатие.

После того как хэндшейк совершен, может быть начат обмен данными. Клиент может отправить пакет данных сразу после АСК-пакета, сервер должен дождаться АСК-пакета, чтобы начать отправлять данные. Этот процесс происходит при каждом TCP-соединении и представляет серьезную сложность плане производительности сайтов. Ведь каждое новое соединение означает некоторую сетевую задержку.

Например, если клиент в Нью-Йорке, сервер – в Лондоне, и мы создаем новое TCP-соединение, это займет 56 миллисекунд. 28 миллисекунд, чтобы пакет прошел в одном направлении и столько же, чтобы вернуться в Нью-Йорк. Ширина канала не играет здесь никакой роли. Создание TCP-соединений оказывается «дорогим удовольствием», поэтому повторное использование соединений является важной возможностью оптимизации любых приложений, работающих по TCP.

TCP Fast Open (TFO)

Загрузка страницы может означать скачивание сотен ее составляющих с разных хостов. Это может потребовать создания браузером десятков новых TCP-соединений, каждое из которых будет давать задержку из-за хэндшейка. Стоит ли говорить, что это может ухудшить скорость загрузки такой страницы, особенно для мобильных пользователей.

TCP Fast Open (TFO) – это механизм, который позволяет снизить задержку за счет того, что позволяет отправку данных внутри SYN-пакета. Однако и у него есть свои ограничения: в частности, на максимальный размер данных внутри SYN-пакета. Кроме того, только некоторые типы HTTP-запросов могут использовать TFO, и это работает только для повторных соединений, поскольку использует cookie-файл.

Использование TFO требует явной поддержки этого механизма на клиенте, сервере и в приложении. Это работает на сервере с ядром Linux версии 3.7 и выше и с совместимым клиентом (Linux, iOS9 и выше, OSX 10.11 и выше), а также потребуется включить соответствующие флаги сокетов внутри приложения.

Специалисты компании Google определили, что TFO может снизить сетевую задержку при HTTP-запросах на 15%, ускорить загрузку страниц на 10% в среднем и в отдельных случаях – до 40%.

Контроль за перегрузкой

В начале 1984 года Джон Нейгл описал состояние сети, названное им как «коллапс перегрузки», которое может сформироваться в любой сети, где ширина каналов между узлами неодинакова.

Когда круговая задержка (время прохождения пакетов «туда-обратно») превосходит максимальный интервал повторной передачи, хосты начинают отправлять копии одних и тех же датаграмм в сеть. Это приведет к тому, что буферы будут забиты и пакеты будут теряться. В итоге хосты будут слать пакеты по нескольку раз, и спустя несколько попыток пакеты будут достигать цели. Это называется «коллапсом перегрузки».

Нейгл показал, что коллапс перегрузки не представлял в то время проблемы для ARPANETN, поскольку у узлов была одинаковая ширина каналов, а у бэкбона (высокоскоростной магистрали) была избыточная пропускная способность. Однако это уже давно не так в современном интернете. Еще в 1986 году, когда число узлов в сети превысило 5000, произошла серия коллапсов перегрузки. В некоторых случаях это привело к тому, что скорость работы сети падала в 1000 раз, что означало фактическую неработоспособность.

Чтобы справиться с этой проблемой, в TCP были применены несколько механизмов: контроль потока, контроль перегрузки, предотвращение перегрузки. Они определяли скорость, с которой данные могут передаваться в обоих направлениях.

Контроль потока

Контроль потока предотвращает отправку слишком большого количества данных получателю, которые он не сможет обработать. Чтобы этого не происходило, каждая сторона TCP-соединения сообщает размер доступного места в буфере для поступающих данных. Этот параметр — «окно приема» (receive window – rwnd).

Когда устанавливается соединение, обе стороны задают свои значения rwn на основании своих системных значений по умолчанию. Открытие типичной страницы в интернете будет означать отправку большого количества данных от сервера клиенту, таким образом, окно приема клиента будет главным ограничителем. Однако, если клиент отправляет много данных на сервер, например, загружая туда видео, тогда ограничивающим фактором будет окно приема сервера.

Если по каким-то причинам одна сторона не может справиться с поступающим потоком данных, она должна сообщить уменьшенное значение своего окна приема. Если окно приема достигает значения 0, это служит сигналом отправителю, что не нужно более отправлять данные, пока буфер получателя не будет очищен на уровне приложения. Эта последовательность повторяется постоянно в каждом TCP-соединении: каждый АСК-пакет несет в себе свежее значение rwnd для обеих сторон, позволяя им динамически корректировать скорость потока данных в соответствии с возможностями получателя и отправителя.


Рис. 2. Передача значения окна приема.

Масштабирование окна (RFC 1323)

Исходная спецификация TCP ограничивала 16-ю битами размер передаваемого значения окна приема. Это серьезно ограничило его сверху, поскольку окно приема не могло быть более 2^16 или 65 535 байт. Оказалось, что это зачастую недостаточно для оптимальной производительности, особенно в сетях с большим «произведением ширины канала на задержку» (BDP – bandwidth-delay product).

Чтобы справиться с этой проблемой в RFC 1323 была введена опция масштабирования TCP-окна, которая позволяла увеличить размер окна приема с 65 535 байт до 1 гигабайта. Параметр масштабирования окна передается при тройном рукопожатии и представляет количество бит для сдвига влево 16-битного размера окна приема в следующих АСК-пакетах.

Сегодня масштабирование окна приема включено по умолчанию на всех основных платформах. Однако промежуточные узлы, роутеры и сетевые экраны могут переписать или даже удалить этот параметр. Если ваше соединение не может полностью использовать весь канал, нужно начать с проверки значений окон приема. На платформе Linux опцию масштабирования окна можно проверить и установить так:

$> sysctl net.ipv4.tcp_window_scaling 
$> sysctl -w net.ipv4.tcp_window_scaling=1

В следующей части мы разберемся, что такое TCP Slow Start, как оптимизировать скорость передачи данных и увеличить начальное окно, а также соберем все рекомендации по оптимизации TCP/IP стека воедино.

TCP Sequence (seq) and Acknowledgement (ack) numbers help enable ordered reliable data transfer for TCP streams.  The seq number is sent by the TCP client, indicating how much data has been sent for the session (also known as the byte-order number). The ack number is sent by the TCP server, indicating that is has received cumulated data and is ready for the next segment.

The TCP seq and ack numbers are coordinated with one another and are key values during the TCP handshake, TCP close, and, of course, while data is transferred between the client and server.

[By default, Wireshark converts all sequence and acknowledgement numbers into relative numbers. This means that all SEQ and ACK numbers always start at 0 for the first packet seen in each conversation.]

The picture below shows a real example of TCP sequence and acknowledgment numbers in a TCP flow diagram. The key variable is the TCP segment length for each TCP segment sent in the session.

The client sends the first segment with seq=1 and the length of the segment is 669 bytes.  The server responds with an ack=670 which tells the client that the next expected segment will have a sequence number is 670.

The next segment the client sends has seq=670 and the len is now 1460 bytes.  In turn,  the server responds with ack=2130 (670 + 1460).  This cycle continues until the end of the TCP session.

Again, note that the length value is from the TCP segment length, not the Layer 2 frame length nor the IP packet length.

Seq and Ack in Wireshark

Client sends seq=1 and tcp segment length=669

Server responds with ack=670

Client sends segment with seq=670 and length=1460

Server responds with ack=2130

This is just a simple example to get the basics of TCP sequence and acknowledgement numbers.

На чтение 4 мин Опубликовано Обновлено

Ack wifi — это технология, которая используется в беспроводных сетях для обеспечения надежной и стабильной передачи данных. Сокращение «ack» означает «acknowledgment», что в переводе с английского означает «подтверждение». В контексте беспроводных сетей, «ack wifi» используется для означения процедуры подтверждения приема данных.

Когда одно устройство отправляет данные через беспроводную сеть к другому устройству, происходит передача информации в пакетном виде. Каждый пакет имеет свой уникальный номер и после передачи, получатель должен отправить обратно подтверждение, что пакет был успешно получен. Это подтверждение называется «ack frame» или «acknowledgment frame». С помощью этой процедуры, передающее устройство знает, что пакет успешно доставлен и может продолжить передачу следующего пакета.

Преимущества использования технологии ack wifi:

  • Надежность передачи данных: Процедура подтверждения гарантирует, что данные будут доставлены без ошибок и потерь. Если пакет не был успешно получен, передающее устройство повторно отправит его.
  • Эффективное использование ресурсов: Процедура подтверждения позволяет избежать повторной передачи уже доставленных пакетов, что экономит время и пропускную способность беспроводной сети.
  • Улучшенная производительность: Использование ack wifi способствует увеличению скорости передачи данных и снижению задержек, что особенно важно при передаче видео, потокового аудио и других приложений с высокими требованиями к скорости передачи данных.

Ack wifi — понятие и объяснение

Принцип работы Ack wifi достаточно прост: после получения пакета данных, получатель отправляет специальный пакет, содержащий ACK, обратно отправителю. Если отправитель не получает ACK в течение определенного времени, он предполагает, что пакет не был доставлен и повторно отправляет его.

Механизм Ack wifi значительно улучшает надежность и производительность Wi-Fi сетей. Он позволяет обнаруживать и исправлять ошибки при передаче данных, а также регулировать скорость передачи в зависимости от качества сигнала и загруженности сети.

Преимущества использования Ack wifi:

  1. Повышение надежности передачи данных: механизм Ack позволяет обнаруживать и исправлять ошибки при передаче данных, что значительно улучшает надежность сети.
  2. Улучшение производительности: благодаря Ack wifi, передатчик может регулировать скорость передачи данных в зависимости от качества сигнала, минимизируя потери данных и повторные передачи.
  3. Оптимизация использования пропускной способности: механизм Ack позволяет избежать «затопления» сети излишними пакетами подтверждения, освобождая пропускную способность для передачи других данных.
  4. Улучшение качества обслуживания: механизм Ack позволяет доставлять данные более эффективно и надежно, что в итоге приводит к повышению качества обслуживания пользователей.

В целом, Ack wifi является важной частью текущих беспроводных технологий, обеспечивая стабильную и надежную передачу данных в Wi-Fi сетях. Этот механизм помогает улучшить производительность, снизить потери данных и обеспечить более эффективное использование пропускной способности.

Преимущества и особенности технологии Ack wifi

Одним из ключевых преимуществ технологии Ack wifi является повышение эффективности передачи данных. Благодаря алгоритму подтверждения принятых пакетов, возможные потери данных в процессе передачи становятся очень редкими. Это позволяет увеличить скорость передачи и снизить время ожидания при загрузке файлов или просмотре онлайн-видео.

Еще одной особенностью Ack wifi является возможность работы в условиях сильной интерференции сигнала Wi-Fi. Благодаря использованию алгоритма подтверждения, технология Ack wifi способна обнаруживать и исправлять ошибки в передаваемых данных даже при наличии помех или сниженной мощности сигнала. Это значительно повышает надежность соединения и устраняет проблемы связанные с плохим качеством сигнала.

Технология Ack wifi также обеспечивает более устойчивую работу в условиях многопользовательской среды. Будучи разработанной с учетом активного использования Wi-Fi, Ack wifi позволяет эффективно управлять передачей данных между устройствами, что снижает вероятность конфликтов и повышает производительность всей сети.

В итоге, технология Ack wifi является передовым решением для обеспечения качественной и стабильной работы Wi-Fi сети. Она повышает скорость передачи данных, увеличивает надежность и устойчивость сигнала даже при наличии помех, а также оптимизирует работу в многопользовательской среде. Ack wifi – это технология, которая делает Wi-Fi еще более удобным и доступным.

PSH and ACK are tcp flags in the TCP protocol. These TCP flags are ways for TCP to communicate between clients and servers.

PSH (push) flag indicates that the incoming data should be passed on directly to the application instead of getting buffered.

ACK (acknowledgment) flag is used to confirm that the data packets have been received, also used to confirm the initiation request and tear down requests. Once a TCP session has been created, every packet contains an ACK flag.

  • PSH Flag in TCP
  • ACK Flag in TCP
  • Capture PSH ACK Packets with Tcpdump

PSH Flag in TCP

The Push flag usually means that data has been sent whilst overriding an in-built TCP efficiency delay, such as Nagle’s Algorithm or Delayed Acknowledgements.

These delays make TCP networking more efficient at the cost of some latency (usually around a few tens of milliseconds). A latency-sensitive application does not want to wait around for TCP’s efficiency delays so the application will usually disable them, causing data to be sent as quickly as possible with a Push flag set.

The PSH flag (push) is used to tell the client/server to go ahead and send what data it has to the receiving application even if its buffer hasn’t filled up. This is usually sent at the end of transmission so the recipient system won’t sit around waiting for data to fill the buffer when it isn’t coming.

ACK Flag in TCP

ACK (Acknowledgment field is significant). This indicates that the Acknowledgment field contains the next byte expected on the connection. The ACK flag is always set, except for the first segment of a TCP connection establishment.

Capture PSH ACK Packets with Tcpdump

We can use tcpdump to filter packets with flags.

Here are the numbers which match with the corresponding TCP flags.

URG ACK PSH RST SYN FIN
32 16 8 4 2 1

The following command is to filter Psh Ack flags. PSH + ACK=8+16=24

  • tcpdump -i any tcp[tcpflags]==24

This is the output. [P.] means psh flag and ack flag.

11:53:56.748105 IP 40.100.29.194.https > 10.79.98.55.62947: Flags [P.], seq 5758:5814, ack 6948, win 2052, length 56
11:53:56.748287 IP 40.100.29.194.https > 10.79.98.55.62947: Flags [P.], seq 5814:6273, ack 6948, win 2052, length 459
11:53:56.748448 IP 40.100.29.194.https > 10.79.98.55.62947: Flags [P.], seq 6683:6875, ack 6948, win 2052, length 192

Tcpdump: Filter Packets with Tcp Flags

20 Advanced Tcpdump Examples in Linux

Related:

  • 20 Advanced Tcpdump Examples On Linux
  • Understanding TCP Flags
  • 10 Useful tcpdump command examples

Linux Troubleshooting Guide:

  • Troubleshooting Disk Usage In Linux
  • Troubleshooting High Load Average on Linux
  • Troubleshoot Network Slow Problems In Linux
  • Troubleshoot high iowait issue on Linux

Linux Learning Guide:

  • What Is Linux?
  • What Is Bash in Linux?
  • Linux Commands for Linux Beginners (Cheat Sheet)
  • Basic Linux Commands: Linux User Management
  • Basic Networking Commands For Ubuntu Linux Interview
  • Linux Command: Check Network Status on Linux
  • Linux Cat Command with 15 Useful Examples

Другие наши интересноые статьи:

  • Что такое apsd способность в роутере
  • Что такое access point в роутере
  • Что такое apn при настройке роутера
  • Что такое abcd на роутере
  • Что с роутером если горит одна лампа

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии