JP2006203935A - 送信装置、受信装置およびそれらの方法 - Google Patents
送信装置、受信装置およびそれらの方法 Download PDFInfo
- Publication number
- JP2006203935A JP2006203935A JP2006068352A JP2006068352A JP2006203935A JP 2006203935 A JP2006203935 A JP 2006203935A JP 2006068352 A JP2006068352 A JP 2006068352A JP 2006068352 A JP2006068352 A JP 2006068352A JP 2006203935 A JP2006203935 A JP 2006203935A
- Authority
- JP
- Japan
- Prior art keywords
- data
- tcp
- processing
- divided
- header
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【解決手段】AVインタフェース34を介して入力したAVデータをAVバッファ回路18に格納した後に、パケット処理部35において、例えば32Kバイトのジャンボパケットデータを生成する。PCIバスインタフェース32は、ジャンボパケットデータの送信処理に必要なデータをCPU21に出力し、CPU21がヘッダデータHD1を生成する。そして、パケット処理部35において、ヘッダデータHD1を基に、ジャンボパケットデータを分割して最大1518バイトのイーサネットパケットデータを生成してMAC回路31から送信する。
【選択図】 図1
Description
TCP/IPは、元々UNIX(登録商標)においてソフトウェアで実装されていた経緯があり、現在でもソフトウェアによる処理が主を占めている。
近年、データ量の大きなAV(Audio Visual)データが、TCP/IPを用いてネットワーク上を転送されるようになり、TCP/IP処理を高速化したいという要請がある。
従来では、高速処理可能なCPU(Central Processing Unit) を用いることで、このような要請に応えている。
また、現在、NIC(Network Interface Card)へのインタフェースは、汎用性を考慮して、PCI(Peripheral Component Interconnect) バスに接続されている。
PCIバスは、殆どPC(Personal Computer) で採用されている32ビット/33M規格のものであるが、この場合、CPUによるTCP/IPの処理能力が向上しても、転送速度がボトルネックになり、パーフォーマンスを向上することが困難となる。しかしながら、より高速なPCIバス(64ビット/64M規格等)を採用すると、現状では非常に高価なものになる、という問題がある。
同様の問題は、UDP(User Datagram Protocol) などのその他の通信プロトコルを用いる場合にもある。
図1は、本実施形態の通信システム1の全体構成図である。
図1に示すように、通信システム1では、ネットワーク3にコンピュータ2が接続されている。
コンピュータ2は、ネットワーク3を介して、他のコンピュータと、AVデータなどのデータをTCP/IPなどの通信プロトコルを基に送受信する。
ここで、コンピュータ2またはその一部が本発明の送信装置および受信装置に対応している。
ここで、AVバッファ回路18が本発明の入出力用記憶回路、送受信バッファ回路19が本発明の送信用記憶回路および受信用記憶回路、CPU21が本発明の演算回路に対応している。
ネットワーク3を介してコンピュータ2が送受信するパケットデータは、パルストランス16を経由してコネクタ15から出力される。
物理層回路17は、例えば、イーサネット(登録商標)規格に基づいて、ネットワーク3を介してコンピュータ2が送受信するパケットデータ(イーサネットパケット)の信号の変調および復調などの処理を行う。
AVバッファ回路18は、コンピュータ2の外部の画像・音声再生装置などの画像・音声処理装置との間で入出力するAVデータを記憶するSD−RAM(Synchronous Dynamic-Random Access Memory) である。
PCIバスコントローラ回路20は、CPU21とデータ処理回路22との間に配設されたPCIバスを介したデータ伝送を制御する。
CPU21は、パケットデータに含まれるAVデータ自体の処理は行わず、パケットデータに含まれるヘッダデータ(制御データ)に係わる処理を行う。
具体的には、CPU21は、ネットワーク3を介して通信先のコンピュータにパケットデータを配送するためのIP処理、パケット伝送中に異常が発生した場合に異常を知らせるICMP(Internet Control Message Protocol) 処理、IPアドレスとMAC(Media Access Control)アドレスの変換を行うARP(Address Resolution Protocol) 処理、通信を行っているプログラムを識別してポートを割り当てるコネクション型のTCP処理などを行う。
ここで、PCIバスインタフェース32が本発明の演算回路入出力用インタフェースに対応し、パケット処理部35が本発明のデータ生成回路、データ分割回路、データ合成分割回路に対応し、MAC回路31、物理層回路17、パルストランス16およびコネクタ15が本発明の送信用インタフェースに対応している。
MAC回路31は、物理層回路17との間で入出力するパケットデータのMAC処理を行う。
PCIバスインタフェース32は、レジスタ33およびパケット処理部35と、PCIバスコントローラ回路20との間で入出力するデータのインタフェースを行う。
AVインタフェース34は、コンピュータ2の外部の画像・音声処理装置との間でAVデータの入出力を行うインタフェースである。
また、パケット処理部35は、送信時に、ジャンボパケットデータJPDの送信処理に必要なデータを、PCIバスインタフェース32からCPU21に出力する。
パケット処理部35は、送信時に、CPU21から入力したヘッダデータHD1(本発明の第1の制御データ)を基に、後述するように生成されたパケットデータPDの送信に用いるヘッダデータHD2(本発明の第2の制御データ)を生成する。
また、パケット処理部35は、例えば、図4に示すように、ヘッダデータHD1のTCPヘッダデータの送信元ポート番号データ、宛先ポート番号データおよび、ウインドウデータをそのまま用いてヘッダデータHD2のTCPヘッダデータを生成する。
また、パケット処理部35は、送信時に、ジャンボパケットデータJPDに含まれるAVデータを分割し、当該分割によって得られたAVデータ(本発明の第2のコンテンツデータ)とヘッダデータHD2とを各々が含む図2(B)に示すパケット長最大1518バイトのパケットデータPD(イーサネットパケットデータ、本発明の第2のモジュールデータ)を生成する。
また、パケット処理部35は、送信時に、ヘッダデータHD1,HD2のIPヘッダのチェックサムデータ、並びにTCPヘッダのチェックサムデータ、シーケンス番号および確認応答番号の生成処理を行う。
このとき、パケット処理部35は、例えば、図3に示すように、ヘッダデータHD2のIPヘッダデータのサービスタイプ、生存時間データ、送信元アドレスおよび宛先アドレスをそのまま用いてヘッダデータHD1のIPヘッダデータを生成する。
また、パケット処理部35は、例えば、図4に示すように、ヘッダデータHD2のTCPヘッダデータの送信元ポート番号データ、宛先ポート番号データおよび、ウインドウデータをそのまま用いてヘッダデータHD1のTCPヘッダデータを生成する。
また、パケット処理部35は、受信時に、ヘッダデータHD1のIPヘッダデータのチェックサムデータ、並びにTCPヘッダのチェックサムデータ、シーケンス番号および確認応答番号の生成処理を行う。
また、パケット処理部35は、受信時に、パケットデータPDに含まれるヘッダデータHD2のIPヘッダデータおよびTCPヘッダデータ内のチェックサムデータ、並びにAVデータを用いたチェックサム演算を行う。
また、パケット処理部35は、受信時に、CPU21から入力したTCP/IP処理の結果基に、ジャンボパケットデータJPDを分割してパケットデータPDを生成する。
〔第1の動作例〕
当該動作例では、コンピュータ2が、ネットワーク3を介してパケットデータを送信する場合を説明する。
図5は、当該動作例を説明するためのフローチャートである。
以下、図5に示す各ステップについて説明する。
ステップST1:
SD−RAMコントローラ30の制御に基づいて、画像・音声処理装置から出力されたAVデータが、AVインタフェース34を介して、AVバッファ回路18に書き込まれる。
パケット処理部35が、AVバッファ回路18からステップST1で書き込まれたAVデータを読み出して、当該AVデータを格納した図2(A)に示すジャンボパケットデータJPDを生成する。
パケット処理部35が、ステップST2で生成したジャンボパケットデータJPDの送信処理に必要なデータを、PCIバスインタフェース32からPCIバスコントローラ回路20を介してCPU21に出力する。また、必要に応じて、レジスタ33に記憶されたデータも、PCIバスインタフェース32を介してCPU21に出力される。
CPU21は、パケット処理部35から入力したデータを用いて、ジャンボパケットデータJPDを送信するためのTCP/IP処理を行い、ヘッダデータHD1を生成する。
そして、CPU21は、PCIバスコントローラ回路20を介して、ヘッダデータHD1をPCIバスインタフェース32に出力する。
パケット処理部35が、CPU21から入力したヘッダデータHD1を基に、パケットデータPDの送信に用いるヘッダデータHD2を生成する。
そして、パケット処理部35が、ジャンボパケットデータJPDに含まれるAVデータを分割し、当該分割によって得られたAVデータとヘッダデータHD2とを各々が含むパケットデータPDを生成する。
パケット処理部35が、ステップST4で生成したパケットデータPDを、SD−RAMコントローラ30の制御に従って、送受信バッファ回路19に書き込む。
SD−RAMコントローラ30の制御に従って、送受信バッファ回路19から、パケットデータPDが読み出される。
そして、当該パケットデータPDが、MAC回路31によるMAC処理、物理層回路17に物理層処理、並びにパルストランス16を経由して、コネクタ15からネットワーク3に送信される。
当該動作例では、コンピュータ2が、ネットワーク3を介してパケットデータを受信する場合を説明する。
図6は、当該動作例を説明するためのフローチャートである。
以下、図6に示す各ステップについて説明する。
ステップST11:
ネットワーク3を伝送するパケットデータPDが、コネクタ15で受信され、パルストランス16、並びに物理層回路17による物理層処理を経て、MAC回路31に入力される。
そして、当該パケットデータPDが、MAC回路31によるMAC処理を経て、送受信バッファ回路19に書き込まれる。
SD−RAMコントローラ30の制御に従って、送受信バッファ回路19から、複数のパケットデータPDが読み出されてパケット処理部35に出力される。
パケット処理部35が、ステップST12で読み出された複数のパケットデータPDを合成してジャンボパケットデータJPDを生成する。
そして、パケット処理部35が、ジャンボパケットデータJPDの受信処理に必要なデータ、例えば、パケットデータPDのヘッダデータHD2から取得された送信元アドレス、宛先アドレスおよびサイズデータなどを、PCIバスインタフェース32からPCIバスコントローラ回路20を介してCPU21に出力する。また、必要に応じて、レジスタ33に記憶されたデータも、PCIバスインタフェース32を介してCPU21に出力される。
そして、CPU21が、パケット処理部35から入力したデータを基に、ジャンボパケットデータJPDの受信するためのTCP/IP処理を行い、その結果をPCIバスコントローラ回路20およびPCIバスインタフェース32を介してパケット処理部35に出力する。
パケット処理部35が、ステップST13で入力したCPU21の処理結果を基に、ジャンボパケットデータJPDを分割してパケットデータPDを生成する。
パケット処理部35が、SD−RAMコントローラ30の制御に従って、ステップST14で生成したパケットデータPDをAVバッファ回路18に書き込む。
当該パケットデータPDは、SD−RAMコントローラ30の制御に従って、AVバッファ回路18から読み出され、AVインタフェース34を介して画像・音声処理装置に出力される。
また、このとき、CPU21とデータ処理回路22との間ではヘッダデータやレジスタデータなどのデータ量の小さなデータのみを伝送し、データ処理回路22においてハードウェアによりTCP/IP処理の一部を高速に行うことで、従来のPCIバスをそのまま用いると共にCPU21を高速化することなく、TCP/IP処理を高速化できる。
その結果、コンピュータ2の構成を、簡単かつ安価なものにできる。
例えば、上述した実施形態では、コンピュータ2が通信プロトコルとしてTCP/IPを用いた場合を例示したが、UDPなどのその他の通信プロトコルを用いた場合にも本発明は適用できる。
Claims (6)
- TCP/IPによりネットワーク上にコンテンツデータを送信する送信装置において、
TCP/IP処理を行う演算回路に上記コンテンツデータの送信処理に必要なデータを出力するインターフェースと、
上記コンテンツデータを分割して複数の分割データを生成する処理部と
を有し、
上記送信処理に必要なデータが上記インターフェースを介して入力された上記演算回路によるTCP/IP処理によって生成されたTCPヘッダーを基にして、上記複数の分割データにそれぞれ付与するTCPヘッダーを上記処理部により生成することで、TCP/IP処理を高速化する、
ことを特徴とする送信装置。 - 上記分割データに付与されるTCPヘッダーのフィールドのうち、少なくともチェックサムは上記処理部による演算により生成されることを特徴とする、
請求項1に記載の送信装置。 - TCP/IPによりネットワーク上の複数に分割されたコンテンツデータを受信する受信装置において、
TCP/IP処理を行う演算回路に上記コンテンツデータの受信処理に必要なデータを出力するインターフェースと、
上記複数に分割されたコンテンツデータを合成して合成データを生成する処理部と
を有し、
上記処理部は、
上記複数に分割されたコンテンツデータに付与されているTCPヘッダーを基にして合成データ用TCPヘッダーを生成し、
上記合成データ用TCPヘッダーを上記インターフェースを介して上記演算回路に入力し、
上記演算回路は上記合成データ用TCPヘッダーに基づいてTCP/IP処理することによってTCP/IP処理を高速化する、
ことを特徴とする受信装置。 - TCP/IPによりネットワーク上にコンテンツデータを送信する送信方法において、
上記コンテンツデータの送信処理に必要なデータを入力し、
上記入力された送信処理に必要なコンテンツデータを、TCP/IP処理してTCPヘッダーを生成し、
上記コンテンツデータを分割して複数の分割データを生成するとき、上記生成したTCPヘッダーを基にして上記複数の分割データにそれぞれ付与するTCPヘッダーを生成することで、TCP/IP処理を高速化する、
ことを特徴とする送信方法。 - 上記分割データに付与されるTCPヘッダーのフィールドのうち、少なくともチェックサムは演算により生成されることを特徴とする、
請求項4に記載の送信方法。 - TCP/IPによりネットワーク上の複数に分割されたコンテンツデータを受信する受信方法において、
上記複数に分割されたコンテンツデータを合成して合成データを生成する際、
上記複数に分割されたコンテンツデータに付与されているTCPヘッダーを基にして合成データ用TCPヘッダーを生成し、
上記合成データ用TCPヘッダーに基づいてTCP/IP処理することによってTCP/IP処理を高速化する、
ことを特徴とする受信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006068352A JP4519090B2 (ja) | 2006-03-13 | 2006-03-13 | 送信装置、受信装置およびそれらの方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006068352A JP4519090B2 (ja) | 2006-03-13 | 2006-03-13 | 送信装置、受信装置およびそれらの方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002028702A Division JP3988475B2 (ja) | 2002-02-05 | 2002-02-05 | 送信装置、受信装置およびそれらの方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006203935A true JP2006203935A (ja) | 2006-08-03 |
JP4519090B2 JP4519090B2 (ja) | 2010-08-04 |
Family
ID=36961453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006068352A Expired - Fee Related JP4519090B2 (ja) | 2006-03-13 | 2006-03-13 | 送信装置、受信装置およびそれらの方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4519090B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101480995B1 (ko) * | 2008-04-17 | 2015-01-09 | 에스케이플래닛 주식회사 | Bcmcs 서비스 시스템에서 대용량 컨텐츠 송수신 장치및 방법 |
-
2006
- 2006-03-13 JP JP2006068352A patent/JP4519090B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101480995B1 (ko) * | 2008-04-17 | 2015-01-09 | 에스케이플래닛 주식회사 | Bcmcs 서비스 시스템에서 대용량 컨텐츠 송수신 장치및 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP4519090B2 (ja) | 2010-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI374636B (en) | Method, apparatus, host computer system and machine-readable recording medium for distributing traffic across a plurality of trasmitting queues | |
US7937447B1 (en) | Communication between computer systems over an input/output (I/O) bus | |
EP1791060B1 (en) | Apparatus performing network processing functions | |
US20150365506A1 (en) | Roce packet sequence acceleration | |
US20080002578A1 (en) | Network with a constrained usage model supporting remote direct memory access | |
US8949472B2 (en) | Data affinity based scheme for mapping connections to CPUs in I/O adapter | |
CN104580011B (zh) | 一种数据转发装置和方法 | |
US20080077792A1 (en) | Bidirectional receive side scaling | |
US20100061377A1 (en) | Flexible and extensible receive side scaling | |
JP2008020977A (ja) | ネットワークプロセッサシステムおよびネットワークプロトコル処理方法 | |
US20080077724A1 (en) | Interrupt coalescing control scheme | |
US8924605B2 (en) | Efficient delivery of completion notifications | |
US20090089475A1 (en) | Low latency interface between device driver and network interface card | |
US8959265B2 (en) | Reducing size of completion notifications | |
JP3988475B2 (ja) | 送信装置、受信装置およびそれらの方法 | |
JP5091121B2 (ja) | 埋め込み型システムのための高速データ処理・通信方法及び装置 | |
WO2003069440A2 (en) | Network processor with high-speed transceiver | |
KR100738339B1 (ko) | 인터넷 프로토콜 오프로드의 패킷 전송 장치 및 방법 | |
US7523179B1 (en) | System and method for conducting direct data placement (DDP) using a TOE (TCP offload engine) capable network interface card | |
JP4519090B2 (ja) | 送信装置、受信装置およびそれらの方法 | |
JP3618277B2 (ja) | 通信プロトコル処理方法および通信プロトコル処理装置 | |
CN101312412A (zh) | 一种基于嵌入式的以太网传输系统 | |
JP4809679B2 (ja) | ストリームデータ通信方法及びストリームデータ通信装置 | |
JP5906078B2 (ja) | データ転送装置及びデータ転送方法 | |
JP2012049883A (ja) | 通信装置およびパケット処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080415 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080616 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080708 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100518 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |