TCPのスループット向上と即時性を両立するTCP性能改善技術の発明 サイレックス

 TCPの性能改善技術LRO(Large recieve offload)では、スループットが向上する反面、即時性(リアルタイム性)が損なわれる問題があります。この問題を解決する発明です。

 この発明の通信装置は、特定のイベント発生時までデータを蓄積します。そして、蓄積したデータをイベント発生時にTCP/IPアプリに送信します。これにより、スループットの向上と即時性を両立します。

 特許第5994067号 サイレックス・テクノロジー株式会社
 出願日:2013年7月31日 登録日:2016年9月2日



 ※特許の本の紹介。
 特許の申請(出願)をする技術者や研究者が知っておかないといけない特許の知識がわかりやすくまとめられている良著です。

LROでスループットが向上する反面、即時性が損なわれる問題

 TCPの受信性能を改善する技術にLRO(Large recieve offload)があります。LROは、従来CPUで行っていた受信パケットの処理を、代わりにNICで行うことでスループットを向上させる技術です。ギガビットイーサ、10ギガビットイーサなどの高速な通信規格登場により、CPUで処理するより、NICの専用ハードウェアで処理する方が高速であることから採用されています。

 具体的には、LROでは、TCPセグメントの再構築処理をNICで行います。

 このようにすると、スループットが向上する反面、即時性(リアルタイム性)が損なわれるという問題があります。受信したパケットを複数まとめて上位層に渡すので、早く到着したパケットはその分遅れてしまうということです。

イベント発生時までデータを蓄積し、イベント発生時にアプリに送信

 この発明のネットワーク受信装置では、TCP/IPアプリケーションが下位レイヤ(TCPレイヤ)からデータを受け取るタイミングを示すイベントが決められています。このイベントをデータ区切りイベントといい、TCPセッションごとに決められています。

 このイベントは、具体的には、特定のサイズのデータ(例えば32000バイト)を受信したとき、特定のキャラクタ(例えば、"CR+LF")を受信したとき、データを蓄積する上限時間に達したとき、などがあります。

 そして、このイベントが発生したらTCPレイヤからTCP/IPアプリケーションにデータが送られます。このようにすることで、LROによりスループットを向上させることができるとともに、イベント発生時にアプリケーションにデータを渡すことにより即時性が損なわれることを回避できます。

【課題】
LRO受信処理の利点であるスループットを向上しつつ、上位層たとえばTCP/IPアプリケーションが求める任意の要求に自在に対応して受信データ処理を行うことができるネットワーク受信装置を提供する。
【請求項1】
 TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、
 トランスポート層よりも下位に位置するデータ受信手段であって、前記データ区切り指示手段が指示するデータ区切りイベントを参照し、当該データ区切りイベントが発生していると判断するまでは受信したデータを上位層に送らず蓄積するデータ受信手段と、
を備えるネットワーク受信装置。

今日のみどころ

 イーサネットの高速化に伴って登場しているLROを前提とした発明です。このような技術によって高速通信が実現していることがわかり勉強になります。

 また、ポイントはとてもシンプルで、イベント発生までデータを蓄積するという点です。そして、請求項1にはポイントだけがすっきりと記載されていて、無駄な限定がなく広い権利範囲をカバーしていることがわかります。こういう書き方は見習いたいです。すばらしい。