JP2012205248A - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP2012205248A
JP2012205248A JP2011070491A JP2011070491A JP2012205248A JP 2012205248 A JP2012205248 A JP 2012205248A JP 2011070491 A JP2011070491 A JP 2011070491A JP 2011070491 A JP2011070491 A JP 2011070491A JP 2012205248 A JP2012205248 A JP 2012205248A
Authority
JP
Japan
Prior art keywords
value
mss
mss value
communication
current
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
JP2011070491A
Other languages
English (en)
Other versions
JP5418530B2 (ja
Inventor
Takanobu Suzuki
隆延 鈴木
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 JP2011070491A priority Critical patent/JP5418530B2/ja
Priority to US13/410,984 priority patent/US8798097B2/en
Publication of JP2012205248A publication Critical patent/JP2012205248A/ja
Application granted granted Critical
Publication of JP5418530B2 publication Critical patent/JP5418530B2/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】 既存のネットワークに通信装置が接続される場合に、通信装置が、ネットワークに応じた適切なフレームを送信し得る技術を提供すること。
【解決手段】 多機能機10は、PC100,110が接続されているLAN4に新たに接続される。多機能機10は、PC100とのTCP通信を実行して、PC100から、PC100のMSS値である参考MSS値(4000バイト)を取得する。多機能機10は、多機能機10自身のMSS値を、現行MSS値(1460バイト)から参考MSS値(4000バイト)に変更する。その後、多機能機10は、PC110とのUDP通信によって音声データをPC110に送信すべき場合に、変更後のMSS値(4000バイト)を利用して音声データを含む送信フレームを生成して、送信フレームをPC110に送信する。
【選択図】 図4

Description

本明細書によって開示される技術は、第1のデバイスと第2のデバイスとが接続されているネットワークに接続される通信装置に関する。
通常のイーサネット(登録商標)のネットワークでは、所定のフレームサイズ(即ち1518バイト)を有するフレームの通信が実行される。ただし、近年、特許文献1に開示されているように、上記の所定のフレームサイズよりも大きなフレームサイズを有するフレーム(いわゆるジャンボフレーム)の通信が実行されるネットワークも知られている。
特開2007−82126号公報
例えば、ジャンボフレームの通信が実行されるネットワークに通信装置が新たに接続される場合には、通信装置は、ジャンボフレームを利用してデータを外部装置に送信することによって、通信効率を向上させることが好ましい。即ち、通信装置がネットワークに応じた適切なフレームを送信することが好ましい。
本明細書では、既存のネットワークに通信装置が接続される場合に、通信装置がネットワークに応じた適切なフレームを送信し得る技術を提供する。
本明細書では、第1のデバイスと第2のデバイスとが接続されているネットワークに接続される通信装置を開示する。通信装置は、参考MSS値取得部と、送信部と、を備える。参考MSS値取得部は、第1のデバイスとのTCP通信を実行して、第1のデバイスから、第1のデバイスのMSSの値である参考MSS値を取得する。送信部は、第2のデバイスとのUDP通信によってアプリケーションデータを第2のデバイスに送信すべき場合に、第1のデバイスの参考MSS値を利用して決定される特定の値に基づいて、アプリケーションデータを含む送信フレームを生成して、送信フレームを第2のデバイスに送信する。
上記の構成では、通信装置は、第1のデバイスと第2のデバイスとが接続されている既存のネットワークに接続された後に、第1のデバイスとのTCP通信を実行して、第1のデバイスの参考MSS値を取得することができる。その後、通信装置は、第1のデバイスの参考MSS値を利用して決定される特定の値に基づいて送信フレームを生成するために、ネットワークに応じた適切なデータサイズを有する送信フレームを生成し得る。従って、通信装置は、ネットワークに応じた適切な送信フレームを、第2のデバイスに送信し得る。
通信装置は、さらに、第1のデバイスの参考MSS値を利用して、特定の値を決定する決定部を備えていてもよい。決定部は、通信装置のMSSの現行の値である現行MSS値が、第1のデバイスの参考MSS値に変更されるように、特定の値を決定してもよい。この構成によると、通信装置は、ネットワークに応じた適切な特定の値を決定し得るために、適切なデータサイズを有する送信フレームを生成し得る。
決定部は、(X1)通信装置の現行MSS値が第1のデバイスの参考MSS値以下である場合に、通信装置の現行MSS値が、第1のデバイスの参考MSS値に変更されるように、特定の値を決定し、(X2)通信装置の現行MSS値が第1のデバイスの参考MSS値よりも大きい場合に、通信装置の現行MSS値が維持されるように、特定の値を決定してもよい。この構成によると、通信装置は、通信装置の現行MSS値と、第1のデバイスの参考MSS値と、の関係に応じて、適切な特定の値を決定し得る。
決定部は、(X2−1)通信装置の現行MSS値が第1のデバイスの参考MSS値よりも大きく、かつ、第1のデバイスの参考MSS値が1460バイトよりも大きい場合に、通信装置の現行MSS値が、第1のデバイスの参考MSS値に変更されるように、特定の値を決定し、(X2−2)通信装置の現行MSS値が第1のデバイスの参考MSS値よりも大きく、かつ、第1のデバイスの参考MSS値が1460バイト以下である場合に、通信装置の現行MSS値が維持されるように、特定の値を決定してもよい。この構成によると、通信装置は、通信装置の現行MSS値が第1のデバイスの参考MSS値よりも大きい場合に、第1のデバイスの参考MSS値と、通常のイーサネットで利用されるMSS値(1460バイト)と、の関係に応じて、適切な特定の値を決定し得る。
決定部は、(X1−1)通信装置の現行MSS値が第1のデバイスの参考MSS値以下であり、かつ、通信装置が利用可能なMSSの上限の値である上限MSS値が第1のデバイスの参考MSS値よりも小さい場合に、通信装置の現行MSS値が、通信装置の上限MSS値に変更されるように、特定の値を決定し、(X1−2)通信装置の現行MSS値が第1のデバイスの参考MSS値以下であり、かつ、通信装置の上限MSS値が第1のデバイスの参考MSS値以上である場合に、通信装置の現行MSS値が、第1のデバイスの参考MSS値に変更されるように、特定の値を決定してもよい。この構成によると、通信装置は、通信装置の現行MSS値が第1のデバイスの参考MSS値以下である場合に、通信装置の上限MSS値と、第1のデバイスの参考MSS値と、の関係に応じて、適切な特定の値を決定し得る。
通信装置は、さらに、第1のデバイスとのUDP通信によって受信される受信フレーム内のUDPヘッダに含まれるデータ長の値を取得するデータ長取得部をさらに備えていてもよい。決定部は、第1のデバイスの参考MSS値が取得される場合に、第1のデバイスの参考MSS値を利用して、特定の値を決定し、データ長の値が取得される場合に、データ長の値を利用して、特定の値を決定してもよい。この構成によると、通信装置は、第1のデバイスから取得される参考MSS値又はデータ長の値を利用して、適切な特定の値を決定し得る。
本明細書では、次の通信装置も開示する。通信装置は、データ長取得部と、送信部と、を備える。データ長取得部は、第1のデバイスとのUDP通信によって受信される受信フレーム内のUDPヘッダに含まれるデータ長の値を取得する。送信部は、第2のデバイスとのUDP通信によってアプリケーションデータを第2のデバイスに送信すべき場合に、データ長の値を利用して決定される特定の値に基づいて、アプリケーションデータを含む送信フレームを生成して、送信フレームを第2のデバイスに送信する。
上記の構成では、通信装置は、第1のデバイスと第2のデバイスとが接続されている既存のネットワークに接続された後に、第1のデバイスとのUDP通信を実行して、データ長の値を取得することができる。その後、通信装置は、データ長の値を利用して決定される特定の値に基づいて送信フレームを生成するために、ネットワークに応じた適切なデータサイズを有する送信フレームを生成し得る。従って、通信装置は、ネットワークに応じた適切な送信フレームを、第2のデバイスに送信し得る。
通信装置は、さらに、データ長の値を利用して、特定の値を決定する決定部を備えていてもよい。決定部は、通信装置のMSSの現行の値である現行MSS値が、データ長の値から得られる第1のデバイスのMSSの値の候補である候補MSS値に変更されるように、特定の値を決定してもよい。この構成によると、通信装置は、ネットワークに応じた適切な特定の値を決定し得るために、適切なデータサイズを有する送信フレームを生成し得る。
決定部は、(Y1)通信装置の現行MSS値が第1のデバイスの候補MSS値以下である場合に、通信装置の現行MSS値が、第1のデバイスの候補MSS値に変更されるように、特定の値を決定し、(Y2)通信装置の現行MSS値が第1のデバイスの候補MSS値よりも大きい場合に、通信装置の現行MSS値が維持されるように、特定の値を決定してもよい。この構成によると、通信装置は、通信装置の現行MSS値と、第1のデバイスの候補MSS値と、の関係に応じて、適切な特定の値を決定し得る。
決定部は、(Y1−1)通信装置の現行MSS値が第1のデバイスの候補MSS値以下であり、かつ、通信装置が利用可能なMSSの上限の値である上限MSS値が第1のデバイスの候補MSS値よりも小さい場合に、通信装置の現行MSS値が、通信装置の上限MSS値に変更されるように、特定の値を決定し、(Y1−2)通信装置の現行MSS値が第1のデバイスの候補MSS値以下であり、かつ、通信装置の上限MSS値が第1のデバイスの候補MSS値以上である場合に、通信装置の現行MSS値が、第1のデバイスの候補MSS値に変更されるように、特定の値を決定してもよい。この構成によると、通信装置は、通信装置の現行MSS値が第1のデバイスの候補MSS値以下である場合に、通信装置の上限MSS値と、第1のデバイスの候補MSS値と、の関係に応じて、適切な特定の値を決定し得る。
送信部は、特定の値に基づいて、送信フレームに含まれるべきアプリケーションデータの最大データサイズを決定し、送信フレームに含まれるアプリケーションデータのデータサイズが、決定済みの最大データサイズ以下になるように、送信フレームを生成してもよい。この構成によると、通信装置は、特定の値に基づいて、アプリケーションデータの最大データサイズを適切に決定し得る。この結果、通信装置は、適切なデータサイズを有する送信フレームを生成し得る。
なお、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
通信システムの構成の一例を示す。 PCとプリンタとの間で実行される通信の一例を示す。 TCP通信後MSS決定処理のフローチャートを示す。 図3の処理を利用するケースA1及びケースA2を説明するための図を示す。 図3の処理を利用するケースA3及びケースA4を説明するための図を示す。 図3の処理を利用するケースA5を説明するための図を示す。 UDP通信後MSS決定処理のフローチャートを示す。 図7の処理を利用するケースB1−1及びケースB1−2を説明するための図を示す。 図7の処理を利用するケースB2及びケースB3を説明するための図を示す。
(実施例)
(システムの構成)
図1に示されるように、通信システム2は、多機能機10(PC100,110の周辺機器)と、PC100,110と、を備える。PC100,110は、LAN4に接続されている。LAN4は、イーサネット(登録商標)に準拠するネットワークである。特に、LAN4は、ギガビットイーサネット、即ち、1ギガビット/秒の通信速度を実現可能なネットワークである。なお、ギガビットイーサネットは、1000BASE−SXと、1000BASE−LXと、1000BASE−CX(これらはIEEE802.3zで規定される)と、1000BASE−T(これはIEEE802.3abで規定される)と、のいずれであってもよい。
(多機能機10の構成)
多機能機10は、印刷機能、スキャン機能、コピー機能、FAX機能、IP電話機能等を含む複数の機能を実行可能である。多機能機10は、PC100,110が既に接続されているLAN4に新たに接続される。即ち、多機能機10は、LAN4に新たに参加するデバイスである。
多機能機10は、操作部12と、表示部14と、印刷実行部16と、制御部20と、MACチップ40と、PHYチップ50と、を備える。上記の各部12〜20は、バス線(符号省略)に接続されている。操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作することによって、様々な指示を多機能機10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備え、制御部20からの指示に従って印刷を実行する。
なお、図示省略しているが、多機能機10は、さらに、スキャン実行部、FAX実行部、IP電話実行部等を備える。例えば、多機能機10は、IP電話実行部のマイクに入力される音声データをPC110に送信すべき場合に、PC110とのUDP(User Datagram Protocol)通信を実行する。また、例えば、多機能機10は、印刷実行部16によって印刷されるべき画像を表わす印刷データをPC100から受信すべき場合に、PC100とのTCP(Transmission Control Protocol)通信を実行する。
制御部20は、CPU22とメモリ24とを備える。CPU22は、メモリ24に格納されているプログラム(図示省略)に従って、様々な処理を実行する。CPU22が当該プログラムに従って処理を実行することによって、参考MSS値取得部30、決定部32、送信部34、及び、データ長取得部36の各機能が実現される。
メモリ24は、不揮発性メモリ、揮発性メモリ等によって構成される。メモリ24は、様々な種類の設定値SV(Setting Values)を記憶する。設定値SVは、多機能機10のMSSの現行の値を含む。なお、以下では、多機能機10のMSSの現行の値のことを「現行MSS値」と呼ぶ。
(MSS(Maximum Segment Size))
MSSについて説明する前に、イーサネットフレームについて説明する。イーサネットのデータ通信は、フレームを最小単位として実行される。図1には、1個のフレームの構成が模式的に示されている。TCPのフレームは、イーサネットヘッダと、IPヘッダと、TCPヘッダと、アプリケーションデータと、FCS(Frame Check Sequence)と、を含む。また、UDPのフレームは、TCPヘッダの代わりにUDPヘッダを含む点を除くと、TCPのフレームと同様の構成を有する。
イーサネットヘッダ、IPヘッダ、FCSは、それぞれ、14バイト、20バイト、4バイトのデータサイズを有する。また、TCPヘッダ、UDPヘッダは、それぞれ、20バイト、8バイトのデータサイズを有する。これらのデータサイズは、イーサネットの規格として予め決められている。これに対し、アプリケーションデータのデータサイズは、フレームの通信を実行する通信装置(即ち、多機能機10、PC100,110)によって決定される。
MSSは、1個のフレームに含まれるアプリケーションデータのデータサイズとして許容される最大データサイズである。例えば、ギガビットイーサネットではなく、10BASE又は100BASEのようなネットワーク環境では、通常、1個のフレームの最大データサイズとして1518バイトが利用される。従って、1個のフレームの最大データサイズとして1518バイトが利用されるネットワーク環境(以下では「通常のネットワーク環境」と呼ぶ)では、通信装置は、通常、MSSとして1460(=1518−14−20−20−4)バイトを利用する。
なお、本実施例の多機能機10は、1518バイトよりも大きなデータサイズを有するフレーム(即ちジャンボフレーム)の通信を実行可能である。従って、ジャンボフレームが利用されるネットワーク環境では、多機能機10は、1460バイトよりも大きい値を、現行MSS値として利用可能である。
多機能機10の出荷段階では、多機能機10の現行MSS値として1460バイトが設定されている。後述の図2のS12又はS22のMSS決定処理が実行されると、メモリ24内の設定値SVとして記憶されている現行MSS値が、1460バイトよりも大きいMSS値(即ちS12又はS22のMSS決定処理で決定されるMSS値)に変更され得る。なお、S12又はS22のMSS決定処理で決定されるMSS値は、後述のFIFO受信バッファFRBの記憶容量から58(=14+20+20+4)バイトを減算することによって得られる値(以下では「上限MSS値」と呼ぶ)以下である。換言すると、後述のFIFO受信バッファFRBの記憶容量は、多機能機10の現行MSS値に58バイトを加算することによって得られる値以上である。
(MTU(Maximum Transmission Unit))
IPヘッダのデータサイズ(20バイト)とTCPヘッダのデータサイズ(20バイト)とをMSSに加算して得られる値に相当する値のことを「MTU」と呼ぶ。なお、IPヘッダとTCPヘッダ(又はUDPヘッダ)とアプリケーションデータとの集合のことを、通常、「IPパケット」と呼ぶ、従って、MTUは、IPパケットのデータサイズとして許容される最大データサイズである。
なお、本実施例では、多機能機10のMTU値は、設定値SVとしてメモリ24に記憶されない。詳しくは後述するが、多機能機10は、必要に応じて、多機能機10の現行MSS値から多機能機10のMTU値を算出し、当該MTU値を利用して処理を実行する。例えば、通常のネットワーク環境では、通信装置は、通常、MSS値として1460バイトを利用するために、MTU値として1500(1460+20+20)バイトを利用する。なお、多機能機10は、ジャンボフレームの通信を実行可能である。従って、ジャンボフレームが利用されるネットワーク環境では、多機能機10は、1500バイトよりも大きい値を、MTU値として利用可能である。
メモリ24は、メモリバッファMB(Memory Buffer)を備える。メモリバッファMBは、多機能機10から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個の受信フレームを記憶するための記憶容量を有する。2つのバッファFSB,FRBの記憶容量は等しい。各記憶容量は、通常のイーサネットで利用される1個のフレームの最大データサイズである1518バイトよりも大きい。
PHYチップ50は、OSI参照モデルの物理層の処理を実行する。PHYチップ50は、LAN4に接続されていると共に、MACチップ40に接続されている。FIFO送信バッファFSBに記憶されている送信フレームは、PHYチップ50を介して、LAN4に送信される。また、LAN4から受信される受信フレームは、PHYチップ50を介して、FIFO受信バッファFRBに記憶される。
(PC100,110の構成)
続いて、PC100の構成について簡単に説明する。なお、PC110は、PC100と同様の構成を備える。PC100は、図示省略の操作部、表示部、制御部等を備える。PC100は、多機能機10のためのプリンタドライバを記憶している。PC100は、プリンタドライバに従って、印刷データを多機能機10に送信可能である。上述したように、印刷データの通信には、TCPが利用される。また、PC100は、IP電話機能を実行して、多機能機10から音声データを受信すると共に、PC100のマイクに入力される音声データを多機能機10に送信することができる。IP電話の音声データの通信には、UDPが利用される。また、PC100は、SNMP(Simple Network Management Protocol)のリクエストを多機能機10に送信可能である。SNMPのデータの通信には、UDPが利用される。なお、PC100,110には、それぞれ、当該PC自身のMSS値が設定される。
(PC100から多機能機10へのTCP通信;図2)
多機能機10がLAN4に新たに接続された後に、例えば、ユーザは、PC100の操作部を操作して、印刷対象のデータ(即ち印刷データ)を選択することができる。この場合、PC100は、印刷データを多機能機10に送信するためのTCPの通信セッションを確立するために、多機能機10とネゴシエーションを実行する。
具体的に言うと、PC100は、まず、PC100自身のMSS値を含むSYN信号を多機能機10に送信する。なお、以下では、PC100のMSS値のことを「参考MSS値」と呼ぶ。多機能機10の参考MSS値取得部30(図1参照)は、PC100からSYN信号を受信することによって、PC100の参考MSS値を取得する。
次いで、多機能機10の制御部20は、メモリ24内の設定値SVの中から、現行MSS値を取得する。次いで、制御部20は、多機能機10の現行MSS値を含むSYN/ACK信号をPC100に送信することによって、多機能機10の現行MSS値をPC100に通知する。これにより、PC100は、多機能機10の現行MSS値を取得することができる。
次いで、PC100は、ACK信号を多機能機10に送信する。この結果、多機能機10とPC100との間で、TCPの通信セッションが確立される。次いで、PC100は、印刷データを複数個の部分印刷データに分割する。この際に、PC100は、PC100の参考MSS値と多機能機10の現行MSS値とのうちの小さい方の値を選択して、当該値を、1個の部分印刷データのデータサイズとして決定する。従って、PC100によって選択されるMSS値が大きい程、分割後の部分印刷データの数が少なくなり、その結果、PC100でのデータ分割に要する処理時間と、多機能機10でのデータ結合に要する処理時間と、を短くすることができる。即ち、MSS値として大きな値が利用される場合、即ち、ジャンボフレームが利用される場合には、通常のイーサネットのフレーム(1518バイト)が利用される場合と比べて、多機能機10及びPC100の処理時間が少なくて済み、その結果、データの通信速度が向上する。
次いで、PC100は、1個の部分印刷データをアプリケーションデータとして含む1個のフレームF1を生成して、多機能機10に送信する。フレームF1は、多機能機10のPHYチップ50を介して、MACチップ40内のFIFO受信バッファFRBに記憶される。上述したように、FIFO受信バッファFRBの記憶容量は、通常のイーサネットで利用される1個のフレームの最大データサイズである1518バイトよりも大きく、しかも、多機能機10の現行MSS値に58バイトを加算することによって得られる値以上である。従って、PC100が、PC100の参考MSS値と多機能機10の現行MSS値とのうちの小さい方の値を基準として1個のフレームを生成すれば、当該フレームのデータサイズは、必ず、FIFO受信バッファFRBの記憶容量以下の値になる。従って、1個のフレームのデータサイズがFIFO受信バッファFRBの記憶容量よりも大きくなり、その結果、多機能機10が当該フレームを受信することができないという事象が発生するのを抑制することができる。
多機能機10の制御部20は、FIFO受信バッファFRB内の受信フレームF1を、メモリバッファMBに移動させる。これにより、FIFO受信バッファFRBが解放される。PC100は、フレームF1の場合と同様に、フレームF2を生成して多機能機10に送信する。多機能機10の制御部20は、受信フレームF1の場合と同様に、受信フレームF2をメモリバッファMBに移動させる。
多機能機10の制御部20は、各受信フレームF1,F2を受信した後に、メモリバッファMB内の各受信フレームF1,F2に従った処理を順次実行する。例えば、制御部20は、各受信フレームF1,F2内の部分印刷データに従って、印刷実行部16に印刷を実行させるための処理(例えば、印刷実行部16に駆動信号を送信する処理)を実行する。なお、制御部20は、各受信フレームF1,F2に従った処理を終えると、各受信フレームF1,F2をメモリバッファMBから順次消去する。これにより、メモリバッファMBが解放される。なお、PC100は、全ての印刷データを多機能機10に送信し終えると、TCPの通信セッションを切断する。
多機能機10の決定部32(図1参照)は、TCPの通信セッションが切断されると、S10において、多機能機10の現行MSS値が確定済みであるのか否かを判断する。多機能機10のユーザ(例えば、LAN4の管理者)は、多機能機10の電源がONされている間のどのタイミングでも、操作部12を操作して、多機能機10の現行MSS値を確定させるための操作を実行することができる。S10では、決定部32は、当該操作が実行済みであるのか否かを判断する。
多機能機10の現行MSS値が確定済みである場合(S10でYESの場合)には、S12のMSS決定処理が実行されない。一方において、多機能機10の現行MSS値が確定済みでない場合(S10でNOの場合)には、決定部32は、S12のMSS決定処理を実行する。S12のMSS決定処理は、図2のTCP通信よりも後で実行され得る通信において多機能機10が利用すべきMSS値を決定するための処理であり、当該処理の内容については、後で詳しく説明する。
なお、図2の例では、PC100が主体的にTCP通信を実行する。即ち、最初に、PC100から多機能機10に、参考MSS値を含むSYN信号が送信され、次いで、多機能機10からPC100に、現行MSS値を含むSYN/ACK信号が送信される。変形例では、多機能機10が主体的にTCP通信を実行してもよい。即ち、最初に、多機能機10からPC100に、現行MSS値を含むSYN信号が送信され、次いで、PC100から多機能機10に、参考MSS値を含むSYN/ACK信号が送信されてもよい。変形例のケースでも、TCP通信後に、決定部32は、S10でNOの場合に、S12のMSS決定処理を実行する。
(TCP通信後のUDP通信)
多機能機10とPC100との間で上記のTCP通信(ネゴシエーション及びフレームF1,F2の通信)が実行された後に、例えば、ユーザは、操作部12を操作して、IP電話通信をPC110と実行するように、多機能機10に指示を与えることができる。この場合、S14において、多機能機10の送信部34(図1参照)は、IP電話実行部のマイクに入力された音声データを含む送信フレームF3を生成する。次いで、送信部34は、UDP通信によって送信フレームF3をPC110に送信する。
UDP通信では、TCP通信と異なり、ネゴシエーション(SYN信号、SYN/ACK信号等の通信)が実行されない。従って、多機能機10は、PC110のMSS値を知ることができない。S14では、送信部34は、まず、メモリ24から多機能機10の現行MSS値を取得する。例えば、S12のMSS決定処理が実行された場合には、送信部34は、S12のMSS決定処理で決定されたMSS値を取得する。次いで、送信部34は、多機能機10の現行MSS値に40(20+20)バイトを加算して、多機能機10のMTU値を算出する。次いで、送信部34は、多機能機10のMTU値から28(20(IPヘッダ)+8(UDPヘッダ))バイトを減算して、送信フレームF3に含まれるべきアプリケーションデータの最大データサイズを算出する。次いで、送信部34は、メモリバッファMB内に、上記の最大データサイズ以下のアプリケーションデータ(即ち音声データ)を含む送信フレームF3を生成する。次いで、送信部34は、送信フレームF3を、FIFO送信バッファFSBに移動させる。これにより、FIFO送信バッファFSBに記憶されている送信フレームF3が、PHYチップ50を介して、PC110に送信される。
PC110は、多機能機10から送信されるフレームF3に含まれるIPパケット(即ちIPヘッダとUDPヘッダとアプリケーションデータの集合)のデータサイズが、PC110のMTU値(即ちPC110のMSS値+40バイト)よりも大きいのか否かを判断する。PC110は、IPパケットのデータサイズがPC110のMTU値よりも大きい場合に、フレームF3を破棄する(即ちフレームF3に従った処理を実行しない)。一方において、PC110は、IPパケットのデータサイズがPC110のMTU値以下である場合に、フレームF3に従った処理(例えば音声データをPC110のスピーカから出力するための処理等)を実行する。
(TCP通信後MSS決定処理;図3)
続いて、図3を参照して、図2のS12のMSS決定処理の内容について説明する。S100において、決定部32は、メモリ24に記憶されている多機能機10の現行MSS値が、TCP通信のネゴシエーションで取得されたPC100の参考MSS値よりも大きいのか否かを判断する。現行MSS値が参考MSS値よりも大きい場合(S100でYESの場合)には、S102において、決定部32は、参考MSS値が1460バイトよりも大きいのか否かを判断する。
参考MSS値が1460バイトよりも大きい場合(S102でYESの場合)には、S104において、決定部32は、メモリ24内の設定値SVを、現行MSS値から参考MSS値に変更する。一方において、参考MSS値が1460バイト以下である場合(S102でNOの場合)には、S106において、決定部32は、メモリ24内の設定値SVとして記憶されている現行MSS値を維持する。即ち、多機能機10の現行MSS値が変更されない。S104又はS106を終えると、図3のMSS決定処理が終了する。
一方において、現行MSS値が参考MSS値以下である場合(S100でNOの場合)には、S108において、決定部32は、多機能機10の上限MSS値(即ち、FIFO受信バッファFRBの記憶容量から58バイトを減算することによって得られる値)が、参考MSS値よりも小さいのか否かを判断する。
上限MSS値が参考MSS値よりも小さい場合(S108でYESの場合)には、S110において、決定部32は、メモリ24内の設定値SVを、現行MSS値から上限MSS値に変更する。一方において、上限MSS値が参考MSS値以上である場合(S108でNOの場合)には、S112において、決定部32は、メモリ24内の設定値SVを、現行MSS値から参考MSS値に変更する。S110又はS112を終えると、図3のMSS決定処理が終了する。
(ケースA1)
続いて、図3のMSS決定処理を利用する具体例を説明する。図4のケースA1では、PC100,110のそれぞれのMSS値は、LAN4の管理者によって、ジャンボフレームの通信を実行可能な値(4000バイト)に設定されている。このようなLAN4に多機能機10が新たに接続される状況を想定する。なお、多機能機10の現行MSS値、上限MSS値は、それぞれ、1460バイト(即ち出荷段階のMSS値)、8000バイトである。例えば、新品の多機能機10がLAN4に新たに接続される場合には、ケースA1が適用され得る。
多機能機10とPC100との間でTCP通信が実行されると、多機能機10の参考MSS値取得部30は、PC100の参考MSS値として4000バイトを取得する。この場合、図3のMSS決定処理では、決定部32は、S100でNOと判断し、S108でNOと判断し、S112において、メモリ24内の設定値SVを、現行MSS値(1460バイト)から参考MSS値(4000バイト)に変更する。即ち、多機能機10の変更後の現行MSS値は、PC100,110のそれぞれのMSS値に一致する。
その後、多機能機10の送信部34は、PC110とのUDP通信によってIP電話の音声データをPC110のデバイスに送信すべき場合に、変更後の現行MSS値(4000バイト)を基準として送信フレームを生成して(即ち、アプリケーションデータの最大データサイズを4012(4000+40−28)バイトとして送信フレームを生成して)、当該送信フレームをPC110に送信する。仮に、送信部34が、最大データサイズ(4012バイト)を有する音声データを含む送信フレームを生成する場合には、当該送信フレームに含まれるIPパケット(IPヘッダとUDPヘッダとアプリケーションデータとの集合)のデータサイズは、4040(4012+28)バイトである。
PC110のMTU値は、4040(4000+40)バイトである。従って、仮に、最大データサイズを有する音声データを含む送信フレームが、多機能機10からPC110に送信されても、PC110は、当該送信フレームに含まれるIPパケットのデータサイズ(4040バイト)が、PC110のMTU値(4040バイト)以下であると判断して、当該送信フレームに従った処理を実行する。
ケースA1では、既存のLAN4に多機能機10が接続される場合に、多機能機10とPC100との間でTCP通信が実行されると、多機能機10の現行MSS値が、PC100の参考MSS値(4000バイト)に変更される。従って、多機能機10は、LAN4に応じた適切なMSS値、即ち、LAN4で現在採用されているMSS値を、多機能機10自身のMSS値として決定することができる。その後、多機能機10は、UDP通信によって送信フレームをPC110に送信すべき場合に、多機能機10の変更後の現行MSS値(4000バイト)を基準として、送信フレームを生成する。即ち、多機能機10は、ジャンボフレームの通信が実行されるLAN4に接続される場合に、ジャンボフレームを利用してUDP通信を実行することができる。このために、通信効率(即ち通信速度)を向上させることができる。しかも、LAN4で現在採用されているMSS値(4000バイト)を基準として送信フレームが生成されるために、PC110が、当該送信フレームを破棄するという事象が発生するのを抑制することもできる。即ち、多機能機10は、UDP通信によってPC110に音声データを送信すべき際に、LAN4に応じた適切なMSS値に基づいて送信フレームを生成することができ、当該送信フレームをPC110に送信することができる。
(ケースA2)
図4のケースA2は、多機能機10の上限MSS値が3000バイトである点において、ケースA1とは異なる。従って、ケースA1とは異なり、決定部32は、図3のS108でYESと判断し、S110において、メモリ24内の設定値SVを、現行MSS値(1460バイト)から上限MSS値(3000バイト)に変更する。
多機能機10の送信部34は、PC110とのUDP通信によって音声データをPC110のデバイスに送信すべき場合に、変更後の現行MSS値(3000バイト)を基準として送信フレームを生成して、当該送信フレームをPC110に送信する。従って、PC110は、当該送信フレームに従った処理を実行する。
ケースA2でも、多機能機10は、ジャンボフレームの通信が実行されるLAN4に接続される場合に、ジャンボフレームを利用してUDP通信を実行することができる。しかも、多機能機10は、多機能機10の現行MSS値を、上限MSS値よりも大きい参考MSS値に変更しない。仮に、多機能機10の現行MSS値が上限MSS値よりも大きくなると、現行MSS値を基準として生成される送信フレームのデータサイズが、FIFO送信バッファFSBの記憶容量を超えるおそれがある。この場合、FIFO送信バッファFSBが送信フレームを記憶することができないために、送信フレームを送信することができないという事象が発生する。本実施例によると、多機能機10の現行MSS値が上限MSS値よりも大きくならないために、送信フレームを送信することができないという事象が発生するのを抑制することができる。
(ケースA3)
図5のケースA3は、多機能機10の現行MSS値が5000バイトである点において、ケースA1とは異なる。例えば、LAN4とは異なるネットワーク(例えば、5000バイトのMSS値を有するPCが接続されているネットワーク)に多機能機10が接続されている場合には、多機能機10の現行MSS値が5000バイトになり得る。その後、当該異なるネットワークに多機能機10が接続されている状態から、LAN4に多機能機10が接続されている状態に変更する場合に、ケースA3が適用され得る。
図3のMSS決定処理では、決定部32は、S100でYESと判断し、S102でYESと判断し、S104において、メモリ24内の設定値SVを、現行MSS値(5000バイト)から参考MSS値(4000バイト)に変更する。この場合、ケースA1と同様に、送信部34は、変更後の現行MSS値(4000バイト)を基準としてUDPの送信フレームを生成して、当該送信フレームをPC110に送信する。従って、PC110は、当該送信フレームに従った処理を実行する。
ケースA3では、多機能機10の現行MSS値がPC100の参考MSS値よりも大きい場合に、多機能機10の現行MSS値(5000バイト)が、PC100の参考MSS値(4000バイト)に変更される。従って、多機能機10は、LAN4で現在採用されているMSS値(4000バイト)を基準として、UDPの送信フレームを生成することができる。このために、PC110が、多機能機10から送信されるUDPの送信フレームを破棄するという事象が発生するのを抑制することができる。
(ケースA4)
図5のケースA4で、PC100のMSS値(即ち参考MSS値)が1460バイトである点において、ケースA3とは異なる。例えば、LAN4の管理者が、PC100のMSS値を、通常のイーサネットで利用される値(1460バイト)から、ジャンボフレームの通信を実行するための値に変更する前に、多機能機10がLAN4に接続される場合に、ケースA4が適用され得る。
多機能機10とPC100との間でTCP通信が実行されると、多機能機10の参考MSS値取得部30は、PC100の参考MSS値として1460バイトを取得する。この場合、図3のMSS決定処理では、決定部32は、S100でYESと判断し、S102でNOと判断し、S106において、現行MSS値(5000バイト)を維持する。
仮に、決定部32が、現行MSS値(5000バイト)を維持せずに、現行MSS値(5000バイト)から参考MSS値(1460バイト)に変更する手法(以下では「比較例の手法」と呼ぶ)を採用すると、以下の問題が発生する。即ち、仮に、PC110でも上記の比較例の手法が採用されると、多機能機10の現行MSS値が1460バイトに変更された後に、PC110と多機能機10との間でTCP通信が実行されると、PC110のMSS値も4000バイトから1460バイトに変更され得る。即ち、LAN4に接続されている全てのデバイスのMSS値が、通常のイーサネットで利用される1460バイトになってしまう。LAN4の管理者が、ジャンボフレームの通信が実行されるネットワークを構築することを望んでいても、それが実現されない。
このような問題に対処するために、本実施例では、ケースA4において、多機能機10の現行MSS値(5000バイト)を維持する手法を採用している。これにより、LAN4に接続されている全てのデバイスのMSS値が、通常のイーサネットで利用される1460バイトになることを抑制することができ、ジャンボフレームの通信が実行されるネットワークを適切に構築することができる。
(ケースA5)
図6のケースA5は、PC100のMSS値のみならず、PC110のMSS値も1460バイトである点において、ケースA4とは異なる。例えば、LAN4の管理者が、通常のイーサネットのネットワークを構築することを望んでいる場合には、LAN4に接続されているPC100,110のそれぞれのMSS値が、1460バイトに設定される。なお、ケースA3と同様に、LAN4とは異なるネットワークに多機能機10が接続されている状態から、LAN4に多機能機10が接続されている状態に変更する場合に、ケースA5が適用され得る。
このようなLAN4に多機能機10が接続されると、ケースA4で説明したように、多機能機10の現行MSS値(5000バイト)が維持される。従って、多機能機10は、UDP通信によってPC110に音声データを送信すべき場合に、現行MSS値(5000バイト)を基準としてUDPの送信フレームを生成する。従って、PC110は、多機能機10から送信されるUDPの送信フレームを破棄する。即ち、多機能機10からPC110へのUDP通信を実行不可能である。同様に、多機能機10からPC100へのUDP通信も実行不可能である。
このような問題に対処するために、本実施例では、多機能機10の決定部32は、多機能機10の電源がOFFされる場合に、メモリ24内の設定値SVを、現行MSS値(5000バイト)から、予め決められている1460バイトに変更する。なお、決定部32は、多機能機10の電源をOFFするための操作が実行されてから、多機能機10の電源が実際にOFFされる前に、現行MSS値(5000バイト)から1460バイトに変更してもよいし、多機能機10の電源が再びONされる際に、現行MSS値(5000バイト)から1460バイトに変更してもよい。
これにより、多機能機10の送信部34は、多機能機10の電源が再びONされた後に、変更後の現行MSS値(1460バイト)を基準としてUDPの送信フレームを生成することができる。従って、PC110は、当該送信フレームを破棄せずに、当該送信フレームに従った処理を実行することができる。
ケースA5では、LAN4の管理者は、多機能機10の電源をOFFすることによって、通常のイーサネットのネットワークを適切に構築することができる。
(PC100から多機能機10へのUDP通信;図2)
多機能機10がLAN4に新たに接続された後に、例えば、PC100は、UDP通信によって、SNMPのリクエスト(例えば多機能機10のステータスを取得するためのリクエスト)を多機能機10に送信する。なお、上述したように、UDP通信では、TCP通信と異なり、ネゴシエーションが実行されない。従って、PC100は、多機能機100の現行MSS値を知ることができず、多機能機10は、PC100の参考MSS値を知ることができない。
PC100は、まず、PC100の参考MSS値に40(20+20)バイトを加算して、PC100のMTU値を算出する。次いで、PC100は、PC100のMTU値から28(20+8)バイトを減算して、UDPのフレームに含まれるべきアプリケーションデータの最大データサイズ(以下では「特定の最大データサイズ」と呼ぶ)を算出する。次いで、PC100は、上記の特定の最大データサイズ以下のアプリケーションデータ(即ちSNMPのリクエスト)を含むUDPのフレームF4を生成して、多機能機10に送信する。
なお、フレームF4内のUDPヘッダは、データ長の値を含む。図1に示されるように、データ長の値は、フレームF4内のUDPヘッダのデータサイズ(8バイト)と、フレームF4内のアプリケーションデータのデータサイズと、の和である。従って、データ長の値に20バイトを加算すれば、フレームF4内のIPパケットのデータサイズが得られる。
仮に、フレームF4内のアプリケーションデータのデータサイズが、上記の特定の最大データサイズに一致していれば、フレームF4内のIPパケットのデータサイズから40バイトを減算することによって得られる算出値は、PC100の参考MSS値に一致する。しかしながら、フレームF4内のアプリケーションデータのデータサイズが、上記の特定の最大データサイズに一致しているという保証はない。例えば、PC100から多機能機10に送信されるべきアプリケーションデータのデータ量が比較的に少ない場合には、フレームF4内のアプリケーションデータのデータサイズは、上記の特定の最大データサイズよりも小さくなり得る。この場合、フレームF4内のIPパケットのデータサイズから40バイトを減算することによって得られる算出値は、PC100の参考MSS値よりも小さくなる。即ち、フレームF4内のUDPヘッダに含まれるデータ長の値から得られる上記の算出値は、あくまで、PC100の参考MSS値の候補であり、PC100の参考MSS値に必ず一致するわけではない。以下では、データ長の値から得られる上記の算出値のことを「候補MSS値」と呼ぶ。
多機能機10のデータ長取得部36(図1参照)は、PC100から送信される受信フレームF4内のUDPヘッダを解析することによって、UDPヘッダに含まれるデータ長の値を取得する。次いで、多機能機10の制御部20は、データ長の値に20バイトを加算して、受信フレームF4内のIPパケットのデータサイズを算出する。さらに、制御部20は、多機能機10の現行MSS値に40バイトを加算して、多機能機10のMTU値を算出する。次いで、制御部20は、受信フレームF4内のIPパケットのデータサイズと、多機能機10のMTU値と、を比較する。制御部20は、受信フレームF4内のIPパケットのデータサイズが多機能機10のMTU値よりも大きい場合に、受信フレームF4を破棄する。一方において、制御部20は、受信フレームF4内のIPパケットのデータサイズが多機能機10のMTU値以下である場合に、受信フレームF4に従った処理(例えばSNMPのレスポンスの生成処理等)を実行する。
次いで、決定部32は、S20において、多機能機10の現行MSS値が確定済みであるのか否かを判断する。S20は、S10と同様である。多機能機10の現行MSS値が確定済みでない場合(S20でNOの場合)には、決定部32は、S22のMSS決定処理を実行する。なお、S22のMSS決定処理が実行された後に、例えば、多機能機10からPC110にIP電話の音声データが送信されるべき場合には、S24において、送信部34は、音声データを含む送信フレームF5を生成する。次いで、送信部34は、UDP通信によって送信フレームF5をPC110に送信する。送信フレームF5の生成及び送信のための処理は、送信フレームF3の生成及び送信のための処理と同様である。
(UDP通信後MSS決定処理;図7)
続いて、図7を参照して、図2のS22のMSS決定処理の内容について説明する。S200において、決定部32は、多機能機10の現行MSS値が、受信フレームF4内のUDPヘッダに含まれるデータ長の値から得られるPC100の候補MSS値よりも大きいのか否かを判断する。現行MSS値が候補MSS値よりも大きい場合(S200でYESの場合)には、S206において、決定部32は、メモリ24内の設定値SVとして記憶されている現行MSS値を維持する。S206を終えると、図7のMSS決定処理が終了する。
一方において、現行MSS値が候補MSS値以下である場合(S200でNOの場合)には、S208において、決定部32は、多機能機10の上限MSS値が候補MSS値よりも小さいのか否かを判断する。上限MSS値が候補MSS値よりも小さい場合(S208でYESの場合)には、S210において、決定部32は、メモリ24内の設定値SVを、現行MSS値から上限MSS値に変更する。一方において、多機能機10の上限MSS値が候補MSS値以上である場合(S208でNOの場合)には、S212において、決定部32は、メモリ24内の設定値SVを、現行MSS値から候補MSS値に変更する。S210又はS212を終えると、図7のMSS決定処理が終了する。
(ケースB1−1)
続いて、図7のMSS決定処理を利用する具体例を説明する。図8のケースB1−1では、上記のケースA1(図4参照)と同様に、PC100,110のそれぞれのMSS値が4000バイトであり、多機能機10の現行MSS値、上限MSS値が、それぞれ、1460バイト、8000バイトである。
PC100から多機能機10へのUDP通信では、上記の特定の最大データサイズを有するアプリケーションデータを含むフレームF4が送信される。この場合、フレームF4内のデータ長の値から得られるPC100の候補MSS値は、PC100の参考MSS値(4000バイト)に一致する。従って、図7のMSS決定処理では、決定部32は、S200でNOと判断し、S208でNOと判断し、S212において、メモリ24内の設定値SVを、現行MSS値(1460バイト)から候補MSS値(4000バイト)に変更する。即ち、多機能機10の変更後の現行MSS値は、PC100,110のそれぞれのMSS値に一致する。従って、上記のケースA1と同様の効果が得られる。
なお、図4のケースA1及び図8のケースB1−1では、同じLAN4が構築されている。このようなLAN4に多機能機10が新たに接続された後において、多機能機10が、PC100とのUDP通信を実行するのに先行して、PC100とのTCP通信を実行すれば、図4のケースA1に示されるように、決定部32は、PC100とのネゴシエーションで取得された参考MSS値(4000バイト)を、多機能機10自身のMSS値として決定する。一方において、多機能機10が、PC100とのTCP通信を実行するのに先行して、PC100とのUDP通信を実行すれば、図8のケースB1−1に示されるように、決定部32は、PC100から受信されたフレーム内のデータ長の値から得られるPC100の候補MSS値(4000バイト)を、多機能機10自身のMSS値として決定する。候補MSS値は、参考MSS値と同じ値である。従って、図4のケースA1と図8のケースB1−1とのどちらでも、決定部32は、多機能機10自身のMSS値として同じ値を決定する。
(ケースB1−2)
図8のケースB1−2は、以下の点において、ケースB1−1とは異なる。即ち、PC100から多機能機10へのUDP通信では、上記の特定の最大データサイズよりも小さいデータサイズを有するアプリケーションデータを含むフレームF4が送信される。即ち、フレームF4内のデータ長の値から得られるPC100の候補MSS値は、PC100の参考MSS値(4000バイト)よりも小さい3000バイトである。
この場合も、ケースB1−1と同様に、決定部32は、S200でNOと判断し、S208でNOと判断し、S212において、メモリ24内の設定値SVを、現行MSS値(1460バイト)から候補MSS値(3000バイト)に変更する。多機能機10の変更後の現行MSS値は、PC100,110のそれぞれのMSS値よりも小さいが、上記のケースA1(図4参照)と同様の効果が得られる。
(ケースB2)
図9のケースB2は、多機能機10の上限MSS値が3000バイトである点において、ケースB1−1とは異なる。従って、ケースB1−1とは異なり、決定部32は、図7のS208でYESと判断し、S210において、メモリ24内の設定値SVを、現行MSS値(1460バイト)から上限MSS値(3000バイト)に変更する。この場合、上記のケースA2(図4参照)と同様の効果が得られる。
(ケースB3)
図9のケースA3は、多機能機10の現行MSS値が5000バイトである点において、ケースB1−1とは異なる。図7のMSS決定処理では、決定部32は、S200でYESと判断し、S206において、メモリ24内の設定値SVとして記憶されている現行MSS値(5000バイト)を維持する。
前述したように、PC100の候補MSS値がPC100の参考MSS値に一致するという保証はなく、候補MSS値は、参考MSS値よりも小さい値である可能性がある。このために、仮に、図7のS206において、多機能機10の現行MSS値をPC100の候補MSS値に変更する手法を採用すると、現行MSS値が、参考MSS値よりも小さい値に変更される可能性がある。即ち、現行MSS値が、LAN4の管理者が意図していない小さな値に変更される可能性がある。従って、本実施例では、S206において、多機能機10の現行MSS値を維持する手法を採用することにより、現行MSS値が、LAN4の管理者が意図していない小さな値に変更されるのを抑制することができる。
(対応関係)
多機能機10、PC100、PC110が、それぞれ、「通信装置」、「第1のデバイス」、「第2のデバイス」の一例である。多機能機10のMSS値(即ち、メモリ24内の設定値SVとして記憶されているMSS値)が、「特定の値」の一例である。図2のフレームF3又はF5で送信される音声データが、「アプリケーションデータ」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)上記の各実施例では、メモリ24内の設定値SVとして多機能機10のMSS値が記憶される。従って、決定部32は、PC100の参考MSS値、又は、PC100から受信される受信フレームF4内のデータ長の値を利用して、多機能機10自身のMSS値を決定する。これに代えて、メモリ24内の設定値SVとして、多機能機10のMSS値が記憶されずに、多機能機10のMTU値が記憶される構成を採用してもよい。この場合、決定部32は、PC100の参考MSS値、又は、データ長の値を利用して、多機能機10自身のMTU値を決定してもよい。
一般的に言うと、「特定の値」は、通信装置のMSS値やMTU値を決定可能な値であればよく、上記の実施例のように、通信装置のMSS値であってもよいし、本変形例のように、通信装置のMTU値であってもよい。従って、例えば、「前記通信装置の前記現行MSS値が、前記第1のデバイスの前記参考MSS値に変更されるように、前記特定の値を決定し」という表現は、通信装置の現行MSS値が、第1のデバイスの参考MSS値に変更されるように、通信装置のMSS値を決定すること(上記の実施例)、及び、通信装置の現行MSS値が、第1のデバイスの参考MSS値に変更されるように、通信装置のMTU値を決定すること(本変形例)、を含む。他の同様の表現も、通信装置のMSS値を決定すること、及び、通信装置のMTU値を決定すること、を含む。
(変形例2)メモリ24内の設定値SVとして、多機能機10のMSS値と多機能機10のMTU値との両方が記憶される構成を採用してもよい。この場合、決定部32は、「特定の値」として多機能機10自身のMSS値を決定してもよいし、「特定の値」として多機能機10自身のMTU値を決定してもよい。
(変形例3)例えば、図3のS100において、決定部32は、多機能機10の現行MSS値とPC100の参考MSS値とを比較している。しかしながら、図3のS100において、決定部32は、多機能機10のMTU値(現行MSS値+40バイト)と、PC100のMTU値(参考MSS値+40バイト)と、を比較してもよい。MTU値とMSS値との関係は、一方の値が決定されれば、他方の値が一義的に決定されるものである。従って、図3及び図7内の各判断処理(S100、S102、S108、S200、S208)では、上記の実施例のように、MSS値を比較してもよいし、本変形例のように、MTU値を比較してもよい。従って、例えば、「前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値よりも大きい場合」という表現は、MSS値を比較すること、及び、MTU値を比較すること、を含む。他の同様の表現も、MSS値を比較すること、及び、MTU値を比較すること、を含む。
(変形例4)上記の実施例では、図3に示されるように、決定部32は、PC100の参考MSS値と他の値(多機能機10の現行MSS値、1460バイト、上限MSS値等)との関係に応じて、多機能機10自身のMSS値を、現行MSS値から参考MSS値に変更させるのか否かを判断する(S100、S102、S108)。しかしながら、決定部32は、PC100の参考MSS値と上記の他の値との関係に関わらず、多機能機10自身のMSS値を、現行MSS値から参考MSS値に変更させてもよい。即ち、決定部32は、図2のS10でYESの場合に、多機能機10自身のMSS値を、現行MSS値から参考MSS値に必ず変更させてもよい。一般的に言うと、決定部は、通信装置の現行MSS値が、第1のデバイスの参考MSS値に変更されるように、特定の値を決定する際に、参考MSS値と上記の他の値との関係を考慮してよいし、当該関係を考慮しなくてもよい。同様に、決定部は、通信装置の現行MSS値が、第1のデバイスの候補MSS値に変更されるように、特定の値を決定する際に、候補MSS値と上記の他の値との関係を考慮してよいし、当該関係を考慮しなくてもよい。
(変形例5)上記の実施例では、UDP通信によって多機能機10からPC110に送信されるアプリケーションデータとして、「音声データ」を採用している。これに代えて、アプリケーションデータとして、他の種類のデータ(例えば動画データ)を採用してもよい。一般的に言うと、「アプリケーションデータ」は、UDP通信によって通信装置から第2のデバイスに送信されるべきデータであれば、どのような種類のデータであってもよい。
(変形例6)「通信装置」は、多機能機に限られず、他のデバイス(例えば、プリンタ、スキャナ装置、FAX装置、コピー機、電話機、PC、サーバ、携帯電話、PDA等)であってもよい。また、「第1のデバイス」及び「第2のデバイス」は、PCに限られず、他のデバイス(例えば、プリンタ、スキャナ装置、FAX装置、コピー機、電話機、多機能機、サーバ、携帯電話、PDA等)であってもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、10:多機能機、100:PC、110:PC、MB:メモリバッファ、FSB:FIFO送信バッファ、FRB:FIFO受信バッファ

Claims (13)

  1. 第1のデバイスと第2のデバイスとが接続されているネットワークに接続される通信装置であって、
    前記第1のデバイスとのTCP通信を実行して、前記第1のデバイスから、前記第1のデバイスのMSSの値である参考MSS値を取得する参考MSS値取得部と、
    前記第2のデバイスとのUDP通信によってアプリケーションデータを前記第2のデバイスに送信すべき場合に、前記第1のデバイスの前記参考MSS値を利用して決定される特定の値に基づいて、前記アプリケーションデータを含む送信フレームを生成して、前記送信フレームを前記第2のデバイスに送信する送信部と、
    を備える通信装置。
  2. 前記通信装置は、さらに、
    前記第1のデバイスの前記参考MSS値を利用して、前記特定の値を決定する決定部を備え、
    前記決定部は、前記通信装置のMSSの現行の値である現行MSS値が、前記第1のデバイスの前記参考MSS値に変更されるように、前記特定の値を決定する、請求項1に記載の通信装置。
  3. 前記決定部は、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値以下である場合に、前記通信装置の前記現行MSS値が、前記第1のデバイスの前記参考MSS値に変更されるように、前記特定の値を決定し、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値よりも大きい場合に、前記通信装置の前記現行MSS値が維持されるように、前記特定の値を決定する、請求項2に記載の通信装置。
  4. 前記決定部は、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値よりも大きく、かつ、前記第1のデバイスの前記参考MSS値が1460バイトよりも大きい場合に、前記通信装置の前記現行MSS値が、前記第1のデバイスの前記参考MSS値に変更されるように、前記特定の値を決定し、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値よりも大きく、かつ、前記第1のデバイスの前記参考MSS値が1460バイト以下である場合に、前記通信装置の前記現行MSS値が維持されるように、前記特定の値を決定する、請求項3に記載の通信装置。
  5. 前記決定部は、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値以下であり、かつ、前記通信装置が利用可能なMSSの上限の値である上限MSS値が前記第1のデバイスの前記参考MSS値よりも小さい場合に、前記通信装置の前記現行MSS値が、前記通信装置の前記上限MSS値に変更されるように、前記特定の値を決定し、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記参考MSS値以下であり、かつ、前記通信装置の前記上限MSS値が前記第1のデバイスの前記参考MSS値以上である場合に、前記通信装置の前記現行MSS値が、前記第1のデバイスの前記参考MSS値に変更されるように、前記特定の値を決定する、請求項3又は4に記載の通信装置。
  6. 前記通信装置は、さらに、
    前記第1のデバイスとのUDP通信によって受信される受信フレーム内のUDPヘッダに含まれるデータ長の値を取得するデータ長取得部を備え、
    前記決定部は、
    前記第1のデバイスの前記参考MSS値が取得される場合に、前記第1のデバイスの前記参考MSS値を利用して、前記特定の値を決定し、
    前記データ長の値が取得される場合に、前記データ長の値を利用して、前記特定の値を決定する、請求項2から5のいずれか一項に記載の通信装置。
  7. 第1のデバイスと第2のデバイスとが接続されているネットワークに接続される通信装置であって、
    前記第1のデバイスとのUDP通信によって受信される受信フレーム内のUDPヘッダに含まれるデータ長の値を取得するデータ長取得部と、
    前記第2のデバイスとのUDP通信によってアプリケーションデータを前記第2のデバイスに送信すべき場合に、前記データ長の値を利用して決定される特定の値に基づいて、前記アプリケーションデータを含む送信フレームを生成して、前記送信フレームを前記第2のデバイスに送信する送信部と、
    を備える通信装置。
  8. 前記通信装置は、さらに、
    前記データ長の値を利用して、前記特定の値を決定する決定部を備え、
    前記決定部は、前記通信装置のMSSの現行の値である現行MSS値が、前記データ長の値から得られる前記第1のデバイスのMSSの値の候補である候補MSS値に変更されるように、前記特定の値を決定する、請求項7に記載の通信装置。
  9. 前記決定部は、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記候補MSS値以下である場合に、前記通信装置の前記現行MSS値が、前記第1のデバイスの前記候補MSS値に変更されるように、前記特定の値を決定し、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記候補MSS値よりも大きい場合に、前記通信装置の前記現行MSS値が維持されるように、前記特定の値を決定する、請求項8に記載の通信装置。
  10. 前記決定部は、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記候補MSS値以下であり、かつ、前記通信装置が利用可能なMSSの上限の値である上限MSS値が前記第1のデバイスの前記候補MSS値よりも小さい場合に、前記通信装置の前記現行MSS値が、前記通信装置の前記上限MSS値に変更されるように、前記特定の値を決定し、
    前記通信装置の前記現行MSS値が前記第1のデバイスの前記候補MSS値以下であり、かつ、前記通信装置の前記上限MSS値が前記第1のデバイスの前記候補MSS値以上である場合に、前記通信装置の前記現行MSS値が、前記第1のデバイスの前記候補MSS値に変更されるように、前記特定の値を決定する、請求項9に記載の通信装置。
  11. 前記送信部は、
    前記特定の値に基づいて、前記送信フレームに含まれるべき前記アプリケーションデータの最大データサイズを決定し、
    前記送信フレームに含まれる前記アプリケーションデータのデータサイズが、決定済みの前記最大データサイズ以下になるように、前記送信フレームを生成する、請求項1から10のいずれか一項に記載の通信装置。
  12. 第1のデバイスと第2のデバイスとが接続されているネットワークに接続される通信装置のためのコンピュータプログラムであって、
    前記通信装置に搭載されるコンピュータに、以下の各処理、即ち、
    前記第1のデバイスとのTCP通信を実行して、前記第1のデバイスから、前記第1のデバイスのMSSの値である参考MSS値を取得する参考MSS値取得処理と、
    前記第2のデバイスとのUDP通信によってアプリケーションデータを前記第2のデバイスに送信すべき場合に、前記第1のデバイスの前記参考MSS値を利用して決定される特定の値に基づいて、前記アプリケーションデータを含む送信フレームを生成して、前記送信フレームを前記第2のデバイスに送信する送信処理と、
    を実行させるコンピュータプログラム。
  13. 第1のデバイスと第2のデバイスとが接続されているネットワークに接続される通信装置のためのコンピュータプログラムであって、
    前記通信装置に搭載されるコンピュータに、以下の各処理、即ち、
    前記第1のデバイスとのUDP通信によって受信される受信フレーム内のUDPヘッダに含まれるデータ長の値を取得するデータ長取得処理と、
    前記第2のデバイスとのUDP通信によってアプリケーションデータを前記第2のデバイスに送信すべき場合に、前記データ長の値を利用して決定される特定の値に基づいて、前記アプリケーションデータを含む送信フレームを生成して、前記送信フレームを前記第2のデバイスに送信する送信処理と、
    を実行させるコンピュータプログラム。
JP2011070491A 2011-03-28 2011-03-28 通信装置 Active JP5418530B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011070491A JP5418530B2 (ja) 2011-03-28 2011-03-28 通信装置
US13/410,984 US8798097B2 (en) 2011-03-28 2012-03-02 Communication devices that communicate using frames and computer-readable media for controlling communication devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011070491A JP5418530B2 (ja) 2011-03-28 2011-03-28 通信装置

Publications (2)

Publication Number Publication Date
JP2012205248A true JP2012205248A (ja) 2012-10-22
JP5418530B2 JP5418530B2 (ja) 2014-02-19

Family

ID=46927215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011070491A Active JP5418530B2 (ja) 2011-03-28 2011-03-28 通信装置

Country Status (2)

Country Link
US (1) US8798097B2 (ja)
JP (1) JP5418530B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012242897A (ja) * 2011-05-16 2012-12-10 Canon Inc ホストコンピュータ、印刷制御システム、印刷制御システムの制御方法、プログラム
TWI580226B (zh) * 2014-06-12 2017-04-21 智邦科技股份有限公司 決定最大分段大小値之方法
JP2022039045A (ja) * 2020-08-27 2022-03-10 キヤノン株式会社 通信装置、制御方法、プログラム
US11997183B2 (en) * 2022-03-25 2024-05-28 Arista Networks, Inc. Hardware clamping of the transmission control protocol (TCP) maximum segment size (MSS) parameter in a scalable and programmable network device
CN115022419B (zh) * 2022-06-30 2024-02-20 武汉思普崚技术有限公司 一种自动调整mss的方法、装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000124950A (ja) * 1998-10-12 2000-04-28 Nec Corp 送受信パラメータ設定方法および送受信パラメータ設定装置
JP2006253867A (ja) * 2005-03-09 2006-09-21 Fujitsu Access Ltd フレーム伝送システム及びフレーム伝送方法
JP2007174293A (ja) * 2005-12-22 2007-07-05 Matsushita Electric Ind Co Ltd 通信装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
JP4222353B2 (ja) * 2005-09-16 2009-02-12 ヤマハ株式会社 Ip通信装置およびip通信システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000124950A (ja) * 1998-10-12 2000-04-28 Nec Corp 送受信パラメータ設定方法および送受信パラメータ設定装置
JP2006253867A (ja) * 2005-03-09 2006-09-21 Fujitsu Access Ltd フレーム伝送システム及びフレーム伝送方法
JP2007174293A (ja) * 2005-12-22 2007-07-05 Matsushita Electric Ind Co Ltd 通信装置

Also Published As

Publication number Publication date
US20120250703A1 (en) 2012-10-04
JP5418530B2 (ja) 2014-02-19
US8798097B2 (en) 2014-08-05

Similar Documents

Publication Publication Date Title
US8102852B2 (en) Method and system for time-stamping data packets from a network
US8996718B2 (en) TCP-aware receive side coalescing
JP5418530B2 (ja) 通信装置
US8634415B2 (en) Method and system for routing network traffic for a blade server
US8913613B2 (en) Method and system for classification and management of inter-blade network traffic in a blade server
EP3694160A1 (en) Date transmission method, apparatus and device
US9276866B2 (en) Tuning congestion notification for data center networks
JP5910238B2 (ja) 通信装置
JP5573709B2 (ja) 通信装置
JP2010193276A (ja) 通信装置、通信装置の制御方法及びプログラム
JP2018064187A (ja) 通信装置、通信方法およびプログラム
JP5516170B2 (ja) 通信装置及びコンピュータプログラム
JP4186893B2 (ja) パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法
JP2016012801A (ja) 通信装置、通信システム及び通信装置制御方法
JP5365410B2 (ja) 通信制御装置、通信装置及びプログラム
US20050044261A1 (en) Method of operating a network switch
JP6279970B2 (ja) プロセッサ、通信装置、通信システム、通信方法およびコンピュータプログラム
JP4175352B2 (ja) 通信装置
JP2012080504A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
US11522757B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
JP2012049883A (ja) 通信装置およびパケット処理方法
JP2011250264A (ja) 廃棄パケット監視装置、廃棄パケット監視方法および廃棄パケット監視プログラム
WO2023016470A1 (zh) 一种处理ping报文的方法、装置和系统
JP2012175560A (ja) 通信装置
JP2013046173A (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: 20130722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

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: 20131022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131104

R150 Certificate of patent or registration of utility model

Ref document number: 5418530

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150