JP2006303765A - Tcp/ip送信処理回路及びそれを具備する半導体集積回路 - Google Patents
Tcp/ip送信処理回路及びそれを具備する半導体集積回路 Download PDFInfo
- Publication number
- JP2006303765A JP2006303765A JP2005120776A JP2005120776A JP2006303765A JP 2006303765 A JP2006303765 A JP 2006303765A JP 2005120776 A JP2005120776 A JP 2005120776A JP 2005120776 A JP2005120776 A JP 2005120776A JP 2006303765 A JP2006303765 A JP 2006303765A
- Authority
- JP
- Japan
- Prior art keywords
- tcp
- header
- checksum
- udp
- processing unit
- 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.)
- Withdrawn
Links
- 238000012545 processing Methods 0.000 title claims abstract description 137
- 230000005540 biological transmission Effects 0.000 title claims abstract description 53
- 239000004065 semiconductor Substances 0.000 title claims description 5
- 238000012546 transfer Methods 0.000 claims abstract description 21
- 230000000295 complement effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 IPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムを計算することができるTCP/IP送信処理回路等を提供する。
【解決手段】 このTCP/IP送信処理回路5は、バッファメモリ24と、IPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムの計算を行うためのチェックサム計算処理部25と、上位レイヤにおいて作成されたフレームをDMA転送するためのDMA処理部21と、フレームを受け取ってバッファメモリ24に書き込み、チェックサム計算処理部25にIPのヘッダ・チェックサムの計算を行わせ、その後、チェックサム計算処理部25にTCP又はUDPのチェックサムの計算を行わせ、バッファメモリ24に格納されているフレーム内にIPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部22とを具備する。
【選択図】 図1
【解決手段】 このTCP/IP送信処理回路5は、バッファメモリ24と、IPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムの計算を行うためのチェックサム計算処理部25と、上位レイヤにおいて作成されたフレームをDMA転送するためのDMA処理部21と、フレームを受け取ってバッファメモリ24に書き込み、チェックサム計算処理部25にIPのヘッダ・チェックサムの計算を行わせ、その後、チェックサム計算処理部25にTCP又はUDPのチェックサムの計算を行わせ、バッファメモリ24に格納されているフレーム内にIPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部22とを具備する。
【選択図】 図1
Description
本発明は、TCP/IP(Transmission Control Protocol/Internet Protocol)の送信処理を行うためのTCP/IP送信処理回路に関する。さらに、本発明は、そのようなTCP/IP送信処理回路を具備する半導体集積回路に関する。
現在、インターネット、LAN(Local Area Network)等において、TCP/IPと呼ばれる通信プロトコルの階層モデルが広く用いられている。図7は、TCP/IP階層モデルの各レイヤとISO(International Organization for Standardization)で制定されたOSI(Open Systems Interconnection)参照モデルの各レイヤとのおおよその対応関係を示す図である。
TCP/IP階層モデルのネットワークインタフェース層としてはEthernet(登録商標)が、TCP/IP階層モデルのインターネット層としてはIP(Internet Protocol)が、TCP/IP階層モデルのトランスポート層としてはTCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)が、広く用いられている。なお、Ethernet(登録商標)は、IEEE802.3等に、IPは、RFC(Request For Comments)791等に、TCPは、RFC793等に、UDPは、RFC768等に、それぞれ規定されている。
図8は、Ethernet(登録商標)フレーム(以下、単に「フレーム」という)のフォーマットを示す図である。図8に示すように、フレームは、ヘッダと、ペイロードとを有する。ペイロードには、IPパケットが格納される。なお、フレームが実際にネットワーク上に送信される際には、先頭にプリアンブルが、末尾にフレームチェックシーケンス(Frame Check Sequence)が、それぞれ付加される。
図9は、IPパケットのフォーマットを示す図である。図9に示すように、IPパケットは、IPヘッダと、IPペイロードとを有する。IPヘッダ内には、ヘッダ・チェックサムを格納するための領域が存在する。この領域に格納されるヘッダ・チェックサムは、IPヘッダの16ビット幅の1の補数和の1の補数(16-bit one's complement of the one's complement sum)である。IPペイロードには、TCPパケット又はUDPパケットが格納される。
図10は、TCPパケットのフォーマットを示す図である。図10に示すように、TCPパケットは、TCP擬似(pseudo)ヘッダと、TCPヘッダと、TCPペイロードとを有する。TCPヘッダ内には、チェックサムを格納するための領域が存在する。この領域に格納されるチェックサムは、TCP擬似ヘッダ、TCPヘッダ、及び、TCPペイロードの16ビット幅の1の補数和の1の補数である。なお、TCP擬似ヘッダは、送信時においてチェックサムの計算用にのみ使用されるものであり、実際にはネットワーク上には送信されない。
図11は、UDPパケットのフォーマットを示す図である。図11に示すように、UDPパケットは、UDP擬似ヘッダと、UDPヘッダと、UDPペイロードとを有する。UDPヘッダ内には、チェックサムを格納するための領域が存在する。この領域に格納されるチェックサムは、UDP擬似ヘッダ、UDPヘッダ、及び、UDPペイロードの16ビット幅の1の補数和の1の補数である。なお、UDP擬似ヘッダは、送信時においてチェックサムの計算用に使用されるものであり、実際にはネットワーク上には送信されない。
このように、TCPパケットを送信する場合には、IPのヘッダ・チェックサム及びTCPのチェックサムの2つのチェックサムの計算を行う必要がある。同様に、UDPパケットを送信する場合には、IPのヘッダ・チェックサム及びUDPのチェックサムの2つのチェックサムの計算を行う必要がある。これらのチェックサムの計算負荷は非常に重いものである。
関連する技術として、下記の特許文献1には、チェックサムを計算し挿入することでプロセッサのオーバヘッドを減少させたネットワークアダプタシステムが開示されている。このネットワークアダプタシステムは、ネットワークに接続され、プロセッサ、主記憶装置、及びネットワークアダプタを有する。このネットワークアダプタは、(a)DMAバス;(b)DMAバスに接続され、ネットワークパケットを貯蔵する手段;(c)DMAバスに接続され、主記憶装置とパケット貯蔵手段との間でネットワークパケットを転送する手段;(d)DMAバスに接続され、ネットワークパケットの転送中にネットワークパケットのチェックサムを計算する手段:チェックサム計算手段はDMAバス上の転送データを監視するためのスヌープ手段を有する。
特許文献1には、主記憶装置とパケット貯蔵手段との間でのネットワークパケットの転送中にネットワークパケットのチェックサムを計算することができると記載されているが、2つのチェックサムを計算することに関しては記載されていない。
そこで、上記の点に鑑み、本発明は、IPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムの計算を行うことができるTCP/IP送信処理回路を提供することを目的とする。また、本発明はそのようなTCP/IP送信処理回路を具備する半導体集積回路を提供することを更なる目的とする。
以上の課題を解決するため、本発明に係るTCP/IP送信処理回路は、TCP/IP(Transmission Control Protocol/Internet Protocol)の送信処理を行うための回路であって、フレームを格納するためのバッファメモリと、IP(Internet Protocol)のヘッダ・チェックサム並びにTCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)のチェックサムの計算を行うためのチェックサム計算処理部と、上位レイヤにおいて作成されたフレームをDMA(Direct Memory Access)転送するためのDMA処理部と、上位レイヤにおいて作成されたフレームをDMA処理部から受け取ってバッファメモリに書き込み、DMA処理部から受け取ったフレームに基づいてチェックサム計算処理部にIPのヘッダ・チェックサムの計算を行わせ、DMA処理部から受け取ったフレームに基づいてチェックサム計算処理部にTCP又はUDPのチェックサムの計算を行わせ、バッファメモリに格納されているフレーム内にチェックサム計算処理部によって計算されたIPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部とを具備する。
このTCP/IP送信処理回路において、上位レイヤにおいて作成されたフレームが、MAC(Media Access Control)ヘッダ、IPヘッダ、TCP又はUDPヘッダ、TCP又はUDPデータ、並びに、TCP又はUDP擬似ヘッダを順に含んでおり、DMA処理部が、上位レイヤにおいて作成されたフレーム内のMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、TCP又はUDPデータ、TCP又はUDP擬似ヘッダを順にチェックサム制御部に転送し、チェックサム制御部が、DMA処理部から受け取ったMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、並びに、TCP又はUDPデータをバッファメモリに書き込み、DMA処理部から受け取ったIPヘッダをチェックサム計算処理部に送ってIPのヘッダ・チェックサムの計算を行わせ、DMA処理部から受け取ったTCP又はUDPヘッダ、TCP又はUDPデータ、並びに、TCP又はUDP擬似ヘッダをチェックサム計算処理部に送ってTCP又はUDPのチェックサムの計算を行わせるようにしても良い。
また、上位レイヤにおいて作成されたフレームが、MACヘッダ、IPヘッダ、TCP又はUDPヘッダ、並びに、TCP又はUDPデータを順に含んでおり、DMA処理部が、上位レイヤにおいて作成されたフレーム内のMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、TCP又はUDPデータを順にチェックサム制御部に転送し、その後、上位レイヤにおいて作成されたフレーム内のIPヘッダをチェックサム制御部に再び転送し、チェックサム制御部が、DMA処理部から受け取ったMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、並びに、TCP又はUDPデータをバッファメモリに書き込み、DMA処理部から受け取ったIPヘッダをチェックサム計算処理部に送ってIPのヘッダ・チェックサムの計算を行わせ、DMA処理部から受け取ったTCP又はUDPヘッダ、並びに、TCP又はUDPデータと、DMA処理部から再び受け取ったIPヘッダに基づいて作成したTCP又はUDP擬似ヘッダに相当するデータとをチェックサム計算処理部に送ってTCP又はUDPのチェックサムの計算を行わせるようにしても良い。
また、本発明に係る半導体集積回路は、本発明に係るTCP/IP送信処理回路を具備する。
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
図1は、本発明の一実施形態としてのTCP/IP(Transmission Control Protocol/Internet Protocol)送信処理回路を用いたコンピュータの概要を示すブロック図である。このコンピュータ1は、ネットワークNに接続された物理層処理回路(PHY)2と、MAC(Media Access Control)処理回路3と、MACブリッジ回路4と、本発明の一実施形態としてのTCP/IP送信処理回路5と、TCP/IP受信処理回路6と、インタフェース回路7と、CPU8と、メインメモリ9と、HDD(ハードディスクドライブ)10と、入力部11と、表示部12とを具備する。
図1は、本発明の一実施形態としてのTCP/IP(Transmission Control Protocol/Internet Protocol)送信処理回路を用いたコンピュータの概要を示すブロック図である。このコンピュータ1は、ネットワークNに接続された物理層処理回路(PHY)2と、MAC(Media Access Control)処理回路3と、MACブリッジ回路4と、本発明の一実施形態としてのTCP/IP送信処理回路5と、TCP/IP受信処理回路6と、インタフェース回路7と、CPU8と、メインメモリ9と、HDD(ハードディスクドライブ)10と、入力部11と、表示部12とを具備する。
本実施形態においては、TCP/IP階層モデルのネットワークインタフェース層がEthernet(登録商標)であるものとし、物理層処理回路2、MAC処理回路3、及び、MACブリッジ回路4が、ネットワークインタフェース層を担うものとする。物理層処理回路2は、ネットワークNに接続されており、MAC処理回路3は、物理層処理回路2に接続されており、MACブリッジ回路4は、MAC処理回路3に接続されている。
また、本実施形態においては、TCP/IP階層モデルのインターネット層及びトランスポート層がIP(Internet Protocol)並びにTCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)であるものとし、TCP/IP送信処理回路5、TCP/IP受信処理回路6、及び、インタフェース回路7が、インターネット層及びトランスポート層を担うものとする。TCP/IP送信処理回路5及びTCP/IP受信処理回路6は、MACブリッジ回路4とインタフェース回路7との間にそれぞれ接続されている。
また、CPU8、メインメモリ9、HDD10、入力部11、及び、表示部12が、TCP/IP階層モデルのアプリケーション層を担うものとする。例えば、HDD10には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、CPU8は、メインメモリ9を作業領域として使用しながら、これらのプログラムを実行する。CPU8、メインメモリ9、HDD10、入力部11、及び、表示部12は、バスBを介して接続されており、バスBは、インタフェース回路7に接続されている。
TCP/IP送信処理回路5は、DMA(Direct Memory Access)処理部21と、チェックサム制御部22と、バッファメモリ24と、チェックサム計算処理部25とを具備する。チェックサム制御部22は、IPチェックサムレジスタ23を有する。
次に、TCP/IP送信処理回路5の動作について説明する。
図2は、TCP/IP送信処理回路5の第1の動作を示すフローチャートである。TCP/IP送信処理回路5の第1の動作は、アプリケーション層からトランスポート層及びインターネット層を利用するためのAPI(Application Programming Interface)において図3に示すフォーマットのフレームがメインメモリ9(図1参照)内に作成される場合における動作である。
図2は、TCP/IP送信処理回路5の第1の動作を示すフローチャートである。TCP/IP送信処理回路5の第1の動作は、アプリケーション層からトランスポート層及びインターネット層を利用するためのAPI(Application Programming Interface)において図3に示すフォーマットのフレームがメインメモリ9(図1参照)内に作成される場合における動作である。
図3に示すフレームは、MACヘッダ(図3中のア参照)、IPヘッダ(図3中のイ参照)、TCPヘッダ(図3中のウ参照)、データ(図3中のエ参照)、及び、TCP擬似ヘッダ(図3中のオ参照)を含んでいる。なお、ここでは、TCPを用いることとしているが、UDPを用いる場合も同様にすれば良い。UDPを用いる場合には、フレームが、TCPヘッダ(図3中のウ参照)に代えてUDPヘッダを、TCP擬似ヘッダ(図3中のオ参照)に代えてUDP擬似ヘッダを含むようにすれば良い。
上位レイヤとしてのアプリケーション層において図3に示すフレームがメインメモリ9内に作成されると、TCP/IP送信処理部5内のDMA処理部21は、メインメモリ9からチェックサム制御部22へフレームのDMA転送を行う(ステップS11)。なお、DMA処理部21は、図3のフレーム中の上方から下方に向かって、すなわち、MACヘッダ、IPヘッダ、TCPヘッダ、データ、TCP擬似ヘッダの順(図3中のア→イ→ウ→エ→オの順)にDMA転送を行う。
チェックサム制御部22は、DMA処理部21からMACヘッダを受け取ると、受け取ったMACヘッダをバッファメモリ24に書き込む(ステップS21)。
次に、チェックサム制御部22は、DMA処理部21からIPヘッダを受け取ると、受け取ったIPヘッダをバッファメモリ24に書き込むとともに、チェックサム計算処理部25に送る(ステップS22)。チェックサム計算処理部25は、IPヘッダをチェックサム制御部22から受け取ってIPのヘッダ・チェックサムの計算を行い、計算の結果として得られたIPのヘッダ・チェックサムをチェックサム制御部22に送る(ステップS31)。チェックサム制御部22は、IPのヘッダ・チェックサムをチェックサム計算処理部25から受け取ると、IPチェックサムレジスタ23内に格納する(ステップS23)。
さらに、チェックサム制御部22は、DMA処理部21からTCPヘッダ及びデータを受け取ると、受け取ったTCPヘッダ及びデータをバッファメモリ24に書き込むとともに、チェックサム計算処理部25に送る(ステップS23)。チェックサム計算処理部25は、TCPヘッダ及びデータをチェックサム制御部22から受け取ってTCPのチェックサムの計算を開始する(ステップS32)。
そして、チェックサム制御部22は、DMA処理部21からTCP擬似ヘッダを受け取ると、受け取ったTCP擬似ヘッダをチェックサム計算処理部25に送る(ステップS25)。なお、先に説明したように、TCP擬似ヘッダが実際にはネットワーク上に送信されないものであるため、チェックサム制御部22は、TCP擬似ヘッダのバッファメモリ24への書き込みを行わない。従って、バッファメモリ24には、図3中のMACヘッダ、IPヘッダ、TCPヘッダ、及び、データ(図3中のア〜エ)が格納されることとなる。
その後、チェックサム制御部22は、バッファメモリ24内に格納されているフレーム(MACヘッダ、IPヘッダ、TCPヘッダ、及び、データを含む)の下位レイヤ(ここでは、図1中のMACブリッジ回路4)への転送を開始する(ステップS26)。なお、チェックサム制御部22は、バッファメモリ24内のMACヘッダ、IPヘッダ、TCPヘッダ、データの順(図3中のア→イ→ウ→エの順)にMACブリッジ回路4に転送する。
MACブリッジ回路4への転送において、チェックサム制御部22は、バッファメモリ24内のIPヘッダのヘッダ・チェックサム格納フィールドを読み出したときに、IPチェックサムレジスタ23内に格納されているIPのヘッダ・チェックサムをこのフィールドに挿入して、MACブリッジ回路4に送る。
一方、チェックサム計算処理部25は、TCP擬似ヘッダをチェックサム制御部22から受け取ってTCPのチェックサムの計算を終了し、計算の結果として得られたTCPのチェックサムをチェックサム制御部22に送る(ステップS32)。
チェックサム制御部22は、バッファメモリ24内のTCPヘッダのチェックサム格納フィールドを読み出したときに、チェックサム計算処理部25からTCPのチェックサムを受け取ってこのフィールドに挿入し、MACブリッジ回路4に送る。その後、チェックサム制御部22は、バッファメモリ24内のデータをMACブリッジ回路4に送って、処理を終了する。
MACブリッジ回路4は、チェックサム制御部22から受け取ったフレームをMAC処理回路3に送り、MAC処理回路3は、MACブリッジ回路4から受け取ったフレームの末尾にフレームチェックシーケンス(Frame Check Sequence)を付加して物理層処理回路2に送り、物理層処理回路2は、受け取ったフレームをネットワークN上に送信する。
以上説明したように、TCP/IP送信処理回路5によれば、1個のチェックサム計算処理部25を用いて、IPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムの2つのチェックサムの計算を行うことが可能となる。これにより、小さい回路規模でTCP/IPの送信処理の速度を向上させることができる。
なお、図4に示すように、一般に、TCP擬似ヘッダ、UDP擬似ヘッダは、TCPヘッダ、UDPヘッダの前に配置されることとなっている(RFC793、768等)。これに従い、上位レイヤがメインメモリ9内に作成するフレームが図4に示すフォーマットであるとすると、チェックサム制御部22は、MACヘッダ及びIPヘッダ(図4中のア及びイ)のバッファメモリ24への書き込み後、TCP擬似ヘッダ(図4中のウ)のバッファメモリ24への書き込みを行わず、その後、TCPヘッダ及びデータ(図4中のエ及びオ)のバッファメモリ24への書き込みを行う必要がある。すなわち、バッファメモリ24への書き込みの制御が複雑になってしまう。
一方、本実施形態においては、図3に示すように、上位レイヤがメインメモリ9内に作成するフレームにおいて、TCP擬似ヘッダ(図3中のオ参照)がフレームの末尾に配置されている。そのため、チェックサム制御部22は、MACヘッダ、IPヘッダ、TCPヘッダ、及び、データ(図3中のア〜エ)のバッファメモリ24への連続書き込み(バースト書き込み)を行うことができる。このように、書き込みの制御が容易になるとともに、書き込み速度を向上させることができる。
なお、ここでは、TCPを用いる場合におけるTCP/IP送信処理回路5の動作について説明したが、UDPを用いる場合におけるTCP/IP送信処理回路5の動作も同様である。
また、本実施形態においては、ネットワークインタフェース層としてEthernet(登録商標)を用いることとしているが、他のものを用いるようにしても良い。また、アプリケーション層として、HTTP等、種々のものを用いることが可能である。
また、本実施形態においては、ネットワークインタフェース層としてEthernet(登録商標)を用いることとしているが、他のものを用いるようにしても良い。また、アプリケーション層として、HTTP等、種々のものを用いることが可能である。
次に、TCP/IP送信処理回路5の第2の動作について説明する。
図5は、TCP/IP送信処理回路5の第2の動作を示すフローチャートである。TCP/IP送信処理回路5の第2の動作は、アプリケーション層からトランスポート層及びインターネット層を利用するためのAPI(Application Programming Interface)において図6に示すフォーマットのフレームがメインメモリ9(図1参照)内に作成される場合における動作である。
図5は、TCP/IP送信処理回路5の第2の動作を示すフローチャートである。TCP/IP送信処理回路5の第2の動作は、アプリケーション層からトランスポート層及びインターネット層を利用するためのAPI(Application Programming Interface)において図6に示すフォーマットのフレームがメインメモリ9(図1参照)内に作成される場合における動作である。
図6に示すフレームは、MACヘッダ(図6中のア参照)、IPヘッダ(図6中のイ参照)、TCPヘッダ(図6中のウ参照)、及び、データ(図6中のエ参照)を含んでいる。なお、ここでは、TCPを用いることとしているが、UDPを用いる場合も同様にすれば良い。UDPを用いる場合には、フレームが、TCPヘッダ(図6中のウ参照)に代えてUDPヘッダを含むようにすれば良い。
上位レイヤとしてのアプリケーション層において図6に示すフレームがメインメモリ9内に作成されると、TCP/IP送信処理部5内のDMA処理部21は、メインメモリ9からチェックサム制御部22へフレームのDMA転送を行う(ステップS41)。なお、DMA処理部21は、図6のフレーム中の上方から下方に向かって、すなわち、MACヘッダ、IPヘッダ、TCPヘッダ、データの順(図6中のア→イ→ウ→エの順)にDMA転送を行う。
チェックサム制御部22は、DMA処理部21からMACヘッダを受け取ると、受け取ったMACヘッダをバッファメモリ24に書き込む(ステップS51)。
次に、チェックサム制御部22は、DMA処理部21からIPヘッダを受け取ると、受け取ったIPヘッダをバッファメモリ24に書き込むとともに、チェックサム計算処理部25に送る(ステップS52)。チェックサム計算処理部25は、IPヘッダをチェックサム制御部22から受け取ってIPのヘッダ・チェックサムの計算を行い、計算の結果として得られたIPのヘッダ・チェックサムをチェックサム制御部22に送る(ステップS61)。チェックサム制御部22は、IPのヘッダ・チェックサムをチェックサム計算処理部25から受け取ると、IPチェックサムレジスタ23内に格納する(ステップS53)。
さらに、チェックサム制御部22は、DMA処理部21からTCPヘッダ及びデータを受け取ると、受け取ったTCPヘッダ及びデータをバッファメモリ24に書き込むとともに、チェックサム計算処理部25に送る(ステップS53)。チェックサム計算処理部25は、TCPヘッダ及びデータをチェックサム制御部22から受け取ってTCPのチェックサムの計算を開始する(ステップS62)。なお、バッファメモリ24には、図6中のMACヘッダ、IPヘッダ、TCPヘッダ、及び、データ(図6中のア〜エ)が格納されることとなる。
その後、DMA処理部21は、メインメモリ9内のIPヘッダをチェックサム制御部22に再度DMA転送する(ステップS42)。チェックサム制御部22は、IPヘッダを再度受け取ると、受け取ったIPヘッダを用いてTCP擬似ヘッダに相当するデータを作成し、チェックサム計算処理部25に送る(ステップS55)。図10に示すように、TCP擬似ヘッダは、送信元IPアドレス、あて先IPアドレス、プロトコル番号(TCPのプロトコル番号は「6」)、及び、パケット長(TCPヘッダ長とTCPペイロード長の和)の4つの情報を含んでいる。これらの情報のうち、送信元IPアドレス、あて先IPアドレス、及び、プロトコル番号は、IPヘッダに含まれている(図9参照)。また、パケット長は、IPヘッダ内のデータグラム長からIPヘッダ内のヘッダ長を減じることにより、求めることができる。
なお、TCP擬似ヘッダと同様に、UDP擬似ヘッダも、送信元IPアドレス、あて先IPアドレス、プロトコル番号(UDPのプロトコル番号は「17」)、及び、パケット長(UDPヘッダ長とUDPペイロード長の和)の4つの情報を含んでいる。これらの情報のうち、送信元IPアドレス、あて先IPアドレス、及び、プロトコル番号は、IPヘッダに含まれており、パケット長は、IPヘッダ内のデータグラム長からIPヘッダ内のヘッダ長を減じることにより、求めることができる。
再び図5を参照すると、チェックサム制御部22は、バッファメモリ24内に格納されているフレーム(MACヘッダ、IPヘッダ、TCPヘッダ、及び、データを含む)の下位レイヤ(MACブリッジ回路4)への転送を開始する(ステップS56)。なお、チェックサム制御部22は、バッファメモリ24内のMACヘッダ、IPヘッダ、TCPヘッダ、データの順(図6中のア→イ→ウ→エの順)にMACブリッジ回路4に転送する。
MACブリッジ回路4への転送において、チェックサム制御部22は、バッファメモリ24内のIPヘッダのヘッダ・チェックサム格納フィールドを読み出したときに、IPチェックサムレジスタ23内に格納されているIPのヘッダ・チェックサムをこのフィールドに挿入して、MACブリッジ回路4に送る。
一方、チェックサム計算処理部25は、TCP擬似ヘッダに相当するデータをチェックサム制御部22から受け取ってTCPのチェックサムの計算を終了し、計算の結果として得られたTCPのチェックサムをチェックサム制御部22に送る(ステップS62)。
チェックサム制御部22は、バッファメモリ24内のTCPヘッダのチェックサム格納フィールドを読み出したときに、チェックサム計算処理部25からTCPのチェックサムを受け取ってこのフィールドに挿入し、MACブリッジ回路4に送る。その後、チェックサム制御部22は、バッファメモリ24内のデータをMACブリッジ回路4に送って、処理を終了する。
以上説明したように、TCP/IP送信処理回路5によれば、1個のチェックサム計算処理部25を用いて、IPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムの2つのチェックサムの計算を行うことが可能となる。
また、図6に示すように、上位レイヤがメインメモリ9内に作成するフレームにおいて、TCP擬似ヘッダを省略することが可能となる。
なお、ここでは、TCPを用いる場合におけるTCP/IP送信処理回路5の動作について説明したが、UDPを用いる場合におけるTCP/IP送信処理回路5の動作も同様である。
本発明は、TCP/IP送信処理回路において利用可能である。このTCP/IP送信処理回路は、パーソナルコンピュータ、携帯電話装置、PDA、家庭電気製品(テレビジョン装置、冷蔵庫等)等に利用可能である。
1 コンピュータ、 2 物理層処理回路、 3 MAC処理回路、 4 MACブリッジ回路、 5 TCP/IP送信処理回路、 6 TCP/IP受信処理回路、 7 インタフェース回路、 8 CPU、 9 メインメモリ、 10 HDD、 11 入力部、 12 表示部、 21 DMA処理部、 22 チェックサム制御部、 23 IPチェックサムレジスタ、 24 バッファメモリ、 25 チェックサム計算処理部
Claims (4)
- TCP/IP(Transmission Control Protocol/Internet Protocol)の送信処理を行うための回路であって、
フレームを格納するためのバッファメモリと、
IP(Internet Protocol)のヘッダ・チェックサム並びにTCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)のチェックサムの計算を行うためのチェックサム計算処理部と、
上位レイヤにおいて作成されたフレームをDMA(Direct Memory Access)転送するためのDMA処理部と、
上位レイヤにおいて作成されたフレームを前記DMA処理部から受け取って前記バッファメモリに書き込み、前記DMA処理部から受け取ったフレームに基づいて前記チェックサム計算処理部にIPのヘッダ・チェックサムの計算を行わせ、前記DMA処理部から受け取ったフレームに基づいて前記チェックサム計算処理部にTCP又はUDPのチェックサムの計算を行わせ、前記バッファメモリに格納されているフレーム内に前記チェックサム計算処理部によって計算されたIPのヘッダ・チェックサム並びにTCP又はUDPのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部と、
を具備する、TCP/IP送信処理回路。 - 上位レイヤにおいて作成されたフレームが、MAC(Media Access Control)ヘッダ、IPヘッダ、TCP又はUDPヘッダ、TCP又はUDPデータ、並びに、TCP又はUDP擬似ヘッダを順に含んでおり、
前記DMA処理部が、
上位レイヤにおいて作成されたフレーム内のMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、TCP又はUDPデータ、TCP又はUDP擬似ヘッダを順に前記チェックサム制御部に転送し、
前記チェックサム制御部が、
前記DMA処理部から受け取ったMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、並びに、TCP又はUDPデータを前記バッファメモリに書き込み、前記DMA処理部から受け取ったIPヘッダを前記チェックサム計算処理部に送ってIPのヘッダ・チェックサムの計算を行わせ、前記DMA処理部から受け取ったTCP又はUDPヘッダ、TCP又はUDPデータ、並びに、TCP又はUDP擬似ヘッダを前記チェックサム計算処理部に送ってTCP又はUDPのチェックサムの計算を行わせる、請求項1記載のTCP/IP送信処理回路。 - 上位レイヤにおいて作成されたフレームが、MACヘッダ、IPヘッダ、TCP又はUDPヘッダ、並びに、TCP又はUDPデータを順に含んでおり、
前記DMA処理部が、
上位レイヤにおいて作成されたフレーム内のMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、TCP又はUDPデータを順に前記チェックサム制御部に転送し、その後、上位レイヤにおいて作成されたフレーム内のIPヘッダを前記チェックサム制御部に再び転送し、
前記チェックサム制御部が、
前記DMA処理部から受け取ったMACヘッダ、IPヘッダ、TCP又はUDPヘッダ、並びに、TCP又はUDPデータを前記バッファメモリに書き込み、前記DMA処理部から受け取ったIPヘッダを前記チェックサム計算処理部に送ってIPのヘッダ・チェックサムの計算を行わせ、前記DMA処理部から受け取ったTCP又はUDPヘッダ、並びに、TCP又はUDPデータと、前記DMA処理部から再び受け取ったIPヘッダに基づいて作成したTCP又はUDP擬似ヘッダに相当するデータとを前記チェックサム計算処理部に送ってTCP又はUDPのチェックサムの計算を行わせる、請求項1記載のTCP/IP送信処理回路。 - 請求項1〜3のいずれか1項記載のTCP/IP送信処理回路を具備する半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005120776A JP2006303765A (ja) | 2005-04-19 | 2005-04-19 | Tcp/ip送信処理回路及びそれを具備する半導体集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005120776A JP2006303765A (ja) | 2005-04-19 | 2005-04-19 | Tcp/ip送信処理回路及びそれを具備する半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006303765A true JP2006303765A (ja) | 2006-11-02 |
Family
ID=37471549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005120776A Withdrawn JP2006303765A (ja) | 2005-04-19 | 2005-04-19 | Tcp/ip送信処理回路及びそれを具備する半導体集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006303765A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495241B2 (en) | 2008-08-29 | 2013-07-23 | Renesas Electronics Corporation | Communication apparatus and method therefor |
CN105897689A (zh) * | 2015-02-17 | 2016-08-24 | 爱思开海力士有限公司 | 嵌入式系统及其方法 |
JP2017103648A (ja) * | 2015-12-02 | 2017-06-08 | キヤノン株式会社 | 演算装置及び演算方法、通信装置 |
JP2019201249A (ja) * | 2018-05-14 | 2019-11-21 | キヤノン株式会社 | 通信装置、通信装置の制御方法、およびプログラム |
US10701041B2 (en) | 2015-12-11 | 2020-06-30 | Canon Kabushiki Kaisha | Calculation device, calculation method, communication apparatus, and storage medium |
US10833703B2 (en) | 2017-12-13 | 2020-11-10 | Canon Kabushiki Kaisha | DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium |
-
2005
- 2005-04-19 JP JP2005120776A patent/JP2006303765A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495241B2 (en) | 2008-08-29 | 2013-07-23 | Renesas Electronics Corporation | Communication apparatus and method therefor |
CN105897689A (zh) * | 2015-02-17 | 2016-08-24 | 爱思开海力士有限公司 | 嵌入式系统及其方法 |
CN105897689B (zh) * | 2015-02-17 | 2020-10-30 | 爱思开海力士有限公司 | 嵌入式系统及其方法 |
JP2017103648A (ja) * | 2015-12-02 | 2017-06-08 | キヤノン株式会社 | 演算装置及び演算方法、通信装置 |
US10701041B2 (en) | 2015-12-11 | 2020-06-30 | Canon Kabushiki Kaisha | Calculation device, calculation method, communication apparatus, and storage medium |
US10833703B2 (en) | 2017-12-13 | 2020-11-10 | Canon Kabushiki Kaisha | DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium |
US11336297B2 (en) | 2017-12-13 | 2022-05-17 | Canon Kabushiki Kaisha | DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium |
JP2019201249A (ja) * | 2018-05-14 | 2019-11-21 | キヤノン株式会社 | 通信装置、通信装置の制御方法、およびプログラム |
JP7142462B2 (ja) | 2018-05-14 | 2022-09-27 | キヤノン株式会社 | 通信装置、通信装置の制御方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4344576B2 (ja) | パケット通信装置 | |
US8495262B2 (en) | Using a table to determine if user buffer is marked copy-on-write | |
US8214535B2 (en) | Changing Ethernet MTU size on demand with no data loss | |
JP4407556B2 (ja) | セッション中継装置、セッション中継方法およびプログラム | |
US20080256271A1 (en) | Methods and apparatus for reducing storage usage in devices | |
US8495241B2 (en) | Communication apparatus and method therefor | |
KR102610823B1 (ko) | 네트워크 어드레스 변환을 위한 통신 시스템 및 방법 | |
US20060004983A1 (en) | Method, system, and program for managing memory options for devices | |
US9137199B2 (en) | Stateful NAT64 function in a distributed architecture | |
JP2006325054A (ja) | Tcp/ip受信処理回路及びそれを具備する半導体集積回路 | |
US20110270908A1 (en) | Transparent migration of endpoint | |
JP2006303765A (ja) | Tcp/ip送信処理回路及びそれを具備する半導体集積回路 | |
KR102721940B1 (ko) | 메모리 액세스를 위한 직렬 통신 방법 및 시스템 | |
JP2006332927A (ja) | Tcp/ip受信処理回路及びそれを具備する半導体集積回路 | |
CN108183926A (zh) | 一种数据包处理方法和装置 | |
CN115878512A (zh) | 一种内存映射方法、系统、设备及存储介质 | |
US8091136B2 (en) | Packet transfer device, packet transfer method, and program | |
US20050044261A1 (en) | Method of operating a network switch | |
JP4071706B2 (ja) | 送信装置、中継装置およびプログラム | |
JP6618330B2 (ja) | 通信装置及びその方法、コンピュータプログラム | |
JP6976786B2 (ja) | 通信装置および通信装置の制御方法 | |
JP4400278B2 (ja) | Tcp処理回路及び半導体集積回路 | |
JP4418409B2 (ja) | プレミアパケット識別装置、端末装置、プレミアパケット識別システムおよびプレミアパケット識別方法 | |
KR100949036B1 (ko) | 무선랜의 비디오 신호 처리 장치 및 방법 | |
JP2008148181A (ja) | 通信装置及び通信制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080701 |