СПОСОБ ПАКЕТНОЙ ПЕРЕДАЧИ И АБОНЕНТСКОЕ УСТРОЙСТВО
PACKET TRANSMISSION METHOD AND A SUBSCRIBER DEVICE

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к области техники связи и, в частности, к способу пакетной передачи и к абонентскому устройству.
Уровень техники
[0002] В компьютерной сетевой связи, алгоритм восстановления после потерь пакетов играет очень значительную роль. Алгоритм восстановления после потерь пакетов представляет собой важный алгоритм, который обеспечивает надежность передачи данных в стеке протоколов на основе протокола управления передачей TCP , представляет собой механизм устойчивости к ошибкам, когда пакет данных потерян, и непосредственно затрагивает эффективность передачи данных и коэффициент использования полосы пропускания сети. RFC2581 задает и описывает типичный алгоритм восстановления после потерь пакетов, главным образом включающий в себя повторную передачу после тайм-аута и быструю повторную передачу. Повторная передача после тайм-аута представляет собой важный механизм для обеспечения надежности данных в TCP-протоколе. Принцип повторной передачи после тайм-аута заключается в следующем: Отправляющий узел активирует таймер тайм-аута после отправки пакета, и после того, как таймер тайм-аута истекает, если отправляющий узел по-прежнему не принял пакет подтверждения приема (сокращенно ACK), указывающий то, что пакет корректно принят, отправляющий узел повторно отправляет пакет. Повторно отправляемый пакет также, в общем, упоминается в качестве повторно передаваемого пакета. Быстрая повторная передача представляет собой оптимизированный механизм повторной передачи после тайм-аута. Если передающий конец принимает больше N (в общем, N равно 3) повторных ACK, определяется то, что пакет потерян, и потерянный пакет немедленно повторно передается. В механизме быстрой повторной передачи, повторная пакетная передача может выполняться до того, как таймер повторной передачи истекает, за счет этого значительно повышая эффективность передачи данных.
[0003] Недопущение необязательной повторной передачи после тайм-аута в TCP-передаче всегда является горячей точкой исследований в академических кругах и промышленных кругах. Тем не менее, в большинстве современных стеков TCP-протоколов, отсутствует механизм для обнаружения потерь повторно передаваемого пакета. Если повторно переданный пакет потерян, повторная передача после тайм-аута возникает неизменно, и в силу этого эффективность передачи TCP-соединения значительно уменьшается.
[0004] В настоящее время, алгоритмы, связанные с обнаружением потерь и восстановлением повторно передаваемого пакета, главным образом включают в себя алгоритм на основе подсчета дублированных подтверждений приема DAC  и алгоритм на основе избирательных подтверждений приема плюс SACK+ . Как DAC-алгоритм, так и SACK+-алгоритм представляют собой алгоритмы асимметричного TCP-ускорения и должны развертываться только на передающем конце, и их базовые идеи являются почти идентичными.
[0005] Основной принцип DAC-алгоритма заключается в следующем: Когда пакет повторно передается, передающий конец оценивает количество n пакетов, в данный момент передаваемых в сети, и подсчитывает количество повторных ACK, принимаемых после повторной пакетной передачи, причем пакет, который уже отправлен, прием которого не подтверждается посредством приемного конца, и который не определяется посредством передающего конца в качестве потерянного пакета, задается как пакет, который передается в сети; и если кумулятивное подтверждение приема не обновляется после того, как больше чем n ACK принимаются, определяет то, что текущий повторно переданный пакет потерян, и немедленно повторно передает пакет снова без ожидания повторной передачи после тайм-аута.
[0006] Как показано на фиг. 1, предполагается, что в окне отправки, пакет, порядковый номер которого равен 3, потерян. Как показано на этапе 101 на фиг. 1, после приема трех повторных ACK, передающий конец начинает быструю повторную передачу, чтобы повторно передавать пакет, порядковый номер которого равен 3, и оценивает, посредством использования DAC-алгоритма, количество пакетов, которые передаются в сети. Осуществимый способ оценки заключается в следующем (следует отметить, что способ оценки не ограничен этим способом оценки): Передающий конец распознает то, что наибольший порядковый номер отправленных пакетов равен 8, порядковый номер принимаемого кумулятивного подтверждения приема равен 2, и три повторных подтверждения приема принимаются, передающий конец определяет то, что один пакет потерян, и оценивает то, что количество пакетов, которые передаются в сети, равно 8-2-3-1=2. Затем, как показано на этапе 102 на фиг. 1, передающий конец подсчитывает принятые повторные ACK после повторной передачи. Когда передающий конец принимает третье повторное ACK после повторной передачи, если порядковый номер кумулятивного подтверждения приема по-прежнему равен 9 и не обновляется, передающий конец определяет то, что повторно переданный пакет потерян. В завершение, как показано на этапе 103 на фиг. 1, передающий конец немедленно повторно передает пакет, порядковый номер которого равен 3, и не должен ожидать тайм-аута таймера повторной передачи, за счет этого не допуская перехода к повторной передаче после тайм-аута.
[0007] Принцип SACK+-алгоритма является аналогичным принципу DAC-алгоритма. Основное различие заключается в том, что в SACK+-алгоритме, определяется, посредством использования информации избирательных подтверждений приема, переносимой в опции SACK в пакете подтверждения приема, то, потерян или нет повторно переданный пакет.
[0008] Тем не менее, посредством тестирования обнаружено то, что независимо от DAC-алгоритма или SACK+-алгоритма, вероятность того, что потери повторно передаваемого пакета не могут обнаруживаться своевременно, является большой. Как результат, повторно переданный пакет не может обнаруживаться и восстанавливаться посредством передающего конца своевременно после потери. Следовательно, повторная передача после тайм-аута инициируется. В сценарии с высокой частотой потерь пакетов, частая повторная передача после тайм-аута вызывает увеличение задержки на передачу и резкое снижение скорости передачи.
Сущность изобретения
[0009] Варианты осуществления настоящего изобретения предусматривают способ пакетной передачи, отправляющее устройство и систему связи, чтобы уменьшать вероятность повторной передачи после тайм-аута пакета, уменьшать задержку на пакетную передачу и повышать скорость пакетной передачи.
[0010] Чтобы достигать вышеприведенных целей настоящего изобретения, согласно первому аспекту, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи, причем способ включает в себя: передачу, посредством отправляющего узла, множества  пакетов в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом; после определения того, что первый пакет в множестве пакетов потерян, повторную передачу, посредством отправляющего узла, первого пакета; и после определения, на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, того, что повторно переданный пакет потерян, повторную передачу первого пакета снова и отправку первого пакета, по меньшей мере, один раз в первом временном интервале после повторной передачи первого пакета снова.
[0011] В первом возможном способе реализации первого аспекта, способ дополнительно включает в себя: прием одного или более пакетов подтверждения приема из приемного узла и определение, согласно полю ACK или полю расширения, переносимому в одном или более пакетов подтверждения приема, того, что первый пакет потерян.
[0012] В отношении первого аспекта или первого возможного способа реализации первого аспекта, во втором возможном способе реализации, способ дополнительно включает в себя: отправку, посредством отправляющего узла, второго пакета в первом временном интервале, причем второй пакет представляет собой пакет, который не отправляется посредством отправляющего узла.
[0013] Во втором аспекте, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи, включающий в себя: Передачу, посредством отправляющего узла, множества  пакетов в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом; после определения того, что первый пакет в множестве пакетов потерян, повторную передачу, посредством отправляющего узла, первого пакета; после определения, на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, того, что повторно переданный пакет потерян, повторную передачу первого пакета снова и определение того, является или нет отправляющий буфер пустым; и если отправляющий буфер не является пустым, отправку, посредством отправляющего узла, по меньшей мере, одного пакета в отправляющем буфере в первом временном интервале после повторной передачи первого пакета снова, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего узла.
[0014] В первом возможном способе реализации второго аспекта, способ дополнительно включает в себя: если отправляющий буфер является пустым, отправку, посредством отправляющего узла, первого пакета в первом временном интервале, по меньшей мере, один раз.
[0015] В отношении второго аспекта или первого возможного способа реализации второго аспекта, во втором возможном способе реализации, определение, посредством отправляющего узла на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, того, что повторно переданный пакет потерян, включает в себя: определение, посредством отправляющего узла согласно полю ACK или полю расширения, переносимому в пакете подтверждения приема, принимаемом после того, как первый пакет повторно передан, того, что повторно переданный пакет потерян, причем повторно переданный пакет представляет собой повторно переданный первый пакет.
[0016] Согласно третьему аспекту, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи, включающий в себя: передачу, посредством отправляющего узла, множества  пакетов в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом; после определения того, что первый пакет в множестве пакетов потерян, повторную передачу, посредством отправляющего узла, первого пакета; после определения, на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, того, что повторно переданный пакет потерян, повторную передачу, посредством отправляющего узла, первого пакета снова и определение того, является или нет отправляющий буфер пустым, или того, разрешает или нет текущая политика управления перегрузкой отправку нового пакета; и если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправку, посредством отправляющего узла, первого пакета, по меньшей мере, один раз в первом временном интервале после повторной передачи первого пакета снова.
[0017] В первом возможном способе реализации третьего аспекта, способ дополнительно включает в себя: если отправляющий буфер не является пустым, и текущая политика управления перегрузкой разрешает отправку нового пакета, отправку, посредством отправляющего узла, по меньшей мере, одного пакета в отправляющем буфере в первом временном интервале.
[0018] В любом из вышеприведенных аспектов или в любом из возможных способов реализации любого из вышеприведенных аспектов, первый временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; и отправляющий узел не принял, в первом временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян.
[0019] В любом из вышеприведенных аспектов или в любом из возможных способов реализации любого из вышеприведенных аспектов, линии связи между отправляющим узлом и приемным узлом представляет собой TCP-соединение.
[0020] В любом из вышеприведенных аспектов или в любом из возможных способов реализации любого из вышеприведенных аспектов, пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего узла.
[0021] В отношении любого из вышеприведенных аспектов или любого из возможных способов реализации любого из вышеприведенных аспектов, отправляющий узел повторно передает потерянный первый пакет в предварительно установленном временном интервале после того, как отправляющий узел обнаруживает то, что повторно переданный пакет потерян, причем предварительно установленный временной интервал использует момент, в который отправляющий узел обнаруживает то, что повторно переданный первый пакет потерян, в качестве начальной точки, и предварительно установленный временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; или предварительно установленный временной интервал приближается к 0.
[0022] Согласно четвертому аспекту, вариант осуществления настоящего изобретения предусматривает абонентское устройство, включающее в себя: беспроводной модем, процессор, антенну и стек TCP-протоколов, причем беспроводной модем соединяется с антенной; стек TCP-протоколов выполнен с возможностью: инкапсулировать, под управлением процессора, данные прикладной программы, работающей на абонентском устройстве, в множество пакетов и отправлять множество пакетов в беспроводной модем; беспроводной модем выполнен с возможностью: модулировать принимаемые пакеты в аналоговые сигналы и отправлять аналоговые сигналы на сервер посредством использования антенны; и стек TCP-протоколов дополнительно выполнен с возможностью: при определении того, что первый пакет в множестве пакетов потерян, повторно передавать первый пакет на сервер посредством использования беспроводного модема и антенны, и после определения, на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, того, что повторно переданный пакет потерян, повторно передавать первый пакет снова и отправлять первый пакет на сервер, по меньшей мере, один раз в первом временном интервале после повторной передачи первого пакета снова.
[0023] В первом возможном способе реализации четвертого аспекта, стек TCP-протоколов дополнительно выполнен с возможностью отправлять второй пакет в первом временном интервале посредством использования беспроводного модема и антенны, причем второй пакет представляет собой пакет, который не отправляется посредством абонентского устройства.
[0024] Согласно пятому аспекту, вариант осуществления настоящего изобретения предусматривает абонентское устройство, включающее в себя: беспроводной модем, процессор, антенну и стек TCP-протоколов, причем беспроводной модем соединяется с антенной; стек TCP-протоколов выполнен с возможностью: инкапсулировать, под управлением процессора, данные прикладной программы, работающей на абонентском устройстве, в множество пакетов и отправлять множество пакетов в беспроводной модем; беспроводной модем выполнен с возможностью: модулировать принимаемые пакеты в аналоговые сигналы и отправлять аналоговые сигналы на сервер посредством использования антенны; и стек TCP-протоколов дополнительно выполнен с возможностью: при определении того, что первый пакет в множестве пакетов потерян, повторно передавать первый пакет на сервер посредством использования беспроводного модема и антенны и определять, на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян; повторно передавать первый пакет на сервер снова и определять то, является или нет отправляющий буфер пустым; и если отправляющий буфер не является пустым, отправлять, по меньшей мере, один пакет в отправляющем буфере на сервер в первом временном интервале после повторной передачи первого пакета снова.
[0025] В первом возможном способе реализации пятого аспекта, стек TCP-протоколов дополнительно выполнен с возможностью: если отправляющий буфер является пустым, отправлять первый пакет на сервер в первом временном интервале, по меньшей мере, один раз посредством использования беспроводного модема и антенны.
[0026] В отношении пятого аспекта или первого возможного способа реализации пятого аспекта, во втором возможном способе реализации, стек TCP-протоколов, в частности, выполнен с возможностью определять, согласно полю ACK или полю расширения, переносимому в пакете подтверждения приема, принимаемом после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян.
[0027] Согласно шестому аспекту, вариант осуществления настоящего изобретения предусматривает абонентское устройство, включающее в себя: беспроводной модем, процессор, антенну и стек TCP-протоколов, причем беспроводной модем соединяется с антенной; стек TCP-протоколов выполнен с возможностью: инкапсулировать, под управлением процессора, данные прикладной программы, работающей на абонентском устройстве, в множество пакетов и отправлять множество пакетов в беспроводной модем; беспроводной модем выполнен с возможностью: модулировать принимаемые пакеты в аналоговые сигналы и отправлять аналоговые сигналы на сервер посредством использования антенны; и стек TCP-протоколов дополнительно выполнен с возможностью: при определении того, что первый пакет в множестве пакетов потерян, повторно передавать первый пакет на сервер посредством использования беспроводного модема и антенны и определять, на основе пакета подтверждения приема, принимаемого после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян; повторно передавать первый пакет на сервер снова и определять то, является или нет отправляющий буфер пустым, или то, разрешает или нет текущая политика управления перегрузкой отправку нового пакета; и если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправлять первый пакет на сервер, по меньшей мере, один раз в первом временном интервале после повторной передачи первого пакета снова.
[0028] В первом возможном способе реализации шестого аспекта, стек TCP-протоколов дополнительно выполнен с возможностью: если отправляющий буфер не является пустым, и текущая политика управления перегрузкой разрешает отправку нового пакета, отправлять, по меньшей мере, один пакет в отправляющем буфере на сервер в первом временном интервале посредством использования беспроводного модема и антенны.
[0029] В четвертом-шестом аспектах или в любом из возможных способов реализации четвертого-шестого аспектов, первый временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; и абонентское устройство не приняло, в первом временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян.
[0030] В четвертом-шестом аспектах или в любом из возможных способов реализации четвертого-шестого аспектов, пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством абонентского устройства; и повторно переданный пакет представляет собой первый пакет, повторно переданный посредством абонентского устройства в первое время, когда абонентское устройство обнаруживает то, что первый пакет потерян.
[0031] В четвертом-шестом аспектах или в любом из возможных способов реализации четвертого-шестого аспектов, стек TCP-протоколов, в частности, выполнен с возможностью повторно передавать первый пакет на сервер посредством использования беспроводного модема и антенны в предварительно установленном временном интервале при определении того, что первый пакет в множестве пакетов потерян, причем предварительно установленный временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; или предварительно установленный временной интервал приближается к 0.
[0032] Согласно седьмому аспекту, вариант осуществления настоящего изобретения предусматривает абонентское устройство, включающее в себя: отправляющий блок, выполненный с возможностью отправлять множество пакетов в приемный узел при соединении связи с абонентским устройством; приемный блок, выполненный с возможностью принимать множество пакетов подтверждения приема из приемного узла; и блок обработки, выполненный с возможностью: определять, согласно множеству пакетов подтверждения приема, принимаемым посредством приемного блока, то, что первый пакет потерян в множестве пакетов; инициировать отправляющий блок с возможностью повторно передавать первый пакет в приемный узел; и определять, согласно пакету подтверждения приема, принимаемому посредством приемного блока после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян, причем отправляющий блок дополнительно выполнен с возможностью: после того, как блок обработки определяет то, что повторно переданный пакет потерян, непрерывно отправлять первый пакет в первом временном интервале, по меньшей мере, два раза.
[0033] В первом возможном способе реализации седьмого аспекта, отправляющий блок дополнительно выполнен с возможностью отправлять второй пакет в первом временном интервале, причем второй пакет представляет собой пакет, который не отправляется посредством отправляющего блока.
[0034] Согласно восьмому аспекту, вариант осуществления настоящего изобретения предусматривает абонентское устройство, включающее в себя: отправляющий блок, выполненный с возможностью отправлять множество пакетов в приемный узел при соединении связи с абонентским устройством; приемный блок, выполненный с возможностью принимать множество пакетов подтверждения приема из приемного узла; и блок обработки, выполненный с возможностью: определять, согласно множеству пакетов подтверждения приема, принимаемым посредством приемного блока, то, что первый пакет в множестве пакетов потерян; инициировать отправляющий блок с возможностью повторно передавать первый пакет в приемный узел; и определять, согласно пакету подтверждения приема, принимаемому посредством приемного блока после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян, причем отправляющий блок дополнительно выполнен с возможностью: после того, как блок обработки определяет то, что повторно переданный пакет потерян, повторно передавать первый пакет снова и определять то, является или нет отправляющий буфер пустым; и если отправляющий буфер не является пустым, отправлять, по меньшей мере, один пакет в отправляющем буфере в первом временном интервале после повторной передачи первого пакета снова.
[0035] В первом возможном способе реализации восьмого аспекта, отправляющий блок дополнительно выполнен с возможностью: если отправляющий буфер является пустым, отправлять первый пакет в первом временном интервале, по меньшей мере, один раз.
[0036] Согласно девятому аспекту, вариант осуществления настоящего изобретения предусматривает абонентское устройство, включающее в себя: отправляющий блок, выполненный с возможностью отправлять множество пакетов в приемный узел при соединении связи с абонентским устройством; приемный блок, выполненный с возможностью принимать множество пакетов подтверждения приема из приемного узла; и блок обработки, выполненный с возможностью: определять, согласно множеству пакетов подтверждения приема, принимаемым посредством приемного блока, то, что первый пакет в множестве пакетов потерян; инициировать отправляющий блок с возможностью повторно передавать первый пакет в приемный узел; и определять, согласно пакету подтверждения приема, принимаемому посредством приемного блока после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян, причем:
- отправляющий блок дополнительно выполнен с возможностью: после того, как блок обработки определяет то, что повторно переданный пакет потерян, повторно передавать первый пакет снова и определять то, является или нет отправляющий буфер пустым, или то, разрешает или нет текущая политика управления перегрузкой отправку нового пакета; и если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправлять первый пакет, по меньшей мере, один раз в первом временном интервале после повторной передачи первого пакета снова.
[0037] В первом возможном способе реализации девятого аспекта, отправляющий блок дополнительно выполнен с возможностью: если отправляющий буфер не является пустым, и текущая политика управления перегрузкой разрешает отправку нового пакета, отправлять, по меньшей мере, один пакет в отправляющем буфере в первом временном интервале, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего блока.
[0038] В восьмом и девятом аспектах или в любом из возможных способов реализации восьмого и девятого аспектов, отправляющий блок, в частности, выполнен с возможностью: после того, как блок обработки определяет то, что повторно переданный пакет потерян, повторно передавать первый пакет в предварительно установленном временном интервале снова, причем предварительно установленный временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; или предварительно установленный временной интервал приближается к 0.
[0039] В седьмом-девятом аспектах или в любом из возможных способов реализации седьмого-девятого аспектов, первый временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; и приемный блок не принял, в первом временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян.
[0040] В седьмом-девятом аспектах или в любом из возможных способов реализации седьмого-девятого аспектов, пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего узла.
[0041] В седьмом-девятом аспектах или в любом из возможных способов реализации седьмого-девятого аспектов, отправляющий блок выполнен с возможностью повторно передавать потерянный первый пакет в предварительно установленном временном интервале после того, как обнаруживается то, что повторно переданный пакет потерян, причем предварительно установленный временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; или предварительно установленный временной интервал приближается к 0.
[0042] Согласно десятому аспекту, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи, включающий в себя: передачу, посредством отправляющего узла, множества  пакетов в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом; прием множества  пакетов подтверждения приема из приемного узла; определение, на основе принимаемого множества пакетов подтверждения приема, того, что первый пакет в множестве пакетов потерян; и повторную передачу первого пакета в приемный узел и отправку первого пакета во втором временном интервале, по меньшей мере, один раз, причем второй временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; и отправляющий узел не принял, во втором временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что повторно переданный первый пакет потерян.
[0043] Согласно одиннадцатому аспекту, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи, включающий в себя: передачу, посредством отправляющего узла, множества  пакетов в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом; прием множества  пакетов подтверждения приема из приемного узла; определение, на основе принимаемого множества пакетов подтверждения приема, того, что первый пакет в множестве пакетов потерян; повторную передачу первого пакета в приемный узел и определение того, является или нет отправляющий буфер пустым; и если отправляющий буфер не является пустым, отправку, посредством отправляющего узла, по меньшей мере, одного пакета в отправляющем буфере во втором временном интервале, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего узла, второй временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета, и отправляющий узел не принял, во втором временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что повторно переданный первый пакет потерян.
[0044] В первом возможном способе реализации одиннадцатого аспекта, если отправляющий буфер является пустым, отправляющий узел отправляет первый пакет во втором временном интервале, по меньшей мере, один раз.
[0045] Согласно двенадцатому аспекту, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи, включающий в себя: передачу, посредством отправляющего узла, множества  пакетов в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом; прием множества  пакетов подтверждения приема из приемного узла; определение, на основе принимаемого множества пакетов подтверждения приема, того, что первый пакет в множестве пакетов потерян; повторную передачу, посредством отправляющего узла, первого пакета в приемный узел и определение того, является или нет отправляющий буфер пустым, или того, разрешает или нет текущая политика управления перегрузкой отправку нового пакета; и если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправку, посредством отправляющего узла, первого пакета во втором временном интервале, по меньшей мере, один раз.
[0046] В десятом-двенадцатом аспектах или в любом из возможных способов реализации десятого-двенадцатого аспектов, второй временной интервал использует момент повторной передачи первого пакета снова в качестве начальной точки и использует момент приема первого пакета подтверждения приема после того, как первый пакет повторно передан снова, в качестве конечной точки.
[0047] В десятом-двенадцатом аспектах или в любом из возможных способов реализации десятого-двенадцатого аспектов, второй временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета, и отправляющий узел не принял, во втором временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что повторно переданный первый пакет потерян.
[0048] В десятом-двенадцатом аспектах или в любом из возможных способов реализации десятого-двенадцатого аспектов, после определения того, что первый пакет в множестве пакетов потерян, отправляющий узел повторно передает первый пакет в предварительно установленном временном интервале снова, причем предварительно установленный временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета; или предварительно установленный временной интервал приближается к 0.
[0049] Вариант осуществления настоящего изобретения дополнительно предусматривает абонентское устройство, причем абонентское устройство включает в себя функциональный блок, выполненный с возможностью реализовывать способ в десятом-двенадцатом аспектах или в любом из возможных способов реализации десятого-двенадцатого аспектов.
[0050] Вариант осуществления настоящего изобретения дополнительно предусматривает машиночитаемый носитель данных, причем носитель данных сохраняет программный код, и программный код используется для того, чтобы выполнять этапы способа, описанные в любом из вышеприведенных аспектов или возможных способов реализации любого из вышеприведенных аспектов.
[0051] Согласно способу пакетной передачи и абонентскому устройству, которые предусматриваются в вариантах осуществления настоящего изобретения, после того, как обнаруживается то, что пакет потерян, потерянный пакет быстро и избыточно отправляется множество раз, или новый пакет немедленно отправляется после того, как потерянный пакет повторно передан, так что отправляющий узел может принимать пакеты подтверждения приема максимально возможно непрерывно после повторной передачи потерянного пакета и инициировать алгоритм обнаружения и восстановления после потерь пакетов для повторно передаваемого пакета своевременно согласно пакетам подтверждения приема, так что повторно переданный пакет может обнаруживаться и восстанавливаться своевременно после потери, за счет этого уменьшая количество повторных передач после тайм-аута и повышая скорость передачи. Помимо этого, если повторно переданный пакет потерян снова, повторная передача после тайм-аута может инициироваться. Тем не менее, если повторно переданный пакет быстро повторно передается множество раз за короткое время, вероятность того, что, повторно переданный пакет потерян, экспоненциально уменьшается, за счет этого дополнительно уменьшая вероятность повторной передачи после тайм-аута.
Краткое описание чертежей
[0052] Чтобы более понятно описывать технические решения в вариантах осуществления настоящего изобретения или в предшествующем уровне техники, далее кратко описываются прилагаемые чертежи, требуемые для описания вариантов осуществления или предшествующего уровня техники.
[0053] Фиг. 1 является принципиальной схемой алгоритма восстановления после потерь пакетов в предшествующем уровне техники;
[0054] Фиг. 2 является принципиальной схемой системы связи согласно варианту осуществления настоящего изобретения;
[0055] Фиг. 3 является принципиальной схемой формата TCP-пакетов;
[0056] Фиг. 4 является схемой принципа способа быстрой повторной передачи в предшествующем уровне техники;
[0057] Фиг. 5 является принципиальной схемой способа пакетной передачи согласно варианту осуществления настоящего изобретения;
[0058] Фиг. 6 является блок-схемой последовательности операций другого способа пакетной передачи согласно варианту осуществления настоящего изобретения;
[0059] Фиг. 7 является блок-схемой последовательности операций другого способа пакетной передачи согласно варианту осуществления настоящего изобретения;
[0060] Фиг. 8 является принципиальной схемой сценария применения вариантов осуществления настоящего изобретения;
[0061] Фиг. 9 является блок-схемой последовательности операций другого способа пакетной передачи согласно варианту осуществления настоящего изобретения;
[0062] Фиг. 10 является схемой принципа работы стека TCP-протоколов согласно варианту осуществления настоящего изобретения;
[0063] Фиг. 11 является принципиальной схемой абонентского устройства согласно варианту осуществления настоящего изобретения;
[0064] Фиг. 12 является принципиальной схемой абонентского устройства согласно варианту осуществления настоящего изобретения; и
[0065] Фиг. 13 является принципиальной схемой абонентского устройства согласно варианту осуществления настоящего изобретения.
Описание вариантов осуществления
[0066] Чтобы специалисты в данной области техники лучше понимали технические решения в настоящем изобретении, далее понятно описываются технические решения в вариантах осуществления настоящего изобретения со ссылкой на прилагаемые чертежи в вариантах осуществления настоящего изобретения. Очевидно, что описанные варианты осуществления представляют собой только часть, а не все варианты осуществления настоящего изобретения.
[0067] Технические решения, представленные в вариантах осуществления настоящего изобретения, типично могут применяться к системе связи, имеющей относительно высокую частоту потерь пакетов, например, к сети по стандарту глобальной системы мобильной связи (GSM), сети множественного доступа с кодовым разделением каналов (CDMA), сети по стандарту беспроводного широкополосного множественного доступа с кодовым разделением каналов (WCDMA), сети по стандарту общей службы пакетной радиопередачи (GPRS), сети по стандарту долгосрочного развития (LTE), программно-конфигурируемой сети (SDN) и беспроводной сенсорной сети (WSN).
[0068] Фиг. 2 является упрощенной блок-схемой системы 100 связи согласно варианту осуществления настоящего изобретения. Система 100 связи используется просто в качестве сценария применения настоящего изобретения и не должна пониматься как ограничение на сценарий применения настоящего изобретения. Очевидно, что технические решения, представленные в этом варианте осуществления настоящего изобретения, являются применимыми к любой системе связи, которая основана на стеке TCP/IP-протоколов. Следует отметить, что стек TCP/IP-протоколов представляет собой стек протоколов, реализованный со ссылкой на способ разделения для протокольного уровня, заданный посредством эталонной TCP/IP-модели. Стек TCP/IP-протоколов включает в себя два базовых протокола: протокол управления передачей (TCP)  и Интернет-протокол (IP) . В этом варианте осуществления настоящего изобретения, реализация TCP-протокола оптимизирована. Очевидно, что способ этого варианта осуществления настоящего изобретения также является применимым к другому надежному протоколу передачи, имеющему механизм повторной пакетной передачи.
[0069] В этом подробном описании, в формуле изобретения и на прилагаемых чертежах настоящего изобретения, термины "первый", "второй", "третий", "четвертый" и т.д. (если существуют) предназначены чтобы различать аналогичные объекты, но не обязательно указывают конкретный порядок или последовательность.
[0070] Система 100 связи включает в себя: абонентское устройство 110, точку 10 доступа, шлюз 12 беспроводного доступа, глобальную вычислительную сеть 14, первый сервер 20 приложений, второй сервер 30 приложений и третий сервер 40 приложений. Специалисты в данной области техники могут понимать, что одна система связи, в общем, может включать в себя меньшее или большее число компонентов по сравнению с компонентами, показанными на фиг. 2, или включает в себя компонент, отличающийся от компонентов, показанных на фиг. 2. Фиг. 2 просто показывает компоненты, в большей степени связанные с несколькими способами реализации, раскрытыми в этом варианте осуществления настоящего изобретения.
[0071] Например, хотя три сервера 20, 30 и 40 приложений уже описаны на фиг. 2, специалисты в данной области техники могут понимать, что одна система связи может включать в себя любое количество серверов приложений или даже не включать в себя сервер приложений. Серверы 20, 30 и 40 приложений, соответственно, включают в себя соответствующие стеки 21, 31 и 41 TCP-протоколов. Функции стеков 21, 31 и 41 TCP-протоколов, соответственно, могут выполняться посредством надлежащих комбинаций программного обеспечения, аппаратных средств и/или микропрограммного обеспечения, работающих на серверах 20, 30 и 40 приложений. Глобальная вычислительная сеть 14 может включать в себя: часть и/или любую комбинацию сети общего пользования, частной сети и Интернета. Шлюз 12 беспроводного доступа и точка 10 доступа могут быть включены в одну беспроводную сеть. Для простоты, другая часть беспроводной сети не описывается. Точка 10 доступа дополнительно включает в себя антенну 11.
[0072] Абонентское устройство 110 включает в себя: процессор 120, стек 130 TCP-протоколов, беспроводной модем 140 и запоминающее устройство 150. Беспроводной модем 140 может соединяться с антенной 142. Специалисты в данной области техники могут понимать, что стек 130 TCP-протоколов может выполняться посредством надлежащей комбинации программного обеспечения, аппаратных средств и/или микропрограммного обеспечения. Стек 130 TCP-протоколов, беспроводной модем 140 и антенна 142 взаимодействуют друг с другом, чтобы завершать передачу и прием пакета под управлением процессора. Помимо этого, специалисты в данной области техники могут понимать, что абонентское устройство может включать в себя меньшее или большее число компонентов по сравнению с компонентами, показанными на фиг. 2. Абонентское устройство 110 показано на фиг. 2 просто показывает компоненты, в большей степени связанные с несколькими способами реализации, раскрытыми в этом варианте осуществления настоящего изобретения.
[0073] Обычно, запоминающее устройство 150 абонентского устройства 110 сохраняет прикладные программы, например, первую прикладную программу 121, вторую прикладную программу 123 и третью прикладную программу 125. Первая прикладная программа 121, вторая прикладная программа 123 и третья прикладная программа 125, соответственно, представляют собой прикладные программы на клиентских сторонах первого сервера 20 прикладных программ, второго сервера 30 прикладных программ и третьего сервера 40 прикладных программ. Процессор 120 может считывать и выполнять прикладные программы в запоминающем устройстве 150, чтобы реализовывать конкретные функции.
[0074] Стек TCP-протоколов использует клиент-серверную модель связи. Клиент запрашивает и принимает услуги, предоставляемые посредством сервера, например, контент веб-страниц. Например, первая прикладная программа 121 может представлять собой браузер веб-страниц, запрашивающий информацию из первого сервера 20 прикладных программ.
[0075] Абонентское устройство 110 в этом варианте осуществления настоящего изобретения может представлять собой мобильный терминал, например, портативное, носимое или передвижное мобильное устройство, такое как мобильный телефон, экшн-камера или ноутбук, либо может представлять собой устройство, такое как компьютер или сервер, либо может представлять собой сетевое устройство, такое как маршрутизатор или шлюз. Абонентское устройство 110 может устанавливать TCP-соединение с другим абонентским устройством и дополнительно принимать и передавать пакет посредством использования TCP-соединения. Формат TCP-пакета показан на фиг. 3. Исходный порт и целевой порт выполнены с возможностью определять процессы приложений передающего конца и приемного конца. Номер исходного порта, номер целевого порта, исходный IP-адрес и целевой IP-адрес могут уникально определять TCP-соединение. Порядковый номер (в общем, сокращенно seq) заголовка TCP-пакета переносит порядковый номер первого байта данных в рабочих данных пакета. После приема TCP-пакета, приемный узел отправляет пакет подтверждения приема (ACK) в отправляющий узел посредством использования TCP-соединения. Значение поля номера подтверждения приема (в общем, сокращенно ack) заголовка ACK-пакета представляет значение поля "порядковый номер" пакета, принимаемого посредством приемного узла, и также представляет то, что приемный конец принимает все пакеты, которые отправляются посредством передающего конца, и значения "порядковых номеров" которых меньше значений "номера подтверждения приема" ACK-пакета. Размер окна используется для того, чтобы указывать размер текущей области приемного буфера приемного конца. Помимо этого, заголовок TCP-пакета дополнительно имеет шесть флаговых битов:
URG: поле указателя срочности, значимое;
ACK: поле номера подтверждения приема, значимое;
PSH: немедленная передача на прикладной уровень для обработки;
RST: сброс, когда возникает анормальность;
SYN: флаг синхронизации, который задается равным 1 при установлении соединения; и
FIN: флаг завершения, запрашивающий разрыв соединения.
[0076] Абонентское устройство 110 может устанавливать TCP-соединение с сервером 20 прикладных программ или другим абонентским устройством посредством использования проводной сети или беспроводной сети (например, Wi-Fi-сети, WSN или сотовой сети). Установление TCP-соединения с сервером 20 прикладных программ может инициироваться посредством прикладной программы (например, браузера или первой прикладной программы 121 на фиг. 1). В частности, абонентское устройство 110 и сервер 20 прикладных программ могут устанавливать TCP-соединение посредством использования трехстороннего установления связи. Например, первая прикладная программа 121 формирует команду открытия сокета (открытия сокета). Команда предоставляется в стек 120 TCP-протоколов абонентского устройства 110, чтобы инициировать стек 130 TCP-протоколов с возможностью устанавливать TCP-соединение с сервером 20 прикладных программ посредством использования трех обменов сообщениями. Затем стек 130 TCP-протоколов уведомляет первую прикладную программу 121 верхнего уровня в отношении того, что соединение установлено. Стек TCP-протоколов сервера 20 прикладных программ также уведомляет процесс приложения верхнего уровня в отношении того, что соединение установлено. Затем, первая прикладная программа 121 и сервер 20 прикладных программ на абонентском устройстве 110 могут выполнять передачу данных на основе установленного TCP-соединения. Специалисты в данной области техники могут понимать, что абонентское устройство 110 и точка 10 доступа осуществляют доступ к служебному радиоканалу посредством использования соответствующей антенны 142 и антенны 11.
[0077] Ниже описываются механизм обнаружения потерь TCP-пакетов и механизм быстрой повторной передачи в предшествующем уровне техники посредством использования конкретного примера. Чтобы упрощать описание, в некоторых вариантах осуществления настоящего изобретения, одно из двух устройств, которые устанавливают соединение между собой, упоминается как отправляющий узел, а другое упоминается как приемный узел. Очевидно, что отправляющий узел и приемный узел могут представлять собой любые устройства, имеющие возможности передачи и приема данных, например, вышеприведенное абонентское устройство или вышеприведенный сервер прикладных программ. Как показано на фиг. 4, предполагается, что отправляющий узел отправляет пять пакетов, порядковые номера которых равны 1, 2, 3, 4 и 5. Пакет, порядковый номер которого равен 1 (кратко называемый "пакетом 1"), является первым, принимаемым посредством приемного узла, и приемный узел возвращает пакет ACK1 подтверждения приема, номер подтверждения приема которого ack=1. Если пакет 2 не поступает в приемный узел по какой-либо причине, в то время как пакет 3 поступает в приемный узел, приемный узел по-прежнему возвращает ACK1. Если пакеты 4 и 5 поступают в приемный узел, приемный узел по-прежнему возвращает ACK1, поскольку пакет 2 еще не поступает в приемный узел. Следовательно, отправляющий узел принимает три пакета подтверждения приема, ack которых равны 1, и определяет то, что пакет 2 потерян. Следовательно, отправляющий узел не должен ожидать до тех пор, пока таймер повторной передачи не истечет, и немедленно повторно передает пакет, порядковый номер которого равен 2, снова. Затем приемный узел принимает пакет 2. В этом случае, поскольку пакеты 3, 4 и 5 уже приняты, приемный узел возвращает пакет ACK5 подтверждения приема, номер подтверждения приема которого составляет ack=5.
[0078] Повторная передача после тайм-аута TCP-пакета является важной причиной низкого коэффициента использования полосы пропускания сети и увеличенной задержки на передачу. Существующий механизм быстрой повторной передачи в некоторой степени уменьшает вероятность повторной передачи после тайм-аута. Тем не менее, если повторно переданный пакет потерян снова и не обнаруживается и восстанавливается своевременно, повторная передача после тайм-аута неизменно возникает. Хотя в предшествующем уровне техники, обнаружение и восстановление после потерь пакетов может выполняться для повторно передаваемого пакета посредством использования, например, DAC- и SACK+-алгоритмов, выявлено, через многократные тесты и эксперименты, что после того, как вводится алгоритм обнаружения и восстановления после потерь пакетов для повторно передаваемого пакета, пропускная способность явно не повышается. Было выявлено, что главная причина для этого результата состоит в том, что существующий способ обнаружения и восстановления после потерь повторно передаваемых пакетов не инициируется своевременно в большинстве случаев. Следовательно, после потери, повторно переданный пакет не обнаруживается и восстанавливается своевременно, и в конечном счете, повторная передача после тайм-аута возникает. В частности, в существующем решении на основе быстрой повторной передачи, определяется, главным образом согласно ACK-пакету, принимаемому после того, как пакет повторно передан, то, потерян или нет повторно переданный пакет, чтобы выполнять повторную передачу, с тем чтобы не допускать перехода к повторной передаче после тайм-аута. Тем не менее, если пакет не отправляется после того, как пакет повторно передан, существующий способ обнаружения и восстановления после потерь повторно передаваемых пакетов может не инициироваться. В конечном счете, повторная передача после тайм-аута неизменно возникает. Таким образом, вероятность повторной пакетной передачи вследствие тайм-аута является относительно большой, что вызывает снижение пропускной способности.
[0079] Чтобы разрешать вышеприведенные проблемы, вариант осуществления настоящего изобретения предусматривает способ пакетной передачи. После того, как пакет повторно передан, если обнаруживается то, что повторно переданный пакет потерян, потерянный пакет непрерывно отправляется множество раз (в том числе, но не только, два раза), или новый пакет немедленно отправляется после того, как потерянный пакет повторно передан. Таким образом, с одной стороны, следует исключать то, что алгоритм обнаружения и восстановления после потерь пакетов для повторно передаваемого пакета не инициируется вследствие недостаточных ACK-пакетов. Следовательно, повторно переданный пакет может обнаруживаться и восстанавливаться своевременно после потери, и количество повторных передач после тайм-аута уменьшается. С другой стороны, потерянный пакет непрерывно повторно передается множество раз, и повторная передача после тайм-аута инициируется только тогда, когда потеряны все повторно передаваемые пакеты. Фактическое преимущество заключается в том, что вероятность потерь пакетов для повторно передаваемого пакета экспоненциально уменьшается, за счет этого дополнительно уменьшая количество повторных передач после тайм-аута и повышая скорость передачи данных. Как показано на фиг. 5, способ пакетной передачи, представленный в этом варианте осуществления настоящего изобретения, включает в себя следующие этапы.
[0080] Этап 501. Отправляющий узел передает множество пакетов (пакеты 1-8, показанные на фиг. 5) в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом и принимает пакет подтверждения приема из приемного узла, как показано посредством стрелок от приемного узла к отправляющему узлу на фиг. 5. Пакет, отправленный посредством отправляющего узла, представляет собой TCP-пакет. Поле порядкового номера (в общем, сокращенно seq) заголовка каждого пакета переносит порядковый номер первого байта данных в рабочих данных пакета. Каждый раз, когда приемный узел принимает пакет, приемный узел возвращает пакет подтверждения приема (ACK) в отправляющий узел, чтобы указывать то, что приемный узел корректно принимает пакет. Необязательно, после этапа 501, отправляющий узел дополнительно может записывать наибольший порядковый номер отправленных пакетов для последующего обнаружения потерь пакетов.
[0081] Этап 503. После определения того, что первый пакет потерян, отправляющий узел немедленно повторно передает потерянный первый пакет, причем повторно переданный первый пакет (т.е. FR 3) также упоминается как повторно переданный пакет.
[0082] Обычно, некоторые пакеты в множестве пакетов, отправленных посредством отправляющего узла, не могут поступать в приемный узел вследствие такой причины, как состояние сети, и в силу этого теряются. Отправляющий узел может определять, согласно пакету подтверждения приема, возвращаемому посредством приемного узла, то, потерян или нет пакет. Например, отправляющий узел определяет, на основе принимаемого пакета подтверждения приема, то, что первый пакет (например, пакет 3, показанный на фиг. 5) в множестве пакетов потерян.
[0083] В частности, отправляющий узел может определять, несколькими способами, то, что первый пакет потерян. С использованием механизма быстрой повторной передачи, показанного на фиг. 4, в качестве примера, если отправляющий узел принимает, по меньшей мере, N (в общем, N равно 3) пакетов подтверждения приема, значения ack которых являются идентичными, отправляющий узел определяет то, что потерян первый пакет, порядковый номер которого является идентичным значению ack плюс 1. Как показано на фиг. 5, если отправляющий узел принимает три пакета подтверждения приема, значения поля ACK которых равны 2, отправляющий узел определяет то, что потерян пакет, порядковый номер которого равен 3. В качестве другого примера, в другом варианте осуществления, поле SACK расширяется в пакете подтверждения приема и используется для того, чтобы указывать пакетную информацию приемного буфера, причем приемный буфер используется для того, чтобы временно сохранять принимаемый пакет, и значение поля SACK задается как sack. Например, sack может представлять собой порядковый номер пакета, принимаемого посредством приемного узла. Таким образом, отправляющий узел может распознавать, согласно sack пакета подтверждения приема, возвращаемого посредством приемного узла, пакеты, которые принимаются посредством приемного узла, и пакеты, которые не принимаются посредством приемного узла, чтобы дополнительно определять то, имеется или нет потерянный пакет.
[0084] Необязательно, на этапе 503, отправляющий узел может повторно передавать потерянный первый пакет после того, как истекает таймер тайм-аута первого пакета.
[0085] Этап 505. После обнаружения того, что повторно переданный первый пакет потерян, отправляющий узел немедленно непрерывно отправляет первый пакет два раза или более двух раз. "Немедленно", описанное в этом варианте осуществления настоящего изобретения, означает в пределах предварительно установленного временного интервала. Таким образом, на этапе 505, отправляющий узел непрерывно отправляет потерянный первый пакет два раза или более двух раз в предварительно установленном временном интервале после того, как отправляющий узел обнаруживает то, что повторно переданный пакет потерян. Предварительно установленный временной интервал в данном документе должен быть больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Например, если период таймера тайм-аута, соответствующего первому пакету, составляет T, предварительно установленный временной интервал должен составлять меньше T или меньше T/2 или даже меньше T/4. Предпочтительно, предварительно установленный временной интервал использует момент, в который отправляющий узел обнаруживает то, что повторно переданный первый пакет потерян, в качестве начальной точки, и предварительно установленный временной интервал равен 0 или приближается к 0. Если предварительно установленный временной интервал равен 0, это указывает то, что действие обнаружения того, что повторно переданный пакет потерян, и действие отправки первого пакета завершаются одновременно или почти одновременно. Помимо этого, интервал (называемый далее "первым временным интервалом") непрерывной отправки первого пакета два раза, т.е. t на фиг. 5, также должен быть больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Кроме того, отправляющий узел не принимает, в первом временном интервале (t), пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян. Таким образом, когда отправляющий узел не принимает пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян (не может определять то, потерян или нет первый пакет, повторно переданный снова), отправляющий узел избыточно отправляет первый пакет в первом временном интервале (t).
[0086] Следует отметить, что таймер тайм-аута используется для повторной передачи после тайм-аута TCP, т.е. когда или после отправки пакета, отправляющий узел активирует таймер тайм-аута. Период синхронизации таймера тайм-аута составляет T. Если пакет подтверждения приема, соответствующий пакету, по-прежнему не принят, когда один период синхронизации таймера тайм-аута завершается, отправляющий узел определяет то, что пакет потерян, и выполняет повторную передачу после тайм-аута. Обычно, стек протоколов задает идентичный период таймера тайм-аута для каждого пакета, т.е. каждый пакет имеет идентичный период таймера тайм-аута. В частности, в варианте осуществления, этап 505 включает в себя:
[0087] Этап 1: Отправляющий узел определяет, согласно пакету подтверждения приема, принимаемому после того, как первый пакет повторно передан, то, что повторно переданный первый пакет (т.е. повторно переданный первый пакет FR3 на этапе 503) потерян. Например, наибольший порядковый номер текущих отправленных пакетов, который записывается посредством отправляющего узла, равен 8. Когда отправляющий узел принимает пакет подтверждения приема, sack которого превышает 8, например, принимает пакет подтверждения приема, sack которого равно 9, отправляющий узел может определять то, что повторно переданный пакет потерян. Sack переносится в поле расширения (SACK) пакета подтверждения приема и используется для того, чтобы указывать порядковый номер пакета, принимаемого посредством приемного узла. Очевидно, что отправляющий узел дополнительно может обнаруживать другим способом то, потерян или нет повторно переданный пакет.
[0088] Этап 2: Немедленная повторная передача первого пакета снова. "Немедленно" в данном документе означает в пределах предварительно установленного временного интервала после того, как отправляющий узел определяет то, что повторно переданный пакет потерян. Предварительно установленный временной интервал использует момент, в который отправляющий узел обнаруживает то, что повторно переданный первый пакет потерян, в качестве начальной точки. Предварительно установленный временной интервал должен быть больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Предпочтительно, предварительно установленный временной интервал равен 0 или приближается к 0. Если предварительно установленный временной интервал равен 0, это указывает то, что действие обнаружения, посредством отправляющего узла, того, что повторно переданный пакет потерян, и действие повторной передачи первого пакета снова завершаются одновременно или почти одновременно.
[0089] Этап 3: После повторной передачи первого пакета снова, отправляющий узел отправляет первый пакет в первом временном интервале (t), по меньшей мере, один раз. Первый временной интервал (t) в данном документе должен быть больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Например, если период синхронизации таймера тайм-аута отправляющего узла составляет T, t≤ или t≤T/2 или t≤T/4. Предпочтительно, первый временной интервал использует момент повторной передачи первого пакета снова в качестве начальной точки. Если первый временной интервал равен 0, это указывает то, что действия отправки первого пакета на этапе 2 и этапе 3 выполняются одновременно или почти одновременно. Помимо этого, отправляющий узел не принимает, в первом временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян. Таким образом, когда отправляющий узел не принимает пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян (не может определять то, потерян или нет первый пакет, повторно переданный снова), отправляющий узел избыточно отправляет первый пакет.
[0090] Дополнительно, в варианте осуществления, действие повторной передачи первого пакета на этапе 2 и действие отправки первого пакета на этапе 3 являются непрерывными, и отправляющий узел не отправляет другой пакет во временном интервале t между действием повторной передачи первого пакета на этапе 2 и действием отправки первого пакета на этапе 3. Например, если порядковый номер первого пакета, повторно передаваемого на этапе 2, составляет N, порядковый номер пакета, отправленного на этапе 3, составляет N+1.
[0091] Необязательно, после этапа 505, способ дополнительно включает в себя:
[0092] Этап 507. Отправляющий узел продолжает отправлять последующий пакет.
[0093] В частности, этап 507 включает в себя:
- если в данный момент разрешается отправка пакета, дополнительную отправку, посредством отправляющего узла, по меньшей мере, одного нового пакета. Новый пакет означает пакет, который не отправляется посредством отправляющего узла ранее. В варианте осуществления, отправляющий узел может определять, согласно текущему отправляющему буферу и/или политике управления перегрузкой, то, разрешается или нет отправка нового пакета. Например, если отправляющий буфер не является пустым в первом временном интервале, отправляющий узел отправляет, по меньшей мере, один пакет в отправляющий буфер в первом временном интервале.
[0094] В варианте осуществления, описанном выше, после обнаружения того, что повторно переданный пакет потерян, отправляющий узел многократно отправляет первый пакет в самом временном интервале два раза или более двух раз. Таким образом, отправляющий узел может непрерывно принимать пакеты подтверждения приема, так что повторно переданный пакет может обнаруживаться и восстанавливаться своевременно после потери, за счет этого уменьшая количество повторных передач после тайм-аута, уменьшая задержку на передачу и повышая скорость передачи. Помимо этого, если повторно переданный пакет потерян снова, повторная передача после тайм-аута может инициироваться. Тем не менее, если повторно переданный пакет быстро повторно передается множество раз за короткое время, вероятность того, что, повторно переданный пакет потерян, экспоненциально уменьшается, за счет этого дополнительно уменьшая вероятность повторной передачи после тайм-аута.
[0095] На основе вышеприведенного варианта осуществления, настоящее изобретение дополнительно предусматривает другой способ пакетной передачи. Как показано на фиг. 6, способ включает в себя следующие этапы.
[0096] Этап 601. Отправляющий узел передает множество пакетов (например, пакеты 1-8 на фиг. 6) в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом. Пакеты представляют собой TCP-пакеты. Поле порядкового номера (порядковый номер, в общем, сокращенно seq) заголовка каждого пакета переносит порядковый номер первого байта данных в рабочих данных пакета. Необязательно, после этапа 601, отправляющий узел дополнительно может записывать наибольший порядковый номер отправленных пакетов для последующего обнаружения потерь пакетов.
[0097] Этап 603. После определения того, что первый пакет (например, пакет 3 на фиг. 6) потерян, отправляющий узел немедленно повторно передает потерянный первый пакет, причем повторно переданный первый пакет (т.е. FR 3) также упоминается как повторно переданный пакет.
[0098] В частности, на этапе 603, отправляющий узел принимает пакет подтверждения приема из приемного узла и определяет, на основе принимаемого пакета подтверждения приема, то, что первый пакет (например, пакет 3 на фиг. 6) в множестве пакетов потерян. На предмет конкретного способа определения, посредством отправляющего узла согласно пакету подтверждения приема, того, что первый пакет потерян, следует обратиться к соответствующим описаниям этапа 503. В другом варианте осуществления настоящего изобретения, первый пакет может повторно передаваться один раз или множество раз после того, как таймер тайм-аута превышает предварительно установленный временной интервал. "Немедленно" на этапе 603 означает в пределах предварительно установленного временного интервала после того, как определяется то, что первый пакет потерян. Предварительно установленный временной интервал больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Предпочтительно, предварительно установленный временной интервал использует момент обнаружения того, что повторно переданный первый пакет потерян, в качестве начальной точки, и предварительно установленный временной интервал равен 0 или приближается к 0.
[0099] Этап 605. Отправляющий узел определяет, согласно пакету подтверждения приема, принимаемому после того, как первый пакет повторно передан, то, что повторно переданный пакет (т.е. повторно переданный первый пакет FR3 на этапе 602) потерян, и немедленно повторно передает первый пакет снова. На предмет конкретного способа определения, посредством отправляющего узла, того, что повторно переданный пакет потерян, следует обратиться к соответствующим описаниям этапа 1 на фиг. 5. Кроме того, связанный смысл и пояснение "немедленно" на этапе 605 являются аналогичными смыслу и пояснению, описанным на этапе 505, и подробности не описываются повторно в данном документе.
[0100] Этап 607. Отправляющий узел определяет то, является или нет отправляющий буфер пустым, и если отправляющий буфер является пустым, отправляющий узел отправляет первый пакет, по меньшей мере, один раз в первом временном интервале после повторной передачи первого пакета снова. На предмет определения первого временного интервала, следует обратиться к варианту осуществления, показанному на фиг. 5. Дополнительно, в другом варианте осуществления, первый временной интервал на этапе 607 может использовать момент повторной передачи первого пакета снова в качестве начальной точки и использовать момент приема первого пакета подтверждения приема после того, как первый пакет повторно передан снова, в качестве конечной точки. Таким образом, после повторной передачи первого пакета снова, отправляющий узел фактически отправляет первый пакет снова перед приемом пакета подтверждения приема, используемого для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян.
[0101] Следует отметить, что отправляющий буфер на этапе 607 выполнен с возможностью буферизовать подлежащие отправке данные приложения, т.е. данные, которые не отправляются посредством отправляющего узла. Пакет в отправляющем буфере вставляется в очередь отправки в конкретное время и отправляется из очереди отправки. Очередь отправки может включать в себя пакет, который не отправляется посредством отправляющего узла, и повторно переданный пакет также может вставляться в очередь отправки.
[0102] Дополнительно, как показано на фиг. 6, в варианте осуществления, этап 607 дополнительно включает в себя: если отправляющий буфер не является пустым, отправку, посредством отправляющего узла, второго пакета (например, пакета 11 на фиг. 6) в отправляющем буфере в первом временном интервале (t на фиг. 6) после повторной передачи первого пакета снова. Очевидно, что второй пакет представляет собой новый пакет, т.е. пакет, который не отправляется до того, как отправляющий узел повторно передает первый пакет снова.
[0103] В другом варианте осуществления, вышеприведенные этапы 605 и 607 завершаются в предварительно установленном временном интервале, т.е. действия повторной передачи первого пакета снова, определения того, является или нет отправляющий буфер пустым, и избыточной отправки первого пакета или отправки второго пакета завершаются в предварительно установленном временном интервале. Предварительно установленный временной интервал больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Помимо этого, отправляющий узел не принимает, в предварительно установленном временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян. Таким образом, когда отправляющий узел не принимает пакет подтверждения приема, используемый для того, чтобы указывать то, что первый пакет, повторно переданный снова, потерян (не может определять то, потерян или нет первый пакет, повторно переданный снова), отправляющий узел избыточно отправляет первый пакет.
[0104] Дополнительно, в варианте осуществления, отправляющий узел может собирать информацию состояния в процессе передачи пакета в приемный узел. Следовательно, после повторной передачи первого пакета, отправляющий узел может вычислять, согласно собранной информации состояния, то, может или нет отправляющий узел немедленно отправлять новый пакет после повторной передачи первого пакета. Информация состояния включает в себя, но не только, по меньшей мере, один фрагмент следующей информации: размер отправляющего буфера отправляющего узла, размер окна перегрузки отправляющего узла, политику управления перегрузкой отправляющего узла или размер окна приема приемного узла. Соответственно, на этапе 607, если отправляющий буфер отправляющего узла не является пустым, и политика управления перегрузкой отправляющего узла разрешает отправку нового пакета, отправляющий узел определяет то, что в данный момент разрешается отправка нового пакета, и дополнительно отправляет новый пакет в первом временном интервале после повторной передачи первого пакета снова. Альтернативно, если отправляющий буфер отправляющего узла не является пустым, и политика управления перегрузкой отправляющего узла не разрешает отправку нового пакета, отправляющий узел по-прежнему определяет то, что в данный момент может разрешаться отправку нового пакета, и отправляет новый пакет в первом временном интервале (t) после повторной передачи первого пакета снова. Таким образом, на этапе 607, отправляющий узел определяет, просто согласно отправляющему буферу, то, следует или нет отправлять новый пакет в первом временном интервале, но игнорирует ограничение политики управления перегрузкой. Конкретный способ игнорирования политики управления перегрузкой включает в себя: после того, как отправляющий узел повторно передает потерянный пакет снова, если отправляющий буфер не является пустым, временное увеличение, посредством отправляющего узла, окна перегрузки, чтобы не допускать ограничения политики управления перегрузкой в первом временном интервале и быстро отправлять новый пакет. Дополнительно, после отправки нового пакета, отправляющий узел восстанавливает окно перегрузки.
[0105] Следует отметить, что отличие между способом пакетной передачи в этом варианте осуществления настоящего изобретения и способом, показанным на фиг. 5, заключается в том, что в этом варианте осуществления настоящего изобретения, отправляющий узел многократно не отправляет потерянный первый пакет в первом временном интервале два раза или более двух раз в каждое время после обнаружения того, что повторно переданный пакет потерян, но дополнительно определяет то, можно или нет в данный момент отправлять новый пакет, и если да, отправляет, по меньшей мере, один новый пакет в первом временном интервале. По сравнению со способом, показанным на фиг. 5, посредством использования способа в этом варианте осуществления настоящего изобретения, когда вероятность потерь повторно передаваемого пакета уменьшается, избыточная отправка пакета уменьшается, и повышается эффективность сетевой передачи.
[0106] На основе способа, показанного на фиг. 6, вариант осуществления настоящего изобретения дополнительно предусматривает другой способ пакетной передачи. Как показано на фиг. 7, способ включает в себя следующие этапы.
[0107] Этап 701. Отправляющий узел передает множество пакетов (например, пакеты 1-8 на фиг. 7) в приемный узел посредством использования линии связи между отправляющим узлом и приемным узлом.
[0108] Этап 703. После определения того, что первый пакет (например, пакет 3 на фиг. 7) потерян, отправляющий узел немедленно повторно передает потерянный первый пакет, причем повторно переданный первый пакет (т.е. FR 3) также упоминается как повторно переданный пакет. "Немедленно" в данном документе означает в пределах временного интервала, приближающегося к 0. Для получения дополнительной информации, следует обратиться к соответствующим описаниям в вариантах осуществления, показанных на фиг. 5 и фиг. 6.
[0109] Этап 705. Отправляющий узел определяет, согласно пакету подтверждения приема, принимаемому после того, как первый пакет повторно передан, то, что повторно переданный пакет (т.е. повторно переданный первый пакет FR3 на этапе 602) потерян, и немедленно повторно передает первый пакет снова. На предмет конкретного способа определения, посредством отправляющего узла, того, что повторно переданный пакет потерян, следует обратиться к соответствующим описаниям этапа 1 на фиг. 5. Помимо этого, связанный смысл и пояснение "немедленно" на этапе 705 являются аналогичными смыслу и пояснению, описанным на этапе 505 и этап 605, и подробности не описываются повторно в данном документе.
[0110] Этап 707. Определение того, является или нет отправляющий буфер пустым, и того, разрешает или нет политика управления перегрузкой отправку нового пакета; если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправляющий узел отправляет первый пакет в первом временном интервале (например, t на фиг. 7), по меньшей мере, один раз; иначе, если отправляющий буфер не является пустым, и текущая политика управления перегрузкой разрешает отправку нового пакета, отправляющий узел отправляет, по меньшей мере, один новый пакет в первом временном интервале. На предмет определения первого временного интервала, следует обратиться к варианту осуществления способа, показанному на фиг. 5, и подробности не описываются снова.
[0111] Дополнительно, как показано на фиг. 7, после этапа 707, способ пакетной передачи дополнительно включает в себя:
[0112] Этап 709. Отправляющий узел определяет то, является или нет отправляющий буфер пустым, и если отправляющий буфер является пустым, возвращается или ожидает; или если отправляющий буфер не является пустым, определяет то, разрешает или нет текущая политика управления перегрузкой отправку нового пакета, и если текущая политика управления перегрузкой не разрешает отправку нового пакета, возвращается или ожидает; или если текущая политика управления перегрузкой разрешает отправку нового пакета, отправляет новый пакет.
[0113] По сравнению со способом, показанным на фиг. 6, в способе, показанном на фиг. 7, как отправляющий буфер, так и политика управления перегрузкой рассматриваются, когда определяется то, следует или нет отправлять новый пакет, и политика управления перегрузкой согласована, поскольку новый пакет не отправляется.
[0114] Ниже описывается другой способ пакетной передачи в варианте осуществления настоящего изобретения на основе конкретного сценария применения (сценария сетевого видеонаблюдения). Как показано на фиг. 8, предполагается, что пользователь наблюдает, посредством использования абонентского устройства, видео, снятое посредством удаленной сетевой камеры. Кристалл сетевой камеры интегрирует упрощенный стек TCP/IP-протоколов. Стек протоколов реализует способ пакетной передачи в этом варианте осуществления изобретения по настоящему патенту. Предполагается, что частота потерь пакетов линии связи равна 5%. В процессе передачи TCP-пакетов, предполагается, что потерян пакет 3, порядковый номер которого равен 3. Способ пакетной передачи в этом варианте осуществления настоящего изобретения показан на фиг. 9.
[0115] Этап 1001. После обнаружения того, что пакет 3 потерян, сетевая камера повторно передает пакет 3 и записывает то, что наибольший порядковый номер текущих отправленных пакетов равен 8.
[0116] Этап 1002. Когда отправляющий буфер не является пустым, и политика управления перегрузкой разрешает отправку нового пакета, отправляющий узел продолжает отправлять новый пакет.
[0117] Этап 1003. Когда третье повторное ACK после того, как пакет 3 повторно передан, принимается, порядковый номер кумулятивного подтверждения приема по-прежнему равен 9 и не обновляется, и прием пакета, порядковый номер которого равен 9, подтвержден, сетевая камера определяет то, что повторно переданный пакет потерян.
[0118] Этап 1004. Немедленная повторная передача пакета 3 снова и запись того, что наибольший порядковый номер текущих отправленных пакетов равен 10.
[0119] Этап 1005. Определение, согласно отправляющему буферу и политике управления перегрузкой, того, следует или нет продолжать отправлять новый пакет в данный момент.
[0120] Этап 1006. Если отправляющий буфер не является пустым, но текущая политика управления перегрузкой не разрешает отправку нового пакета, немедленная отправка, по меньшей мере, одного нового пакета; или если отправляющий буфер является пустым, немедленная отправка пакета 3, по меньшей мере, один раз. "Немедленно", описанное в этом варианте осуществления настоящего изобретения, означает в пределах предварительно установленного временного интервала. Таким образом, отправляющий узел избыточно отправляет потерянный пакет 3, по меньшей мере, один раз или новый пакет в предварительно установленном временном интервале после повторной передачи пакета 3 снова. Предварительно установленный временной интервал в данном документе должен быть больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута пакета 3. Например, если период таймера тайм-аута, соответствующего пакету 3, составляет T, предварительно установленный временной интервал должен составлять меньше T или меньше T/2 или даже меньше T/4. Предпочтительно, предварительно установленный временной интервал использует момент повторной передачи пакета 3 снова в качестве начальной точки, и сетевая камера обнаруживает то, что пакет подтверждения приема, используемый для того, чтобы указывать то, что пакет 3, повторно переданный снова, потерян, не принят в предварительно установленном временном интервале.
[0121] В способе в этом варианте осуществления настоящего изобретения, после обнаружения того, что пакет потерян, сетевая камера повторно передает пакет и определяет то, можно или нет в данный момент отправлять новый пакет. Если новый пакет не может отправляться, отправляющий узел избыточно отправляет потерянный пакет в предварительно установленном временном интервале. Таким образом, может уменьшаться вероятность потерь пакетов, и может повышаться эффективность передачи данных.
[0122] Экспериментальные результаты этого варианта осуществления настоящего изобретения, которые получаются в различных сетевых окружениях с различными частотами потерь пакетов, показаны в таблице 1 и таблице 2. Согласно таблице 1, в сценарии передачи данных на 200 МБайт, посредством использования способа пакетной передачи в этом варианте осуществления настоящего изобретения, количество потерь пакетов в 2-5 раз меньше количества потерь пакетов, полученного посредством использования DAC-способа. Как показано в таблице 2, когда используется способ настоящего изобретения, пропускная способность, по меньшей мере, в два раза выше пропускной способности, полученной посредством использования DAC-способа. В сценарии с высокой частотой потерь пакетов, пропускная способность превышает пропускную способность собственного стека протоколов Linux.
Табл. 1. Количества потерь пакетов, когда данные на 200 МБайт передаются в сценариях с различными частотами потерь пакетов
Частота потерь пакетов
1%
3%
5%
7%
9%
11%
DAC
0
9
52
134
291
534
Оптимизация
0
0
8
31
84
169
Табл. 2. Пропускные способности, когда данные на 200 МБайт передаются в сценариях с различными частотами потерь пакетов
Частота потерь пакетов
1%
3%
5%
7%
9%
11%
DAC
11,31 Мебибайт/с
5,81 Мебибайт/с
1,99 Мебибайт/с
0,83 Мебибайт/с
0,36 Мебибайт/с
0,19 Мебибайт/с
Оптимизация
11,33 Мебибайт/с
11 Мебибайт/с
6,8 Мебибайт/с
2,87 Мебибайт/с
1,29 Мебибайт/с
0,65 Мебибайт/с
Linux
11,24 Мебибайт/с
8,7 Мебибайт/с
4,54 Мебибайт/с
1,96 Мебибайт/с
0,89 Мебибайт/с
0,53 Мебибайт/с
[0123] Варианты осуществления способа, описанные на фиг. 5 -7, представляют собой механизмы отправки пакетов после того, как обнаруживается то, что повторно переданный пакет потерян. Очевидно, что в необязательном варианте осуществления настоящего изобретения, после того, как обнаруживается, в первый раз, то, что пакет (например, первый пакет) потерян, первый пакет может непрерывно повторно передаваться в первом временном интервале множество раз. В другом варианте осуществления, после того, как отправляющий узел обнаруживает, в первый раз, то, что первый пакет потерян, если текущий отправляющий буфер не является пустым, отправляющий узел непрерывно отправляет первый пакет и, по меньшей мере, один новый пакет в первом временном интервале; иначе отправляющий узел непрерывно отправляет первый пакет в первом временном интервале, по меньшей мере, два раза. В другом варианте осуществления, после того, как отправляющий узел обнаруживает, в первый раз, то, что первый пакет потерян, если текущий отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправляющий узел непрерывно отправляет первый пакет в первом временном интервале, по меньшей мере, один раз; иначе, непрерывно отправляет первый пакет и, по меньшей мере, один новый пакет.
[0124] Как можно видеть, механизм избыточной отправки пакетов, описанный со ссылкой на фиг. 5-7 настоящей заявки, не ограничен инициированием после того, как обнаруживается то, что повторно переданный пакет потерян. Помимо этого, пакет может отправляться избыточно в первое время, когда обнаруживается то, что пакет потерян.
[0125] На основе вышеприведенных вариантов осуществления способа, настоящее изобретение дополнительно предусматривает абонентское устройство, чтобы реализовывать функции отправляющего узла в вышеприведенных вариантах осуществления способа. В частности, ссылаясь на фиг. 2, абонентское устройство 110 включает в себя: процессор 120, стек 130 TCP-протоколов, антенну 142, беспроводной модем 140 и запоминающее устройство 150. Беспроводной модем 140 соединяется с антенной 142. Стек 130 TCP-протоколов выполнен с возможностью: инкапсулировать, под управлением процессора 120, данные прикладной программы в множество пакетов с конкретным форматом данных согласно техническим требованиям TCP/IP-протокола и отправлять множество пакетов в беспроводной модем 140. Беспроводной модем 140 выполнен с возможностью: модулировать принимаемые пакеты в аналоговые сигналы и передавать аналоговые сигналы посредством использования антенны. Сервер 20 прикладных программ может принимать, посредством использования беспроводной сети, аналоговые сигналы, передаваемые посредством абонентского устройства 110, демодулировать аналоговые сигналы в цифровые сигналы и отправлять цифровые сигналы в стек 21 TCP-протоколов сервера 20 прикладных программ. Стек 21 TCP-протоколов выполнен с возможностью декапсулировать цифровые сигналы, чтобы в итоге получать данные прикладной программы. Стеки TCP-протоколов абонентского устройства 110 и сервера 20 прикладных программ включают в себя: физический уровень, канальный уровень, сетевой уровень, уровень передачи и прикладной уровень. Процесс, в котором стек TCP-протоколов инкапсулирует и декапсулирует пакет, показан на фиг. 10. Как можно видеть, процесс инкапсуляции пакета фактически представляет собой процесс добавления, посредством стека TCP-протоколов, заголовка и/или концевой части кадра в пакет, и процесс декапсуляции пакета фактически представляет собой процесс удаления заголовка и/или концевой части кадра из пакета.
[0126] Дополнительно, после приема пакета, отправленного посредством абонентского устройства 110, сервер 20 прикладных программ возвращает пакет подтверждения приема, чтобы указывать то, что пакет принят. Стек 130 TCP-протоколов дополнительно выполнен с возможностью: определять, под управлением процессора 120 и согласно пакету подтверждения приема, принимаемому из сервера прикладных программ, то, что первый пакет потерян; и непрерывно повторно передавать первый пакет в предварительно установленном временном интервале, по меньшей мере, два раза.
[0127] Предпочтительно, в другом варианте осуществления, стек 130 TCP-протоколов дополнительно выполнен с возможностью осуществлять часть или все этапы на фиг. 5, фиг. 6 или фиг. 7 под управлением процессора 120.
[0128] Следует отметить, что стек 130 TCP-протоколов может выполняться посредством надлежащей комбинации программного обеспечения, аппаратных средств и/или микропрограммного обеспечения на абонентском устройстве 110. Например, в варианте осуществления, стек 130 TCP-протоколов сохраняется в запоминающем устройстве 150 в форме исполняемого программного кода. Процессор 120 выполняет программный код, соответствующий стеку 130 TCP-протоколов, чтобы выполнять часть или все этапы, описанные на фиг. 5, фиг. 6 или фиг. 7. В частности, как показано на фиг. 12, абонентское устройство 100 разделяется, согласно логической иерархии, на: кристалл/аппаратную платформу, ядро на кристалле/аппаратной платформе, промежуточное программное обеспечение и прикладную программу, работающую на промежуточном программном обеспечении. Ядро, промежуточное программное обеспечение и прикладная программа сохраняются в запоминающем устройстве 150 абонентского устройства 110 способом исполняемого кода. Процессор синтаксически анализирует код в конкретные инструкции и выполняет инструкции, чтобы завершать соответствующую функцию. Исполнительный кристалл включает в себя, по меньшей мере, одно из процессора общего назначения, микропроцессора, графического процессора или процессора полосы модулирующих частот. Аппаратная платформа включает в себя: кристалл, запоминающее устройство, интерфейс связи и т.п. Ядро, в частности, включает в себя: драйвер кристалла, периферийный драйвер (например, интерфейс связи и драйвер датчика), уровень аппаратной адаптации и основное ядро. Основное ядро предоставляет такие функции, как управление запоминающим устройством, управление прерыванием, управление процессами и файловая система. Процессор выполняет исполняемый код, соответствующий ядру, чтобы диспетчеризовать аппаратный ресурс, чтобы реализовывать конкретную функцию, например, считывание и запись данных и формирование управляющей инструкции.
[0129] Дополнительно, промежуточное программное обеспечение, в качестве объединенной точки между ядром и прикладной программой верхнего уровня, может включать в себя множество типов стеков протоколов, так что абонентское устройство поддерживает различные типы протоколов. Например, промежуточное программное обеспечение может включать в себя стек TCP-протоколов, описанный в вышеприведенном варианте осуществления. Промежуточное программное обеспечение дополнительно включает в себя интерфейс прикладного программирования (API) и различные типы компонентов уровня предоставления услуг. Компоненты уровня предоставления услуг разрабатываются для конкретного приложения или услуги и предоставляют некоторые дополнительные функции для приложения или услуги. Для сценария применения, показанного на фиг. 8, компоненты уровня предоставления услуг могут включать в себя видеокомпонент, выполненный с возможностью предоставлять функцию видеооптимизации и/или функцию кодирования и декодирования видео, с тем чтобы поддерживать работу приложения видеонаблюдения. API выполнен с возможностью межсетевого взаимодействия между прикладной программой верхнего уровня, промежуточным программным обеспечением и ядром, чтобы передавать сообщение. Необязательно, промежуточное программное обеспечение дополнительно включает в себя компонент системы безопасности, выполненный с возможностью реализовывать аутентификацию и авторизацию устройства.
[0130] В частности, в процессе, в котором прикладная программа (например, APP 1) выполняется посредством процессора, API может активироваться, чтобы передавать данные пакет в стек сетевых протоколов (например, стек TCP-протоколов). После считывания пакета, стек TCP-протоколов активирует драйвер оборудования в ядре посредством использования системной функции, чтобы управлять связанными аппаратными средствами, например, беспроводным модемом 140 и антенной 142, с возможностью отправлять, принимать и обрабатывать пакет. Помимо этого, обнаружение потерь пакетов данных и повторная пакетная передача также реализованы посредством процессора посредством выполнения стека TCP-протоколов. На предмет подробностей конкретной реализации обнаружения потерь пакетов и пакетной передачи посредством стека TCP-протоколов, следует обратиться к вышеприведенным вариантам осуществления, и подробности не описываются повторно в данном документе.
[0131] В другом варианте осуществления, стек 130 TCP-протоколов может реализовываться посредством аппаратной схемы или специализированного кристалла, такого как программируемая пользователем вентильная матрица (FPGA) или специализированная интегральная схема (ASIC). В этом случае, процессор 120 и аппаратная TCP-схема или специализированный кристалл, который выполнен с возможностью реализовывать стек TCP-протоколов, соединяются посредством использования шины. Процессор выполняет прикладную программу в запоминающем устройстве 150 и активирует аппаратную TCP-схему или специализированный кристалл, выполненный с возможностью реализовывать стек TCP-протоколов, так чтобы передавать и обрабатывать данные, сформированные в процессе выполнения прикладной программы. В частности, процессор 120 декодирует код, соответствующий прикладной программе, в машинные команды, выполняет машинные команды по одной и, в процессе выполнения инструкций, активирует, посредством использования соответствующей программы, аппаратную TCP-схему или специализированный кристалл, чтобы отправлять и принимать пакет. Соответственно, при активации процессора 120, аппаратная TCP-схема или специализированный кристалл взаимодействует с другим элементом аппаратных средств, чтобы завершать этапы или функции, описанные в вариантах осуществления способа настоящего изобретения. Помимо этого, на предмет соответствующих подробностей этапов осуществления вышеприведенного способа посредством аппаратной TCP-схемы или специализированного кристалла стека TCP-протоколов, следует обратиться к вышеприведенным вариантам осуществления способа, и подробности не описываются повторно в данном документе.
[0132] Как показано на фиг. 11, вариант осуществления настоящего изобретения дополнительно предусматривает другое абонентское устройство 300, включающее в себя: схему 302 обработки и интерфейс 304 связи и носитель 320 данных, которые соединяются со схемой 302 обработки.
[0133] Схема 302 обработки выполнена с возможностью: обрабатывать и/или отправлять данные, управлять доступом и хранением данных, выдавать команды и управлять другим устройством с возможностью выполнять операцию. Схема 302 обработки может реализовываться как один или более процессоров, один или более контроллеров и/или другая структура, которая может быть выполнена с возможностью осуществлять программу и т.п. Схема 302 обработки, в частности, может включать в себя: процессор общего назначения, процессор цифровых сигналов (DSP), специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другой программируемый логический компонент. Процессор общего назначения может включать в себя: микропроцессор и любой нормальный процессор, контроллер, микроконтроллер или конечный автомат. Схема 302 обработки может реализовываться как вычислительный компонент, например, как комбинация DSP и микропроцессора.
[0134] Носитель 306 данных может включать в себя машиночитаемый носитель данных, такой как магнитное устройство хранения данных (например, жесткий диск, гибкий диск или магнитную полосу), оптический носитель данных (например, универсальный цифровой диск (DVD)), смарт-карту, устройство флэш-памяти, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), программируемое ROM (PROM), стираемое PROM (EPROM), регистр или любую комбинацию вышеозначенного. Носитель 306 данных может соединяться со схемой 302 обработки, так что схема 302 обработки может считывать информацию и записывать информацию в носитель 306 данных. В частности, носитель 306 данных может интегрироваться в схему 302 обработки или носитель 306 данных, и схема 302 обработки может отделяться.
[0135] Схема 302 обработки выполнена с возможностью выполнять программу, сохраненную в носителе 306 данных. Термин "программа", используемый в этом варианте осуществления настоящего изобретения, следует широко понимать, в том числе, но не только, как: инструкцию, набор инструкций, код, сегмент кода, вложенную процедуру, программный модуль, приложение, программный пакет, подпроцесс, процесс, функцию, микропрограммное обеспечение, промежуточное программное обеспечение и т.п.
[0136] Интерфейс 304 связи может включать в себя схему и/или программу, чтобы реализовывать двунаправленную связь между абонентским устройством 300 и одним или более беспроводных сетевых устройств (например, сетевым узлом). Интерфейс 304 связи может соединяться с одной или более антенн (не показаны на фиг. 11) и включает в себя, по меньшей мере, одну схему 316 приемного устройства и/или, по меньшей мере, одну схему 318 передающего устройства. В варианте осуществления, интерфейс 304 связи может полностью или частично реализовываться посредством беспроводного модема.
[0137] В варианте осуществления, носитель 306 данных сохраняет протокол 320 из стека протоколов. Схема 302 обработки выполняет протокол 320 из стека протоколов, чтобы реализовывать функцию модуля 308 стека протоколов. Модуль 308 стека протоколов может выполнять обработку декодирования и/или декапсуляции для данных, принимаемых посредством интерфейса 304 связи, и передавать данные в прикладную программу верхнего уровня или может выполнять обработку инкапсуляции для данных прикладной программы и затем отправлять данные в другое устройство посредством использования интерфейса связи. На предмет конкретного рабочего процесса модуля 308 стека протоколов, следует обратиться к стекам 130 и 21 TCP-протоколов в вышеприведенном варианте осуществления и к соответствующим описаниям на фиг. 11.
[0138] В варианте осуществления, модуль 308 стека протоколов может включать в себя: модуль физического уровня, модуль канального уровня, модуль сетевого уровня, модуль уровня передачи и модуль прикладного уровня, чтобы реализовывать протоколы уровней. Например, модуль физического уровня может включать в себя схему и/или программу, выполненную с возможностью: задавать признак физического интерфейса устройств, тип среды передачи, скорость передачи, режим передачи и т.п. и реализовывать обработку сигналов физического уровня. Аналогично, модуль канального уровня может включать в себя схему и/или программу, выполненную с возможностью реализовывать функцию канального уровня, например, отвечающую за доставку служебных сигналов, сформированных посредством сетевого уровня, и обработку информации, сформированной посредством физического уровня. Модуль канального уровня может включать в себя один или более субмодулей, например, модуль уровня управления доступом к среде (MAC), модуль уровня управления радиосвязью (RLC) и модуль уровня управления логической связью (LLC), которые, соответственно, выполнены с возможностью реализовывать функции MAC-уровня, RLC-уровня и LLC-уровня. Например, модуль MAC-уровня выполнен с возможностью: передавать протокольные данные верхнего уровня посредством использования услуг, предоставляемых посредством физического уровня, и управлять доступом к данным между верхним уровнем и радиоинтерфейсом. Модуль RLC-уровня выполнен с возможностью сегментации и повторной сборки данных. Модуль LLC-уровня выполнен с возможностью предоставлять функцию управления трафиком и последовательностями и функцию контроля ошибок. Дополнительно, модуль сетевого уровня может включать в себя схему и/или программу, чтобы реализовывать функцию сетевого уровня, например, логическую адресацию и маршрутизацию. Модуль уровня передачи может включать в себя схему и/или программу, выполненную с возможностью реализовывать функцию уровня передачи, например, адресацию портов, сегментацию и повторную сборку, управление соединениями, управление трафиком и контроль ошибок. Модуль прикладного уровня может включать в себя схему и/или программу, выполненную с возможностью предоставлять интерфейс с прикладной программой верхнего уровня.
[0139] Согласно одному или более аспектов этого варианта осуществления настоящего изобретения, схема 302 обработки выполнена с возможностью осуществлять протокол 320 из стека протоколов, сохраненный в носителе 306 данных, с тем чтобы реализовывать функцию модуля 308 стека протоколов. Модуль 308 стека протоколов, в частности, реализует часть или все этапы в вышеприведенных вариантах осуществления способа.
[0140] Как показано на фиг. 13, вариант осуществления настоящего изобретения дополнительно предусматривает абонентское устройство 13, чтобы реализовывать функции отправляющего узла в вышеприведенных вариантах осуществления способа. Абонентское устройство 13 включает в себя: приемный блок 131, отправляющий 133 блок и блок 132 обработки.
[0141] Отправляющий блок 133 выполнен с возможностью отправлять множество пакетов в приемный узел 14 при соединении связи с абонентским устройством 13.
[0142] Приемный блок 131 выполнен с возможностью принимать пакеты подтверждения приема из приемного узла 14.
[0143] В варианте осуществления, блок 132 обработки выполнен с возможностью: определять, согласно пакетам подтверждения приема, принимаемым посредством приемного блока 131, то, что первый пакет в множестве пакетов потерян; и инициировать отправляющий блок 133 с возможностью повторно передавать первый пакет в приемный узел 14. Дополнительно, блок 132 обработки дополнительно выполнен с возможностью: определять, согласно пакету подтверждения приема, принимаемому посредством приемного блока 131 после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян, и немедленно инициировать отправляющий блок 133 с возможностью непрерывно отправлять первый пакет в первом временном интервале, по меньшей мере, два раза, причем повторно переданный пакет представляет собой повторно переданный первый пакет. На предмет подробных определений "немедленно" и "первый временной интервал", следует обратиться к вышеприведенным вариантам осуществления способа.
[0144] В другом варианте осуществления, блок 132 обработки выполнен с возможностью: определять, согласно пакетам подтверждения приема, принимаемым посредством приемного блока 131, то, что первый пакет в множестве пакетов потерян; и инициировать отправляющий блок 133 с возможностью повторно передавать первый пакет в приемный узел 14. Дополнительно, блок 132 обработки дополнительно выполнен с возможностью: определять, согласно пакету подтверждения приема, принимаемому посредством приемного блока 131 после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян, инициировать отправляющий блок 133 с возможностью повторно передавать первый пакет снова и определять то, является или нет отправляющий буфер пустым; и если отправляющий буфер не является пустым, отправлять, по меньшей мере, один пакет в отправляющем буфере в первом временном интервале, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего блока. Дополнительно, блок 132 обработки дополнительно выполнен с возможностью: если отправляющий буфер является пустым, инициировать отправляющий блок 133 с возможностью отправлять первый пакет в первом временном интервале, по меньшей мере, один раз. На предмет подробного определения "первого временного интервала" следует обратиться к вышеприведенным вариантам осуществления способа.
[0145] В другом варианте осуществления, блок 132 обработки выполнен с возможностью: определять, согласно пакетам подтверждения приема, принимаемым посредством приемного блока 131, то, что первый пакет в множестве пакетов потерян; и инициировать отправляющий блок 133 с возможностью повторно передавать первый пакет в приемный узел 14. Дополнительно, блок 132 обработки дополнительно выполнен с возможностью: определять, согласно пакету подтверждения приема, принимаемому посредством приемного блока 131 после того, как первый пакет повторно передан, то, что повторно переданный пакет потерян, инициировать отправляющий блок 133 с возможностью повторно передавать первый пакет снова и определять то, является или нет отправляющий буфер пустым, или то, разрешает или нет текущая политика управления перегрузкой отправку нового пакета; и если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, отправлять первый пакет в первом временном интервале, по меньшей мере, один раз. Дополнительно, блок 132 обработки дополнительно выполнен с возможностью: если отправляющий буфер не является пустым, и текущая политика управления перегрузкой разрешает отправку нового пакета, отправлять, по меньшей мере, один пакет в отправляющем буфере в первом временном интервале, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего блока. На предмет подробного определения "первого временного интервала" следует обратиться к вышеприведенным вариантам осуществления способа.
[0146] Следует отметить, что на предмет подробных рабочих процессов приемного блока 131, отправляющего блока 133 и блока 132 обработки, следует обратиться к вышеприведенным вариантам осуществления способа, и подробности не описываются повторно в данном документе.
[0147] Вариант осуществления настоящего изобретения дополнительно предусматривает абонентское устройство, включающее в себя: отправляющий блок, приемный блок и блок обработки.
[0148] Отправляющий блок выполнен с возможностью отправлять множество пакетов в приемный узел при соединении связи с абонентским устройством.
[0149] Приемный блок выполнен с возможностью принимать множество пакетов подтверждения приема из приемного узла.
[0150] В варианте осуществления, блок обработки выполнен с возможностью: определять, согласно множеству пакетов подтверждения приема, принимаемым посредством приемного блока, то, что первый пакет в множестве пакетов потерян, инициировать отправляющий блок с возможностью немедленно повторно передавать первый пакет в приемный узел и отправлять первый пакет во втором временном интервале, по меньшей мере, один раз, причем второй временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета, и отправляющий узел не принял, во втором временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что повторно переданный первый пакет потерян. Помимо этого, "немедленно", описанное в данном документе, означает в пределах предварительно установленного временного интервала после того, как определяется то, что первый пакет потерян. Предварительно установленный временной интервал больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Предпочтительно, предварительно установленный временной интервал равен 0 или приближается к 0.
[0151] В другом варианте осуществления, блок обработки выполнен с возможностью: определять, согласно множеству пакетов подтверждения приема, принимаемым посредством приемного блока, то, что первый пакет в множестве пакетов потерян; и инициировать отправляющий блок с возможностью немедленно повторно передавать первый пакет в приемный узел. Дополнительно, блок обработки дополнительно выполнен с возможностью: определять то, является или нет отправляющий буфер пустым, и если отправляющий буфер является пустым, инициировать отправляющий блок с возможностью отправлять первый пакет во втором временном интервале, по меньшей мере, один раз. Дополнительно, блок обработки дополнительно выполнен с возможностью: если отправляющий буфер не является пустым, инициировать отправляющий блок с возможностью отправлять, по меньшей мере, один пакет в отправляющем буфере в первом временном интервале, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего блока. Второй временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета, и отправляющий узел не принял, во втором временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что повторно переданный первый пакет потерян. Помимо этого, "немедленно", описанное в данном документе, означает в пределах предварительно установленного временного интервала после того, как определяется то, что первый пакет потерян. Предварительно установленный временной интервал больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Предпочтительно, предварительно установленный временной интервал равен 0 или приближается к 0.
[0152] В другом варианте осуществления, блок обработки выполнен с возможностью: определять, согласно множеству пакетов подтверждения приема, принимаемым посредством приемного блока, то, что первый пакет в множестве пакетов потерян; и инициировать отправляющий блок с возможностью немедленно повторно передавать первый пакет в приемный узел. Дополнительно, блок обработки дополнительно выполнен с возможностью: определять то, является или нет отправляющий буфер пустым, или то, разрешает или нет текущая политика управления перегрузкой отправку нового пакета; и если отправляющий буфер является пустым, или текущая политика управления перегрузкой не разрешает отправку нового пакета, инициировать отправляющий блок с возможностью отправлять первый пакет во втором временном интервале, по меньшей мере, один раз. Дополнительно, блок обработки дополнительно выполнен с возможностью: если отправляющий буфер не является пустым, и текущая политика управления перегрузкой разрешает отправку нового пакета, инициировать отправляющий блок с возможностью отправлять, по меньшей мере, один пакет в отправляющем буфере во втором временном интервале, причем пакет в отправляющем буфере представляет собой пакет, который не отправляется посредством отправляющего блока. Второй временной интервал больше или равен 0 и меньше периода таймера тайм-аута первого пакета, и отправляющий узел не принял, во втором временном интервале, пакет подтверждения приема, используемый для того, чтобы указывать то, что повторно переданный первый пакет потерян. Помимо этого, "немедленно", описанное в данном документе, означает в пределах предварительно установленного временного интервала после того, как определяется то, что первый пакет потерян. Предварительно установленный временной интервал больше или равен 0 и меньше или даже гораздо меньше периода таймера тайм-аута первого пакета. Предпочтительно, предварительно установленный временной интервал равен 0 или приближается к 0.
[0153] Специалисты в данной области техники могут понимать, что все или некоторые этапы способов в вариантах осуществления могут реализовываться посредством программы, инструктирующей релевантным аппаратным средствам (к примеру, процессору). Программа может сохраняться на машиночитаемом носителе данных. Носитель данных может включать в себя: ROM, RAM, магнитный диск или оптический диск.
[0154] Выше подробно описываются способ пакетной передачи и абонентское устройство, которые представлены в вариантах осуществления настоящего изобретения. В этом подробном описании, конкретные примеры используются для того, чтобы описывать принцип и способы реализации настоящего изобретения, и описания вариантов осуществления служат только для того, чтобы помогать в понимании способа и базовой идеи настоящего изобретения. Помимо этого, специалисты в данной области техники, на основе идеи настоящего изобретения, могут осуществлять модификации относительно конкретных способов реализации и объема применения. Следовательно, содержание этого подробного описания не должно истолковываться как ограничение на настоящее изобретение.