JP2012160901A - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP2012160901A
JP2012160901A JP2011019131A JP2011019131A JP2012160901A JP 2012160901 A JP2012160901 A JP 2012160901A JP 2011019131 A JP2011019131 A JP 2011019131A JP 2011019131 A JP2011019131 A JP 2011019131A JP 2012160901 A JP2012160901 A JP 2012160901A
Authority
JP
Japan
Prior art keywords
size
transmission
reception
maximum
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011019131A
Other languages
English (en)
Other versions
JP5573709B2 (ja
Inventor
Takeshi Saito
健 斉藤
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2011019131A priority Critical patent/JP5573709B2/ja
Priority to EP20120151280 priority patent/EP2482503B1/en
Priority to US13/356,549 priority patent/US9762511B2/en
Publication of JP2012160901A publication Critical patent/JP2012160901A/ja
Application granted granted Critical
Publication of JP5573709B2 publication Critical patent/JP5573709B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】 データの通信を効率よく実行し得る技術を提供すること。
【解決手段】 通信装置10は、第1の記憶容量を有するFIFO送信バッファFSBと、第1の記憶容量と異なる第2の記憶容量を有するFIFO受信バッファFRBと、決定部30と、処理実行部36と、を備える。決定部30は、第1の記憶容量に応じて、S_MTU及びS_MSSを決定すると共に、第2の記憶容量に応じて、R_MTU及びR_MSSを決定する。なお、S_MTUとR_MTUとは、異なる値を有する。また、S_MSSとR_MSSとは、異なる値を有する。さらに、処理実行部36は、S_MTU及びS_MSSを用いて、送信フレームのための送信処理を実行すると共に、R_MTU及びR_MSSを用いて、受信フレームのための受信処理を実行する。
【選択図】 図1

Description

本明細書によって開示される技術は、ネットワークに接続される通信装置に関する。
通信装置は、通常、ネットワークに送信される送信フレームを記憶するための送信バッファと、ネットワークから受信される受信フレームを記憶するための受信バッファと、を備える。送信バッファと受信バッファとは、通常、同じ記憶容量を有する。
特開2001−237882号公報 特開2003−124984号公報 特開2006−217234号公報 特開2003−258938号公報 特開2008−118281号公報 特開2007−82126号公報
しかしながら、送信バッファと受信バッファとが同じ記憶容量を有する場合には、送信バッファと受信バッファとが効率よく活用されない可能性があり、この結果、データの通信(即ちデータの送受信)が効率よく実行されない可能性がある。本明細書では、データの通信を効率よく実行し得る技術を提供する。
本明細書は、ネットワークに接続される通信装置を開示する。通信装置は、送信バッファと、受信バッファと、決定部と、処理実行部と、を備える。送信バッファは、ネットワークに送信される少なくとも1個の送信フレームを記憶するためのバッファであって、第1の記憶容量を有する。受信バッファは、ネットワークから受信される少なくとも1個の受信フレームを記憶するためのバッファであって、第1の記憶容量と異なる第2の記憶容量を有する。決定部は、第1の記憶容量に応じて、1個の送信フレームに含まれる送信対象データのデータサイズとして許容される最大データサイズである送信用最大データサイズを決定すると共に、第2の記憶容量に応じて、1個の受信フレームに含まれる受信対象データのデータサイズとして許容される最大データサイズである受信用最大データサイズを決定する。送信用最大データサイズと受信用最大データサイズとは異なる値を有する。処理実行部は、送信用最大データサイズを用いて、送信対象の送信フレームのための送信処理を実行すると共に、受信用最大データサイズを用いて、受信対象の受信フレームのための受信処理を実行する。
上記の構成では、送信バッファと受信バッファとが異なる記憶容量を有するために、送信バッファと受信バッファとが効率よく活用され得る。さらに、上記の構成では、通信装置は、送信バッファが有する第1の記憶容量に応じて、送信用最大データサイズを決定し、受信バッファが有する第2の記憶容量に応じて、送信用最大データサイズと異なる受信用最大データサイズを有する。このために、通信装置は、送信用最大データサイズ及び受信用最大データサイズを用いて、送信処理及び受信処理を効率よく実行し得る。例えば、データの送信が主に実行される通信装置では、送信バッファの第1の記憶容量を受信バッファの第2の記憶容量よりも大きく設定することにより、データの送信処理を効率よく実行することができる。逆に、データの受信が主に実行される通信装置では、受信バッファの第2の記憶容量を送信バッファの第1の記憶容量よりも大きく設定することにより、データの受信処理を効率よく実行することができる。
なお、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
通信システムの構成の一例を示す。 非TCPのフレームが通信される様子を示す。 TCPのフレームが通信される様子を示す。 設定処理のフローチャートを示す。 全実施例に共通するMSS及びMTUの条件を示す。 第1実施例のMSS及びMTUの決定手法を示す。 第1実施例の第1具体例を示す。 第1実施例の第2具体例を示す。 第2実施例のMSS及びMTUの決定手法を示す。 第2実施例の第1具体例を示す。 第2実施例の第2具体例を示す。 第3実施例のMSS及びMTUの決定手法を示す。 第3実施例の第1具体例を示す。 第3実施例の第2具体例を示す。 第3実施例の第3具体例を示す。 第3実施例の第4具体例を示す。 第4実施例のMSS及びMTUの決定手法を示す。 第4実施例の第1具体例を示す。 第4実施例の第2具体例を示す。
(第1実施例)
(システムの構成)
図1に示されるように、通信システム2は、通信装置10(PC100の周辺機器)と、PC100と、を備える。通信装置10とPC100とは、LAN4に接続されている。通信装置10とPC100とは、LAN4を介して、相互に通信可能である。
LAN4は、イーサネット(登録商標)に準拠するネットワークである。特に、LAN4は、ギガビットイーサネット、即ち、1ギガビット/秒の通信速度を実現可能なネットワークである。なお、ギガビットイーサネットは、1000BASE−SXと、1000BASE−LXと、1000BASE−CX(これらはIEEE802.3zで規定される)と、1000BASE−T(これはIEEE802.3abで規定される)と、のいずれであってもよい。
(通信装置10の構成)
通信装置10は、操作部12と、表示部14と、制御部20と、MACチップ40と、PHYチップ50と、を備える。上記の各部12,14,20は、バス線(符号省略)に接続されている。
通信装置10は、さらに、印刷実行部16及びスキャン実行部18の少なくとも一方を備える。通信装置10が印刷実行部16を備える場合には、通信装置10はプリンタである。通信装置10がスキャン実行部18を備える場合には、通信装置10はスキャナである。通信装置10が印刷実行部16とスキャン実行部18との両方を備える場合には、通信装置10は、少なくとも印刷機能とスキャン機能とを備える多機能機である。
操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作することによって、様々な指示を通信装置10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。
制御部20は、CPU22とメモリ24とを備える。CPU22は、メモリ24に格納されているプログラム(図示省略)に従って、様々な処理を実行する。CPU22が当該プログラムに従って処理を実行することによって、決定部30、処理実行部36、及び、及び、判断部38の各機能が実現される。なお、決定部30は、第1の取得部31と、第2の取得部32と、第3の取得部33と、を備える。
メモリ24は、不揮発性メモリ、揮発性メモリ等によって構成される。メモリ24は、複数個の設定値SV(Setting Values)を記憶する。各設定値の内容については、後で詳しく説明する。メモリ24は、メモリバッファMB(Memory Buffer)を備える。メモリバッファMBは、LAN4に送信されるイーサネットフレーム(以下では「送信フレーム」と呼ぶ)を記憶する。特に、メモリバッファMBは、メモリ24から後述のFIFO送信バッファFSBに移動させる前の送信フレームを記憶する。メモリバッファMBは、さらに、LAN4から受信されるイーサネットフレーム(以下では「受信フレーム」と呼ぶ)を記憶する。特に、メモリバッファMBは、後述のFIFO受信バッファFRBからメモリ24に移動させた後の受信フレームを記憶する。
MACチップ40は、OSI(Open Systems Interconnection)参照モデルのデータリンク層の副層であるMAC層の処理を実行する。MACチップ40は、FIFO(First In First Out)送信バッファFSBと、FIFO受信バッファFRBと、を備える。FIFO送信バッファFSBは、少なくとも1個の送信フレームを記憶するための記憶容量を有する。FIFO受信バッファFRBは、少なくとも1個の受信フレームを記憶するための記憶容量を有する。なお、後で詳しく説明するが、FIFO送信バッファFSBとFIFO受信バッファFRBとは、異なる記憶容量を有する。
PHYチップ50は、OSI参照モデルの物理層の処理を実行する。PHYチップ50は、LAN4に接続されていると共に、MACチップ40に接続されている。FIFO送信バッファFSBに記憶されている送信フレームは、PHYチップ50を介して、LAN4に送信される。また、LAN4から受信される受信フレームは、PHYチップ50を介して、FIFO受信バッファFRBに記憶される。
(PC100の構成)
PC100は、図示省略の操作部、表示部、制御部等を備える。例えば、通信装置10がプリンタである場合には、PC100は、通信装置10のためのプリンタドライバを記憶している。この場合、PC100は、印刷データを通信装置10に送信可能である。また、通信装置10がスキャナである場合には、PC100は、通信装置10のためのスキャナドライバを記憶している。この場合、PC100は、通信装置10にスキャンの実行を指示して、通信装置10からスキャンデータを受信可能である。
なお、上記の印刷データ及びスキャンデータ以外にも、通信装置10とPC100との間では、様々な種類のデータが通信される。通信装置10は、TCP(Transmission Control Protocol)を利用して、PC100と通信可能であると共に、UDP(User Datagram Protocol)を利用して、PC100と通信可能である。例えば、上記の印刷データ又はスキャンデータの通信には、TCPが利用される。また、例えば、SNMP(Simple Network Management Protocol)のリクエスト及びレスポンスには、UDPが利用される。
(フレームの構成)
上述したように、通信装置10とPC100との間では、様々なデータが通信される。データの通信は、フレームを最小単位として実行される。図1には、1個のフレームの構成が模式的に示されている。TCPのフレームは、イーサネットヘッダと、IPヘッダと、TCPヘッダと、アプリケーションデータと、FCS(Frame Check Sequence)と、を含む。なお、UDPのフレームは、TCPヘッダの代わりにUDPヘッダを含む点が異なるが、TCPのフレームとほぼ同様の構成を有する。
イーサネットヘッダ、IPヘッダ、TCPヘッダ、FCSは、それぞれ、14バイト、20バイト、20バイト、4バイトのデータサイズを有する。これらのデータサイズは、イーサネットの規格として予め決められている。これに対し、アプリケーションデータのデータサイズは、イーサネットフレームの通信を実行する通信装置によって決定される。
(MSS(Maximum Segment Size))
1個のフレームに含まれるアプリケーションデータのデータサイズとして許容される最大データサイズのことを「MSS」と呼ぶ。MSSは、通信装置によって決定される設定値である。ギガビットイーサネットではなく、100BASE又は10BASEのような通常のイーサネットの規格では、1個のフレームの最大データサイズとして、1518バイトが予め決められている。従って、ギガビットイーサネットに対応せずに、通常のイーサネットのみに対応する通信装置は、通常、MSSとして1460(=1518−14−20−20−4)バイトを利用する。
これに対し、ギガビットイーサネットに対応する通信装置10は、MSSとして1460バイトを超える値を利用し得る。このように、MSSとして1460バイトを超える値が利用されると、通信対象のフレーム内のアプリケーションデータのデータサイズも、1460バイトよりも大きな値が利用される。このように、1460バイトよりも大きなデータサイズを有するアプリケーションデータを含むフレームのことを「ジャンボフレーム(Jumbo Frame)」と呼ぶ。なお、通信装置10のユーザは、ジャンボフレームを利用することを望むのか否かを選択することができる。
(S_MSS(Send MSS)とR_MSS(Receive MSS))
なお、後で詳しく述べるが、本実施例では、FIFO送信バッファFSBの記憶容量に応じて、送信フレームに含まれるアプリケーションデータの最大データサイズが決定され、FIFO受信バッファFRBの記憶容量に応じて、受信フレームに含まれるアプリケーションデータの最大データサイズが決定される。即ち、本実施例では、送信用MSSと受信用MSSとが決定される。以下では、送信用MSS、受信用MSSのことを、それぞれ、「S_MSS」、「R_MSS」と記載する。
(MTU(Maximum Transmission Unit))
IPヘッダのデータサイズ(20バイト)とTCPヘッダのデータサイズ(20バイト)とをMSSに加算して得られる値に相当する値のことを「MTU」と呼ぶ。なお、IPヘッダとTCPヘッダ(又はUDPヘッダ)とアプリケーションデータとの集合のことを、通常、「IPパケット」と呼ぶ、従って、MTUは、IPパケットのデータサイズとして許容される最大データサイズである。MSSと同様に、MTUも、通信装置によって決定される設定値である。通常のイーサネットのみに対応する通信装置は、通常、MTUとして1500(1460+20+20)バイトを決定する。ギガビットイーサネットに対応する通信装置10は、MTUとして1500バイトを超える値を決定し得る。
(S_MTU(Send MTU)とR_MTU(Receive MTU))
MSSの場合と同様に、本実施例では、送信用MTUと受信用MTUとが決定される。以下では、送信用MTU、受信用MTUのことを、それぞれ、「S_MTU」、「R_MTU」と記載する。
(他の設定値SV)
ここでは、通信装置10で利用される各設定値SV(即ち、通信装置10のメモリ24に記憶される各設定値SV)について説明する。なお、S_MSS、R_MSS、S_MTUS、及び、R_MTUの4個の設定値については、既に説明済みである。
(F_SIZE(Frame Size))
ユーザは、ジャンボフレームを利用することを望むのか否かを選択することができる(図4のS50参照)。ユーザは、ジャンボフレームを利用することを望む場合に、さらに、1個のフレームが有する最大データサイズを指定することができる(図4のS50参照)。F_SIZEは、後述の図4のS50において、ユーザによって指定される1個のフレームが有する最大データサイズである。
(S_MAX(Send MAX))
S_MAXは、FIFO送信バッファFSBが記憶可能な1個の送信フレームの最大データサイズである。S_MAXは、FIFO送信バッファFSBの記憶容量に応じて決定される。具体的に言うと、S_MAXは、FIFO送信バッファFSBの記憶容量から所定値αを減算して得られる値に相当する値である。所定値αは、通信装置10のベンダによって予め決められる値であり、FIFO送信バッファFSBの記憶容量と比べて極めて小さな値であれば、どのような値であってもよい。例えば、ベンダは、FIFO送信バッファFSBの記憶容量の全てが活用されることを望む場合には、所定値αとしてゼロを採用してもよいし、余裕をもたせて、所定値αとしてゼロより大きな値を採用してもよい。
(R_MAX(Receive MAX))
R_MAXは、FIFO受信バッファFRBが記憶可能な1個の受信フレームの最大データサイズである。R_MAXは、FIFO受信バッファFRBの記憶容量に応じて決定される。具体的に言うと、R_MAXは、FIFO受信バッファFRBの記憶容量から所定値βを減算して得られる値に相当する値である。本実施例では、αとβとは等しい。なお、上述したように、FIFO送信バッファFSBとFIFO受信バッファFRBとは、異なる記憶容量を有する。従って、S_MAXとR_MAXとは、異なる値を有する。
(ETH_MAX(Ethernet MAX)、V1、V2)
ETH_MAXは、通常のイーサネットで利用される1個のフレームの最大データサイズ(即ち1518バイト)である。また、V1は、イーサネットヘッダのデータサイズ(14バイト)とFCSのデータサイズ(4バイト)との和に相当する値(即ち18バイト)である。V2は、イーサネットヘッダのデータサイズ(14バイト)とIPヘッダのデータサイズ(20バイト)とTCPヘッダのデータサイズ(20バイト)とFCSのデータサイズ(4バイト)との和に相当する値(即ち58バイト)である。
図1に示されるHP_S_SIZE及びHP_R_SIZEについては、後述の第3実施例で詳しく説明する。なお、S_MAX、R_MAX、ETH_MAX、V1、V2は、通信装置10の出荷段階において、メモリ24に予め記憶されている。F_SIZEは、後述の図4のS50でメモリ24に記憶される。また、S_MSS、R_MSS、S_MTU、及び、R_MTUの4個の設定値は、後述の図4のS56又はS58でメモリ24に記憶される。
(2個のバッファFSB,FRBの記憶容量)
上述したように、本実施例の通信装置10は、高速の通信速度を実現可能なギガビットイーサネットに対応している。通信装置10は、ギガビットイーサネットを用いた通信の効率をより高めるために、上記のジャンボフレームを利用する。このようにジャンボフレームが利用される場合には、1個のフレームに含まれるデータのサイズが大きくなるために、FIFOバッファの記憶容量を大きくする必要がある。
従来の通信装置では、通常、FIFO送信バッファとFIFO受信バッファとは、同じ記憶容量を有する。従って、通信装置をジャンボフレームに対応させる場合には、通常、FIFO送信バッファとFIFO受信バッファとの両方の記憶容量が、同程度だけ大きく設定される。しかしながら、2個のバッファの両方の記憶容量を大きくするためには、比較的に多くのコストが必要である。このような実情に鑑みて、本実施例では、2個のバッファFSB,FRBのうちの一方の記憶容量が、他方の記憶容量よりも大きくなるように、通信装置10が予め設計されている。
例えば、プリンタは、データの送信よりもデータの受信(即ち印刷データの受信)を主に実行するために、通信装置10がプリンタである場合には、FIFO受信バッファFRBの記憶容量が、FIFO送信バッファFSBの記憶容量よりも大きくなるように、通信装置10が予め設計されている。これにより、プリンタが比較的に高頻度で実行する受信処理の効率を高めることができる。また、プリンタが比較的に低頻度で送信処理を実行するために、FIFO送信バッファFSBの記憶容量が比較的に小さくても、問題はない。従って、2個のバッファFSB,FRBのそれぞれを効率よく活用することができる。なお、通信装置10がプリンタである場合には、FIFO受信バッファFRBの記憶容量に応じて決定されるR_MAXは、FIFO送信バッファFSBの記憶容量に応じて決定されるS_MAXよりも大きくなる。
また、例えば、スキャナは、データの受信よりもデータの送信(即ちスキャンデータの送信)を主に実行するために、通信装置10がスキャナである場合には、FIFO送信バッファFSBの記憶容量が、FIFO受信バッファFRBの記憶容量よりも大きくなるように、通信装置10が予め設計されている。これにより、スキャナが比較的に高頻度で実行する送信処理の効率を高めることができる。また、スキャナが比較的に低頻度で受信処理を実行するために、FIFO受信バッファFRBの記憶容量が比較的に小さくても、問題はない。従って、2個のバッファFSB,FRBのそれぞれを効率よく活用することができる。なお、通信装置10がプリンタである場合には、FIFO送信バッファFSBの記憶容量に応じて決定されるS_MAXは、FIFO受信バッファFRBの記憶容量に応じて決定されるR_MAXよりも大きくなる。
このように、本実施例によると、通信装置10のベンダは、通信装置10の通信効率を高めるために、2個のバッファFSB,FRBの両方の記憶容量を大きくせずに済み、通信装置10の主機能に応じて、2個のバッファFSB,FRBのうちの一方の記憶容量のみを大きくする手法を採用し得る。従って、2個のバッファの両方が同じ記憶容量を有する従来の通信装置と比べると、低コストでジャンボフレームに対応する通信装置10を実現し得る。
なお、例えば、通信装置10が、印刷機能とスキャン機能との両方を実行可能な多機能機である場合には、通信装置10のベンダは、印刷機能とスキャン機能とのうち、主機能と考えられる一方の機能に対応するバッファ(例えば印刷が主機能である場合にはFIFO受信バッファ)の記憶容量が、他方の機能に対応するバッファの記憶容量よりも大きくなるように、通信装置10を設計してもよい。
なお、仮に、プリンタが有する2個のバッファの記憶容量が同じであれば、比較的に高頻度で受信処理が実行されるために、FIFO受信バッファの記憶容量が十分に活用されるが、比較的に低頻度で送信処理が実行されるために、FIFO送信バッファの記憶容量が十分に活用されない。即ち、FIFO送信バッファが過剰な記憶容量を有することになる。同様に、スキャナが有する2個のバッファの記憶容量が同じであれば、FIFO受信バッファが過剰な記憶容量を有することになる。これに対し、本実施例では、2個のバッファFSB,FRBの記憶容量が適切に決定されるために、一方のバッファが十分に活用されない、即ち、一方のバッファが過剰な記憶容量を有する、という問題が発生するのを抑制することができる。即ち、通信装置10は、2個のバッファFSB,FRBのそれぞれを効率よく活用して、データの通信を効率よく実行することができる。
(通信装置10が実行する通信処理)
上述したように、通信装置10は、TCPを利用した通信と、UDPを利用した通信と、を実行可能である。まず、図2を参照して、非TCPを利用した通信の内容を説明し、次いで、図3を参照して、TCPを利用した通信の内容を説明する。なお、上述したように、通信装置10は、送信用及び受信用の2種類のMSS(S_MSS、R_MSS)を利用すると共に、送信用及び受信用の2種類のMTU(S_MTUS、R_MTU)を利用する。これに対し、PC100は、送信バッファの記憶容量と受信バッファの記憶容量とが同じであり、その結果、1種類のMSSのみを利用すると共に(即ち送信用及び受信用で共通のMSSを利用すると共に)、1種類のMTUのみを利用する(即ち送信用及び受信用で共通のMTUを利用する)。
(非TCPのフレームの受信(図2))
後で詳しく説明するが、TCPでは、一対のデバイスが通信対象の対象データの通信を実行する前に、一対のデバイスの間でいわゆるネゴシエーションが実行され、その結果、一対のデバイスの間で通信セッションが確立される。これに対し、UDPでは、一対のデバイスの間でネゴシエーションが実行されない。
図2に示されるように、通信装置10とPC100との間で通信セッションが確立されていない状態で、PC100は、PC100のMTU以下のデータサイズX1を有するIPパケット(即ちIPヘッダとUDPヘッダとアプリケーションデータとの集合)を含むUDPのフレーム(例えばSNMPのリクエスト)を、通信装置10に送信する。
UDPのフレームは、通信装置10のPHYチップ50で受信され、PHYチップ50を介してFIFO受信バッファFRBに記憶される。この場合、通信装置10の処理実行部36(図1参照)は、FIFO受信バッファFRBに記憶されているUDPの受信フレームのための受信処理(S10〜S14の処理)を実行する。S10では、処理実行部36は、UDPの受信フレームに含まれるIPパケットのデータサイズX1が、メモリ24に記憶されているR_MTUよりも大きいのか否かを判断する。
データサイズX1がR_MTU以下である場合(S10でNOの場合)には、S12において、処理実行部36は、UDPの受信フレームをFIFO受信バッファFRBからメモリバッファMBに移動させる処理と、UDPの受信フレームに含まれるデータに従った処理(例えばSNMPのレスポンスの作成等)と、を実行する。
一方において、データサイズX1がR_MTUよりも大きい場合(S10でYESの場合)には、S14において、処理実行部36は、FIFO受信バッファFRBに記憶されているUDPの受信フレームを、メモリバッファMBに移動させずに、破棄する(即ち消去する)。
(非TCPのフレームの送信)
また、処理実行部36は、PC100にUDPのフレームを送信すべき際(例えばSNMPのリクエストに応じたレスポンスを送信すべき際)に、UDPの送信フレームのための送信処理(S20の処理及び送信フレームの移動処理)を実行する。S20では、処理実行部36は、メモリバッファMB内において、UDPの送信フレームを生成する。この際に、処理実行部36は、メモリ24に記憶されているS_MTU以下のデータサイズX2を有するIPパケットを含むUDPの送信フレームを生成する。即ち、処理実行部36は、S_MTUより大きいデータサイズを有するIPパケットを含むUDPの送信フレームの生成を禁止する。
次いで、処理実行部36は、S20で生成されるUDPの送信フレームを、FIFO送信バッファFSBに移動させる。これにより、FIFO送信バッファFSBに記憶されているUDPの送信フレームが、PHYチップ50を介して、PC100に送信される。
PC100は、通信装置10のS10の処理と同様に、通信装置10から送信されるUDPのフレームに含まれるIPパケットのデータサイズが、PC100のMTUよりも大きいのか否かを判断する。そして、PC100は、通信装置10のS12及び14の処理と同様に、判断結果に応じて、UDPのフレームの処理又は破棄を実行する。
(TCPのフレームの受信(図3))
図3に示されるように、PC100は、TCPのフレームを通信装置10に送信すべき際に、まず、SYN信号を通信装置10に送信する。SYN信号は、PC100に設定されているPC100のMSSを含む。この場合、通信装置10の処理実行部36は、SYN/ACK信号をPC100に送信する。SYN/ACK信号は、メモリ24に記憶されているR_MSS(即ち通信装置10に設定されている通信装置10のR_MSS)を含む。次いで、PC100は、ACK信号を通信装置10に送信する。これにより、通信装置10とPC100との間でネゴシエーションが終了し、通信装置10とPC100との間に通信セッションが確立される。
次いで、処理実行部36は、PC100から受信されるTCPの受信フレームのための受信処理(図3のS30〜S36の処理)を実行する。S30では、処理実行部36は、PC100のMSSと、通信装置10のR_MSSと、を用いて、第1のMTUを決定する。具体的に言うと、処理実行部36は、まず、PC100のMSSと通信装置10のR_MSSとのうち、小さい方の値を選択する。次いで、処理実行部36は、選択済みの値に40バイト(IPヘッダのデータサイズ+TCPヘッダのデータサイズ)を加算することによって、第1のMTUを決定する。
通信装置10とPC100との間に通信セッションが確立されている状態で、PC100は、TCPのフレーム(例えば印刷データ)を通信装置10に送信する。TCPのフレームに含まれるIPパケット(即ちIPヘッダとUDPヘッダとアプリケーションデータとの集合)は、データサイズX3を有する。なお、PC100も、PC100のMSSと通信装置10のR_MSSとのうち、小さい方の値を選択して、選択済みの値に40バイトを加算することによって、特定のMTU(即ち上記の第1のMTUと同じ値を有するMTU)を決定する。そして、PC100は、通常、決定済みの特定のMTU(即ち第1のMTU)以下のデータサイズX3を有するIPパケットを含むTCPのフレームを、通信装置10に送信する。
TCPのフレームは、通信装置10のPHYチップ50で受信され、PHYチップ50を介してFIFO受信バッファFRBに記憶される。この場合、S32において、処理実行部36は、FIFO受信バッファFRBに記憶されているTCPの受信フレームに含まれるIPパケットのデータサイズX3が、S30で決定された第1のMTUよりも大きいのか否かを判断する。
上述したように、PC100は、通常、第1のMTU以下のデータサイズX3を有するIPパケットを含むTCPのフレームを、通信装置10に送信する。従って、S32では、通常、データサイズX3が第1のMTU以下であると判断される(S32でNO)。この場合、S34において、処理実行部36は、TCPの受信フレームをFIFO受信バッファFRBからメモリバッファMBに移動させる処理と、TCPの受信フレームに含まれるデータに従った処理(例えば印刷等)と、を実行する。
なお、仮に、通信装置10とPC100との両者が、PC100のMSSと通信装置10のR_MSSとのうちの大きい方の値に基づいて決定されるMTUを利用する構成を採用すると、例えば、PC100は、R_MAXを超えるデータサイズを有するTCPのフレームを、通信装置10に送信し得る。この場合、通信装置10は、PC100から送信されるTCPのフレームをFIFO受信バッファに記憶することができない(即ちTCPのフレームを受信することができない)。これに対し、本実施例のように、通信装置10とPC100との両者が、PC100のMSSと通信装置10のR_MSSとのうちの小さい方の値に基づいて決定されるMTUを利用する構成を採用すると、通信装置10は、PC100から送信されるTCPのフレームを確実に受信することができる。
なお、例えば、データサイズX3が第1のMTUよりも大きい場合(S32でYESの場合)には、S36において、処理実行部36は、FIFO受信バッファFRBに記憶されているTCPの受信フレームを、メモリバッファMBに移動させずに、破棄する(即ち消去する)。
(TCPのフレームの送信)
また、通信装置10とPC100との間に通信セッションが確立されている状態で、処理実行部36は、PC100にTCPのフレームを送信すべき際(例えば、印刷データの受信確認を送信すべき際、スキャンデータを送信すべき際等)に、TCPの送信フレームのための送信処理(S40の処理及び送信フレームの移動処理)を実行する。
S40では、処理実行部36は、メモリバッファMB内において、TCPの送信フレームを生成する。この際に、処理実行部36は、まず、PC100のMSSと通信装置10のR_MSSと通信装置10のS_MSSとのうち、最も小さい値を選択する。次いで、処理実行部36は、選択済みの値に40バイト(IPヘッダのデータサイズ+TCPヘッダのデータサイズ)を加算することによって、第2のMTUを決定する。次いで、処理実行部36は、第2のMTU以下のデータサイズX4を有するIPパケットを含むTCPの送信フレームを生成する。即ち、処理実行部36は、第2のMTUよりも大きなデータサイズを有するIPパケットを含むTCPの送信フレームの生成を禁止する。
次いで、処理実行部36は、S40で生成されるTCPの送信フレームを、FIFO送信バッファFSBに移動させる。これにより、FIFO送信バッファFSBに記憶されているTCPの送信フレームが、PHYチップ50を介して、PC100に送信される。
なお、上述したように、PC100は、PC100のMSSと通信装置10のR_MSSとのうちの小さい方の値に基づいて、上記の特定のMTUを決定する。PC100は、通信装置10のS32の処理と同様に、通信装置10から送信されるTCPのフレームに含まれるIPパケットのデータサイズが、上記の特定のMTUよりも大きいのか否かを判断する。そして、PC100は、通信装置10のS34及び36の処理と同様に、判断結果に応じて、TCPのフレームの処理又は破棄を実行する。
なお、S40では、PC100のMSSと通信装置10のR_MSSと通信装置10のS_MSSのうち、最も小さい値に基づいて第2のMTUが決定され、第2のMTU以下のTCPのフレームがPC100に送信される。PC100で利用される上記の特定のMTUは、必ず、第2のMTU以上になる。従って、PC100は、通信装置10から送信されるTCPのフレームを確実に受信することができる。なお、S40において、PC100のMSS及び通信装置10のR_MSSのみならず、通信装置10のS_MSSも考慮する理由は、通信装置10のFIFO送信バッファFSBよりも大きなデータサイズを有するTCPの送信フレームが生成されるのを抑制するためである。
上述したように、TCPでは、通信装置10が内部的に決定したR_MSSが、PC100のMSSよりも大きい場合には、通信装置10のR_MSSではなく、PC100のMSSを基準として(即ちPC100のMSSから算出される第1のMTUを基準として)、受信フレームを破棄するのか否かが決定される。即ち、TCPでは、通信装置10の内部的なR_MSSと、実際に基準として利用されるMSSと、が異なり得る。従って、通信装置10のR_MSS、実際に基準として利用されるMSSを、それぞれ、「内部的な受信用最大データサイズ」、「基準の受信用最大データサイズ」と区別して呼ぶことができる。
同様に、TCPでは、通信装置10のS_MSSと、送信フレームに含まれるIPパケットのデータサイズの基準となるMSS(即ち第2のMSSの算出の基準となるMSS)と、が異なり得る。従って、通信装置10のS_MSS、実際に基準として利用されるMSSを、それぞれ、「内部的な送信用最大データサイズ」、「基準の送信用最大データサイズ」と区別して呼ぶことができる。
(設定処理(図4))
通信装置10のユーザは、ジャンボフレームに関する設定画面を表示させるための所定の操作を操作部12に加えることができる。この場合、図4に示されるように、S50において、決定部30(図1参照)は、設定画面を表示部14に表示させる。ユーザは、設定画面を見ながら、操作部12を操作して、ジャンボフレームを利用するのか(ジャンボフレーム設定=ON)、あるいは、ジャンボフレームを利用しないのか(ジャンボフレーム設定=OFF)、を選択することができる。
ユーザは、ジャンボフレーム設定=ONを選択する場合に、さらに、操作部12を操作して、所定の数値範囲内から1個の値を、F_SIZEの設定値として選択することができる。上記の所定の数値範囲では、ETH_MAXが下限値として設定されており、S_MAXとR_MAXとのうちの大きい方の値が上限値として設定されている。
例えば、通信装置10がプリンタである場合には、R_MAX>S_MAXであるために、R_MAXが、上記の所定の数値範囲の上限値として設定される。従って、通信装置10がプリンタである場合には、F_SIZEは、R_MAXに従って決定される(換言すると、FIFO受信バッファFRBの記憶容量に従って決定される)、と言える。また、例えば、通信装置10がスキャナである場合には、S_MAX>R_MAXであるために、S_MAXが、上記の所定の数値範囲の上限値として設定される。従って、通信装置10がスキャナである場合には、F_SIZEは、S_MAXに従って決定される(換言すると、FIFO送信バッファFSBの記憶容量に従って決定される)、と言える。
決定部30は、ユーザによって指定された値を、F_SIZEの設定値として、メモリ24に記憶させる。なお、ユーザが、上記の所定の数値範囲に含まれない値を、F_SIZEの設定値として指定する場合に、決定部30は、当該値がF_SIZEとして適切でないことを示すメッセージを、ユーザに通知してもよい。
S52では、決定部30は、ユーザによってジャンボフレーム設定=ONが選択されたのか否かを判断する。ジャンボフレーム設定=ONが選択された場合(S52でYESの場合)には、S54に進み、ジャンボフレーム設定=OFFが選択された場合(S52でNOの場合)には、S58に進む。
(ジャンボフレーム環境であるのか否かの判断(S54))
S54では、判断部38(図1参照)は、LAN4がジャンボフレームを利用する環境であるのか否かを判断する。より具体的に言うと、例えば、通信装置10が、LAN4に含まれるHUB(図示省略)を介して、PC100と通信可能に接続されている場合には、判断部38は、HUBから、通信装置10とHUBとの間で実行可能な通信速度に関する信号を取得する。また、例えば、通信装置10が、HUBを介さずに、PC100と通信可能に接続されている場合には、判断部38は、PC100から、通信装置10とPC100との間で実行可能な通信速度に関する信号を取得する。通信速度に関する上記の信号は、10BASE、100BASE、及び、1000BASEのいずれかを示す。
例えば、通信速度が1000BASE(即ちギガビット)である場合には、LAN4は、ジャンボフレームを利用する環境であり得る。従って、判断部38は、通信速度に関する上記の信号が、1000BASE(例えば1000BASE−T)を示す場合には、LAN4がジャンボフレームを利用する環境であると判断して(S54でYESと判断して)、S56に進む。一方において、例えば、通信速度が10BASE又は100BASEである場合には、LAN4は、通常、ジャンボフレームを利用する環境ではない。従って、判断部38は、通信速度に関する上記の信号が、10BASE又は100BASE(例えば100BASE−T)を示す場合には、LAN4がジャンボフレームを利用する環境でないと判断して(S54でNOと判断して)、S58に進む。
S56では、決定部30は、S50でユーザによって指定されたF_SIZEを用いて、S_MSSとR_MSSとS_MTUとR_MTUとを決定する。S56の処理の内容は、後で詳しく説明する。
(ジャンボフレームが利用されない場合(S58))
S58では、決定部30は、メモリ24に記憶されているETH_MAXを用いて、S_MSSとR_MSSとS_MTUとR_MTUとを決定する。具体的に言うと、決定部30は、まず、メモリ24からETH_MAX、V1、及び、V2を取得する。次いで、決定部30は、ETH_MAXからV2を減算することによって得られる値(即ち1460バイト)を、S_MSS及びR_MSSとして決定する。即ち、S58では、決定部30は、同じ値を有するS_MSS及びR_MSSを決定する。次いで、決定部30は、決定した値(即ち1460バイト)を、S_MSS及びR_MSSの設定値として、メモリ24に記憶させる。
さらに、決定部30は、ETH_MAXからV1を減算することによって得られる値(即ち1500バイト)を、S_MTU及びR_MTUとして決定する。即ち、S58では、決定部30は、同じ値を有するS_MTU及びR_MTUを決定する。次いで、決定部30は、決定した値(即ち1500バイト)を、S_MTU及びR_MTUの設定値として、メモリ24に記憶させる。
(ジャンボフレームが利用される場合(S56))
S56の内容について詳しく説明する。なお、以下では、S_MSS、R_MSS、S_MTU、及び、R_MTUの4個の値のことを、まとめて、「4個の最大データサイズ」と呼ぶ。S56では、第1の取得部31(図1参照)は、メモリ24内のデータを読み込むことによって、メモリ24に記憶されているS_MAX及びR_MAXを取得する。S56では、さらに、第2の取得部32(図1参照)は、メモリ24内のデータを読み込むことによって、メモリ24に記憶されているF_SIZEを取得する。
(4個の最大データサイズの上限値(図5))
決定部30は、4個の最大データサイズのそれぞれの上限値として、図5に示される各数式が示す各値を採用する。例えば、決定部30は、S_MTUの上限値として、S_MAXからV1が減算された値を採用する。即ち、決定部30は、S_MSSの上限値として、S_MAXからV2が減算された値を採用する。
仮に、S_MTUの値が、S_MAXからV1が減算された値よりも大きくなると、FIFO送信バッファFSBが記憶不可能なデータサイズを有する送信フレームが生成され得る。これに対し、図5に示されるように、S_MAXの値に基づいて、S_MTU及びS_MSSの上限値が適切に決められていると、FIFO送信バッファFSBが記憶不可能なデータサイズを有する送信フレームが生成されるのを防止することができる。
同様に、図5に示されるように、R_MAXの値に基づいて、R_MTU及びR_MSSの上限値が適切に決められていると、FIFO受信バッファFRBが記憶不可能な受信フレームがLAN4から受信されるのを防止することができる。
(具体的な決定手法(図6))
決定部30は、図6に示される各数式に従って、4個の最大データサイズのそれぞれを決定する。図6に示される各数式をプリンタに適用すると、図7に示されるように、4個の最大データサイズのそれぞれが決定され、図6に示される各数式をスキャナに適用すると、図8に示されるように、4個の最大データサイズのそれぞれが決定される。
(第1具体例(プリンタの場合)(図7))
上述したように、通信装置10がプリンタである場合には、R_MAX>S_MAXの関係が満足し、さらに、R_MAX≧F_SIZEの関係が満足する(図4のS50参照)。図7に示されるように、決定部30は、S_MAXとR_MAXとF_SIZEとの関係(即ち、S_MAX≧F_SIZE、又は、R_MAX≧F_SIZE>S_MAX)に基づいて、S_MTU及びS_MSSを決定する。
一方において、決定部30は、S_MAXとR_MAXとF_SIZEとの関係にかかわらず、R_MTU及びR_MSSを決定する。具体的に言うと、決定部30は、F_SIZEを用いて得られる値、即ち、F_SIZE−V1、F_SIZE−V2を、それぞれ、R_MTU、R_MSSとして決定する。
S_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)を、S_MTU、R_MTUとして決定する。また、S_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)を、S_MSS、R_MSSとして決定する。
なお、S_MAX≧F_SIZEである場合には、決定部30は、4個の最大データサイズを決定する際に、F_SIZEから所定値(V1、V2)を減算する計算を実行して決定してもよいし、メモリ24に予め格納されている値(例えば、F_SIZE−V1に相当する値、F_SIZE−V2に相当する値)を取得して決定してもよい。以下でも、「・・・を用いて得られる値を、・・・として決定する」と記載する場合には、計算して決定する手法と、メモリ24から取得して決定する手法と、のどちらの手法が利用されてもよい。
R_MAX≧F_SIZE>S_MAXである場合には、決定部30は、S_MAXを用いて得られる値(S_MAX−V1)、F_SIZEを用いて得られる値(F_SIZE−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
R_MAX≧F_SIZE>S_MAXである場合には、決定部30は、S_MAXを用いて得られる値(S_MAX−V2)、F_SIZEを用いて得られる値(F_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
なお、仮に、R_MAX≧F_SIZE>S_MAXである場合に、S_MAXよりも大きいF_SIZEを用いて、S_MTU及びS_MSSが決定されると、通信装置10によって生成されるフレームのデータサイズが、FIFO送信バッファFSBの記憶容量を超えてしまう可能性がある。この場合、通信装置10は、フレームを送信することができない。このような事象が発生するのを抑制するために、図7の例では、R_MAX≧F_SIZE>S_MAXである場合に、S_MAXを用いて、S_MTU及びS_MSSが決定される。
(第2具体例(スキャナの場合)(図8))
上述したように、通信装置10がスキャナである場合には、S_MAX>R_MAXの関係が満足し、さらに、S_MAX≧F_SIZEの関係が満足する(図4のS50参照)。図8に示されるように、決定部30は、S_MAXとR_MAXとF_SIZEとの関係(即ち、R_MAX≧F_SIZE、又は、S_MAX≧F_SIZE>R_MAX)に基づいて、R_MTU及びR_MSSを決定する。
一方において、決定部30は、S_MAXとR_MAXとF_SIZEとの関係にかかわらず、S_MTU及びS_MSSを決定する。具体的に言うと、決定部30は、F_SIZEを用いて得られる値、即ち、F_SIZE−V1、F_SIZE−V2を、それぞれ、S_MTU、S_MSSとして決定する。
R_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)を、S_MTU、R_MTUとして決定する。また、S_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)を、S_MSS、R_MSSとして決定する。
S_MAX≧F_SIZE>R_MAXである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)、R_MAXを用いて得られる値(R_MAX−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
S_MAX≧F_SIZE>R_MAXである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)、R_MAXを用いて得られる値(R_MAX−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
なお、仮に、S_MAX≧F_SIZE>R_MAXである場合に、R_MAXよりも大きいF_SIZEを用いて、R_MTU及びR_MSSが決定されると、PC100から送信されるフレームのデータサイズが、FIFO受信バッファFRBの記憶容量を超えてしまう可能性がある。この場合、通信装置10は、フレームを受信することができない。このような事象が発生するのを抑制するために、図8の例では、S_MAX≧F_SIZE>R_MAXである場合に、R_MAXを用いて、R_MTU及びR_MSSが決定される。
(第1実施例の効果)
上述したように、図7の第1具体例に示されるように、R_MAX≧F_SIZE>S_MAXである場合には、通信装置10は、FIFO送信バッファFSBの記憶容量に応じて(即ち、当該記憶容量に応じて決定されるS_MAXに基づいて)、S_MTU及びS_MSSを決定すると共に、FIFO受信バッファFRBの記憶容量に応じて(即ち、当該記憶容量に応じて決定されるR_MAXを上限値として指定されるF_SIZEに基づいて)、R_MTU及びR_MSSを決定する。
また、図8の第2具体例に示されるように、S_MAX≧F_SIZE>R_MAXである場合には、通信装置10は、FIFO送信バッファFSBの記憶容量に応じて(即ち、当該記憶容量に応じて決定されるS_MAXを上限値としてユーザによって指定されるF_SIZEに基づいて)、S_MTU及びS_MSSを決定すると共に、FIFO受信バッファFRBの記憶容量に応じて(即ち、当該記憶容量に応じて決定されるR_MAXに基づいて)、R_MTU及びR_MSSを決定する。
即ち、本実施例によると、通信装置10は、2個のバッファFSB,FRBのそれぞれの記憶容量に応じた適切な4個の最大データサイズを決定することができる。このために、通信装置10は、2個のバッファFSB,FRBのそれぞれを効率よく活用することができる。この結果、通信装置10は、S_MTU及びS_MSSを用いて、送信フレームのための送信処理を効率よく実行することができると共に、R_MTU及びR_MSSを用いて、受信フレームのための受信処理を効率よく実行することができる。
(対応関係)
図4のS56で決定されるS_MTU及びS_MSSの両方が「送信用最大データサイズ」の一例であり、図4のS56で決定されるR_MTU及びR_MSSの両方が「受信用最大データサイズ」の一例である。なお、S_MTUが「送信用最大データサイズ」の一例である場合には、送信フレームに含まれるIPパケットが「送信対象データ」の一例である。S_MSSが「送信用最大データサイズ」の一例である場合には、送信フレームに含まれるアプリケーションデータが「送信対象データ」の一例である。また、R_MTUが「受信用最大データサイズ」の一例である場合には、受信フレームに含まれるIPパケットが「受信対象データ」の一例である。R_MSSが「受信用最大データサイズ」の一例である場合には、受信フレームに含まれるアプリケーションデータが「受信対象データ」の一例である。
(第2実施例)
第1実施例と異なる点を説明する。本実施例では、図4のS56の処理の内容が第1実施例と異なる。図9に示されるように、図4のS56において、決定部30は、S_MTU、S_MSS、及び、R_MSSについて、第1実施例と同様の手法で決定する。ただし、決定部30は、R_MTUについて、第1実施例と異なる手法(図9に示される手法)で決定する。具体的に言うと、決定部30は、F_SIZEの大きさにかかわらず、R_MAXを用いて得られる値(R_MAX−V1)を、R_MTUとして決定する。
(第1具体例(プリンタの場合)(図10))
図10は、通信装置10がプリンタである場合に、本実施例のS56の処理で決定される4個の最大データサイズを示す。図10では、第1実施例の第1具体例(図7)と異なる部分をハッチングで示している。なお、プリンタの具体例を示す以下の図面(即ち、図13、図15、図18)でも、第1実施例の第1具体例(図7)と異なる部分をハッチングで示している。
S_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)、R_MAXを用いて得られる値(R_MAX−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
また、R_MAX≧F_SIZE>S_MAXである場合には、決定部30は、S_MAXを用いて得られる値(S_MAX−V1)、R_MAXを用いて得られる値(R_MAX−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
(第2具体例(スキャナの場合)(図11))
図11は、通信装置10がスキャナである場合に、本実施例のS56の処理で決定される4個の最大データサイズを示す。図11では、第1実施例の第2具体例(図8)と異なる部分をハッチングで示している。なお、スキャナの具体例を示す以下の図面(例えば、図14、図16、図19)でも、第1実施例の第2具体例(図8)と異なる部分をハッチングで示している。
R_MAX≧F_SIZEである場合でも、S_MAX≧F_SIZE>R_MAXである場合でも、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)、R_MAXを用いて得られる値(R_MAX−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
(第2実施例の効果)
本実施例では、第1実施例と同様の効果が得られる。さらに、本実施例では、通信装置10は、F_SIZEの値にかかわらず、R_MTUとしてR_MAX−V1を決定する。この結果、非TCPの受信フレームのための受信処理で利用されるR_MTUの値が大きくなり、受信フレームが破棄され難くなる(図2参照)。即ち、本実施例では、通信装置10は、FIFO受信バッファFRBを効率よく活用することができ、この結果、受信フレームのための受信処理を効率よく実行することができる。
(第3実施例)
上記の各実施例と異なる点を説明する。本実施例では、図4のS56の処理の内容が上記の各実施例と異なる。本実施例では、図4のS56において、さらに、第3の取得部33が、メモリ24内のデータを読み込むことによって、メモリ24に記憶されているHP_S_SIZE(High Performance Send SIZE)及びHP_R_SIZE(High Performance Receive SIZE)を取得する。
(HP_S_SIZE)
HP_S_SIZEは、S_MAXの1/2倍に相当する値である。従って、FIFO送信バッファFSBは、HP_S_SIZEのデータサイズを有する2個の送信フレームを同時的に記憶することができる。仮に、HP_S_SIZEのデータサイズを有する送信フレームが生成される構成を採用すると、処理実行部36は、FIFO送信バッファFSBに1個の送信フレームが記憶されている状態(即ち当該1個の送信フレームがLAN4に送信されている過程)において、次の1個の送信フレームを生成してメモリバッファMBからFIFO送信バッファFSBに当該次の1個の送信フレームを移動させ得る。このように、並列的な処理を実行し得るために、送信処理の効率が高くなり得る。
従って、HP_S_SIZEのデータサイズを有する送信フレームのための送信処理の効率は、通常、S_MAXのデータサイズを有する送信フレームのための送信処理の効率よりも高い。なお、HP_S_SIZEは、S_MAXの1/2倍に相当する値でなくてもよく、S_MAXの1/3倍に相当する値であってもよいし、S_MAXの1/4倍に相当する値であってもよい。即ち、一般的に言うと、HP_S_SIZEは、S_MAXの1/m倍(mは2以上の整数)に相当する値であってもよい。
(HP_R_SIZE)
仮に、R_MAXのデータサイズを有する1個の受信フレームが受信されると、当該1個の受信フレームがFIFO受信バッファFRBからメモリバッファMBに移動されない限り、次の1個の受信フレームを受信することができない。即ち、R_MAXのデータサイズを有する受信フレームを受信する状況では、フレームの取りこぼし(dropping of frame)が発生し得る。
これに対し、仮に、受信フレームのデータサイズが、R_MAXの1/2倍に相当するデータサイズであれば、1個の受信フレームがFIFO受信バッファFRBに記憶されている状況であっても、次の1個の受信フレームを受信してFIFO受信バッファFRBに記憶させることができる。即ち、フレームの取りこぼしの発生を抑制することができる。フレームの取りこぼしの発生を抑制するために、本実施例では、R_MAXの1/2倍に相当する値であるHP_R_SIZEを利用する。
上記の説明から明らかなように、HP_R_SIZEのデータサイズを有する受信フレームのための受信処理の効率は、通常、R_MAXのデータサイズを有する受信フレームのための受信処理の効率よりも高い。なお、一般的に言うと、HP_R_SIZEは、R_MAXの1/n倍(nは2以上の整数)に相当する値であってもよい。
(具体的な決定手法(図12))
本実施例では、図4のS56の処理の内容が上記の各実施例と異なる。図12に示されるように、図4のS56において、決定部30は、S_MTU及びR_MTUについて、上記の各実施例と同様の手法で決定する。ただし、決定部30は、S_MSS及びR_MSSについて、上記の各実施例と異なる手法(図12に示される手法)で決定する。
(第1具体例(プリンタの場合)(図13))
図13は、通信装置10がプリンタである場合に、本実施例のS56の処理で決定されるS_MSS及びR_MSSを示す。本実施例の第1具体例では、R_MAX>HP_R_SIZE>S_MAX>HP_S_SIZEの関係が満足し、さらに、R_MAX≧F_SIZEの関係が満足する(図4のS50参照)。
HP_S_SIZE≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)を、S_MSS及びR_MSSとして決定する。
また、HP_R_SIZE≧F_SIZE>HP_S_SIZEである場合には、決定部30は、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V2)、F_SIZEを用いて得られる値(F_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
また、R_MAX≧F_SIZE>HP_R_SIZEである場合には、決定部30は、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V2)、HP_R_SIZEを用いて得られる値(HP_R_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
(第2具体例(スキャナの場合)(図14))
図14は、通信装置10がスキャナである場合に、本実施例のS56の処理で決定されるS_MSS及びR_MSSを示す。本実施例の第2具体例では、S_MAX>HP_S_SIZE>R_MAX>HP_R_SIZEの関係が満足し、さらに、S_MAX≧F_SIZEの関係が満足する(図4のS50参照)。
HP_R_SIZE≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)を、S_MSS及びR_MSSとして決定する。
また、HP_S_SIZE≧F_SIZE>HP_R_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)、HP_R_SIZEを用いて得られる値(HP_R_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
また、S_MAX≧F_SIZE>HP_S_SIZEである場合には、決定部30は、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V2)、HP_R_SIZEを用いて得られる値(HP_R_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
(HP_S_SIZE=S_MAXの場合)
上述したように、図13の第1具体例及び図14の第2具体例では、HP_S_SIZEは、S_MAXの1/2倍に相当する値である。ただし、図15の第3具体例及び図16の第4具体例では、HP_S_SIZE=S_MAXを採用する。
上述したように、S_MAXの1/2倍に相当するデータサイズ(HP_S_SIZE)を有する送信フレームが生成される場合には、並列的な処理を実行し得るために、送信処理の効率が高くなり得る。ただし、送信処理の効率は、並列的な処理が実行されても、それほど大きく変わるわけではない。このような実情に鑑みて、以下の第3具体例及び第4具体例では、HP_S_SIZE=S_MAXを採用する。即ち、一般的に言うと、HP_S_SIZEは、S_MAXの1/m倍(mは1以上の整数)に相当する値であってもよい。m=1である場合には、HP_S_SIZEのデータサイズを有する送信フレームのための送信処理の効率は、S_MAXのデータサイズを有する送信フレームのための送信処理の効率と同じである。従って、一般的に言うと、HP_S_SIZEのデータサイズを有する送信フレームのための送信処理の効率は、S_MAXのデータサイズを有する送信フレームのための送信処理の効率以上である。
ただし、上述したように、R_MAXのデータサイズを有する受信フレームを受信する状況では、フレームの取りこぼしが発生し得る。特に、通信相手が複数個のフレームを高頻度で送信する場合には、フレームの取りこぼしが発生し易い。即ち、フレームの取りこぼしの発生の有無は、通信相手の送信頻度に依存するところが大きく、通信装置10は、当該送信頻度をコントロールすることができない。従って、可能な限り、R_MAXの1/2倍に相当するデータサイズを有する受信フレームを受信する状況になるように、以下の第3具体例及び第4具体例でも、上記の第1具体例及び第2具体例と同様に、R_MAXの1/2倍に相当する値を有するHP_R_SIZEを利用する。即ち、HP_R_SIZE=R_MAXを採用しない。
(第3具体例(プリンタの場合)(図15))
本実施例の第3具体例では、R_MAX>HP_R_SIZE>S_MAX=HP_S_SIZEの関係が満足し、さらに、R_MAX≧F_SIZEの関係が満足する(図4のS50参照)。
S_MAX(=HP_S_SIZE)≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)を、S_MSS及びR_MSSとして決定する。
また、HP_R_SIZE≧F_SIZE>S_MAX(=HP_S_SIZE)である場合には、決定部30は、S_MAX(=HP_S_SIZE)を用いて得られる値(S_MAX−V2)、F_SIZEを用いて得られる値(F_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
また、R_MAX≧F_SIZE>HP_R_SIZEである場合には、決定部30は、S_MAX(=HP_S_SIZE)を用いて得られる値(S_MAX−V2)、HP_R_SIZEを用いて得られる値(HP_R_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
(第4具体例(スキャナの場合)(図16))
本実施例の第4具体例では、S_MAX=HP_S_SIZE>R_MAX>HP_R_SIZEの関係が満足し、さらに、S_MAX≧F_SIZEの関係が満足する(図4のS50参照)。
HP_R_SIZE≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)を、S_MSS及びR_MSSとして決定する。
また、S_MAX(=HP_S_SIZE)≧F_SIZE>HP_R_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V2)、HP_R_SIZEを用いて得られる値(HP_R_SIZE−V2)を、それぞれ、S_MSS、R_MSSとして決定する。この場合、S_MSSとR_MSSとは、異なる値を有する。
(第3実施例の効果)
本実施例では、第1実施例と同様の効果が得られる。さらに、本実施例では、通信装置10は、可能な限り(即ちF_SIZE>HP_S_SIZEである場合に)、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V2)を、S_MSSとして決定する。この場合、通信装置10は、図3のS40において、HP_S_SIZEを用いて得られる値(即ちS_MSS)に基づいて第2のMTUを算出し得る。即ち、通信装置10は、図3のS40において、HP_S_SIZEのデータサイズを有する送信フレームを生成し得る。従って、通信装置10は、TCPの送信フレームのための送信処理を効率よく実行し得る。
また、通信装置10は、可能な限り(即ちF_SIZE>HP_R_SIZEである場合に)、HP_R_SIZEを用いて得られる値(HP_R_SIZE−V2)を、R_MSSとして決定する。この場合、例えば、図3において、通信装置10がSYN/ACK信号を送信する際に、通信装置10は、HP_S_SIZEを用いて得られる値(即ちR_MSS)を、PC100に通知する。従って、PC100は、HP_S_SIZEのデータサイズを有する受信フレームを生成し得る。この結果、通信装置10は、HP_S_SIZEのデータサイズを有する受信フレームを受信し得る。従って、通信装置10は、TCPの受信フレームのための受信処理を効率よく実行し得る。
なお、本実施例では、HP_S_SIZE、HP_R_SIZEが、それぞれ、「送信用高効率フレームサイズ」、「受信用高効率フレームサイズ」の一例である。
(第4実施例)
第3実施例と異なる点を説明する。本実施例では、図4のS56の処理の内容が第3実施例と異なる。図17に示されるように、図4のS56において、決定部30は、R_MTU、S_MSS、及び、R_MSSについて、第3実施例と同様の手法で決定する。ただし、決定部30は、S_MTUについて、第3実施例と異なる手法(図17に示される手法)で決定する。
(第1具体例(プリンタの場合)(図18))
本実施例の第1具体例では、R_MAX>HP_R_SIZE>S_MAX>HP_S_SIZEの関係が満足し、さらに、R_MAX≧F_SIZEの関係が満足する(図4のS50参照)。
HP_S_SIZE≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)を、S_MTU及びR_MTUとして決定する。
また、R_MAX≧F_SIZE>HP_S_SIZEである場合には、決定部30は、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V1)、F_SIZEを用いて得られる値(F_SIZE−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
上述したように、第1具体例では、決定部30は、F_SIZEの大きさにかかわらず、F_SIZEを用いて得られる値(F_SIZE−V1)を、R_MTUとして決定する。これに代えて、変形例では、決定部30は、F_SIZEの大きさにかかわらず、R_MAXを用いて得られる値(R_MAX−V1)を、R_MTUとして決定してもよい(第2実施例の第1具体例(図10)参照)。
(第2具体例(スキャナの場合)(図19))
本実施例の第2具体例では、S_MAX>HP_S_SIZE>R_MAX>HP_R_SIZEの関係が満足し、さらに、S_MAX≧F_SIZEの関係が満足する(図4のS50参照)。
R_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)を、S_MTU及びR_MTUとして決定する。
また、HP_S_SIZE≧F_SIZE>R_MAXである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)、R_MAXを用いて得られる値(R_MAX−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
また、S_MAX≧F_SIZE>HP_S_SIZEである場合には、決定部30は、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V1)、R_MAXを用いて得られる値(R_MAX−V1)を、それぞれ、S_MTU、R_MTUとして決定する。この場合、S_MTUとR_MTUとは、異なる値を有する。
上述したように、第2具体例では、R_MAX≧F_SIZEである場合には、決定部30は、F_SIZEを用いて得られる値(F_SIZE−V1)を、R_MTUとして決定する。これに代えて、変形例では、決定部30は、F_SIZEの大きさにかかわらず、R_MAXを用いて得られる値(R_MAX−V1)を、R_MTUとして決定してもよい(第2実施例の第2具体例(図11)参照)。
(第4実施例の効果)
本実施例では、第1実施例と同様の効果が得られる。さらに、本実施例では、通信装置10は、可能な限り(即ちF_SIZE>HP_S_SIZEである場合に)、HP_S_SIZEを用いて得られる値(HP_S_SIZE−V1)を、S_MTUとして決定する。この場合、通信装置10は、図2のS20において、HP_S_SIZEのデータサイズを有する送信フレームを生成し得る。従って、通信装置10は、UDPの送信フレームのための送信処理を効率よく実行し得る。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)上記の各実施例では、通信装置10は、プリンタ又はスキャナである。ただし、通信装置10は、FAX装置、電話機、PC、サーバ、携帯電話、PDA等であってもよい。この場合、通信装置10のベンダは、データの送信機能とデータの受信機能とのうち、重視されるべき一方の機能に対応するバッファの記憶容量が、他方の機能に対応するバッファの記憶容量よりも大きくなるように、通信装置10を設計してもよい。
(変形例2)上記の各実施例では、CPU22がプログラムに従った処理を実行することによって、各部30〜38の機能が実現される。ただし、各部30〜38のうちの少なくとも1つの機能は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、10:通信装置、30:決定部、36:処理実行部、38判断部、FSB:FIFO送信バッファ、FRB:FIFO受信バッファ、S_MSS:送信用MSS、R_MSS:受信用MSS、S_MTU:送信用MTU、R_MTU:受信用MTU

Claims (17)

  1. ネットワークに接続される通信装置であって、
    前記ネットワークに送信される少なくとも1個の送信フレームを記憶するための送信バッファであって、第1の記憶容量を有する前記送信バッファと、
    前記ネットワークから受信される少なくとも1個の受信フレームを記憶するための受信バッファであって、前記第1の記憶容量と異なる第2の記憶容量を有する前記受信バッファと、
    前記第1の記憶容量に応じて、1個の送信フレームに含まれる送信対象データのデータサイズとして許容される最大データサイズである送信用最大データサイズを決定すると共に、前記第2の記憶容量に応じて、1個の受信フレームに含まれる受信対象データのデータサイズとして許容される最大データサイズである受信用最大データサイズを決定する決定部であって、前記送信用最大データサイズと前記受信用最大データサイズとは異なる値を有する、前記決定部と、
    前記送信用最大データサイズを用いて、送信対象の送信フレームのための送信処理を実行すると共に、前記受信用最大データサイズを用いて、受信対象の受信フレームのための受信処理を実行する処理実行部と、
    を備える通信装置。
  2. 前記送信用最大データサイズは、前記1個の送信フレームに含まれるアプリケーションデータのデータサイズとして許容される最大データサイズである送信用MSSであり、
    前記受信用最大データサイズは、前記1個の受信フレームに含まれるアプリケーションデータのデータサイズとして許容される最大データサイズである受信用MSSである、請求項1に記載の通信装置。
  3. 前記送信用最大データサイズは、前記1個の送信フレームに含まれるIPパケットのデータサイズとして許容される最大データサイズである送信用MTUであり、
    前記受信用最大データサイズは、前記1個の送信フレームに含まれるIPパケットのデータサイズとして許容される最大データサイズである受信用MTUである、請求項1に記載の通信装置。
  4. 前記決定部は、
    前記送信バッファが記憶可能な1個の送信フレームの最大データサイズである送信用最大フレームサイズであって、前記第1の記憶容量に応じて決定される前記送信用最大フレームサイズと、前記受信バッファが記憶可能な1個の受信フレームの最大データサイズである受信用最大フレームサイズであって、前記第2の記憶容量に応じて決定される前記受信用最大フレームサイズと、を取得する第1の取得部と、
    ユーザによって指定されるデータサイズである指定データサイズを取得する第2の取得部と、
    を備え、
    前記受信用最大フレームサイズと前記送信用最大フレームサイズとは異なる値を有し、
    前記送信用最大フレームサイズ及び前記受信用最大フレームサイズの少なくとも一方は前記指定データサイズ以上であり、
    前記決定部は、前記送信用最大フレームサイズと、前記受信用最大フレームサイズと、前記指定データサイズと、の関係に基づいて、前記送信用最大データサイズ及び前記受信用最大データサイズの少なくとも一方を決定する、請求項1に記載の通信装置。
  5. 前記受信用最大フレームサイズ>前記送信用最大フレームサイズの関係と、
    前記受信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記送信用最大フレームサイズである場合に、
    前記送信用最大フレームサイズを用いて得られる値を、前記送信用最大データサイズである送信用MSSとして決定し、
    前記指定データサイズを用いて得られる値を、前記受信用最大データサイズである受信用MSSとして決定する、請求項4に記載の通信装置。
  6. 前記受信用最大フレームサイズ>前記送信用最大フレームサイズの関係と、
    前記受信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記送信用最大フレームサイズである場合に、
    前記送信用最大フレームサイズを用いて得られる値を、前記送信用最大データサイズである送信用MTUとして決定し、
    前記指定データサイズを用いて得られる値を、前記受信用最大データサイズである受信用MTUとして決定する、請求項4に記載の通信装置。
  7. 前記受信用最大フレームサイズ>前記送信用最大フレームサイズの関係と、
    前記受信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記送信用最大フレームサイズ≧前記指定データサイズである場合に、
    前記指定データサイズを用いて得られる値を、前記送信用最大データサイズである送信用MTUとして決定し、
    前記受信用最大フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MTUとして決定する、請求項4に記載の通信装置
  8. 前記受信用最大フレームサイズ>前記送信用最大フレームサイズの関係と、
    前記受信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記送信用最大フレームサイズである場合に、
    前記送信用最大フレームサイズを用いて得られる値を、前記送信用最大データサイズである送信用MTUとして決定し、
    前記受信用最大フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MTUとして決定する、請求項4又は7に記載の通信装置。
  9. 前記決定部は、さらに、
    前記送信用最大フレームサイズに応じて決定される送信用高効率フレームサイズと、前記受信用最大フレームサイズに応じて決定される受信用高効率フレームサイズと、を取得する第3の取得部を備え、
    前記送信用高効率フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率は、前記送信用最大フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率以上であり、
    前記受信用高効率フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率は、前記受信用最大フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率よりも高く、
    前記受信用最大フレームサイズ>前記受信用高効率フレームサイズ>前記送信用最大フレームサイズ≧前記送信用高効率フレームサイズの関係と、
    前記受信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記受信用高効率フレームサイズ≧前記指定データサイズ>前記送信用高効率フレームサイズである場合に、
    前記送信用高効率フレームサイズを用いて得られる値を、前記送信用最大データサイズである送信用MSSとして決定し、
    前記指定データサイズを用いて得られる値を、前記受信用最大データサイズである受信用MSSとして決定する、請求項4に記載の通信装置
  10. 前記決定部は、さらに、
    前記送信用最大フレームサイズに応じて決定される送信用高効率フレームサイズと、前記受信用最大フレームサイズに応じて決定される受信用高効率フレームサイズと、を取得する第3の取得部を備え、
    前記送信用高効率フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率は、前記送信用最大フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率以上であり、
    前記受信用高効率フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率は、前記受信用最大フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率よりも高く、
    前記受信用最大フレームサイズ>前記受信用高効率フレームサイズ>前記送信用最大フレームサイズ≧前記送信用高効率フレームサイズの関係と、
    前記受信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記受信用高効率フレームサイズである場合に、
    前記送信用高効率フレームサイズを用いて得られる値を、前記送信用最大データサイズである送信用MSSとして決定し、
    前記受信用高効率フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MSSとして決定する、請求項4又は9に記載の通信装置
  11. 前記送信用最大フレームサイズ>前記受信用最大フレームサイズの関係と、
    前記送信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記受信用最大フレームサイズである場合に、
    前記指定データサイズを用いて得られる値を、前記送信用最大データサイズである送信用MSSとして決定し、
    前記受信用最大フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MSSとして決定する、請求項4に記載の通信装置。
  12. 前記送信用最大フレームサイズ>前記受信用最大フレームサイズの関係と、
    前記送信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記受信用最大フレームサイズである場合に、
    前記指定データサイズを用いて得られる値を、前記送信用最大データサイズである送信用MTUとして決定し、
    前記受信用最大フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MTUとして決定する、請求項4に記載の通信装置。
  13. 前記送信用最大フレームサイズ>前記受信用最大フレームサイズの関係と、
    前記送信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記受信用最大フレームサイズ≧前記指定データサイズである場合に、
    前記指定データサイズを用いて得られる値を、前記送信用最大データサイズである送信用MTUとして決定し、
    前記受信用最大フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MTUとして決定する、請求項4又は12に記載の通信装置
  14. 前記決定部は、さらに、
    前記送信用最大フレームサイズに応じて決定される送信用高効率フレームサイズと、前記受信用最大フレームサイズに応じて決定される受信用高効率フレームサイズと、を取得する第3の取得部を備え、
    前記送信用高効率フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率は、前記送信用最大フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率以上であり、
    前記受信用高効率フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率は、前記受信用最大フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率よりも高く、
    前記送信用最大フレームサイズ≧前記送信用高効率フレームサイズ>前記受信用最大フレームサイズ>前記受信用高効率フレームサイズの関係と、
    前記送信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記送信用高効率フレームサイズ≧前記指定データサイズ>前記受信用高効率フレームサイズである場合に、
    前記指定データサイズを用いて得られる値を、前記送信用最大データサイズである送信用MSSとして決定し、
    前記受信用高効率フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MSSとして決定する、請求項4に記載の通信装置
  15. 前記決定部は、さらに、
    前記送信用最大フレームサイズに応じて決定される送信用高効率フレームサイズと、前記受信用最大フレームサイズに応じて決定される受信用高効率フレームサイズと、を取得する第3の取得部を備え、
    前記送信用高効率フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率は、前記送信用最大フレームサイズに一致するデータサイズを有する送信フレームのための前記送信処理の効率以上であり、
    前記受信用高効率フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率は、前記受信用最大フレームサイズに一致するデータサイズを有する受信フレームのための前記受信処理の効率よりも高く、
    前記送信用最大フレームサイズ≧前記送信用高効率フレームサイズ>前記受信用最大フレームサイズ>前記受信用高効率フレームサイズの関係と、
    前記送信用最大フレームサイズ≧前記指定データサイズの関係と、が満足されており、
    前記決定部は、
    前記指定データサイズ>前記送信用高効率フレームサイズである場合に、
    前記送信用高効率フレームサイズを用いて得られる値を、前記送信用最大データサイズである送信用MSSとして決定し、
    前記受信用高効率フレームサイズを用いて得られる値を、前記受信用最大データサイズである受信用MSSとして決定する、請求項4又は14に記載の通信装置
  16. 前記ネットワークがジャンボフレームを利用する環境であるのか否かを判断する判断部をさらに備え、
    前記決定部は、前記ネットワークが前記ジャンボフレームを利用する前記環境であると判断される場合に、前記第1の記憶容量に応じて、前記送信用最大データサイズを決定すると共に、前記第2の記憶容量に応じて、前記受信用最大データサイズを決定する、請求項1から15のいずれか一項に記載の通信装置。
  17. 前記判断部は、
    前記ネットワークから受信する信号が、前記ネットワークがギガビットイーサネットに対応することを示す場合に、前記ネットワークが前記ジャンボフレームを利用する前記環境であると判断し、
    前記ネットワークから受信する前記信号が、前記ネットワークがギガビットイーサネットに対応することを示さない場合に、前記ネットワークが前記ジャンボフレームを利用する前記環境でないと判断する、請求項16に記載の通信装置。
JP2011019131A 2011-01-31 2011-01-31 通信装置 Active JP5573709B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011019131A JP5573709B2 (ja) 2011-01-31 2011-01-31 通信装置
EP20120151280 EP2482503B1 (en) 2011-01-31 2012-01-16 Communication device
US13/356,549 US9762511B2 (en) 2011-01-31 2012-01-23 Communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011019131A JP5573709B2 (ja) 2011-01-31 2011-01-31 通信装置

Publications (2)

Publication Number Publication Date
JP2012160901A true JP2012160901A (ja) 2012-08-23
JP5573709B2 JP5573709B2 (ja) 2014-08-20

Family

ID=45655148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011019131A Active JP5573709B2 (ja) 2011-01-31 2011-01-31 通信装置

Country Status (3)

Country Link
US (1) US9762511B2 (ja)
EP (1) EP2482503B1 (ja)
JP (1) JP5573709B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041849A (ja) * 2015-08-21 2017-02-23 キヤノン株式会社 通信装置、その制御方法及びプログラム
JP7551403B2 (ja) 2020-08-27 2024-09-17 キヤノン株式会社 通信装置、制御方法、プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425371B2 (en) * 2013-03-15 2019-09-24 Trane International Inc. Method for fragmented messaging between network devices
CN112866133B (zh) * 2019-11-26 2023-07-28 华为技术有限公司 用于获取共用最大分段大小mss的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264201A (ja) * 1994-02-01 1995-10-13 Hitachi Ltd 通信システムにおけるバッファ制御方式
JP2003087255A (ja) * 2001-09-06 2003-03-20 Kddi Corp パケット情報収集装置及びその方法
JP2004048393A (ja) * 2002-07-11 2004-02-12 Ipsquare Inc 半導体回路デバイス及びパケット処理方法
JP2006195871A (ja) * 2005-01-17 2006-07-27 Ricoh Co Ltd 通信装置、電子機器、及び画像形成装置
JP2007184710A (ja) * 2006-01-05 2007-07-19 Sony Corp 情報処理装置および方法、並びにプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327626B1 (en) * 1998-09-15 2001-12-04 Alteon Networks, Inc. Method and apparatus for MSS spoofing
JP4443679B2 (ja) * 1998-10-09 2010-03-31 株式会社リコー プリントシステム
JP3183343B2 (ja) * 1999-02-26 2001-07-09 日本電気株式会社 データ通信方法、端末装置、中継装置、データ通信システム及びその記録媒体
US6412029B1 (en) * 1999-04-29 2002-06-25 Agere Systems Guardian Corp. Method and apparatus for interfacing between a digital signal processor and a baseband circuit for wireless communication system
CN1250294A (zh) * 1999-07-27 2000-04-12 邮电部武汉邮电科学研究院 以太网与同步数字体系或同步光网络融合的适配方法
JP2001237882A (ja) 2000-02-23 2001-08-31 Nec Corp パケットデータ転送におけるパケットサイズ制御装置及びその制御方法
US6438128B1 (en) * 2001-05-08 2002-08-20 International Business Machines Corporation Alternate use of data packet fields to convey information
WO2002099591A2 (en) * 2001-06-04 2002-12-12 Nct Group, Inc. System and method for increasing the effective bandwidth of a communications network
US6907480B2 (en) * 2001-07-11 2005-06-14 Seiko Epson Corporation Data processing apparatus and data input/output apparatus and data input/output method
JP4302339B2 (ja) 2001-10-18 2009-07-22 三菱電機株式会社 データ配信管理装置、データ配信管理システムおよびデータ配信管理方法
DE60236138D1 (de) 2002-01-03 2010-06-10 Innovative Sonic Ltd Fenster-basierende Blockadevermeidung für ein drahtloses Hochgeschwindigkeits-Kommunikationssystem
AU2002328419A1 (en) 2002-07-01 2004-01-19 Ipsquare Semiconductor circuit device, packet processing method, management system, management method, and packet processing method
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
EP1553501B1 (en) * 2002-10-16 2009-07-08 Panasonic Corporation Ic card, data transfer device, data transfer method, and data transfer method program
US20080089347A1 (en) * 2003-08-29 2008-04-17 End Ii End Communications Inc. Systems and methods for broadband network optimization
US20080037420A1 (en) * 2003-10-08 2008-02-14 Bob Tang Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san
CN1617605A (zh) * 2003-11-12 2005-05-18 皇家飞利浦电子股份有限公司 一种在语音信道传输非语音数据的方法及装置
JP4147534B2 (ja) 2005-02-03 2008-09-10 日本電気株式会社 通信装置および通信方法
JP4222353B2 (ja) 2005-09-16 2009-02-12 ヤマハ株式会社 Ip通信装置およびip通信システム
US20070233834A1 (en) * 2006-03-31 2007-10-04 Tomoki Hattori Printer driver with print search function
JP2008118281A (ja) 2006-11-01 2008-05-22 Fujitsu Ltd 通信装置
JP4557028B2 (ja) * 2008-03-19 2010-10-06 ソニー株式会社 情報処理装置、情報処理方法、クライアント機器、情報処理システム
US8473356B2 (en) * 2008-08-26 2013-06-25 International Business Machines Corporation System and method for tagging objects for heterogeneous searches
US8639836B2 (en) * 2009-06-29 2014-01-28 International Business Machines Corporation Smart nagling in a TCP connection
JP5502649B2 (ja) * 2010-08-11 2014-05-28 アラクサラネットワークス株式会社 ネットワークシステム,レイヤ2スイッチ,及びネットワーク障害検出方法
JP5655453B2 (ja) * 2010-09-16 2015-01-21 セイコーエプソン株式会社 電子機器、電子機器の制御方法、及び、プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264201A (ja) * 1994-02-01 1995-10-13 Hitachi Ltd 通信システムにおけるバッファ制御方式
JP2003087255A (ja) * 2001-09-06 2003-03-20 Kddi Corp パケット情報収集装置及びその方法
JP2004048393A (ja) * 2002-07-11 2004-02-12 Ipsquare Inc 半導体回路デバイス及びパケット処理方法
JP2006195871A (ja) * 2005-01-17 2006-07-27 Ricoh Co Ltd 通信装置、電子機器、及び画像形成装置
JP2007184710A (ja) * 2006-01-05 2007-07-19 Sony Corp 情報処理装置および方法、並びにプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041849A (ja) * 2015-08-21 2017-02-23 キヤノン株式会社 通信装置、その制御方法及びプログラム
JP7551403B2 (ja) 2020-08-27 2024-09-17 キヤノン株式会社 通信装置、制御方法、プログラム

Also Published As

Publication number Publication date
US20120198090A1 (en) 2012-08-02
JP5573709B2 (ja) 2014-08-20
EP2482503B1 (en) 2013-07-24
EP2482503A1 (en) 2012-08-01
US9762511B2 (en) 2017-09-12

Similar Documents

Publication Publication Date Title
US7995478B2 (en) Network communication with path MTU size discovery
US8943206B2 (en) Network bandwidth detection and distribution
EP3694160A1 (en) Date transmission method, apparatus and device
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US20120218914A1 (en) Data transmitting device, data communicating device, and computer readable medium
JP5573709B2 (ja) 通信装置
JP2023130418A (ja) クライアント、サーバ、受信方法及び送信方法
JP5418530B2 (ja) 通信装置
JP4363404B2 (ja) 受信装置および方法、並びにプログラム
US20140297791A1 (en) Communication apparatus, method of controlling the same, and storage medium
US9882820B2 (en) Communication apparatus
CA2940077C (en) Buffer bloat control
US10237323B2 (en) Communication apparatus, communication method, communication system, and storage medium
JP6279970B2 (ja) プロセッサ、通信装置、通信システム、通信方法およびコンピュータプログラム
JP6568571B2 (ja) データ転送装置、データ転送方法および通信装置
JP2012175560A (ja) 通信装置
JP2012049883A (ja) 通信装置およびパケット処理方法
JP2006246155A (ja) 通信装置、通信方法及びプログラム
JP2003198616A (ja) 伝送方法及びその装置
WO2017022365A1 (ja) データ通信装置、データ通信方法、およびプログラム
JP2020136883A (ja) 通信装置、通信装置の制御方法およびプログラム
JP2013046173A (ja) 制御装置、制御方法、及びプログラム
US20150295957A1 (en) Data transmitting device, data transmitting method, and communication device
KR20150124796A (ko) 무선 환경에서 usb 통신을 위한 데이터 전송을 제어하는 방법 및 장치
JP2006033010A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140616

R150 Certificate of patent or registration of utility model

Ref document number: 5573709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150