RU2687217C1 - Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов - Google Patents

Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов Download PDF

Info

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
Application number
RU2018122435A
Other languages
English (en)
Inventor
Евгений Леонидович Вороков
Александр Владимирович Щеглов
Original Assignee
Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" filed Critical Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority to RU2018122435A priority Critical patent/RU2687217C1/ru
Application granted granted Critical
Publication of RU2687217C1 publication Critical patent/RU2687217C1/ru

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing 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].
В известном способе используются следующие шаги:
Figure 00000001
для каждого ПМ на внешнем интерфейсе, связанном с другими ПМ, задают размер MSS соответствующий MTU внешнего интерфейса ПМ минус размер заголовка протокола инкапсуляции VPLS;
Figure 00000001
для каждого ПМ на внутреннем интерфейсе, связанном с собственной КС задают размер 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].
В известном способе используются следующие шаги:
Figure 00000001
определяется максимальные значения MTU на интересующем интерфейсе (обычно внешнем, т.к. преимущественно на нем выполняется дополнительная инкапсуляция);
Figure 00000001
определяется что проходящий пакет принадлежит протоколу TCP/IP, в заголовке TCP установлен флаг SYN и присутствует опция MSS;
Figure 00000001
значение MSS автоматически уменьшается до значения MTU минус 40 байт для протокола IPv4; MTU минус 60 байт для протокола IPv6.
Таким образом, достигается согласование MSS, для выбранных интерфейсов, позволяющее маршрутизировать IP-пакеты без их фрагментации.
Известный способ принят за прототип.
Тем не менее, известный способ имеет ряд недостатков.
Способ применяется для маршрутизации IP-пакетов без возможности использования при коммутации кадров ПМ с использованием VPLS.
Значения MSS устанавливаются, основываясь на заранее заданных значениях, и не позволяют максимально эффективно использовать выделенный канал.
Раскрытие изобретения
Техническим результатом является
1) снижение нагрузки ПМ при использовании VPLS благодаря предотвращению фрагментации для ТСР-соединений,
2) повышение пропускной способности ПМ при использовании VPLS благодаря точному расчету максимально возможных параметров MSS при коммутации кадров,
3) снижение сложности настройки ПМ при использовании VPLS благодаря полностью автоматическому расчету параметров MSS при коммутации кадров.
Указанный результат достигается за счет применения следующего способа предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов IP, причем в состав сети входят
Figure 00000001
клиентские сети (КС), каждая из которых содержит клиентские компьютеры (КК) и пограничный маршрутизатор (ПМ);
Figure 00000001
внешнюю сеть, соединяющую все ПМ по технологии VPLS;
причем каждый ПМ
Figure 00000002
имеет внешний интерфейс, связанный с внешней сетью и имеющий установленное значение максимального размера полезного блока данных одного пакета, который может быть передан протоколом без фрагментации (MTU);
Figure 00000002
имеет внутренний интерфейс, связанный со своей КС и имеющий установленное значение MTU;
Figure 00000002
содержит средство обработки, выполненное с возможностью:
Figure 00000003
сравнения IP-адресов, содержащихся в кадрах запроса;
Figure 00000004
модификации кадра запроса путем изменения данных;
способ заключается в том, что
Figure 00000001
посылают запрос от компьютера (КК1), находящегося в своей сети (КС1) на установление TCP-соединения с компьютером (КК2), находящегося в другой сети (КС2), причем запрос на канальном уровне представляет собой кадр протокола канального уровня и содержит
Figure 00000002
IP адрес КК2, находящегося в КС2;
Figure 00000002
значение максимального размера полезного блока данных для ТСР-пакета (MSS), который установлен КК1 при согласовании значений MTU своего интерфейса и внутреннего интерфейса ПМ1;
Figure 00000001
получают запрос от КК1 в ПМ1;
Figure 00000001
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ1, выполняя следующие действия:
Figure 00000002
проверяют выполнение следующих условий:
Figure 00000005
кадр содержит пакет протокола IP;
Figure 00000006
в составе пакета IP содержится заголовок протокола TCP;
Figure 00000007
в заголовке TCP установлен флаг SYN;
Figure 00000008
в заголовке TCP присутствует опция MSS;
Figure 00000002
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
Figure 00000009
вычисляют значение MSS для внутреннего интерфейса ПМ1, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
Figure 00000010
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
Figure 00000011
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
Figure 00000002
если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
Figure 00000012
записывают вычисленное значение MSS в кадр;
Figure 00000013
вычисляют новую контрольную сумму ТСР-пакета;
Figure 00000014
записывают новую контрольную сумму TCP-пакета в кадр;
Figure 00000001
передают кадр из средства в ПМ1;
Figure 00000001
передают полученный из средства обработки ПМ1 кадр с запросом на установление TCP-соединения из ПМ1 в ПМ2;
Figure 00000001
получают кадр с запросом от ПМ1 в ПМ2;
Figure 00000001
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ2, выполняя следующие действия:
Figure 00000002
проверяют выполнение следующих условий:
Figure 00000015
кадр содержит пакет протокола IP;
Figure 00000015
в составе пакета IP содержится заголовок протокола TCP;
Figure 00000015
в заголовке TCP установлен флаг SYN;
Figure 00000015
в заголовке TCP присутствует опция MSS;
Figure 00000002
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
Figure 00000015
вычисляют значение MSS для внешнего интерфейса ПМ2, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
Figure 00000015
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
Figure 00000015
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
Figure 00000002
если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
Figure 00000015
записывают вычисленное значение MSS в кадр;
Figure 00000015
вычисляют новую контрольную сумму ТСР-пакета;
Figure 00000015
записывают новую контрольную сумму TCP-пакета в кадр;
Figure 00000001
передают кадр из средства обработки в ПМ2;
Figure 00000001
передают полученный из средства обработки ПМ2 кадр с запросом на установление TCP-соединения через внутренний интерфейс ПМ2 в КК2;
Figure 00000001
получают кадр с запросом в КК2;
Figure 00000001
формируют в КК2 ответ для КК1;
Figure 00000001
завершают установку TCP-соединения между КК1 и КК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-телефоны), устройства для конференцсвязи, использующие мультикаст-сообщения, и другие клиентские устройства.
В рассматриваемую сетевую конфигурацию входят:
Figure 00000016
КК, расположенные в КС,
Figure 00000016
ПМ, к которым подключается КС.
Количество КК и КС может быть значительным, например, несколько сотен КС, в каждой из которых несколько десятков КК.
В качестве ПМ используется высокопроизводительный ПАК 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].
В состав каждого ПАК входит специализированное ПО - программный модуль средства обработки.
Для реализации способа программный модуль необходимо сформировать и установить в ПАК. Разработку модуля может выполнить специалист по программированию (программист), например, на языке программирования С, зная выполняемые ПО функции:
Figure 00000016
сравнения IP-адресов, содержащихся в кадрах запроса,
Figure 00000016
модификации кадра запроса путем изменения данных.
После установки программного модуля средства обработки во все ПМ можно непосредственно реализовать предложенный способ.
Для этого ПМ, к которым подключаются КС, запускаются в рабочем режиме. В нескольких КС запускаются КК. КК из одной КС пытается установить соединение с КК из другой КС:
Figure 00000016
посылают запрос от компьютера (КК1), находящегося в своей сети (КС1) на установление TCP-соединения с компьютером (КК2), находящегося в другой сети (КС2), причем запрос на канальном уровне представляет собой кадр протокола канального уровня и содержит
Figure 00000002
IP адрес КК2, находящегося в КС2;
Figure 00000002
значение максимального размера полезного блока данных для ТСР-пакета (MSS), который установлен КК1 при согласовании значений MTU своего интерфейса и внутреннего интерфейса ПМ1;
Figure 00000016
получают запрос от КК1 в ПМ1;
Figure 00000016
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ1, выполняя следующие действия:
Figure 00000002
проверяют выполнение следующих условий:
Figure 00000017
кадр содержит пакет протокола IP;
Figure 00000017
в составе пакета IP содержится заголовок протокола TCP;
Figure 00000017
в заголовке TCP установлен флаг SYN;
Figure 00000017
в заголовке TCP присутствует опция MSS;
Figure 00000002
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
Figure 00000017
вычисляют значение MSS для внутреннего интерфейса ПМ1, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
Figure 00000017
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
Figure 00000017
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
Figure 00000002
если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
Figure 00000017
записывают вычисленное значение MSS в кадр;
Figure 00000017
вычисляют новую контрольную сумму ТСР-пакета;
Figure 00000017
записывают новую контрольную сумму TCP-пакета в кадр;
Figure 00000016
передают кадр из средства в ПМ1;
Figure 00000016
передают полученный из средства обработки ПМ1 кадр с запросом на установление TCP-соединения из ПМ1 в ПМ2;
Figure 00000016
получают кадр с запросом от ПМ1 в ПМ2;
Figure 00000016
обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ2, выполняя следующие действия:
Figure 00000002
проверяют выполнение следующих условий:
Figure 00000017
кадр содержит пакет протокола IP;
Figure 00000017
в составе пакета IP содержится заголовок протокола TCP;
Figure 00000017
в заголовке TCP установлен флаг SYN;
Figure 00000017
в заголовке TCP присутствует опция MSS;
Figure 00000002
если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
Figure 00000017
вычисляют значение MSS для внешнего интерфейса ПМ2, путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
Figure 00000017
вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
Figure 00000017
вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
Figure 00000002
если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
Figure 00000017
записывают вычисленное значение MSS в кадр;
Figure 00000017
вычисляют новую контрольную сумму ТСР-пакета;
Figure 00000017
записывают новую контрольную сумму TCP-пакета в кадр;
Figure 00000016
передают кадр из средства обработки в ПМ2;
Figure 00000016
передают полученный из средства обработки ПМ2 кадр с запросом на установление TCP-соединения через внутренний интерфейс ПМ2 в КК2;
Figure 00000016
получают кадр с запросом в КК2;
Figure 00000016
формируют в КК2 ответ для КК1;
Figure 00000018
завершают установку TCP-соединения между КК1 и КК2.
В результате, устанавливается TCP-соединение со значением максимального размера MSS, позволяющем осуществлять передачу пакетов без фрагментации.
Таким образом, минимизируются задержки при обработке пакетов, и уменьшается нагрузка на сервис VPLS, при этом полностью использует доступный канал передачи, а благодаря автоматическому расчету значения максимального размера MSS не требуется дополнительных настроек, что упрощает администрирование сети.
Необходимо отметить, что возможны и другие варианты реализации предложенного способа, отличающиеся от описанного выше и зависящие от личных предпочтений при программировании отдельных действий и функций.

Claims (48)

  1. Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов, причем в состав сети входят
  2. клиентские сети (КС), каждая из которых содержит клиентские компьютеры (КК) и пограничный маршрутизатор (ПМ);
  3. внешняя сеть, соединяющая все ПМ по технологии VPLS;
  4. причем каждый ПМ
  5. имеет внешний интерфейс, связанный с внешней сетью и имеющий установленное значение максимального размера полезного блока данных одного пакета, который может быть передан протоколом без фрагментации (MTU);
  6. имеет внутренний интерфейс, связанный со своей КС и имеющий установленное значение MTU;
  7. содержит средство обработки, выполненное с возможностью:
  8. сравнения IP-адресов, содержащихся в кадрах запроса;
  9. модификации кадра запроса путем изменения данных;
  10. заключающийся в том, что
  11. посылают запрос от компьютера (КК1), находящегося в своей сети (КС1), на установление TCP-соединения с компьютером (КК2), находящимся в другой сети (КС2), причем запрос на канальном уровне представляет собой кадр протокола канального уровня и содержит
  12. IP адрес КК2, находящегося в КС2;
  13. значение максимального размера полезного блока данных для ТСР-пакета (MSS), который установлен КК1 при согласовании значений MTU своего интерфейса и внутреннего интерфейса ПМ1;
  14. получают запрос от КК1 в ПМ1;
  15. обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ1, выполняя следующие действия:
  16. проверяют выполнение следующих условий:
  17. кадр содержит пакет протокола IP;
  18. в составе пакета IP содержится заголовок протокола TCP;
  19. в заголовке TCP установлен флаг SYN;
  20. в заголовке TCP присутствует опция MSS; если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
  21. вычисляют значение MSS для внутреннего интерфейса ПМ1 путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
  22. вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
  23. вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
  24. если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
  25. записывают вычисленное значение MSS в кадр;
  26. вычисляют новую контрольную сумму ТСР-пакета;
  27. записывают новую контрольную сумму TCP-пакета в кадр;
  28. передают кадр из средства в ПМ1;
  29. передают полученный из средства обработки ПМ1 кадр с запросом на установление TCP-соединения из ПМ1 в ПМ2;
  30. получают кадр с запросом от ПМ1 в ПМ2;
  31. обрабатывают полученный кадр с запросом на установление ТСР-соединения в средстве обработки ПМ2, выполняя следующие действия:
  32. проверяют выполнение следующих условий:
  33. кадр содержит пакет протокола IP;
  34. в составе пакета IP содержится заголовок протокола TCP;
  35. в заголовке TCP установлен флаг SYN;
  36. в заголовке TCP присутствует опция MSS;
  37. если все условия выполнены, то вычисляют максимальный размер MSS для данного TCP-соединения, выполняя следующие действия:
  38. вычисляют значение MSS для внешнего интерфейса ПМ2 путем вычитания из установленного значения MTU общего размера заголовков IP и TCP;
  39. вычисляют объем дополнительных заголовков инкапсуляции для связи ПМ1 с ПМ2 с учетом используемого протокола VPLS;
  40. вычисляют максимальный размер MSS, вычитая из ранее вычисленного значения MSS объем дополнительных заголовков инкапсуляции;
  41. если указанное в заголовке значение MSS больше вычисленного максимального значения MSS, то
  42. записывают вычисленное значение MSS в кадр;
  43. вычисляют новую контрольную сумму ТСР-пакета;
  44. записывают новую контрольную сумму TCP-пакета в кадр; передают кадр из средства обработки в ПМ2;
  45. передают полученный из средства обработки ПМ2 кадр с запросом на установление TCP-соединения через внутренний интерфейс ПМ2 в КК2;
  46. получают кадр с запросом в КК2;
  47. формируют в КК2 ответ для КК1;
  48. завершают установку TCP-соединения между КК1 и КК2.
RU2018122435A 2018-06-20 2018-06-20 Способ предотвращения фрагментации TCP/IP-пакетов при использовании VPLS в сети с коммутацией пакетов RU2687217C1 (ru)

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)

* Cited by examiner, † Cited by third party
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 Эл Джи Электроникс Инк. Способ передачи пакетных данных в системе связи

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 専用ポートサービスの提供方法