RU2687217C1 - Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов - Google Patents
Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов Download PDFInfo
- Publication number
- RU2687217C1 RU2687217C1 RU2018122435A RU2018122435A RU2687217C1 RU 2687217 C1 RU2687217 C1 RU 2687217C1 RU 2018122435 A RU2018122435 A RU 2018122435A RU 2018122435 A RU2018122435 A RU 2018122435A RU 2687217 C1 RU2687217 C1 RU 2687217C1
- Authority
- RU
- Russia
- Prior art keywords
- mss
- tcp
- frame
- packet
- value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013467 fragmentation Methods 0.000 title claims abstract description 20
- 238000006062 fragmentation reaction Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000005516 engineering process Methods 0.000 claims abstract description 11
- 238000005538 encapsulation Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 3
- 230000001934 delay Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Изобретение относится к цифровым сетям передачи данных с коммутацией пакетов (IP). Технический результат - повышение пропускной способности в сети с коммутацией пакетов. В состав сети входят клиентские сети (КС), каждая из которых содержит клиентские компьютеры (КК) и пограничный маршрутизатор (ПМ); внешнюю сеть, соединяющую все ПМ по технологии VPLS, причем каждый ПМ имеет внешний интерфейс, связанный с внешней сетью и имеющий установленное значение максимального размера полезного блока данных одного пакета, который может быть передан протоколом без фрагментации (MTU); имеет внутренний интерфейс, связанный со своей КС и имеющий установленное значение MTU; содержит средство обработки, выполненное с возможностью: сравнения IP-адресов, содержащихся в кадрах запроса; модификации кадра запроса путем изменения данных. В результате использования данного способа устанавливается TCP-соединение со значением максимального размера MSS, позволяющим осуществлять передачу пакетов без фрагментации, при этом минимизируются задержки при обработке пакетов и уменьшается нагрузка на сервис VPLS, полностью используется доступный канал передачи, а при автоматическом расчете значения максимального размера MSS не требуется дополнительных настроек.
Description
Область техники, к которой относится изобретение
Предполагаемое изобретение относится к цифровым сетям передачи данных с коммутацией пакетов (IP) и, в частности, к способам предотвращения фрагментации TCP/IP-пакетов при использовании VPLS (Virtual Private LAN Service).
Уровень техники
В современных цифровых сетях передачи данных, имеющих множество узлов, сложную распределенную топологию и отдельные участки (подсети или сегменты), которые содержат компьютеры конечных пользователей (клиентов) и которые могут быть территориально расположенными в разных географических регионах, большое значение имеет возможность использовать преимущества объединения в сеть с коммутацией пакетов на канальном уровне (с одним сегментом broadcast). В такой сети можно использовать простые сетевые устройства (принтеры, сканеры, IP-телефоны), устройства для конференц-связи и другие клиентские устройства с упрощенной настройкой. Это позволяет облегчить настройку и в дальнейшем снизить затраты на обслуживание сети в целом.
Для такого объединения удаленных сегментов сети часто используется технология VPLS [Lasserre М., Kompella V., Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling, 2007 (RFC 4762) - статья по адресу: https://tools.ietf.org/html/rfc4762; Kompella K., Rekhter Y., Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling, 2007 (RFC 4761) - статья по адресу: https://tools.ietf.org/html/rfc4761].
В области технологии VPLS используются следующие термины.
Клиентская сеть (КС; в английской терминологии Client Equipment, СЕ) - это сегмент сети, содержащий клиентские компьютеры (КК) и другое клиентское оборудование, объединенный с другими КС по технологии VPLS.
Пограничный маршрутизатор (ПМ; в английской терминологии Provider Edge, РЕ) - это маршрутизатор, который служит для подключения КС к другим сегментам сети по технологии VPLS.
Внешняя сеть - это участок сети, объединяющий ПМ.
Maximum transmission unit (MTU) - это максимальный размер полезного блока данных одного пакета, который может быть передан протоколом без фрагментации. Значение MTU определяется стандартом соответствующего протокола, но может быть переопределено автоматически для определенного потока (проколом PMTUD [Mogul J., Deering S., Path MTU Discovery, 1990 (RFC 1191) - статья по адресу: https://tools.ietf.org/html/rfc1191]) или вручную для нужного интерфейса. На некоторых интерфейсах MTU по умолчанию может быть установлено ниже максимально возможного. Значение MTU ограничено снизу, как правило, минимально допустимой длиной кадра.
Maximum segment size (MSS) - это максимальный размер полезного блока данных в байтах для TCP-пакета (сегмента). Этот параметр не учитывает длину заголовков TCP и IP. Для установления корректной TCP-сессии с удаленным хостом должно соблюдаться следующее условие:
MSS + заголовок TCP + заголовок IP≤MTU,
таким образом,
максимальный размер MSS=MTU - размер заголовка IP - размер заголовка TCP [Borman D., TCP Options and Maximum Segment Size (MSS), 2012 (RFC 6691) - статья по адресу: https://tools.ietf.org/html/rfc6691].
Технология VPLS позволяет объединять несколько удаленных КС в одну локальную сеть с коммутацией пакетов на канальном уровне. Сетевые узлы в каждой КС при этом взаимодействуют с узлами в других КС, обмениваясь с ними кадрами канального уровня таким же образом, как если бы оба узла находились в одной и той же КС.
Для построения единой сети канального уровня на базе VPLS каждая КС подключается к своему ПМ. Несколько ПМ, каждый из которых подключен к одной из КС, соединяются между собой с помощью построения туннельных соединений между ними. Каждый ПМ должен быть связан туннелем с каждым из остальных ПМ, образующих данный сервис VPLS, для этого может использоваться один из известных туннельных протоколов канального или сетевого уровня (MPLS, EtherIP и др. [Rosen Е., Rekhter Y., BGP/MPLS IP Virtual Private Networks (VPNs), 2006 (RFC 4364) - статья по адресу: https://tools.ietf.org/html/rfc4364; Housley R., Hollenbeck S., EtherIP: Tunneling Ethernet Frames in IP Datagrams, 2002 (RFC 3378) - статья по адресу: https://tools.ietf.org/html/rfc3378]).
При поступлении кадров из КС и от других ПМ данный ПМ производит их коммутацию, для чего ведет таблицу адресов канального уровня, связывая каждый адрес с логическим портом (в качестве порта может выступать один из сетевых интерфейсов ПМ, подключенный к одной из КС, либо один из удаленных ПМ). При получении кадра из какого-либо логического порта производится поиск адреса получателя кадра, и кадр пересылается в логический порт, связанный с данным адресом. Если адрес получателя отсутствует в таблице, либо кадр широковещательный, то создается несколько копий кадра, которые рассылаются следующим образом: если исходный кадр поступил из своей КС, то копии рассылаются во все остальные КС, а также на все удаленные ПМ; если же исходный кадр поступил от удаленного ПМ, то копии рассылаются только в своей КС.
Каждый ПМ может, помимо функций VPLS, выполнять и другие функции: в нем может происходить маршрутизация пакетов из своей КС во внешнюю сеть и обратно, а также могут работать сетевые сервисы, доступные для своей КС. Для этого ПМ имеет отдельный логический порт, соответствующий его собственной сетевой подсистеме, и в такой логический порт коммутируются кадры из своей КС, адресованные самому ПМ на канальном уровне.
При использовании VPLS от КК из КС к своему ПМ и далее к связанному ПМ другой КС через внешний участок сети передается некоторый непрерывный поток данных. При этом на КК поток разбивается на пакеты, максимально большего размера, насколько это позволяет MTU его сетевого интерфейса. В результате на портах ПМ соединенным со своей КС принимается большое количество кадров максимально возможного для Ethernet размера (1514 байт при отсутствии тегов VLAN).
Когда ПМ коммутируется такой кадр в логический порт другого ПМ, он инкапсулируется в пакет протокола канального или сетевого уровня, обеспечивающего VPLS, что приводит к дальнейшему увеличению общего размера пакета на величину соответствующих заголовков. Как правило, при использовании Ethernet, MTU всех интерфейсов ПМ одинаковы, и полученный пакет не может быть отправлен другому ПМ без фрагментации. Фрагментация позволяет успешно доставить такой пакет, однако при этом резко понижается эффективность передачи из-за необходимости для приемной стороны дожидаться полного приема всех фрагментов, прежде чем начать обработку пакета, из-за чего фрагментация практически во всех случаях рассматривается как нежелательный эффект.
Для того чтобы избежать фрагментации, необходимо тем или иным образом сообщить узлу-отправителю, что необходимо разбивать данные на IP-пакеты меньшего размера.
В общем случае, решить эту проблему достаточно сложно, но в настоящее время для надежной передачи большого объема данных в основном используется протокол транспортного уровня TCP, работающий поверх протокола IP. Протокол TCP предполагает установление сессии передачи данных и периодические подтверждения сторонами факта передачи тех или иных порций данных. При установлении сессии участники TCP-соединения обмениваются опциями максимального размера сегмента (MSS), то есть максимального размера пакета, который готов принимать участник соединения, отправляющий опцию MSS. После установки соединения каждый участник должен посылать другому участнику пакеты не большего размера, чем было указано в опции MSS. Этот механизм предоставляет удобную возможность избежать фрагментации на промежуточных узлах (маршрутизаторах, коммутаторах) при передаче пакетов протокола TCP путем уменьшения значения MSS, относящегося к данному соединению.
Достичь такого эффекта можно путем ручной настройки максимально возможного размера MSS для макетов, маршрутизируемых в сети VPLS. Известен такой способ настройки VPLS на сетевом оборудовании компании Cisco, который характерен тем, что на каждом ПМ настраивается максимальный размер MSS [Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC, Cisco support docs, Updated march 25, 2016, Document ID: 25885 - статья по адресу: https://www.cisco.com/c/en/us/support/docs/ip/generic-routing-encapsulation-gre/25885-pmtud-ipfrag.html].
В известном способе используются следующие шаги:
для каждого ПМ на внешнем интерфейсе, связанном с другими ПМ, задают размер MSS соответствующий MTU внешнего интерфейса ПМ минус размер заголовка протокола инкапсуляции VPLS;
для каждого ПМ на внутреннем интерфейсе, связанном с собственной КС задают размер MSS равный размеру MSS на внешнем интерфейсе ПМ.
В результате, при установлении соединения КК к своему ПМ будет согласован не максимально возможный MSS в КС, а меньший, максимально возможный между ПМ, что является недостатком способа.
Кроме того, значение MSS для каждого интерфейс приходится устанавливать вручную.
При изменении максимально возможного MSS между ПМ, например, при изменении значения MTU на внешнем интерфейсе ПМ, связанном с другими ПМ, необходимо перенастраивать значение на каждом интерфейсе также вручную.
Известен также способ автоматического изменения MSS в зависимости от размера MTU интерфейсов при маршрутизации в ядре Linux 4.2.3 и старше, под названием "Clamp the MSS" (ограничение размера MSS) [Circumventing Path MTU Discovery issues with MSS Clamping (for ADSL, cable, PPPoE & PPtP users) - статья по адресу: http://lartc.org/howto/lartc.cookbook.mtu-mss.html, а также по адресу: https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.cookbook.mtu-mss.html].
В известном способе используются следующие шаги:
определяется максимальные значения MTU на интересующем интерфейсе (обычно внешнем, т.к. преимущественно на нем выполняется дополнительная инкапсуляция);
определяется что проходящий пакет принадлежит протоколу TCP/IP, в заголовке TCP установлен флаг SYN и присутствует опция MSS;
значение MSS автоматически уменьшается до значения MTU минус 40 байт для протокола IPv4; MTU минус 60 байт для протокола IPv6.
Таким образом, достигается согласование MSS, для выбранных интерфейсов, позволяющее маршрутизировать IP-пакеты без их фрагментации.
Известный способ принят за прототип.
Тем не менее, известный способ имеет ряд недостатков.
Способ применяется для маршрутизации IP-пакетов без возможности использования при коммутации кадров ПМ с использованием VPLS.
Значения MSS устанавливаются, основываясь на заранее заданных значениях, и не позволяют максимально эффективно использовать выделенный канал.
Раскрытие изобретения
Техническим результатом является
1) снижение нагрузки ПМ при использовании VPLS благодаря предотвращению фрагментации для ТСР-соединений,
2) повышение пропускной способности ПМ при использовании VPLS благодаря точному расчету максимально возможных параметров MSS при коммутации кадров,
3) снижение сложности настройки ПМ при использовании VPLS благодаря полностью автоматическому расчету параметров MSS при коммутации кадров.
Указанный результат достигается за счет применения следующего способа предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов IP, причем в состав сети входят
клиентские сети (КС), каждая из которых содержит клиентские компьютеры (КК) и пограничный маршрутизатор (ПМ);
причем каждый ПМ
имеет внешний интерфейс, связанный с внешней сетью и имеющий установленное значение максимального размера полезного блока данных одного пакета, который может быть передан протоколом без фрагментации (MTU);
способ заключается в том, что
посылают запрос от компьютера (КК1), находящегося в своей сети (КС1) на установление TCP-соединения с компьютером (КК2), находящегося в другой сети (КС2), причем запрос на канальном уровне представляет собой кадр протокола канального уровня и содержит
значение максимального размера полезного блока данных для ТСР-пакета (MSS), который установлен КК1 при согласовании значений MTU своего интерфейса и внутреннего интерфейса ПМ1;
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ1, выполняя следующие действия:
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
вычисляют значение MSS для внутреннего интерфейса ПМ1, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
передают полученный из средства обработки ПМ1 кадр с запросом на установление TCP-соединения из ПМ1 в ПМ2;
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ2, выполняя следующие действия:
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
вычисляют значение MSS для внешнего интерфейса ПМ2, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
передают полученный из средства обработки ПМ2 кадр с запросом на установление TCP-соединения через внутренний интерфейс ПМ2 в КК2;
В реальной сети, например, корпоративной, компьютеры отдельных пользователей (клиентов) или КК, расположены в территориально удаленных сегментах сети (КС), имеют выход во внешнюю сеть, например, Интернет, через отдельный маршрутизатор (названный выше ПМ). Данные ПМ организуют сеть VPLS, а каждая КС подключается к своему ПМ. Несколько ПМ, каждый из которых подключен к одной из КС, соединяются между собой с помощью построения туннельных соединений между ними. Каждый ПМ должен быть связан туннелем с каждым из остальных ПМ, образующих данный сервис VPLS, для этого может использоваться один из известных туннельных протоколов канального или сетевого уровня (MPLS, GRE, EtherIP и др.)
Каждый ПМ, например, может представлять собой программно-аппаратный комплекс (ПАК) на базе какой-либо ОС (Linux).
Для реализации предложенного способа в состав комплекса включают средство обработки, реализованное в виде программного модуля.
В данном модуле обрабатываются все кадры (на втором уровне модели OSI), проходящие через ПМ. Для кадров, коммутируемых между удаленными ПМ и локальной КС, либо между локальной КС и удаленными ПМ, проверяется, что в кадре содержится пакет TCP с установленным флагом SYN, что указывает на первый этап "трехэтапного согласования" (англ. three way handshake) установки TCP соединения, и присутствует опция MSS. Кадры, удовлетворяющие таким условиям, подвергаются дальнейшей обработке.
Для таких кадров вычисляется размер MSS для сетевого интерфейса, через который получен кадр. Из значения MTU интерфейса вычитается размер заголовков IP 20 байт и TCP 20-60 байт. Далее вычисляется объем дополнительных заголовков инкапсуляции VPLS для связи с удаленным ПМ, в зависимости от реализации протокола инкапсуляции он может иметь разное значение, например, 2 байта при использовании etherip [Borman D., TCP Options and Maximum Segment Size (MSS), 2012 (RFC 6691) - статья по адресу: https://tools.ietf.org/html/rfc6691]. Объем дополнительных заголовков инкапсуляции VPLS также вычитается из ранее вычисленного размера MSS. Вычисленный максимальный размер MSS сравнивается с указанным в заголовке TCP. Если указанный в заголовке размер MSS больше вычисленного максимального, то MSS в заголовке TCP заменяется на вычисленный, контрольная сумма TCP-пакета пересчитывается и записывается в кадр.
После окончания процесса "трехэтапного согласования" устанавливается TCP-соединение со значением максимального размера MSS, позволяющего осуществлять передачу пакетов без фрагментации.
Таким образом, преимуществом предложенного способа, по сравнению с известными, состоит в том, что подсчет максимально допустимого значения MSS автоматизирован и не требует первоначальных и дополнительных настроек.
За счет этого также достигается:
1) снижение нагрузки ПМ при использовании VPLS благодаря предотвращению фрагментации для ТСР-соединений,
2) повышение пропускной способности ПМ при использовании VPLS благодаря точному расчету максимально возможных параметров MSS при коммутации кадров,
3) снижение сложности настройки ПМ при использовании VPLS благодаря полностью автоматическому расчету параметров MSS при коммутации кадров.
Осуществление изобретения
Рассмотрим осуществление предложенного способа в сети с коммутацией IP-пакетов. Это может быть корпоративная сеть, имеющая один основной сегмент - КС с установленным DHCP сервером и множеством сегментов сетей удаленных офисов - КС, подключенных через различных провайдеров сети Интернет по технологии VPLS, для создания сети с коммутацией пакетов на канальном уровне (с одним сегментом broadcast). В такой сети можно использовать простые сетевые устройства (принтеры, сканеры, IP-телефоны), устройства для конференцсвязи, использующие мультикаст-сообщения, и другие клиентские устройства.
В рассматриваемую сетевую конфигурацию входят:
Количество КК и КС может быть значительным, например, несколько сотен КС, в каждой из которых несколько десятков КК.
В качестве ПМ используется высокопроизводительный ПАК HW1000Q4 на базе Intel Celeron G1820 с тактовой частотой 2,7 ГГц, объемом оперативной памяти 2 Гб, объемом жесткого диска 500 Мб, с установленной ОС Linux Debian 7 (ядро 3.10.108). ПАК HW1000Q4 содержит несколько сетевых интерфейсов (4 проводных Ethernet) [9. ViPNet Coordinator HW1000 v3 - статья по адресу: https://infotecs.ru/product/vipnet-coordinator-hw1000-versiya-3.html].
В состав каждого ПАК входит специализированное ПО - программный модуль средства обработки.
Для реализации способа программный модуль необходимо сформировать и установить в ПАК. Разработку модуля может выполнить специалист по программированию (программист), например, на языке программирования С, зная выполняемые ПО функции:
После установки программного модуля средства обработки во все ПМ можно непосредственно реализовать предложенный способ.
Для этого ПМ, к которым подключаются КС, запускаются в рабочем режиме. В нескольких КС запускаются КК. КК из одной КС пытается установить соединение с КК из другой КС:
посылают запрос от компьютера (КК1), находящегося в своей сети (КС1) на установление TCP-соединения с компьютером (КК2), находящегося в другой сети (КС2), причем запрос на канальном уровне представляет собой кадр протокола канального уровня и содержит
значение максимального размера полезного блока данных для ТСР-пакета (MSS), который установлен КК1 при согласовании значений MTU своего интерфейса и внутреннего интерфейса ПМ1;
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ1, выполняя следующие действия:
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
вычисляют значение MSS для внутреннего интерфейса ПМ1, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
передают полученный из средства обработки ПМ1 кадр с запросом на установление TCP-соединения из ПМ1 в ПМ2;
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ2, выполняя следующие действия:
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
вычисляют значение MSS для внешнего интерфейса ПМ2, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
передают полученный из средства обработки ПМ2 кадр с запросом на установление TCP-соединения через внутренний интерфейс ПМ2 в КК2;
В результате, устанавливается TCP-соединение со значением максимального размера MSS, позволяющем осуществлять передачу пакетов без фрагментации.
Таким образом, минимизируются задержки при обработке пакетов, и уменьшается нагрузка на сервис VPLS, при этом полностью использует доступный канал передачи, а благодаря автоматическому расчету значения максимального размера MSS не требуется дополнительных настроек, что упрощает администрирование сети.
Необходимо отметить, что возможны и другие варианты реализации предложенного способа, отличающиеся от описанного выше и зависящие от личных предпочтений при программировании отдельных действий и функций.
Claims (48)
- Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов, причем в состав сети входят
- клиентские сети (КС), каждая из которых содержит клиентские компьютеры (КК) и пограничный маршрутизатор (ПМ);
- внешняя сеть, соединяющая все ПМ по технологии VPLS;
- причем каждый ПМ
- имеет внешний интерфейс, связанный с внешней сетью и имеющий установленное значение максимального размера полезного блока данных одного пакета, который может быть передан протоколом без фрагментации (MTU);
- имеет внутренний интерфейс, связанный со своей КС и имеющий установленное значение MTU;
- содержит средство обработки, выполненное с возможностью:
- сравнения IP-адресов, содержащихся в кадрах запроса;
- модификации кадра запроса путем изменения данных;
- заключающийся в том, что
- посылают запрос от компьютера (КК1), находящегося в своей сети (КС1), на установление TCP-соединения с компьютером (КК2), находящимся в другой сети (КС2), причем запрос на канальном уровне представляет собой кадр протокола канального уровня и содержит
- IP адрес КК2, находящегося в КС2;
- значение максимального размера полезного блока данных для ТСР-пакета (MSS), который установлен КК1 при согласовании значений MTU своего интерфейса и внутреннего интерфейса ПМ1;
- получают запрос от КК1 в ПМ1;
- обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ1, выполняя следующие действия:
- проверяют выполнение следующих условий:
- кадр содержит пакет протокола IP;
- в составе пакета IP содержится заголовок протокола TCP;
- в заголовке TCP установлен флаг SYN;
- в заголовке TCP присутствует опция MSS; если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
- вычисляют значение MSS для внутреннего интерфейса ПМ1 путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
- вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
- вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
- если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
- записывают вычисленное значение MSS в кадр;
- вычисляют новую контрольную сумму ТСР-пакета;
- записывают новую контрольную сумму TCP-пакета в кадр;
- передают кадр из средства в ПМ1;
- передают полученный из средства обработки ПМ1 кадр с запросом на установление TCP-соединения из ПМ1 в ПМ2;
- получают кадр с запросом от ПМ1 в ПМ2;
- обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ2, выполняя следующие действия:
- проверяют выполнение следующих условий:
- кадр содержит пакет протокола IP;
- в составе пакета IP содержится заголовок протокола TCP;
- в заголовке TCP установлен флаг SYN;
- в заголовке TCP присутствует опция MSS;
- если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
- вычисляют значение MSS для внешнего интерфейса ПМ2 путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
- вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
- вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
- если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
- записывают вычисленное значение MSS в кадр;
- вычисляют новую контрольную сумму ТСР-пакета;
- записывают новую контрольную сумму TCP-пакета в кадр; передают кадр из средства обработки в ПМ2;
- передают полученный из средства обработки ПМ2 кадр с запросом на установление TCP-соединения через внутренний интерфейс ПМ2 в КК2;
- получают кадр с запросом в КК2;
- формируют в КК2 ответ для КК1;
- завершают установку TCP-соединения между КК1 и КК2.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018122435A RU2687217C1 (ru) | 2018-06-20 | 2018-06-20 | Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018122435A RU2687217C1 (ru) | 2018-06-20 | 2018-06-20 | Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2687217C1 true RU2687217C1 (ru) | 2019-05-07 |
Family
ID=66430649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2018122435A RU2687217C1 (ru) | 2018-06-20 | 2018-06-20 | Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2687217C1 (ru) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032197A (en) * | 1997-09-25 | 2000-02-29 | Microsoft Corporation | Data packet header compression for unidirectional transmission |
WO2000049748A1 (en) * | 1999-02-17 | 2000-08-24 | Nokia Mobile Phones Ltd. | Header compression in real time services |
WO2001035568A1 (en) * | 1999-11-05 | 2001-05-17 | Nokia Corporation | Sparse feedback in high delay-low bandwidth wireless systems |
EP1146713A2 (en) * | 2000-03-03 | 2001-10-17 | NTT DoCoMo, Inc. | Method and apparatus for packet transmission with header compression |
RU2269873C2 (ru) * | 2000-09-13 | 2006-02-10 | Вп Медиа Инк | Беспроводное устройство инициализации |
RU2303858C2 (ru) * | 2001-11-24 | 2007-07-27 | Эл Джи Электроникс Инк. | Способ передачи пакетных данных в системе связи |
-
2018
- 2018-06-20 RU RU2018122435A patent/RU2687217C1/ru active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032197A (en) * | 1997-09-25 | 2000-02-29 | Microsoft Corporation | Data packet header compression for unidirectional transmission |
WO2000049748A1 (en) * | 1999-02-17 | 2000-08-24 | Nokia Mobile Phones Ltd. | Header compression in real time services |
WO2001035568A1 (en) * | 1999-11-05 | 2001-05-17 | Nokia Corporation | Sparse feedback in high delay-low bandwidth wireless systems |
EP1146713A2 (en) * | 2000-03-03 | 2001-10-17 | NTT DoCoMo, Inc. | Method and apparatus for packet transmission with header compression |
RU2269873C2 (ru) * | 2000-09-13 | 2006-02-10 | Вп Медиа Инк | Беспроводное устройство инициализации |
RU2303858C2 (ru) * | 2001-11-24 | 2007-07-27 | Эл Джи Электроникс Инк. | Способ передачи пакетных данных в системе связи |
Non-Patent Citations (1)
Title |
---|
Статья "Circumventing Path MTU Discovery issues with MISS Clamping (for ADSL, cable PPPoE & PPtP users), найдена http://lartc.org/howto/lartc.cookbook.mtu-mss.html. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10749752B2 (en) | Methods and systems for managing VPN tunnels | |
US7366894B1 (en) | Method and apparatus for dynamically securing voice and other delay-sensitive network traffic | |
US12010030B2 (en) | FlowSpec message processing method and system, and apparatus | |
CN108601043B (zh) | 用于控制无线接入点的方法和设备 | |
CN106713100B (zh) | 一种自动建立隧道的方法、cpe及汇聚设备 | |
US20140092723A1 (en) | Methods and apparatus for controlling wireless access points | |
US11799688B2 (en) | Method for managing virtual private network, and device | |
EP3758294B1 (en) | Link configuration method and controller | |
CN112583718B (zh) | 一种SRoU场景下SRv6报文传递方法、系统、设备及介质 | |
WO2022142905A1 (zh) | 报文转发的方法、装置和网络系统 | |
EP4383656A1 (en) | Network transmission method and device | |
RU2687217C1 (ru) | Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов | |
JP2006279771A (ja) | パケット伝送方式およびパケット伝送プログラム | |
US20200287868A1 (en) | Systems and methods for in-band remote management | |
US11956145B1 (en) | Method and apparatus to recover flow using an error message in a tunnel-less SDWAN | |
US20230011715A1 (en) | Methods and systems for transmitting session-based packets | |
JP2010028295A (ja) | Vpnサーバ、通信制御方法、および、プログラム | |
WO2024103738A1 (zh) | 一种ip地址的配置方法及相关设备 | |
JP3922566B2 (ja) | 専用ポートサービスの提供方法 |