JP2008113327A - Network interface device - Google Patents

Network interface device Download PDF

Info

Publication number
JP2008113327A
JP2008113327A JP2006295755A JP2006295755A JP2008113327A JP 2008113327 A JP2008113327 A JP 2008113327A JP 2006295755 A JP2006295755 A JP 2006295755A JP 2006295755 A JP2006295755 A JP 2006295755A JP 2008113327 A JP2008113327 A JP 2008113327A
Authority
JP
Japan
Prior art keywords
packet
data
transmission
packets
transmitted
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
JP2006295755A
Other languages
Japanese (ja)
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 JP2006295755A priority Critical patent/JP2008113327A/en
Publication of JP2008113327A publication Critical patent/JP2008113327A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a network interface device that stably transmits data packets to a network at high speed. <P>SOLUTION: In the network interface device 101, a transmission buffer memory 124 stores AV stream data packets transmitted for specific communication connection while a transmission FIFO 114 stores data packets to be transmitted other than the AV stream data. A packet branch circuit 121 separates ACK packets replied to the AV stream data packets from among the received packets. An ACK packet analysis circuit 122 extracts prescribed information from in the separated ACK packets. A transmission buffer control circuit 123 controls the transmission buffer memory 124 on the basis of the extracted information. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、データパケットを、高速かつ安定してネットワークに送信することが可能であるネットワークインターフェース装置に関する。   The present invention relates to a network interface device capable of transmitting data packets to a network at high speed and stably.

現在、図1に示すように、多くの情報端末装置(以下、「端末装置」という。)100乃至600が、LANやインターネットなど規模に関わらず様々なネットワーク700を通じて相互に接続されており、これら端末装置100乃至600間でデータを送受信する場合、データを所定の単位に分割して伝送を行うパケット通信がよく用いられている。   Currently, as shown in FIG. 1, many information terminal devices (hereinafter referred to as “terminal devices”) 100 to 600 are connected to each other through various networks 700 regardless of the scale, such as a LAN and the Internet. When data is transmitted and received between the terminal devices 100 to 600, packet communication is often used in which data is divided into predetermined units for transmission.

図16は、従来技術に係る第1のネットワークインターフェース装置301を備えた端末装置300の構成を示すブロック図である。ネットワーク700を通じてパケット通信を行う際、従来のネットワークインターフェース装置301を内部に有する端末装置300は、通信プロトコルに関する処理を主にメインCPU304で行っている。また、パケット通信の際には、端末装置間での信頼性の高い伝送を実現するために、OSI7階層モデルにおける第4層のトランスポート層プロトコル及び第3層のネットワーク層プロトコルのTCP/IPがよく用いられる。TCPは、データを受信する側の端末装置(宛先端末装置)から送信する側の端末装置(発信元端末装置)への伝達確認応答を必要とする通信プロトコルであり、伝達確認応答がされない場合には発信元端末装置は該当パケットの再送を行うので、確実な伝送が要求されるデータを伝送するときに適したものである。IPは、ネットワークを通じてパケットを伝送する際に、経路探索や伝送路に応じたパケットの分割及び再構築を行う通信プロトコルであり、ネットワーク上のすべての端末装置には、端末装置を識別するためのIPアドレスが付加される。以下、図1に示すネットワークにおいて、図16に示す端末装置300からネットワーク700を介して接続されている端末装置600へTCP/IPによりデータを送信する場合を例に、従来のネットワークインターフェース装置301のパケット送信処理手順の説明を行う。   FIG. 16 is a block diagram illustrating a configuration of a terminal device 300 including the first network interface device 301 according to the related art. When performing packet communication through the network 700, the terminal device 300 having the conventional network interface device 301 therein mainly performs processing related to the communication protocol by the main CPU 304. In packet communication, in order to realize highly reliable transmission between terminal apparatuses, the TCP / IP of the fourth layer transport layer protocol and the third layer network layer protocol in the OSI7 layer model is used. Often used. TCP is a communication protocol that requires a transmission confirmation response from a terminal device (destination terminal device) that receives data to a terminal device (source terminal device) that transmits data, and when there is no transmission confirmation response. Since the source terminal device retransmits the corresponding packet, it is suitable for transmitting data that requires reliable transmission. IP is a communication protocol that performs route search and packet segmentation and reconstruction according to a transmission path when transmitting a packet through a network, and all terminal devices on the network identify terminal devices. An IP address is added. Hereinafter, in the network shown in FIG. 1, the case where data is transmitted by TCP / IP from the terminal device 300 shown in FIG. 16 to the terminal device 600 connected via the network 700 is taken as an example. The packet transmission processing procedure will be described.

図16の端末装置300は、LANコントローラとして動作するネットワークインターフェース装置301と、プログラム及びデータを格納するシステムメモリ303と、プログラムに従ってデータを処理するメインCPU304と、アプリケーション処理回路305とを内部に備え、これらの構成要素はローカルバス302によって互いに接続されている。端末装置300において、端末装置600へデータを送信するとき、送信されるデータを含む入力信号はまず、アプリケーション処理回路305にてアプリケーション処理がなされ、アプリケーション処理回路305内のバッファメモリ306に格納される。アプリケーション処理回路305内のバッファメモリ306に格納されたデータは、メインCPU304によってローカルバス302経由で読み込まれて、システムメモリ303に格納される。システムメモリ303に格納されたデータは、再びメインCPU304によってローカルバス302経由で読み込まれて、第4層のTCPプロトコル処理及び第3層のIPプロトコル処理が行われた後、システムメモリ303内の通信コネクション毎に用意された領域にパケットの形式で格納される。システムメモリ303に格納されたパケットは、メインCPU304により送信起動されて再び読み込まれると、ローカルバス302を経由してネットワークインターフェース装置301に転送される。ここで、メインCPU304は、システムメモリ303からネットワークインターフェース装置301へパケットを転送する際に、TCPにおけるパケットの再送に備えて、システムメモリ303にパケットのコピーを残しておく。ネットワークインターフェース装置301に転送されたパケットは、一時的に送信FIFOメモリ装置(以下、「送信FIFO」という。)314に格納された後、データリンク層処理回路312にて第2層のデータリンク層処理が行われ、次いで物理層処理回路311にて第1層の物理層処理が行われ、最後にネットワーク700を介して端末装置600へ送信される。   The terminal device 300 of FIG. 16 includes a network interface device 301 that operates as a LAN controller, a system memory 303 that stores programs and data, a main CPU 304 that processes data according to the programs, and an application processing circuit 305. These components are connected to each other by a local bus 302. When the terminal device 300 transmits data to the terminal device 600, an input signal including the transmitted data is first subjected to application processing by the application processing circuit 305 and stored in the buffer memory 306 in the application processing circuit 305. . Data stored in the buffer memory 306 in the application processing circuit 305 is read by the main CPU 304 via the local bus 302 and stored in the system memory 303. The data stored in the system memory 303 is read again by the main CPU 304 via the local bus 302, and after the fourth layer TCP protocol processing and the third layer IP protocol processing are performed, the communication in the system memory 303 is performed. It is stored in the packet format in an area prepared for each connection. When the packet stored in the system memory 303 is activated by the main CPU 304 and read again, the packet is transferred to the network interface device 301 via the local bus 302. Here, when transferring the packet from the system memory 303 to the network interface device 301, the main CPU 304 leaves a copy of the packet in the system memory 303 in preparation for retransmission of the packet in TCP. The packet transferred to the network interface device 301 is temporarily stored in a transmission FIFO memory device (hereinafter referred to as “transmission FIFO”) 314 and then the data link layer processing circuit 312 performs the second data link layer. Processing is performed, and then physical layer processing of the first layer is performed in the physical layer processing circuit 311 and finally transmitted to the terminal device 600 via the network 700.

データを受信する側の端末装置600は、データパケットを誤りなく受信できたときに、そのデータパケットを送信した端末装置300に対して伝達確認応答のためのACKパケットを送信する。ACKパケットの送信方法は実装に依存するが、2つのデータパケットに対する伝達確認応答を1つのACKパケットを返信することでまとめて行うのが一般的である。ACKパケットは、受信されたデータパケットを特定するための確認応答番号と、受信側の端末装置600が受信可能なデータサイズを示すウインドウサイズの情報とを含む。   When receiving the data packet without error, the terminal device 600 on the data receiving side transmits an ACK packet for a transmission confirmation response to the terminal device 300 that has transmitted the data packet. Although the transmission method of the ACK packet depends on the implementation, the transmission confirmation response to the two data packets is generally performed by returning one ACK packet. The ACK packet includes an acknowledgment number for specifying the received data packet and window size information indicating the data size that can be received by the terminal device 600 on the receiving side.

端末装置300に到来して受信されたACKパケットは、ネットワークインターフェース装置301内の物理層処理回路311で物理層処理が行われ、次いでデータリンク層処理回路912でデータリンク層処理が行われ、一時的に受信FIFOメモリ装置(以下、「受信FIFO」という。)313に格納された後、メインCPU304によって、ネットワークインターフェース装置301からローカルバス302経由でシステムメモリ303に格納される。その後、受信されたACKパケットは、再びメインCPU304によって読み込まれて処理される。ここで、メインCPU304は、端末装置600へ伝送できたことがACKパケットにより確認されたデータパケットを、保存していたシステムメモリ303内から消去し、メモリ領域を解放する。そして、メインCPU304は、ACKパケットにより通知されたウインドウサイズ分を満たすように新たなデータパケットをシステムメモリ303から読み出して、読み出されたデータパケットを端末装置600へ新たに送信する。一方、一定期間待ってもACKパケットが返信されてこない場合にはタイムアウトとなり、端末装置300は、端末装置600へのデータパケットの伝送に失敗したものと判断して、システムメモリ303に保存している該当データパケットを再送する。以上説明したように、図16の従来技術に係るネットワークインターフェース装置301を備えた端末装置300では、データパケットの送信処理とACKパケットの受信処理のほとんどがメインCPU304により行われ、その際に、ローカルバス302を経由したデータの転送が行われている。   The ACK packet received and received at the terminal device 300 is subjected to physical layer processing by the physical layer processing circuit 311 in the network interface device 301, and then subjected to data link layer processing by the data link layer processing circuit 912. After being stored in the reception FIFO memory device (hereinafter referred to as “reception FIFO”) 313, the main CPU 304 stores it in the system memory 303 from the network interface device 301 via the local bus 302. Thereafter, the received ACK packet is read and processed again by the main CPU 304. Here, the main CPU 304 erases the data packet confirmed by the ACK packet that it has been transmitted to the terminal device 600 from the stored system memory 303, and releases the memory area. Then, the main CPU 304 reads a new data packet from the system memory 303 so as to satisfy the window size notified by the ACK packet, and newly transmits the read data packet to the terminal device 600. On the other hand, if an ACK packet is not returned even after waiting for a certain period of time, the terminal device 300 determines that the transmission of the data packet to the terminal device 600 has failed and stores it in the system memory 303. Resend the corresponding data packet. As described above, in the terminal device 300 provided with the network interface device 301 according to the prior art of FIG. 16, most of the data packet transmission processing and ACK packet reception processing are performed by the main CPU 304. Data is transferred via the bus 302.

一方、端末装置300がデータパケットを受信する場合も、送信する場合と同様にその処理のほとんどがメインCPU304により行われ、ローカルバス302を経由してデータが転送される。端末装置300にて受信されるパケットは、ネットワークインターフェース装置301内での処理を経て、ローカルバス302を経由してメインCPU304により読み込まれ、IPプロトコル処理及びTCPプロトコル処理等の通信プロトコル処理が行われる。通信プロトコル処理が終了したパケットは、システムメモリ303に格納され、ある一定量のデータが蓄積された後に、メインCPU304によって再び読み込まれ、ローカルバス302を経由してアプリケーション処理回路305に転送される。このため、データパケットの送信と受信を同時に行う場合には、メインCPU304の負荷や、パケット送受信処理が占有するローカルバス302の帯域幅は、大幅に増大することとなる。一般に、データパケットの送信と受信では、受信処理を優先させることが多いので、メインCPU304の処理能力やローカルバス302の帯域幅が小さいときには、データパケットの送信処理に遅延が発生し、データパケットを送信する時間間隔は長くなる。また、メインCPU304は、上記のパケット送受信処理の他にそれ以外の汎用処理も行うので、特に、家電製品などの組み込み用途向けのマイコンシステムなどでは、パケット送信処理に使用できるメインCPU304の処理能力やローカルバス302の帯域幅はさらに制限され、データの送信速度の低下はより顕著となる。   On the other hand, when the terminal device 300 receives a data packet, most of the processing is performed by the main CPU 304 as in the case of transmission, and the data is transferred via the local bus 302. The packet received by the terminal device 300 is processed by the network interface device 301 and read by the main CPU 304 via the local bus 302, and communication protocol processing such as IP protocol processing and TCP protocol processing is performed. . The packet for which the communication protocol processing has been completed is stored in the system memory 303, and after a certain amount of data is accumulated, it is read again by the main CPU 304 and transferred to the application processing circuit 305 via the local bus 302. For this reason, when data packets are transmitted and received simultaneously, the load on the main CPU 304 and the bandwidth of the local bus 302 occupied by packet transmission / reception processing are greatly increased. In general, in the transmission and reception of data packets, reception processing is often prioritized. Therefore, when the processing capacity of the main CPU 304 or the bandwidth of the local bus 302 is small, a delay occurs in the data packet transmission processing, The time interval for transmission becomes longer. The main CPU 304 also performs other general-purpose processing in addition to the packet transmission / reception processing described above. Particularly in a microcomputer system for embedded use such as home appliances, the processing capability of the main CPU 304 that can be used for packet transmission processing, The bandwidth of the local bus 302 is further limited, and the decrease in data transmission speed becomes more remarkable.

一方、パケット通信の際には、トランスポート層プロトコルとして、TCPと並んでUDPもよく用いられる。UDPは、データを受信する端末装置から送信する端末装置への伝達確認応答を必要としない通信プロトコルであり、伝達確認応答により生じるオーバーヘッドがなく、プロトコル処理も簡素であるため、TCPと比較して伝送遅延が小さく、高速かつリアルタイム性が要求されるデータを伝送するときに適したものである。特許文献1によれば、オーディオ/ビジュアル(AV)ストリームなどのリアルタイム性が要求されるデータのパケットを伝送するために、ローカルバス302やメインCPU304を経由せずにアプリケーション処理回路305からLANコントローラに直接転送してUDP/IPにより送信を行うデータ送受信装置もある。   On the other hand, in packet communication, UDP is often used as a transport layer protocol alongside TCP. UDP is a communication protocol that does not require a transmission confirmation response from a terminal device that receives data to a terminal device that transmits data, has no overhead caused by the transmission confirmation response, and has a simple protocol process. The transmission delay is small, and it is suitable for transmitting data that requires high speed and real time. According to Patent Document 1, in order to transmit a packet of data such as an audio / visual (AV) stream that requires real-time characteristics, the application processing circuit 305 does not pass through the local bus 302 or the main CPU 304 to the LAN controller. There is also a data transmission / reception apparatus that directly transfers and transmits by UDP / IP.

図17は、従来技術に係る第2のネットワークインターフェース装置401を備えた端末装置400の構成を示すブロック図である。このネットワークインターフェース装置401は、特許文献1に記載されたデータ送受信装置に対応する構成を有している。なお、図17において図16と同じ構成要素については同じ符号を用い、説明を省略する。以下、図1に示すネットワークにおいて、図17の端末装置400からネットワーク700により接続されている端末装置600へUDP/IPによりデータを送信する場合を例に、特許文献1に記載されたデータ送受信装置のパケット送信処理手順の説明を行う。   FIG. 17 is a block diagram illustrating a configuration of a terminal device 400 including a second network interface device 401 according to the related art. The network interface device 401 has a configuration corresponding to the data transmitting / receiving device described in Patent Document 1. In FIG. 17, the same components as those in FIG. Hereinafter, in the network shown in FIG. 1, the data transmission / reception apparatus described in Patent Document 1 is exemplified by a case where data is transmitted by UDP / IP from the terminal apparatus 400 of FIG. The packet transmission processing procedure will be described.

図17の端末装置400は、図16のネットワークインターフェース装置301に代えて、ネットワークインターフェース装置401を備える。端末装置400において、アプリケーション処理回路305にて処理されたAVストリームなどのリアルタイム性が要求されるデータは、アプリケーション処理回路305からメインCPU304及びローカルバス302を介さずに直接ネットワークインターフェース装置401内のパケット化回路411に転送される。このとき、データはアプリケーション処理回路305内のバッファメモリ306を介することなくパケット化回路411に転送されてもよく、図17では説明の簡単化のためにバッファメモリ306の図示を省略する。パケット化回路411はメインCPU304の制御に従い、転送されたデータをパケット単位に分割し、分割されたデータに対してUDPプロトコル処理、IPプロトコル処理及びデータリンク層処理を実行した後、送信順序制御回路412へ転送する。一方、その他の制御情報などリアルタイム性が要求されないデータは、上述した図16のネットワークインターフェース装置301と同様にして、メインCPU304によりパケット化された後でネットワークインターフェース装置401内の送信FIFO314に格納され、次いで送信FIFO314から送信順序制御回路412まで転送される。送信順序制御回路412において、パケット化回路411から転送されたリアルタイム性が要求されるパケットは、優先パケットとして取り扱われる一方、送信FIFO314から転送されたリアルタイム性が要求されないパケットは、非優先パケットとして取り扱われる。送信順序制御回路412は、優先パケットのデータに要求されている送信速度を満足するように、優先パケットと非優先パケットの送信順序を並べ替える。その後、パケットは、物理層処理回路311にて物理層処理がなされ、ネットワーク700を介して端末装置600へ送信される。   A terminal device 400 of FIG. 17 includes a network interface device 401 instead of the network interface device 301 of FIG. In the terminal device 400, data that requires real-time processing such as an AV stream processed by the application processing circuit 305 is directly transmitted from the application processing circuit 305 to the packet in the network interface device 401 without passing through the main CPU 304 and the local bus 302. Is transferred to the conversion circuit 411. At this time, the data may be transferred to the packetizing circuit 411 without passing through the buffer memory 306 in the application processing circuit 305, and the buffer memory 306 is not shown in FIG. The packetizing circuit 411 divides the transferred data into packet units according to the control of the main CPU 304, and performs a UDP protocol process, an IP protocol process, and a data link layer process on the divided data, and then a transmission order control circuit 412. On the other hand, data that does not require real-time properties, such as other control information, is stored in the transmission FIFO 314 in the network interface device 401 after being packetized by the main CPU 304 in the same manner as the network interface device 301 in FIG. Next, the data is transferred from the transmission FIFO 314 to the transmission order control circuit 412. In the transmission order control circuit 412, a packet requested from the packetizing circuit 411 that requires real-time processing is handled as a priority packet, while a packet transferred from the transmission FIFO 314 that does not require real-time processing is handled as a non-priority packet. It is. The transmission order control circuit 412 rearranges the transmission order of the priority packet and the non-priority packet so as to satisfy the transmission rate required for the data of the priority packet. Thereafter, the physical layer processing is performed by the physical layer processing circuit 311 and the packet is transmitted to the terminal device 600 via the network 700.

特開2003−273920号公報。JP2003-273920A.

図17の構成のネットワークインターフェース装置401(すなわち特許文献1に開示された構成)では、図16の構成のネットワークインターフェース装置301において課題となっていた、メインCPU304の処理能力やパケット送信処理に使用できるローカルバス302の帯域幅に起因するデータの送信速度の低下を回避することが可能である。しかしながら、特許文献1の構成では、高速に伝送されるべきAVストリームなどのデータのパケットは、UDP/IPにより伝送が行われるものとされているが、UDP/IPによる伝送はパケットの再送などによってデータの伝送品質を補償する手段を持たないので、より高品質なデータ伝送を実現するためには、これらデータのパケットはTCP/IPにより伝送される必要がある。図1に示すネットワークにおいて、図17の端末装置400からネットワーク700により接続されている端末装置600へTCP/IPによりデータを送信する場合には、以下の処理手順が必要となる。   The network interface device 401 having the configuration shown in FIG. 17 (that is, the configuration disclosed in Patent Document 1) can be used for the processing capability and packet transmission processing of the main CPU 304, which are problems in the network interface device 301 having the configuration shown in FIG. It is possible to avoid a decrease in data transmission speed due to the bandwidth of the local bus 302. However, in the configuration of Patent Document 1, a packet of data such as an AV stream to be transmitted at high speed is transmitted by UDP / IP, but transmission by UDP / IP is performed by retransmission of the packet or the like. Since there is no means for compensating the data transmission quality, these data packets need to be transmitted by TCP / IP in order to realize higher quality data transmission. In the network shown in FIG. 1, when data is transmitted by TCP / IP from the terminal device 400 of FIG. 17 to the terminal device 600 connected by the network 700, the following processing procedure is required.

端末装置400はデータパケットを送信し、端末装置600は、そのデータパケットを誤りなく受信できた場合に、端末装置400に対してACKパケットを返信する。端末装置400のメインCPU304は、図16の従来例と同様の手順で、受信したACKパケットの処理を行う。ACKパケットを誤りなく受信したことによってデータパケットの伝達が確認できた場合、メインCPU304は、アプリケーション処理回路305に対してウインドウサイズ分の次のデータを送信するよう命令する。一方、パケットの受信誤りやネットワーク700上でのパケットロスなどによってデータパケットの伝送に失敗し、一定期間待ってもACKパケットが返信されてこない場合には、メインCPU304は、アプリケーション処理回路305に対して、該当データパケットを再送するよう命令する。再送されるデータは、上述した図17の構成におけるパケット送信手順と同様に、アプリケーション処理回路305からパケット化回路411に転送され、トランスポート層処理、ネットワーク層処理及びデータリンク層処理が再び行われた後、送信順序制御回路412及び物理層処理回路311を経て、ネットワーク700を介して端末装置600へ向けて再送される。   The terminal device 400 transmits a data packet, and the terminal device 600 returns an ACK packet to the terminal device 400 when the data packet can be received without error. The main CPU 304 of the terminal device 400 processes the received ACK packet in the same procedure as in the conventional example of FIG. When the transmission of the data packet can be confirmed by receiving the ACK packet without error, the main CPU 304 instructs the application processing circuit 305 to transmit the next data for the window size. On the other hand, if the transmission of the data packet fails due to a packet reception error or a packet loss on the network 700 and the ACK packet is not returned even after waiting for a certain period of time, the main CPU 304 notifies the application processing circuit 305. Command to retransmit the corresponding data packet. The data to be retransmitted is transferred from the application processing circuit 305 to the packetizing circuit 411 similarly to the packet transmission procedure in the configuration of FIG. 17 described above, and transport layer processing, network layer processing, and data link layer processing are performed again. Then, the data is retransmitted to the terminal device 600 via the network 700 via the transmission order control circuit 412 and the physical layer processing circuit 311.

以上、図17の構成のネットワークインターフェース装置401を内部に有する端末装置400においてTCP/IPによりデータの伝送を行う場合には、一度送信したデータパケットを伝達確認応答されるまで保持しておく機能をネットワークインターフェース装置401が持たないので、データパケットを再送するときには、データのパケット化など上位層の処理から再度行う必要がある。よって、図16の従来例の構成のように送信したパケットを伝達確認されるまでシステムメモリ303に保持しておく方法と比較して、逆に処理効率が悪く、伝送遅延の増大や、データの送信速度の低下を招くという課題が生じる。また、端末装置400において、データパケットの送受信を同時に行う場合、送信したデータパケットに対するACKパケットは、受信したデータパケットとともにメインCPU304によって逐次に処理される。ここで、端末装置400は、ACKパケットによって、送信したデータパケットの伝達確認がされないと次のデータパケットを送信することができないので、メインCPU304の処理能力やパケット受信処理に使用できるローカルバス302の帯域幅によってもデータの送信速度が低下するという課題を有する。   As described above, when data is transmitted by TCP / IP in the terminal device 400 having the network interface device 401 having the configuration shown in FIG. 17, the function of holding the data packet once transmitted until a transmission confirmation response is received. Since the network interface device 401 does not have, when retransmitting a data packet, it is necessary to start again from higher layer processing such as data packetization. Therefore, compared with the method of holding the transmitted packet in the system memory 303 until transmission is confirmed as in the configuration of the conventional example of FIG. 16, the processing efficiency is inferior, the transmission delay is increased, the data There arises a problem that the transmission speed is lowered. When the terminal device 400 simultaneously transmits and receives data packets, the ACK packet for the transmitted data packet is sequentially processed by the main CPU 304 together with the received data packet. Here, since the terminal device 400 cannot transmit the next data packet unless the transmission of the transmitted data packet is confirmed by the ACK packet, the processing capacity of the main CPU 304 and the local bus 302 that can be used for packet reception processing are not available. There is also a problem that the data transmission speed is lowered depending on the bandwidth.

本発明の目的は、以上の問題点を解決し、データのパケットを、高速かつ安定してネットワークに送信することが可能であるネットワークインターフェース装置を提供することにある。   An object of the present invention is to provide a network interface apparatus that can solve the above-described problems and can transmit data packets to a network at high speed and stably.

以上説明した従来の課題を解決するために、本発明のパケットを送受信するネットワークインターフェース装置は、
特定の通信コネクションのために送信される優先パケットを格納する第1の格納手段と、
上記優先パケット以外の送信される非優先パケットを格納する第2の格納手段と、
受信されたパケットから、上記優先パケットに対して返信されたACKパケットを分離するパケット分岐手段と、
上記分離されたACKパケットから所定の情報を抽出するACKパケット解析手段と、
上記抽出された情報に基づき上記第1の格納手段を制御する格納制御手段とを備えたことを特徴とする。
In order to solve the conventional problems described above, a network interface device for transmitting and receiving a packet according to the present invention includes:
First storage means for storing priority packets transmitted for a particular communication connection;
Second storage means for storing non-priority packets to be transmitted other than the priority packets;
A packet branching means for separating an ACK packet returned to the priority packet from the received packet;
ACK packet analysis means for extracting predetermined information from the separated ACK packet;
Storage control means for controlling the first storage means based on the extracted information.

上記ネットワークインターフェース装置において、上記優先パケットは、AVストリームデータのパケットであり、上記非優先パケットは、AVストリームデータ以外の一般データ及び制御情報のパケットであることを特徴とする。   In the network interface device, the priority packet is a packet of AV stream data, and the non-priority packet is a packet of general data and control information other than AV stream data.

また、上記ネットワークインターフェース装置は、上記優先パケットと上記非優先パケットとの両方を送信するとき、上記優先パケットを優先的に送信するようにパケットの送信順序を並べ替えるパケット送信順序調停手段をさらに備えたことを特徴とする。   The network interface device further includes a packet transmission order arbitration unit that rearranges the transmission order of the packets so that the priority packets are preferentially transmitted when transmitting both the priority packets and the non-priority packets. It is characterized by that.

さらに、上記ネットワークインターフェース装置において、上記パケット分岐手段は、上記受信されたパケットのIPヘッダに含まれる発信元端末装置IPアドレス、宛先端末装置IPアドレス及びプロトコル番号と、上記受信されたパケットのTCPヘッダに含まれる発信元ポート番号及び宛先ポート番号とのうち少なくとも一部の情報に基づいて、上記優先パケットに対して返信されたACKパケットを上記受信されたパケットから識別して分離することを特徴とする。   Further, in the network interface device, the packet branching means includes a source terminal device IP address, a destination terminal device IP address and a protocol number included in an IP header of the received packet, and a TCP header of the received packet. The ACK packet returned to the priority packet is identified and separated from the received packet based on at least a part of the source port number and the destination port number included in To do.

またさらに、上記ネットワークインターフェース装置において、
上記第1の格納手段は、複数の優先パケットをそれぞれ格納する複数の領域を備え、
上記ACKパケット解析手段は、上記ACKパケットのTCPヘッダに含まれる確認応答番号及びウインドウサイズの情報を抽出して上記格納制御手段に通知し、
上記格納制御手段は、上記第1の格納手段の各領域に特定の優先パケットが格納されているか否かと、上記各領域に格納された優先パケットが送信済みであるか否かとについての状態を管理する管理テーブルを有し、上記ACKパケット解析手段から転送された確認応答番号及びウインドウサイズの情報に基づいて上記管理テーブルを参照することにより、上記第1の格納手段の各領域に格納された特定の優先パケットを送信するか否かを決定するとともに、宛先への伝達が確認された優先パケットが格納されている上記第1の格納手段の領域を解放することを特徴とする。
Furthermore, in the network interface device,
The first storage means includes a plurality of areas each storing a plurality of priority packets,
The ACK packet analysis means extracts the acknowledgment number and window size information included in the TCP header of the ACK packet and notifies the storage control means,
The storage control means manages the status of whether or not a specific priority packet is stored in each area of the first storage means and whether or not the priority packet stored in each area has been transmitted. Specific information stored in each area of the first storage means by referring to the management table based on the acknowledgment number and window size information transferred from the ACK packet analyzing means. And determining whether or not to transmit the priority packet, and releasing the area of the first storage means in which the priority packet confirmed to be transmitted to the destination is stored.

また、上記ネットワークインターフェース装置は、複数の特定の通信コネクションのためにそれぞれ送信される複数の種類の優先パケットを処理するために、上記複数の特定の通信コネクション毎に上記第1の格納手段と上記格納制御手段とを備えたことを特徴とする。   The network interface device may process the first storage unit and the first storage unit for each of the plurality of specific communication connections in order to process a plurality of types of priority packets respectively transmitted for the plurality of specific communication connections. And a storage control means.

本発明によって、TCP/IPにより送信されるデータパケットについて、メインCPUの処理能力や、パケット送受信処理に使用できるローカルバスの帯域幅が制限されることに起因する送信速度の低下がなくなり、また、大容量のデータであっても、メインCPUの負荷を増大させずに処理することが可能である。加えて、ACKパケットをメインCPUではなくネットワークインターフェース装置内の専用手段によって処理し、送信バッファメモリに格納しているパケットを送信もしくは再送することにより、端末装置内の処理遅延時間を短縮することが可能である。以上の効果によれば、本発明におけるネットワークインターフェース装置を用いることにより高速かつ安定したデータの送信が可能となる。   According to the present invention, for data packets transmitted by TCP / IP, there is no reduction in transmission speed due to the limitation of the processing capacity of the main CPU and the bandwidth of the local bus that can be used for packet transmission / reception processing. Even large amounts of data can be processed without increasing the load on the main CPU. In addition, processing delay time in the terminal device can be shortened by processing the ACK packet not by the main CPU but by dedicated means in the network interface device and transmitting or retransmitting the packet stored in the transmission buffer memory. Is possible. According to the above effects, it is possible to transmit data at high speed and stably by using the network interface device of the present invention.

以下に、本発明の実施形態について、図面を参照しながら説明する。なお、図面の全体にわたり、同様の機能を有する構成要素には同一の符号を付与し、その繰り返しの説明は省略する。   Embodiments of the present invention will be described below with reference to the drawings. Note that throughout the drawings, components having similar functions are denoted by the same reference numerals, and repeated description thereof is omitted.

第1の実施形態.
図2は、本発明の第1の実施形態に係るネットワークインターフェース装置101を備えた端末装置100の構成を示すブロック図である。以下、図1に示すネットワークにおいて、図2のネットワークインターフェース装置101を内部に有する端末装置100から、ネットワーク700により接続されている端末装置600へ、TCP/IPによりAVストリームデータを送信する場合を例に、本発明の第1の実施形態におけるネットワークインターフェース装置101のパケット送信処理手順の説明を行う。
First embodiment.
FIG. 2 is a block diagram illustrating a configuration of the terminal device 100 including the network interface device 101 according to the first embodiment of the present invention. Hereinafter, in the network shown in FIG. 1, an example in which AV stream data is transmitted by TCP / IP from the terminal device 100 having the network interface device 101 in FIG. 2 to the terminal device 600 connected by the network 700 is described. Next, the packet transmission processing procedure of the network interface apparatus 101 in the first embodiment of the present invention will be described.

図2の端末装置100は、ネットワーク700を介して通信する機能を備えたオーディオ/ビジュアル(AV)機器やパーソナルコンピュータなどとして構成される。端末装置100は、LANコントローラとして動作するネットワークインターフェース装置101と、プログラム及びデータを格納するシステムメモリ103と、プログラムに従ってデータを処理するメインCPU104と、アプリケーション処理回路105とを内部に備え、これらの構成要素はローカルバス102によって互いに接続されている。ネットワークインターフェース装置101は、図16における構成要素311,312,313,314と同様の物理層処理回路111、データリンク層処理回路112、受信FIFO113及び送信FIFO114を備えたことに加えて、リアルタイム性が要求される特定の通信コネクションのためのデータの送信処理を実行するために設けられたパケット化回路115及び送信バッファメモリ124と、送信バッファメモリ124から転送されるデータパケットと送信FIFO114から転送されるデータパケットとの送信順序を並べ替えてデータリンク層処理回路112に転送するパケット送信順序調停回路125と、送信バッファメモリ124を介して送信されたデータパケットに関して受信された確認応答(ACK)パケットを処理するために設けられたパケット分岐回路121、ACKパケット解析回路122、送信バッファ制御回路123及びタイマ回路126とを備える。   The terminal device 100 of FIG. 2 is configured as an audio / visual (AV) device or a personal computer having a function of communicating via a network 700. The terminal device 100 internally includes a network interface device 101 that operates as a LAN controller, a system memory 103 that stores programs and data, a main CPU 104 that processes data according to the programs, and an application processing circuit 105. Elements are connected to each other by a local bus 102. The network interface device 101 includes a physical layer processing circuit 111, a data link layer processing circuit 112, a reception FIFO 113, and a transmission FIFO 114 similar to the components 311, 312, 313, and 314 in FIG. A packetizing circuit 115 and a transmission buffer memory 124 provided for executing a data transmission process for a specific communication connection requested, a data packet transferred from the transmission buffer memory 124, and a transmission FIFO 114. A packet transmission order arbitration circuit 125 that rearranges the transmission order of the data packets and transfers the data packets to the data link layer processing circuit 112, and an acknowledgment (ACK) packet received for the data packet transmitted through the transmission buffer memory 124. place Packet branch circuit 121 provided for, ACK packet analysis circuit 122, and a transmission buffer control circuit 123 and the timer circuit 126.

本実施形態のネットワークインターフェース装置101によれば、特定の通信コネクションのために送信されるAVストリームデータのパケットを格納する送信バッファメモリ124と、AVストリームデータ以外の送信されるパケットを格納する送信FIFO114と、受信されたパケットから、AVストリームデータのパケットに対して返信されたACKパケットを分離するパケット分岐回路121と、分離されたACKパケットから所定の情報を抽出するACKパケット解析回路122と、抽出された情報に基づき送信バッファメモリ124を制御する送信バッファ制御回路123とを備えたことを特徴とする。   According to the network interface apparatus 101 of the present embodiment, a transmission buffer memory 124 that stores packets of AV stream data transmitted for a specific communication connection, and a transmission FIFO 114 that stores packets to be transmitted other than AV stream data. A packet branching circuit 121 that separates an ACK packet returned to the AV stream data packet from the received packet, an ACK packet analysis circuit 122 that extracts predetermined information from the separated ACK packet, And a transmission buffer control circuit 123 that controls the transmission buffer memory 124 based on the received information.

以下、本実施形態の端末装置100の動作を説明する。図3は、図2のネットワークインターフェース装置101内におけるデータパケットの送信処理手順の概念を示す図である。図2において、端末装置100のアプリケーション処理回路105には、送信すべき入力信号としてAVストリームデータなどのリアルタイム性を必要とする特定の通信コネクションのためのデータが入力される。アプリケーション処理回路105は、送信すべきAVストリームデータに対して、アナログ信号からデジタル信号への変換やデータの圧縮及び符号化などの処理を実行し、処理後のAVストリームデータを、ローカルバス102を経由せずに直接にネットワークインターフェース装置101内のパケット化回路115に転送する。パケット化回路115はローカルバス102を介してメインCPU104に接続され、メインCPU304の制御に従って、アプリケーション処理回路105から転送されたデータをパケット単位に分割し、分割されたデータに対してTCPプロトコル処理、IPプロトコル処理及びデータリンク層処理を実行する。詳しくは、パケット化回路115は、アプリケーション処理回路105から転送された複数パケット分に相当するサイズを有するAVストリームデータをパケット単位に分割し、分割された各パケット単位のデータにTCPヘッダH3、IPヘッダH2及びMACヘッダH1をそれぞれ付加する。これらのヘッダH1,H2,H3の情報は、予め、ローカルバス102を介してメインCPU104から取得されている。データは、次いで、TCPヘッダH3、IPヘッダH2及びMACヘッダH1までが付加されたデータパケットの形式で送信バッファメモリ124に転送されて格納される。送信バッファメモリ124は、最大パケット長単位のサイズをそれぞれ有する複数の領域に分割されていて、これらの領域にデータパケットがそれぞれ格納される。   Hereinafter, the operation of the terminal device 100 of the present embodiment will be described. FIG. 3 is a diagram showing a concept of a data packet transmission processing procedure in the network interface apparatus 101 of FIG. In FIG. 2, data for a specific communication connection that requires real-time properties such as AV stream data is input to the application processing circuit 105 of the terminal device 100 as an input signal to be transmitted. The application processing circuit 105 performs processing such as conversion from analog signals to digital signals and data compression and encoding on the AV stream data to be transmitted, and the processed AV stream data is transferred to the local bus 102. The packet is directly transferred to the packetizing circuit 115 in the network interface apparatus 101 without going through. The packetizing circuit 115 is connected to the main CPU 104 via the local bus 102, and divides the data transferred from the application processing circuit 105 into packet units under the control of the main CPU 304, and performs TCP protocol processing on the divided data. IP protocol processing and data link layer processing are executed. Specifically, the packetizing circuit 115 divides the AV stream data having a size corresponding to a plurality of packets transferred from the application processing circuit 105 into packets, and adds the TCP header H3, IP to the divided packet data. A header H2 and a MAC header H1 are added. Information of these headers H1, H2, and H3 is acquired from the main CPU 104 via the local bus 102 in advance. The data is then transferred to and stored in the transmission buffer memory 124 in the form of a data packet to which the TCP header H3, IP header H2, and MAC header H1 are added. The transmission buffer memory 124 is divided into a plurality of areas each having a maximum packet length unit size, and data packets are stored in these areas.

パケット化回路115を設けることに代えて、データのパケット化は、送信バッファメモリ124において実行してもよい。図4は、図2のパケット化回路115及び送信バッファメモリ124に代えて設けられる、変形例の送信バッファメモリ124によるパケット化動作を示す概念図である。このとき、送信バッファメモリ124は、所定の最大パケット長単位のサイズをそれぞれ有する複数の領域に分割されていて、分割された各領域の先頭には、予めメインCPU104から取得されたTCPヘッダH3、IPヘッダH2及びMACヘッダH1の情報がそれぞれ格納されている。アプリケーション処理回路105から転送された、例えば4パケット分の長さからなるAVストリームデータはパケット単位D0〜D3に分割され、送信バッファメモリ124内の各領域に予め格納されているヘッダ部分の後ろに、順に格納される。このように、AVストリームデータをパケット化するためには、データを送信バッファメモリ124に格納する際に上記の手順によりパケット化を実行してもよい。また、さらなる代替方法として、TCPヘッダH3、IPヘッダH2及びMACヘッダH1の付加までの処理をアプリケーション処理回路105で行い、パケット化されたデータを直接に送信バッファメモリ124に転送してもよい。   Instead of providing the packetization circuit 115, data packetization may be performed in the transmission buffer memory 124. FIG. 4 is a conceptual diagram showing a packetization operation by the transmission buffer memory 124 according to a modified example provided in place of the packetization circuit 115 and the transmission buffer memory 124 of FIG. At this time, the transmission buffer memory 124 is divided into a plurality of areas each having a size of a predetermined maximum packet length unit, and a TCP header H3 acquired from the main CPU 104 in advance is provided at the head of each of the divided areas. Information on the IP header H2 and the MAC header H1 is stored. For example, AV stream data having a length of 4 packets transferred from the application processing circuit 105 is divided into packet units D0 to D3, and is placed behind the header portion stored in advance in each area in the transmission buffer memory 124. Are stored in order. Thus, in order to packetize the AV stream data, the packetization may be executed by the above procedure when the data is stored in the transmission buffer memory 124. As a further alternative method, processing up to the addition of the TCP header H3, the IP header H2, and the MAC header H1 may be performed by the application processing circuit 105, and the packetized data may be directly transferred to the transmission buffer memory 124.

図5は、図2のネットワークインターフェース装置101により送受信されるデータパケットの構成を示すデータフォーマットである。図5において、TCPヘッダH3はRFC793に定義され、IPヘッダH2はIPv4と呼ばれる形式のものでありRFC791に定義されているものである。また、MACヘッダH1の形式は、ネットワーク700の通信媒体により異なる。IPヘッダH2において、発信元端末装置IPアドレス及び宛先端末装置IPアドレスは、ネットワーク700内で端末装置を識別するために付与され、プロトコル番号は、トランスポート層プロトコルを識別するために付与されている。TCPヘッダH3において、発信元ポート番号及び宛先ポート番号は、アプリケーションやサービスを識別するために付与されている。   FIG. 5 is a data format showing a configuration of a data packet transmitted and received by the network interface apparatus 101 of FIG. In FIG. 5, the TCP header H3 is defined in RFC793, and the IP header H2 is in a format called IPv4 and is defined in RFC791. The format of the MAC header H1 varies depending on the communication medium of the network 700. In the IP header H2, the source terminal device IP address and the destination terminal device IP address are assigned to identify the terminal device in the network 700, and the protocol number is assigned to identify the transport layer protocol. . In the TCP header H3, the source port number and the destination port number are assigned to identify applications and services.

再び図2を参照すると、アプリケーション処理回路105によって処理されたデータを、パケット化回路115を介して送信バッファメモリ124へ格納するタイミングは、送信バッファメモリ124に接続され、かつローカルバス102を介してアプリケーション処理回路105に接続された送信バッファ制御回路123により決定される。送信バッファ制御回路123はまた、送信バッファメモリ124に格納されたデータパケットが宛先の端末装置600に送信されて、このデータパケットに関して端末装置600からACKパケットが受信されたときにこのACKパケットを識別するために(すなわち、AVストリームデータの通信コネクションを特定するために)、図5のIPヘッダH2に含まれる発信元端末装置IPアドレス、宛先端末装置IPアドレス及びプロトコル番号と、図5のTCPヘッダH3に含まれる発信元ポート番号及び宛先ポート番号とのうち一部又はすべてを、ローカルバス102を介してパケット分岐回路121に予め通知しておく。この通知機能は、メインCPU104が直接にパケット分岐回路121に対して行ってもよい。送信バッファ制御回路123はさらに、送信バッファメモリ124に格納されているAVストリームデータのパケットに対する送信起動を実行し(すなわち、パケットを送信し、また再送するように指示し)、これにより、送信されるパケット数をパケット送信順序調停回路125に通知するとともに、そのパケット数の分のデータパケットを送信バッファメモリ124からパケット送信順序調停回路125に転送させる。送信バッファ制御回路123が送信バッファメモリ124内のパケットを制御する動作については、後でさらに詳細に説明する。パケット送信順序調停回路125には、上述の処理を経て送信バッファメモリ124から転送されたAVストリームデータのパケットと、図16の従来例における手順と同様にメインCPU104による処理を経て送信FIFO114から転送された制御情報など一般データのパケットとが入力される。ここで、パケット送信順序調停回路125は、送信するように指示されたパケット数の分のAVストリームデータのパケットを優先的に連続して送信できるよう、入力されたパケットの送信順序を並べ替えてデータリンク層処理回路112に転送する。その後、送信順序が並べ替えられたパケットは、データリンク層処理回路112にてデータリンク層処理が行われ、物理層処理回路111にて物理層処理が行われ、ネットワーク700を介して端末装置600に送信される。これにより、発信元となる端末装置100から宛先となる端末装置600に、AVストリームデータなどのリアルタイム性が要求されるデータパケットを送信することができる。   Referring to FIG. 2 again, the timing at which the data processed by the application processing circuit 105 is stored in the transmission buffer memory 124 via the packetizing circuit 115 is connected to the transmission buffer memory 124 and via the local bus 102. This is determined by the transmission buffer control circuit 123 connected to the application processing circuit 105. The transmission buffer control circuit 123 also identifies the ACK packet when the data packet stored in the transmission buffer memory 124 is transmitted to the destination terminal device 600 and an ACK packet is received from the terminal device 600 regarding this data packet. 5 (that is, for specifying a communication connection of AV stream data), the source terminal device IP address, the destination terminal device IP address and the protocol number included in the IP header H2 of FIG. 5, and the TCP header of FIG. Part or all of the source port number and the destination port number included in H3 are notified to the packet branch circuit 121 via the local bus 102 in advance. This notification function may be performed directly by the main CPU 104 on the packet branch circuit 121. The transmission buffer control circuit 123 further performs transmission activation for the packet of the AV stream data stored in the transmission buffer memory 124 (that is, instructs to transmit and retransmit the packet), so that the transmission is performed. The packet transmission order arbitration circuit 125 is notified of the number of packets to be transmitted, and data packets corresponding to the number of packets are transferred from the transmission buffer memory 124 to the packet transmission order arbitration circuit 125. The operation in which the transmission buffer control circuit 123 controls the packet in the transmission buffer memory 124 will be described in detail later. The packet transmission order arbitration circuit 125 transfers the AV stream data packet transferred from the transmission buffer memory 124 through the above-described processing and the transmission FIFO 114 through the processing by the main CPU 104 in the same manner as in the conventional example of FIG. General data packets such as control information are input. Here, the packet transmission order arbitration circuit 125 rearranges the transmission order of the input packets so that the AV stream data packets corresponding to the number of packets instructed to be transmitted can be preferentially transmitted continuously. Transfer to the data link layer processing circuit 112. Thereafter, the packets in which the transmission order is rearranged are subjected to data link layer processing by the data link layer processing circuit 112, physical layer processing is performed by the physical layer processing circuit 111, and the terminal device 600 via the network 700. Sent to. As a result, a data packet such as AV stream data that requires real-time performance can be transmitted from the terminal device 100 serving as the transmission source to the terminal device 600 serving as the destination.

一方、端末装置100から送信されたAVストリームデータのパケットを受信した端末装置600はパケットの受信処理を行い、パケットを誤りなく受信できた場合には、端末装置100に対して伝達確認応答のためのACKパケットを返信する。   On the other hand, the terminal device 600 that has received the AV stream data packet transmitted from the terminal device 100 performs a packet reception process. ACK packet is returned.

端末装置100は、当該端末装置100を宛先として送信されたデータパケットや、端末装置600から端末装置100に返信されたACKパケットを受信する。受信されたパケットは、物理層処理回路111にて物理層処理が行われ、データリンク層処理回路112にてデータリンク層処理が行われ、パケット分岐回路121に転送される。図5のデータフォーマットを参照して、パケット分岐回路121の処理を説明する。パケット分岐回路121は、データリンク層処理回路112により転送された図5のデータフォーマットを有する受信パケットから、IPヘッダH2に含まれる発信元端末装置IPアドレス、宛先端末装置IPアドレス及びプロトコル番号と、TCPヘッダH3に含まれる発信元ポート番号及び宛先ポート番号とのうち一部又はすべての情報を読み出して、この読み出された情報を、送信バッファ制御回路123によって予め通知された情報と比較することによって、受信されたパケットが、送信バッファメモリ124を用いて送信したAVストリームデータに対するACKパケットであるか否かを識別する。パケット分岐回路121は、該当するACKパケットをACKパケット解析回路122に分離させて転送し、その他のパケットを受信FIFO113に転送する。ここで、受信したパケットが、端末装置100から送信したAVストリームデータのパケットに対するACKパケットである場合、受信したパケットの伝送方向は送信したAVストリームデータのパケットの伝送方向と逆になるので、受信したパケットの発信元端末装置IPアドレスは端末装置600のIPアドレスであり、宛先端末装置IPアドレスは端末装置100のIPアドレスであり、発信元ポート番号は端末装置600におけるポート番号であり、宛先ポート番号は端末装置100におけるポート番号である。受信FIFO113に転送されるパケットに係るこれ以降の処理は、図16の従来例の構成と同様にメインCPU104によって行われる。一方、ACKパケット解析回路122は、パケット分岐回路122から転送されたACKパケットから、図5に示すTCPヘッダ内の、次に送信すべきデータパケットの番号を示す確認応答番号の情報と、端末装置600が受信可能なデータサイズを示すウインドウサイズの情報とを抽出し、これらの情報を送信バッファ制御回路123に転送する。   The terminal device 100 receives a data packet transmitted with the terminal device 100 as a destination and an ACK packet returned from the terminal device 600 to the terminal device 100. The received packet is subjected to physical layer processing by the physical layer processing circuit 111, subjected to data link layer processing by the data link layer processing circuit 112, and transferred to the packet branch circuit 121. The processing of the packet branch circuit 121 will be described with reference to the data format of FIG. The packet branching circuit 121 transmits the source terminal device IP address, the destination terminal device IP address and the protocol number included in the IP header H2 from the received packet having the data format of FIG. 5 transferred by the data link layer processing circuit 112. Reading part or all of the source port number and the destination port number included in the TCP header H3 and comparing the read information with information notified in advance by the transmission buffer control circuit 123. Thus, it is identified whether or not the received packet is an ACK packet for the AV stream data transmitted using the transmission buffer memory 124. The packet branching circuit 121 separates and transfers the corresponding ACK packet to the ACK packet analysis circuit 122, and transfers other packets to the reception FIFO 113. Here, when the received packet is an ACK packet for the AV stream data packet transmitted from the terminal device 100, the transmission direction of the received packet is opposite to the transmission direction of the transmitted AV stream data packet. The source terminal IP address of the received packet is the IP address of the terminal device 600, the destination terminal device IP address is the IP address of the terminal device 100, the source port number is the port number in the terminal device 600, and the destination port The number is a port number in the terminal device 100. Subsequent processing relating to the packet transferred to the reception FIFO 113 is performed by the main CPU 104 as in the configuration of the conventional example of FIG. On the other hand, the ACK packet analysis circuit 122 receives, from the ACK packet transferred from the packet branch circuit 122, information on an acknowledgment number indicating the number of the data packet to be transmitted next in the TCP header shown in FIG. The window size information indicating the receivable data size 600 is extracted, and the information is transferred to the transmission buffer control circuit 123.

図6は、送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の動作を説明するための概念図である。送信バッファ制御回路123は、最大パケット長単位に分割された送信バッファメモリ124の各領域を管理する。詳しくは、この管理処理は、送信バッファメモリ124の各領域に特定のパケットが格納されているか否かと、各領域に格納されたパケットが送信済みであるか否かとについての状態を管理することを含み、管理処理において、送信バッファ制御回路123は、ACKパケット解析回路122から転送された確認応答番号とウインドウサイズの情報に基づいて管理テーブル127を参照することにより、送信バッファメモリ124に格納されているAVストリームデータのパケットのうちの送信される(又は再送される)パケット数を決定し、決定されたパケット数の分のデータパケットを送信させるように送信バッファメモリ124に指示し、伝達確認応答されたデータパケットが格納されている送信バッファメモリ124内の領域を解放し、解放された領域に新たなデータパケットを格納させる。上記各処理を行うために、送信バッファ制御回路123は、図6に示すような、送信バッファメモリ124の各領域の状態を管理する管理テーブル127を持つ。管理テーブル127は、分割された送信バッファメモリ124の各領域の領域番号A0乃至A19と、各領域に格納されているパケットのシーケンス番号と、宛先端末装置に送信済みであって、その宛先端末装置からの伝達確認応答を待機中のパケットのうちの先頭のパケットが格納されている領域を示す確認応答待ち位置ポインタP1と、次に送信すべきパケット(すなわち、送信バッファメモリ124に格納されて、まだ1度も送信されていないパケット)のうちの先頭のパケットが格納されている領域を示す次回送信位置ポインタP2と、次に送信バッファメモリ124へパケットを格納するときの先頭となる領域を示す格納開始位置ポインタP3との情報を含む。各領域番号A0乃至A19は、送信バッファメモリ124の各領域の先頭アドレスと1対1に対応している。送信バッファメモリ124はリングバッファと呼ばれる形式であり、図6に示すように送信バッファメモリ124が領域番号A0からA19まで20個の領域に分割されている場合、送信バッファメモリ124の最後尾である領域番号A19の領域がアクセスされた次は、送信バッファメモリ124の先頭である領域番号A0の領域がアクセスされる。   FIG. 6 is a conceptual diagram for explaining the operation of the management table 127 and the transmission buffer memory 124 in the transmission buffer control circuit 123. The transmission buffer control circuit 123 manages each area of the transmission buffer memory 124 divided into the maximum packet length units. Specifically, this management process manages the status of whether or not a specific packet is stored in each area of the transmission buffer memory 124 and whether or not the packet stored in each area has been transmitted. In the management process, the transmission buffer control circuit 123 is stored in the transmission buffer memory 124 by referring to the management table 127 based on the acknowledgment number transferred from the ACK packet analysis circuit 122 and the window size information. The number of transmitted (or retransmitted) packets among the AV stream data packets is determined, the transmission buffer memory 124 is instructed to transmit data packets corresponding to the determined number of packets, and the transmission confirmation response The area in the transmission buffer memory 124 in which the received data packet is stored is released. , And stores the new data packet to the freed space. In order to perform the above processes, the transmission buffer control circuit 123 has a management table 127 for managing the state of each area of the transmission buffer memory 124 as shown in FIG. The management table 127 includes the area numbers A0 to A19 of each area of the divided transmission buffer memory 124, the sequence number of the packet stored in each area, and the destination terminal apparatus that has been transmitted. The acknowledgment waiting position pointer P1 indicating the area where the first packet among the packets waiting for the transmission acknowledgment from is stored, and the packet to be transmitted next (that is, stored in the transmission buffer memory 124, The next transmission position pointer P2 indicating the area in which the first packet is stored, and the area to be the head when the packet is next stored in the transmission buffer memory 124 Information on the storage start position pointer P3 is included. Each area number A0 to A19 has a one-to-one correspondence with the top address of each area of the transmission buffer memory 124. The transmission buffer memory 124 has a format called a ring buffer. When the transmission buffer memory 124 is divided into 20 areas from area numbers A0 to A19 as shown in FIG. 6, it is the tail of the transmission buffer memory 124. After the area number A19 is accessed, the area number A0, which is the head of the transmission buffer memory 124, is accessed.

図6は、ある時点での送信バッファメモリ124の状態も併せて示している。ここでは、シーケンス番号S1からS18を有するデータパケットが、送信バッファメモリ124内の領域番号A1からA18の領域に格納されている。このうち、シーケンス番号S1乃至S15のパケットは、既に少なくとも一度は端末装置600に送信されていて、ACKパケットにより伝達確認応答されるまで送信バッファメモリ124に保持されているパケットである。一方、シーケンス番号S16乃至S18のパケットは、初回の送信を待っているパケットである。このとき、送信バッファ制御回路123に含まれる管理テーブル127内で、確認応答待ち位置ポインタP1は、確認応答を待つパケットの先頭であるシーケンス番号S1のパケットが格納されている領域番号A1を特定し、次回送信位置ポインタP2は、初回の送信を待つパケットの先頭であるシーケンス番号S16のパケットが格納されている領域番号A16を特定し、格納開始位置ポインタP3は、パケットが格納されていない領域の先頭である領域番号A19を特定することとなる。   FIG. 6 also shows the state of the transmission buffer memory 124 at a certain time. Here, data packets having sequence numbers S 1 to S 18 are stored in areas of area numbers A 1 to A 18 in the transmission buffer memory 124. Among these, packets with sequence numbers S1 to S15 are packets that have been transmitted to the terminal device 600 at least once and are held in the transmission buffer memory 124 until a transmission confirmation response is received by an ACK packet. On the other hand, the packets with sequence numbers S16 to S18 are packets waiting for the first transmission. At this time, in the management table 127 included in the transmission buffer control circuit 123, the confirmation response waiting position pointer P1 specifies the area number A1 in which the packet of the sequence number S1 that is the head of the packet waiting for the confirmation response is stored. The next transmission position pointer P2 specifies the area number A16 in which the packet of the sequence number S16 that is the head of the packet waiting for the first transmission is stored, and the storage start position pointer P3 is an area in which no packet is stored. The leading region number A19 is specified.

ここで、受信したACKパケットにより通知されたウインドウサイズが最大パケット長のパケットで15パケット分であり、確認応答番号がシーケンス番号S3であったとする。まず、送信バッファ制御回路123は、通知された確認応答番号が、確認応答待ち位置ポインタP1が示す領域にあるパケットのシーケンス番号より大きく、かつ、次回送信位置ポインタP2が示す領域にあるパケットのシーケンス番号以下であることを確認する。これは、伝達確認応答を待つデータパケットに対するACKパケットか否かを判別するためであり、パケット伝送経路であるネットワーク700の状態などに起因して受信順序が入れ替わり不要となったACKパケットや、端末装置600が再送したことによって重複しているACKパケットを破棄する。上記の例では、ACKパケットにより通知された確認応答番号はS3であり、確認応答待ち位置ポインタP1が示す領域にあるパケットのシーケンス番号はS1であり、次回送信位置ポインタP2が示す領域にあるパケットのシーケンス番号はS16であるので、受信したACKパケットは、送信バッファメモリ124を介して送信されて伝達確認応答を待機中であるデータパケットに対するACKパケットであると判別される。   Here, it is assumed that the window size notified by the received ACK packet is 15 packets with the maximum packet length, and the confirmation response number is the sequence number S3. First, the transmission buffer control circuit 123 determines that the notified acknowledgment number is larger than the sequence number of the packet in the area indicated by the acknowledgment waiting position pointer P1 and the packet sequence in the area indicated by the next transmission position pointer P2. Confirm that it is less than the number. This is to determine whether or not the packet is an ACK packet for a data packet waiting for a transmission confirmation response, and the ACK packet that has become unnecessary due to a change in the reception order due to the state of the network 700 as a packet transmission path, etc. The ACK packet that is duplicated due to retransmission by the apparatus 600 is discarded. In the above example, the acknowledgment number notified by the ACK packet is S3, the sequence number of the packet in the area indicated by the acknowledgment waiting position pointer P1 is S1, and the packet in the area indicated by the next transmission position pointer P2 Since the sequence number is S16, it is determined that the received ACK packet is an ACK packet for a data packet that is transmitted via the transmission buffer memory 124 and is waiting for a transmission confirmation response.

受信したACKパケットが、送信バッファメモリ124を介して送信されて伝達確認応答を待機中であるデータパケットに対するものであると判別された場合、送信バッファ制御回路123は、通知された確認応答番号とウインドウサイズに基づき、送信バッファメモリ124に格納されているAVストリームデータのパケットのうちの送信されるパケット数の決定と、送信バッファメモリ124からパケット送信順序調停回路125へのパケットの転送を以下の手順で行う。端末装置600は、端末装置100が次に送信すべきデータパケットのシーケンス番号を確認応答番号として端末装置100に通知している。これを言い換えると、確認応答番号は、端末装置600が次に受信したいパケットのシーケンス番号を示したものである。確認応答番号としてシーケンス番号S3が通知された場合、既に送信したシーケンス番号S1とS2のパケットは、端末装置600への伝達が確認できたことになる。一方、シーケンス番号S3からS15のパケットは、端末装置600への伝達が未だ確認できていない。送信バッファ制御回路123は、通知された確認応答番号とウインドウサイズに基づき、送信すべきパケット数を決定する。ここで、ウインドウサイズは、ACKパケットによる伝達確認応答を待たずに送信できるデータのサイズを示したものであるので、上記の例の場合、通知されたウインドウサイズが15パケット分であったとしても、新たに送信できるのは、伝達確認応答がされていない13パケット分を除く2パケット分となる。よって、送信バッファ制御回路123は、管理テーブル127の次回送信位置ポインタP2が示す領域から2パケット分の領域に格納されている、シーケンス番号S16とS17のパケットに対して送信起動を実行し、パケットは、送信バッファメモリ124からパケット送信順序調停回路125に転送される。一般に、確認応答番号、シーケンス番号、ウインドウサイズはバイト単位で表現されるので、送信可能なデータバイト数は、ウインドウサイズから、次回送信位置ポインタP2が示す領域に格納されているパケットのシーケンス番号と確認応答番号が示すシーケンス番号の差を引いた数で求めることができる。つまり、新たに送信できるのは、次回送信位置ポインタP2が示す領域に格納されているパケットのシーケンス番号に対応するデータから、確認応答番号が示すシーケンス番号とウインドウサイズとの和で示されるシーケンス番号未満のシーケンス番号に対応するデータまでである。送信バッファメモリ124内のデータはバイト単位ではなく最大パケット長単位で管理されているので、送信バッファ制御回路123は、シーケンス番号と最大パケット長に基づいて送信パケット数を決定することとなる。パケット転送後、管理テープル127の次回送信位置ポインタP2は、シーケンス番号S18のパケットが格納されている領域番号A18に対応する場所を特定するように変化し、送信したデータパケットに対するACKパケットを待機するためのタイマ回路126がリセットされて、計時を0から開始する。送信バッファ制御回路123は、送信されるパケット数をパケット送信順序調停回路125に通知し、パケット送信順序調停回路125は、通知されたパケット数の、送信バッファメモリ124から転送されたパケットを連続的に優先して送信できるようにする。   If it is determined that the received ACK packet is for a data packet that has been transmitted through the transmission buffer memory 124 and is waiting for a transmission confirmation response, the transmission buffer control circuit 123 determines whether the received confirmation response number and Based on the window size, the determination of the number of packets to be transmitted among the AV stream data packets stored in the transmission buffer memory 124 and the transfer of packets from the transmission buffer memory 124 to the packet transmission order arbitration circuit 125 are as follows. Follow the procedure. The terminal device 600 notifies the terminal device 100 of the sequence number of the data packet to be transmitted next by the terminal device 100 as an acknowledgment number. In other words, the acknowledgment number indicates the sequence number of the packet that the terminal device 600 wants to receive next. When the sequence number S3 is notified as the confirmation response number, transmission of the packets having the sequence numbers S1 and S2 that have already been transmitted to the terminal device 600 has been confirmed. On the other hand, transmission of the packets with sequence numbers S3 to S15 to the terminal device 600 has not been confirmed yet. The transmission buffer control circuit 123 determines the number of packets to be transmitted based on the notified acknowledgment number and window size. Here, since the window size indicates the size of data that can be transmitted without waiting for the transmission confirmation response by the ACK packet, in the case of the above example, even if the notified window size is 15 packets The new transmission can be performed for 2 packets excluding 13 packets for which no transmission confirmation response has been made. Therefore, the transmission buffer control circuit 123 executes transmission activation for the packets of sequence numbers S16 and S17 stored in the area for two packets from the area indicated by the next transmission position pointer P2 in the management table 127, and the packet Is transferred from the transmission buffer memory 124 to the packet transmission order arbitration circuit 125. Generally, since the acknowledgment number, sequence number, and window size are expressed in bytes, the number of data bytes that can be transmitted is determined from the window size and the sequence number of the packet stored in the area indicated by the next transmission position pointer P2. It can be obtained by subtracting the difference between the sequence numbers indicated by the confirmation response numbers. That is, the sequence number indicated by the sum of the sequence number indicated by the acknowledgment number and the window size can be newly transmitted from the data corresponding to the sequence number of the packet stored in the area indicated by the next transmission position pointer P2. Up to data corresponding to a sequence number of less than. Since the data in the transmission buffer memory 124 is managed not in units of bytes but in units of maximum packet length, the transmission buffer control circuit 123 determines the number of transmission packets based on the sequence number and the maximum packet length. After the packet transfer, the next transmission position pointer P2 of the management table 127 changes so as to specify the location corresponding to the area number A18 in which the packet of the sequence number S18 is stored, and waits for the ACK packet for the transmitted data packet. The timer circuit 126 for resetting is reset and starts counting from zero. The transmission buffer control circuit 123 notifies the packet transmission order arbitration circuit 125 of the number of packets to be transmitted, and the packet transmission order arbitration circuit 125 continuously transmits the packets transferred from the transmission buffer memory 124 for the notified number of packets. Priority is given to transmission.

次に、送信バッファ制御回路123は、伝達確認応答されたAVストリームデータのパケットが格納されている送信バッファメモリ124内の領域の解放を行う。通知された確認応答番号S3によって、端末装置600へ伝達されたことが確認できたシーケンス番号S1とS2のパケットが格納されていた領域は解放される。領域の解放は、管理テーブル127の確認応答待ち位置ポインタP1を、確認応答番号により通知されたシーケンス番号のパケットが格納されている場所を特定するように変化させることにより行う。上記の例では、確認応答番号としてシーケンス番号S3が通知されているので、送信バッファメモリ124の領域番号A1を特定していた確認応答待ち位置ポインタP1を、シーケンス番号S3のパケットが格納されている領域番号A3を特定するように変化させる。   Next, the transmission buffer control circuit 123 releases an area in the transmission buffer memory 124 in which the packet of the AV stream data that has been acknowledged is transmitted. The area in which the packets of the sequence numbers S1 and S2 that have been confirmed to be transmitted to the terminal device 600 by the notified confirmation response number S3 are stored is released. The area is released by changing the confirmation response waiting position pointer P1 of the management table 127 so as to specify the location where the packet of the sequence number notified by the confirmation response number is stored. In the above example, since the sequence number S3 is notified as the acknowledgment number, the packet of the sequence number S3 is stored in the acknowledgment waiting position pointer P1 that has specified the area number A1 of the transmission buffer memory 124. It changes so that area number A3 may be specified.

また、ACKパケットが所定時間内に到着せずにACKパケット待機時間がタイムアウトとなった場合、送信バッファ制御回路123は、確認応答待ち位置ポインタP1が示す領域に格納されているパケットから次回送信位置ポインタP2が示す領域の1つ前に示す領域に格納されているパケットまでに対して再度送信起動を実行し、パケットの再送を行う。パケット再送時には、ACKパケット待機時間を計時するためのタイマ126はリセットされる。   If the ACK packet wait time has timed out without arrival of the ACK packet within the predetermined time, the transmission buffer control circuit 123 starts the next transmission position from the packet stored in the area indicated by the acknowledgment wait position pointer P1. Transmission activation is executed again up to the packet stored in the area indicated immediately before the area indicated by the pointer P2, and the packet is retransmitted. At the time of packet retransmission, the timer 126 for measuring the ACK packet waiting time is reset.

送信バッファ制御回路123は、データ送信中、管理テーブル127の確認応答待ち位置ポインタP1と格納開始位置ポインタP3とを常に比較している。図6に示すように、データパケットが格納されている送信バッファメモリ124の領域は、確認応答待ち位置ポインタP1により特定される領域から始まる。確認応答待ち位置ポインタP1が特定する場所と格納開始位置ポインタP3が特定する場所が異なれば、送信バッファ制御回路123は、送信バッファメモリ124に空き領域があると判断し、アプリケーション処理回路105から送信バッファメモリ124へのデータの格納を許可し、ローカルバス102を介してアプリケーション処理回路105にデータの転送を指示する。データが格納された場合、それに応じて格納開始位置ポインタP3が特定する場所も更新される。一方、2つのポインタP1,P3により特定される場所が一致し、かつ、次回送信位置ポインタP2により特定される場所がそれに一致しなければ、送信バッファ制御回路123は、送信バッファメモリ124に空き領域がないと判断し、送信バッファメモリ124のオーバーフローを防ぐため、アプリケーション処理回路105からのデータの格納を受け付けないようにする。このため、管理テーブル127の確認応答待ち位置ポインタP1を、確認応答番号により通知されたシーケンス番号のパケットが格納されている場所を特定するように変化させることで、確認応答されたパケットが格納されていた領域へのデータの上書きを許可し、結果として、送信バッファメモリ124の領域を解放したことと同じになる。また、3つのポインタP1,P2,P3により特定される場所がすべて一致する場合には、送信バッファメモリ124は空の状態であるので、データの格納を許可する。   The transmission buffer control circuit 123 constantly compares the confirmation response waiting position pointer P1 and the storage start position pointer P3 in the management table 127 during data transmission. As shown in FIG. 6, the area of the transmission buffer memory 124 in which the data packet is stored starts from the area specified by the acknowledgment response position pointer P1. If the location specified by the confirmation response waiting position pointer P1 is different from the location specified by the storage start position pointer P3, the transmission buffer control circuit 123 determines that there is a free space in the transmission buffer memory 124 and transmits from the application processing circuit 105. The storage of data in the buffer memory 124 is permitted, and the application processing circuit 105 is instructed to transfer data via the local bus 102. When data is stored, the location specified by the storage start position pointer P3 is also updated accordingly. On the other hand, if the location specified by the two pointers P1 and P3 matches and the location specified by the next transmission position pointer P2 does not match it, the transmission buffer control circuit 123 stores an empty area in the transmission buffer memory 124. In order to prevent the transmission buffer memory 124 from overflowing, the storage of data from the application processing circuit 105 is not accepted. Therefore, the acknowledged response packet is stored by changing the acknowledgment wait position pointer P1 of the management table 127 so as to specify the location where the packet of the sequence number notified by the acknowledgment number is stored. Overwriting the data in the previously stored area is permitted, and as a result, the area of the transmission buffer memory 124 is released. If all the locations specified by the three pointers P1, P2, and P3 match, the transmission buffer memory 124 is empty, so that data storage is permitted.

以上のように、送信バッファ制御回路123は、送信バッファメモリ124の状態を管理する管理テーブル127を用いて、送信バッファメモリ124に格納されているAVストリームデータのパケットのうちの送信されるパケット数の決定と、伝達確認応答されたAVストリームデータのパケットが格納されている送信バッファメモリ124内の領域の解放とを実行する。図7は、図6の状態からデータパケットS1,S2を送信した後の送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の状態を示す概念図である。図7は、送信バッファ制御回路123が、ACKパケットにより通知された情報に基づき、図6の状態にあった送信バッファメモリ124を制御した後の状態を示している。送信バッファ制御回路123は、送信バッファメモリ124に格納されているAVストリームデータのパケットのうちの送信されるパケット数を決定する処理と、伝達確認応答されたAVストリームデータのパケットが格納されている送信バッファメモリ124内の領域を解放する処理とを順に実行してもよく、それに代わって2つの処理を並列に実行してもよい。   As described above, the transmission buffer control circuit 123 uses the management table 127 that manages the state of the transmission buffer memory 124, and the number of packets to be transmitted among the AV stream data packets stored in the transmission buffer memory 124. And the release of the area in the transmission buffer memory 124 in which the packet of the AV stream data that has been acknowledged is transmitted. FIG. 7 is a conceptual diagram showing the state of the management table 127 and the transmission buffer memory 124 in the transmission buffer control circuit 123 after the data packets S1 and S2 are transmitted from the state of FIG. FIG. 7 shows a state after the transmission buffer control circuit 123 controls the transmission buffer memory 124 in the state of FIG. 6 based on the information notified by the ACK packet. The transmission buffer control circuit 123 stores processing for determining the number of packets to be transmitted among the AV stream data packets stored in the transmission buffer memory 124, and AV stream data packets that have been acknowledged for transmission. The process of releasing the area in the transmission buffer memory 124 may be executed in order, or two processes may be executed in parallel instead.

以上説明した送信バッファ制御回路123による処理を、図11乃至図14のフローチャートに示す。図11乃至図13は、送信バッファ制御回路123によって実行される第1の送信バッファ制御処理を示すフローチャートである。この第1の送信バッファ制御処理では、送信バッファメモリ124に格納されたデータパケットの送信及び再送と、領域の解放とを行う。図11のステップS1において、送信バッファ制御回路123は、ACKパケットが端末装置100に到着し、そのACKパケット内の確認応答番号及びウィンドウサイズの情報がACKパケット解析回路122から転送されたか否かを判断し、YESのときはステップS2に進み、NOのときはステップS9に進む。ステップS2において、確認応答番号が、確認応答待ち位置ポインタP1によって示される領域にあるパケットのシーケンス番号より大きいか否かが判断され、ステップS3において、確認応答番号が、次回送信位置ポインタP2によって示される領域にあるパケットのシーケンス番号以下であるか否かが判断され、ステップS2,S3の両方ともYESであるときはステップS4のパケット送信処理を実行し、その少なくとも一方がNOであるときはステップS8に進む。   The processing by the transmission buffer control circuit 123 described above is shown in the flowcharts of FIGS. 11 to 13 are flowcharts showing the first transmission buffer control process executed by the transmission buffer control circuit 123. In the first transmission buffer control process, the data packet stored in the transmission buffer memory 124 is transmitted and retransmitted, and the area is released. In step S <b> 1 of FIG. 11, the transmission buffer control circuit 123 determines whether or not the ACK packet has arrived at the terminal device 100 and the acknowledgment number and window size information in the ACK packet have been transferred from the ACK packet analysis circuit 122. If YES, the process proceeds to step S2, and if NO, the process proceeds to step S9. In step S2, it is determined whether or not the acknowledgment number is larger than the sequence number of the packet in the area indicated by the acknowledgment waiting position pointer P1, and in step S3, the acknowledgment number is indicated by the next transmission position pointer P2. It is determined whether or not it is equal to or less than the sequence number of the packet in the area to be received. When both steps S2 and S3 are YES, the packet transmission process of step S4 is executed, and when at least one of them is NO Proceed to S8.

図12は、パケット送信処理S4のサブルーチンを示すフローチャートである。図12のステップS11において、送信バッファ制御回路123は、ポインタP1,P2,P3が示す領域がすべて一致するか否かを判断し、YESのときは図11のフローに戻り、NOのときはステップS12に進む。前述のように、送信バッファメモリ124が空の場合は、3つのポインタP1,P2,P3によって特定される場所が一致する。ステップS12において、送信すべきパケット数を示すパラメータNを0に初期化し、送信されるバイト数を示すパラメータBを0に初期化する。次いでステップS13において、受信されたACKパケットによって通知されたウィンドウサイズと確認応答番号との和が、次回送信位置ポインタP2により示される領域にあるパケットのシーケンス番号と送信されるバイト数のパラメータBとの和未満であるか否かが判断され、YESのときはステップS16に進み、NOのときはステップS14に進む。図13において、ウィンドウサイズと、確認応答番号と、シーケンス番号と、送信されるバイト数のパラメータBとは、バイトを単位としてそれぞれ表される。ステップS14において、格納開始位置ポインタP3が示す領域は、次回送信位置ポインタP2が示す領域のN個分後ろの領域に一致するか否かが判断され、YESのときはステップS16に進み、NOのときはステップS15に進む。ステップS14がYESである場合には、送信バッファメモリ124内の未送信のデータパケットをすべて送信する。ステップS15において、送信すべきパケット数を示すパラメータNを1だけインクリメントし、送信されるバイト数を示すパラメータBを、送信バッファメモリ124の各領域のサイズに相当する最大パケット長のバイト数だけインクリメントし、ステップS13に戻る。送信すべきパケット数を示すパラメータN及び送信されるバイト数を示すパラメータBが確定するまで、ステップS13乃至S15を繰り返す。次いでステップS16において、送信するパケット数Nをパケット送信順序調停回路125に通知する。次いでステップS17において、送信すべきパケット数を示すパラメータNが0であるか否かを判断し、YESのときはステップS21に進み、NOのときはステップS18に進む。ステップS18では、次回送信位置ポインタP2が示す領域のパケットを送信するために、送信バッファメモリ124からパケット送信順序調停回路125に転送させ、次いでステップS19において、パラメータNを1だけデクリメントし、ステップS20において、次の領域を特定するように次回送信位置ポインタP2を変化させ、ステップS17に戻る。ステップS13乃至S15において確定されたN個のデータパケットがすべて送信されるまで、ステップS17乃至S20を繰り返し、ステップS17がYESになったとき、ステップS21において、タイマ回路126をリセットして計時を0から開始し、図11のフローに戻る。   FIG. 12 is a flowchart showing a subroutine of the packet transmission process S4. In step S11 of FIG. 12, the transmission buffer control circuit 123 determines whether or not the areas indicated by the pointers P1, P2, and P3 all match. If YES, the process returns to the flow of FIG. Proceed to S12. As described above, when the transmission buffer memory 124 is empty, the locations specified by the three pointers P1, P2, and P3 match. In step S12, a parameter N indicating the number of packets to be transmitted is initialized to 0, and a parameter B indicating the number of bytes to be transmitted is initialized to 0. Next, in step S13, the sum of the window size notified by the received ACK packet and the acknowledgment number is the sequence number of the packet in the area indicated by the next transmission position pointer P2 and the parameter B of the number of bytes to be transmitted. It is determined whether or not the sum is less than the sum of the two. If YES, the process proceeds to step S16. If NO, the process proceeds to step S14. In FIG. 13, the window size, the acknowledgment number, the sequence number, and the parameter B for the number of bytes to be transmitted are expressed in units of bytes. In step S14, it is determined whether or not the area indicated by the storage start position pointer P3 coincides with an area N times the area indicated by the next transmission position pointer P2, and if YES, the process proceeds to step S16 and NO. If so, go to Step S15. If step S14 is YES, all untransmitted data packets in the transmission buffer memory 124 are transmitted. In step S15, the parameter N indicating the number of packets to be transmitted is incremented by 1, and the parameter B indicating the number of bytes to be transmitted is incremented by the number of bytes of the maximum packet length corresponding to the size of each area of the transmission buffer memory 124. Then, the process returns to step S13. Steps S13 to S15 are repeated until the parameter N indicating the number of packets to be transmitted and the parameter B indicating the number of bytes to be transmitted are determined. In step S16, the packet transmission order arbitration circuit 125 is notified of the number N of packets to be transmitted. Next, in step S17, it is determined whether or not the parameter N indicating the number of packets to be transmitted is 0. If YES, the process proceeds to step S21, and if NO, the process proceeds to step S18. In step S18, in order to transmit the packet in the area indicated by the next transmission position pointer P2, the packet is transferred from the transmission buffer memory 124 to the packet transmission order arbitration circuit 125. Then, in step S19, the parameter N is decremented by 1, and step S20. The next transmission position pointer P2 is changed so as to specify the next area, and the process returns to step S17. Steps S17 to S20 are repeated until all the N data packets determined in steps S13 to S15 are transmitted. When step S17 becomes YES, in step S21, the timer circuit 126 is reset and the time count is set to 0. And return to the flow of FIG.

ステップS4の後、ステップS5において、送信バッファ制御回路123は、確認応答番号が、確認応答待ち位置ポインタP1によって示される領域にあるパケットのシーケンス番号以下であるか否かを判断し、YESのときはステップS1に戻り、NOのときはステップS6に進む。ステップS6において、ポインタP1,P2が示す領域が互いに一致するか否かを判断し、YESのときはステップS1に戻り、NOのときはステップS7に進む。ステップS6がYESである場合は、ACKパケットの受信を待機している送信済みのデータパケットが送信バッファメモリ124に残っていないときである。ステップS7において、次の領域を特定するように確認応答待ち位置ポインタP1を変化させ、ステップS5に戻る。   After step S4, in step S5, the transmission buffer control circuit 123 determines whether or not the confirmation response number is less than or equal to the sequence number of the packet in the area indicated by the confirmation response waiting position pointer P1. Returns to step S1, and proceeds to step S6 if NO. In step S6, it is determined whether the areas indicated by the pointers P1 and P2 match each other. If YES, the process returns to step S1, and if NO, the process proceeds to step S7. If step S6 is YES, the transmitted data packet waiting for the reception of the ACK packet does not remain in the transmission buffer memory 124. In step S7, the confirmation response waiting position pointer P1 is changed so as to specify the next area, and the process returns to step S5.

ステップS4の処理と、ステップS5乃至S7の処理とは、逆の順序で実行してもよく、また並列に実行してもよい。例えば逆の順序で実行する場合には、ステップS3がYESのときステップS5に進み、ステップS5又はS6がYESのときステップS4を実行してステップS1に戻ることができる。   The process of step S4 and the processes of steps S5 to S7 may be executed in the reverse order or may be executed in parallel. For example, when the processes are executed in the reverse order, the process proceeds to step S5 when step S3 is YES, and step S4 is performed when step S5 or S6 is YES, and the process returns to step S1.

また、ステップS8では、送信バッファ制御回路123は、ACKパケットにより伝達された確認応答番号及びウィンドウサイズの情報を破棄して、ステップS1に戻る。   In step S8, the transmission buffer control circuit 123 discards the acknowledgment number and window size information transmitted by the ACK packet, and returns to step S1.

ステップS9において、送信バッファ制御回路123は、ACKパケットの待機時間がタイムアウトしたか否かを判断し、YESのときはステップS10のパケット再送処理を実行し、NOのときはステップS1に戻る。   In step S9, the transmission buffer control circuit 123 determines whether or not the waiting time of the ACK packet has timed out. If YES, the packet retransmission process of step S10 is executed. If NO, the process returns to step S1.

図13は、パケット再送処理S10のサブルーチンを示すフローチャートである。図13のステップS31において、送信バッファ制御回路123は、再送すべきパケット数を示すパラメータNを0に初期化する。次いでステップS32において、次回送信位置ポインタP2が示す領域は、確認応答待ち位置ポインタP1が示す領域のN個分後ろの領域に一致するか否かが判断され、YESのときはステップS34に進み、NOのときはステップS33でパラメータNを1だけインクリメントしてステップS32の判断を繰り返す。再送すべきパケット数を示すパラメータNが確定するまで、ステップS32及びS33を繰り返す。ステップS34において、送信するパケット数Nをパケット送信順序調停回路125に通知する。次いでステップS35において、送信すべきパケット数を示すパラメータNが0であるか否かを判断し、YESのときはステップS38に進み、NOのときはステップS36に進む。ステップS36では、次回送信位置ポインタP2が示す領域のN個分前の領域のパケットを送信し、ステップS37においてパラメータNを1だけデクリメントして、ステップS35に戻る。再送時には図12のステップS17乃至S20のようにポインタを変化させることができないので、ステップS35乃至S37では、パラメータNをループ変数として用いてパケットを送信している。ステップS32及びS33において確定されたN個のデータパケットがすべて送信されるまで、ステップS35乃至S37を繰り返し、ステップS35がYESになったとき、ステップS38において、タイマ回路126をリセットして計時を0から開始し、図11のフローのステップS1に戻る。   FIG. 13 is a flowchart showing a subroutine of packet retransmission processing S10. In step S31 of FIG. 13, the transmission buffer control circuit 123 initializes a parameter N indicating the number of packets to be retransmitted to 0. Next, in step S32, it is determined whether or not the area indicated by the next transmission position pointer P2 coincides with an area N times behind the area indicated by the confirmation response waiting position pointer P1. If YES, the process proceeds to step S34. If NO, the parameter N is incremented by 1 in step S33 and the determination in step S32 is repeated. Steps S32 and S33 are repeated until the parameter N indicating the number of packets to be retransmitted is determined. In step S34, the packet transmission order arbitration circuit 125 is notified of the number N of packets to be transmitted. Next, in step S35, it is determined whether or not the parameter N indicating the number of packets to be transmitted is 0. If YES, the process proceeds to step S38, and if NO, the process proceeds to step S36. In step S36, the packet in the area N before the area indicated by the next transmission position pointer P2 is transmitted, and in step S37, the parameter N is decremented by 1, and the process returns to step S35. At the time of retransmission, the pointer cannot be changed as in steps S17 to S20 in FIG. 12, and in steps S35 to S37, the packet is transmitted using the parameter N as a loop variable. Steps S35 to S37 are repeated until all N data packets determined in steps S32 and S33 are transmitted. When step S35 becomes YES, in step S38, the timer circuit 126 is reset and the time count is set to 0. Starts from step S1 and returns to step S1 in the flow of FIG.

図14は、送信バッファ制御回路123によって実行される第2の送信バッファ制御処理を示すフローチャートである。この第1の送信バッファ制御処理では、送信バッファメモリ124への新たなデータの格納を行う。図14のステップS41において、送信バッファ制御回路123は、メインCPU104又はアプリケーション処理回路105からの命令に基づいて、あるいはアプリケーション処理回路105への問い合わせに基づいて、送信すべきデータがまだ残っているか(すなわち、データが送信中であるか)否かを判断し、YESのときはステップS42に進み、NOのときは処理を終了する。ステップS42において、ポインタP1,P3によって示される領域が互いに一致するか否かが判断され、YESのときはステップS43に進み、NOのときはステップS44に進む。ステップS43において、ポインタP1,P2によって示される領域が互いに一致するか否かが判断され、YESのときはステップS44に進み、NOのときはステップS41に戻る。ステップS43がYESであり、3つのポインタP1,P2,P3によって特定される場所が一致する場合は、前述のように、送信バッファメモリ124は完全に空であり、ステップS43がNOである場合は、送信バッファメモリ124がデータパケットによって完全に占有されている(空き領域がない)。ステップS44において、格納開始位置ポインタP3によって示される領域にパケットを格納し、ステップS45において、ステップS44で格納したパケットのシーケンス番号を管理テーブル127に書き込み、ステップS46において、次の領域を特定するように格納開始位置ポインタP3を変化させ、ステップS41に戻る。送信すべきデータが残っている限りは、ステップS41乃至S46の処理を繰り返す。   FIG. 14 is a flowchart showing a second transmission buffer control process executed by the transmission buffer control circuit 123. In the first transmission buffer control process, new data is stored in the transmission buffer memory 124. In step S41 in FIG. 14, the transmission buffer control circuit 123 determines whether there is still data to be transmitted based on a command from the main CPU 104 or the application processing circuit 105 or based on an inquiry to the application processing circuit 105 ( That is, whether or not data is being transmitted is determined. If YES, the process proceeds to step S42, and if NO, the process ends. In step S42, it is determined whether or not the areas indicated by the pointers P1, P3 match each other. If YES, the process proceeds to step S43, and if NO, the process proceeds to step S44. In step S43, it is determined whether or not the areas indicated by the pointers P1 and P2 match each other. If YES, the process proceeds to step S44, and if NO, the process returns to step S41. If step S43 is YES and the locations specified by the three pointers P1, P2, P3 match, as described above, the transmission buffer memory 124 is completely empty, and if step S43 is NO, The transmission buffer memory 124 is completely occupied by data packets (no free space). In step S44, the packet is stored in the area indicated by the storage start position pointer P3. In step S45, the sequence number of the packet stored in step S44 is written in the management table 127. In step S46, the next area is specified. To change the storage start position pointer P3 to return to step S41. As long as there is data to be transmitted, the processes in steps S41 to S46 are repeated.

図8乃至図10は、送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の状態を示すさらに別の例を示す概念図である。ここで、図8は、図7の状態からデータパケットS19,S20を格納した後の、データ送信中でありかつ送信バッファメモリ124に空き領域が存在する状態を示し、図9は、図8の状態からデータパケットS21,S22を格納した後の、データ送信中でありかつ送信バッファメモリ124がデータパケットによって完全に占有されている状態を示し、図10は、図9の状態からすべてのデータパケットを送信した後の空き状態を示す。図8において、シーケンス番号S3乃至S5のデータパケットは送信済みでACKパケットを待機している状態にあり、シーケンス番号S6乃至S20のデータパケットはまだ1度も送信されたことがなく、また、送信バッファメモリ124に新たにデータを格納する際は、格納開始位置ポインタP3が示す領域A1に格納する。図9において、シーケンス番号S3乃至S5のデータパケットは、図8の場合と同様に送信済みでACKパケットを待機している状態にあり、シーケンス番号S6乃至S22のデータパケットはまだ1度も送信されたことがない。図10において、格納開始位置ポインタP3は、新たなデータの格納がないので図9の状態から変化していない。確認応答待ち位置ポインタP1は、送信したデータパケットに対応するACKパケットが受信される毎に図9の状態から変化し、次回送信位置ポインタP2は、データパケットを送信する毎に図9の状態から変化し、最終的に図10におけるすべてのポインタP1,P2,P3が一致した状態になる。   FIGS. 8 to 10 are conceptual diagrams illustrating still another example of the state of the management table 127 and the transmission buffer memory 124 in the transmission buffer control circuit 123. Here, FIG. 8 shows a state in which data is being transmitted and free space exists in the transmission buffer memory 124 after storing the data packets S19 and S20 from the state of FIG. 7, and FIG. FIG. 10 shows a state in which data is being transmitted and the transmission buffer memory 124 is completely occupied by the data packet after storing the data packets S21 and S22 from the state. FIG. 10 shows all data packets from the state of FIG. Indicates the free state after sending. In FIG. 8, the data packets with sequence numbers S3 to S5 have been transmitted and are waiting for an ACK packet, and the data packets with sequence numbers S6 to S20 have never been transmitted, and When new data is stored in the buffer memory 124, it is stored in the area A1 indicated by the storage start position pointer P3. In FIG. 9, the data packets with sequence numbers S3 to S5 are in a state of being transmitted and waiting for ACK packets as in FIG. 8, and the data packets with sequence numbers S6 to S22 are still transmitted once. Never before. In FIG. 10, the storage start position pointer P3 does not change from the state of FIG. 9 because no new data is stored. The acknowledgment waiting position pointer P1 changes from the state of FIG. 9 every time an ACK packet corresponding to the transmitted data packet is received, and the next transmission position pointer P2 changes from the state of FIG. 9 every time a data packet is transmitted. Finally, all the pointers P1, P2, and P3 in FIG.

図2の構成において、パケット分岐回路121、ACKパケット解析回路122、送信バッファ制御回路123、及びパケット送信順序調停回路125は、それぞれハードウェアにより実現してもソフトウェアにより実現してもよい。   In the configuration of FIG. 2, the packet branching circuit 121, the ACK packet analysis circuit 122, the transmission buffer control circuit 123, and the packet transmission order arbitration circuit 125 may each be realized by hardware or software.

また、IPとして、IPv6と呼ばれるRFC2460に定義されているものが用いられる場合、IPヘッダの構成は図5に示すものとは異なるものの、発信元端末装置IPアドレス、宛先端末装置IPアドレス及びプロトコル番号は、IPv6であってもIPヘッダ内に含まれる。従って、パケット分岐回路121は、IPとしてIPv4が用いられる本実施形態と同様、発信元端末装置IPアドレス、宛先端末装置IPアドレス及びプロトコル番号をパケットの分岐条件として参照することができる。   Further, when the IP defined in RFC2460 called IPv6 is used, the IP header configuration is different from that shown in FIG. 5, but the source terminal device IP address, destination terminal device IP address, and protocol number are used. Is included in the IP header even in IPv6. Therefore, the packet branching circuit 121 can refer to the source terminal device IP address, the destination terminal device IP address, and the protocol number as the packet branching conditions as in the present embodiment in which IPv4 is used as the IP.

以上、かかる構成によれば、TCP/IPにより送信されるAVストリームデータのパケットについて、データをアプリケーション処理回路105からネットワークインターフェース装置101に直接転送することと、ACKパケットをネットワークインターフェース装置101内の専用手段により処理することによって、図16の従来例の構成で課題となっていた、メインCPU104の処理能力や、パケット送受信処理に使用できるローカルバス102の帯域幅に起因するデータの送信速度の低下を防ぐことが可能となり、また、AVストリームのような大容量のデータであっても、メインCPU104の負荷を増大させることなく送信することが可能となる。また、ネットワークインターフェース装置101内に送信バッファメモリ124を設け、送信するAVストリームデータのパケットを格納し、TCP/IPにおけるフロー制御と再送制御をその送信バッファメモリ124を用いて行うことによって、端末装置内処理遅延時間を短縮することができ、その結果、データの送信速度を向上させることが可能である。   As described above, according to such a configuration, for AV stream data packets transmitted by TCP / IP, data is directly transferred from the application processing circuit 105 to the network interface apparatus 101, and ACK packets are dedicated to the network interface apparatus 101. By processing by means, the reduction in data transmission speed due to the processing capacity of the main CPU 104 and the bandwidth of the local bus 102 that can be used for packet transmission / reception processing, which has been a problem in the configuration of the conventional example of FIG. In addition, even large-volume data such as an AV stream can be transmitted without increasing the load on the main CPU 104. In addition, a transmission buffer memory 124 is provided in the network interface apparatus 101, a packet of AV stream data to be transmitted is stored, and flow control and retransmission control in TCP / IP are performed using the transmission buffer memory 124, whereby a terminal apparatus The internal processing delay time can be shortened, and as a result, the data transmission speed can be improved.

第2の実施形態.
図15は、本発明の第2の実施形態に係るネットワークインターフェース装置201を備えた端末装置200の構成を示すブロック図である。図15において、第1の実施形態と同じ構成要素については同じ符号を用い、説明を省略する。
Second embodiment.
FIG. 15 is a block diagram illustrating a configuration of a terminal device 200 including the network interface device 201 according to the second embodiment of the present invention. In FIG. 15, the same constituent elements as those in the first embodiment are denoted by the same reference numerals, and description thereof is omitted.

図15の端末装置200は、上記第1の実施形態における図2の構成とは異なり、別個のアプリケーションを実行するために複数(ここでは2つ)のアプリケーション処理回路105A,105Bを備え、それに対応して、ネットワークインターフェース装置201は、各アプリケーションの通信コネクションのためにそれぞれ送信される複数の種類のパケットを処理するために、パケット化回路、送信バッファメモリ、送信バッファ制御回路及びタイマ回路の処理系を複数備えている。本実施形態では、アプリケーション処理回路105Aから送信されるAVストリームデータAをパケット化して格納するために、パケット化回路115A及び送信バッファメモリ124Aが設けられ、アプリケーション処理回路105Bから送信されるAVストリームデータBをパケット化して格納するために、パケット化回路115B及び送信バッファメモリ124Bが設けられる。また、送信バッファメモリ124Aを制御するために、送信バッファ制御回路123A及びタイマ回路126Aが設けられ、送信バッファメモリ124Bを制御するために、送信バッファ制御回路123B及びタイマ回路126Bが設けられる。送信バッファ制御回路123Aは、送信バッファメモリ124Aを介して送信されるデータパケットの発信元端末装置IPアドレス、宛先端末装置IPアドレス、発信元ポート番号及び宛先ポート番号のうち一部又はすべてをACKパケット解析回路122aに通知し、同様に、送信バッファ制御回路123Bは、送信バッファメモリ124Bを介して送信されるデータパケットの発信元端末装置IPアドレス、宛先端末装置IPアドレス、発信元ポート番号及び宛先ポート番号のうち一部又はすべてを、ローカルバス102を介してACKパケット解析回路122aに通知する。ACKパケット解析回路122aは、パケット分岐回路121から転送されたACKパケットのヘッダと、送信バッファ制御回路123A及び123Bから通知された発信元端末装置IPアドレス、宛先端末装置IPアドレス、発信元ポート番号及び宛先ポート番号のうち一部又はすべてを比較することによって、送信バッファ制御回路123A及び123Bがそれぞれ関与する通信コネクションを識別し、ACKパケットから抽出した確認応答番号とウインドウサイズの情報を、そのACKパケットに関連付けられた送信バッファ制御回路に転送する。   Unlike the configuration of FIG. 2 in the first embodiment, the terminal device 200 of FIG. 15 includes a plurality (two in this case) of application processing circuits 105A and 105B in order to execute separate applications. Then, the network interface device 201 processes a plurality of types of packets transmitted for each application communication connection in order to process a packetizing circuit, a transmission buffer memory, a transmission buffer control circuit, and a timer circuit. There are multiple. In this embodiment, in order to packetize and store the AV stream data A transmitted from the application processing circuit 105A, a packetizing circuit 115A and a transmission buffer memory 124A are provided, and the AV stream data transmitted from the application processing circuit 105B. In order to packetize and store B, a packetizing circuit 115B and a transmission buffer memory 124B are provided. A transmission buffer control circuit 123A and a timer circuit 126A are provided to control the transmission buffer memory 124A, and a transmission buffer control circuit 123B and a timer circuit 126B are provided to control the transmission buffer memory 124B. The transmission buffer control circuit 123A ACKs a part or all of the source terminal device IP address, the destination terminal device IP address, the source port number and the destination port number of the data packet transmitted via the transmission buffer memory 124A. Similarly, the transmission buffer control circuit 123B notifies the analysis circuit 122a, and the transmission buffer control circuit 123B sends the source terminal device IP address, the destination terminal device IP address, the source port number, and the destination port of the data packet transmitted through the transmission buffer memory 124B. Some or all of the numbers are notified to the ACK packet analysis circuit 122a via the local bus 102. The ACK packet analysis circuit 122a includes the header of the ACK packet transferred from the packet branching circuit 121, the source terminal device IP address, the destination terminal device IP address, the source port number notified from the transmission buffer control circuits 123A and 123B. By comparing some or all of the destination port numbers, the communication connections involving the transmission buffer control circuits 123A and 123B are respectively identified, and the acknowledgment number and window size information extracted from the ACK packet are used as the ACK packet. Is transferred to the transmission buffer control circuit associated with.

送信バッファ制御回路123Aおよび123Bが送信バッファメモリ124A及び124Bをそれぞれ制御する方法は、第1の実施形態の方法と同様である。パケット送信順序調停回路125は、送信バッファメモリ124A、送信バッファメモリ124B及び送信FIFO114からそれぞれ転送されたパケットの送信順序を並べ替えてデータリンク層処理回路112に転送する。送信バッファメモリ124Aと送信バッファメモリ124Bから同時にデータパケットが転送された場合には、一方の送信バッファメモリからのデータパケットを、対応する送信バッファ制御回路から通知されたパケット数の分だけ先に送信し、その後、他方の送信バッファメモリからのデータパケットを、対応する送信バッファ制御回路から通知されたパケット数の分だけ送信することを繰り返して、両方の通信コネクションに係るパケットを交互に送信できるようにする。それに代わって、パケット送信順序調停回路125はまた、送信バッファメモリ124Aからのデータパケットと送信バッファメモリ124Bからのデータパケットとを1つずつ、又は所定個数ずつ交互に送信するように、データパケットの並べ替えを行ってもよい。   The method by which the transmission buffer control circuits 123A and 123B control the transmission buffer memories 124A and 124B, respectively, is the same as the method of the first embodiment. The packet transmission order arbitration circuit 125 rearranges the transmission order of the packets transferred from the transmission buffer memory 124A, the transmission buffer memory 124B, and the transmission FIFO 114, and transfers them to the data link layer processing circuit 112. When data packets are simultaneously transferred from the transmission buffer memory 124A and the transmission buffer memory 124B, the data packets from one transmission buffer memory are transmitted ahead by the number of packets notified from the corresponding transmission buffer control circuit. After that, by repeatedly transmitting data packets from the other transmission buffer memory for the number of packets notified from the corresponding transmission buffer control circuit, packets related to both communication connections can be transmitted alternately. To. Instead, the packet transmission order arbitration circuit 125 also transmits the data packets from the transmission buffer memory 124A and the data packets from the transmission buffer memory 124B one by one or alternately by a predetermined number. Sorting may be performed.

図16の従来例の構成では、複数の通信コネクションを取り扱わなければならないとき、各通信コネクションのデータパケットをメインCPU104で逐次にしか送信処理することができなかった。一方、以上説明した本実施形態のネットワークインターフェース装置201によれば、第1の実施形態に係る効果を有することに加えて、通信コネクション毎に送信バッファメモリ124A及び124Bを設けて、パケットの送信処理を各処理系においてそれぞれ独立に行うことにより、通信コネクション毎に並列にパケットを送信処理することができるようになり、同時通信コネクション数が増大しても、処理時間が増大することなく、データを高速に送信することが可能である。   In the configuration of the conventional example of FIG. 16, when a plurality of communication connections have to be handled, the data packet of each communication connection can be transmitted only by the main CPU 104 sequentially. On the other hand, according to the network interface device 201 of the present embodiment described above, in addition to having the effect according to the first embodiment, the transmission buffer memories 124A and 124B are provided for each communication connection, and packet transmission processing is performed. In each processing system, packets can be transmitted in parallel for each communication connection, and even if the number of simultaneous communication connections increases, the processing time does not increase, It is possible to transmit at high speed.

本発明に係るネットワークインターフェース装置は、データのパケットを高速かつ安定して送信することが可能であるので、ネットワークを通じてAVストリームなどの大容量のデータを再生又は転送する機器などに有用である。   The network interface device according to the present invention can transmit data packets at high speed and stably, and thus is useful for devices that reproduce or transfer large-capacity data such as AV streams over a network.

従来技術及び本発明に係る、ネットワーク700を介して互いに接続された複数の端末装置100乃至600を示す概念図である。It is a conceptual diagram which shows the some terminal device 100 thru | or 600 connected mutually via the network 700 based on a prior art and this invention. 本発明の第1の実施形態に係るネットワークインターフェース装置101を備えた端末装置100の構成を示すブロック図である。It is a block diagram which shows the structure of the terminal device 100 provided with the network interface apparatus 101 which concerns on the 1st Embodiment of this invention. 図2のネットワークインターフェース装置101内におけるデータパケットの送信処理手順の概念を示す図である。It is a figure which shows the concept of the transmission process procedure of the data packet in the network interface apparatus 101 of FIG. 図2のパケット化回路115及び送信バッファメモリ124に代えて設けられる、変形例の送信バッファメモリ124Aによるパケット化動作を示す概念図である。FIG. 11 is a conceptual diagram showing packetization operations by a modified transmission buffer memory 124A provided in place of the packetization circuit 115 and the transmission buffer memory 124 of FIG. 図2のネットワークインターフェース装置101により送受信されるデータパケットの構成を示すデータフォーマットである。It is a data format which shows the structure of the data packet transmitted / received by the network interface apparatus 101 of FIG. 送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の動作を説明するための概念図である。7 is a conceptual diagram for explaining the operation of a management table 127 and a transmission buffer memory 124 in the transmission buffer control circuit 123. FIG. 図6の状態からデータパケットS1,S2を送信した後の送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の状態を示す概念図である。It is a conceptual diagram which shows the state of the management table 127 and the transmission buffer memory 124 in the transmission buffer control circuit 123 after transmitting data packet S1, S2 from the state of FIG. 図7の状態からデータパケットS19,S20を格納した後の送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の状態を示す概念図である。It is a conceptual diagram which shows the state of the management table 127 and the transmission buffer memory 124 in the transmission buffer control circuit 123 after storing data packet S19, S20 from the state of FIG. 図8の状態からデータパケットS21,S22を格納した後の送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の状態を示す概念図である。FIG. 9 is a conceptual diagram showing a state of a management table 127 and a transmission buffer memory 124 in the transmission buffer control circuit 123 after storing data packets S21 and S22 from the state of FIG. 図9の状態からすべてのデータパケットを送信した後の送信バッファ制御回路123内の管理テーブル127と送信バッファメモリ124の状態を示す概念図である。FIG. 10 is a conceptual diagram showing the state of the management table 127 and the transmission buffer memory 124 in the transmission buffer control circuit 123 after all data packets are transmitted from the state of FIG. 9. 図2の送信バッファ制御回路123によって実行される第1の送信バッファ制御処理を示すフローチャートである。3 is a flowchart showing a first transmission buffer control process executed by a transmission buffer control circuit 123 of FIG. 図11のパケット送信処理S4のサブルーチンを示すフローチャートである。It is a flowchart which shows the subroutine of packet transmission process S4 of FIG. 図11のパケット再送処理S10のサブルーチンを示すフローチャートである。12 is a flowchart illustrating a subroutine of packet retransmission processing S10 in FIG. 図2の送信バッファ制御回路123によって実行される第2の送信バッファ制御処理を示すフローチャートである。6 is a flowchart showing a second transmission buffer control process executed by the transmission buffer control circuit 123 of FIG. 2. 本発明の第2の実施形態に係るネットワークインターフェース装置201を備えた端末装置200の構成を示すブロック図である。It is a block diagram which shows the structure of the terminal device 200 provided with the network interface apparatus 201 which concerns on the 2nd Embodiment of this invention. 従来技術に係る第1のネットワークインターフェース装置301を備えた端末装置300の構成を示すブロック図である。It is a block diagram which shows the structure of the terminal device 300 provided with the 1st network interface apparatus 301 based on a prior art. 従来技術に係る第2のネットワークインターフェース装置401を備えた端末装置400の構成を示すブロック図である。It is a block diagram which shows the structure of the terminal device 400 provided with the 2nd network interface apparatus 401 based on a prior art.

符号の説明Explanation of symbols

100乃至600…端末装置、
101,201…ネットワークインターフェース装置、
102…ローカルバス、
103…システムメモリ、
104…メインCPU、
105,105A,105B…アプリケーション処理回路、
111…物理層処理回路、
112…データリンク層処理回路、
113…受信FIFO、
114…送信FIFO、
115,115A,115B…パケット化回路、
121…パケット分岐回路、
122,122a…ACKパケット解析回路、
123,123A,123B…送信バッファ制御回路、
124,124A,124B…送信バッファメモリ、
125…パケット送信順序調停回路、
126,126A,126B…タイマ回路、
127…管理テーブル、
700…ネットワーク。
100 to 600 ... terminal device,
101, 201 ... network interface device,
102 ... Local bus,
103 ... System memory,
104 ... main CPU,
105, 105A, 105B ... Application processing circuit,
111 ... Physical layer processing circuit,
112 ... Data link layer processing circuit,
113 ... Receive FIFO,
114 ... transmission FIFO,
115, 115A, 115B ... packetization circuit,
121 ... Packet branching circuit,
122, 122a ... ACK packet analysis circuit,
123, 123A, 123B ... transmission buffer control circuit,
124, 124A, 124B ... transmission buffer memory,
125: Packet transmission order arbitration circuit,
126, 126A, 126B... Timer circuit,
127 ... management table,
700: Network.

Claims (6)

パケットを送受信するネットワークインターフェース装置において、
特定の通信コネクションのために送信される優先パケットを格納する第1の格納手段と、
上記優先パケット以外の送信される非優先パケットを格納する第2の格納手段と、
受信されたパケットから、上記優先パケットに対して返信されたACKパケットを分離するパケット分岐手段と、
上記分離されたACKパケットから所定の情報を抽出するACKパケット解析手段と、
上記抽出された情報に基づき上記第1の格納手段を制御する格納制御手段とを備えたことを特徴とするネットワークインターフェース装置。
In a network interface device that transmits and receives packets,
First storage means for storing priority packets transmitted for a particular communication connection;
Second storage means for storing non-priority packets to be transmitted other than the priority packets;
A packet branching means for separating an ACK packet returned to the priority packet from the received packet;
ACK packet analysis means for extracting predetermined information from the separated ACK packet;
A network interface device comprising storage control means for controlling the first storage means based on the extracted information.
上記優先パケットは、AVストリームデータのパケットであり、上記非優先パケットは、AVストリームデータ以外の一般データ及び制御情報のパケットであることを特徴とする請求項1に記載のネットワークインターフェース装置。   2. The network interface device according to claim 1, wherein the priority packet is a packet of AV stream data, and the non-priority packet is a packet of general data and control information other than AV stream data. 上記ネットワークインターフェース装置は、上記優先パケットと上記非優先パケットとの両方を送信するとき、上記優先パケットを優先的に送信するようにパケットの送信順序を並べ替えるパケット送信順序調停手段をさらに備えたことを特徴とする請求項1又は2記載のネットワークインターフェース装置。   The network interface device further includes a packet transmission order arbitration unit that rearranges the transmission order of the packets so that the priority packets are preferentially transmitted when transmitting both the priority packets and the non-priority packets. The network interface device according to claim 1, wherein: 上記パケット分岐手段は、上記受信されたパケットのIPヘッダに含まれる発信元端末装置IPアドレス、宛先端末装置IPアドレス及びプロトコル番号と、上記受信されたパケットのTCPヘッダに含まれる発信元ポート番号及び宛先ポート番号とのうち少なくとも一部の情報に基づいて、上記優先パケットに対して返信されたACKパケットを上記受信されたパケットから識別して分離することを特徴とする請求項1乃至3のうちのいずれか1つに記載のネットワークインターフェース装置。   The packet branching means includes a source terminal device IP address, a destination terminal device IP address and a protocol number included in the IP header of the received packet, a source port number included in the TCP header of the received packet, and 4. The ACK packet returned to the priority packet is identified and separated from the received packet based on at least a part of information of a destination port number. The network interface device according to any one of the above. 上記第1の格納手段は、複数の優先パケットをそれぞれ格納する複数の領域を備え、
上記ACKパケット解析手段は、上記ACKパケットのTCPヘッダに含まれる確認応答番号及びウインドウサイズの情報を抽出して上記格納制御手段に通知し、
上記格納制御手段は、上記第1の格納手段の各領域に特定の優先パケットが格納されているか否かと、上記各領域に格納された優先パケットが送信済みであるか否かとについての状態を管理する管理テーブルを有し、上記ACKパケット解析手段から転送された確認応答番号及びウインドウサイズの情報に基づいて上記管理テーブルを参照することにより、上記第1の格納手段の各領域に格納された特定の優先パケットを送信するか否かを決定するとともに、宛先への伝達が確認された優先パケットが格納されている上記第1の格納手段の領域を解放することを特徴とする請求項1乃至4のうちのいずれか1つに記載のネットワークインターフェース装置。
The first storage means includes a plurality of areas each storing a plurality of priority packets,
The ACK packet analysis means extracts the acknowledgment number and window size information included in the TCP header of the ACK packet and notifies the storage control means,
The storage control means manages the status of whether or not a specific priority packet is stored in each area of the first storage means and whether or not the priority packet stored in each area has been transmitted. Specific information stored in each area of the first storage means by referring to the management table based on the acknowledgment number and window size information transferred from the ACK packet analyzing means. And determining whether or not to transmit the priority packet, and releasing the area of the first storage means in which the priority packet confirmed to be transmitted to the destination is stored. The network interface device according to any one of the above.
上記ネットワークインターフェース装置は、複数の特定の通信コネクションのためにそれぞれ送信される複数の種類の優先パケットを処理するために、上記複数の特定の通信コネクション毎に上記第1の格納手段と上記格納制御手段とを備えたことを特徴とする請求項1乃至5のうちのいずれか1つに記載のネットワークインターフェース装置。   The network interface device is configured to process the first storage unit and the storage control for each of the plurality of specific communication connections in order to process a plurality of types of priority packets respectively transmitted for the plurality of specific communication connections. 6. The network interface device according to claim 1, further comprising: means.
JP2006295755A 2006-10-31 2006-10-31 Network interface device Pending JP2008113327A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006295755A JP2008113327A (en) 2006-10-31 2006-10-31 Network interface device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006295755A JP2008113327A (en) 2006-10-31 2006-10-31 Network interface device

Publications (1)

Publication Number Publication Date
JP2008113327A true JP2008113327A (en) 2008-05-15

Family

ID=39445584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006295755A Pending JP2008113327A (en) 2006-10-31 2006-10-31 Network interface device

Country Status (1)

Country Link
JP (1) JP2008113327A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008126810A1 (en) * 2007-04-06 2008-10-23 Ntt Docomo, Inc. Window control and retransmission control method, and transmission side device
JP2011061840A (en) * 2010-11-02 2011-03-24 Ntt Docomo Inc Window control and retransmission control method, and transmitting-side apparatus
CN102598617A (en) * 2009-07-09 2012-07-18 高通股份有限公司 System and method of transmitting content from a mobile device to a wireless display
JP2020136883A (en) * 2019-02-19 2020-08-31 キヤノン株式会社 Communication device, method to control the communication device and program

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008126810A1 (en) * 2007-04-06 2008-10-23 Ntt Docomo, Inc. Window control and retransmission control method, and transmission side device
US8050228B2 (en) 2007-04-06 2011-11-01 Ntt Docomo, Inc. Window control and retransmission control method and transmitting-side apparatus
CN102598617A (en) * 2009-07-09 2012-07-18 高通股份有限公司 System and method of transmitting content from a mobile device to a wireless display
JP2012533220A (en) * 2009-07-09 2012-12-20 クゥアルコム・インコーポレイテッド System and method for transmitting content from a mobile device to a wireless display
JP2014168262A (en) * 2009-07-09 2014-09-11 Qualcomm Incorporated System and method of transmitting content from mobile device to wireless display
US8929297B2 (en) 2009-07-09 2015-01-06 Qualcomm Incorporated System and method of transmitting content from a mobile device to a wireless display
CN102598617B (en) * 2009-07-09 2015-06-03 高通股份有限公司 System and method of transmitting content from a mobile device to a wireless display
JP2011061840A (en) * 2010-11-02 2011-03-24 Ntt Docomo Inc Window control and retransmission control method, and transmitting-side apparatus
JP2020136883A (en) * 2019-02-19 2020-08-31 キヤノン株式会社 Communication device, method to control the communication device and program

Similar Documents

Publication Publication Date Title
KR101696776B1 (en) Enhanced acknowledgement and retransmission mechanism
US7953817B2 (en) System and method for supporting TCP out-of-order receive data using generic buffer
JP5816718B2 (en) Communication apparatus, communication system, and data communication relay method
US10630749B2 (en) Timely delivery of real-time media problem when TCP must be used
JP4583691B2 (en) Method and apparatus for reducing packet delay using scheduling and header compression
JP5038425B2 (en) Optimization process of traffic control in packet telecommunications network
US6091710A (en) System and method for preventing data slow down over asymmetric data transmission links
US8259728B2 (en) Method and system for a fast drop recovery for a TCP connection
US9565118B1 (en) Methods and apparatus for handling management packets in an audio video bridging (AVB) network
WO2004010311A2 (en) Method and apparatus for zero-copy receive buffer management
JP2012239238A (en) Systems and methods for assured communications with quality of service
US10505677B2 (en) Fast detection and retransmission of dropped last packet in a flow
US20070291782A1 (en) Acknowledgement filtering
US8838782B2 (en) Network protocol processing system and network protocol processing method
JP2005520374A (en) Changes to TCP / IP
JP2008113327A (en) Network interface device
JP4656415B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM
RU2651242C1 (en) Method of transmitting data
US20120063463A1 (en) Packet aligning apparatus and packet aligning method
RU2715016C1 (en) Transmitting device, method, program and recording medium
CN114866477A (en) Method, system and equipment for testing congestion control mechanism of network equipment
CN114826496A (en) Out-of-order packet processing
US7466653B1 (en) Quality of service for a stackable network switch
US20040223506A1 (en) Packet communication device sending delayed acknowledgement through network
JP3148733B2 (en) Signal processing device and signal processing system