Область техники
Настоящая заявка относится к области коммуникационных технологий и, в частности, к методу и устройству пересылки пакетов для гетерогенной сети.
Уровень техники
Сеть на стороне сетевого сервера очень стабильна и поддерживает запросы пользователей с высокой степенью многопоточности и высокой пропускной способностью. Беспроводная мобильная сеть имеет присущие ей характеристики передачи данных, такие как нарушение пересылки пакетов, неспособность точно и своевременно определить потерю пакетов и нехватка ресурсов в загруженное время. При возникновении вышеуказанных ситуаций скорость доступа пользователя к Интернету быстро меняется, что влияет на качество доступа к Интернету мобильных пользователей.
Технология прокси-серверов в смежных областях техники в основном основана на технологии прямого прокси-сервера и технологии обратного прокси-сервера. Соединения по протоколу управления передачей данных (Transmission Control Protocol, TCP) соответственно устанавливаются между прокси-службой и двумя концами связи, то есть, прокси-служба должна установить TCP-соединение как с клиентом доступа, так и с сервером, а затем интерактивно пересылать данные на уровне сеанса. Технология прямого прокси-сервера является непрозрачной для клиента, а технология обратного прокси-сервера является непрозрачной для сервера.
Сущность изобретения
Техническая проблема, решаемая вариантами осуществления по настоящей заявке, заключается в реализации прозрачной прокси-службы между клиентом и сервером, и решении проблемы влияния на производительность пересылки из-за нескольких копий данных между пользовательским режимом и режимом ядра в прокси-службе. Варианты осуществления по настоящей заявке обеспечивают способ и устройство пересылки пакетов для гетерогенной сети.
Способ пересылки пакетов для гетерогенной сети в соответствии с вариантами осуществления по настоящей заявке включает следующее: принимается запрос на установление соединения, отправленный клиентом; запрос на установление соединения направляется на сервер, чтобы установить соединение между клиентом и сервером; пакет взаимодействия пересылается между клиентом и сервером на основе стека протоколов пользовательского режима.
Согласно способу пересылки пакетов для гетерогенной сети в вариантах осуществления по настоящей заявке, посредством выполнения пересылки пакетов на транспортном уровне можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно способу пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки посредника, а также поддерживается шифрование по протоколу безопасности на транспортном уровне (Transport Layer Security, TLS) и т.д., что повышает безопасность и надежность пересылки пакетов.
Согласно некоторым вариантам осуществления по настоящей заявке, операция установления соединения между клиентом и сервером включает в себя следующее: запрос на установление соединения, отправленный клиентом, принимается и пересылается на сервер, после чего сервер отправляет первое ответное сообщение клиенту в ответ на запрос на установление соединения; первое ответное сообщение принимается и передается клиенту, после чего клиент отправляет второе ответное сообщение на сервер в ответ на первое ответное сообщение; и второе ответное сообщение принимается и передается на сервер, чтобы установить соединение между клиентом и сервером.
В некоторых вариантах осуществления по настоящей заявке операция принятия и пересылки серверу запроса на установление соединения, отправленного клиентом, включает в себя следующее: запрос на установление соединения, отправленный клиентом, принимается в соответствии с заданным маршрутом по умолчанию; на основе запроса на установление соединения создается сессия, и запрос на установление соединения пересылается на сервер после обновления адреса запроса на установление соединения.
Согласно некоторым вариантам осуществления по настоящей заявке, содержимое сообщения сеанса включает: серийный номер соединения и размер окна.
В некоторых вариантах осуществления по настоящей заявке операция пересылки пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима включает следующее: принимается пакет запроса, отправленный клиентом, и первый пакет ответа отправляется клиенту в ответ на пакет запроса; пакет запроса добавляется в первую буферную очередь и направляется на сервер, после чего сервер отправляет пакет второго ответа в ответ на пакет запроса; принимается пакет второго ответа, и пакет подтверждения (АСК) отправляется на сервер на основе пакета второго ответа; пакет второго ответа добавляется во вторую буферную очередь и отправляется клиенту.
Согласно некоторым вариантам осуществления по настоящей заявке, способ дополнительно включает следующее: в случае, если емкость данных пакета второго ответа во второй буферной очереди больше порогового значения, размер окна пакета запроса, отправляемого на сервер, уменьшается, чтобы снизить скорость отправки пакетов сервером.
В некоторых вариантах осуществления по настоящей заявке способ дополнительно включает следующее: в случае, если клиент не получает пакет второго ответа в течение заранее определенного периода времени, пакет второго ответа снова добавляется во вторую буферную очередь и отправляется клиенту.
Согласно некоторым вариантам осуществления по настоящей заявке, способ дополнительно включает следующее: в случае, если в процессе взаимодействия пакетов будет обнаружена потеря пакетов, размер окна пакета взаимодействия корректируется до заданного порогового значения.
Варианты осуществления по настоящей заявке также обеспечивают устройство пересылки пакетов для гетерогенной сети, которое включает модуль пересылки.
Модуль пересылки настроен на пересылку запроса на установление соединения и ответного сообщения между клиентом и сервером, установление соединения между клиентом и сервером и пересылку пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима.
Согласно устройству пересылки пакетов для гетерогенной сети в вариантах осуществления по настоящей заявке, посредством выполнения пересылки пакетов на транспортном уровне модулем пересылки можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно устройству пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки посредника, а также поддерживается шифрование TLS и т.д., что повышает безопасность и надежность пересылки пакетов.
Варианты осуществления по настоящей заявке также предоставляют машиночитаемый носитель информации, в котором хранится программа для осуществления передачи информации. Программа, выполняемая процессором, осуществляет операции вышеописанного способа пересылки пакетов для гетерогенной сети.
Согласно машиночитаемому носителю в вариантах осуществления по настоящей заявки, посредством выполнения способа пересылки пакетов для гетерогенной сети, пересылка пакетов может выполняться на транспортном уровне прокси-узла, и можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно способу пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки через посредника, а также поддерживается шифрование TLS и т.д., что повышает безопасность и надежность пересылки пакетов.
Варианты осуществления по настоящей заявке также обеспечивают устройство прокси-узла, которое включает: память, процессор и компьютерную программу, которая хранится в памяти и способна работать на процессоре. Компьютерная программа, выполняемая процессором, осуществляет операции вышеописанного способа пересылки пакетов для гетерогенной сети.
Согласно устройству прокси-узла в вариантах осуществления по настоящей заявки, пересылка пакетов может выполняться на транспортном уровне прокси-узла, что позволяет избежать проблемы «узкого места» в производительности прокси-службы, вызываемой несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки.
Краткое описание чертежей
На фиг. 1 представлена схема прокси-службы в смежных областях техники.
На фиг. 2 представлена схема устройства пересылки пакетов для гетерогенной сети в соответствии с некоторыми вариантами осуществления по настоящей заявке.
На фиг. 3 представлена схема устройства пересылки пакетов для гетерогенной сети в соответствии с некоторыми вариантами осуществления по настоящей заявке.
На фиг. 4 представлена блок-схема устройства пересылки пакетов для гетерогенной сети в соответствии с некоторыми вариантами осуществления по настоящей заявке.
На фиг. 5 представлена блок-схема установления соединения между клиентом и сервером в соответствии с некоторыми вариантами осуществления по настоящей заявке.
На фиг. 6 представлена блок-схема способа взаимодействия пакетов для гетерогенной сети в соответствии с некоторыми вариантами осуществления по настоящей заявке.
Подробное описание вариантов осуществления
Чтобы более подробно описать технические средства, используемые в вариантах осуществления по настоящей заявке для достижения заданной цели, а также их эффективность, настоящая заявка подробно описана ниже в сочетании с прилагаемыми чертежами и примерными вариантами осуществления.
Как показано на фиг. 1, в смежных областях техники прокси-служба между клиентом А и сервером В представляет собой псевдопрозрачную технологию, например, НАРrоху. Процесс работы прокси-службы подробно описан ниже.
Клиент А инициирует запрос на установление соединения с сервером В, а прокси-сервер Р перехватывает запрос на установление соединения и маскируется под сервер В для завершения трехэтапного квитирования с клиентом А.
Когда клиент А инициирует запрос службы, прокси-сервер Р маскируется под клиента А, чтобы установить соединение с сервером В, и инициирует запрос.
Сервер В отправляет ответное сообщение на прокси-сервер Р, процесс прокси-сервера получает ответное сообщение и ищет соединение клиента А; а прокси-сервер Р находит соответствующее соединение и маскируется под сервер В, чтобы отправить ответное сообщение клиенту А.
В приведенном выше техническом решении прокси-сервер Р прозрачен как для клиента А, так и для сервера В, но ему все равно необходимо установить соединение с клиентом А и сервером В соответственно, и существует риск атаки через посредника, поэтому поддержка таких каналов шифрования, как TLS и HTTP Security (HTTPS), невозможна. Кроме того, в процессе пересылки потоки данных должны приниматься на прикладном уровне и отправляться с прикладного уровня на узел назначения, при этом создается несколько копий между режимом ядра и пользовательским режимом, вследствие чего возникает «узкое место» в производительности.
Как показано на фиг. 2 и фиг. 4, способ пересылки пакетов для гетерогенной сети, согласно некоторым вариантам осуществления по настоящей заявке, включает описанные ниже операции S101 и S102.
На этапе S101 принимается запрос на установление соединения, отправленный клиентом, и запрос на установление соединения отправляется на сервер, чтобы установить соединение между клиентом и сервером.
На этапе S102 пакет взаимодействия пересылается между клиентом и сервером на основе стека протоколов пользовательского режима.
Следует отметить, что по настоящей заявке, как показано на фиг.2, между клиентом и сервером установлен прокси-узел. Прокси-узел настроен на пересылку пакета взаимодействия между клиентом и сервером. Кроме того, прокси-узел в вариантах осуществления по настоящей заявке выполняет пересылку пакетов через транспортный уровень. Таким образом, прокси-узел может реализовать прозрачную прокси-службу и пересылку пакетов на основе стека протоколов пользовательского режима.
Согласно способу пересылки пакетов для гетерогенной сети в вариантах осуществления по настоящей заявке, посредством выполнения пересылки пакетов на транспортном уровне можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно способу пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки через посредника, а также поддерживается шифрование TLS и т.д., что повышает безопасность и надежность пересылки пакетов.
Как показано на фиг. 5, согласно некоторым вариантам осуществления по настоящей заявке, операция пересылки запроса на установление соединения и ответного сообщения между клиентом и сервером включает указанные ниже операции S201-S203.
На этапе S201 запрос на установление соединения, отправленный клиентом, принимается и передается на сервер, после чего сервер отправляет первое ответное сообщение клиенту в ответ на запрос на установление соединения.
На этапе S202 первое ответное сообщение принимается и передается клиенту, после чего клиент отправляет второе ответное сообщение на сервер в ответ на первое ответное сообщение.
На этапе S203 второе ответное сообщение принимается и передается на сервер, чтобы установить соединение между клиентом и сервером.
Следует отметить, что «запрос на установление соединения» в данном случае может быть SYN-запросом, а «первое ответное сообщение» и «второе ответное сообщение» могут быть пакетами АСК. Например, клиент может отправить SYN-запрос на сервер через прокси-узел, после получения SYN-запроса сервер отправляет пакет АСК клиенту через прокси-узел, и после получения пакета АСК клиент отправляет пакет АСК серверу через прокси-узел, чтобы завершить трехэтапное квитирование между клиентом и сервером для установления ТСР-соединения между клиентом и сервером.
В некоторых вариантах осуществления по настоящей заявке операция приема и передачи серверу запроса на установление соединения, отправленного клиентом, включает указанные ниже операции.
Запрос на установление соединения, отправленный клиентом, принимается в соответствии с заданным маршрутом по умолчанию.
На основе запроса на установление соединения создается сессия, и запрос на установление соединения пересылается на сервер после обновления адреса запроса на установление соединения.
Согласно некоторым вариантам осуществления по настоящей заявке, содержимое сообщения сеанса включает: серийный номер соединения и размер окна.
Следует отметить, что между транспортным уровнем и сетевым уровнем прокси-узла установлен модуль TCP Optimizer (ТСРО), который настроен на двунаправленную пересылку TCP-пакета. Например, если клиент UE желает установить связь с WEB-сервером SP, клиент UE сначала инициирует SYN-запрос с целевым портом 80 на WEB-сервер и настраивает маршрут по умолчанию, чтобы направить SYN-запрос на промежуточный прокси-узел. Прокси-узел настраивает правило пересылки TCP-пакета с целевым портом 80 в стеке протокола, а IP-уровень отправляет пакет для обработки в модуль ТСРО. Модуль ТСРО создает сессию, записывает порядковый номер нового TCP-соединения, размер окна и другую информацию, обновляет МАС-адрес в соответствии с адресом маршрутизации, а затем отправляет пакет через сетевой адаптер. Например, если клиент отправляет пакет на сервер, модуль ТСРО обновляет МАС-адрес клиента до МАС-адреса прокси-узла в соответствии с адресом маршрутизации и отправляет пакет на сервер через сетевой адаптер. IP-адрес источника и порт пакета установления соединения, получаемые сервером, происходят от клиента UE, чтобы отправить пакет SYN+ACK клиенту UE.
Как показано на фиг. 3 и фиг. 6, в некоторых вариантах осуществления по настоящей заявке операция пересылки пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима включает указанные ниже операции S401 S404.
На этапе S401 принимается пакет запроса, отправленный клиентом, и в ответ на пакет запроса клиенту отправляется первый пакет ответа.
На этапе S402 пакет запроса добавляется в первую очередь и направляется на сервер, после чего сервер отправляет пакет второго ответа в ответ на пакет запроса.
На этапе S403 принимается пакет второго ответа, и на сервер отправляется пакет подтверждения на основе пакета второго ответа.
На этапе S404 пакет второго ответа добавляется во вторую буферную очередь и отправляется клиенту.
Следует отметить, что, как показано на фиг.3, после завершения трехэтапного квитирования для установления соединения между клиентом и сервером, клиент может отправить пакет запроса на сервер. Заданный маршрут по умолчанию направляет пакет запроса на прокси-узел. Модуль ТСРО прокси-узла получает пакет запроса, добавляет пакет запроса в буферную очередь А для пересылки пакета запроса на сервер и отправляет пакет АСК клиенту. После получения пакета второго ответа от сервера, модуль ТСРО добавляет пакет второго ответа в очередь В для пересылки пакета второго ответа клиенту и отправляет пакет АСК на сервер для подтверждения получения данных.
Согласно некоторым вариантам осуществления по настоящей заявке, способ дополнительно включает следующее: в случае, если емкость данных пакета второго ответа во второй буферной очереди больше порогового значения, размер окна пакета запроса, отправляемого на сервер, уменьшается, чтобы снизить скорость отправки пакетов сервером. Как показано на фиг. 3, если сеть на стороне клиента создает слишком большое количество нераспределенных данных в буферной очереди В, размер окна объявления, отправленного на сервер, может быть уменьшен, чтобы проинформировать сервер об уменьшении скорости передачи данных. Таким образом, реализуется оптимизация в процессе взаимодействия пакетов и эффективно решаются проблемы перегрузок, потери пакетов и т.д.
В некоторых вариантах осуществления по настоящей заявке способ дополнительно включает следующее: в случае, если клиент не получает пакет второго ответа в течение заранее определенного периода времени, пакет второго ответа снова добавляется во вторую буферную очередь и отправляется клиенту. Как показано на фиг. 3, данные в буферной очереди В выводятся из очереди по одному, и пакет данных пересылается клиенту. При получении пакета АСК прокси-узел может немедленно удалить соответствующий пакет из очереди. Может быть установлен таймер повторной передачи. Если клиент не получает пакет данных в течение заранее определенного периода времени, клиент может повторно передать пакет ответа. Таким образом, эффективно предотвращается проблема потери пакетов.
Согласно некоторым вариантам осуществления по настоящей заявке, способ дополнительно включает следующее: в случае, если в процессе взаимодействия пакетов будет обнаружена потеря пакетов, размер окна пакета взаимодействия корректируется до заданного порогового значения. Следует отметить, что «заданный порог» здесь может быть «порогом медленного старта». Порог медленного старта можно понимать как максимальное значение медленного старта в процессе отправки пакета. Посредством настройки размера окна, равного порогу медленного старта, можно пропустить этап медленного старта и перейти непосредственно к этапу предотвращения перегрузки, и, таким образом, процесс взаимодействия пакетов между клиентом и сервером оптимизируется и ускоряется.
Как показано на фиг. 2 и фиг. 3, устройство пересылки пакетов для гетерогенной сети, согласно некоторым вариантам осуществления по настоящей заявке, включает модуль пересылки. Модулем пересылки может быть модуль ТСРО, настроенный на пересылку запроса на установление соединения и ответного сообщения между клиентом и сервером, установление соединения между клиентом и сервером и пересылку пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима.
Согласно устройству пересылки пакетов для гетерогенной сети в вариантах осуществления по настоящей заявке, посредством выполнения пересылки пакетов на транспортном уровне модулем пересылки можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно устройству пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки посредника, а также поддерживается шифрование TLS и т.д., что повышает безопасность и надежность пересылки пакетов.
В машиночитаемом носителе информации, согласно вариантам осуществления по настоящей заявке, хранится программа для осуществления передачи информации. Программа, выполняемая процессором, осуществляет операции вышеописанного способа пересылки пакетов для гетерогенной сети.
Согласно машиночитаемому носителю в вариантах осуществления по настоящей заявки, посредством выполнения способа пересылки пакетов для гетерогенной сети, пересылка пакетов может выполняться на транспортном уровне прокси-узла, и можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно способу пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки через посредника, а также поддерживается шифрование TLS и т.д., что повышает безопасность и надежность пересылки пакетов.
Устройство прокси-узла, в соответствии с вариантами осуществления по настоящей заявке, включает: память, процессор и компьютерную программу, которая хранится в памяти и способна работать на процессоре. Компьютерная программа, выполняемая процессором, осуществляет операции вышеописанного способа пересылки пакетов для гетерогенной сети.
Согласно устройству прокси-узла в вариантах осуществления по настоящей заявке, пересылка пакетов может выполняться на транспортном уровне устройства прокси-узла, и можно избежать проблемы «узкого места» в производительности прокси-службы, вызванной несколькими копиями пакета в пользовательском режиме и режиме ядра в процессе пересылки, тем самым реализуя пересылку пакетов с нулевой копией на основе стека протоколов пользовательского режима, и эффективно улучшая производительность системы. Кроме того, согласно способу пересылки пакетов по настоящей заявке, нет необходимости в создании фиктивного посредника и отсутствует риск атаки через посредника, а также поддерживается шифрование TLS и т.д., что повышает безопасность и надежность пересылки пакетов.
Следует отметить, что компания Intel запускает проект Data Plane Development Kit (DPDK), который поддерживает отправку и прием сетевых пакетов пользовательского режима. В настоящее время система отправки и приема DPDK используется в основном для пересылки пакетов между сетевыми устройствами. В вариантах осуществления по настоящей заявке DPDK используется в качестве отправляющей и принимающей структуры прозрачного прокси-сервера, а стек протоколов TCP/IP с открытым исходным кодом Berkeley Software Distribution (BSD) используется в качестве стека протоколов пользовательского режима. Также могут использоваться другие стеки протоколов пользовательского режима.
Принимая в качестве примера, что пользователь мобильного телефона получает доступ к веб-страницам через браузер, ниже представлены способ и устройство пересылки пакетов для гетерогенной сети в соответствии с вариантами осуществления по настоящей заявке. Как показано на фиг. 2 и фиг. 3, прокси-узел встроен между стороной пользователя (UE) и поставщиком услуг (SP), прозрачная пересылка пакетов реализована на основе стека протоколов DPDK+ пользовательский режим TCP/IP, а стек протоколов TCP оптимизирован и ускорен в соответствии с характеристиками передачи данных в беспроводных сетях, чтобы улучшить доступ в Интернет для мобильных пользователей. Как показано на фиг. 2 и фиг. 3, конкретный процесс описывается следующим образом.
Клиент UE инициирует SYN-запрос с целевым портом 80 на WEB-сервер SP и настраивает маршрут по умолчанию для направления SYN-запроса на промежуточный прокси-узел.
Прокси-узел настраивает правило пересылки TCP-пакета с целевым портом 80 в стеке протокола, а IP-уровень отправляет пакет для обработки модулем ТСРО в модуль ТСРО.
Модуль ТСРО создает сессию, записывает порядковый номер нового TCP-со единения, размер окна и другую информацию, обновляет МАС-адрес в соответствии с адресом маршрутизации, а затем отправляет пакет через сетевой адаптер.
IP-адрес источника и порт пакета установления соединения, получаемые SP, происходят от клиента UE, чтобы отправить пакет SYN+ACK в UE.
Прокси-узел передает пакет от SP в модуль ТСРО, а модуль ТСРО направляет пакеты SYN+ACK в UE.
UE получает пакет SYN+ACK и отправляет пакет АСК, SP получает пакет АСК, и UE завершает трехэтапное квитирование с SP.
Клиент UE отправляет запрос GET в модуль ТСРО.
Модуль ТСРО принимает пакет данных, заносит пакет данных в буферную очередь А, отправляет пакет АСК в UE и пересылает пакет запроса в SP.
Модуль ТСРО получает пакет ответа, отправленный SP, заносит пакет ответа в буферную очередь В и отправляет пакет АСК в SP для подтверждения приема данных. Если сеть на стороне UE создает большое количество нераспределенных данных в очереди В, размер окна объявления, отправляемого в SP, уменьшается, и SP информируется о необходимости снизить скорость передачи данных.
Пакеты данных в буферной очереди В выводятся из очереди по одному и передаются клиенту. Устанавливается таймер повторной передачи, и если таймер истекает, указанный пакет передается повторно, а пакет в очереди удаляется сразу после получения АСК.
UE активно разрывает соединение. ТСРО прозрачно передает пакет квитирования четыре раза и разрывает соединение с SP.
После получения запроса на разрыв соединения от SP, если в очереди В есть нераспределенные сообщения, ТСРО маскируется под UE для разрыва соединения с SP, а затем разрывает соединение с UE после того, как данные в очереди В будут полностью отправлены.
Осуществление пересылки пакетов между клиентом и сервером с помощью вышеуказанного прокси-узла имеет следующие преимущества.
(1) Полностью прозрачный прокси-сервер: как показано на фиг. 2, прокси-узел пересылает пакет на уровне TCP и изменяет физический адрес на уровне IP. Процесс прозрачной передачи трехэтапного квитирования может заменить полный процесс квитирования по сравнению с традиционным прокси-процессом. Модуль ТСРО устанавливается между L3 (сетевой уровень) и L4 (транспортный уровень) стека протоколов TCP/IP пользовательского режима для реализации функции прозрачного прокси. UE инициирует запрос, который по умолчанию направляется на прокси-сервер, при прохождении через модуль ТСРО запрос направляется непосредственно в сеть SP, IP-адреса источника и цели остаются неизменными, а адрес L2 (уровень Ethernet) заполняется на основе фактического маршрута. Пакет, отправленный из SP в UE, пересылается в UE через ТСРО. Прокси-сервер только пересылает TCP-пакет и не выполняет сборку и разборку пакета. Копирование, чтение и запись пакета не задействуются, нет необходимости устанавливать связь между UE и SP, поэтому нет риска атаки через посредника, и также поддерживается шифрование передачи TLS и т.д.
(2) Оптимизация ускорения TCP: модуль ТСРО прозрачного прокси-узла делит ТСР-соединение между UE и SP на два сегмента и гибко управляет размером окна объявления; модуль ТСРО изменяет размер окна объявления в соответствии с длиной буферной очереди для управления скоростью передачи данных со стороны источника. Модуль ТСРО оптимизирует производительность пересылки пакетов TCP посредством буферизации, контроля перегрузки и других механизмов на основе характеристик передачи данных в беспроводной сетевой среде и характеристик поведения мобильных пользователей, тем самым уменьшая снижение скорости доступа в Интернет, вызванное нарушением беспроводной передачи, потерей пакетов и другими проблемами, и улучшая качество доступа в Интернет для мобильных пользователей 2G/3G/4G.
(3) Поддержка разрыва сегментированного соединения: узел, который разрывает связь, активно разрывает связь немедленно, а другая сторона ждет полной отправки данных, прежде чем разрывать соединение.
(4) Двунаправленная буферизация данных: после получения АСК пакет данных удаляется из буферной очереди для осуществления буферизации данных.
(5) Поддержка время ожидания до повторной передачи: пакет данных повторно передается из буферной очереди без необходимости повторной передачи данных от первоначального отправителя.
(6) Гибкий контроль перегрузок: после обнаружения потери пакетов начальный размер окна устанавливается равным значению порога медленного старта, и этап медленного старта пропускается, после чего начинается непосредственно этап предотвращения перегрузки.
(7) Поддержка сортировки пакетов: пакеты, идущие не по порядку, не влияют на пересылку пакетов прокси-узла.
В заключение, согласно схемам прокси-служб, представленным в вариантах осуществления по настоящей заявке, путем встраивания модуля ТСРО, который настроен на двунаправленную пересылку TCP-пакета, в стек протокола TCP/IP пользовательского режима, реализуется полностью прозрачная прокси-служба, добавляется логика оптимизации TCP, и повышается качество доступа к сети клиента. Таким образом, не только устраняется «узкое место» в производительности традиционного прокси-сервера, но и предоставляется открытая система для оптимизации TCP, что обеспечивает устойчивость и надежность родного стека протоколов, а также облегчает реализацию индивидуальных политик для служб.
Очевидно, что специалисты в данной области должны понимать, что вышеуказанные модули и операции вариантов осуществления по настоящей заявке могут быть реализованы вычислительным устройством общего назначения, и они могут быть централизованы в одном вычислительном устройстве или распределены по сети, состоящей из множества вычислительных устройств. Вышеуказанные модули и операции могут быть реализованы программным кодом, который может выполняться вычислительным устройством, причем они могут быть сохранены в запоминающем устройстве и выполняться вычислительным устройством. В некоторых ситуациях представленные или описанные операции могут выполняться в порядке, отличном от описанного здесь; или они могут существовать в виде модулей интегральных схем, соответственно; или несколько модулей и операций из указанных могут быть составлены в единый модуль интегральной схемы для реализации. Поэтому настоящая заявка не ограничивается каким-либо конкретным сочетанием аппаратного и программного обеспечения.
Посредством описания примерных вариантов осуществления можно получить более глубокое и конкретное понимание технических средств, используемых в вариантах осуществления по настоящей заявке для достижения заданной цели и эффективности. Однако сопроводительные чертежи приведены только для справки и примера и не ограничивают настоящую заявку.
Изобретение относится к области коммуникационных технологий. Технический результат заключается в повышении производительности посредством пересылки пакетов на транспортном уровне модулем пересылки. Технический результат достигается за счет пересылки пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима, который включает получение пакета запроса, отправленного клиентом, и отправку клиенту пакета первого ответа в ответ на пакет запроса, добавление пакета запроса в первую буферную очередь и пересылку пакета запроса на сервер, чтобы сервер отправил пакет второго ответа в ответ на пакет запроса, получение пакета второго ответа и отправку на сервер пакета подтверждения на основе пакета второго ответа и добавление пакета второго ответа во вторую буферную очередь и отправку пакета второго ответа клиенту. 3 н. и 6 з.п. ф-лы, 6 ил.
1. Способ пересылки пакетов для гетерогенной сети, включающий:
получение запроса на установление соединения, отправленного клиентом, и пересылку запроса на установление соединения на сервер, чтобы установить соединение между клиентом и сервером; и
пересылку пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима;
причем пересылка пакета взаимодействия между клиентом и сервером на основе стека протоколов пользовательского режима включает:
получение пакета запроса, отправленного клиентом, и отправку клиенту пакета первого ответа в ответ на пакет запроса;
добавление пакета запроса в первую буферную очередь и пересылку пакета запроса на сервер, чтобы сервер отправил пакет второго ответа в ответ на пакет запроса;
получение пакета второго ответа и отправку на сервер пакета подтверждения на основе пакета второго ответа; и
добавление пакета второго ответа во вторую буферную очередь и отправку пакета второго ответа клиенту.
2. Способ пересылки пакетов для гетерогенной сети по п. 1, отличающийся тем, что установление соединения между клиентом и сервером включает:
получение запроса на установление соединения, отправленного клиентом, и пересылку запроса на установление соединения на сервер, чтобы сервер отправил первое ответное сообщение клиенту в ответ на запрос на установление соединения;
получение первого ответного сообщения и пересылку первого ответного сообщения клиенту, чтобы клиент отправил второе ответное сообщение на сервер в ответ на первое ответное сообщение; и
получение второго ответного сообщения и пересылку второго ответного сообщения на сервер, чтобы установить соединение между клиентом и сервером.
3. Способ пересылки пакетов для гетерогенной сети согласно п. 2, отличающийся тем, что прием запроса на установление соединения, отправленного клиентом, и пересылка запроса на установление соединения на сервер включает:
получение запроса на установление соединения, отправленного клиентом, в соответствии с заданным маршрутом по умолчанию; и
создание сессии на основе запроса на установление соединения, и пересылку запроса на установление соединения на сервер после обновления адреса запроса на установление соединения.
4. Способ пересылки пакетов для гетерогенной сети согласно п. 3, отличающийся тем, что содержимое сообщения сессии включает: серийный номер соединения и размер окна.
5. Способ пересылки пакетов для гетерогенной сети согласно п. 1, дополнительно включающий:
в случае если емкость данных пакета второго ответа во второй буферной очереди больше порогового значения, уменьшают размер окна пакета запроса, отправляемого на сервер, чтобы снизить скорость отправки пакетов сервером.
6. Способ пересылки пакетов для гетерогенной сети согласно п. 1, дополнительно включающий:
в случае если клиент не получает пакет второго ответа в течение заранее определенного периода времени, снова добавляют пакет второго ответа во вторую буферную очередь и отправляют пакет второго ответа клиенту.
7. Способ пересылки пакетов для гетерогенной сети согласно п. 1, дополнительно включающий:
в случае если в процессе взаимодействия пакетов обнаруживают потерю пакетов, регулируют размер окна пакета взаимодействия до заданного порогового значения.
8. Машиночитаемый носитель, на котором хранится программа для осуществления передачи информации, причем программа, при выполнении процессором, выполняет операции способа пересылки пакетов для гетерогенной сети в соответствии с любым из пп. 1-7.
9. Устройство прокси-узла, включающее: память, процессор и компьютерную программу, которая хранится в памяти и может выполняться на процессоре, причем компьютерная программа, при выполнении процессором, выполняет операции способа пересылки пакетов для гетерогенной сети в соответствии с любым из пп. 1-7.
CN 108737413 A, 02.11.2018 | |||
US 20060039374 A1, 23.02.2006 | |||
CN 105245271 A, 13.01.2016 | |||
US 20090296685 A1, 03.12.2009 | |||
CN 110278161 A, 24.09.2019 | |||
US 20160308771 A1, 20.10.2016 | |||
СПОСОБ И УСТРОЙСТВО, ДЛЯ РЕТРАНСЛЯЦИИ ПАКЕТОВ | 2009 |
|
RU2543304C2 |
Авторы
Даты
2024-07-09—Публикация
2020-09-01—Подача