ПЕРЕДАЮЩЕЕ УСТРОЙСТВО, СПОСОБ, ПРОГРАММА И НОСИТЕЛЬ ЗАПИСИ
TRANSMITTING DEVICE, METHOD, PROGRAM AND RECORDING MEDIUM

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к передающему устройству, к способу передачи, к программе передачи и к носителю записи, которые обнаруживают потери данных, передаваемых в приемное устройство, и выполняют повторную передачу потерянных данных.
Уровень техники
[0002] Протокол управления передачей/Интернет-протокол (TCP/IP), который представляет собой характерный протокол связи, используемым в Интернете, гарантирует приложению с использованием TCP/IP целостность при переносе данных. Таким образом, когда данные, передаваемые посредством передающего устройства, потеряны в передающем устройстве, сети или приемном устройстве, передающее устройство повторно передает потерянные данные. Приемное устройство сортирует и восстанавливает принимаемые данные в исходные данные и переносит восстановленные данные в приложение на приемной стороне.
[0003] В последние годы, расширяется применение облачных услуг, в каждой из которых центр обработки и хранения данных хранит пользовательские данные и т.п., а поставщик услуг предоставляет услуги, адаптированные к каждому пользователю. В таких облачных услугах, расстояние между центром обработки и хранения данных и пользовательским терминалом иногда становится достаточно большим. По этой причине, должен быть разработан способ связи, который допускает предоставление достаточной скорости обмена данными независимо от расстояния связи между центром обработки и хранения данных и пользовательским терминалом.
[0004] Чтобы достигать такой высокоскоростной дальней связи, каждое из передающего устройства, сети и приемного устройства требует буфер для временного сохранения большего объема данных или пакетов. В частности, передающее устройство, которое определяет скорость обмена данными сначала, требует большого буфера. В последние годы, для того чтобы использовать линию дальнего действия, имеющую скорость обмена данными в 10 Гбит/с, передающие устройства зачастую включают в себя буферы с пропускными способностями в 300 Мбайт, 300 Мбайт и 100 Мбайт на TCP-уровне, IP-уровне и канальном уровне, соответственно.
[0005] По существу, когда большой буфер устанавливается с возможностью достигать высокоскоростной связи, вероятность того, что возникнет большая задержка на перенос, увеличивается, когда данные повторно передаются. В общей TCP/IP-связи, один тракт связи используется при переносе данных между парой из передающего устройства и принимающего устройства. Канальный уровень, который представляется посредством Ethernet (зарегистрированная торговая марка), также использует один тракт связи в принципе, и порядок переноса данных не изменяется на канальном уровне. По этой причине, повторно передаваемые данные принудительно переносятся в конце всех данных в передаче, что приводит к увеличению времени ожидания передачи.
[0006] На фиг. 19, проиллюстрирован пример общего переноса данных с использованием TCP/IP. Передающее устройство передает фрагмент данных в приемное устройство, и приемное устройство отвечает с подтверждением приема (ACK) для фрагмента данных в передающее устройство. Хотя передающее устройство осуществляет связь через соответствующие уровни обработки, включающие в себя прикладной уровень, TCP-уровень, IP-уровень и Ethernet-уровень, TCP-уровень и нижние уровни проиллюстрированы на фиг. 19.
[0007] Порядковые номера, соответственно, предоставляются для фрагментов данных и ACK. В дальнейшем в этом документе, порядковые номера, предоставленные для фрагментов данных, и порядковые номера, предоставленные для ACK, упоминаются как номера данных и ACK-номера, соответственно. На фиг. 19, проиллюстрирована передача фрагментов данных с номером 11 данных и далее, которые выводятся из TCP-уровня. Для простоты, предполагается, что TCP-уровень передающего устройства допускает передачу фрагментов данных вплоть до фрагмента данных с номером данных, вычисленным посредством прибавления 6 к ACK-номеру для ACK, которое принято.
[0008] Фрагменты данных, которые выводит TCP-уровень, буферизуются на каждом из IP-уровня и Ethernet-уровня и последовательно выводятся из Ethernet-уровня. На фиг. 19, фрагмент данных передается относительно каждой строки. Предполагается, что фрагмент данных и шесть фрагментов данных могут буферизоваться на Ethernet-уровне и IP-уровне, соответственно. Приемное устройство задает номер после номера данных для фрагмента данных, который приемное устройство только что приняло (другими словами, номер данных для фрагмента данных, который приемное устройство ожидает принимать следующим), как ACK-номер.
[0009] В примере на фиг. 19, предполагается, что фрагмент 12 данных потерян в сети. Когда приемное устройство принимает фрагмент 13 данных, приемное устройство отвечает с ACK 12, поскольку фрагмент данных, который приемное устройство ожидает для поступления, представляет собой фрагмент 12 данных. До тех пор, пока фрагмент 12 данных не поступит, приемное устройство отвечает с ACK 12 при приеме фрагмента данных, отличного от фрагмента 12 данных.
[0010] TCP-уровень передающего устройства определяет то, что фрагмент 12 данных потерян, на основе того факта, что поступают три идентичных ACK (ACK 12), и повторно передает (подчеркнутый) фрагмент 12 данных. В это время, фрагменты 17 и 18 данных содержатся в буферах на Ethernet-уровне и IP-уровне в передающем устройстве. По этой причине, фрагмент 12 данных должен передаваться после фрагментов 17 и 18 данных. Помимо этого, в течение периода от момента времени, когда фрагмент 12 данных поступает в приемное устройство, до момента времени, когда ACK (ACK 19) поступает в передающее устройство, фрагменты данных, которые может передавать передающее устройство, представляют собой фрагменты данных вплоть до фрагмента 18 данных (вычисленного посредством прибавления 6 к ACK-номеру (12)). По этой причине, передающее устройство не может передавать фрагмент 19 данных и последующие фрагменты данных, и передача в силу этого принудительно временно прекращается.
[0011] Между тем, способы для переноса повторно передаваемых данных предпочтительно поверх других данных описываются в PTL 1 и 2.
[0012] PTL 1 предлагает способ обнаружения повторно передаваемого пакета на основе информации заголовка и перезаписи значения в поле типа услуги (ToS) в IP-заголовке повторно передаваемого пакета на значение, указывающее степень приоритета выше степени приоритета для нормальной передачи. Этот способ обеспечивает возможность устройству на последующей стадии предпочтительно переносить повторно передаваемые данные согласно значению в поле ToS.
[0013] PTL 2 предлагает способ инкапсуляции повторно передаваемого пакета посредством использования протокола пользовательских датаграмм (UDP) и предпочтительного переноса повторно передаваемого пакета в устройстве на последующей стадии.
Список библиографических ссылок
Патентные документы
[0014] PTL 1. WO 2002/051101 A
PTL 2. JP 2014-049905 А
Сущность изобретения
Техническая задача
[0015] Тем не менее, оба способа, описанные в PTL 1 и 2, представляют собой способы, которые обеспечивают предпочтительную обработку посредством устройства на последующей стадии и не обеспечивают возможность предпочтительной обработки повторно передаваемых данных в передающем устройстве.
[0016] Даже когда, аналогично способу, описанному в PTL 1, поле ToS повторно передаваемого пакета перезаписывается на IP-уровне, повторно передаваемый пакет не может, на канальном уровне и на нижних уровнях, предпочтительно обрабатываться, поскольку к полю ToS не обращаются на уровнях. Даже когда, аналогично способу, описанному в PTL 2, повторно передаваемый пакет инкапсулируется посредством использования UDP, обработка на IP-уровне и на нижних уровнях не затрагивается.
[0017] По этой причине, оба способа, описанные в PTL 1 и 2, не могут разрешать проблему в том, что задержка до вывода повторно передаваемых данных из передающего устройства увеличивается.
[0018] Цель настоящего изобретения заключается в том, чтобы предоставлять передающее устройство, способ передачи, программу передачи и носитель записи, которые обеспечивают возможность уменьшения задержки до вывода повторно передаваемых данных.
Решение задачи
[0019] Для решения вышеуказанной проблемы, передающее устройство согласно примерному аспекту изобретения содержит: средство ввода данных для ввода фрагмента данных, первое средство переноса, второе средство переноса, средство передачи данных для выполнения переноса фрагмента данных в первое средство переноса, средство управления повторной передачей для выполнения определения целесообразности повторной передачи фрагмента данных, средство передачи повторно передаваемых данных, когда повторная передача определяется как целесообразная, для выполнения переноса фрагмента повторно передаваемых данных, который является целесообразным для повторной передачи, во второе средство переноса, и средство обработки ввода-вывода, перед, по меньшей мере, любым фрагментом данных, остающимся в первом средстве переноса в момент времени переноса фрагмента повторно передаваемых данных во второе средство переноса, для выполнения вывода фрагмента повторно передаваемых данных во втором средстве переноса в назначение, идентичное назначению фрагмента данных в первом средстве переноса.
[0020] Так же, способ передачи согласно примерному аспекту изобретения содержит: выполнение переноса фрагмента данных, который вводится из модуля ввода данных, в первый модуль переноса, выполнение определения целесообразности повторной передачи фрагмента данных, когда повторная передача определяется как целесообразная, выполнение переноса фрагмента повторно передаваемых данных, который является целесообразным для повторной передачи, во второй модуль переноса, и перед, по меньшей мере, любым фрагментом данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выполнение вывода фрагмента повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента данных в первом модуле переноса.
[0021] Так же, на машиночитаемый носитель записи согласно примерному аспекту изобретения записывается программа передачи, инструктирующая компьютеру выполнять: функцию передачи данных для выполнения переноса фрагмента данных, который вводится из модуля ввода данных, в первый модуль переноса, функцию управления повторной передачей для выполнения определения целесообразности повторной передачи фрагмента данных, функцию передачи повторно передаваемых данных, когда повторная передача определяется как целесообразная, для выполнения переноса фрагмента повторно передаваемых данных, который является целесообразным для повторной передачи, во второй модуль переноса, и функцию обработки ввода-вывода, перед, по меньшей мере, любым фрагментом данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, для выполнения вывода фрагмента повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента данных в первом модуле переноса.
Преимущества изобретения
[0022] Передающее устройство, способ передачи, программа передачи и носитель записи настоящего изобретения обеспечивают возможность уменьшения задержки до вывода повторно передаваемых данных.
Краткое описание чертежей
[0023] Фиг. 1 показывает схему, иллюстрирующую пример конфигурации передающего устройства первого примерного варианта осуществления настоящего изобретения.
Фиг. 2 показывает схему, иллюстрирующую пример работы передающего устройства первого примерного варианта осуществления настоящего изобретения.
Фиг. 3 показывает схему, иллюстрирующую пример конфигурации системы передачи второго примерного варианта осуществления настоящего изобретения.
Фиг. 4 показывает схему, иллюстрирующую пример конфигурации передающего устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 5 показывает схему, иллюстрирующую пример конфигурации приемного устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 6 показывает схему, иллюстрирующую пример отношения соответствия между уровнями обработки и логическими и физическими модулями обработки передающего устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 7 показывает схему, иллюстрирующую пример переноса данных посредством передающего устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 8 показывает схему, иллюстрирующую пример работы передающего устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 9 показывает схему, иллюстрирующую пример работы передающего устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 10 показывает схему, иллюстрирующую еще один пример работы передающего устройства второго примерного варианта осуществления настоящего изобретения.
Фиг. 11 показывает схему, иллюстрирующую пример конфигурации передающего устройства третьего примерного варианта осуществления настоящего изобретения.
Фиг. 12 показывает схему, иллюстрирующую пример работы передающего устройства третьего примерного варианта осуществления настоящего изобретения.
Фиг. 13 показывает схему, иллюстрирующую пример конфигурации передающего устройства четвертого примерного варианта осуществления настоящего изобретения.
Фиг. 14 показывает схему, иллюстрирующую пример конфигурации передающих устройств пятого и шестого примерных вариантов осуществления настоящего изобретения.
Фиг. 15 показывает схему, иллюстрирующую другой пример конфигурации передающего устройства шестого примерного варианта осуществления настоящего изобретения.
Фиг. 16 показывает схему, иллюстрирующую пример работы передающего устройства шестого примерного варианта осуществления настоящего изобретения.
Фиг. 17 показывает схему, иллюстрирующую пример работы передающего устройства седьмого примерного варианта осуществления настоящего изобретения.
Фиг. 18 показывает схему, иллюстрирующую пример аппаратной конфигурации соответствующих примерных вариантов осуществления настоящего изобретения.
Фиг. 19 показывает схему, иллюстрирующую пример переноса данных посредством общего передающего устройства.
Фиг. 20 показывает схему, иллюстрирующую пример отношения соответствия между уровнями обработки и логическими и физическими модулями обработки общего передающего устройства.
Осуществление изобретения
Примерный вариант осуществления
[0024] Первый примерный вариант осуществления
Ниже описывается первый примерный вариант осуществления настоящего изобретения.
[0025] На фиг. 1, проиллюстрирован пример конфигурации передающего устройства 10 настоящего примерного варианта осуществления. Передающее устройство 10 настоящего примерного варианта осуществления выполнено включающим в себя модуль 11 ввода данных, первый модуль 12 переноса, второй модуль 13 переноса, модуль 14 передачи данных, модуль 15 управления повторной передачей, модуль 16 передачи повторно передаваемых данных и модуль 17 обработки ввода-вывода.
[0026] Модуль 11 ввода данных представляет собой компонент, который вводит данные. Модуль 14 передачи данных представляет собой компонент, который переносит фрагмент данных в первый модуль 12 переноса. модуль 15 управления повторной передачей представляет собой компонент, который определяет целесообразность повторной передачи фрагмента данных. Модуль 16 передачи повторно передаваемых данных представляет собой компонент, который, когда повторная передача определяется как целесообразная, переносит фрагмент повторно передаваемых данных, целесообразный для повторной передачи, во второй модуль 13 переноса. модуль 17 обработки ввода-вывода представляет собой компонент, который, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводит фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса.
[0027] Конфигурирование передающего устройства 10 таким способом инструктирует передающему устройству 10, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буфере в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0028] Далее, на фиг. 2, проиллюстрирован пример работы передающего устройства 10 настоящего примерного варианта осуществления.
[0029] Модуль 14 передачи данных переносит фрагмент данных, который модуль 11 ввода данных вводит в первый модуль 12 переноса (этапы S101 и S102). Модуль 15 управления повторной передачей определяет целесообразность повторной передачи фрагмента данных, и когда повторная передача определяется как целесообразная, модуль 16 передачи повторно передаваемых данных переносит фрагмент повторно передаваемых данных, целесообразный для повторной передачи, во второй модуль 13 переноса (этапы S103 и S104). Модуль 17 обработки ввода-вывода, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводит фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса (этап S105).
[0030] Работа таким способом инструктирует передающему устройству 10, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буфере в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0031] Как описано выше, в первом примерном варианте осуществления настоящего изобретения, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буфере в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0032] Второй примерный вариант осуществления
Далее описывается второй примерный вариант осуществления настоящего изобретения. В настоящем примерном варианте осуществления, подробнее описывается передающее устройство первого примерного варианта осуществления.
[0033] Во-первых, на фиг. 3, проиллюстрирован пример конфигурации системы передачи/приема с использованием передающего устройства 20 настоящего примерного варианта осуществления.
[0034] Передающее устройство 20 и приемное устройство 70 выполняют перенос данных посредством использования TCP-соединения 91 через сеть 90. Передающее устройство 20 передает фрагмент данных в приемное устройство 70, и приемное устройство 70 отвечает с подтверждением приема (ACK) для фрагмента данных в передающее устройство 20. Имеется вероятность того, что фрагмент данных потерян в сети 90. Предполагается, что, например, Интернет служит в качестве сети 90.
[0035] На фиг. 4, проиллюстрирован пример конфигурации передающего устройства 20 настоящего примерного варианта осуществления. Отличие от примера конфигурации на фиг. 1 заключается в том, что первый модуль 12 переноса включает в себя первый модуль 21 обработки сетевого уровня и первый модуль 22 обработки канального уровня, и второй модуль 13 переноса включает в себя второй модуль 23 обработки сетевого уровня и второй модуль 24 обработки канального уровня. Помимо этого, модуль 14 передачи данных, модуль 15 управления повторной передачей и модуль 16 передачи повторно передаваемых данных группируются в модуль 25 транспортной обработки.
[0036] Модуль 11 ввода данных представляет собой компонент, который вводит данные, которые должны передаваться в модуль 14 передачи данных. модуль 11 ввода данных вводит данные из приложения и т.п. в модуль 14 передачи данных.
[0037] Модуль 25 транспортной обработки представляет собой компонент, который достигает надежной связи при подтверждении данных из модуля 11 ввода данных, сегментации принимаемых данных на сегменты и выполнении управления повторной передачей. Модуль 25 транспортной обработки представляет собой компонент, который выполняет обработку транспортного уровня и, в настоящем примерном варианте осуществления, выполняет обработку TCP-уровня. Модуль 25 транспортной обработки включает в себя модуль 14 передачи данных, модуль 15 управления повторной передачей и модуль 16 передачи повторно передаваемых данных.
[0038] Модуль 14 передачи данных представляет собой компонент, который сегментирует данные, подтвержденные из модуля 11 ввода данных, на сегменты и переносит сегменты в первый модуль 21 обработки сетевого уровня. модуль 14 передачи данных также переносит данные, сегментированные на сегменты, в модуль 15 управления повторной передачей для повторной передачи.
[0039] Модуль 15 управления повторной передачей представляет собой компонент, который выполняет управление повторной передачей и определяет целесообразность повторной передачи фрагмента данных.
[0040] Модуль 16 передачи повторно передаваемых данных представляет собой компонент, который, когда модуль 15 управления повторной передачей определяет то, что повторная передача является целесообразной, переносит фрагмент повторно передаваемых данных (сегментация уже выполнена посредством модуля 14 передачи данных) во второй модуль 23 обработки сетевого уровня.
[0041] Первый модуль 21 обработки сетевого уровня представляет собой компонент, который инкапсулирует фрагмент данных, подтвержденный из модуля 14 передачи данных, в пакет и вручает пакет первому модулю 22 обработки канального уровня. Первый модуль 21 обработки сетевого уровня представляет собой компонент, который выполняет обработку сетевого уровня и, в настоящем примерном варианте осуществления, выполняет обработку IP-уровня.
[0042] Первый модуль 21 обработки сетевого уровня включает в себя первый буфер сетевого уровня, который подтверждает фрагмент данных из модуля 14 передачи данных и временно сохраняет подтвержденный фрагмент данных. Модуль 14 передачи данных сохраняет фрагмент данных в первом буфере сетевого уровня, и первый модуль 21 обработки сетевого уровня инкапсулирует фрагмент данных, извлеченный из первого буфера сетевого уровня, в пакет и вручает пакет первому модулю 22 обработки канального уровня.
[0043] Второй модуль 23 обработки сетевого уровня представляет собой компонент, который инкапсулирует фрагмент повторно передаваемых данных, подтвержденный из модуля 16 передачи повторно передаваемых данных, в пакет и вручает пакет второму модулю 24 обработки канального уровня. Второй модуль 23 обработки сетевого уровня, аналогично первому модулю 21 обработки сетевого уровня, также представляет собой компонент, который выполняет обработку сетевого уровня и, в настоящем примерном варианте осуществления, выполняет обработку IP-уровня.
[0044] Второй модуль 23 обработки сетевого уровня включает в себя второй буфер сетевого уровня, который подтверждает фрагмент данных из модуля 16 передачи повторно передаваемых данных и временно сохраняет подтвержденный фрагмент данных. Модуль 16 передачи повторно передаваемых данных сохраняет фрагмент данных во втором буфере сетевого уровня, и второй модуль 23 обработки сетевого уровня инкапсулирует фрагмент данных, извлеченный из второго буфера сетевого уровня, в пакет и вручает пакет второму модулю 24 обработки канального уровня.
[0045] Первый модуль 22 обработки канального уровня и второй модуль 24 обработки канального уровня представляют собой компоненты, которые инкапсулируют пакеты, подтвержденные из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня, в кадры, соответственно, и вручают кадры модулю 17 обработки ввода-вывода. Первый модуль 22 обработки канального уровня и второй модуль 24 обработки канального уровня представляют собой компоненты, которые выполняют обработку канального уровня и, в настоящем примерном варианте осуществления, выполняют обработку Ethernet.
[0046] Первый модуль 22 обработки канального уровня включает в себя первый буфер канального уровня, который подтверждает пакет из первого модуля 21 обработки сетевого уровня и временно сохраняет подтвержденный пакет. Первый модуль 21 обработки сетевого уровня сохраняет пакет в первом буфере канального уровня, и первый модуль 22 обработки канального уровня инкапсулирует пакет, извлеченный из первого буфера канального уровня, в кадр и вручает кадр модулю 17 обработки ввода-вывода.
[0047] Второй модуль 24 обработки канального уровня включает в себя второй буфер канального уровня, который подтверждает пакет из второго модуля 23 обработки сетевого уровня и временно сохраняет подтвержденный пакет. Второй модуль 23 обработки сетевого уровня сохраняет пакет во втором буфере канального уровня, и второй модуль 24 обработки канального уровня инкапсулирует пакет, извлеченный из второго буфера канального уровня, в кадр и вручает кадр модулю 17 обработки ввода-вывода.
[0048] Модуль 17 обработки ввода-вывода представляет собой компонент, который выводит фрагмент данных, подтвержденный из каждого из первого модуля 22 обработки канального уровня и второго модуля 24 обработки канального уровня, в сеть 90.
[0049] На фиг. 5, проиллюстрирован пример конфигурации приемного устройства 70. Передающее устройство 20 настоящего примерного варианта осуществления допускает обмен данными с приемным устройством 70, которое достигает общей операции TCP-приема. Соответственно, на фиг. 5, проиллюстрированы только компоненты, требуемые для описания настоящего примерного варианта осуществления.
[0050] Приемное устройство 70 включает в себя приложение 71, транспортный приемный модуль 72, модуль 75 обработки сетевого уровня, модуль 76 обработки канального уровня и модуль 77 обработки ввода-вывода. Транспортный приемный модуль 72 включает в себя модуль 73 приема данных и модуль 74 ACK-передачи.
[0051] Приложение 71 представляет собой компонент, который подтверждает данные, принимаемые посредством приемного устройства 70, и использует подтвержденные данные.
[0052] Транспортный приемный модуль 72 представляет собой компонент, который передает ACK относительно каждого сегмента, подтвержденного из модуля 75 обработки сетевого уровня, восстанавливает данные из подтвержденного сегмента(ов) и вручает восстановленные данные приложению 71. В настоящем примерном варианте осуществления, транспортный приемный модуль 72 выполняет обработку приема данных TCP-уровня.
[0053] Модуль 73 приема данных представляет собой компонент, который принимает данные (сегменты). Модуль 74 ACK-передачи представляет собой компонент, который формирует и передает ACK относительно принимаемого сегмента данных.
[0054] Модуль 75 обработки сетевого уровня представляет собой компонент, который декапсулирует пакет, принимаемый из модуля 76 обработки канального уровня, в сегмент и вручает сегмент модулю 73 приема данных. В настоящем примерном варианте осуществления, модуль 75 обработки сетевого уровня выполняет обработку приема данных IP-уровня. Модуль 75 обработки сетевого уровня инкапсулирует ACK, подтвержденный из модуля 74 ACK-передачи, в пакет и вручает пакет модулю 76 обработки канального уровня.
[0055] Модуль 76 обработки канального уровня представляет собой компонент, который декапсулирует сигнал, подтвержденный из модуля 77 обработки ввода-вывода, в пакет и вручает пакет модулю 75 обработки сетевого уровня. В настоящем примерном варианте осуществления, модуль 76 обработки канального уровня выполняет обработку Ethernet. Модуль 76 обработки канального уровня инкапсулирует пакет, подтвержденный из модуля 75 обработки сетевого уровня, в кадр и вручает кадр модулю 77 обработки ввода-вывода.
[0056] Модуль 77 обработки ввода-вывода представляет собой компонент, который преобразует сигнал, подтвержденный из сети 90, в кадр и вручает кадр модулю 76 обработки канального уровня. Модуль 77 обработки ввода-вывода также выводит кадр, подтвержденный из модуля 76 обработки канального уровня, в сеть 90.
[0057] Далее описывается модуль переноса для повторной передачи (второй модуль 13 переноса) в передающем устройстве 20 настоящего примерного варианта осуществления с иллюстрацией отношения соответствия между уровнями обработки и логическими и физическими модулями обработки.
[0058] Некоторые общедоступные сетевые интерфейсные платы (NIC) для Ethernet имеют функцию виртуализации. Использование этой функции виртуализации обеспечивает возможность операционной системе (ОС) трактовать физически одну NIC в качестве множества NIC, имеющих множество номеров прерывания. Функция виртуализации первоначально представляет собой функцию для обеспечения работы множества виртуальных машин на ОС и виртуального назначения NIC для каждой из виртуальных машин. Использование функции виртуализации NIC обеспечивает возможность передающему устройству настоящего примерного варианта осуществления иметь два тракта на сетевом уровне и канальном уровне и соединяться с сетью посредством одного интерфейса. Эта конфигурация обеспечивает возможность достижения передающего устройства настоящего примерного варианта осуществления даже посредством использования общего персонального компьютера и NIC.
[0059] На фиг. 20, проиллюстрирован пример общего представления отношения соответствия между соответствующими уровнями обработки и логическими и физическими модулями обработки в общем передающем TCP/IP-устройстве. Фиг. 20(a) иллюстрирует соответствующие уровни обработки TCP/IP, и фиг. 20(b) иллюстрирует конфигурацию логических и физических модулей обработки.
[0060] На фиг. 20(b), системная плата (корпус компьютера) и NIC соединяются между собой посредством шины на основе стандарта взаимодействия периферийных компонентов (PCI). Часть обработки Ethernet выполняется в ОС и драйверах в системной плате, а другая часть выполняется в NIC. Общая ОС включает в себя буфер для обработки IP-уровня (иногда включающей в себя некоторую обработку Ethernet) в запоминающем устройстве системной платы, и NIC включает в себя буфер для обработки Ethernet.
[0061] В отличие от этого, на фиг. 6, проиллюстрирован пример общего представления отношения соответствия между соответствующими уровнями обработки и логическими и физическими модулями обработки в передающем устройстве настоящего примерного варианта осуществления. Использование функции виртуализации NIC обеспечивает возможность формирования двух виртуальных NIC (vNIC на фиг. 6) в физической NIC, как проиллюстрировано на фиг. 6(b). Вручение кадра из каждого драйвера устройства первого модуля 12 переноса и второго модуля 13 переноса соответствующей одной из виртуальных NIC обеспечивает возможность формирования трактов, буферы которых вплоть до Ethernet отделены друг от друга.
[0062] Конфигурирование передающего устройства 20 таким способом инструктирует передающему устройству 20, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0063] Далее описывается процедура связи между передающим устройством 20 и приемным устройством 70 настоящего примерного варианта осуществления. Следует отметить, что поскольку существующая операция TCP-приема может применяться к операции приемного устройства 70, нижеприведенное описание приводится главным образом с сосредоточением на передающем устройстве 20.
[0064] На фиг. 7, проиллюстрирован пример переноса данных с использованием TCP/IP в настоящем примерном варианте осуществления. Передающее устройство 20 передает фрагмент данных в приемное устройство 70, и приемное устройство 70 отвечает с подтверждением приема (ACK) для фрагмента данных в передающее устройство 20. Хотя передающее устройство осуществляет связь через соответствующие уровни обработки, включающие в себя прикладной уровень, TCP-уровень, IP-уровень и Ethernet-уровень, TCP-уровень и нижние уровни проиллюстрированы на фиг. 7.
[0065] Порядковые номера, соответственно, предоставляются для фрагментов данных и ACK. В дальнейшем в этом документе, порядковые номера, предоставленные для фрагментов данных, и порядковые номера, предоставленные для ACK, упоминаются как номера данных и ACK-номера, соответственно. На фиг. 7, проиллюстрирована передача фрагментов данных с номером 11 данных и далее, которые выводятся из TCP-уровня. Для простоты, предполагается, что TCP-уровень передающего устройства допускает передачу фрагментов данных вплоть до фрагмента данных с номером данных, вычисленным посредством прибавления 6 к ACK-номеру для ACK, которое принято последним.
[0066] Фрагменты данных, которые выводит TCP-уровень, буферизуются на каждом из IP-уровня и Ethernet-уровня и последовательно выводятся из Ethernet-уровня. На фиг. 7, фрагмент данных передается относительно каждой строки. Предполагается, что фрагмент данных может буферизоваться на Ethernet-уровне, и шесть фрагментов данных могут буферизоваться на IP-уровне. Также предполагается, что Ethernet-уровень содержит буфер 1 для обычного фрагмента данных и буфер 2 для фрагмента повторно передаваемых данных. Хотя IP-уровень также содержит два буфера, только буфер для обычного фрагмента данных проиллюстрирован на фиг. 7. Приемное устройство задает номер после номера данных для фрагмента данных, который приемное устройство только что приняло (другими словами, номер данных для фрагмента данных, который приемное устройство ожидает принимать следующим), как ACK-номер.
[0067] В примере на фиг. 7, предполагается, что фрагмент 12 данных потерян в сети 90. Когда приемное устройство 70 принимает фрагмент 13 данных, приемное устройство 70 отвечает с ACK 12, поскольку фрагмент данных, поступление которого приемное устройство 70 ожидает, представляет собой фрагмент 12 данных. До тех пор, пока фрагмент 12 данных не поступит, приемное устройство отвечает с ACK 12 при приеме фрагмента данных, отличного от фрагмента 12 данных.
[0068] TCP-уровень передающего устройства 20 определяет то, что фрагмент 12 данных потерян, на основе того факта, что поступают три идентичных ACK (ACK 12), и повторно передает (подчеркнутый) фрагмент 12 данных. В этом случае, в настоящем примерном варианте осуществления, фрагмент повторно передаваемых данных (фрагмент 12 данных) передается посредством использования второго модуля 23 обработки сетевого уровня и второго модуля 24 обработки канального уровня. Фрагмент 12 данных выводится из модуля 17 обработки ввода-вывода перед фрагментами 17 и 18 данных, которые сохранены в буфере в первом модуле 21 обработки сетевого уровня.
[0069] Как описано выше, в то время как фрагмент 12 данных выводится после фрагментов 17 и 18 данных в примере на фиг. 19, фрагмент 12 данных выводится перед фрагментами 17 и 18 данных в примере на фиг. 7. Вследствие этого передающее устройство 20 настоящего примерного варианта осуществления может уменьшать задержку до вывода фрагмента повторно передаваемых данных.
[0070] В примере на фиг. 19, в течение периода от момента времени, когда фрагмент 12 данных поступает в приемное устройство, до момента времени, когда ACK (ACK 19), которое затем передается в качестве ответа, поступает в передающее устройство, передающее устройство находится в состоянии, в котором отсутствуют допускающие передачу данные. В отличие от этого, в примере на фиг. 7, в течение периода от момента времени, когда фрагмент 12 данных поступает в приемное устройство 70, до момента времени, когда ACK (ACK 17), которое затем передается в качестве ответа, поступает в передающее устройство 20, имеются допускающие передачу данные (фрагменты данных вплоть до фрагмента данных с номером данных, равным ACK-номеру (12), к котором прибавлено 6, т.е. фрагменты 17 и 18 данных). Как описано выше, передающее устройство 20 настоящего примерного варианта осуществления может уменьшать период времени, в течение которого передача прекращается временно (в случае фиг. 7, может исключать период времени, в течение которого передача прекращается временно). Как результат, перенос данных может выполняться с более стабильной, более высокой производительностью.
[0071] Далее, на фиг. 8-10, проиллюстрированы примеры работы передающего устройства 20 настоящего примерного варианта осуществления. Следует отметить, что поскольку операция приемного устройства 70 является аналогичной существующей операции TCP-приема, нижеприведенное описание приводится главным образом с сосредоточением на передающем устройстве 20.
[0072] Передающее устройство 20 устанавливает TCP-соединение между передающим устройством 20 и приемным устройством 70 и, при подтверждении данных, которые должны передаваться в приемное устройство 70 из модуля 11 ввода данных (приложения), начинает обработку передачи данных. Когда передающее устройство 20 не имеет данных, которые должны передаваться в приемное устройство 70, и подтверждает инструкцию завершения соединения из приложения, передающее устройство 20 заканчивает обработку передачи данных. Фиг. 8-10 иллюстрируют примеры работы передающего устройства 20 в то время, когда передающее устройство 20 выполняет обработку передачи данных. Фиг. 8 иллюстрирует пример работы, когда передающее устройство 20 передает данные, фиг. 9 иллюстрирует пример работы, когда передающее устройство 20 принимает ACK, и фиг. 10 иллюстрирует пример работы, когда таймер повторной передачи истекает.
[0073] Когда модуль 14 передачи данных в передающем устройстве 20 подтверждает данные из модуля 11 ввода данных ("Да" на этапе S201), модуль 14 передачи данных сегментирует данные на TCP-сегмент(ы). Модуль 14 передачи данных переносит TCP-сегмент(ы) в пределах пропускной способности передачи в первый модуль 12 переноса, на основе управления окном перегрузки и окна оповещения. Первый модуль 21 обработки сетевого уровня в первом модуле 12 переноса инкапсулирует подтвержденный сегмент(ы) в IP-пакет(ы) и переносит IP-пакет(ы) в первый модуль 22 обработки канального уровня. Первый модуль 22 обработки канального уровня инкапсулирует подтвержденный пакет(ы) в Ethernet-кадр(ы) и переносит Ethernet-кадр(ы) в модуль 17 обработки ввода-вывода. модуль 17 обработки ввода-вывода передает подтвержденный кадр в приемное устройство 70 (этап S202). На этапе S202, каждый сегмент, который переносится из модуля 14 передачи данных в первый модуль 12 переноса, сохраняется в одном из буферов на соответствующих уровнях (сетевом уровне и канальном уровне) до вывода из модуля 17 обработки ввода-вывода.
[0074] Модуль 14 передачи данных переносит сегмент(ы) не только в первый модуль 12 переноса, но также и в модуль 15 управления повторной передачей. В этом случае, модуль 15 управления повторной передачей активирует таймер(ы) повторной передачи (этап S203). Каждый таймер(ы) повторной передачи, например, задан как в s раз превышающий время полного обхода (RTT, сглаженное время задержки на полный обход пакета). Помимо этого, таймер повторной передачи активируется для каждого сегмента.
[0075] Когда модуль 15 управления повторной передачей принимает ACK из приемного устройства 70 через модуль 17 обработки ввода-вывода, второй модуль 13 переноса и модуль 16 передачи повторно передаваемых данных ("Да" на этапе S204), модуль 15 управления повторной передачей деактивирует соответствующий таймер повторной передачи, который модуль 15 управления повторной передачей активирует на этапе S203 (этап S205). Когда, как проиллюстрировано на фиг. 7, номер данных для фрагмента данных, прием которого ожидается, записывается в каждое ACK в качестве ACK-номера, модуль 15 управления повторной передачей деактивирует таймер(ы) повторной передачи для сегмента(ов) вплоть до сегмента с номером, предыдущим относительно ACK-номера принимаемого ACK. Например, когда ACK-номер равен 12, модуль 15 управления повторной передачей деактивирует таймер(ы) повторной передачи для сегмента(ов) вплоть до сегмента с номером 11 данных. Следует отметить, что когда на этапе S205, таймер повторной передачи уже деактивирован, модуль 15 управления повторной передачей может деактивировать таймер повторной передачи снова либо, посредством определения того, активирован и отсчитывается каждый таймер повторной передачи или нет, деактивировать только отсчитываемый таймер(ы) повторной передачи.
[0076] Когда модуль 15 управления повторной передачей принимает ACK с идентичным ACK-номером последовательно три раза ("Да" на этапе S206), модуль 15 управления повторной передачей определяет то, что повторная передача требуется, поскольку фрагмент данных потерян. Модуль 16 передачи повторно передаваемых данных переносит сегмент повторно передаваемых данных, соответствующий ACK-номеру принимаемого ACK, во второй модуль 13 переноса. Второй модуль 23 обработки сетевого уровня инкапсулирует подтвержденный сегмент в IP-пакет и переносит IP-пакет во второй модуль 24 обработки канального уровня. Второй модуль 24 обработки канального уровня инкапсулирует подтвержденный пакет в кадр и переносит кадр в модуль 17 обработки ввода-вывода. модуль 17 обработки ввода-вывода передает подтвержденный кадр в приемное устройство 70 (этап S207). В этом случае, модуль 15 управления повторной передачей снова активирует таймер повторной передачи для фрагмента повторно передаваемых данных (этап S208).
[0077] Когда таймер повторной передачи истекает ("Да" на этапе S209), модуль 15 управления повторной передачей определяет то, что требуется повторная передача фрагмента данных, соответствующего истекшему таймеру повторной передачи. Модуль 16 передачи повторно передаваемых данных повторно передает сегмент повторно передаваемых данных, содержащий фрагмент данных, через второй модуль 13 переноса (этап S210).
[0078] Работа таким способом инструктирует передающему устройству 20, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0079] Далее описываются преимущества настоящего примерного варианта осуществления.
[0080] Первое преимущество заключается в том, что может уменьшаться задержка на передачу для фрагмента повторно передаваемых данных.
[0081] В передающем TCP/IP Ethernet-устройстве с общей аппаратной конфигурацией, большой буфер передачи приводит к тому, что задержка до вывода фрагмента повторно передаваемых данных становится большой. Хотя TCP управляет повторной передачей фрагмента данных, TCP не имеет средства для предпочтительной передачи фрагмента повторно передаваемых данных из передающего устройства.
[0082] В отличие от этого, передающее устройство настоящего примерного варианта осуществления включает в себя первый модуль переноса и второй модуль переноса и передает обычный фрагмент данных посредством использования первого модуля переноса и фрагмент повторно передаваемых данных посредством использования второго модуля переноса. По этой причине, даже когда множество фрагментов данных содержатся в буфере передачи в первом модуле переноса, появляется возможность выводить фрагмент повторно передаваемых данных из передающего устройства перед фрагментами данных в первом модуле переноса. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных.
[0083] Второе преимущество заключается в том, что может уменьшаться задержка на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0084] В передающем устройстве с общей конфигурацией, поскольку фрагменты данных для идентичного назначения передаются в порядке приема посредством канального уровня, задержка до вывода фрагмента повторно передаваемых данных из канального уровня становится большой. Даже когда управление приоритетами выполняется на IP-уровне, который представляет собой сетевой уровень, период времени, требуемый для передачи фрагмента повторно передаваемых данных, не может уменьшаться, поскольку Ethernet, который представляет собой общий канальный уровень, не имеет механизма для управления приоритетами.
[0085] В отличие от этого, передающее устройство настоящего примерного варианта осуществления включает в себя второй модуль обработки канального уровня и, с использованием второго модуля обработки канального уровня, передает повторно передаваемый пакет. Другими словами, передающее устройство настоящего примерного варианта осуществления включает в себя буфер для обычного фрагмента данных и буфер для фрагмента повторно передаваемых данных на канальном уровне. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0086] Третье преимущество заключается в том, что даже сетевой уровень в общем передающем устройстве может переносить фрагмент повторно передаваемых данных в буфер для повторной передачи на канальном уровне.
[0087] Сетевой уровень в общем передающем устройстве переносит фрагменты данных, адресованные в идентичное назначение, на один канальный уровень. По этой причине, даже когда управление приоритетами выполняется на сетевом уровне, фрагменты данных, адресованные в идентичное назначение, переносятся на один канальный уровень, что приводит к тому, что задержка возникает до того, как фрагмент повторно передаваемых данных передается посредством канального уровня.
[0088] В отличие от этого, передающее устройство настоящего примерного варианта осуществления включает в себя второй модуль обработки сетевого уровня и второй модуль обработки канального уровня и, с использованием второго модуля обработки сетевого уровня и второго модуля обработки канального уровня, переносит фрагмент повторно передаваемых данных. Другими словами, передающее устройство настоящего примерного варианта осуществления включает в себя буфер для обычного фрагмента данных и буфер для фрагмента повторно передаваемых данных на каждом из сетевого уровня и канального уровня. Эта конфигурация обеспечивает возможность даже сетевому уровню в общем передающем устройстве переносить фрагмент повторно передаваемых данных из буфера для повторной передачи на сетевом уровне в буфер для повторной передачи на канальном уровне. Как следствие, появляется возможность уменьшать задержку на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0089] Четвертое преимущество заключается в том, что затраты могут уменьшаться по сравнению со случаем, в котором фрагмент повторно передаваемых данных идентифицируется на сетевом уровне и канальном уровне.
[0090] Фрагмент данных на сетевом уровне или канальном уровне не имеет информации относительно того, представляет собой фрагмент данных или нет повторно передаваемый пакет. По этой причине, для того, чтобы идентифицировать повторно передаваемый пакет на сетевом уровне и канальном уровне, требуется обращаться к TCP/IP-заголовкам всех входных фрагментов данных, извлекать фрагменты данных, имеющие релевантные TCP/IP-соединения, и логически выводить то, что операция повторной передачи посредством TCP выполнена. Операция повторной передачи посредством TCP выполняется, когда идентичное ACK передается три или более раз, таймер повторной передачи истекает (тайм-аут повторной передачи), передающее устройство уведомляется в отношении потерянного фрагмента данных с использованием варианта избирательного ACK (SACK) и т.п. Логический вывод возникновения такой операции повторной передачи требует большого количества затрат (компьютерных ресурсов, ресурсов хранения, времени вычисления, затрат на энергопотребление и т.п.).
[0091] В отличие от этого, в передающем устройстве настоящего примерного варианта осуществления, транспортный уровень сортирует фрагмент повторно передаваемых данных во второй модуль переноса. По этой причине, идентификация повторно передаваемого пакета на сетевом уровне и канальном уровне становится нецелесообразной. Эта конфигурация обеспечивает возможность уменьшения затрат по сравнению со случаем, в котором фрагмент повторно передаваемых данных идентифицируется на сетевом уровне и канальном уровне.
[0092] Пятое преимущество заключается в том, что фрагменты данных, которые обрабатываются посредством множества канальных уровней, могут выводиться из идентичного интерфейса вывода (порта вывода).
[0093] Передающее устройство, имеющее общую конфигурацию, выводит фрагменты данных, которые проходят через множество канальных уровней, из различного интерфейса вывода относительно каждого канального уровня. Следовательно, фрагмент повторно передаваемых данных, который проходит через второй модуль переноса, принудительно выводится из интерфейса вывода, отличающегося от интерфейса вывода для обычного фрагмента данных. Вывод фрагмента повторно передаваемых данных из интерфейса вывода, отличающегося от интерфейса вывода для обычного фрагмента данных, затрудняет приемному устройству нормальный прием фрагмента повторно передаваемых данных.
[0094] В отличие от этого, передающее устройство настоящего примерного варианта осуществления может иметь конфигурацию, в которой множество канальных уровней совместно используют один интерфейс вывода (порт вывода), например, посредством использования функции виртуализации NIC. Эта конфигурация обеспечивает возможность передающему устройству выводить фрагменты данных, которые обработаны посредством множества канальных уровней, из идентичного интерфейса вывода.
[0095] Как описано выше, во втором примерном варианте осуществления настоящего изобретения, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0096] Передающее устройство настоящего примерного варианта осуществления включает в себя буфер для обычного фрагмента данных и буфер для фрагмента повторно передаваемых данных на канальном уровне. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0097] Помимо этого, передающее устройство настоящего примерного варианта осуществления включает в себя буфер для обычного фрагмента данных и буфер для фрагмента повторно передаваемых данных на каждом из сетевого уровня и канального уровня. Эта конфигурация обеспечивает возможность даже сетевому уровню в общем передающем устройстве переносить фрагмент повторно передаваемых данных из буфера для повторной передачи на сетевом уровне в буфер для повторной передачи на канальном уровне. Как следствие, появляется возможность уменьшать задержку на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0098] В передающем устройстве настоящего примерного варианта осуществления, транспортный уровень сортирует фрагмент повторно передаваемых данных во второй модуль переноса. По этой причине, идентификация повторно передаваемого пакета на сетевом уровне и канальном уровне становится нецелесообразной. Эта конфигурация обеспечивает возможность уменьшения затрат по сравнению со случаем, в котором фрагмент повторно передаваемых данных идентифицируется на сетевом уровне и канальном уровне.
[0099] Передающее устройство настоящего примерного варианта осуществления может иметь конфигурацию, в которой множество канальных уровней совместно используют один интерфейс вывода (порт вывода), например, посредством использования функции виртуализации NIC. Эта конфигурация обеспечивает возможность вывода фрагментов данных, которые передаются на множество канальных уровней, из идентичного интерфейса вывода.
[0100] Третий примерный вариант осуществления
Далее описывается третий примерный вариант осуществления настоящего изобретения.
[0101] Второй примерный вариант осуществления сконфигурирован таким образом, что установлены два модуля обработки сетевого уровня и два модуля обработки канального уровня, и соответствующие модули переноса включают в себя различные пары из модуля обработки сетевого уровня и модуля обработки канального уровня. В отличие от этого, в настоящем примерном варианте осуществления, модули переноса совместно используют один модуль обработки сетевого уровня.
[0102] На фиг. 11, проиллюстрирован пример конфигурации передающего устройства 30 настоящего примерного варианта осуществления. Отличия от фиг. 4 заключаются в том, что передающее устройство 30 включает в себя только один модуль обработки сетевого уровня и включает в себя модуль 36 передачи повторно передаваемых данных вместо модуля 16 передачи повторно передаваемых данных. Поскольку другие компоненты являются аналогичными компонентам на фиг. 4, их описание опускается.
[0103] Отличие между модулем 36 передачи повторно передаваемых данных и модулем 16 передачи повторно передаваемых данных заключается в том, что модуль 36 передачи повторно передаваемых данных обеспечивает возможность переноса сегмента повторно передаваемых данных в модуль 31 обработки сетевого уровня с флагом, указывающим то, что сегмент представляет собой фрагмент повторно передаваемых данных.
[0104] Модуль 31 обработки сетевого уровня подтверждает сегменты из модуля 14 передачи данных и модуля 36 передачи повторно передаваемых данных и инкапсулирует сегменты в пакеты. Модуль 31 обработки сетевого уровня подтверждает флаг каждого сегмента и переносит обычный фрагмент данных в первый модуль 22 обработки канального уровня и фрагмент повторно передаваемых данных во второй модуль 24 обработки канального уровня, соответственно.
[0105] Конфигурирование передающего устройства 30 таким способом инструктирует передающему устройству 30, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0106] Когда передающее устройство настоящего примерного варианта осуществления переносит фрагмент повторно передаваемых данных из транспортного уровня на сетевой уровень, передающее устройство предоставляет фрагмент повторно передаваемых данных с флагом, указывающим то, что фрагмент данных представляет собой фрагмент повторно передаваемых данных. Сетевой уровень подтверждает флаг и, когда данные представляют собой фрагмент повторно передаваемых данных, переносит фрагмент данных на канальный уровень для повторной передачи. По этой причине, появляется возможность сортировать обычный фрагмент данных и фрагмент повторно передаваемых данных на два канальных уровня, даже когда только один сетевой уровень обрабатывает фрагменты данных. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0107] В передающем устройстве настоящего примерного варианта осуществления, соответствующие модули переноса совместно используют один модуль обработки сетевого уровня. Эта конфигурация обеспечивает возможность уменьшения аппаратных ресурсов, которые использует передающее устройство, по сравнению со случаем, в котором передающее устройство включает в себя два модуля обработки сетевого уровня.
[0108] Далее, с использованием фиг. 8-10 и 12, описываются примеры работы передающего устройства 30 настоящего примерного варианта осуществления.
[0109] Когда модуль 36 передачи повторно передаваемых данных переносит сегмент, содержащий повторно передаваемые данные, на этапе S207 на фиг. 9 и на этапе S210 на фиг. 10, модуль 36 передачи повторно передаваемых данных предоставляет сегмент повторной передачи с флагом, указывающим то, что сегмент представляет собой фрагмент повторно передаваемых данных. Модуль 31 обработки сетевого уровня подтверждает флаг каждого сегмента на этапе S202 на фиг. 8, на этапе S207 на фиг. 9 и на этапе S210 на фиг. 10 и переносит обычный фрагмент данных в первый модуль 22 обработки канального уровня и фрагмент повторно передаваемых данных во второй модуль 24 обработки канального уровня.
[0110] На фиг. 12, проиллюстрирован пример работы модуля 31 обработки сетевого уровня на этапе S202 на фиг. 8, на этапе S207 на фиг. 9 и на этапе S210 на фиг. 10.
[0111] Когда модуль 31 обработки сетевого уровня подтверждает сегмент из модуля 14 передачи данных или модуля 36 передачи повторно передаваемых данных (этап S301), модуль 31 обработки сетевого уровня инкапсулирует сегмент в пакет (этап S302). Когда флаг, указывающий то, что сегмент представляет собой фрагмент повторно передаваемых данных, не предоставляется в сегмент ("Нет" на этапе S303), модуль 31 обработки сетевого уровня переносит пакет в первый модуль 22 обработки канального уровня (этап S304). Когда флаг, указывающий то, что сегмент представляет собой фрагмент повторно передаваемых данных, предоставляется в сегмент, модуль 31 обработки сетевого уровня переносит пакет во второй модуль 24 обработки канального уровня (этап S305).
[0112] Работа таким способом инструктирует передающему устройству 30, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0113] Как описано выше, в третьем примерном варианте осуществления настоящего изобретения, аналогично первому и второму примерным вариантам осуществления, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0114] Когда передающее устройство настоящего примерного варианта осуществления переносит фрагмент повторно передаваемых данных из транспортного уровня на сетевой уровень, передающее устройство предоставляет фрагмент повторно передаваемых данных с флагом, указывающим то, что фрагмент данных представляет собой фрагмент повторно передаваемых данных. Сетевой уровень подтверждает флаг и переносит фрагмент повторно передаваемых данных на канальный уровень для повторной передачи. По этой причине, появляется возможность сортировать обычный фрагмент данных и фрагмент повторно передаваемых данных на два канальных уровня, даже когда только один сетевой уровень обрабатывает фрагменты данных. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных на канальном уровне.
[0115] В передающем устройстве настоящего примерного варианта осуществления, соответствующие модули переноса совместно используют один модуль обработки сетевого уровня. Эта конфигурация обеспечивает возможность уменьшения аппаратных ресурсов, которые использует передающее устройство, по сравнению со случаем, в котором передающее устройство включает в себя два модуля обработки сетевого уровня.
[0116] Четвертый примерный вариант осуществления
Далее описывается четвертый примерный вариант осуществления настоящего изобретения.
[0117] Второй примерный вариант осуществления сконфигурирован таким образом, что установлены два модуля обработки сетевого уровня и два модуля обработки канального уровня, и соответствующие модули переноса включают в себя различные пары из модуля обработки сетевого уровня и модуля обработки канального уровня. В третьем примерном варианте осуществления соответствующие модули переноса совместно используют один модуль обработки сетевого уровня. В отличие от этого, в настоящем примерном варианте осуществления, соответствующие модули переноса совместно используют один модуль обработки канального уровня.
[0118] На фиг. 13, проиллюстрирован пример конфигурации передающего устройства 40 настоящего примерного варианта осуществления. Отличие от фиг. 4 заключается в том, что передающее устройство 40 включает в себя только один модуль обработки канального уровня. Поскольку другие компоненты являются аналогичными компонентам на фиг. 4, их описание опускается.
[0119] Модуль 41 обработки канального уровня подтверждает пакеты из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня и инкапсулирует пакеты в кадры. Модуль 41 обработки канального уровня переносит кадрированные фрагменты данных в модуль 17 обработки ввода-вывода.
[0120] Конфигурирование передающего устройства 40 таким способом инструктирует передающему устройству 40, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0121] Передающее устройство настоящего примерного варианта осуществления включает в себя два модуля обработки сетевого уровня. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных на сетевом уровне.
[0122] В передающем устройстве настоящего примерного варианта осуществления, соответствующие модули переноса совместно используют один модуль обработки канального уровня. Эта конфигурация обеспечивает возможность уменьшения аппаратных ресурсов, которые использует передающее устройство, по сравнению со случаем, в котором передающее устройство включает в себя два модуля обработки канального уровня.
[0123] Далее, с использованием фиг. 8-10, описываются примеры работы передающего устройства 40 настоящего примерного варианта осуществления.
[0124] На этапе S202 на фиг. 8, модуль 14 передачи данных переносит фрагмент данных в первый модуль 21 обработки сетевого уровня. Первый модуль 21 обработки сетевого уровня, который подтверждает фрагмент данных, переносит фрагмент данных в модуль 41 обработки канального уровня. модуль 41 обработки канального уровня выводит фрагмент данных через модуль 17 обработки ввода-вывода.
[0125] На этапе S207 на фиг. 9 и на этапе S210 на фиг. 10, модуль 16 передачи повторно передаваемых данных переносит фрагмент повторно передаваемых данных во второй модуль 23 обработки сетевого уровня. Второй модуль 23 обработки сетевого уровня, который подтверждает фрагмент повторно передаваемых данных, переносит фрагмент данных в модуль 41 обработки канального уровня. модуль 41 обработки канального уровня выводит фрагмент данных через модуль 17 обработки ввода-вывода.
[0126] Работа таким способом инструктирует передающему устройству 40, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0127] Как описано выше, в четвертом примерном варианте осуществления настоящего изобретения, аналогично первому-третьему примерным вариантам осуществления, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0128] Передающее устройство настоящего примерного варианта осуществления включает в себя два модуля обработки сетевого уровня. Эта конфигурация обеспечивает возможность уменьшения задержки на передачу для фрагмента повторно передаваемых данных на сетевом уровне.
[0129] В передающем устройстве настоящего примерного варианта осуществления, соответствующие модули переноса совместно используют один модуль обработки канального уровня. Эта конфигурация обеспечивает возможность уменьшения аппаратных ресурсов, которые использует передающее устройство, по сравнению со случаем, в котором передающее устройство включает в себя два модуля обработки канального уровня.
[0130] Пятый примерный вариант осуществления
Далее описывается пятый примерный вариант осуществления настоящего изобретения. Настоящий примерный вариант осуществления представляет собой вариант осуществления, в котором когда два модуля обработки сетевого уровня устанавливаются, условие переноса для потока связи в первом модуле 21 обработки сетевого уровня и условие переноса для потока связи во втором модуле 23 обработки сетевого уровня задаются идентичными друг другу.
[0131] Обычно, на IP-уровне, пакетный фильтр задается согласно состоянию сеанса связи и выполнен с возможностью разрешать только пакету TCP-соединения, которое нормально устанавливается, проходить, чтобы повышать уровень безопасности при обслуживании и связи. По этой причине, когда второй модуль 13 переноса используется, состояния обработки таких пакетных фильтров, заданных для первого модуля 12 переноса и второго модуля 13 переноса, иногда должны задаваться идентичными друг другу. В настоящем примерном варианте осуществления, описывается вариант осуществления, в котором условия переноса для потоков связи, такие как состояния обработки пакетных фильтров, задаются идентичными друг другу в первом модуле 12 переноса и втором модуле 13 переноса.
[0132] На фиг. 14, проиллюстрирован пример конфигурации передающего устройства 50 настоящего примерного варианта осуществления. Модуль 58 хранения состояний добавляется в конфигурацию на фиг. 4. модуль 58 хранения состояний может добавляться в конфигурацию на фиг. 13.
[0133] Модуль 58 хранения состояний представляет собой модуль, который сохраняет условие переноса для потока связи, к примеру, состояние обработки пакетного фильтра, в каждом из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня. Первый модуль 21 обработки сетевого уровня и второй модуль 23 обработки сетевого уровня, совместно использующие модуль 58 хранения состояний, позволяют первому модулю 21 обработки сетевого уровня и второму модулю 23 обработки сетевого уровня обеспечивать совпадение своих условий переноса друг с другом. В модуле 58 хранения состояний, могут сохраняться, например, IP-адрес и номер порта относительно соединения, которое разрешает пакетам проходить.
[0134] Конфигурирование передающего устройства 50 таким способом инструктирует передающему устройству 50, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0135] Передающее устройство настоящего примерного варианта осуществления имеет модуль хранения состояний, установленный для множества сетевых уровней, и синхронизирует условия переноса на множестве сетевых уровней друг с другом. Даже когда множество сетевых уровней используются, эта конфигурация обеспечивает возможность синхронизации условий переноса на соответствующих сетевых уровнях друг с другом таким образом, что несоответствие не возникает в обработке.
[0136] Передающее устройство настоящего примерного варианта осуществления имеет модуль хранения состояний, установленный между двумя сетевыми уровнями, и синхронизирует состояния обработки пакетных фильтров друг с другом. Эта конфигурация обеспечивает возможность задания идентичными друг другу состояний обработки динамических фильтров, которые задаются согласно состоянию связи, между двумя сетевыми уровнями, что обеспечивает возможность выполнения нормальной связи.
[0137] Далее описывается пример работы передающего устройства 50 настоящего примерного варианта осуществления.
[0138] Каждый раз, когда каждый из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня изменяет условие переноса для потока связи, к примеру, состояние обработки динамического фильтра, каждый из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня сохраняет измененное условие переноса в модуле 58 хранения состояний. Когда каждый из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня выполняет обработку передачи, такую как фильтрация, каждый из первого модуля 21 обработки сетевого уровня и второго модуля 23 обработки сетевого уровня выполняет обработку передачи, обращающуюся к условию переноса, сохраненному в модуле 58 хранения состояний.
[0139] Работа таким способом инструктирует передающему устройству 50, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0140] Как описано выше, в пятом примерном варианте осуществления настоящего изобретения, аналогично первому-третьему примерным вариантам осуществления, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0141] Передающее устройство настоящего примерного варианта осуществления имеет модуль хранения состояний, установленный для множества сетевых уровней, и синхронизирует условия переноса на множестве сетевых уровней друг с другом. Даже когда множество сетевых уровней используются, эта конфигурация обеспечивает возможность синхронизации условий переноса на соответствующих сетевых уровнях друг с другом таким образом, что несоответствие не возникает в обработке.
[0142] Передающее устройство настоящего примерного варианта осуществления имеет модуль хранения состояний, установленный между двумя сетевыми уровнями, и синхронизирует состояния обработки пакетных фильтров друг с другом. Эта конфигурация обеспечивает возможность задания идентичными друг другу состояний обработки динамических фильтров, которые задаются согласно состоянию связи, между двумя сетевыми уровнями, что обеспечивает возможность выполнения нормальной связи.
[0143] Шестой примерный вариант осуществления
Далее описывается шестой примерный вариант осуществления настоящего изобретения. Настоящий примерный вариант осуществления представляет собой вариант осуществления, в котором число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, измеряется.
[0144] Даже когда управление приоритетами фрагмента повторно передаваемых данных с использованием второго модуля переноса вводится в передающее устройство, аналогично первому-пятому примерным вариантам осуществления, для пользователей затруднительно выяснять эффект введения управления приоритетами, если не получается число фрагментов данных, которые опережает фрагмент повторно передаваемых данных. Следовательно, в настоящем примерном варианте осуществления, измерение, посредством передающего устройства, числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных вследствие управления приоритетами, обеспечивает возможность пользователям выяснять эффект введения управления приоритетами. Также имеется вероятность того, что эти возможности проясняют инвестиционный эффект в управлении приоритетами, в результате чего может повышаться степень удовлетворенности пользователей.
[0145] На фиг. 15, проиллюстрирован пример конфигурации передающего устройства 60 настоящего примерного варианта осуществления. На фиг. 15, модуль 58 хранения состояний добавляется в конфигурацию на фиг. 4. модуль 58 хранения состояний может добавляться в пример конфигурации на фиг. 11 или 13.
[0146] В настоящем примерном варианте осуществления, вычисление числа опереженных фрагментов данных выполняется посредством второго модуля 23 обработки сетевого уровня или второго модуля 24 обработки канального уровня.
[0147] Когда вычисление числа опереженных фрагментов данных выполняется посредством второго модуля 23 обработки сетевого уровня, число фрагментов данных, которые должны вычисляться, равно числу фрагментов данных, которые опережает фрагмент повторно передаваемых данных на сетевом уровне, и не включает в себя число фрагментов данных, которые опережает фрагмент повторно передаваемых данных на канальном уровне.
[0148] Когда вычисление числа опереженных фрагментов данных выполняется посредством второго модуля 24 обработки канального уровня, может вычисляться число фрагментов данных, которые опережает фрагмент повторно передаваемых данных на канальном уровне, или сумма числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных на сетевом уровне, и числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных на канальном уровне.
[0149] Во-первых, описывается случай, в котором вычисление числа опереженных фрагментов данных выполняется посредством второго модуля 23 обработки сетевого уровня.
[0150] Когда первый модуль 21 обработки сетевого уровня переносит пакет данных на канальный уровень, первый модуль 21 обработки сетевого уровня сохраняет номер данных (порядковый TCP-номер) для пакета данных в модуле 58 хранения состояний. Номер данных (первый номер данных) представляет собой номер данных для последнего пакета данных, который перенесен на канальный уровень.
[0151] Когда модуль 14 передачи данных переносит фрагмент данных в первый модуль 21 обработки сетевого уровня, модуль 14 передачи данных сохраняет номер данных (второй номер данных) для фрагмента данных в модуле 58 хранения состояний. Второй номер данных представляет собой наибольший номер данных из номера(ов) данных фрагмента(ов) данных, сохраненного в буфере в первом модуле 21 обработки сетевого уровня.
[0152] Когда второй модуль 23 обработки сетевого уровня переносит фрагмент повторно передаваемых данных на канальный уровень, второй модуль 23 обработки сетевого уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных на сетевом уровне, на основе первого номера данных и второго номера данных, сохраненных в модуле 58 хранения состояний.
[0153] Например, в случае примера на фиг. 7, число фрагментов данных, сохраненных на IP-уровне, вычисляется посредством вычитания первого номера данных из второго номера данных. Когда фрагмент повторно передаваемых данных с номером 12 данных переносится с IP-уровня на Ethernet-уровень, первый номер данных и второй номер данных, которые сохраняет модуль 58 хранения состояний, равны 17 и 18, соответственно. В это время, число фрагментов данных, сохраненных на IP-уровне, вычисляется посредством вычитания первого номера данных из второго номера данных таким образом, что оно составляет 1, что представляет собой число фрагментов данных, которые опережает фрагмент повторно передаваемых данных с номером 12 данных.
[0154] Далее описывается случай, в котором вычисление числа опереженных фрагментов данных на канальном уровне выполняется посредством второго модуля 24 обработки канального уровня.
[0155] Когда первый модуль 22 обработки канального уровня переносит пакет данных в модуль 17 обработки ввода-вывода, первый модуль 22 обработки канального уровня сохраняет номер данных (порядковый TCP-номер) (третий номер данных) для пакета данных в модуле 58 хранения состояний. Третий номер данных представляет собой номер данных для последнего пакета данных, который перенесен из первого модуля 22 обработки канального уровня в модуль 17 обработки ввода-вывода.
[0156] Когда первый модуль 21 обработки сетевого уровня (или модуль 31 обработки сетевого уровня) переносит фрагмент данных в первый модуль 22 обработки канального уровня, первый модуль 21 обработки сетевого уровня сохраняет номер данных (первый номер данных) для фрагмента данных в модуле 58 хранения состояний. Первый номер данных представляет собой номер данных для последнего фрагмента данных, который перенесен на канальный уровень и, в этом случае, наибольший номер данных из номера(ов) данных фрагмента(ов) данных, сохраненного в буфере в первом модуле 22 обработки канального уровня.
[0157] Когда второй модуль 24 обработки канального уровня переносит фрагмент повторно передаваемых данных в модуль 17 обработки ввода-вывода, второй модуль 24 обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных на канальном уровне, на основе третьего номера данных и первого номера данных, сохраненных в модуле 58 хранения состояний.
[0158] Например, в случае примера на фиг. 7, число фрагментов данных, сохраненных в буфере 1 на Ethernet-уровне, вычисляется посредством вычитания третьего номера данных из первого номера данных. Когда фрагмент повторно передаваемых данных с номером 12 данных переносится из буфера 2 на Ethernet-уровне в модуль обработки ввода-вывода, третий номер данных и первый номер данных, которые сохраняет модуль 58 хранения состояний, равны 16 и 17, соответственно. В это время, число фрагментов данных, сохраненных в буфере 1 на Ethernet-уровне, вычисляется посредством вычитания третьего номера данных из первого номера данных таким образом, что оно составляет 1, что представляет собой число фрагментов данных, которые опережает фрагмент повторно передаваемых данных с номером 12 данных на канальном уровне.
[0159] Далее описывается случай, в котором вычисление суммы числа фрагментов данных, которые опережаются на сетевом уровне, и числа фрагментов данных, которые опережаются на канальном уровне, выполняется посредством второго модуля 24 обработки канального уровне.
[0160] Когда первый модуль 22 обработки канального уровня переносит пакет данных в модуль 17 обработки ввода-вывода, первый модуль 22 обработки канального уровня сохраняет номер данных (порядковый TCP-номер) (третий номер данных) для пакета данных в модуле 58 хранения состояний. Третий номер данных представляет собой номер данных для последнего пакета данных, который перенесен из первого модуля 22 обработки канального уровня в модуль 17 обработки ввода-вывода.
[0161] Когда модуль 14 передачи данных переносит фрагмент данных в первый модуль 21 обработки сетевого уровня, модуль 14 передачи данных сохраняет номер данных (второй номер данных) для фрагмента данных в модуле 58 хранения состояний. Второй номер данных представляет собой наибольший номер данных из номера(ов) данных фрагмента(ов) данных, сохраненного в буфере в первом модуле 21 обработки сетевого уровня.
[0162] Когда второй модуль 24 обработки канального уровня переносит фрагмент повторно передаваемых данных в модуль 17 обработки ввода-вывода, второй модуль 24 обработки канального уровня вычисляет сумму чисел фрагментов данных, которые опережаются на канальном уровне и сетевом уровне, на основе третьего номера данных и второго номера данных, сохраненных в модуле 58 хранения состояний.
[0163] Например, в случае примера на фиг. 7, сумма чисел фрагментов данных, сохраненных на сетевом уровне и в буфере 1 на Ethernet-уровне, вычисляется посредством вычитания третьего номера данных из второго номера данных. Когда фрагмент повторно передаваемых данных с номером 12 данных переносится из буфера 2 на Ethernet-уровне в модуль обработки ввода-вывода, третий номер данных и второй номер данных, которые сохраняет модуль 58 хранения состояний, равны 16 и 18, соответственно. В это время, сумма чисел фрагментов данных, сохраненных в буфере 1 на Ethernet-уровне и IP-уровне, вычисляется посредством вычитания третьего номера данных из второго номера данных таким образом, что она составляет 2, что представляет собой число фрагментов данных, которые опережает фрагмент повторно передаваемых данных с номером 12 данных на канальном уровне и сетевом уровне.
[0164] Конфигурирование передающего устройства таким способом инструктирует передающему устройству, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0165] Передающее устройство настоящего примерного варианта осуществления вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, из номеров данных, сохраненных в модуле хранения состояний. Эта конфигурация обеспечивает возможность пользователям выяснять эффект введения управления приоритетами.
[0166] Далее, на фиг. 16, проиллюстрирован пример работы для операции вычисления количества опереженных данных, выполняемой посредством передающего устройства 60 настоящего примерного варианта осуществления. Поскольку операция переноса фрагмента повторно передаваемых данных является аналогичной операциям переноса, описанным в первом-пятом примерных вариантах осуществления, ее описание опускается.
[0167] Во-первых, описывается пример операции вычисления числа фрагментов данных, которые опережаются на сетевом уровне.
[0168] Во-первых, когда первый модуль 21 обработки сетевого уровня переносит фрагмент данных на канальный уровень ("Да" на этапе S401), первый модуль 21 обработки сетевого уровня сохраняет номер данных (первый номер данных) для фрагмента данных в модуле 58 хранения состояний (этап S402). Первый номер данных представляет собой номер данных для последнего фрагмента данных, который перенесен из первого модуля 21 обработки сетевого уровня.
[0169] Когда модуль 14 передачи данных переносит фрагмент данных в первый модуль 21 обработки сетевого уровня ("Да" на этапе S403), модуль 14 передачи данных сохраняет номер данных (второй номер данных) для фрагмента данных в модуле 58 хранения состояний (этап S404). Второй номер данных представляет собой наибольший номер данных из номера(ов) данных фрагмента(ов) данных, сохраненного в буфере в первом модуле 21 обработки сетевого уровня.
[0170] Когда второй модуль 23 обработки сетевого уровня переносит фрагмент повторно передаваемых данных на канальный уровень ("Да" на этапе S405), второй модуль 23 обработки сетевого уровня вычисляет число фрагментов данных, которые опережаются, на основе первого номера данных и второго номера данных, сохраненных в модуле 58 хранения состояний (этап S406).
[0171] Далее описывается пример операции вычисления числа фрагментов данных, которые опережаются на канальном уровне.
[0172] Во-первых, когда первый модуль 22 обработки канального уровня переносит фрагмент данных в модуль 17 обработки ввода-вывода ("Да" на этапе S401), первый модуль 22 обработки канального уровня сохраняет номер данных (третий номер данных) для фрагмента данных в модуле 58 хранения состояний (этап S402). Третий номер данных представляет собой номер данных для последнего фрагмента данных, который перенесен из первого модуля 22 обработки канального уровня.
[0173] Когда первый модуль 21 обработки сетевого уровня или модуль 31 обработки сетевого уровня переносит фрагмент данных в первый модуль 22 обработки канального уровня ("Да" на этапе S403), первый модуль 21 обработки сетевого уровня или модуль 31 обработки сетевого уровня сохраняет номер данных (первый номер данных) для фрагмента данных в модуле 58 хранения состояний (этап S404). Первый номер данных представляет собой наибольший номер данных из номера(ов) данных фрагмента(ов) данных, сохраненного в буфере в первом модуле 22 обработки канального уровня.
[0174] Когда второй модуль 24 обработки канального уровня переносит фрагмент повторно передаваемых данных в модуль 17 обработки ввода-вывода ("Да" на этапе S405), второй модуль 24 обработки канального уровня вычисляет число фрагментов данных, которые опережаются, на основе третьего номера данных и первого номера данных, сохраненных в модуле 58 хранения состояний (этап S406).
[0175] Далее описывается пример операции вычисления суммы чисел фрагментов данных, которые опережаются на канальном уровне и сетевом уровне.
[0176] Во-первых, когда первый модуль 22 обработки канального уровня переносит фрагмент данных в модуль 17 обработки ввода-вывода ("Да" на этапе S401), первый модуль 22 обработки канального уровня сохраняет номер данных (третий номер данных) для фрагмента данных в модуле 58 хранения состояний (этап S402). Третий номер данных представляет собой номер данных для последнего фрагмента данных, который перенесен из первого модуля 22 обработки канального уровня.
[0177] Когда модуль 14 передачи данных переносит фрагмент данных в первый модуль 21 обработки сетевого уровня ("Да" на этапе S403), модуль 14 передачи данных сохраняет номер данных (второй номер данных) для фрагмента данных в модуле 58 хранения состояний (этап S404). Второй номер данных представляет собой наибольший номер данных из номера(ов) данных фрагмента(ов) данных, сохраненного в буфере в первом модуле 21 обработки сетевого уровня.
[0178] Когда второй модуль 24 обработки канального уровня переносит фрагмент повторно передаваемых данных в модуль 17 обработки ввода-вывода ("Да" на этапе S405), второй модуль 24 обработки канального уровня вычисляет число фрагментов данных, которые опережаются, на основе третьего номера данных и второго номера данных, сохраненных в модуле 58 хранения состояний (этап S406).
[0179] Работа таким способом инструктирует передающему устройству, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0180] Как описано выше, в шестом примерном варианте осуществления настоящего изобретения, аналогично первому-пятому примерным вариантам осуществления, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0181] Передающее устройство настоящего примерного варианта осуществления вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, из номеров данных, сохраненных в модуле хранения состояний. Эта конфигурация обеспечивает возможность пользователям выяснять эффект введения управления приоритетами.
[0182] Седьмой примерный вариант осуществления
Далее описывается седьмой примерный вариант осуществления настоящего изобретения. Настоящий примерный вариант осуществления представляет собой вариант осуществления, в котором номер в соответствии с предварительно определенным правилом предоставляется для каждого выходного фрагмента данных в модуле обработки ввода-вывода.
[0183] В первом-шестом примерных вариантах осуществления, фрагмент данных, выводимый из первого модуля 21 обработки сетевого уровня, и фрагмент повторно передаваемых данных, выводимый из второго модуля 23 обработки сетевого уровня, не имеют последовательных номеров пакетов. Тем не менее, некоторые приемные устройства предполагают, что последовательные номера пакетов предоставляются для принимаемых данных. Например, такие приемные устройства включают в себя приемное устройство, которые, при условии, что последовательный номер содержится в поле идентификатора (IP-идентификатор (IPID)) в IP-заголовке, логически выводит потерю фрагмента данных, на основе IPID. По этой причине, в настоящем примерном варианте осуществления, номер в соответствии с предварительно определенным правилом, например, последовательный номер предоставляется для каждого выходного фрагмента данных в модуле обработки ввода-вывода.
[0184] Во-первых, описывается пример конфигурации передающего устройства настоящего примерного варианта осуществления. Пример конфигурации передающего устройства настоящего примерного варианта осуществления является аналогичным примерам конфигурации в первом-шестом примерных вариантах осуществления (фиг. 1, 4, 11, 14 и 15).
[0185] Модуль 17 обработки ввода-вывода подтверждает кадры данных из первого модуля 12 переноса и второго модуля 13 переноса, предоставляет подтвержденным кадрам номера в соответствии с предварительно определенным правилом и выводит кадры в приемное устройство. Например, модуль 17 обработки ввода-вывода перезаписывает IPID в IP-заголовках подтвержденных кадров на последовательные номера.
[0186] Конфигурирование передающего устройства таким способом инструктирует передающему устройству, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0187] Передающее устройство настоящего примерного варианта осуществления предоставляет каждого выходному фрагменту данных номер в соответствии с предварительно определенным правилом в модуле обработки ввода-вывода. Эта конфигурация обеспечивает возможность вывода фрагмента данных, содержащего номер в соответствии с предварительно определенным правилом.
[0188] Далее, с использованием фиг. 17, описывается пример работы модуля 17 обработки ввода-вывода передающего устройства настоящего примерного варианта осуществления. Поскольку работа компонентов, отличных от модуля 17 обработки ввода-вывода, является аналогичной работе, описанной в первом-шестом примерных вариантах осуществления, ее описание опускается.
[0189] Когда модуль 17 обработки ввода-вывода подтверждает кадр данных из первого модуля 12 переноса или второго модуля 13 переноса ("Да" на этапе S501), модуль 17 обработки ввода-вывода предоставляет кадру номер в соответствии с предварительно определенным правилом (этап S502). Например, модуль 17 обработки ввода-вывода перезаписывает IPID в IP-заголовке кадра на последовательный номер. Модуль 17 обработки ввода-вывода выводит кадр в приемное устройство (этап S503).
[0190] Работа таким способом инструктирует передающему устройству, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле 12 переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль 13 переноса, выводить фрагмент повторно передаваемых данных во втором модуле 13 переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле 12 переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля 13 переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле 12 переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0191] Как описано выше, в седьмом примерном варианте осуществления настоящего изобретения, аналогично первому-шестому примерным вариантам осуществления, передающее устройство, перед, по меньшей мере, любым фрагментом(ами) данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выводит фрагмент повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента(ов) данных в первом модуле переноса. Эта конфигурация обеспечивает возможность вывода фрагмента повторно передаваемых данных раньше посредством использования второго модуля переноса, даже когда множество фрагментов данных содержатся в буферах в первом модуле переноса. Как результат, задержка до вывода фрагмента повторно передаваемых данных может уменьшаться.
[0192] Передающее устройство настоящего примерного варианта осуществления предоставляет каждого выходному фрагменту данных номер в соответствии с предварительно определенным правилом в модуле обработки ввода-вывода. Эта конфигурация обеспечивает возможность вывода фрагмента данных, содержащего номер в соответствии с предварительно определенным правилом.
[0193] Пример аппаратной конфигурации
В дальнейшем описывается пример конфигурации аппаратных ресурсов для достижения каждого из вышеописанных передающих устройств (10, 20, 30, 40, 50 и 60) в соответствующих примерных вариантах осуществления настоящего изобретения посредством использования информационного обрабатывающего устройства (компьютера). Следует отметить, что каждое передающее устройство может достигаться физически или функционально посредством использования, по меньшей мере, двух информационных обрабатывающих устройств. Каждое передающее устройство также может достигаться в качестве специализированного устройства. Только некоторые функции каждого передающего устройства могут достигаться посредством использования информационного обрабатывающего устройства.
[0194] Фиг. 18 является схемой, принципиально иллюстрирующей пример аппаратной конфигурации информационного обрабатывающего устройства, которое допускает достижение передающих устройств соответствующих примерных вариантов осуществления настоящего изобретения. Информационное обрабатывающее устройство 80 включает в себя интерфейс 81 связи, интерфейс 82 ввода-вывода, арифметическое устройство 83, устройство 84 хранения данных, энергонезависимое устройство 85 хранения данных и устройство 86 накопителя.
[0195] Интерфейс 81 связи представляет собой средство связи, посредством которого каждое из передающих устройств соответствующих примерных вариантов осуществления обменивается данными с внешним устройством проводным и/или беспроводным способом. Следует отметить, что когда передающее устройство достигается с использованием, по меньшей мере, двух информационных обрабатывающих устройств, информационные обрабатывающие устройства могут соединяться с поддержкой обмена данными через интерфейсы 81 связи.
[0196] Интерфейс 82 ввода-вывода представляет собой человеко-машинный интерфейс, такой как клавиатура, которая представляет собой пример устройства ввода, и дисплей, который служит в качестве устройства вывода.
[0197] Арифметическое устройство 83 представляет собой арифметическое обрабатывающее устройство, такое как центральный процессор (CPU) общего назначения и микропроцессор. Арифметическое устройство 83, например, допускает считывание различных типов программ, сохраненных в энергонезависимом устройстве 85 хранения данных, в устройство 84 хранения данных и выполнение обработки в соответствии со считанными программами.
[0198] Устройство 84 хранения данных представляет собой запоминающее устройство, такое как оперативное запоминающее устройство (RAM), которое является доступным из арифметического устройства 83 и сохраняет программы, различные типы данных и т.п. Устройство 84 хранения данных может представлять собой энергозависимое запоминающее устройство или энергонезависимое запоминающее устройство.
[0199] Энергонезависимое устройство 85 хранения данных, например, представляет собой энергонезависимое устройство хранения данных, такое как постоянное запоминающее устройство (ROM) и флэш-память, и допускает сохранение различных типов программ и данных и т.п.
[0200] Устройство 86 накопителя, например, представляет собой устройство, которое обрабатывает считывание и запись данных из/на носитель 87 записи, который описывается ниже.
[0201] Носитель 87 записи представляет собой произвольный носитель записи, такой как оптический диск, магнитооптический диск и полупроводниковую флэш-память, который допускает запись данных.
[0202] Каждый из соответствующих примерных вариантов осуществления настоящего изобретения, например, может достигаться посредством конфигурирования передающего устройства посредством использования информационного обрабатывающего устройства 80, примерно проиллюстрированного на фиг. 18, и предоставления передающего устройства с программой, которая допускает достижение функций, описанных в соответствующем примерном варианте осуществления, описанном выше.
[0203] В этом случае, арифметическое устройство 83, выполняющее программу, предоставленную в передающем устройстве, обеспечивает возможность достижения каждого примерного варианта осуществления. Вместо всех функций, некоторые функции передающего устройства могут быть сконфигурированы с информационным обрабатывающим устройством 80.
[0204] Дополнительно, вышеописанная программа может быть выполнена с возможностью записываться на носителе 87 записи и надлежащим образом сохраняться в энергонезависимом устройстве 85 хранения данных на стадии поставки или стадии работы передающего устройства. Следует отметить, что в этом случае, в качестве способа инициализации программы, может использоваться способ установки программы в передающем устройстве посредством использования соответствующей заглушки на стадии изготовления перед поставкой, стадии работы и т.п. В качестве способа инициализации программы, также может использоваться общая процедура, к примеру, способ загрузки программы извне через линию связи, такую как Интернет.
[0205] Все или часть примерных вариантов осуществления, раскрытых выше, могут описываться, но не только, как следующие дополнительные примечания.
[0206] Дополнительное примечание 1
Передающее устройство, содержащее:
- средство ввода данных для ввода фрагмента данных;
- первое средство переноса;
- второе средство переноса;
- средство передачи данных для выполнения переноса фрагмента данных в первое средство переноса;
- средство управления повторной передачей для выполнения определения целесообразности повторной передачи фрагмента данных;
- средство передачи повторно передаваемых данных, когда повторная передача определяется как целесообразная, для выполнения переноса фрагмента повторно передаваемых данных, который является целесообразным для повторной передачи, во второе средство переноса; и
- средство обработки ввода-вывода, перед, по меньшей мере, любым фрагментом данных, остающимся в первом средстве переноса в момент времени переноса фрагмента повторно передаваемых данных во второе средство переноса, для выполнения вывода фрагмента повторно передаваемых данных во втором средстве переноса в назначение, идентичное назначению фрагмента данных в первом средстве переноса.
[0207] Дополнительное примечание 2
Передающее устройство согласно дополнительному примечанию 1, дополнительно содержащее:
- первое средство обработки канального уровня для переноса фрагмента данных в первом буфере канального уровня на канальном уровне в первом средстве переноса в средство обработки ввода-вывода; и
- второе средство обработки канального уровня для переноса фрагмента повторно передаваемых данных во втором буфере канального уровня на канальном уровне во втором средстве переноса в средство обработки ввода-вывода.
[0208] Дополнительное примечание 3
Передающее устройство согласно дополнительному примечанию 2, в котором:
- средство передачи повторно передаваемых данных предоставляет фрагмент повторно передаваемых данных с флагом, указывающим то, что он представляет собой фрагмент повторно передаваемых данных, и выполняет перенос фрагмента повторно передаваемых данных во второе средство переноса,
- передающее устройство дополнительно содержит средство обработки сетевого уровня, в соответствии с флагом, для переноса фрагмента данных в первый буфер канального уровня и фрагмента повторно передаваемых данных во второй буфер канального уровня.
[0209] Дополнительное примечание 4
Передающее устройство согласно дополнительному примечанию 3, в котором:
- первое средство обработки канального уровня сохраняет третий номер данных для фрагмента данных, который должен переноситься в средство обработки ввода-вывода, в модуле хранения состояний,
- средство обработки сетевого уровня сохраняет первый номер данных для фрагмента данных, который должен переноситься в первый буфер канального уровня, в модуле хранения состояний, и
- второе средство обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и первого номера данных, сохраненных в модуле хранения состояний.
[0210] Дополнительное примечание 5
Передающее устройство согласно дополнительному примечанию 2, дополнительно содержащее:
- первое средство обработки сетевого уровня для переноса фрагмента данных в первом буфере сетевого уровня на сетевом уровне в первом средстве переноса в первый буфер канального уровня; и
- второе средство обработки сетевого уровня для переноса фрагмента повторно передаваемых данных во втором буфере сетевого уровня на сетевом уровне во втором средстве переноса во второй буфер канального уровня,
- при этом:
- средство передачи данных выполняет перенос фрагмента данных в первое средство переноса посредством переноса фрагмента данных в первый буфер сетевого уровня, и
- средство передачи повторно передаваемых данных выполняет перенос фрагмента повторно передаваемых данных во второе средство переноса посредством переноса фрагмента повторно передаваемых данных во второй буфер сетевого уровня.
[0211] Дополнительное примечание 6
Передающее устройство согласно дополнительному примечанию 5, в котором:
- первое средство обработки канального уровня сохраняет третий номер данных для фрагмента данных, который должен переноситься в средство обработки ввода-вывода, в модуле хранения состояний,
- первое средство обработки сетевого уровня сохраняет первый номер данных для фрагмента данных, который должен переноситься в первый буфер канального уровня, в модуле хранения состояний, и
- второе средство обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и первого номера данных, сохраненных в модуле хранения состояний.
[0212] Дополнительное примечание 7
Передающее устройство согласно дополнительному примечанию 5 или 6, в котором:
- первое средство обработки канального уровня сохраняет третий номер данных для фрагмента данных, который должен переноситься в средство обработки ввода-вывода, в модуле хранения состояний,
- средство передачи данных сохраняет второй номер данных для фрагмента данных, который должен переноситься в первый буфер сетевого уровня, в модуле хранения состояний, и
- второе средство обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и второго номера данных, сохраненных в модуле хранения состояний.
[0213] Дополнительное примечание 8
Передающее устройство согласно дополнительному примечанию 1, дополнительно содержащее:
- первое средство обработки сетевого уровня для переноса фрагмента данных в первом буфере сетевого уровня на сетевом уровне в первом средстве переноса в буфер канального уровня на канальном уровне;
- второе средство обработки сетевого уровня для переноса фрагмента повторно передаваемых данных во втором буфере сетевого уровня на сетевом уровне во втором средстве переноса в буфер канального уровня, который совместно используют первое средство переноса и второе средство переноса; и
- средство обработки канального уровня для переноса фрагмента данных и фрагмента повторно передаваемых данных в буфере канального уровня в средство обработки ввода-вывода,
- при этом:
- средство передачи данных выполняет перенос фрагмента данных в первое средство переноса посредством переноса фрагмента данных в первый буфер сетевого уровня, и
- средство передачи повторно передаваемых данных выполняет перенос фрагмента повторно передаваемых данных во второе средство переноса посредством переноса фрагмента повторно передаваемых данных во второй буфер сетевого уровня.
[0214] Дополнительное примечание 9
Передающее устройство согласно любому из дополнительных примечаний 5-8, в котором:
- первое средство обработки сетевого уровня сохраняет первый номер данных для фрагмента данных, который должен переноситься на канальный уровень, в модуле хранения состояний,
- средство передачи данных сохраняет второй номер данных для фрагмента данных, который должен переноситься в первый буфер сетевого уровня, в модуле хранения состояний, и
- второе средство обработки сетевого уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе первого номера данных и второго номера данных, сохраненных в модуле хранения состояний.
[0215] Дополнительное примечание 10
Передающее устройство согласно любому из дополнительных примечаний 5-9, в котором:
- каждое из первого средства обработки сетевого уровня и второго средства обработки сетевого уровня сохраняет условие переноса для потока связи в модуле хранения состояний и, в соответствии с условием переноса в модуле хранения состояний, выполняет перенос фрагмента данных и перенос фрагмента повторно передаваемых данных.
[0216] Дополнительное примечание 11
Передающее устройство согласно дополнительному примечанию 10, в котором:
- условие переноса включает в себя состояние обработки пакетного фильтра.
[0217] Дополнительное примечание 12
Передающее устройство согласно любому из дополнительных примечаний 1-11, в котором:
- средство управления повторной передачей выполняет определение целесообразности повторной передачи, на основе принимаемого подтверждения приема (ACK).
[0218] Дополнительное примечание 13
Передающее устройство согласно любому из дополнительных примечаний 1-12, в котором:
- средство обработки ввода-вывода выполняет вывод фрагмента данных и фрагмента повторно передаваемых данных из одного интерфейса вывода.
[0219] Дополнительное примечание 14
Передающее устройство согласно любому из дополнительных примечаний 1-13, в котором:
- средство обработки ввода-вывода перезаписывает номера вывода данных для фрагмента данных и фрагмента повторно передаваемых данных в соответствии с предварительно определенным правилом.
[0220] Дополнительное примечание 15
Передающее устройство согласно дополнительному примечанию 14, в котором:
- номер вывода данных представляет собой IP-идентификатор (IPID) в заголовке в формате Интернет-протокола (IP).
[0221] Дополнительное примечание 16
Способ передачи, содержащий:
- выполнение переноса фрагмента данных, который вводится из модуля ввода данных, в первый модуль переноса;
- выполнение определения целесообразности повторной передачи фрагмента данных;
- когда повторная передача определяется как целесообразная, выполнение переноса фрагмента повторно передаваемых данных, который является целесообразным для повторной передачи, во второй модуль переноса; и
- перед, по меньшей мере, любым фрагментом данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, выполнение вывода фрагмента повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента данных в первом модуле переноса.
[0222] Дополнительное примечание 17
Способ передачи согласно дополнительному примечанию 16, в котором:
- фрагмент данных в первом модуле переноса представляет собой фрагмент данных в первом буфере канального уровня на канальном уровне в первом модуле переноса, и
- фрагмент повторно передаваемых данных во втором модуле переноса представляет собой фрагмент повторно передаваемых данных во втором буфере канального уровня на канальном уровне во втором модуле переноса.
[0223] Дополнительное примечание 18
Способ передачи согласно дополнительному примечанию 17, содержащий:
- предоставление фрагмента повторно передаваемых данных с флагом, указывающим то, что он представляет собой фрагмент повторно передаваемых данных, и выполнение переноса фрагмента повторно передаваемых данных во второй модуль переноса; и
- в соответствии с флагом, перенос фрагмента данных в первый буфер канального уровня и фрагмента повторно передаваемых данных во второй буфер канального уровня.
[0224] Дополнительное примечание 19
Способ передачи согласно дополнительному примечанию 18, содержащий:
- сохранение третьего номера данных для фрагмента данных, вывод которого должен выполняться, в модуле хранения состояний;
- сохранение первого номера данных для фрагмента данных, который должен переноситься в первый буфер канального уровня, в модуле хранения состояний; и
- вычисление числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и первого номера данных, сохраненных в модуле хранения состояний.
[0225] Дополнительное примечание 20
Способ передачи согласно дополнительному примечанию 17, содержащий:
- перенос фрагмента данных в первом буфере сетевого уровня на сетевом уровне в первом модуле переноса в первый буфер канального уровня; и
- перенос фрагмента повторно передаваемых данных во втором буфере сетевого уровня на сетевом уровне во втором модуле переноса во второй буфер канального уровня, при этом:
- перенос фрагмента данных в первый модуль переноса выполняется посредством переноса фрагмента данных в первый буфер сетевого уровня, и
- перенос фрагмента повторно передаваемых данных во второй модуль переноса выполняется посредством переноса фрагмента повторно передаваемых данных во второй буфер сетевого уровня.
[0226] Дополнительное примечание 21
Способ передачи согласно дополнительному примечанию 20, содержащий:
- сохранение третьего номера данных для фрагмента данных, вывод которого должен выполняться, в модуле хранения состояний;
- сохранение первого номера данных для фрагмента данных, который должен переноситься в первый буфер канального уровня, в модуле хранения состояний; и
- вычисление числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и первого номера данных, сохраненных в модуле хранения состояний.
[0227] Дополнительное примечание 22
Способ передачи согласно дополнительному примечанию 20 или 21, содержащий:
- сохранение третьего номера данных для фрагмента данных, вывод которого должен выполняться, в модуле хранения состояний;
- сохранение второго номера данных для фрагмента данных, который должен переноситься в первый буфер сетевого уровня, в модуле хранения состояний; и
- вычисление числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и второго номера данных, сохраненных в модуле хранения состояний.
[0228] Дополнительное примечание 23
Способ передачи согласно дополнительному примечанию 16, содержащий:
- перенос фрагмента данных в первом буфере сетевого уровня на сетевом уровне в первом модуле переноса в буфер канального уровня на канальном уровне;
- перенос фрагмента повторно передаваемых данных во втором буфере сетевого уровня на сетевом уровне во втором модуле переноса в буфер канального уровня, который совместно используют первый модуль переноса и второй модуль переноса; и
- выполнение вывода фрагмента данных и фрагмента повторно передаваемых данных в буфере канального уровня, при этом:
- перенос фрагмента данных в первый модуль переноса выполняется посредством переноса фрагмента данных в первый буфер сетевого уровня, и
- перенос фрагмента повторно передаваемых данных во второй модуль переноса выполняется посредством переноса фрагмента повторно передаваемых данных во второй буфер сетевого уровня.
[0229] Дополнительное примечание 24
Способ передачи согласно любому из дополнительных примечаний 20-23, содержащий:
- сохранение первого номера данных для фрагмента данных, который должен переноситься на канальный уровень, в модуле хранения состояний;
- сохранение второго номера данных для фрагмента данных, который должен переноситься в первый буфер сетевого уровня, в модуле хранения состояний; и
- вычисление числа фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе первого номера данных и второго номера данных, сохраненных в модуле хранения состояний.
[0230] Дополнительное примечание 25
Способ передачи согласно любому из дополнительных примечаний 20-24, содержащий:
- сохранение условия переноса для потока связи в модуле хранения состояний и, в соответствии с условием переноса в модуле хранения состояний, выполнение переноса фрагмента данных и фрагмента повторно передаваемых данных.
[0231] Дополнительное примечание 26
Способ передачи согласно дополнительному примечанию 25, в котором:
- условие переноса включает в себя состояние обработки пакетного фильтра.
[0232] Дополнительное примечание 27
Способ передачи согласно любому из дополнительных примечаний 16-26, содержащий:
- выполнение определения целесообразности повторной передачи, на основе принимаемого подтверждения приема (ACK).
[0233] Дополнительное примечание 28
Способ передачи согласно любому из дополнительных примечаний 16-27, в котором:
- вывод фрагмента данных и фрагмента повторно передаваемых данных выполняется из одного интерфейса вывода.
[0234] Дополнительное примечание 29
Способ передачи согласно любому из дополнительных примечаний 16-28, содержащий:
- перезапись номеров вывода данных для фрагмента данных и фрагмента повторно передаваемых данных в соответствии с предварительно определенным правилом.
[0235] Дополнительное примечание 30
Способ передачи согласно дополнительному примечанию 29, в котором:
- номер вывода данных представляет собой IP-идентификатор (IPID) в заголовке в формате Интернет-протокола (IP).
[0236] Дополнительное примечание 31
Программа передачи, инструктирующая компьютеру выполнять:
- функцию передачи данных для выполнения переноса фрагмента данных, который вводится из модуля ввода данных, в первый модуль переноса;
- функцию управления повторной передачей для выполнения определения целесообразности повторной передачи фрагмента данных;
- функцию передачи повторно передаваемых данных, когда повторная передача определяется как целесообразная, для выполнения переноса фрагмента повторно передаваемых данных, который является целесообразным для повторной передачи, во второй модуль переноса; и
- функцию обработки ввода-вывода, перед, по меньшей мере, любым фрагментом данных, остающимся в первом модуле переноса в момент времени переноса фрагмента повторно передаваемых данных во второй модуль переноса, для выполнения вывода фрагмента повторно передаваемых данных во втором модуле переноса в назначение, идентичное назначению фрагмента данных в первом модуле переноса.
[0237] Дополнительное примечание 32
Программа передачи согласно дополнительному примечанию 31, дополнительно инструктирующая компьютеру выполнять:
- первую функцию обработки канального уровня для переноса фрагмента данных в первом буфере канального уровня на канальном уровне в первом модуле переноса в функцию обработки ввода-вывода; и
- вторую функцию обработки канального уровня для переноса фрагмента повторно передаваемых данных во втором буфере канального уровня на канальном уровне во втором модуле переноса в функцию обработки ввода-вывода.
[0238] Дополнительное примечание 33
Программа передачи согласно дополнительному примечанию 32, в которой:
- функция передачи повторно передаваемых данных предоставляет фрагмент повторно передаваемых данных с флагом, указывающим то, что он представляет собой фрагмент повторно передаваемых данных, и выполняет перенос фрагмента повторно передаваемых данных во второй модуль переноса, и
- программа передачи дополнительно инструктирует компьютеру выполнять функцию обработки сетевого уровня, в соответствии с флагом, для переноса фрагмента данных в первый буфер канального уровня и фрагмента повторно передаваемых данных во второй буфер канального уровня.
[0239] Дополнительное примечание 34
Программа передачи согласно дополнительному примечанию 33, в которой:
- первая функция обработки канального уровня сохраняет третий номер данных для фрагмента данных, который должен переноситься в функцию обработки ввода-вывода, в модуле хранения состояний,
- функция обработки сетевого уровня сохраняет первый номер данных для фрагмента данных, который должен переноситься в первый буфер канального уровня, в модуле хранения состояний, и
- вторая функция обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и первого номера данных, сохраненных в модуле хранения состояний.
[0240] Дополнительное примечание 35
Программа передачи согласно дополнительному примечанию 32, дополнительно инструктирующая компьютеру выполнять:
- первую функцию обработки сетевого уровня для переноса фрагмента данных в первом буфере сетевого уровня на сетевом уровне в первом модуле переноса в первый буфер канального уровня; и
- вторую функцию обработки сетевого уровня для переноса фрагмента повторно передаваемых данных во втором буфере сетевого уровня на сетевом уровне во втором модуле переноса во второй буфер канального уровня,
- при этом:
- функция передачи данных выполняет перенос фрагмента данных в первый модуль переноса посредством переноса фрагмента данных в первый буфер сетевого уровня, и
- функция передачи повторно передаваемых данных выполняет перенос фрагмента повторно передаваемых данных во второй модуль переноса посредством переноса фрагмента повторно передаваемых данных во второй буфер сетевого уровня.
[0241] Дополнительное примечание 36
Программа передачи согласно дополнительному примечанию 35, в которой:
- первая функция обработки канального уровня сохраняет третий номер данных для фрагмента данных, который должен переноситься в функцию обработки ввода-вывода, в модуле хранения состояний,
- первая функция обработки сетевого уровня сохраняет первый номер данных для фрагмента данных, который должен переноситься в первый буфер канального уровня, в модуле хранения состояний, и
- вторая функция обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и первого номера данных, сохраненных в модуле хранения состояний.
[0242] Дополнительное примечание 37
Программа передачи согласно дополнительному примечанию 35 или 36, в которой:
- первая функция обработки канального уровня сохраняет третий номер данных для фрагмента данных, который должен переноситься в функцию обработки ввода-вывода, в модуле хранения состояний,
- функция передачи данных сохраняет второй номер данных для фрагмента данных, который должен переноситься в первый буфер сетевого уровня, в модуле хранения состояний, и
- вторая функция обработки канального уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе третьего номера данных и второго номера данных, сохраненных в модуле хранения состояний.
[0243] Дополнительное примечание 38
Программа передачи согласно дополнительному примечанию 31, дополнительно инструктирующая компьютеру выполнять:
- первую функцию обработки сетевого уровня для переноса фрагмента данных в первом буфере сетевого уровня на сетевом уровне в первом модуле переноса в буфер канального уровня на канальном уровне;
- вторую функцию обработки сетевого уровня для переноса фрагмента повторно передаваемых данных во втором буфере сетевого уровня на сетевом уровне во втором модуле переноса в буфер канального уровня, который совместно используют первый модуль переноса и второй модуль переноса; и
- функцию обработки канального уровня для переноса фрагмента данных и фрагмента повторно передаваемых данных в буфере канального уровня в функцию обработки ввода-вывода,
- при этом:
- функция передачи данных выполняет перенос фрагмента данных в первый модуль переноса посредством переноса фрагмента данных в первый буфер сетевого уровня, и
- функция передачи повторно передаваемых данных выполняет перенос фрагмента повторно передаваемых данных во второй модуль переноса посредством переноса фрагмента повторно передаваемых данных во второй буфер сетевого уровня.
[0244] Дополнительное примечание 39
Программа передачи согласно любому из дополнительных примечаний 35-38, в которой:
- первая функция обработки сетевого уровня сохраняет первый номер данных для фрагмента данных, который должен переноситься на канальный уровень, в модуле хранения состояний,
- функция передачи данных сохраняет второй номер данных для фрагмента данных, который должен переноситься в первый буфер сетевого уровня, в модуле хранения состояний, и
- вторая функция обработки сетевого уровня вычисляет число фрагментов данных, которые опережает фрагмент повторно передаваемых данных, на основе первого номера данных и второго номера данных, сохраненных в модуле хранения состояний.
[0245] Дополнительное примечание 40
Программа передачи согласно любому из дополнительных примечаний 35-39, в которой:
- каждая из первой функции обработки сетевого уровня и второй функции обработки сетевого уровня сохраняет условие переноса для потока связи в модуле хранения состояний и, в соответствии с условием переноса в модуле хранения состояний, выполняет перенос фрагмента данных и перенос фрагмента повторно передаваемых данных.
[0246] Дополнительное примечание 41
Программа передачи согласно дополнительному примечанию 40, в которой:
- условие переноса включает в себя состояние обработки пакетного фильтра.
[0247] Дополнительное примечание 42
Программа передачи согласно любому из дополнительных примечаний 31-41, в которой:
- функция управления повторной передачей выполняет определение целесообразности повторной передачи, на основе принимаемого подтверждения приема (ACK).
[0248] Дополнительное примечание 43
Программа передачи согласно любому из дополнительных примечаний 31-42, в которой:
- функция обработки ввода-вывода выполняет вывод фрагмента данных и фрагмента повторно передаваемых данных из одного интерфейса вывода.
[0249] Дополнительное примечание 44
Программа передачи согласно любому из дополнительных примечаний 31-43, в которой:
- функция обработки ввода-вывода перезаписывает номера вывода данных для фрагмента данных и фрагмента повторно передаваемых данных в соответствии с предварительно определенным правилом.
[0250] Дополнительное примечание 45
Программа передачи согласно дополнительному примечанию 44, в которой:
- номер вывода данных представляет собой IP-идентификатор (IPID) в заголовке в формате Интернет-протокола (IP).
[0251] Дополнительное примечание 46
Машиночитаемый носитель записи с записанной программой передачи согласно любому из дополнительных примечаний 31-45.
[0252] Хотя изобретение подробно показано и описано со ссылкой на примерные варианты осуществления, изобретение не ограничено этими вариантами осуществления. Специалисты в данной области техники должны понимать, что различные изменения в форме и деталях могут вноситься без отступления от сущности и объема настоящего изобретения, задаваемых посредством формулы изобретения.
[0253] Эта заявка основана на и притязает на приоритет заявки на патент (Япония) номер 2016-099698, поданной 18 мая 2016 года, раскрытие сущности которой полностью содержится в данном документе по ссылке.
Список номеров ссылок
[0254] 10, 20, 30, 40, 50, 60 - передающее устройство
11 - модуль ввода данных
12 - первый модуль переноса
13 - второй модуль переноса
14 - модуль передачи данных
15 - модуль управления повторной передачей
16 - модуль передачи повторно передаваемых данных
17 - модуль обработки ввода-вывода
21 - первый модуль обработки сетевого уровня
22 - первый модуль обработки канального уровня
23 - второй модуль обработки сетевого уровня
24 - второй модуль обработки канального уровня
25 - модуль транспортной обработки
31 - модуль обработки сетевого уровня
36 - модуль передачи повторно передаваемых данных
41 - модуль обработки канального уровня
58 - модуль хранения состояний
70 - приемное устройство
71 - приложение
72 - транспортный приемный модуль
73 - модуль приема данных
74 - модуль ACK-передачи
75 - модуль обработки сетевого уровня
76 - модуль обработки канального уровня
77 - модуль обработки ввода-вывода
90 - сеть
91 - TCP-соединение
80 - информационное обрабатывающее устройство
81 - интерфейс связи
82 - интерфейс ввода-вывода
83 - арифметическое устройство
84 - устройство хранения данных
85 - энергонезависимое устройство хранения данных
86 - устройство накопителя
87 - носитель записи