JP2007259374A - ネットワーク送受信装置 - Google Patents

ネットワーク送受信装置 Download PDF

Info

Publication number
JP2007259374A
JP2007259374A JP2006084574A JP2006084574A JP2007259374A JP 2007259374 A JP2007259374 A JP 2007259374A JP 2006084574 A JP2006084574 A JP 2006084574A JP 2006084574 A JP2006084574 A JP 2006084574A JP 2007259374 A JP2007259374 A JP 2007259374A
Authority
JP
Japan
Prior art keywords
packet
reception
data
reception buffer
free space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006084574A
Other languages
English (en)
Inventor
Akihiko Shiotsuki
昭彦 汐月
Koji Arii
浩二 有井
Tsukasa Yoshiura
司 吉浦
Yoshiki Watanabe
佳樹 渡邉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006084574A priority Critical patent/JP2007259374A/ja
Publication of JP2007259374A publication Critical patent/JP2007259374A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ネットワークを通じて伝送されるデータのパケットを高速かつ安定して受信し、処理することが可能なネットワーク送受信装置を提供すること。
【解決手段】ある特定の条件に合致し、アプリケーション処理回路505に直接転送すべきデータのパケットを格納する受信バッファ112を設け、さらに受信バッファ112の空き容量を検知する空き容量検知手段113と、受信バッファ112の空き容量を送信元端末に返信する空き容量返信手段114を設けた。
【選択図】図1

Description

本発明は、ネットワークを通じて伝送されるデータのパケットを、高速かつ安定して受信し、処理を行うことが可能であるネットワーク送受信装置に関するものである。
従来のネットワーク送受信装置は、通信プロトコルに関する処理を主にメインCPUで行っている。図5は、従来のネットワーク送受信装置の構成を示すものである。
図5において、ネットワーク送受信装置にて受信されるパケットは、LANコントローラ501内の物理層処理回路511にてOSI7階層モデルにおける第1層の物理層処理が、データリンク層処理回路512にて第2層のデータリンク層処理がそれぞれ行われている。処理されたパケットは、一時的に受信FIFO513に格納された後、メインCPUバス502を経由してシステムメモリ503のカーネル領域531に蓄積される。カーネル領域531に蓄積されたパケットは、メインCPUバス502を経由してメインCPU504により読み込まれ、第3層のネットワーク層処理、第4層のトランスポート層処理が行われる。メインCPU504により通信プロトコル処理が終了したパケット内のデータのうち、制御情報などの一般データは、メインCPU504でそのまま処理が行われ、一方、アプリケーションデータは、メインCPUバス502を経由してシステムメモリ503内のユーザ領域532と呼ばれる、アプリケーション処理回路505がアクセス可能な領域に書き込まれる。アプリケーション処理回路505は、ユーザ領域532に格納されているアプリケーションデータをメインCPUバス502経由で読み込み、アプリケーション処理の後、アプリケーション信号を出力する。トランスポート層のプロトコルとして送信元端末への伝達確認応答を必要とするTCPが用いられている場合には、メインCPU504は、パケットを誤りなく受信できたときに、送信元端末に対する伝達応答確認のためのACKパケットを生成する。このとき、TCPフロー制御で利用され、ACKパケットで送信元端末に通知される情報のうち、受信端末が受信することが可能なデータのサイズを示しているウインドウサイズとしては、システムメモリ503内に通信コネクション毎に用意された領域の空き容量が用いられる。生成されたACKパケットは、メインCPU504でトランスポート層およびネットワーク層の通信プロトコル処理が行われる。その後、ACKパケットはメインCPUバス502を経由してLANコントローラ501へ転送され、データリンク層処理回路512でデータリンク層処理が、物理層処理回路511で物理層処理がそれぞれ行われて、送信元端末に返信される。そして、ACKパケットを受信した送信元端末は、通知されたウインドウサイズ分のデータを受信端末に送信する。また、送信元端末は、受信端末からACKパケットが返信されて来ない場合には、そのACKパケットに対応するデータパケットの伝送ができなかったと判断して、データパケットの再送を行う。
一方、トランスポート層のプロトコルとして送信元端末への伝達確認応答が不要なUDPを用いて伝送されるAVストリームなどのデータのパケットを、メインCPUバス502やメインCPU504を経由せずにアプリケーション処理回路505に直接転送して処理を行うものもある(例えば、特許文献1参照)。図6は、前記特許文献1に記載されたネットワーク送受信装置の構成を示すものである。なお、図5と同じ構成要素については同じ符号を用い、説明を省略する。
図6においては、データリンク層処理回路512にてデータリンク層処理が行われたパケットは、パケット選別手段611にてAVストリームデータなどの優先パケットとそれ以外の一般パケットとに選別され、一般パケットについては、受信FIFO513に転送された後、従来例図5と同じ手順で処理が行われる。優先パケットについては、パケット選別手段611からパケット内のUDPペイロード、つまりデータのみが直接アプリケーション処理回路505に転送され、アプリケーション処理の後、アプリケーション信号が出力される。
ここで、上記特許文献1においては、高速に伝送および処理されるべきAVストリームなどのデータのパケットは、トランスポート層のプロトコルとして処理が簡素なUDPが用いられて伝送が行われるものとされているが、UDPによる伝送は、パケットの再送などによってデータの伝送品質を補償する手段を有していないことから、より高品質なデータの伝送を実現するためには、これらデータのパケットは、TCPにより伝送される必要がある。
特開2003−273920号公報
前述の従来例図5の構成のネットワーク送受信装置を用いて、TCPによりデータのパケットを伝送する場合、送信元端末は、受信端末から通知されたウインドウサイズ分のデータを受信端末に送信する。送信されたパケットは、受信端末のLANコントローラ501において受信された後、メインCPUバス502を経由してシステムメモリ503に転送され、格納される。ここで、メインCPUバス502は、LANコントローラ501とシステムメモリ503との間のデータの転送、システムメモリ503とアプリケーション処理回路505との間のデータの転送、メインCPU504によるシステムメモリ503内のカーネル領域531とユーザ領域532との間のデータコピーなどのパケットの受信処理や、それ以外のメインCPU504による汎用処理の際にも使用されることから、パケットの受信処理に使用できるメインCPUバス502の帯域幅が十分に確保できないときには、パケットの受信処理に遅延が発生する。例えば、家電製品などの組み込み用途向けのマイコンシステムでは、PCとは異なり、メインCPUバス502の帯域幅は、パケットが伝送されるネットワークの帯域幅と比較して小さく、加えて、メインCPUバス502の帯域幅のうち、パケットの受信処理などネットワーク機能に使用できる帯域幅はさらに制限されている。これを言い換えると、受信端末内でのパケットの受信処理の速度は、ネットワークから受信端末へのパケットの入力速度と比較して遅いということであり、このとき、ネットワークから入力されて受信処理を待つパケットは、ネットワークとメインCPUバス502との境界である、LANコントローラ501内の受信FIFO513に蓄積されていく。しかしながら、前述のように、送信元端末は、受信FIFO513の空き容量に関わらず、ウインドウサイズとして通知されるシステムメモリ503の空き容量分のデータを受信端末に送信する。一般に、システムメモリ503の容量は受信FIFO513の容量よりも大きく、また、送信元端末に通知されるウインドウサイズは最大64Kバイトであり、現在多くとも16Kバイトである受信FIFO513の容量よりも大きい。このため、パケットの受信処理に対して使用できるメインCPUバス502の帯域幅がネットワークの伝送帯域幅以下に制限されている場合には、受信処理を待つパケットが受信FIFO513に次々と蓄積されていく一方で、受信FIFO513の空き容量がなくなっても、送信元端末からのパケットの送信をTCPフロー制御によって止めることはできず、その結果、受信FIFO513のオーバーフローによるパケットロスが発生する。パケットロスが発生した場合、受信端末はロスしたパケットに対するACKパケットを返信しないため、送信元端末は、TCPフロー制御によりACKパケットの到着を数秒間待ってタイムアウトとなった後、該当パケットの再送を行う。
以上、従来例図5の構成において、パケットの受信処理に使用できるメインCPUバス502の帯域幅が制限されている場合、システムメモリ503の空き容量をウインドウサイズとして送信元端末に通知するTCPフロー制御のシステムは破綻を来たし、その結果、パケットの再送によりデータの伝送速度が低下するという課題を有している。
特に、従来例図5の構成によるネットワーク送受信装置が、AVストリームなど高速伝送が要求されるデータのパケットを受信する場合には、上記課題はより顕著に現れる。
本発明では、前記従来の課題を解決するもので、ネットワークを通じて伝送されるデータのパケットを、高速かつ安定して受信し、処理を行うことが可能であるネットワーク送受信装置を提供することを目的とする。
前記従来の課題を解決するために、本発明のネットワーク送受信装置は、受信パケットのうち特定のパケットを分岐させるパケット分岐手段と、受信バッファと、受信バッファの空き容量を検知する空き容量検知手段と、受信バッファの空き容量をデータの送信元端末に返信する空き容量返信手段とを備え、パケットの送受信処理を行うことを主な特徴とする。
本発明によって、TCPにより伝送されるデータのパケットについて、パケットの受信処理に使用できるメインCPUバスの帯域幅が制限されることに起因するパケットロスと、それに伴うパケットの再送がなくなり、高速かつ安定した受信および処理が可能となる。
以下本発明を実施するための最良の形態について、TCP/IPにより伝送されるAVストリームデータを受信する例を挙げ、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1におけるネットワーク送受信装置の構成図である。図1において、従来例図5と同じ構成要素については同じ符号を用い、説明を省略する。また、図2は、本発明の実施の形態1におけるパケット処理手順の概念図である。
図1において、LANコントローラ101内のデータリンク層処理回路512にてデータリンク層処理が行われたパケットは、パケット分岐手段111に転送される。図3は、パケット分岐手段111に転送されるパケットの構成図を示している。図3において、IPはIPv4と呼ばれるものであり、IPヘッダはRFC791に、TCPヘッダはRFC793に、それぞれ定義されているものである。パケット分岐手段111は、転送されたパケットから、図3に示すパケット内のIPヘッダに含まれる、ネットワーク内で端末を識別するために付与されている送信元端末IPアドレス、受信端末IPアドレス、図3に示すパケット内のTCPヘッダに含まれる、アプリケーションやサービスを識別するために付与されている送信元ポート番号、受信先ポート番号のうち、一部または全てを参照することによって、分岐対象とするAVストリームデータのパケットか否かを判別して分岐させ、アプリケーション処理回路505で処理を行うAVストリームデータのパケットを受信バッファ112に、メインCPU504で処理を行う制御情報などの一般データのパケットを受信FIFO513にそれぞれ転送する。分岐されたパケットのうち、受信バッファ112に転送されるAVストリームデータのパケットは、受信バッファ112に格納された後、直接アプリケーション処理回路505からパケット内のTCPペイロード、つまりデータのみが抽出され読み込まれる。以降、従来例図5の構成と同様に、アプリケーション処理回路505は、圧縮、符号化されているAVストリームデータの復号化処理や、デジタル信号をアナログ信号に変換する処理などを行い、映像と音声からなるAV信号を出力する。また、空き容量検知手段113は、AVストリームデータのパケットを誤りなく受信できた場合に、受信バッファ112の空き容量を検知し、検知した空き容量を空き容量返信手段114に転送する。空き容量の検知方法としては、例えば、受信バッファ112の読み込み開始アドレスを示すポインタの値と書き込み開始アドレスを示すポインタの値との差分演算からデータが既に格納されている領域の容量を求め、受信バッファ112全体の容量と前記差分演算により求めたデータが既に格納されている領域の容量との差分演算から受信バッファ112の空き容量を求める。空き容量返信手段114は、TCPフロー制御を目的として、受信バッファ112の空き容量をウインドウサイズとした送信元端末に向けたACKパケットを生成する。生成されたACKパケットは、データリンク層処理回路512でデータリンク層処理が、物理層処理回路511で物理層処理がそれぞれ行われて、送信元端末に対して返信される。そして、ACKパケットを受信した送信元端末は、ACKパケットにより受信端末から通知されたウインドウサイズ分のAVストリームデータを新たに送信する。以上の構成と処理手順によれば、システムメモリ503の空き容量ではなく、ネットワークとメインCPUバス502の境界である、LANコントローラ101内の受信バッファ112の空き容量をウインドウサイズとして送信元端末に通知することにより、パケットの受信処理に対して使用できるメインCPUバス502の帯域幅がネットワークの伝送帯域幅以下に制限されている場合であっても、送信元端末は、受信処理待ちのパケットが蓄積される受信バッファ112の空き容量分のみのデータのパケットを送信するようになる。このため、送信されたパケットは、パケットの受信処理に使用できるメインCPUバス502の帯域幅に依存することなく、受信バッファ112に確実に格納され、従来例図5で課題となっていた、LANコントローラ501内でのパケットロスの発生を防ぐことが可能である。一方、パケットの分岐後、受信FIFO513に転送される一般データのパケットの処理は、以降従来例図5の構成と同様である。このときは、システムメモリ503の空き容量がウインドウサイズとして送信元端末に対して通知されるものの、制御情報などの一般データは、AVストリームデータと比較して、そのパケット数が非常に少なく、リアルタイム性も要求されないため、パケットの受信処理に使用できるメインCPUバス502の帯域幅が制限される場合であっても、受信FIFO513のオーバーフローによるパケットロスと、それにパケットの再送はさほど問題とはならない。
上記図1の構成において、空き容量検知手段113、空き容量返信手段114は、それぞれハードウェアにより実現してもソフトウェアにより実現してもよい。
また、IPとしてIPv6と呼ばれるRFC2460に定義されているものが用いられる場合、IPヘッダの構成は図3に示すものとは異なるものの、送信元端末IPアドレスおよび受信端末IPアドレスは、IPv6であってもIPヘッダ内に含まれることから、上記IPとしてIPv4が用いられる場合と同様、送信元端末IPアドレス、受信端末IPアドレスをパケットの分岐条件として参照することは可能である。
以上、かかる構成によれば、TCP/IPにより伝送されるAVストリームデータのパケットについて、従来例図5の構成で課題となっていた、パケットの受信処理に使用できるメインCPUバス502の帯域幅が制限されることに起因する、LANコントローラ501内の受信FIFO513のオーバーフローによるパケットロスと、それに伴うパケットの再送によるデータの伝送速度の低下を防ぐことが可能である。併せて、データを格納している受信バッファ112からアプリケーション処理回路505に直接データを転送することにより、パケットの受信処理に使用できるメインCPUバス502の帯域幅に依存せずに、データを高速かつ安定して受信および処理することが可能である。
(実施の形態2)
図4は、本発明の実施の形態2におけるネットワーク送受信装置の構成図である。図4において、上記図1および従来例図5と同じ構成要素については同じ符号を用い、説明を省略する。
図4においては、上記実施の形態1における図1の構成とは異なり、受信バッファ、空き容量検知手段、空き容量返信手段の処理系を複数設けている。各受信バッファは通信コネクション毎に、例えば、受信バッファ112Aは送信端末Aから送信されるAVストリームデータAのパケットを、受信バッファ112Bは送信端末Bから送信されるAVストリームデータBのパケットを、それぞれ格納するように割り当てられる。パケット分岐手段111は、受信パケットを分岐させて、受信バッファ112A、受信バッファ112B、受信FIFO513のいずれかに転送する。受信バッファ112A、受信バッファ112Bに格納されたデータのパケットは、メインCPUバス502を経由せずに、それぞれ、アプリケーション処理回路505A、アプリケーション処理回路505Bによりパケット内のTCPペイロードが直接読み込まれてアプリケーション処理される。また、各受信バッファの空き容量の検知と、その空き容量をウインドウサイズとしたACKパケットの生成および返信も、それぞれの処理系において上記図1の構成と同様に行われる。
以上、かかる構成によれば、上記図1の構成における効果に加え、通信コネクション毎に受信バッファを設けて、パケットの受信処理と受信バッファの空き容量をウインドウサイズとしたTCPフロー制御を、各処理系においてそれぞれ独立に行うことにより、従来例図5では、複数の通信コネクションのパケットをメインCPU504で逐次にしか受信処理できなかったものが、本構成においては、通信コネクション毎に並列にパケットを受信処理できるようになり、同時通信コネクション数が増大しても、処理時間が増大することなく、データを高速に受信および処理することが可能である。
本発明にかかるネットワーク送受信装置は、データのパケットを高速かつ安定して受信し、処理を行うことが可能であるので、ネットワークを通じて伝送されるAVストリームなどの大容量のデータを再生または保存する機器などに有用である。
本発明の実施の形態1におけるネットワーク送受信装置の構成図 本発明の実施の形態1におけるパケット処理手順の概念図 パケット分岐手段111に転送されるパケットの構成図 本発明の実施の形態2におけるネットワーク送受信装置の構成図 従来のネットワーク送受信装置の構成図 特許文献1におけるネットワーク送受信装置の構成図
符号の説明
101 本発明の実施の形態1におけるLANコントローラ
111 パケット分岐手段
112 受信バッファ
112A 受信バッファ
112B 受信バッファ
113 空き容量検知手段
113A 空き容量検知手段
113B 空き容量検知手段
114 空き容量返信手段
114A 空き容量返信手段
114B 空き容量返信手段
401 本発明の実施の形態2におけるLANコントローラ
501 従来のLANコントローラ
502 メインCPUバス
503 システムメモリ
504 メインCPU
505 アプリケーション処理回路
505A アプリケーション処理回路
505B アプリケーション処理回路
511 物理層処理回路
512 データリンク層処理回路
513 受信FIFO
514 送信FIFO
531 カーネル領域
532 ユーザ領域
601 特許文献1におけるLANコントローラ
611 パケット選別手段

Claims (6)

  1. 受信パケットのうち特定のパケットを分岐させるパケット分岐手段と、
    上記分岐させた特定のパケットを格納する受信バッファと、
    上記受信バッファに格納される特定のパケット以外のパケットを格納する受信FIFOと、
    上記受信バッファの空き容量を検知する空き容量検知手段と、
    上記受信バッファの空き容量をデータの送信元端末に返信する空き容量返信手段とを備えた、ネットワーク送受信装置。
  2. 受信バッファに格納されるパケットは、直接アプリケーション処理回路に転送されて処理され、一方、受信FIFOに格納されるパケットは、メインCPUバスを経由してメインCPUに転送されて処理される、請求項1に記載のネットワーク送受信装置。
  3. 受信バッファに格納されるパケットはAVストリームデータのパケットであり、受信FIFOに格納されるパケットは制御情報など一般データのパケットである、請求項2に記載のネットワーク送受信装置。
  4. 受信バッファと、空き容量検知手段と、空き容量返信手段とを複数備えた、請求項1に記載のネットワーク送受信装置。
  5. パケット分岐手段は、パケット内のIPヘッダに含まれる送信元端末IPアドレス、受信端末IPアドレス、TCPヘッダに含まれる送信元ポート番号、受信先ポート番号のうち、一部または全てを参照することによりパケットを分岐させることを特徴とする、請求項1に記載のネットワーク送受信装置。
  6. 空き容量検知手段は、受信バッファの読み込み開始アドレスを示すポインタの値と書き込み開始アドレスを示すポインタの値との差分演算からデータが既に格納されている領域の容量を求め、受信バッファ全体の容量とデータが既に格納されている領域の容量との差分演算から受信バッファの空き容量を求めることを特徴とする、請求項1に記載のネットワーク送受信装置。
JP2006084574A 2006-03-27 2006-03-27 ネットワーク送受信装置 Pending JP2007259374A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006084574A JP2007259374A (ja) 2006-03-27 2006-03-27 ネットワーク送受信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006084574A JP2007259374A (ja) 2006-03-27 2006-03-27 ネットワーク送受信装置

Publications (1)

Publication Number Publication Date
JP2007259374A true JP2007259374A (ja) 2007-10-04

Family

ID=38633090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006084574A Pending JP2007259374A (ja) 2006-03-27 2006-03-27 ネットワーク送受信装置

Country Status (1)

Country Link
JP (1) JP2007259374A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232867A (ja) * 2010-04-26 2011-11-17 Ricoh Co Ltd 動作解析装置、情報処理装置、動作解析方法及び動作解析プログラム
JP2012520004A (ja) * 2009-03-03 2012-08-30 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ピアツーピアネットワークにおける優先順位付けのための方法及び装置
JP2015106796A (ja) * 2013-11-29 2015-06-08 キヤノン株式会社 通信装置、通信制御方法及びプログラム
JP2016174292A (ja) * 2015-03-17 2016-09-29 株式会社リコー 通信装置、通信制御プログラム、および通信制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012520004A (ja) * 2009-03-03 2012-08-30 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ピアツーピアネットワークにおける優先順位付けのための方法及び装置
JP2011232867A (ja) * 2010-04-26 2011-11-17 Ricoh Co Ltd 動作解析装置、情報処理装置、動作解析方法及び動作解析プログラム
JP2015106796A (ja) * 2013-11-29 2015-06-08 キヤノン株式会社 通信装置、通信制御方法及びプログラム
JP2016174292A (ja) * 2015-03-17 2016-09-29 株式会社リコー 通信装置、通信制御プログラム、および通信制御方法

Similar Documents

Publication Publication Date Title
US11934340B2 (en) Multi-path RDMA transmission
US20200236052A1 (en) Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks
US7414975B2 (en) Protocol stack
US8855120B2 (en) Method and device for filtering media packets
US6728213B1 (en) Selective admission control in a network device
US7706277B2 (en) Selective flow control
CN101291194A (zh) 报文保序的方法和系统
EP1124362A2 (en) Apparatus for processing TCP/IP by hardware, and operating method therefor
WO2003069440A2 (en) Network processor with high-speed transceiver
US6483840B1 (en) High speed TCP/IP stack in silicon
JP2007259374A (ja) ネットワーク送受信装置
EP1994695B1 (en) Method and device for transmitting data packets
JP4938134B2 (ja) 複数の接続インターフェース間で通信するための方法および装置
JP2008113327A (ja) ネットワークインターフェース装置
JP2005192220A (ja) 通信プロトコルの並列処理の方法および装置
JP4766344B2 (ja) 情報処理装置及びフレーム中継方法
CN116915370B (zh) 基于远程直接数据存取的数据重传方法、装置及系统
KR101547048B1 (ko) 라우터에서의 통신들을 관리하는 기술
JP2002164924A (ja) パケット処理装置
JPWO2017199913A1 (ja) 送信装置、方法およびプログラム
JP2004056759A (ja) パケット通信装置
JP2022122008A (ja) ネットワーク中継装置、ネットワーク中継方法およびネットワーク中継プログラム
US20060104212A1 (en) Method of dynamically determining optimum size of buffer
JP2004112192A (ja) Ipパケットの送受信装置