WO2004036865A1 - 通信装置及びその応用 - Google Patents

通信装置及びその応用 Download PDF

Info

Publication number
WO2004036865A1
WO2004036865A1 PCT/JP2003/012166 JP0312166W WO2004036865A1 WO 2004036865 A1 WO2004036865 A1 WO 2004036865A1 JP 0312166 W JP0312166 W JP 0312166W WO 2004036865 A1 WO2004036865 A1 WO 2004036865A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
unit
bucket
data
processing
Prior art date
Application number
PCT/JP2003/012166
Other languages
English (en)
French (fr)
Inventor
Kazuaki Okamoto
Hideo Hirono
Original Assignee
Sanyo Electric 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
Priority claimed from JP2002315085A external-priority patent/JP3524914B1/ja
Priority claimed from JP2003005101A external-priority patent/JP3557202B2/ja
Priority claimed from JP2003005100A external-priority patent/JP3557201B2/ja
Application filed by Sanyo Electric Co.,Ltd. filed Critical Sanyo Electric Co.,Ltd.
Priority to AU2003266582A priority Critical patent/AU2003266582A1/en
Priority to KR1020047014902A priority patent/KR100753734B1/ko
Priority to CN038124793A priority patent/CN1656767B/zh
Publication of WO2004036865A1 publication Critical patent/WO2004036865A1/ja
Priority to US11/003,982 priority patent/US7843968B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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]
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Definitions

  • the present invention relates to a communication technology, and in particular, a technology for efficiently processing packets, a technology for efficiently processing data communication using a plurality of communication protocols, and calculating a checksum of a bucket transmitted and received via a network.
  • a communication technology and in particular, a technology for efficiently processing packets, a technology for efficiently processing data communication using a plurality of communication protocols, and calculating a checksum of a bucket transmitted and received via a network.
  • Internet telephone devices that packetize data obtained by encoding call voice signals and transmit / receive them via a network such as the Internet are receiving attention. It can be used as a video telephone device by sending video images simultaneously with the call voice, and is expected to be a next-generation telephone device that replaces the conventional telephone device.
  • TCP / IP is used as a communication protocol for packet communication.
  • TCP Transmission Control Protocol I Internet Protocol Power is used for IJ.
  • TCP is a communication protocol that places importance on accuracy, such as transmitting and receiving data after establishing a connection between devices.
  • the processing is complicated, and there is a time constraint such that the next packet cannot be sent until the other party confirms that the packet has been received. .
  • UDP / IP User Datagram
  • a network interface device when a network interface device receives a packet, it filters packets addressed to a MAC (Media Access Control) address other than its own device, performs an error check using a CRC (Cyclic Redundancy Check), and then performs all Is sent to the CPU for processing.
  • MAC Media Access Control
  • CRC Cyclic Redundancy Check
  • the method of processing all buckets by software using a CPU has problems such as poor processing efficiency, low speed, and high power consumption.
  • the protocol processing is rate-limiting, and the real-time performance may be impaired.
  • the CPU is always executing protocol processing during a call, it is difficult to execute other applications in parallel.
  • a device equipped with a high-performance CPU such as a personal computer
  • there is no problem even if the CPU performs all packet processing because it has sufficient capacity to handle it.
  • a relatively low-performance CPU must be installed in order to realize a smaller device, lower cost, and lower power consumption. The issue is how to reduce the processing load on the CPU. Increasing the CPU capacity to increase processing speeds results in increased cost, power consumption, heat generation, etc., and a compromise must be found at the expense of either.
  • Some devices that require high speed such as network routers, implement all protocol processing in hardware.
  • the method of processing both communication protocols using hardware enables high-speed protocol processing, but the TCP processing that requires complicated processing is also implemented by hardware, which increases the circuit size and costs. There is a problem in terms of power consumption and heat generation.
  • TCP and UDP data is packetized and transmitted and received. To check the reliability of the received data, a check sum is given to each bucket.
  • the checksum is the one's complement of all the data in the packet. Is stored in the header of the packet. Before transmitting the packet, the transmitting side adds all the data of the packet to calculate a checksum, stores it in the header, and transmits it.
  • the receiving side receives the packet, it adds up all the data in the packet and checks whether the result matches the checksum value stored in the header. If they match, it determines that the packet has been successfully received. If they do not match, it determines that the data in the received packet contains an error and discards the packet.
  • the transmitting side In the case of TCP, the amount of data that can be transmitted at one time varies depending on the network conditions, the buffer conditions on the receiving side, and the like, and is determined immediately before transmission. Therefore, the transmitting side generally calculates the checksum by reading the data of the packet after the size of the packet to be transmitted next is determined. Then, the checksum is stored in the header of the packet, and after transmitting the header information, the data is read again and transmitted.
  • Japanese Patent Application Laid-Open No. 2001-26859 discloses a method for generating a TCP bucket.
  • the data to be transmitted by TCP is stored in the TX buffer at once, and when the size of the packet to be transmitted next is determined, the data of that size is read from the TX buffer, the checksum is calculated, and the data is calculated. Store in temporary buffer. Then, after transmitting the header including the checksum, the data is read from the temporary buffer and transmitted.
  • data read from the TX buffer for calculating the checksum and data read from the temporary buffer for data transmission are performed in parallel in a pipeline manner. Can improve overhead.
  • the present invention has been made in view of such a problem, and an object of the present invention is to provide a technique for efficiently performing packet processing accompanying data communication.
  • the communication device includes a receiving unit that receives a packet transmitted via a network, and a transmission unit that transmits the received packet according to a first communication method that requires that a connection be established between the devices prior to data transmission / reception.
  • a dedicated circuit for processing the bucket is a dedicated circuit for processing the bucket.
  • the communication device includes a receiving unit that receives a bucket transmitted via a network, and, when the received packet is a bucket transmitted by a first communication method for confirming the arrival of a transmission bucket, the packet is transmitted to the receiving unit.
  • the general-purpose circuit may be CPU, DSP, or the like.
  • the first communication scheme may be, for example, TCP.
  • the second communication method may be, for example, UDP.
  • the communication device further includes a transmitting unit that transmits a bucket via a network, and when the packet to be transmitted is transmitted by the first communication method, the packet is processed by the general-purpose circuit, and the packet to be transmitted is transmitted.
  • the bucket may be processed by the dedicated circuit.
  • the communication device may further include a detection unit that detects a communication method in which the received packet is transmitted.
  • the detection unit may detect the communication method by referring to the header of the packet.
  • This detection unit may also be configured by a dedicated circuit.
  • the detection unit has detected a packet transmitted by the first communication method. At this time, the detection unit may send the packet directly to the dedicated circuit without passing through the general-purpose circuit. High-speed processing is realized by performing processing using a dedicated circuit without going through software processing. Also, the processing load on general-purpose circuits such as a CPU can be reduced.
  • the communication device may further include a security processing unit that encrypts or decrypts data forming the packet.
  • This security processing unit may also be composed of a dedicated circuit.
  • the communication device includes a receiving unit that receives a bucket sent via a network, and, when the received bucket is a fragmented packet, sends the packet to a general-purpose circuit to process the packet by software.
  • a first determining unit that, when the received bucket is an unfragmented packet, sends the bucket to a first dedicated circuit for processing by the hardware.
  • IP packets with options and fragmented IP packets require complicated processing, so if these IP packets are also processed by a dedicated circuit, the circuit scale will increase and consumption will increase. This leads to increased power and costs. For this reason, special IP packets that require more complex processing than ordinary IP packets while processing ordinary IP packets at high speed with dedicated circuits are processed by software using general-purpose circuits such as CPUs. The circuit scale can be reduced, and the power consumption and cost can be reduced.
  • the packet processed by the first dedicated circuit is a packet transmitted by a first communication method that requires a connection to be established between devices before transmitting and receiving data
  • a packet is sent to the general-purpose circuit
  • the bucket processed by the first special-purpose circuit is a bucket sent by the second communication method that does not require the establishment of a connection between devices
  • the packet is sent to the hardware.
  • the information processing apparatus may further include a second determination unit that sends the data to a second dedicated circuit for processing by the hardware. After the IP processing of the normal IP packet is performed by the IP processing circuit, it is determined whether the bucket is UDP or TCP, and only the UDP packet is processed by the UDP processing circuit.
  • the CP bucket may be processed by software using a general-purpose circuit such as a CPU.
  • the communication device includes: a determination unit configured to determine whether a packet received via the network is a packet including data requiring real-time processing; a buffer that temporarily holds the packet; A control unit that controls storage of the packet in the buffer, wherein the control unit is configured to, when a free space of the buffer falls below a predetermined threshold, include a packet including data that requires the real-time processing. While storing in the buffer is prohibited while storing buckets that do not include data requiring real-time processing in the buffer.
  • the packet received via the network is a packet sent by the first communication method that requires a connection to be established between the devices prior to data transmission / reception, or a connection between the devices.
  • a determination unit that determines whether the packet is transmitted by the second communication method that does not require establishment of a packet, a buffer that temporarily holds the packet, and a control that controls storage of the packet in the buffer.
  • a control unit wherein when the free space of the buffer falls below a predetermined threshold, the control unit permits storage of the packet sent by the second communication scheme in the buffer, The storage of the packet transmitted by the first communication method in the buffer is prohibited.
  • a UDP bucket When transmitting and receiving a voice signal of a telephone device or a video signal of a video telephone device by UDP, a UDP bucket is selectively taken in with priority over a TCP bucket, so that the UDP bucket is discarded and data such as a voice signal of the telephone is transmitted. Data can be reduced.
  • the communication device includes: a determination unit that determines a type of a bucket received via a network; a buffer that temporarily stores the bucket; a control unit that controls storage of the bucket in the buffer; The control unit holds a plurality of threshold values for determining whether or not packet storage in the buffer is permitted according to a bucket type, and the bucket type in which the free space of the buffer falls below a threshold value. Is prohibited from being stored in the buffer.
  • the threshold value for buckets that require real-time processing and the buckets with high importance may be set lower than the threshold values for other packets. As a result, when the free space in the buffer becomes small, real-time packets and packets with high importance can be preferentially captured, and the possibility of discarding packets can be suppressed.
  • Still another embodiment of the present invention relates to a telephone device.
  • the telephone device includes an input unit for inputting voice, a communication unit for transmitting voice input from the input unit to another device and receiving voice from another device, and outputting a voice received from another device.
  • An output unit that receives a packet transmitted via a network; a detection unit that detects a communication method of the received packet; and a data transmission and reception method.
  • a general-purpose circuit for processing the packet by software and the communication method requires that a connection be established between devices.
  • a dedicated circuit for processing the packet when the second communication method is not used, and the voice is transmitted and received by the second communication method.
  • the output unit may be a speaker, and the input unit may be a microphone.
  • the video telephone includes an input unit for inputting an image and a voice, a communication unit for transmitting the image and the voice input by the input unit to another device, and receiving an image and a voice from the other device, An output unit that outputs images and sounds received from the device, wherein the communication unit receives a bucket transmitted via a network, and a detection unit detects a communication scheme of the received bucket.
  • the communication method is the first communication method that requires establishing a connection between devices prior to data transmission / reception, a general-purpose circuit for processing the bucket by software; and When the second communication method does not require the establishment of a connection between devices, the bucket is processed. And a dedicated circuit for transmitting and receiving the image and the sound by the second communication method.
  • the imaging device includes: an imaging unit that captures an image; and a communication unit that transmits an image captured by the imaging unit to another device and receives an image from another device.
  • the communication unit includes a network.
  • a receiving unit that receives a bucket transmitted via a network, a detecting unit that detects a communication scheme of the received bucket, and the communication scheme requires that a connection be established between the devices prior to data transmission / reception.
  • a dedicated circuit for processing a packet wherein the image is transmitted and received by the second communication method.
  • Yet another embodiment of the present invention relates to a communication method.
  • the method includes the steps of: when a packet is received, detecting a communication scheme of the packet; and transmitting bucket data to a circuit to process the bucket according to the communication scheme.
  • the detecting step by analyzing a packet header, it is determined whether the packet is a bucket according to the first communication method which needs to establish a connection between devices prior to data transmission / reception, or a connection between devices. Detecting whether the packet is a bucket according to a second communication method that does not require establishment, and transmitting the data, transmitting the packet according to the first communication method to a general-purpose circuit for software processing, The bucket according to the communication method may be sent to a dedicated circuit for processing the packet.
  • the step of detecting detects whether the packet is a fragmented packet or a non-fragmented packet by analyzing a header of the packet, and the step of transmitting the data includes: May be sent to a general-purpose circuit for software processing, and the unfragmented packet may be sent to a dedicated circuit for processing the packet.
  • Data that does not require real-time properties may be transmitted and received by the first communication method, while stream data that requires real-time properties may be transmitted and received by the second communication method.
  • Data that requires real-time processing is data that is subject to time constraints.
  • Data that does not require real-time means data that is not subject to time restrictions.
  • the stream data may be, for example, call audio data, video data, and the like.
  • Yet another embodiment of the present invention relates to a communication method.
  • This method includes the steps of: when a packet is received, detecting the type of the packet; and determining whether to permit or not to store the bucket in a buffer for temporarily storing the bucket based on conditions set for each type. Determining, storing the packet in the buffer when storage is permitted, and discarding the packet when storage is not permitted.
  • the packet processing device includes: a buffer that temporarily holds a small bucket obtained via a network; and a write control unit that controls storage of the packet in the buffer. Destination address information of the packet header information is discarded and stored in the reception buffer.
  • the destination MAC address stored in the MAC header of the packet is unnecessary for the subsequent bucket processing after the bucket is received, and by discarding this, the buffer use efficiency can be improved. it can.
  • the write control unit may store, instead of the destination address information, management information including transmission type information indicating whether the packet was transmitted by broadcast, multicast, or broadcast.
  • the management information may further include bucket type information indicating a type of the packet, and address information indicating a storage position of a next bucket.
  • the write control unit may store the management information in one word, shape subsequent data in units of code, and store the shaped data in the buffer.
  • the MAC header is a 32-bit code, 3.5 bits, and is odd size, so if it is stored in the buffer as it is, all subsequent data will be shifted by half a word. Therefore, by discarding the 1.5-word destination MAC address and storing it in the buffer, subsequent data can be aligned in units of code. At this time, even if management information necessary for packet processing is added for one word, Good. This makes handling both hardware and software easier.
  • Still another embodiment of the present invention also relates to a packet processing device.
  • the packet processing device includes: a buffer that temporarily holds a packet acquired via a network; and a read control unit that controls reading of the packet from the buffer. Independent registers are assigned to enable random access, while the data portion of the bucket is read out via an access port register.
  • an independent register is allocated so that the header information can be easily accessed.
  • the data portion only needs to be copied to the transfer destination once the transfer destination is determined, so the access port register allows access without management of the pointer.
  • the read control unit may set a position at which the access port register starts reading according to a type of a packet to be read. For example, the read start position is automatically set at the start position of the MAC data in the MAC packet and at the start position of the IP data in the IP packet. As a result, the processing load of the CPU can be further reduced.
  • a header analysis unit that discards unnecessary packets by analyzing the header information before storing the bucket in the buffer; and calculates a checksum before storing the bucket in the buffer. And a checksum calculation unit that verifies whether or not the check sum value matches the checksum value stored in. As a result, the CPU can perform processing on the assumption that the packet held in the buffer is a valid packet.
  • Still another embodiment of the present invention relates to a telephone device.
  • the telephone device includes an input unit for inputting voice, a communication unit for transmitting voice input from the input unit to another device and receiving voice from another device, and outputting a voice received from another device.
  • An output unit that receives a packet transmitted via a network; and a packet processing unit that processes the received packet.
  • a buffer that temporarily stores the packet; and a write control unit that controls storage of the packet in the buffer, wherein the write control unit is configured to control the header information of the packet.
  • the destination address information is discarded and stored in the reception buffer.
  • the telephone device includes an input unit for inputting voice, a communication unit for transmitting voice input from the input unit to another device and receiving voice from another device, and outputting a voice received from another device.
  • An output unit that receives a packet sent via a network; and a packet processing unit that processes the received packet.
  • the packet processing unit includes: A buffer for temporarily holding a packet; and a read control unit for controlling reading of the bucket from the buffer, wherein an independent register is assigned to each of the header portions of the packet to enable random access.
  • the data portion of the bucket is configured to be read through an access port register.
  • Yet another embodiment of the present invention relates to a packet processing method.
  • the packet when a packet is received, the packet is temporarily stored in a buffer, and prior to the storing, the destination address information in the packet header information is discarded. And b.
  • Still another preferred embodiment according to the present invention relates to a checksum calculation method.
  • this method in order to provide a checksum to a data block whose data length is determined at a predetermined timing, prior to the timing, the data unit including the data block is provided for each predetermined length of the data unit. The accumulated value of the checksum from the top is calculated and stored in the storage device.
  • the data block may be, for example, a payload in TCP.
  • the data length of the CP packet is determined immediately before transmission, but by storing the cumulative value of the checksum for each predetermined length in advance, when the data length is determined, the cumulative value before and after the data block is stored. By using the value, the checksum of the packet can be calculated in a short time.
  • the accumulated value before and after the data block may be read from the storage device to calculate a checksum of the data block.
  • the accumulated value of the checksum up to the data immediately before the data block and the accumulated value of the checksum up to the last data of the data block are read out from the storage device, and the difference between them is calculated. It may be a checksum.
  • Still another preferred embodiment according to the present invention relates also to a checksum calculation method.
  • the data unit including the data block is divided into a predetermined length, The checksum value is calculated for each part and stored in the storage device.
  • the data length of the data block may be limited to be an integral multiple of the predetermined length.
  • the communication device includes: an input unit that receives an input of a data unit; a calculation unit that calculates an accumulated value of a checksum from the beginning of the data unit; and an accumulation unit that calculates the accumulated value for each predetermined length of the data unit. And a holding unit for holding.
  • the data unit is divided into a plurality of data blocks, and an output unit that sends the data block via a network, a size control unit that controls the size of a data block that is sent next, and A second calculating unit that reads the accumulated value before and after the data block from the holding unit and calculates a check sum of the data block.
  • the holding unit holds, for each predetermined length, the accumulated value of the checksum from the beginning of the data unit.
  • a checksum of the entire data cut may be held.
  • the communication method in which the size of the data block to be transmitted is not predetermined may be, for example, TCP, and the communication method in which the size of the data block to be transmitted is predetermined may be, for example, UDP.
  • FIG. 1 is a diagram illustrating an overall configuration of an Internet telephone device as an example of a communication device according to the first embodiment.
  • FIG. 2 is a flowchart illustrating a procedure of the communication method according to the first embodiment.
  • FIG. 3 is a diagram illustrating an overall configuration of a video telephone device as an example of a communication device according to the second embodiment.
  • FIG. 4 is a diagram illustrating the overall configuration of a digital camera as an example of the communication device according to the third embodiment.
  • FIG. 5 is a diagram illustrating an overall configuration of a video telephone device as an example of a communication device according to the fourth embodiment.
  • FIG. 6 is a diagram illustrating an overall configuration of a digital camera as an example of a communication device according to the fifth embodiment.
  • FIG. 7 is a diagram illustrating an overall configuration of an Internet telephone device as an example of a communication device according to a sixth embodiment.
  • FIG. 8 is a diagram showing the bucket receiving unit of the Internet telephone device according to the sixth embodiment. It is a figure showing an internal configuration.
  • FIG. 9 is a flowchart showing a bucket receiving procedure according to the sixth embodiment.
  • FIG. 10 is a diagram showing an internal configuration of an IP determining unit of the Internet telephone device according to the sixth embodiment.
  • FIG. 11 is a flowchart illustrating a packet processing procedure according to the sixth embodiment.
  • FIG. 12 is a diagram showing the overall configuration of an Internet telephone device as an example of the communication device according to the seventh embodiment.
  • FIG. 13 is a diagram showing the internal configuration of the protocol engine according to the seventh embodiment.
  • FIG. 14 is a diagram showing internal data of the host table according to the seventh embodiment.
  • FIG. 15 is a diagram illustrating the internal configuration of the write control unit and the read control unit according to the seventh embodiment.
  • FIG. 16 is a diagram showing a manner in which bucket data is shaped by the write control unit.
  • FIG. 17 is a diagram illustrating an overall configuration of an Internet telephone device as an example of a communication device according to the eighth embodiment.
  • FIG. 18 is a diagram showing the internal configuration of the TCP ZUDP processing unit in FIG.
  • FIG. 19 is a diagram illustrating an example of internal data in the data storage unit and the checksum storage unit.
  • FIG. 20 is a flowchart showing the procedure of the checksum calculation method according to the eighth embodiment.
  • FIG. 1 is an Internet as an example of a communication device according to the first embodiment of the present invention. 1 shows the overall configuration of a portable telephone device 100.
  • the Internet telephone device 100 is a device for making a call with another Internet telephone device 100 via the Internet 20.
  • the Internet telephone device 100 is mainly composed of a CPU 110 as a general-purpose circuit for executing software processing, a memory 120 used as a program area or a park area, and a bucket via the Internet 20.
  • Network interface section 130 for transmitting and receiving signals, microphone 150 for inputting audio signals, speaker 160 for outputting audio signals, codec processing section 140 for performing compression encoding and decoding of audio signals, communication It has a protocol processing unit 170 that performs various processes according to the protocol, and a path 102 that electrically connects these components.
  • audio signals are transmitted and received using UDP as a communication protocol of a transport layer.
  • UDP is a communication method that does not require connection establishment and can send out packets one after another, so protocol processing is easy and high-speed communication is possible. Suitable for real-time communication.
  • the processing of the packet sent by UDP is performed by the protocol processing unit 170, which is a dedicated circuit, thereby further improving the processing speed, and Real-time transmission and reception of
  • the packets transmitted and received by the Internet telephone device 100 are processed by the software using the CPU 110.
  • the software processing by general-purpose circuits is not provided, and the increase in circuit scale is suppressed, and the increase in cost, power consumption, and heat generation is minimized. it can.
  • the circuit area and the power consumption are about 13 as compared with the case where both TCP and UDP are processed by a dedicated circuit.
  • the bucket received by the network interface unit 130 is sent to the IP processing unit 178 of the protocol processing unit 170.
  • the IP processing unit 1778 determines whether the packet is addressed to the IP address assigned to the bucket Only the packet destined for the device is sent to the protocol detector 176.
  • the protocol detector 176 detects the protocol type by referring to the P ROT indicating the protocol type in the IP header attached to the packet, or by referring to the TCP header or the UDP header. If the packet is a packet sent by TCP, the data of the packet is sent on bus 102 and processed by software by CPU 110. If the packet is a UDP packet, the data of the packet is sent to the UDP processing unit 174, and processed by a circuit provided exclusively for processing the UDP data.
  • the 110? Processing unit 174 is a dedicated circuit for processing a UDP packet, receives a UDP packet, analyzes its header, and performs necessary processing.
  • the security processing unit 172 performs processing such as decryption of the encryption when security measures such as encryption processing are applied to the data.
  • the decoded data is sent to codec processing section 140.
  • the codec processing section 140 decodes the communication voice signal that has been compression-encoded and outputs the decoded signal to the speaker 160.
  • real-time performance is more important than accuracy, and call voice data that needs to be constantly processed during a call is transmitted and received by UDP. While hardware processing is performed by the processing unit 174, data for which accuracy is more important than real-time processing is transmitted and received by the TCP, and software processing is performed by the CPU 110. This makes it possible to process call voice data at a high speed while suppressing the increase in circuit complexity, circuit size, cost, power consumption, and heat generation. These advantages become more pronounced when a large amount of data needs to be processed simultaneously, such as when talking with multiple parties at the same time or transmitting images with the voice of the call.
  • the type of the bucket is detected by the protocol detecting unit 176, and the subject of the bucket processing can be selected quickly and appropriately. Furthermore, the processing load on the CPU 110 can be reduced, lowering costs and power consumption can be achieved, and the CPU 110 has more available power, allowing other applications to be executed during a call. It can also provide new services.
  • the operation when a packet is received has been described above. Next, the operation when the audio signal input from the microphone 150 is converted into a bucket and transmitted will be described.
  • the audio signal input from microphone 150 is sent to codec processing section 140, where it is encoded.
  • the encoded signal is, if necessary, encrypted by the security processing unit 172, sent to the UDP processing unit 174, attached with a UDP header, and packetized. This UDP packet is sent to the Internet 20 via the network interface unit 130.
  • FIG. 2 is a flowchart illustrating a procedure of a communication method according to the present embodiment.
  • the network interface unit 130 receives the packet (S100)
  • the IP processing unit 178 performs processing, and then the protocol detection unit 176 detects whether the packet is a UDP packet or a TCP packet (S102). If it is a UDP packet
  • the packet processing is performed by the UDP processing unit 174, which is a dedicated circuit for processing UDP packets (S302). If the packet is a TCP packet (N in S102), the packet processing is performed by the CPU 110, which is a general-purpose circuit (S106). After that, necessary processing is performed according to the type of data.
  • the telephone device has been described as an example, but the technology of the present embodiment is applicable to all communication devices that transmit and receive stream data, such as a computer and a mobile phone.
  • Circuits having the functions of the IP processing unit 178, the protocol detection unit 176, and the UDP processing unit 174 may be mounted on one semiconductor substrate. Further, circuits such as a security processing unit 172, a codec processing unit 140, and a CPU 110 may be mounted. As a result, the size, weight, and speed of the communication device can be reduced.
  • data communication using a plurality of communication protocols can be efficiently processed.
  • high-speed, real-time communication can be realized with a relatively simple circuit configuration.
  • FIG. 3 shows an overall configuration of a video telephone 200 as an example of a communication device according to the second embodiment.
  • the video telephone device 200 according to the present embodiment is the same as the video telephone device 200 shown in FIG.
  • an image input unit 180 as an example of an input unit and a display device 190 as an example of an output unit are provided.
  • Other configurations are the same as in the first embodiment.
  • the same components are denoted by the same reference numerals.
  • image data is also transmitted and received by UDP.
  • the image input unit 180 inputs an image to be transmitted to the other party together with the call voice.
  • the image input unit 180 may input an image from an external camera, a video playback device, or the like, or may capture an image by itself as an imaging device.
  • the input image is sent directly to the codec processing unit 140 and encoded, shaped into a UDP packet by the UDP processing unit 174, and sent to the Internet 20 by the network interface unit 130. Sent out.
  • the display device 190 displays the image received from the other party together with the call voice.
  • the image data included in the UDP bucket received by the network interface unit 130 is processed by the 110 processing unit 174, the security processing unit 172, and the codec processing unit 140, and the codec processing unit 14 Image data is sent directly from 0 to the display device 190 and displayed.
  • FIG. 4 shows an overall configuration of a digital camera 300 as an example of a communication device according to the third embodiment.
  • the digital camera 300 of the present embodiment has a telephone communication function.
  • a display device 190 In addition to the configuration of the Internet telephone device 100 of the first embodiment shown in FIG. And a display device 190.
  • Other configurations are the same as those in the first embodiment.
  • the same components are denoted by the same reference numerals.
  • the imaging unit 1822 includes an imaging device such as a CCD and a configuration for controlling the imaging device, and captures a still image or a moving image.
  • the captured image is directly transmitted to the codec processing unit 140 and encoded, shaped into a UDP packet by the UDP processing unit 174, and transmitted to the Internet 20 by the network interface unit 130. You.
  • the display device 190 displays the image received from the other party together with the call voice.
  • the image data included in the UDP bucket received by the network interface unit 130 includes a UDP processing unit 174, a security processing unit 172, and a codec processing unit 154.
  • the image data is directly transmitted to the codec processing unit 140 and the display device 190 for display.
  • FIG. 5 shows an overall configuration of a video telephone 200 as an example of a communication device according to the fourth embodiment.
  • the video telephone 200 of the present embodiment is different from the video telephone 200 of the second embodiment shown in FIG. 3 in that an image input unit 180 and a display 190 Instead of being directly connected to the processing unit 140, it is connected to the bus 102.
  • Other configurations are the same as those in FIG. 3, and the same configurations are denoted by the same reference numerals.
  • the image input by the image input unit 180 is stored in the memory 120, read out as appropriate, and encoded by the codec processing unit 140.
  • the encoded image data is shaped into a UDP bucket by the UDP processing unit 174 and sent to the Internet 20 by the network interface unit 130.
  • the image data included in the UDP packet received by the network interface unit 130 is processed by the UDP processing unit 174, the security processing unit 172, and the codec processing unit 140, and the bus 10 It is sent to the display device 190 via 2 and displayed.
  • FIG. 6 shows an overall configuration of a digital camera 300 as an example of a communication device according to the fifth embodiment.
  • the digital camera 300 of the present embodiment is different from the digital camera 300 of the third embodiment shown in FIG. It is not connected directly to 40, but to path 102.
  • Other configurations are the same as those in FIG. 4, and similar configurations are denoted by the same reference numerals.
  • the image captured by the imaging unit 1822 is held in the memory 120, read out as appropriate, and encoded by the codec processing unit 140.
  • the encoded image data is shaped into a UDP bucket by the UDP processing unit 174 and sent to the Internet 20 by the network interface unit 130.
  • the image data included in the UDP bucket received by the network interface unit 130 is sent to the UDP processing unit 1 74, processed by the security processing section 172 and the codec processing section 140, sent to the display device 190 via the bus 102, and displayed.
  • FIG. 7 shows an overall configuration of an Internet telephone device 100 as an example of a communication device according to the sixth embodiment.
  • the Internet telephone device 100 of the present embodiment has an IP discriminating unit 186 and a packet receiving unit 1 in addition to the configuration of the Internet telephone device 100 of the first embodiment shown in FIG. 92, and a UDP discriminator 184 in place of the protocol detector 176.
  • Other configurations are the same as those in FIG. 1, and the same components are denoted by the same reference numerals.
  • the processing speed is improved by processing UDP packets including voice signals by dedicated hardware, thereby improving the processing speed and improving the voice communication performance.
  • this embodiment proposes a technology for further improving real-time performance.
  • the bucket receiving unit 192 stores a packet containing data that requires real-time properties in the receive buffer 193 in preference to a bucket that does not require real-time properties.
  • a predetermined threshold storage in the reception buffer 193 is prohibited, and only packets that require real-time characteristics can be stored. As a result, it is possible to suppress the possibility that the reception of a bucket that requires real-time processing is delayed or the bucket is discarded and data is lost.
  • the IP discriminating unit 186 discriminates a special packet requiring complicated processing from among the IP packets, and sends the bucket 1 to the CPU 110 for processing by software, while a normal IP bucket is used. Is sent to the IP processing unit 178 to be processed by hardware. This makes it possible to process normal IP packets at high speed by dedicated hardware while avoiding an increase in hardware scale, complexity, and power consumption of the IP processing unit 178. Details of each technology will be described later with reference to the drawings.
  • FIG. 8 shows the internal configuration of the bucket receiving section 192.
  • the control unit 1 95 It includes an address management section 196, a write position management section 197, and a buffer saturation detection section 198.
  • the reception buffer 193 of the present embodiment is configured by a FIFO (First In First Out) memory, and the read position management unit 196 is a register for holding a read address of the reception buffer 193.
  • the write position management unit 197 is a register for holding the write address of the reception buffer 193.
  • the buffer saturation detector 198 holds a plurality of thresholds for determining whether or not writing to the reception buffer 193 is permitted.
  • the threshold value is set according to the packet type. When the free space of the reception buffer 193 falls below the threshold value for a certain bucket type, the bucket of that type is written to the reception buffer 193. And discard the received packet.
  • the threshold value for determining whether to permit a packet that requires real-time processing is set to It is set lower than the threshold value for judging permission for buckets that do not require a password. For example, if the threshold value for a bucket that requires real-time processing is 0 and the threshold value for a packet that does not require real-time processing is 50% of the buffer size, buffer saturation detection If the free space of the buffer 1993 falls below 50%, packets that do not require real-time processing are judged to be saturated and the writing is prohibited, while packets that do not require real-time processing are prohibited. Determines that there is free space and permits writing.
  • both the packets that require real-time processing and the buckets that do not require real-time processing can be stored in the reception buffer 1993. If it falls below 0%, only buckets that require real-time processing will be stored.
  • the packet determination unit 194 determines whether the received packet is a TCP packet or a UDP packet. If the received packet is a TCP packet, the packet determination unit 194 determines whether the received packet is a packet that does not require real-time processing. If the bucket is a UDP bucket, a determination is made as to whether the bucket requires real-time processing. The bucket discriminator 194 stores the packet permitted to be stored in the reception buffer 193, and discards the packet rejected to be stored.
  • TCP for example, when a data file is transferred by FTP (File Transfer Protocol), a large number of packets may be received at one time. You may not be able to receive. Since UDP packets including audio signals need to be played back in real time, UDP packets are given priority to use the receive buffer 193, thereby minimizing data loss due to packet discarding. . Since UDP does not perform retransmission control, once a packet is discarded, it cannot be obtained again. However, TCP performs retransmission control, so it is possible to compensate for missing data by retransmission.
  • FTP File Transfer Protocol
  • Buckets requiring real-time processing can be preferentially received by one receive buffer 193, so the hardware size is reduced and power consumption is reduced compared to the case where two receive buffers 193 are provided. be able to.
  • a threshold value may be set based on not only the presence / absence of the real-time property but also other viewpoints, and the priority of storage in the reception buffer 193 may be determined. For example, the threshold value of a packet that is high in importance and that does not allow data loss may be set lower than the threshold values of other buckets, and may be preferentially captured. Packet discriminator 1 94 holds the threshold, and buffer saturation detector The remaining amount of the reception buffer 193 may be obtained from the 198 to determine whether writing to the reception buffer 193 is permitted.
  • FIG. 9 is a flowchart showing a procedure for receiving a bucket according to the present embodiment.
  • the bucket discriminating unit 194 discriminates whether or not the packet includes data that requires real-time processing (S202). If the packet is a real-time packet (Y in S202), it is determined whether or not the packet can be stored in the reception buffer 1993 using the threshold set for the real-time packet (S202). 204). If the packet is not a real-time packet (3 ⁇ 2 ⁇ 2), it is determined whether the packet can be stored in the receive buffer 1993 using the threshold set for the non-real-time packet. (S206). If the storage of the received bucket in the reception buffer 193 is permitted ( ⁇ of 208), the packet is stored in the reception buffer 193 (S210), and the storage is permitted. If not (N in S208), the packet is discarded (S212).
  • FIG. 10 shows the internal configuration of the IP discriminating unit 186.
  • the IP determining unit 186 as an example of the first determining unit includes an IP header detecting unit 187, an IP header determining unit 188, and a bucket output switching unit 189.
  • the IP header detector 187 detects the IP header of the bucket acquired from the bucket receiver 192 and sends it to the IP header determiner 188.
  • the IP header determination unit 188 refers to the IP header and the like, determines whether the packet is a normal IP packet, or whether it is a special IP packet requiring complicated processing, and outputs the determination result as a bucket. Notify the switching unit 18 9.
  • Special IP packets may be, for example, IP packets with options, fragmented IP packets, etc.
  • the packet output switching unit 189 switches the output destination of the IP bucket acquired by the IP header detection unit 187 based on the judgment result of the IP header judgment unit 188.
  • the packet output switching unit 189 outputs an ordinary IP packet to the IP processing unit 178 as an example of a first dedicated circuit in order to process the normal IP packet by hardware, and outputs a special IP bucket requiring complicated processing.
  • CPU 110 as an example of a general-purpose circuit via a bus interface for processing by software Output to
  • Fragmented IP buckets require more complex processing than normal IP processing, such as managing bucket order and processing when missing or duplicated.
  • an IP bucket with options requires processing according to the options attached. If such exceptional processing is to be realized by hardware, the circuit scale will increase, resulting in an increase in cost and power consumption. Therefore, cost / power consumption is reduced by providing only hardware that can process only normal IP packets.
  • the bucket processed by the IP processing unit 178 is sent to a UDP determination unit 184 as an example of a second determination unit.
  • the UDP discriminator 184 discriminates whether the received packet is a TCP packet or a UDP packet.
  • the UDP packet is processed by hardware by the UDP processor 174 as an example of the second dedicated circuit, while the TCP
  • the bucket is subjected to software processing by the CPU 110 as an example of a general-purpose circuit.
  • the UDP discriminator 184 has the same function as the protocol detector 176 in the first embodiment. However, in the present embodiment, the type of the transport layer communication method in the communication protocol is different. This name is used to clearly indicate the discrimination.
  • the type of the IP bucket can be detected by the IP discriminating unit 186, and the processing subject of the bucket can be selected quickly and appropriately.
  • ordinary IP buckets including data that requires real-time processing such as call voice are processed at high speed by the IP processing unit 178, which is a dedicated circuit.
  • the IP processing unit 178 which is a dedicated circuit.
  • FIG. 11 is a flowchart illustrating a packet processing procedure according to the present embodiment.
  • the IP discriminating unit 186 discriminates whether or not the packet is a normal IP bucket (S302). If the packet is a normal IP bucket (Y in S302), the IP packet processing is performed by the IP processing unit 178 which is a dedicated circuit (S304). Fragmented I If the packet is a special IP packet that requires complicated processing such as a P packet (N in S302), it is sent to the general-purpose circuit CPU110, where the packet processing is performed by software (S310). .
  • the 110 judging unit 184 judges whether the packet processed by the IP processing unit 178 is a UDP packet (S306).
  • the packet is a UDP packet (3306)
  • a UDP bucket process is performed by the UDP processing unit 174, which is a dedicated circuit.
  • the packet is a TCP packet (N in S306)
  • the packet is sent to the CPU 110, which is a general-purpose circuit, and bucket processing is performed by software (S310).
  • data communication using a plurality of communication protocols can be efficiently processed.
  • high-speed, real-time communication can be realized with a relatively simple circuit configuration.
  • FIG. 12 shows an overall configuration of an Internet telephone device 100 as an example of a communication device according to a seventh embodiment of the present invention.
  • the Internet telephone device 100 is a device for making a call with another Internet telephone device 100 via the Internet 20.
  • the Internet telephone device 100 is mainly composed of a CPU 110 as a general-purpose circuit for executing software processing, a memory 120 used as a program area or a work area, and a network for transmitting and receiving a bucket via the Internet 20.
  • Interface section 130 microphone 150 for inputting audio signals, speaker 160 for outputting audio signals, codec processing section 140 for performing compression encoding and decoding of audio signals, encryption processing of communication data or
  • the security processing unit 172 that performs decryption processing, etc.
  • the UDP processing unit 174 that is a dedicated circuit for processing UDP buckets, the protocol engine 50 that performs various processing according to the communication protocol, and the configuration of these components are electrically connected.
  • a bus 102 is provided for connection to a computer.
  • the Internet telephone device 100 of the present embodiment is configured by dedicated hardware before transferring a packet to the CPU 110, instead of leaving the processing of the received bucket to only the CPU 110.
  • Protocol engine 50 header analysis, Since processing such as error checking and data alignment is performed, there is no need for the CPU 110 to perform useless bucket processing, and the processing load is greatly reduced.
  • the Internet telephone device 100 of the present embodiment transmits and receives voice signals using UDP.
  • UDP is a communication method that can send out buckets one after another without establishing a connection, so that protocol processing is simple and high-speed communication is possible. Suitable for real-time communication.
  • the processing of UDP packets is performed by the UDP processing unit 174, which is a dedicated circuit, thereby further improving the processing speed and real-time transmission and reception of call voice. To achieve.
  • the packets transmitted and received by the Internet telephone device 100 are processed by software using the CPU 110.
  • dedicated circuits are not provided and software processing is performed by general-purpose circuits, thereby suppressing an increase in circuit size and minimizing increases in cost, power consumption, and heat generation. be able to.
  • the circuit area and the power consumption are only about one-third as compared with the case where both TCP and UDP are processed by the dedicated circuit.
  • cooperative processing is performed by dedicated hardware and general-purpose software, thereby satisfying the trade-off demands of faster processing and reduced circuit scale.
  • the bucket received by the network interface unit 130 is sent to the protocol engine 50.
  • the protocol engine 50 determines whether the packet is addressed to the IP address assigned to the own device, passes only the packet addressed to the own device, and discards other packets. In addition, the protocol type is detected by referring to the header information attached to the packet. If the packet is a packet transmitted by TCP, the data of the packet is transmitted to the bus 102 and the CPU 1 10 Software processing. If the packet is a UDP packet, the packet data is sent to the UDP processing unit 174, and processed by a circuit provided exclusively for the processing of the UDP packet.
  • Processing unit 174 is a dedicated circuit for processing a UDP packet, Receives a DP packet, analyzes its header, and performs necessary processing.
  • the security processing unit 172 performs processing such as decryption of encryption when security measures such as encryption processing have been applied to data.
  • the decoded data is sent to the codec processing unit 140.
  • the codec processing section 140 decodes the communication voice signal which has been compression-encoded, and outputs it to the speaker 160.
  • UDP Data is sent and received by UDP, and hardware processing is performed by the UDP processing unit 174, which is a dedicated circuit. Perform wear processing. As a result, it becomes possible to process call voice data at high speed while suppressing an increase in circuit complexity, circuit size, cost, power consumption, heat generation, and the like. These advantages become more pronounced when a large amount of data needs to be processed simultaneously, such as when talking with multiple parties at the same time or transmitting images with the voice of the call.
  • the type of the packet can be detected by the protocol engine 50, and the processing entity of the packet can be selected quickly and appropriately.
  • the processing load on the CPU 110 can be reduced, cost and power consumption can be reduced, and the CPU 110 has more available power, allowing other applications to be executed during a call. New services can also be provided.
  • the operation when the packet is received has been described above. Next, the operation when the audio signal input from the microphone 150 is bucketed and transmitted will be described.
  • the audio signal input from the microphone 150 is sent to the codec processing unit 140 and encoded.
  • the encoded signal is, if necessary, encrypted by the security processing unit 172 and then sent to the UDP processing unit 174, where it is attached with a UDP header and packetized.
  • This UDP packet is provided with header information such as a checksum value by the protocol engine 50 and transmitted to the Internet 20 via the network interface 130.
  • FIG. 13 shows the internal configuration of the protocol engine 50. 1? Control unit 202 Network interface 1 30 ARP addressed to its own IP address
  • ARP Address Resolution Protocol
  • MAC address Address Resolution Protocol
  • ARP packets are also processed by software using the CPU 110.
  • the ARP control unit 202 automatically responds without passing through the CPU 110, thereby reducing the burden on the CPU 110. Can be greatly reduced, and task switches due to interrupts can be reduced.
  • the header analysis unit 210 analyzes the header information of the bucket, discards unnecessary packets, and performs processing for passing only necessary packets. For example, only buckets addressed to the IP address of the own device are passed, and buckets addressed to other IP addresses are discarded.
  • packets of a communication method other than the IP may be discarded.
  • a specific packet may be detected and sent to a dedicated circuit that processes the packet.
  • the header analyzing unit 210 detects the UDP packet by analyzing the header information, and detects the UDP packet.
  • the UDP bucket is directly transferred to the UDP processing unit 174 without passing through the CPU 110. At this time, it is possible to discard the header information and send only the data part. As a result, only packets requiring software processing can be processed by the CPU 110, so that the processing load on the CPU 110 can be reduced. Further, by processing the packet by using dedicated hardware as needed, the processing speed can be increased.
  • the checksum calculator 212 calculates the checksum of the packet and verifies whether or not the checksum matches the checksum value stored in the header. If there is a match, the packet is passed. If not, the packet is discarded. Conventionally, the CPU 110 verifies the checksum. However, as in the present embodiment, the checksum is verified by a dedicated circuit before being sent to the CPU 110, so that the CPU 110 can verify the checksum. To avoid processing unnecessary buckets and reduce the processing load of CPU1 Can be reduced.
  • the write control unit 220 stores the bucket that has passed through the header analysis unit 210 in the reception buffer 230. Packets for which an error has been detected by the checksum calculator 2 12 are discarded without being stored in the receive buffer 230, but while the checksum calculator 2 12 calculates the checksum, the receive buffer 2 It is more efficient to write to receive buffer 230 in parallel than to wait for writing to 30. Therefore, the write control unit 220 writes the bucket that has passed through the header analysis unit 210 into the reception buffer 230 without waiting for the result of verification by the checksum calculation unit 212, and checks If an error is detected by the verification by the sum calculation unit 211, the written packet is erased and the write pointer is restored.
  • the read control unit 240 controls reading of the reception bucket stored in the reception buffer 230. Details of the configuration and operation of the write control unit 220, the reception buffer 230, and the read control unit 240 will be described in detail with reference to FIG.
  • the checksum generator 280 calculates the checksum of the transmission packet. Since the packet size of a UDP packet is determined at the time it is entered into the transmission queue, the checksum of the data section is calculated and held in advance by the checksum generation section 280, and the header synthesis section 2 transmits the packet when the packet is transmitted. 5 Checksum value is set in the header by 0. Since the packet size of a TCP packet is determined at the time of packet transmission, it is not possible to calculate the checksum value of the data section in advance, but calculate and store the checksum accumulated value for each predetermined interval. This simplifies the checksum calculation process when transmitting a packet. If the bucket size of the TCP bucket is limited to an integral multiple of the section for calculating the cumulative checksum value, the checksum value for the data section can be obtained by simply subtracting the cumulative checksum value before and after the section for the data section.
  • the first transmission buffer 270 stores a transmission bucket of which transmission destination MAC address is unresolved.
  • the second transmission buffer 272 stores transmission packets of which transmission destination MAC address is known among transmission packets.
  • the ARP interface 260 does not know the MAC address of the transmission destination stored in the first transmission buffer 270.
  • ARP packets are generated and broadcast to the network in order to resolve the MAC address of such packets. Since the bucket cannot be transmitted until the response of the ARP packet returns, the first transmission buffer 270 is provided separately from the bucket queue that does not require address resolution, and the second transmission buffer 272 is maintained during that time. Sends a transmission bucket that does not require address resolution during standby.
  • the resolved MAC address is set, the packet in the first transmission buffer 270 is transmitted, and then the ARP packet is transmitted for the waiting packet. Then, the packet in the second transmission buffer 272 is transmitted again until a response is returned.
  • the entire transmission waiting time can be reduced, and packets can be transmitted efficiently. Even if the destination MAC address is an unresolved packet, if it is put into the first transmission buffer 270, the packet is sent out while automatically resolving the MAC address.
  • the processing on the 10 side is simplified, and the processing load can be reduced.
  • the header synthesizing unit 250 sends the transmission-waiting transmission packet held in the first transmission buffer 270 or the second transmission buffer 272 through the network interface unit 130 so as to transmit the transmission packet via the network interface unit 130. Generate data information.
  • the header synthesizing unit 250 automatically generates parameters that do not change frequently and parameters that can be easily estimated, and generates header information. For example, the identifier of the IP header is automatically incremented and set in the header by the header synthesizing unit 250 even if the CPU 110 does not specify the identifier. For CPU 110, only the destination and the bucket size need to be specified other than the data. As a result, buffer management of the CPU 110 can be simplified, and the processing load can be reduced.
  • the host table 204 holds the MAC address and the IP address of another device in association with each other.
  • FIG. 14 shows an example of internal data of the host table 204.
  • the host table 204 has a host ID column 205, a MAC address column 206, and an IP address column 207.
  • the contents of the host table 204 may be registered in advance with information of a host device with which the CPU 110 may frequently communicate, or may be registered by the CPU 110 during communication. .
  • Unknown MAC address Even in the case of the host device, first, only the IP address is stored, the ARP bucket is transmitted through the ARP interface 260, and the MAC address is registered when the response is obtained.
  • the CPU 110 may use any one of the host ID, the MAC address, and the IP address when specifying the destination of the packet.
  • the header synthesizing unit 250 can refer to the host table 204 to acquire information necessary for generating a header.
  • the host interface unit 290 controls the input and output of data and instructions between the components of the protocol control engine 50 and the CPU 110.
  • FIG. 15 shows an internal configuration of the write control unit 220 and the read control unit 240.
  • the write control unit 220 includes a management information generation unit 222, a data exchange unit 222, a write address generation unit 226, a delay circuit 228, and a selector 229.
  • the bucket that has passed the packet filtering by the header analysis unit 210 is shaped by the management information generation unit 222 and the data exchange unit 224, and stored in the reception buffer 230. The manner in which the packet data is shaped will be described later with reference to FIG.
  • the write address generation unit 226 manages the write pointer of the reception buffer 230.
  • the read control section 240 includes a read address generation section 242 and a selector 244.
  • FIG. 16 shows how the packet data is shaped by the write control unit 220.
  • the leading MAC header occupies 14 bytes, but a 32-bit word is 3.5 words and odd, so the subsequent data is shifted by 16 bits. Become. If the data is stored in the reception buffer 230 as it is, it is inconvenient to access the data. Therefore, in the present embodiment, the MAC header has three words. After shaping the data, store it in the receive buffer 230. In other words, the MAC header can be reduced by 16 bits.
  • the destination MA C address is the same as the own device's MA C address, and is unnecessary since the bucket has already been received. Since the MAC address is 48 bits, discarding it leaves 32 bits more room.
  • Some applications need information on whether this packet was sent by unicast, multicast, or broadcast, so this is stored as a flag instead of the destination MAC address. Since 2 bits are enough for this flag, there is still room for 30 bits. Therefore, a flag indicating the packet type and address information indicating the storage position of the next bucket are stored as management information. As described above, the MAC header fits in three words, so that subsequent data can be aligned in word units and access is facilitated. Referring back to FIG. 15, the procedure for writing and reading the received bucket will be described. The management information generation unit 222 generates the management information described above.
  • management information for example, transmission type information indicating whether this packet was transmitted by unicast, manocast, or broadcast, this packet is a TCP packet or a UDP bucket ⁇ a fragmented IP packet or an IP packet with an option
  • this packet is a TCP packet or a UDP bucket ⁇ a fragmented IP packet or an IP packet with an option
  • bucket type information indicating whether the packet is a special IP bucket requiring complicated processing, etc., and address information indicating the storage location of the next bucket may be generated.
  • the address information of the next bucket is stored, the address information of the next packet is obtained from the write address generation unit 226 after the storage of the data of the own bucket is completed. Writing to 230 is performed after the bucket data storage is completed.
  • the data exchange unit 224 exchanges the upper 16 bits and lower 16 bits of the received packet data in order to arrange the data excluding the MAC address in a 32-bit word. By shifting the upper 16 bits of the output of the data exchange unit 2 24 by 1 clock with the delay circuit 2 28 and combining them, the data that has been shifted by 16 bits can be aligned. .
  • the formatted data is The data is stored in the reception buffer 230 via the rectifier 229.
  • the write address generation unit 222 moves the pointer to the head of the write position, but since the management information of the first word is stored last, the pointer is incremented, and the destination MA of the MAC header is incremented.
  • the 2 bytes excluding the C address, the 5 words of the IP header, and the IP data are written one after another while incrementing the pointer.
  • the next write start position is notified to the management information generating section 222, and the pointer is returned to the head of the write position to write the management information.
  • the header information including the management information is allocated to an independent register so that the CPU 110 can randomly and repeatedly access the register.
  • the bucket stored in the reception buffer 230 has already been validated by the header analysis unit 210 and the checksum calculation unit 212, so that the CPU 110 directly converts the bucket into header information. Enables you to determine which applications should access and pass data.
  • the data part is read from one access port register. That is, in the first read to the access port register, the first data in the data portion is read, and thereafter, the data is read one after another by successively accessing the same register. Once the data transfer destination is determined, the only thing left is to copy the data, so there is no need to enable random access. Therefore, by employing the access port method, the processing load can be reduced more easily than in the memory map method which requires pointer management. It can also be used in combination with hardware that does not have CPU 110.
  • the read address of the receive buffer consists of an upper address and a lower address.
  • the CPU 110 specifies both the upper address and the lower address.
  • For the upper address specify which header of which packet should be accessed in the read address generator 242, and the read address generator 242 automatically generates the upper address and moves the pointer. .
  • For the lower address the lower address output by the CPU 110 is used as it is as the lower address of the receive buffer, and Make 1 10 freely readable.
  • the CPU 110 accesses the data portion of the bucket, the CPU 110 must specify to the read address generation unit 242 which packet data to access.
  • the read address generation unit 242 automatically generates an upper address and a lower address, moves the pointer, and reads data one after another.
  • the telephone device has been described as an example, but the technology of the present embodiment is applicable to all communication devices that transmit and receive stream data, such as a computer and a mobile phone.
  • a circuit having the function of the protocol engine 50 may be mounted on one semiconductor substrate. Further, circuits such as a security processing unit 172, a codec processing unit 140, and a CPU 110 may be mounted. As a result, the size, weight, and speed of the communication device can be reduced.
  • the present embodiment it is possible to provide a technique for efficiently performing bucket processing accompanying data communication. Also, according to the present embodiment, it is possible to provide a technology that reduces the processing load on the CPU in packet processing and realizes high-speed, real-time communication.
  • FIG. 17 shows the overall configuration of an Internet telephone device 100 as an example of a communication device according to the eighth embodiment of the present invention.
  • the Internet telephone device 100 is a device for making a call with another Internet telephone device 100 via the Internet 20.
  • the Internet telephone device 100 mainly transmits and receives buckets via a CPU 110, which is a general-purpose circuit for executing software processing, a memory 120 used as a program area or a work area, and the Internet 20.
  • Network interface section 130 microphone 150 for inputting audio signals, speaker 160 for outputting audio signals, codec processing section 140 for performing compression encoding and decoding of audio signals, communication by IP IP processing unit 1 78 that performs various processes for communication, TCP / UDP processing unit 400 that performs various processes for communication using TCP or UDP, and bus 10 that electrically connects these components 2 is provided.
  • a checksum is prepared for each predetermined length in advance.
  • the accumulated value of is calculated and stored.
  • the size of the TCP packet is determined, the accumulated value is used to calculate the checksum of the packet.
  • the time required to calculate the checksum can be significantly reduced as compared with the conventional method of reading the data after the transmission size is determined and calculating the checksum. This point will be described in detail in FIG.
  • the bucket received by the network interface unit 130 is sent to the IP processing unit 178.
  • the IP processing unit 178 determines whether the packet is addressed to the IP address assigned to the own device, and sends only the packet addressed to the own device to the TC P / UDP processing unit 400. send.
  • the TCPZUDP processing unit 400 determines whether a packet is a TCP packet or a UDP packet from header information and the like, and performs necessary processing on each packet. If the received packet is a voice signal, the data is sent to codec processing section 140.
  • the codec processing unit 140 decodes the communication voice signal that has been compression-encoded, and outputs the decoded signal to the speaker 160.
  • the audio signal input from microphone 150 is sent to codec processing section 140, where it is encoded.
  • the encoded signal is, if necessary, encrypted by a security processing unit (not shown), sent to a TCP / UDP processing unit 400, and bucketed.
  • the generated TCP or UDP bucket is sent to the Internet 20 via the network interface unit 130.
  • the functions of the IP processing unit 178, the TCPZUDP processing unit 400, and the codec processing unit 140 are implemented by hardware such as the CPU 110 and the memory 120. Although it can be realized and can be realized by software with a protocol processing function or a codec processing function in software, this figure shows the functional blocks realized by their cooperation. Therefore, these functional blocks can be realized in various ways by a combination of hardware and software. These configurations may be realized by a dedicated circuit. In this figure, the IP processing unit 178, the TC? / 110 processing unit 400, and the codec processing unit 140 each have a bus 10
  • each circuit may be connected by a dedicated bus.
  • FIG. 18 shows a configuration for realizing a characteristic packet generation function in the present embodiment, among the internal configuration of the TCP / UDP processing unit 400 in FIG.
  • the TCP / UDP processing unit 400 includes a data input unit 410 that receives input of transmission data prepared by the CPU 110 or the like, a checksum calculation unit 420 that calculates an accumulated value of transmission data checksums, and holds transmission data.
  • Data storage unit 430 checksum storage unit 432 that stores the accumulated value of the checksum for each section of transmission data of a predetermined length, data size storage that stores the size of untransmitted data remaining in data storage unit 430 Unit 434, a transmission size control unit 440 that controls the transmission size of the TCP bucket, a header generation unit 450 as an example of a second calculation unit that generates header information of TCP and UDP packets, and outputs a TCP and UDP bucket Includes bucket output unit 460.
  • the transmission data input from the CPU 110 or the like via the data input unit 410 is stored in the data storage unit 430 and sent to the checksum calculation unit 420.
  • the checksum calculating section 420 calculates the cumulative value of the checksum from the beginning of the input data, outputs the calculated cumulative value for each predetermined length, and stores it in the checksum storage section 432.
  • the checksum is calculated by sequentially adding together the data grouped for each 16 bits (one word).
  • the addition refers to one's complement addition, and the addition result does not fit in 16 bits. If one digit overflows without adding, 1 is added to the addition result.
  • the checksum storage section 432 stores the cumulative value of the checksum every 64 words. For example, the checksum accumulated value of the 6th and 4th word from the beginning of the transmission data is 3 210 in hexadecimal, and the checksum accumulated value of the 1st and 8th words from the beginning is 5 3 3 in hexadecimal. 2
  • the transmission size control unit 440 determines the size of the TCP packet to be transmitted next in consideration of the status of the buffer on the receiving side and the status of the network such as the loss of a bucket. At this time, the size of the TCP bucket is limited to an integral multiple of the unit length of the section in which the checksum accumulated value is recorded. That is, in the present embodiment, the size of the TCP packet is limited to an integer multiple of 641. The reason will be described later.
  • the header generation unit 450 determines the data section to be transmitted based on the size of the TCP bucket.
  • the last checksum accumulated value of the section immediately before the section and the checksum accumulated value of the last section of the section are read from the checksum storage section 432. Then, a difference between them is calculated to obtain a checksum value of the section.
  • the header generation unit 450 stores this checksum value in the header information and outputs it along with other header information.
  • the packet output unit 460 reads out the data of the transmission size from the data storage unit 430 and outputs it.
  • the transmission size control unit 440 sets the size of the next transmission TCP packet to a size that is an integral multiple of the unit length of the section in which the cumulative checksum value is recorded and that does not exceed the size of the packet that can be transmitted. And Here, it is the maximum multiple of 64 which does not exceed 144, that is, 128 words.
  • Next data to be transmitted 4 3 0 b and The checksum value of 4 3 0 c is the last checksum of the section 7 6
  • the size of the transmitted data is subtracted from the value of the untransmitted data size stored in the data size storage section 4 3 4. If the data size of the TCP bucket determined by the transmission size control unit 44 is larger than the size of the untransmitted data, the data size stored in the data size storage unit 4 34
  • the header-generation section 450 obtains the checksum value of the transmission packet by subtracting the last checksum value of the data section transmitted immediately before from the checksum cumulative value of the entire data.
  • the checksum cumulative value is calculated and held for each predetermined length in advance, and the checksum of the bucket is calculated using the cumulative value, so that the time required for calculating the checksum is greatly reduced.
  • the size of the unit section for recording the accumulated checksum value may be designed in consideration of the performance of the transmitting and receiving devices and the performance of the network. It is inevitable that communication on the network involves some degree of uncertainty, and it is inefficient to communicate in a bucket of an unnecessarily small size. There is no problem even if it is limited to an integer multiple of 4 words.
  • the capacity of the checksum storage unit 4 32 is smaller than that for storing the checksum accumulation value for all data.
  • the above method can be implemented by software, but to achieve higher speed If this method is applied when the processing for TCP and UDP is realized by dedicated hardware, the overhead of memory access will be improved, and the processing speed can be more effectively contributed to.
  • Data input from the CPU 110 or the like via the data input unit 410 is stored in the data storage unit 430 and sent to the checksum calculation unit 420.
  • the header generation unit 450 reads the checksum value of the UDP bucket to be transmitted next from the checksum storage unit 432, stores it in the header information, and outputs it together with other header information. After outputting the header information obtained from the header generation unit 450, the packet output unit 460 reads and outputs the data from the data storage unit 430.
  • FIG. 20 is a flowchart showing the procedure of the checksum calculation method according to the present embodiment.
  • the checksum calculation unit 420 calculates the accumulated value of the checksum from the beginning of the input data and determines the predetermined value. The calculated accumulated value is output for each length and stored in the checksum storage unit 432 (S402).
  • the header generation unit 450 determines a data section to be transmitted based on the size, and Checksum accumulated value up to the previous data and the last data in the section The checksum accumulated values up to and are read from the checksum storage unit 432 (S 406). Then, the difference is calculated, and the checksum value of the section is obtained (S408).
  • the packet output unit 460 transmits the header information including the check sum acquired from the header generation unit 450 (S410), and further reads out data of the transmission size from the data storage unit 430 and transmits the data (S412). If transmission data remains (1 ⁇ of 3414), the process returns to S404 and repeats the procedure of generating and transmitting a packet. When all the data has been transmitted (341-4 ⁇ ), the processing ends.
  • the embodiment has been described by taking an Internet telephone device as an example, the technology of the present embodiment is applicable to all communication devices that transmit and receive data, such as a computer, a mobile phone, a digital camera, and a video device.
  • the technique of embedding the checksum accumulated value from the top of a series of data strings in multiple places can be used not only for communication but also for all devices that record data.
  • a circuit and a memory for realizing the TCPZUDP processing unit 400 may be mounted on one semiconductor substrate. Further, circuits such as an IP processing unit 178, a codec processing unit 140, a CPU 110, and a security processing unit may be mounted. As a result, the size, weight, and speed of the communication device can be reduced.
  • the telephone device has been mainly described as an example, but the technology described in the embodiment is applicable to all communication devices that transmit and receive stream data, such as computers and mobile phones. Industrial applicability.
  • the present invention is applicable to communication devices, telephone devices, packet processing devices, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

明 細 書. 通信装置及びその応用 技術分野
本発明は通信技術に関し、 特に、 パケットを効率的に処理する技術、 複数の通ィ 1 プロトコルによるデータ通信を効率的に処理する技術、 ネットワークを介して送 受信されるバケツトのチェックサムを算出する技術に関する。 背景技術
インターネットが広く普及し、 ネットワークのインフラの整備も進みつつある 現在、 通話音声信号を符号化したデータをパケット化し、 インターネットなどの ネットワークを介して送受信するィンターネット電話装置が注目を集めている。 通話音声と同時にビデオ映像を送ることにより、 ビデオ電話装置として利用する ことも可能であり、 従来の電話装置に取って代わる次世代の電話装置として期待 されている。
現在、 パケット通信のための通信プロトコルとして、 T C P / I P
(Transmission Control Protocol I Internet Protocol) 力 ムく禾 IJ用さ ている。 T C Pは、 装置間で接続を確立してからデータを送受信するなど、 正確性を重視 した通信プロトコルである。 しかしながら、 処理が複雑で、 相手側がパケットを 受信したことを確認するまで次のパケットを送ることができないなどの時間的制 約があり、 リアルタイム性に欠けるため、 通話音声の送受信には不向きである。
T C Pよりも簡便な通信プロトコルに、 U D P / I P (User Datagram
Protocol / Internet Protocol) がある。 U D Pでは、 データの送受信に先立って 装置間で接続を確立する必要がなく、 バケツトの受信確認を待たずに次のバケツ トを送ることが許されるので、 送信側は次々にパケットを送出することができる。 そのため、 データの正確性よりもリアルタイム性が重視される、 通話音声の送受 信に適している。 TC Pと UD Pの双方の通信プロトコルをサポートする装置では、 バケツト処 理は、 C PUなどの汎用プロセッサにより ソフトウエア処理されるのが一般的で ある。 すなわち、 ネットワークインタフェースデバイスがパケットを受信すると、 自装置以外の MAC (Media Access Control) アドレス宛てのパケットがフィル タリングされ、 CRC (Cyclic Redundancy Check) による誤りチェックが行わ れた後、 それらを通過した全てのパケットが CPUに送られて処理される。
しかしながら、 全てのバケツトを C PUによりソフトウエア処理する方式では、 処理効率が悪い、 速度が遅い、 消費電力が大きい、 などの課題がある。 とくに、 複数の相手と同時に通話したり、 音声とともに画像を送ったりする場合には、 プ ロトコル処理が律速となり、 リアルタイム性が損なわれる恐れがある。 また、 通 話中は常に CPUがプロトコル処理を実行しているため、 その他のアプリケーシ ヨンを並行して実行させるのが困難である。 たとえば、 パーソナルコンピュータ などのように高性能の CPUを搭載した装置により通信を行う場合は、 CPUに 全てのパケット処理を担わせても、 それに見合う十分な能力を有しているので問 題はないが、 インターネット電話のための専用装置を開発する場合、 装置の小型 ィ匕、 低価格化、 低消費電力化を実現するためには、 比較的性能の低い CPUを搭 載せざるを得ないので、 いかに C PUの処理負荷を軽減するかが課題となる。 処 理速度を向上させるために C PU能力を上げると、 コス ト、 消費電力、 熱発生な どを増大させる結果となるため、 いずれかを犠牲にして妥協点を見出す必要があ る。
また、 ネットワークルータなど、 高速性が要求される一部の装置では、 全ての プロトコル処理をハードゥヱァ化して実装している。 双方の通信プロトコルをノヽ 一ドウエアにより処理する方式では、 高速なプロトコル処理が可能となるが、 複 雑な処理が必要な TCPの処理もハードウエア化するため、 回路規模が大きくな り、 コス ト、 消費電力、 熱の発生などの点で問題がある。
また、 TCPおよび UDPでは、 データをパケット化して送受信するが、 受信 したデータの信頼性をチェックするために、 それぞれのバケツトにはチェックサ ムが与えられる。 チェックサムは、 パケッ トの全データを 1の補数カ卩算したもの であり、 パケットのヘッダ内に格納される。 送信側は、 パケットの送信に先立つ て、 そのパケットの全データを加算してチェックサムを算出し、 ヘッダに格納し て送信する。 受信側は、 パケットを受信すると、 そのパケットの全データを加算 し、 その結果が、 ヘッダ内に格納されたチェックサム値と一致するか否かをチェ ックする。 一致していれば、 パケットの受信に成功したと判断し、 一致していな ければ、 受信したパケット内のデータに誤りがあると判断して、 そのパケットを 廃棄する。
T C Pの場合、 1回に送信可能なデータの量は、 ネットワークの状況や、 受信 側のバッファの状況などにより変動し、 送信の直前に決定される。 そのため、 送 信側では、 一般に、 次に送信するパケットのサイズが確定した後に、 そのパケッ トのデータを読み出してチェックサムを算出している。 そして、 そのチェックサ ムをパケットのヘッダに格納し、 ヘッダ情報を送信した後、 再びデータを読み出 して送信する。
特開 2 0 0 1— 2 6 8 1 5 9号公報は、 T C Pバケツトを生成する方法を開示 する。 この方法では、 T C Pにより送信すべきデータをいつたん T Xバッファに 貯蔵し、 次に送信するパケットのサイズが確定すると、 そのサイズのデータを T Xバッファから読み出してチェックサムを算出するとともに、 そのデータを臨時 バッファに格納する。 そして、 チェックサムを含むヘッダを送信した後、 臨時バ ッファからデータを読み出して送信する。 このように、 メモリを 2つ用意するこ とにより、 チェックサム算出のための T Xバッファからのデータ読み出しと、 デ ータ送信のための臨時バッファからのデータ読み出しを並行してパイプライン的 に行うことができるので、 オーバーへッドを改善することができる。
しかしながら、 この方法によっても、 次に送信するパケットのサイズが確定し てからチェックサムを算出することに変わりはなく、 バケツト送出までの遅延時 間が長いという問題がある。 また、 物理的に分割された 2種類のメモリを用意す る必要があるので、 ハードウェア規模が大きくなり、 コストがかかるという問題 がある。 発明の開示
本発明は、 そうした課題に鑑みてなされたものであり、 その目的は、 データ通 信に伴うパケット処理を効率よく行う技術を提供することにある。
本発明のある態様は、 通信装置に関する。 この通信装置は、 ネットワークを介 して送られたパケットを受信する受信部と、 受信したパケットが、 データの送受 信に先立って装置間で接続を確立することを要する第 1の通信方式により送られ たバケツトであったとき、 そのバケツトをソフトウエアにより処理するための汎 用回路と、'受信したバケツトが、 装置間での接続の確立を要しない第 2の通信方 式により送られたバケツトであったとき、 そのバケツトを処理するための専用回 路と、 を備える。
本発明の別の態様も、 通信装置に関する。 この通信装置は、 ネットワークを介 して送られたバケツトを受信する受信部と、 受信したバケツトが、 送信バケツト の到着確認を行う第 1の通信方式により送られたバケツトであったとき、 そのパ ケットをソフトウエアにより処理するための汎用回路と、 受信したバケツトが、 送信パケットの到着確認を行わない第 2の通信方式により送られたバケツトであ つたとき、 そのパケットを処理するための専用回路と、 を備える。
汎用回路は、 C P U、 D S Pなどであってもよい。 第 1の通信方式は、 たとえ ば、 T C Pであってもよい。 第 2の通信方式は、 たとえば、 U D Pであってもよ い。 U D Pの処理のみをハードウェア化することにより、 回路規模の増大を抑え つつ、 U D Pの処理を高速化することができる。
この通信装置は、 ネットワークを介してバケツトを送信する送信部をさらに備 え、 送信するパケットが、 前記第 1の通信方式により送られるとき、 そのバケツ トを前記汎用回路により処理し、 送信するパケットが、 前記第 2の通信方式によ り送られるとき、 そのバケツトを前記専用回路により処理してもよい。
この通信装置は、 受信したパケットが、 どの通信方式により送られたかを検出 する検出部をさらに備えてもよい。 検出部は、 パケットのヘッダを参照して、 通 信方式を検出してもよい。 この検出部も、 専用の回路により構成されてもよい。 前記検出部により、 前記第 1の通信方式により送られたパケットが検出された とき、 前記検出部は、 そのパケットを、 前記汎用回路を介さずに、 直接前記専用 回路へ送ってもよい。 ソフトゥヱァ処理を介さず、 専用回路により処理すること で、 高速な処理が実現する。 また、 C P Uなどの汎用回路の処理負担を軽減する ことができる。
この通信装置は、 パケットを構成するデータを暗号化または復号化するセキュ リティ処理部をさらに備えてもよい。 このセキュリティ処理部も、 専用の回路に より構成されてもよレ、。
本発明のさらに別の態様も、 通信装置に関する。 この通信装置は、 ネットヮー クを介して送られたバケツトを受信する受信部と、 受信したバケツトがフラグメ ント化されたパケットであったとき、 そのパケットをソフトウェアにより処理す るために汎用回路へ送り、 受信したバケツトがフラグメント化されていないパケ ットであったとき、 そのバケツトをハードウエアにより処理するために第 1の専 用回路へ送る第 1の判別部と、 を備える。
I Pパケットのうち、 オプション付きの I Pパケットや、 フラグメント化され た I Pパケットなどは、 複雑な処理を必要とするので、 これらの I Pパケットも 専用回路で処理しょうとすると、 回路規模が増大し、 消費電力やコストの増大を 招く。 そのため、 通常の I Pパケットは専用回路で高速に処理しつつ、 通常の I Pバケツトよりも複雑な処理を必要とする特殊な I Pバケツトは、 C P Uなどの 汎用回路でソフトウェアにより処理することで、 専用回路の回路規模を抑え、 消 費電力およびコストを低減することができる。
この通信装置は、 前記第 1の専用回路により処理したパケットが、 データの送 受信に先立って装置間で接続を確立することを要する第 1の通信方式により送ら れたパケットであったとき、 そのパケットを前記汎用回路に送り、 前記第 1の専 用回路により処理したバケツトが、 装置間での接続の確立を要しない第 2の通信 方式により送られたバケツトであったとき、 そのパケットをハードウェアにより 処理するための第 2の専用回路へ送る第 2の判別部をさらに備えてもよい。 通常 の I Pパケットの I P処理を I P処理回路で行った後、 バケツトが U D Pである か T C Pであるかを判断し、 U D Pパケットのみを U D P処理回路で処理し、 τ C Pバケツトは C P Uなどの汎用回路によりソフトウエア処理してもよレ、。 本発明のさらに別の態様も、 通信装置に関する。 この通信装置は、 ネットヮー クを介して受信したバケツトが、 リアルタイムな処理を要するデータを含むパケ ットであるか否かを判別する判別部と、 前記パケットを一時的に保持するバッフ ァと、 前記バッファへの前記パケットの格納を制御する制御部と、 を備え、 前記 制御部は、 前記バッファの空き領域が所定のしきい値を下回ったとき、 前記リア ルタイムな処理を要するデータを含むパケットの前記パッファへの格納を許可す る一方、 リアルタイムな処理を要するデータを含まないバケツトの前記バッファ への格納を禁止する。
リアルタイムな処理を要するバケツトを優先的に受信バッファに取り込んで処 理することで、 バッファが飽和してリアルタイムな処理を要するパケットが破棄 される可能性を抑えることができる。
本発明のさらに別の態様も、 通信装置に関する。 この通信装置は、 ネットヮー クを介して受信したバケツトが、 データの送受信に先立って装置間で接続を確立 することを要する第 1の通信方式により送られたパケットであるか、 装置間での 接続の確立を要しない第 2の通信方式により送られたパケットであるかを判別す る判別部と、 前記パケットを一時的に保持するバッファと、 前記バッファへの前 記パケットの格納を制御する制御部と、 を備え、 前記制御部は、 前記バッファの 空き領域が所定のしきい値を下回ったとき、 前記第 2の通信方式により送られた パケットの前記バッファへの格納を許可する一方、 前記第 1の通信方式により送 られたパケットの前記バッファへの格納を禁止する。
電話装置における通話音声信号や、 ビデオ電話装置における映像信号などを U D Pにより送受信する場合、 U D Pバケツトを T C Pバケツトより優先して選択 的に取り込むことにより、 U D Pバケツトが破棄されて通話音声信号などのデー タが欠落する可能性を抑えることができる。
本発明のさらに別の態様も、 通信装置に関する。 この通信装置は、 ネットヮー クを介して受信したバケツトの種別を判別する判別部と、 前記バケツトを一時的 に保持するバッファと、 前記バッファへのバケツトの格納を制御する制御部と、 を備え、 前記制御部は、 前記バッファへのパケットの格納の許否を判定するため のしきい値をバケツトの種別に応じて複数保持し、 前記バッファの空き領域がし きい値を下回ったバケツト種別のバケツトの前記バッファへの格納を禁止する。 リアルタイムな処理を要するバケツトゃ、 重要度の高いバケツトに対するしき い値を、 その他のパケットに対するしきい値よりも低く設定してもよい。 これに より、 バッファの空き領域が少なくなつたときに、 リアルタイム性を有するパケ ットや、 重要度の高いパケットを優先的に取り込み、 パケットが破棄される可能 性を抑えることができる。
本発明のさらに別の態様は、 電話装置に関する。 この電話装置は、 音声を入力 する入力部と、 前記入力部により入力された音声を他の装置へ送信し、 他の装置 から音声を受信する通信部と、 他の装置から受信した音声を出力する出力部と、 を備え、 前記通信部は、 ネットワークを介して送られたパケットを受信する受信 部と、 受信したパケットの通信方式を検出する検出部と、 前記通信方式が、 デー タの送受信に先立って装置間で接続を確立することを要する第 1の通信方式であ つたとき、 そのパケットをソフトウェアにより処理するための汎用回路と、 前記 通信方式が、 装置間での接続の確立を要しない第 2の通信方式であったとき、 そ のパケットを処理するための専用回路と、 を含み、 前記音声を前記第 2の通信方 式により送受信する。 出力部はスピーカであってもよく、 入力部はマイクロホン であってもよい。
本発明のさらに別の態様は、 ビデオ電話装置に関する。 このビデオ電話装置は、 画像および音声を入力する入力部と、 前記入力部により入力された画像および音 声を他の装置へ送信し、 他の装置から画像および音声を受信する通信部と、 他の 装置から受信した画像および音声を出力する出力部と、 を備え、 前記通信部は、 ネットワークを介して送られたバケツトを受信する受信部と、 受信したバケツト の通信方式を検出する検出部と、 前記通信方式が、 データの送受信に先立って装 置間で接続を確立することを要する第 1の通信方式であったとき、 そのバケツト をソフトウェアにより処理するための汎用回路と、 前記通信方式が、 装置間での 接続の確立を要しない第 2の通信方式であったとき、 そのバケツトを処理するた めの専用回路と、 を含み、 前記画像おょぴ音声を前記第 2の通信方式により送受 信する。
本発明のさらに別の態様は、 撮像装置に関する。 この撮像装置は、 画像を撮像 する撮像部と、 前記撮像部により撮像された画像を他の装置へ送信し、 他の装置 から画像を受信する通信部と、 を備え、 前記通信部は、 ネットワークを介して送 られたバケツトを受信する受信部と、 受信したバケツトの通信方式を検出する検 出部と、 前記通信方式が、 データの送受信に先立って装置間で接続を確立するこ とを要する第 1の通信方式であったとき、 そのバケツトをソフトウェアにより処 理するための汎用回路と、 前記通信方式が、 装置間での接続の確立を要しない第 2の通信方式であったとき、 そのパケットを処理するための専用回路と、 を含み、 前記画像を前記第 2の通信方式により送受信する。
本発明のさらに別の態様は、 通信方法に関する。 この方法は、 パケットを受信 したときに、 そのパケットの通信方式を検出する工程と、 前記通信方式に応じて、 そのバケツトを処理すべき回路にバケツトのデータを送る工程と、 を含む。
前記検出する工程は、 パケッ トのヘッダを解析することにより、 データの送受 信に先立って装置間での接続の確立を要する第 1の通信方式によるバケツトであ るか、 装置間での接続の確立を要しない第 2の通信方式によるバケツトであるか を検出し、 前記データを送る工程は、 前記第 1の通信方式によるパケットを、 ソ フトウエア処理するための汎用回路に送り、 前記第 2の通信方式によるバケツト を、 そのパケットを処理するための専用回路に送ってもよい。
前記検出する工程は、 パケットのヘッダを解析することにより、 フラグメント 化されたパケットであるか、 フラグメント化されていないパケットであるかを検 出し、 前記データを送る工程は、 前記フラグメント化されたパケットを、 ソフト ウェア処理するための汎用回路に送り、 前記フラグメント化されていないパケッ トを、 そのパケットを処理するための専用回路に送ってもよい。
リアルタイム性を要しないデータは、 前記第 1の通信方式により送受信する一 方、 リアルタイム性を要するストリームデータは、 前記第 2の通信方式により送 受信してもよい。 リアルタイムな処理を要するデータとは、 時間制約を受けるデ ータをいい、 また、 リアルタイム性を要しないデータとは、 時間制約を受けない データをいう。 ストリームデータは、 たとえば、 通話音声データ、 動画データ、 などであってもよい。
本発明のさらに別の態様は、 通信方法に関する。 この方法は、 パケットを受信 したときに、 そのパケットの種別を検出する工程と、 前記種別ごとに設定された 条件に基づいて、 バケツトを一時的に保持するバッファへのそのバケツトの格納 の許否を判断する工程と、 格納が許可されたときに、 そのパケットを前記バッフ ァへ格納する工程と、 格納が許可されなかったときに、 そのパケットを破棄する 工程と、 を含む。
本発明のさらに別の態様は、 パケット処理装置に関する。 このパケット処理装 置は、 ネットワークを介して取得したバケツ小を一時的に保持するバッファと、 前記パケットの前記バッファへの格納を制御する書き込み制御部と、 を備え、 前 記書き込み制御部は、 前記パケットのヘッダ情報のうち、 送信先アドレス情報を 破棄して前記受信バッファに格納する。
パケットの MA Cヘッダに格納されている送信先 MA Cァドレスは、 バケツト を受信すると以降のバケツト処理には不要であるので、 これを破棄することによ り、 バッファの使用効率を向上させることができる。
前記書き込み制御部は、 前記送信先アドレス情報に代えて、 そのパケットがュ 二キャスト、 マルチキャスト、 ブロードキャストのいずれで送信されたかを示す 送信種別情報を含む管理情報を格納してもよい。 前記管理情報は、 パケットの種 別を示すバケツト種別情報、 および次のバケツトの格納位置を示すァドレス情報 をさらに含んでもよい。 前記書き込み制御部は、 前記管理情報を 1ワードにおさ め、 後続のデータをヮード単位で整形して前記バッファに格納してもよい。
MA Cヘッダは、 3 2ビットヮードで 3 · 5ヮードであり、 半端なサイズであ るから、 そのままバッファに格納すると、 後続のデータが全て半ワードずつずれ ることになる。 そのため、 1 . 5ワード分の送信先 MA Cアドレスを破棄してバ ッファに格納することにより、 後続のデータをヮード単位でァライメントするこ とができる。 このとき、 パケット処理に必要な管理情報を 1ワード分追加しても よい。 これにより、 ハードウェア的にもソフトウェア的にも扱いが容易になる。 本発明のさらに別の態様も、 パケット処理装置に関する。 このパケット処理装 置は、 ネットワークを介して取得したパケットを一時的に保持するバッファと、 前記パケットの前記バッファからの読み出しを制御する読み出し制御部と、 を備 え、 前記バケツトのヘッダ部分にはそれぞれ独立したレジスタを割り当ててラン ダムアクセスを可能とする一方、 前記バケツトのデータ部分はアクセスポートレ ジスタを介して読み出しを行うように構成する。
ヘッダ情報は、 C P Uがバケツトの転送先を決定するために読み出す必要があ るので、 独立したレジスタを割り当てて容易にアクセスすることができるように する。 データ部分は、 転送先さえ決まれば、 転送先にコピーすればよいだけであ るから、 アクセスポートレジスタにより、 ポインタを管理することなくアクセス できるようにする。
前記読み出し制御部は、 読み出すパケットの種別に応じて、 前記アクセスポー トレジスタが読み出しを開始する位置を設定してもよい。 たとえば、 MA Cパケ ットでは MA Cデータの先頭位置に、 I Pパケットでは I Pデータの先頭位置に、 読み出し開始位置を自動的に設定する。 これにより、 さらに C P Uの処理負荷を 軽減することができる。
前記バケツトを前記バッファに格納する前に、 そのヘッダ情報を解析すること により不要なパケットを破棄するヘッダ解析部と、 前記バケツトを前記バッファ に格納する前に、 そのチェックサムを算出して、 ヘッダに格納されたチヱックサ ム値と一致するか否かを検証するチェックサム算出部と、 をさらに備えてもよい。 これにより、 C P Uは、 バッファに保持されたパケットが有効なパケットである ことを前提に処理を行うことができる。
本発明のさらに別の態様は、 電話装置に関する。 この電話装置は、 音声を入力 する入力部と、 前記入力部により入力された音声を他の装置へ送信し、 他の装置 から音声を受信する通信部と、 他の装置から受信した音声を出力する出力部と、 を備え、 前記通信部は、 ネッ トワークを介して送られたパケットを受信する受信 部と、 受信したパケットを処理するパケット処理部と、 を含み、 前記パケットタ几 理部は、 前記パケットを一時的に保持するバッファと、 前記パケットの前記バッ ファへの格納を制御する書き込み制御部と、 を含み、 前記書き込み制御部は、 前 記パケットのへッダ情報のうち、 送信先ァドレス情報を破棄して前記受信バッフ ァに格納する。
本発明のさらに別の態様も、 電話装置に関する。 この電話装置は、 音声を入力 する入力部と、 前記入力部により入力された音声を他の装置へ送信し、 他の装置 から音声を受信する通信部と、 他の装置から受信した音声を出力する出力部と、 を備え、 前記通信部は、 ネットワークを介して送られたパケットを受信する受信 部と、 受信したパケットを処理するパケット処理部と、 を含み、 前記パケット処 理部は、 前記パケットを一時的に保持するバッファと、 前記バケツトの前記バッ ファからの読み出しを制御する読み出し制御部と、 を含み、 前記パケットのへッ ダ部分にはそれぞれ独立したレジスタを割り当ててランダムアクセスを可能とす る一方、 前記バケツトのデータ部分はァクセスポートレジスタを介して読み出し を行うように構成する。
本発明のさらに別の態様は、 パケット処理方法に関する。 この方法は、 バケツ トを受信したときに、 そのパケットをバッファに一時的に格納する工程と、 前記 格納する工程に先立って、 前記パケッ トのヘッダ情報のうち、 送信先ア ドレス情 報を破棄する工程と、 を含む。
本発明のさらに別の態様は、 チェックサム算出方法に関する。 この方法は、 所 定のタイミングでデ一タ長が確定するデータブ口ックにチェックサムを与えるた めに、 前記タイミングに先立って、 前記データブロックを含むデータユエットの 所定長ごとに、 前記データュニットの先頭からのチェックサムの累積値を算出し て記憶装置に保持する。
データプロックは、 たとえば、 T C Pにおけるペイロードであってもよい。 τ C Pパケットは送信直前にデータ長が確定するが、 予め所定長ごとにチェックサ ムの累積値を格納しておくことで、 データ長が確定したときに、 そのデータプロ ックの前後の累積値を利用して、 短時間でパケットのチェックサムを算出するこ とができる。 前記データブロックのデータ長が確定したあと、 そのデータプロックの前後の 前記累積値を前記記憶装置から読み出して、 そのデータプロックのチェックサム を算出してもよい。 前記データブロックの直前のデータまでのチェックサムの累 積値と、 前記データプロックの最後のデータまでのチェックサム累積値とを前記 記憶装置から読み出し、 それらの差を算出して、 そのデータプロックのチェック サムとしてもよい。
本発明のさらに別の態様も、 チェックサム算出方法に関する。 この方法は、 所 定のタイミングでデ一タ長が確定するデータブ口ックにチェックサムを与えるた めに、 前記タイミングに先立って、 前記データプロックを含むデータユニットを 所定長に分割し、 その各部分ごとにチェックサム値を算出して記憶装置に保持す る。
前記データブロックのデータ長は、 前記所定長の整数倍になるよう制限されて もよい。
本発明のさらに別の態様は、 チェックサム記録方法に関する。 この方法は、 あ るデータユニットの複数の箇所について、 データュュットの先頭からその箇所ま でのチェックサム値を算出して保持する。 データュニットのサイズが大きい場合 であっても、 途中の複数の箇所について、 チェックサムの途中結果を記録してお くことで、 データユニットの先頭に近いデータに誤りがあつたときに、 データュ ニット全体のチヱックサムを計算するまでもなく、 誤りを検出することができる。 本発明のさらに別の態様は、 通信装置に関する。 この通信装置は、 データュニ ットの入力を受け付ける入力部と、 前記データュ-ットの先頭からのチヱックサ ムの累積値を算出する算出部と、 前記データユニットの所定長ごとに、 前記累積 値を保持する保持部と、 を備える。
前記データュニットを複数のデータブロックに分割し、 ネットワークを介して 送出する出力部と、 次に送出するデータプロックのサイズを制御するサイズ制御 部と、 次に送出するデータプロックのサイズを取得して、 そのデータブロックの 前後の前記累積値を前記保持部から読み出し、 そのデータプロックのチェックサ ムを算出する第 2算出部と、 をさらに備えてもよい。 ; 前記保持部は、 送出するデータブロックのサイズが予め定まっていない通信方 式でデータユニットを送出する場合は、 所定長ごとに、 そのデータユニットの先 頭からのチェックサムの累積値を保持し、 送出するデータプロックのサイズが予 め定まっている通信方式でデータュニットを送出する場合は、 そのデータュ-ッ ト全体のチェックサムを保持してもよい。 送出するデータプロックのサイズが予 め定まっていない通信方式は、 たとえば T C Pであってもよく、 送出するデータ プロックのサイズが予め定まっている通信方式は、 たとえば U D Pであってもよ ' い。
なお、 以上の構成要素の任意の組合せ、 本発明の表現を方法、 装置、 システム、 などの間で変換したものもまた、 本発明の態様として有効である。 図面の簡単な説明
上述した目的、 およびその他の目的、 特徴および利点は、 以下に述べる好適な実施 の形態、 およびそれに付随する以下の図面によってさらに明らかになる。
図 1は、 第 1の実施の形態に係る通信装置の一例としてのインターネット電話 装置の全体構成を示す図である。
図 2は、 第 1の実施の形態に係る通信方法の手順を示すフローチャートである。 図 3は、 第 2の実施の形態に係る通信装置の一例としてのビデオ電話装置の全 体構成を示す図である。
図 4は、'第 3の実施の形態に係る通信装置の一例としてのデジタルカメラの全 体構成を示す図である。
図 5は、 第 4の実施の形態に係る通信装置の一例としてのビデオ電話装置の全 体構成を示す図である。
図 6は、 第 5の実施の形態に係る通信装置の一例としてのデジタルカメラの全 体構成を示す図である。
図 7は、 第 6の実施の形態に係る通信装置の一例としてのインターネット電話 装置の全体構成を示す図である。
図 8は、 第 6の実施の形態に係るインターネット電話装置のバケツト受信部の 内部構成を示す図である。
図 9は、 第 6の実施の形態におけるバケツトの受信手順を示すフローチャート でめる。
図 1 0は、 第 6の実施の形態に係るインターネット電話装置の I P判別部の内 部構成を示す図である。
図 1 1は、 第 6の実施の形態におけるパケット処理手順を示すフローチャート である。
図 1 2は、 第 7の実施の形態に係る通信装置の一例としてのインターネット電 話装置の全体構成を示す図である。
図 1 3は、 第 7の実施の形態に係るプロトコルエンジンの内部構成を示す図で ある。
図 1 4は、 第 7の実施の形態に係るホストテーブルの内部データを示す図であ る。
図 1 5は、 第 7の実施の形態に係る書き込み制御部および読み出し制御部の内 部構成を示す図である。
図 1 6は、 書き込み制御部によりバケツトのデータが整形される様子を示す図 である。
図 1 7は、 第 8の実施の形態に係る通信装置の一例としてのインターネット電 話装置の全体構成を示す図である。
図 1 8は、 図 1 7の T C P ZU D P処理部の内部構成を示す図である。
図 1 9は、 データ格納部とチェックサム格納部の内部データの例を示す図であ る。
図 2 0は、 第 8の実施の形態に係るチェックサム算出方法の手順を示すフロー チヤ一トである。 発明を実施するための最良の形態
(第 1の実施の形態)
図 1は、 本発明の第 1の実施の形態に係る通信装置の一例としてのインターネ ット電話装置 1 0 0の全体構成を示す。 ィンターネッ ト電話装置 1 0 0は、 イン ターネット 2 0を介して、 他のインターネット電話装置 1 0 0との間で通話を行 うための装置である。 インターネット電話装置 1 0 0は、 主に、 ソフトウエア処 理を実行するための汎用回路である C P U 1 1 0、 プログラムエリアまたはヮー クエリアとして利用されるメモリ 1 2 0、 インターネット 2 0を介してバケツト を送受信するネットワークインタフェース部 1 3 0、 音声信号を入力するマイク 1 5 0、 音声信号を出力するスピーカ 1 6 0、 音声信号の圧縮符号化処理および 復号処理を行うコーデック処理部 1 4 0、 通信プロトコルに応じた各種処理を行 うプロトコル処理部 1 7 0、 およびこれらの構成を電気的に接続するパス 1 0 2 を備える。
本実施の形態のィンターネット電話装置 1 0 0では、 トランスポート層の通信 プロ トコルとして、 U D Pを利用して音声信号を送受信する。 U D Pは、 接続の 確立を要さず、 パケットを次々に送出することが可能な通信方式であるため、 プ ロトコル処理が簡単で、 かつ高速な通信が可能であり、 通話音声を送るなどのリ アルタイムな通信に適している。 本実施の形態のインターネット電話装置 1 0 0 では、 U D Pにより送られたパケットの処理を、 専用の回路であるプロトコル処 理部 1 7 0に実行させることで、 さらに処理速度を向上させ、 通話音声のリアル タイムな送受信を実現する。
インターネット電話装置 1 0 0が送受信するバケツトのうち、 T C Pにより送 受信されるパケットは、 C P U 1 1 0を利用してソフトウェアにより処理される。 リアルタイム性を要しない T C Pについては、 専用の回路を設けず、 汎用回路に よるソフトウェア処理を行うことで、 回路規模の増大を抑え、 コスト、 消費電力、 熱発生の増大を最小限に抑えることができる。 本発明者の試算によれば、 T C P と U D Pの双方を専用回路により処理する場合に比べて、 回路の面積および消費 電力が約 1 3で済むことが分かっている。
ネットワークインタフェース部 1 3 0が受信したバケツトは、 プロトコル処理 部 1 7 0の I' P処理部 1 7 8に送られる。 I P処理部 1 7 8は、 バケツトカ S自装 置に割り当てられた I Pアドレスに宛てられたものであるか否かを判断し、 自装 置宛てのパケットのみをプロトコル検出部 1 76に送る。 プロトコル検出部 1 7 6は、 パケットに付された I Pヘッダ内のプロトコル種別を示す P ROTを参照 して、 または、 TC Pヘッダまたは UDPヘッダを参照して、 プロ トコルの種別 を検出する。 パケットが TC Pにより送られたパケットであった場合は、 そのパ ケットのデータをバス 1 02上に送り、 C PU 1 1 0によりソフトウェア処理さ せる。 パケットが UD Pのパケットであった場合は、 そのパケットのデータを U DP処理部 1 74に送り、 UDPデータの処理のために専用に設けられた回路に より処理させる。
110?処理部1 74は、 UDPパケットを処理するための専用回路であり、 U DPパケットを受け取って、 そのヘッダを解析し、 必要な処理を実行する。 セキ ユリティ処理部 1 72は、 データに対して暗号化処理などのセキュリティ対策が 施されていた場合に、 暗号を復号するなどの処理を行う。 復号されたデータは、 コーデック処理部 140に送られる。 コーデック処理部 140は、 圧縮符号化さ れていた通話音声信号を復号し、 スピーカ 1 60に出力する。
このように、 本実施の形態のインターネット電話装置 100では、 正確性より もリアルタイム性が重視され、 通話中、 常時処理が必要となる通話音声データは、 UDPにより送受信を行い、 専用回路である UDP処理部 1 74によりハードウ ヱァ処理を行う一方、 リアルタイム性よりも正確性が重視されるデータは、 TC Pにより送受信を行い、 CPU 1 1 0によりソフトウェア処理を行う。 これによ り、 回路の複雑化、 回路規模、 コス ト、 消費電力、 熱発生などの増大を抑えつつ、 通話音声データを高速に処理することが可能となる。 このような利点は、 複数の 相手と同時に通話したり、 通話音声とともに画像を送信するなど、 大量のデータ を同時に処理することが必要な場合に、 より顕著となる。 また、 プロトコル検出 部 1 76によりバケツトの種別を検出し、 バケツトの処理主体を高速かつ適切に 選択することができる。 さらに、 CPU 1 1 0の処理負担を軽減し、 低コス ト化、 低消費電力化が実現できるほか、 CPU 1 1 0に余力ができるため、 通話中に他 のアプリケーションを実行することが可能となり、 新たなサービスを提供するこ ともできる。 以上、 パケットを受信したときの動作について説明したが、 つづいて、 マイク 1 50から入力された音声信号をバケツト化して送信するときの動作について説 明する。 マイク 1 50から入力された音声信号は、 コーデック処理部 140に送 られ、 符号化される。 符号化された信号は、 必要であれば、 セキュリティ処理部 1 72により暗号化されたあと、 UDP処理部 1 74に送られ、 UDPヘッダが 付され、 パケッ ト化される。 この UDPパケッ トは、 ネッ トワークインタフエ一 ス部 1 30を介して、 インターネット 20に送出される。
図 2は、 本実施の形態における通信方法の手順を示すフローチャートである。 ネットワークインタフェース部 1 30がパケットを受信すると (S 100) 、 I P処理部 1 78が処理を行ったあと、 プロトコル検出部 1 76が UDPパケット か TC Pパケットかを検出する (S 1 02) 。 UDPパケットであった場合は
(31 02の丫) 、 UDPパケットを処理するための専用回路である UDP処理 部 1 74によりパケット処理が行われる (S 1 04) 。 TCPパケットであった 場合は (S 1 02の N) 、 汎用回路である CPU 1 1 0によりパケット処理が行 われる (S 106) 。 その後、 データの種類に応じて、 必要な処理が行われる。 実施の形態では、 電話装置を例にとって説明したが、 本実施の形態の技術は、 コンピュータや携帯電話など、 ストリームデータを送受信する通信装置全般に利 用可能である。
I P処理部 1 78、 プロトコル検出部 1 76、 UD P処理部 1 74の機能を有 する回路を、 一つの半導体基板上に搭載してもよい。 さらに、 セキュリティ処理 部 1 72、 コーデック処理部 140、 CPU 1 1 0などの回路を搭載してもよい。 これにより、 通信装置の小型化、 軽量化、 高速化を図ることができる。
本実施の形態によれば、 複数の通信プロトコルによるデータ通信を効率よく処 理することができる。 また、 比較的簡便な回路構成により、 高速でリアルタイム な通信を実現することができる。
(第 2の実施の形態)
図 3は、 第 2の実施の形態に係る通信装置の一例としてのビデオ電話装置 20 0の全体構成を示す。 本実施の形態のビデオ電話装置 200は、 図 1に示した第 1の実施の形態のィンターネット電話装置 1 0 0の構成に加えて、 入力部の一例 としての画像入力部 1 8 0、 および出力部の一例としての表示装置 1 9 0を備え る。 その他の構成については、 第 1の実施の形態と同様である。 同様の構成には 同じ符号を付している。 本実施の形態では、 画像データも U D Pにより送受信さ れる。
画像入力部 1 8 0は、 通話音声とともに相手に送信すべき画像を入力する。 画 像入力部 1 8 0は、 外部のカメラやビデオ再生装置などから画像を入力してもよ いし、 自身が撮像装置として画像を撮像してもよい。 入力された画像は、 コーデ ック処理部 1 4 0に直接送られて符号化され、 U D P処理部 1 7 4により U D P パケットに整形されて、 ネットワークインタフェース部 1 3 0によりインターネ ット 2 0へ送出される。 表示装置 1 9 0は、 通話音声とともに相手から受信した 画像を表示する。 ネットワークインタフェース部 1 3 0が受信した U D Pバケツ トに含まれる画像データは、 110卩処理部1 7 4、 セキュリティ処理部 1 7 2、 およびコーデック処理部 1 4 0により処理され、 コーデック処理部 1 4 0から表 示装置 1 9 0に直接画像データが送られ、 表示される。
(第 3の実施の形態)
図 4は、 第 3の実施の形態に係る通信装置の一例としてのデジタルカメラ 3 0 0の全体構成を示す。 本実施の形態のデジタルカメラ 3 0 0は、 電話通信機能を 有しており、 図 1に示した第 1の実施の形態のインターネット電話装置 1 0 0の 構成に加えて、 撮像部 1 8 2および表示装置 1 9 0を備える。 その他の構成につ いては、 第 1の実施の形態と同様である。 同様の構成には同じ符号を付している。 撮像部 1 8 2は、 C C Dなどの撮像素子と、 それを制御する構成を含み、 静止 画または動画を撮像する。 撮像された画像は、 コーデック処理部 1 4 0に直接送 られて符号化され、 U D P処理部 1 7 4により U D Pパケットに整形されて、 ネ ットワークインタフェース部 1 3 0によりインターネット 2 0へ送出される。 表 示装置 1 9 0は、 通話音声とともに相手から受信した画像を表示する。 ネットヮ 一クインタフエース部 1 3 0が受信した U D Pバケツトに含まれる画像データは、 U D P処理部 1 7 4、 セキュリティ処理部 1 7 2、 およびコーデック処理部 1 4 0により処理され、 コーデック処理部 1 4 0カゝら表示装置 1 9 0に直接画像デー タが送られ、 表示される。
(第 4の実施の形態)
図 5は、 第 4の実施の形態に係る通信装置の一例としてのビデオ電話装置 2 0 0の全体構成を示す。 本実施の形態のビデオ電話装置 2 0 0は、 図 3に示した第 2の実施の形態のビデオ電話装置 2 0 0に比して、 画像入力部 1 8 0および表示 装置 1 9 0力 コーデック処理部 1 4 0に直接接続されているのではなく、 バス 1 0 2に接続されている。 その他の構成は図 3と同様であり、 同様の構成には同 じ符号を付している。
画像入力部 1 8 0が入力した画像は、 メモリ 1 2 0に保持され、 適宜読み出さ れて、 コーデック処理部 1 4 0により符号化される。 符号化された画像データは、 U D P処理部 1 7 4により U D Pバケツトに整形されて、 ネットワークインタフ エース部 1 3 0によりインターネット 2 0へ送出される。 ネットワークインタフ エース部 1 3 0が受信した U D Pパケットに含まれる画像データは、 U D P処理 部 1 7 4、 セキュリティ処理部 1 7 2、 およぴコーデック処理部 1 4 0により処 理され、 バス 1 0 2を介して表示装置 1 9 0に送られ、 表示される。
(第 5の実施の形態)
図 6は、 第 5の実施の形態に係る通信装置の一例としてのデジタルカメラ 3 0 0の全体構成を示す。 本実施の形態のデジタルカメラ 3 0 0は、 図 4に示した第 3の実施の形態のデジタルカメラ 3 0 0に比して、 撮像部 1 8 2および表示装置 1 9 0力 コーデック処理部 1 4 0に直接接続されているのではなく、 パス 1 0 2に接続されている。 その他の構成は図 4と同様であり、 同様の構成には同じ符 号を付している。
撮像部 1 8 2が撮像した画像は、 メモリ 1 2 0に保持され、 適宜読み出されて、 コーデック処理部 1 4 0により符号化される。 符号化された画像データは、 U D P処理部 1 7 4により U D Pバケツトに整形されて、 ネットワークインタフエ一 ス部 1 3 0によりインターネット 2 0へ送出される。 ネットワークインタフエ一 ス部 1 3 0が受信した U D Pバケツトに含まれる画像データは、 U D P処理部 1 7 4、 セキュリティ処理部 1 7 2、 およびコーデック処理部 1 4 0により処理さ れ、 バス 1 0 2を介して表示装置 1 9 0に送られ、 表示される。
(第 6の実施の形態)
図 7は、 第 6の実施の形態に係る通信装置の一例としてのインターネット電話 装置 1 0 0の全体構成を示す。 本実施の形態のィンターネット電話装置 1 0 0は、 図 1に示した第 1の実施の形態のインターネット電話装置 1 0 0の構成に加えて、 I P判別部 1 8 6およびパケット受信部 1 9 2をさらに備え、 プロトコル検出部 1 7 6に代えて U D P判別部 1 8 4を備える。 その他の構成は図 1と同様であり、 同様の構成には同じ符号を付している。
本実施の形態のインターネット電話装置 1 0 0でも、 第 1の実施の形態と同様 に、 音声信号を含む U D Pパケットを専用のハードウェアで処理することで、 処 理速度を向上させ、 通話音声のリアルタイムな送受信を実現するが、 本実施の形 態では、 さらにリ.アルタイム性を向上させるための技術を提案する。
バケツト受信部 1 9 2は、 リアルタイム性を要するデータを含むバケツトを、 リアルタイム性を要しないバケツトに優先して受信バッファ 1 9 3に格納するた めに、 リアルタイム性を要しないパケットについては、 受信バッファ 1 9 3の空 き領域が所定のしきい値を下回ると受信バッファ 1 9 3への格納を禁止し、 リア ルタイム性を要するパケットのみを格納可能とする。 これにより、 リアルタイム 性を要するバケツトの受信が遅延したり、 バケツトが破棄されてデータが欠落す る可能性を抑えることができる。
I P判別部 1 8 6は、 I Pパケットのうち、 複雑な処理を要する特殊なパケッ トを判別し、 そのバケツ 1、を C P U 1 1 0に送ってソフトウエアにより処理させ る一方、 通常の I Pバケツトは I P処理部 1 7 8に送ってハードウエアにより処 理させる。 これにより、 I P処理部 1 7 8のハードウェア規模の増大、 複雑化、 消費電力の増大を回避しつつ、 専用のハードウェアにより通常の I Pパケットを 高速に処理することができる。 それぞれの技術の詳細については、 図を参照しつ つ後述する。
図 8は、 バケツト受信部 1 9 2の内部構成を示す。 制御部 1 9 5は、 読出し位 置管理部 1 9 6、 書込み位置管理部 1 9 7、 およびバッファ飽和検出部 1 9 8を 含む。 本実施の形態の受信バッファ 1 9 3は、 F I F O (First In First Out) メモリにより構成されており、 読出し位置管理部 1 9 6は受信バッファ 1 9 3の リ一ドアドレスを保持するレジスタであり、 書込み位置管理部 1 9 7は受信パッ ファ 1 9 3のライ トアドレスを保持するレジスタである。 バッファ飽和検出部 1
9 8は、 読出し位置管理部 1 9 6に保持されたリードアドレスと、 書込み位置管 理部 1 9 7に保持されたライトァドレスとの差を算出することにより、 受信バッ ファ 1 9 3の使用領域の大きさを検出し、 受信バッファ 1 9 3の空き領域を把握 する。
バッファ飽和検出部 1 9 8は、 受信バッファ 1 9 3への書込みの許否を判定す るための複数のしきい値を保持している。 しきい値は、 パケットの種別に応じて 設定されており、 受信バッファ 1 9 3の空き領域が、 あるバケツト種別に対する しきい値を下回ると、 その種別のバケツトの受信バッファ 1 9 3への書込みを禁 止し、 受信したパケットを破棄する。
本実施の形態では、 リアルタイムな処理を要するデータを含むパケットを優先 的に受信バッファ 1' 9 3に格納するために、 リアルタイムな処理を要するバケツ トに対する許否判定のしきい値を、 リアルタイムな処理を要しないバケツトに対 する許否判定のしきい値よりも低く設定する。 たとえば、 リアルタイムな処理を 要するバケツトに対するしきい値を 0とし、 リアルタイムな処理を要しないパケ ットに対するしきい値をバッファサイズの 5 0 %としたとき、 バッファ飽和検出 咅 1 9 8は、 受信バッファ 1 9 3の空き領域が 5 0 %を下回ると、 リアルタイム な処理を要しないパケットに対してはバッファが飽和したと判定して書込みを禁 止する一方、 リアルタイムな処理を要するバケツトに対しては空き領域があると 判定して書込みを許可する。 すなわち、 受信バッファ 1 9 3の空き領域が 5 0 % 以上のときは、 リアルタイムな処理を要するパケットもリアルタイムな処理を要 しないバケツトも受信バッファ 1 9 3に格納可能とするが、 空き領域が 5 0 %を 下回ると、 リアルタイムな処理を要するバケツトのみの格納を許可する。
本実施の形態では、 リアルタイム性を要する音声信号は、 U D Pを用いて送受 信される。 そのため、 パケット判別部 1 94は、 受信したパケットが TCPパケ ットであるか UD Pパケットであるかを判別し、 TCPパケットであれば、 リア ルタイムな処理を要しないバケツトに対しての許否判定を採用し、 UDPバケツ トであれば、 リアルタイムな処理を要するバケツトに対しての許否判定を採用す る。 バケツト判別部 1 94は、 格納を許可されたパケットを受信バッファ 1 93 に格納し、 格納を拒否されたパケットを破棄する。
T C Pでは、 FTP (File Transfer Protocol) によりデータフアイルを転送す る場合など、 一時に大量のパケットを受信する可能性があるが、 このとき、 受信 バッファ 1 93が TCPパケットで飽和し、 UDPパケットを受信できなくなる 恐れがある。 音声信号を含む UDPパケットは、 リアルタイムに再生する必要が あるので、 UDPバケツトが優先的に受信バッファ 1 9 3を利用できるようにす ることで、 パケットの破棄によるデータの欠落を最小限に抑える。 UDPは再送 制御を行わないので、 いったんパケットが破棄されると再び取得することができ ないが、 TCPは、 再送制御を行うので、 欠落したデータを再送により補うこと が可能である。
受信バッファ 1 93を 2つ設け、 一方にリアルタイム性を要するバケツトを格 納し、 他方にリアルタイム性を要しないバケツトを格納するように構成してもよ いが、 上述の技術を用いることにより、 1つの受信バッファ 1 93でリアルタイ ムな処理を要するバケツトを優先的に受信することができるので、 2つの受信バ ッファ 1 93を設ける場合に比べて、 ハードゥヱァ規模を抑え、 消費電力を低減 することができる。
リアルタイムな処理を要するデータを含むか否かを示す情報をバケツトのへッ ダ情報に格納しておき、 その情報を参照してパケットの種別を取得し、 受信バッ ファ 1 93への格納の許否を判定してもよい。 リアルタイム性の有無だけでなく、 他の観点に基づいてしきい値を設定し、 受信バッファ 1 93への格納の優先度を 決定してもよい。 たとえば、 重要度が高く、'データの欠落が許されないパケット のしきい値を他のバケツトのしきい値よりも低く設定し、 優先的に取り込むよう にしてもよい。 パケット判別部 1 94がしきい値を保持し、 バッファ飽和検出部 1 9 8から受信バッファ 1 9 3の残量を取得して、 受信バッファ 1 9 3への書込 みの許否を判定してもよい。
図 9は、 本実施の形態におけるバケツトの受信手順を示すフローチャートであ る。 ネットワークインタフェース部 1 3 0がパケットを受信すると (S 2 0 0 ) 、 バケツト判別部 1 9 4がリアルタイムな処理を要するデータを含むバケツトか否 かを判別する (S 2 0 2 ) 。 リアルタイム性のパケットであった場合は (S 2 0 2の Y) 、 リアルタイム性のパケットに対して設定されたしきい値を用いて受信 バッファ 1 9 3への格納の許否が判定される (S 2 0 4 ) 。 リアルタイム性のパ ケットでなかった場合は (3 2 0 2の1^) 、 非リアルタイム性のパケットに対し て設定されたしきい値を用いて受信バッファ 1 9 3への格納の許否が判定される ( S 2 0 6 ) 。 そして、 受信したバケツトの受信バッファ 1 9 3への格納が許可 された場合は (3 2 0 8の丫) 、 パケットを受信バッファ 1 9 3に格納し (S 2 1 0 ) 、 格納が許可されなかった場合は (S 2 0 8のN) 、 パケットは破棄され る (S 2 1 2 ) 。
図 1 0は、 I P判別部 1 8 6の内部構成を示す。 第 1の判別部の一例としての I P判別部 1 8 6は、 I Pへッダ検出部 1 8 7、 I Pへッダ判定部 1 8 8、 およ ぴバケツト出力切替部 1 8 9を含む。 I Pヘッダ検出部 1 8 7は、 バケツト受信 部 1 9 2から取得したバケツトの I Pヘッダを検出し、 I Pヘッダ判定部 1 8 8 に送る。 I Pヘッダ判定部 1 8 8は、 I Pヘッダなどを参照して、 そのパケット が通常の I Pバケツトである力、、 複雑な処理を要する特殊な I Pパケットである かを判定し、 判定結果をバケツト出力切替部 1 8 9に通知する。 特殊な I Pパケ ットは、 たとえば、 オプション付き I Pパケット、 フラグメント化された I Pパ ケットなどであってもよレ、。 パケット出力切替部 1 8 9は、 I Pへッダ判定部 1 8 8の判定結果に基づいて、 I Pヘッダ検出部 1 8 7が取得した I Pバケツトの 出力先を切り替える。 パケット出力切替部 1 8 9は、 通常の I Pパケットをハー ドウエアにより処理させるために第 1の専用回路の一例としての I P処理部 1 7 8へ出力し、 複雑な処理を要する特殊な I Pバケツトをソフトウェアにより処理 させるためにバスインタフェースを介して汎用回路の一例としての C P U 1 1 0 へ出力する。
フラグメント化された I Pバケツトは、 バケツトの順序の管理や、 欠落や重複 があったときの処理など、 通常の I P処理よりも複雑な処理が必要となる。 また、 オプション付き I Pバケツトは、 付されたオプションに応じた処理が必要となる。 このような例外的な処理もハードウェアにより実現しょうとすると、 回路規模が 増大し、 コストや消費電力の増大を招く。 そのため、 通常の I Pパケットのみを 処理可能なハードウェアのみを設けることで、 コストゃ消費電力を抑える。
I P処理部 1 78により処理されたバケツトは、 第 2の判別部の一例としての UDP判別部 1 84に送られる。 UDP判別部 1 84は、 受信したパケットが T C Pパケットであるか UD Pパケットであるかを判別し、 UDPパケットは第 2 の専用回路の一例としての UDP処理部 1 74によりハードウヱァ処理する一方、 TCPバケツトは汎用回路の一例としての CPU 1 1 0によりソフトウエア処理 する。 ここで、 UDP判別部 1 84は、 第 1の実施の形態におけるプロトコル検 出部 1 76と同様の機能を有するが、 本実施の形態では、 通信プロトコルのうち トランスポート層の通信方式の種別を判別することを明示するために、 この名称 を用いている。
このように、 本実施の形態のインターネット電話装置 100では、 I P判別部 1 86により I Pバケツトの種別を検出し、 バケツトの処理主体を高速かつ適切 に選択することができる。 また、 通話音声などのリアルタイムな処理を要するデ ータを含む通常の I Pバケツトは専用回路である I P処理部 1 78により高速に 処理を行いつつ、 複雑な処理を要する特殊な I Pバケツトは C PU 1 1 0により ソフトウェア処理を行うことにより、 回路の複雑化、 回路規模、 コスト、 消費電 力、 熱発生などの増大を抑えることができる。
図 1 1は、 本実施の形態におけるパケット処理手順を示すフローチャートであ る。 ネットワークインタフェース部 1 30がパケットを受信すると (S 300) 、 I P判別部 1 86が通常の I Pバケツトか否かを判別する (S 302) 。 通常の I Pバケツトであった場合は (S 302の Y) 、 専用回路である I P処理部 1 7 8により I Pのパケット処理が行われる (S 304) 。 フラグメント化された I Pパケットなど、 複雑な処理を要する特殊な I Pパケットであった場合は (S 3 02のN) 、 汎用回路である CPU1 1 0に送られ、 ソフトウェアによりバケツ ト処理が行われる (S 3 10) 。 110卩判別部1 84は、 I P処理部 1 78によ り処理されたパケットが UDPパケットであるか否かを判別する (S 306) 。 UDPパケットであった場合は (3306の ) 、 専用回路である UD P処理部 1 74により UD Pのバケツト処理が行われる。 T C Pパケットであった場合は (S 306の N) 、 汎用回路である CPU 1 10に送られ、 ソフトウエアにより バケツト処理が行われる (S 3 1 0) 。
本実施の形態によっても、 複数の通信プロトコルによるデータ通信を効率よく 処理することができる。 また、 比較的簡便な回路構成により、 高速でリアルタイ ムな通信を実現することができる。
(第 7の実施の形態)
図 1 2は、 本発明の第 7の実施の形態に係る通信装置の一例としてのインター ネット電話装置 1 00の全体構成を示す。 インターネット電話装置 1 00は、 ィ ンターネット 20を介して、 他のインターネット電話装置 100との間で通話を 行うための装置である。 インターネット電話装置 100は、 主に、 ソフトウェア 処理を実行するための汎用回路である C PU 1 1 0、 プログラムエリアまたはヮ ークエリアとして利用されるメモリ 1 20、 インターネット 20を介してバケツ トを送受信するネットワークインタフェース部 1 30、 音声信号を入力するマイ ク 1 50、 音声信号を出力するスピーカ 1 60、 音声信号の圧縮符号化処理およ び復号処理を行うコーデック処理部 140、 通信データの暗号化処理または復号 処理などを行うセキュリティ処理部 1 72、 UDPバケツトを処理するための専 用回路である UDP処理部 1 74、 通信プロトコルに応じた各種処理を行うプロ トコルエンジン 50、 およびこれらの構成を電気的に接続するバス 102を備え る。
本実施の形態のインターネット電話装置 100は、 受信したバケツトの処理を C PU 1 1 0のみに任せるのではなく、 C PU 1 1 0へパケットを転送する前に、 専用のハードウェアにより構成されたプロトコルエンジン 50が、 ヘッダ解析、 エラーチェック、 データのァライメントなどの処理を行うので、 CPU1 1 0が 無駄なバケツト処理を行う必要がなく、 処理負荷が大幅に軽減される。
本実施の形態のインターネット電話装置 1 00では、 UDPを利用して音声信 号を送受信する。 UDPは、 接続の確立を要さず、 バケツトを次々に送出するこ とが可能な通信方式であるため、 プロトコル処理が簡単で、 かつ高速な通信が可 能であり、 通話音声を送るなどのリアルタイムな通信に適している。 本実施の形 態のインターネット電話装置 1 00では、 UDPパケットの処理を、 専用の回路 である UD P処理部 1 74に実行させることで、 さらに処理速度を向上させ、 通 話音声のリアルタイムな送受信を実現する。
インターネット電話装置 1 00が送受信するパケットのうち、 TCPにより送 受信されるバケツトは、 CPU 1 1 0を利用してソフトウエアにより処理される。 リアルタイム性を要しない TC Pパケットについては、 専用の回路を設けず、 汎 用回路によるソフトウェア処理を行うことで、 回路規模の増大を抑え、 コスト、 消費電力、 熱発生の増大を最小限に抑えることができる。 本発明者の試算によれ ば、 TCPと UDPの双方を専用回路により処理する場合に比べて、 回路の面積 および消費電力が約 1/3で済むことが分かっている。 このように、 本実施の形 態では、 専用のハードウエアと汎用のソフトウエアとにより協調処理することで、 処理の高速化と回路規模の削減という二律背反的な要望に応える。
ネットワークインタフェース部 1 30が受信したバケツトは、 プロトコルェン ジン 50に送られる。 プロトコルエンジン 50は、 パケットが自装置に割り当て られた I Pアドレスに宛てられたものであるか否かを判断し、 自装置宛てのパケ ットのみを通し、 その他のパケットを破棄する。 また、 パケットに付されたへッ ダ情報を参照してプロトコルの種別を検出し、 パケットが TCPにより送られた パケットであった場合は、 そのパケットのデータをバス 102上に送り、 CPU 1 10によりソフトウェア処理させる。 パケットが UDPのパケットであった場 合は、 そのパケットのデータを UD P処理部 1 74に送り、 UDPパケットの処 理のために専用に設けられた回路により処理させる。
110?処理部1 74は、 UD Pパケットを処理するための専用回路であり、 U D Pパケットを受け取って、 そのヘッダを解析し、 必要な処理を実行する。 セキ ユリティ処理部 1 7 2は、 データに対して暗号化処理などのセキュリティ対策が 施されていた場合に、 暗号を復号するなどの処理を行う。 復号されたデータは、 コーデック処理部 1 4 0に送られる。 コーデック処理部 1 4 0は、 圧縮符号化さ れていた通話音声信号を復号し、 スピーカ 1 6 0に出力する。
このように、 本実施の形態のインターネット電話装置 1 0 0では、 正確性より もリアルタイム性が重視され、 通話中、 常時処理が必要となる通話音声データは、
U D Pにより送受信を行い、 専用回路である U D P処理部 1 7 4によりハードウ ヱァ処理を行う一方、 リアルタイム性よりも正確性が重視されるデータは、 T C Pにより送受信を行い、 C P U 1 1 0によりソフトウエア処理を行う。 これによ り、 回路の複雑化、 回路規模、 コスト、 消費電力、 熱発生などの増大を抑えつつ、 通話音声データを高速に処理することが可能となる。 このような利点は、 複数の 相手と同時に通話したり、 通話音声とともに画像を送信するなど、 大量のデータ を同時に処理することが必要な場合に、 より顕著となる。 また、 プロトコルェン ジン 5 0によりパケットの種別を検出し、 パケットの処理主体を高速かつ適切に 選択することができる。 さらに、 C P U 1 1 0の処理負担を軽減し、 低コスト化、 低消費電力化が実現できるほか、 C P U 1 1 0に余力ができるため、 通話中に他 のアプリケーションを実行することが可能となり、 新たなサービスを提供するこ ともできる。
以上、 パケットを受信したときの動作について説明したが、 つづいて、 マイク 1 5 0から入力された音声信号をバケツト化して送信するときの動作について説 明する。 マイク 1 5 0から入力された音声信号は、 コーデック処理部 1 4 0に送 られ、 符号化される。 符号化された信号は、 必要であれば、 セキュリティ処理部 1 7 2により暗号化されたあと、 U D P処理部 1 7 4に送られ、 U D Pヘッダが 付され、 パケット化される。 この U D Pパケットは、 プロトコルエンジン 5 0に よりチェックサム値などのヘッダ情報が付され、 ネットワークインタフェース部 1 3 0を介して、 インターネット 2 0に送出される。
図 1 3は、 プロ トコルエンジン 5 0の内部構成を示す。 1 ?制御部2 0 2は、 ネットワークインタフェース部 1 30が自装置の I Pァドレスに宛てた ARP
(Address Resolution Protocol) パケットを受信したときに、 自動的に自装置の データリンク層のアドレス (MACアドレス) 情報をセットして応答パケットを 生成し、 ARPパケッ トの送信元へ送信する。 従来は、 ARPパケットも CPU 1 1 0によりソフトウエア処理していたが、 本実施の形態では、 ARP制御部 2 02が CPU 1 10を介さずに自動応答することにより、 CPU 1 1 0の負担を 大幅に軽減するとともに、 割り込みによるタスクスィツチを減少させることがで きる。
ヘッダ解析部 2 1 0は、 バケツトのヘッダ情報を解析して、 不要なパケットを 破棄し、 必要なパケットのみを通す処理を行う。 たとえば、 自装置の I Pァドレ スに宛てたバケツトのみを通し、 その他の I Pァドレス宛てのバケツトは破棄す る。 I Pバケツトのみを送受信する装置に本実施の形態のプロトコルエンジン 5 0を搭載する場合、 I P以外の通信方式のパケットを破棄してもよい。 また、 特 定のパケットを検出して、 そのパケットを処理する専用回路へ送ってもよい。 本 実施の形態では、 UDPパケットを専用回路である UDP処理部 1 74により処 理するので、 へッダ解析部 21 0は、 へッダ情報を解析することにより UDPパ ケットを検出すると、 その UDPバケツトを CPU 1 10を介さずに直接 UDP 処理部 1 74に転送する。 このとき、 ヘッダ情報を破棄してデータ部分のみを送 つてもよレ、。 これにより、 ソフトウェア処理が必要なパケットのみを C PU 1 1 0に処理させることができるので、 CPU 1 1 0の処理負担を軽減することがで きる。 また、 適宜専用のハードウェアによりパケットを処理することにより、 処 理の高速化を図ることができる。
チェックサム算出部 21 2は、 パケットのチェックサムを算出し、 ヘッダに格 納されたチェックサム値と一致するか否かを検証する。 一致した場合は、 そのパ ケットを通し、 一致しなかった場合は、 そのパケットを破棄する。 従来は、 CP U 1 1 0がチヱックサムの検証を行っていたが、 本実施の形態のように、 CPU 1 10に送る前の段階で専用回路にてチヱックサムの検証を行うことで、 CPU 1 10に無用なバケツトを処理させることを防ぎ、 CPU1 1◦の処理負担を軽 減することができる。
書き込み制御部 2 2 0は、 ヘッダ解析部 2 1 0を通過したバケツトを受信パッ ファ 2 3 0に格納する。 チェックサム算出部 2 1 2によりエラーが検出されたパ ケットは受信バッファ 2 3 0に格納せずに破棄するが、 チェックサム算出部 2 1 2がチェックサムを算出している間、 受信バッファ 2 3 0への書き込みを待機し ているよりも、 並行して受信バッファ 2 3 0 へ書き込んでいくほうが効率がよい。 そのため、 書き込み制御部 2 2 0は、 ヘッダ解析部 2 1 0を通過したバケツトを、 チェックサム算出部 2 1 2による検証の結果を待たずに受信バッファ 2 3 0に書 き込んでいき、 チェックサム算出部 2 1 2による検証でエラーが検出された場合 は、 書き込んだパケットを消去し、 ライ トポインタを元に戻す。 読み出し制御部 2 4 0は、 受信バッファ 2 3 0に格納された受信バケツトの読み出しを制御する。 書き込み制御部 2 2 0、 受信バッファ 2 3 0、 および読み出し制御部 2 4 0の構 成および動作の詳細については、 図 1 5において詳述する。
チェックサム生成部 2 8 0は、 送信パケットのチェックサムを算出する。 U D Pパケットは、 送信キューに投入する時点でパケットサイズが確定しているので、 チェックサム生成部 2 8 0により予めデータ部のチェックサムを算出して保持し ておき、 バケツト送出時にヘッダ合成部 2 5 0によりヘッダにチェックサム値を セットする。 T C Pパケットは、 パケット送出時にパケットサイズが確定するの で、 予めデータ部のチェックサム値を算出しておくことはできないが、 所定の区 間ごとにチェックサム累積値を算出して保持しておくことで、 パケット送出時の チェックサム算出処理を簡略化することができる。 T C Pバケツトのバケツトサ ィズを、 チヱックサム累積値の算出区間の整数倍に限定すれば、 データ部のチヱ ックサム値はデータ部の区間前後のチェックサム累積値を減算するだけで得られ る。
第 1送信バッファ 2 7 0は、 送信バケツトのうち、 送信先の MA Cアドレスが 未解決のものを格納する。 第 2送信バッファ 2 7 2は、 送信パケットのうち、 送 信先の MA Cァドレスが分かっているものを格納する。 A R Pインタフェース 2 6 0は、 第 1送信バッファ 2 7 0に格納された、 送信先の MA Cアドレスが不明 なパケットについて、 その MACアドレスを解決すべく、 ARPパケットを生成 してネットワークにプロ一ドキャストする。 ARPパケットの応答が戻ってくる までの間はそのバケツトを送出できないので、 ァドレス解決が不要なバケツトの キューとは別に第 1送信バッファ 270を設けて待機させておき、 その間は第 2 送信バッファ 272にて待機中のァドレス解決が不要な送信バケツトを送出する。 ARPの応答が戻ってくると、 解決された MACァドレスをセットして第 1送信 バッファ 270のパケットを送出し、 次に待機中のパケットについて ARPパケ ットを送出する。 そして、 応答が戻るまでの間は再び第 2送信バッファ 272の パケットを送出する。 これにより、 全体の送信待ち時間を減少させ、 効率良くパ ケットを送出することができる。 また、 送信先の MACアドレスが未解決のパケ ットであっても、 第 1送信バッファ 270に投入しておけば自動的に MACァド レスを解決しつつバケツトを送出してくれるので、 CPU1 1 0側の処理が単純 になり、 処理負荷を軽減することができる。
へッダ合成部 250は、 第 1送信バッファ 270または第 2送信バッファ 27 2に保持された送信待機中の送信パケットを、 ネットワークインタフェース部 1 30を介して送出すべく、 そのパケッ トのへッダ情報を生成する。 へッダ合成部 250は、 頻繁に変更されないパラメータや容易に推測可能なパラメータを自動 的に生成してヘッダ情報を生成する。 たとえば、 I Pヘッダの識別子は、 CPU 1 1 0が指定しなくともヘッダ合成部 250が自動的にインクリメントしてへッ ダにセットする。 C P U 1 1 0は、 データ以外には、 送信先とバケツトサイズの みを指定すればよい。 これにより、 C PU 1 1 0のバッファ管理を単純化し、 処 理負荷を軽減することができる。
ホストテーブル 204は、 他装置の MACァドレスおよび I Pァドレスを対応 付けて保持する。 図 14は、 ホス トテーブル 204の内部データの例を示す。 ホ ス トテーブル 204には、 ホス ト I D欄 205、 MACァドレス欄 206、 およ び I Pアドレス欄 207が設けられている。 ホス トテーブル 204の内容は、 C PU 1 10が予め頻繁に通信を行う可能性のあるホス ト装置の情報を登録しても よいし、 通信中に C PU 1 10などが登録してもよい。 MACアドレスが不明な ホスト装置であっても、 まず I Pア ドレスのみを格納しておき、 A R Pインタフ ヱース 2 6 0により A R Pバケツトを送出し、 その応答を取得したときに MA C アドレスを登録してもよレ、。 ホス トテーブル 2 0 4を設けてあるので、 C P U 1 1 0は、 パケッ トの送信先を指定するときに、 ホス ト I D、 MA Cアドレス、 I Pアドレスのいずれを用いて指定してもよい。 ヘッダ合成部 2 5 0は、 ホス トテ 一ブル 2 0 4を参照して、 へッダ生成に必要な情報を取得することができる。 ホス トインタフェース部 2 9 0は、 プロ トコノレエンジン 5 0の構成要素と C P U 1 1 0との間でデータや指示の入出力を制御する。
図 1 5は、 書き込み制御部 2 2 0および読み出し制御部 2 4 0の内部構成を示 す。 書き込み制御部 2 2 0は、 管理情報生成部 2 2 2、 データ入れ替え部 2 2 4、 書き込みア ドレス生成部 2 2 6、 遅延回路 2 2 8、 およびセレクタ 2 2 9を備え る。 ヘッダ解析部 2 1 0によるパケットフィルタリングを通過したバケツトは、 管理情報生成部 2 2 2およぴデータ入れ替え部 2 2 4により整形されて受信パッ ファ 2 3 0に格納される。 パケットのデータが整形される様子は、 図 1 6を参照 しつつ後述することにする。 書き込みアドレス生成部 2 2 6は、 受信バッファ 2 3 0のライトポインタを管理する。 前述したように、 チェックサム算出部 2 1 2 によるチェックサムの検証に並行して受信バッファ 2 3 0にバケツトのデータを 格納していく力 チェックサムエラーが検出されたときは、 書き込みア ドレス生 成部 2 2 6は、 ライトポインタを元の位置に戻す。 チェックサムエラーが検出さ れず、 受信バッファ 2 3 0への格納が正常に終了すると、 書き込みアドレス生成 部 2 2 6は、 管理情報生成部 2 2 2に次のバケツトのァドレスを通知する。 読み 出し制御部 2 4 0は、 読み出しァドレス生成部 2 4 2およびセレクタ 2 4 4を備 える。
図 1 6は、 書き込み制御部 2 2 0によりパケットのデータが整形される様子を 示す。 通常の I Pパケットは、 先頭の MA Cヘッダが 1 4バイ トを占めているが、 3 2ビットワードでは 3 . 5ワードと半端になるため、 以降のデータが 1 6ビッ トずつずれた形となる。 このまま受信バッファ 2 3 0に格納すると、 アクセスす るときに不便であるから、 本実施の形態では、 MA Cヘッダが 3ワードとなるよ うにデータを整形してから受信バッファ 2 3 0に格納する。 すなわち、 MA Cへ ッダを 1 6 ビッ ト分減らせばよい。 MA Cヘッダのうち、 宛先 MA Cアドレスは、 自装置の MA Cァドレスと同じであり、 既にバケツトを受信しているので不要で ある。 MA Cア ドレスは 4 8ビットであるから、 これを破棄すると、 3 2ビット 分余裕が残る。 アプリケーションによっては、 このパケットがュニキャスト、 マ ルチキャスト、 ブロードキャストのいずれで送信されたのかという情報が必要な 場合があるので、 これをフラグとして宛先 MA Cァドレスの代わりに格納する。 このフラグは 2ビットで十分であるから、 まだ 3 0ビット分余裕がある。 そこで、 パケット種別を示すフラグや、 次のバケツトの格納位置を示すァドレス情報など を管理情報として格納する。 以上により、 MA Cヘッダが 3ワードにおさまるの で、 以降のデータをワード単位で整列させることができ、 アクセスが容易になる。 図 1 5に戻り、 受信したバケツトを書き込む手順と読み出す手順について説明 する。 管理情報生成部 2 2 2は、 上述した管理情報を生成する。 管理情報として、 たとえば、 このパケットがュニキャスト、 マノレチキャスト、 ブロードキャストの いずれで送信されたのかを示す送信種別情報、 このパケットが T C Pパケットか U D Pバケツトカ \ フラグメント化された I Pバケツトまたはォプション付きの I Pパケットなど複雑な処理を要する特殊な I Pバケツトであるか否か、 などを 示すバケツト種別情報、 次のバケツトの格納位置を示すァドレス情報、 などを生 成してもよい。 次バケツトのァドレス情報を格納する場合は、 自バケツトのデ一 タの格納が終了してから、 書き込みア ドレス生成部 2 2 6から次パケットのアド レス情報を取得するので、 管理情報の受信バッファ 2 3 0への書き込みはバケツ トのデータの格納が完了した後になる。 これらの管理情報は、 全体で 1ワードと なるように整形され、 セレクタ 2 2 9を介して受信バッファ 2 3 0に格納される。 データ入れ替え部 2 2 4は、 受信したパケットのデータのうち、 MA Cァドレ スを除いたデータを 3 2ビットワードで整列させるために、 上位 1 6ビットと下 位 1 6ビットを入れ替える。 データ入れ替え部 2 2 4の出力のうち、 上位 1 6ビ ットを遅延回路 2 2 8により 1クロック遅延させて合成することにより、 1 6ビ ットずつずれていたデータを整列させることができる。 整形されたデータは、 セ レクタ 2 2 9を介して受信バッファ 2 3 0に格納される。
書き込みアドレス生成部 2 2 6は、 まず、 書き込み位置の先頭にポインタを移 動するが、 1ワード目の管理情報は最後に格納されるので、 ポインタをインクリ メントし、 MA Cヘッダのうち宛先 MA Cァドレスを除いた 2ヮード、 I Pへッ ダ 5ワード、 I Pデータを、 ポインタをインクリメントしつつ次々に書き込んで いく。 データ部分の書き込みが終了すると、 次の書き込み開始位置を管理情報生 成部 2 2 2に通知し、 書き込み位置の先頭にポインタを戻して、 管理情報を書き 込む。
管理情報を含むヘッダ情報は、 それぞれ独立したレジスタを割り当て、 C P U 1 1 0がランダムに何度でもアクセスできるようにする。 受信バッファ 2 3 0に 格納されたバケツトは、 既にヘッダ解析部 2 1 0およびチェックサム算出部 2 1 2により有効性が検証されたものであるから、 C P U 1 1 0が直接へッダ情報に アクセスしてデータを渡すべきアプリケーションを判断できるようにする。 他方、 データ部分は、 1つのアクセスポートレジスタから読み出すようにする。 すなわ ち、 アクセスポートレジスタへの最初の読み出しでは、 データ部分の最初のデー タが読み出され、 以降、 同じレジスタを連続してアクセスすることにより、 デー タが次々に読み出される。 データの転送先が決定されれば、 あとはデータをコピ 一するだけであるから、 ランダムアクセスを可能とする必要はない。 したがって、 アクセスポート方式を採用することにより、 ポインタ管理が必要なメモリマップ 方式よりも簡便で処理負担を軽減することができる。 また、 C P U 1 1 0を持た ないハードウエアと組み合わせて利用することもできる。
受信バッファの読み出しァドレスは上位ァドレスと下位ァドレスから構成され る。 C P U 1 1 0は、 受信パッファ 2 3 0に格納されたパケットのへッダ情報に アクセスするときは、 上位ァドレスと下位ァドレスの双方を指定する。 上位アド レスについては、 どのパケットのどのヘッダにアクセスしたいかを読み出しアド レス生成部 2 4 2に指定すれば、 読み出しァドレス生成部 2 4 2が自動的に上位 アドレスを生成してポインタを移動する。 下位アドレスについては、 C P U 1 1 0が出力する下位ァドレスをそのまま受信バッファの下位ァドレスとし、 C P U 1 10が自由に読み出せるようにする。 CPU1 1 0は、 バケツトのデータ部分 にアクセスするときは、 読み出しァドレス生成部 242に、 どのパケットのデー タにアクセスしたいかを指定すればよレ、。 読み出しアドレス生成部 242は、 自 動的に上位ァドレスと下位ァドレスを生成してポィンタを移動し、 データを次々 に読み出す。
実施の形態では、 電話装置を例にとって説明したが、 本実施の形態の技術は、 コンピュータや携帯電話など、 ストリームデータを送受信する通信装置全般に利 用可能である。
プロ トコルエンジン 50の機能を有する回路を、 一つの半導体基板上に搭載し てもよい。 さらに、 セキュリティ処理部 1 72、 コーデック処理部 140、 CP U 1 1 0などの回路を搭載してもよい。 これにより、 通信装置の小型化、 軽量化、 高速化を図ることができる。
本実施の形態によれば、 データ通信に伴うバケツト処理を効率よく行う技術を 提供することができる。 また、 本実施の形態によれば、 パケット処理における C PUの処理負荷を軽減し、 高速でリアルタイムな通信を実現する技術を提供する ことができる。
(第 8の実施の形態)
図 1 7は、 本発明の第 8の実施の形態に係る通信装置の一例としてのインター ネット電話装置 1 00の全体構成を示す。 インターネット電話装置 100は、 ィ ンターネット 20を介して、 他のインターネット電話装置 1 00との間で通話を 行うための装置である。 インターネット電話装置 100は、 主に、 ソフトゥヱァ 処理を実行するための汎用回路である CPU 1 1 0、 プログラムエリアまたはヮ ークエリアとして利用されるメモリ 1 20、 ィンターネット 20を介してバケツ トを送受信するネットワークインタフヱース部 1 30、 音声信号を入力するマイ ク 1 50、 音声信号を出力するスピーカ 1 60、 音声信号の圧縮符号化処理およ ぴ復号処理を行うコーデック処理部 140、 I Pによる通信のための各種処理を 行う I P処理部 1 78、 TCPまたは UDPによる通信のための各種処理を行う TCP/UDP処理部 400、 およびこれらの構成を電気的に接続するバス 10 2を備える。
本実施の形態のインターネット電話装置 100では、 音声信号などのデータを TCP/ I Pにより送信するために TC Pバケツトを生成するにあたって、 送信 するデータが入力されたときに、 予め所定長ごとにチェックサムの累積値を算出 して保持しておく。 そして、 TCPパケットのサイズが確定したときに、 その累 積値を利用して、 そのパケットのチェックサムを算出する。 これにより、 従来の、 送信サイズが確定してからデータを読み出してチェックサムを算出する方式に比 ベて、 チヱックサムの算出に要する時間を大幅に短縮することができる。 この点 については、 図 1 8以降の説明部分で詳述する。
まず、 インターネット電話装置 1 00がパケットを受信したときの動作の概要 について説明する。 ネットワークインタフェース部 1 30が受信したバケツトは、 I P処理部 1 78に送られる。 I P処理部 1 78は、 パケットが自装置に割り当 てられた I Pアドレスに宛てられたものであるか否かを判断し、 自装置宛てのパ ケットのみを TC P/UD P処理部 400に送る。 TCPZUDP処理部 400 は、 ヘッダ情報などからパケットが TCPパケットであるか UDPパケットであ るかを判断し、 それぞれのパケットに対して必要な処理を実行する。 受信したパ ケットが音声信号であった場合、 そのデータはコーデック処理部 140に送られ る。 コーデック処理部 140は、 圧縮符号化されていた通話音声信号を復号し、 スピーカ 1 60に出力する。
つづいて、 インターネッ ト電話装置 100が音声信号を含むデータを送信する ときの動作の概要について説明する。 マイク 1 50から入力された音声信号は、 コーデック処理部 140に送られ、 符号化される。 符号化された信号は、 必要で あれば、 図示しないセキュリティ処理部により暗号化された後、 TCP/UDP 処理部 400に送られバケツトイヒされる。 生成された TC Pまたは UDPバケツ トは、 ネットワークインタフェース部 1 30を介して、 ィンターネット 20に送 出される。
I P処理部 1 78、 TCPZUDP処理部 400、 およびコーデック処理部 1 40の機能は、 ハードウエア的には CPU 1 10やメモリ 1 20などの構成で実 現でき、 ソフトウエア的にはプロトコル処理機能またはコーデック処理機能のあ るプログラムなどによって実現できるが、 本図ではそれらの連携によって実現さ れる機能ブロックを描いている。 したがって、 これらの機能ブロックはハードウ エア、 ソフトウェアの組合せによっていろいろなかたちで実現できる。 これらの 構成を、 専用の回路により実現してもよい。 本図では、 I P処理部 1 78、 TC ?/110 処理部400、 およぴコーデック処理部 140は、 それぞれバス 1 0
2に接続されているが、 これらを専用の回路により実現する場合、 それぞれの回 路を専用バスにより接続してもよい。 .
図 1 8は、 図 1 7の TCP/UDP処理部 400の内部構成のうち、 本実施の 形態において特徴的なパケット生成機能を実現するための構成を示す。 TCP/ UDP処理部 400は、 CPU 1 1 0などにより用意された送信データの入力を 受け付けるデータ入力部 410、 送信データのチェックサムの累積値を算出する チ ックサム算出部 420、 送信データを保持するデータ格納部 430、 送信デ 一タの所定長の区間ごとにチェックサムの累積値を保持するチェックサム格納部 432、 データ格納部 430に残っている未送信のデータのサイズを格納するデ ータサイズ格納部 434、 TCPバケツトの送信サイズを制御する送信サイズ制 御部 440、 TCPおよび UDPパケットのヘッダ情報を生成する、 第 2算出部 の一例としてのヘッダ生成部 450、 および TCPおよび UDPバケツトを出力 するバケツト出力部 460を含む。
まず、 TCPパケットが生成される手順について説明する。 CPU 1 1 0など からデータ入力部 4 10を介して入力された送信データは、 データ格納部 430 に格納されるとともに、 チェックサム算出部 420に送られる。 チェックサム算 出部 420は、 入力されたデータの先頭からのチェックサムの累積値を算出し、 所定長ごとに、 算出された累積値を出力してチェックサム格納部 432に保持し ておく。 チェックサムは、 1 6ビット (1ワード) ごとに一まとめにしたデータ を順次加算することにより算出されるが、 ここで、 加算とは 1の補数加算を指し、 加算結果が 1 6ビットに収まらずに桁あふれした場合は、 加算結果に 1を加える。
1 9は、 データ格納部 430およびチェックサム格納部 432の内部データ の例を示す。 本図では、 2 8 8ヮードの送信データがデータ格納部 4 3 0に格納 されている。 チェックサム格納部 4 3 2には、 6 4ワードごとにチェックサムの 累積値が格納されている。 たとえば、 送信データの先頭から 6 4ワード目までの チェックサム累積値は 1 6進数で 3 2 1 0であり、 先頭から 1 2 8ワード目まで のチェックサム累積値は 1 6進数で 5 3 3 2である。
図 1 8に戻り、 T C Pパケットの生成手順の説明を続ける。 送信サイズ制御部 4 4 0は、 受信側のバッファの状況や、 バケツト消失等のネットワークの状況を 考慮して、 次に送信すべき T C Pパケットのサイズを決定する。 このとき、 T C Pバケツトのサイズは、 チェックサム累積値を記録した区間の単位長の整数倍に 制限される。 すなわち、 本実施の形態では、 T C Pパケットのサイズは、 6 4ヮ 一ドの整数倍に制限される。 この理由については後で詳述する。
へッダ生成部 4 5 0は、 送信サイズ制御部 4 4 0から、 次に送信すベき T C P バケツトのサイズを取得すると、 そのサイズをもとに送信すべきデータの区間を 決定し、 その区間の直前の区間の最後のチヱックサム累積値と、 その区間の最後 のチェックサム累積値とを、 チェックサム格納部 4 3 2から読み出す。 そして、 それらの差を算出し、 当該区間のチェックサム値を得る。 1の捕数演算において は、 負数を絶対値のビット反転で表現し、 a— b = a + ' b (ただし、 ~ bは b のビット反転を表す) として減算を行う。 ヘッダ生成部 4 5 0は、 このチェック サム値をヘッダ情報に格納し、 その他のヘッダ情報とともに出力する。 パケット 出力部 4 6 0は、 ヘッダ生成部 4 5 0から取得したヘッダ情報を出力した後、 デ ータ格納部 4 3 0から送信サイズ分のデータを読み出して出力する。
図 1 9の例において、 たとえば、 最初に送信する T C Pパケットのサイズが 6 4ワードであったとすると、 そのパケットのチェックサム値は、 3 2 1 O hであ る。 つづいて、 1 4 4ワードのデータ長のパケットを送信可能であったとする。 このとき、 送信サイズ制御部 4 4 0は、 チヱックサム累積値を記録した区間の単 位長の整数倍で、 かつ、 送信可能なパケットのサイズを超えないサイズを、 次に 送信する T C Pパケットのサイズとする。 ここでは、 1 4 4を超えない最大の 6 4の倍数、 すなわち 1 2 8ワードとなる。 次に送信すべきデータ 4 3 0 bおよび 4 3 0 cのチェックサム値は、 その区間の最後のチェックサム累積値である 7 6
5 4 hから、 その区間の直前の区間 4 3 0 aの最後のチェックサム累積値である 3 2 1 0 hを減じた値、 すなわち 4 4 4 4 hとなる。
データを送信すると、 データサイズ格納部 4 3 4に保持している未送信データ サイズの値から、 送信したデータのサイズを減じる。 送信サイズ制御部 4 4 0が 決定した T C Pバケツトのデータサイズが、 未送信データのサイズよりも大きい 場合は、 データサイズ格納部 4 3 4に保持されたデータサイズがヘッダ生成部 4
5 0に出力される。 このとき、 ヘッダ-生成部 4 5 0は、 データ全体のチェックサ ム累積値から、 直前に送信'したデータ区間の最後のチェックサム累積値を減じて、 送信パケットのチェックサム値を得る。
このように、 予め所定長ごとにチェックサム累積値を算出して保持しておき、 その累積値を利用してバケツトのチェックサムを算出するので、 チェックサムの 算出に要する時間を大幅に短縮することができ、 バケツトサイズが確定してから パケットを送出するまでの遅延時間を削減することができる。 これは、 通話音声 などリアルタイム性が要求されるデータを送受信する際に、 とくに有効である。 チェックサム累積値を記録する単位区間のサイズは、 送信側および受信側の装 置の性能や、 ネットワークの性能などを考慮して設計すればよい。 ネットワーク 上の通信がある程度の不確実性を伴うのは不可避であり、 また、 必要以上に小さ いサイズのバケツトで通信を行うことは非効率的であるから、 送信するバケツト のサイズを、 たとえば 6 4ワードの整数倍に制限したとしても支障はない。 6 4 ヮードごとにチェックサム累積値を格納する場合、 チェックサム格納部 4 3 2の 容量は、 全てのデータについてチェックサム累積値を保持しておく場合に比べて、
6 4分の 1ですむ。 また、 パケットのチェックサムを算出するためにメモリから 読み出すデータは、 バケツトデータの前後のチヱックサム累積値に対応する 2ヮ —ドですむため、 データ格納部 4 3 0とチェックサム格納部 4 3 2とを物理的に 分割された 2種類のメモリにより実現する必要はなく、 1つにまとめてもよレ、。 すなわち、 メモリに対する制約が小さい。
上述の方法は、 ソフトウェアによっても実現できるが、 より高速化を図るため に TCPおよび UDPのための処理を専用のハードウエアにより実現する場合に、 本方法を適用すれば、 メモリアクセスのオーバーヘッドが改善され、 より有効に 処理の高速化に寄与することができる。
次に、 UD Pパケットを生成する手順について説明する。 CPU1 10など力、 らデータ入力部 4 1 0を介して入力されたデータは、 データ格納部 430に格納 されるとともに、 チェックサム算出部 420に送られる。 UDPの場合は、 送信 するバケツトのサイズが予め指定されるので、 所定の区間ごとにチェックサム累 積値を保持しておく必要はなく、 バケツト全体のチェックサムを算出してチエツ クサム格納部 432に保持する。 ヘッダ生成部 450は、 次に送信すべき UDP バケツトのチェックサム値をチヱックサム格納部 432から読み出してヘッダ情 報に格納し、 その他のヘッダ情報とともに出力する。 パケット出力部 460は、 ヘッダ生成部 450から取得したヘッダ情報を出力した後、 データ格納部 430 からデータを読み出して出力する。
このように、 本実施の形態によれば、 TC Pと UD Pのパケット生成処理のた めの構成を別個に設ける必要はなく、 同じ構成により双方のパケットを生成して 送信することができる。
TCPによりデータを送信する場合であっても、 最初に送信すべきバケツトの サイズがデータサイズよりも大きい場合には、 一度に全てのデータを送信可能で あるから、 減算によりチェックサム値を算出する必要はなく、 データ全体のチェ ックサム値がパケットのチェックサム値となる。
図 20は、 本実施の形態におけるチェックサム算出方法の手順を示すフローチ ヤートである。 CPU 1 1 0などからデータ入力部 41 0を介して送信データが 入力されると (S 400) 、 チヱックサム算出部 420は、 入力されたデータの 先頭からのチェックサムの累積値を算出し、 所定長ごとに、 算出された累積値を 出力してチェックサム格納部 432に保持する (S 402) 。 ヘッダ生成部 45 0は、 送信サイズ制御部 440から、 次に送信すべき TCPパケットのサイズを 取得すると (S 404) 、 そのサイズをもとに送信すべきデータの区間を決定し、 その区間の直前のデータまでのチェックサム累積値と、 その区間の最後のデータ までのチェックサム累積値とを、 チェックサム格納部 432から読み出す (S 4 06) 。 そして、 それらの差を算出し、 当該区間のチェックサム値を得る (S 4 08) 。 パケット出力部 460は、 ヘッダ生成部 450から取得したチヱックサ ムを含むヘッダ情報を送信し (S 41 0) 、 さらにデータ格納部 430から送信 サイズ分のデータを読み出して送信する (S 412) 。 送信データが残っている 場合は (3414の1^) 、 S 404に戻り、 パケットを生成して送信する手順を 繰り返す。 全てのデータを送信すると (341 4の丫) 、 処理を終了する。
実施の形態では、 インターネット電話装置を例にとって説明したが、 本実施の 形態の技術は、 コンピュータ、 携帯電話、 デジタルカメラ、 ビデオ装置など、 デ ータを送受信する通信装置全般に利用可能である。 また、 一連のデータ列につい て、 先頭からのチェックサム累積値を複数箇所に埋め込む技術は、 通信に限らず、 データを記録する装置全般に利用可能である。
TCPZUDP処理部 400を実現するための回路およびメモリを、 一つの半 導体基板上に搭載してもよい。 さらに、 I P処理部 1 78、 コーデック処理部 1 40、 CPU 1 1 0、 セキュリティ処理部などの回路を搭載してもよい。 これに より、 通信装置の小型化、 軽量化、 高速化を図ることができる。
本実施の形態によれば、 データのチェックサムの算出に要する時間を短縮する 技術を提供することができる。 また、 高速なチェックサム算出に要するハードウ エアの規模を削減する技術を提供することができる。
以上、 本発明を実施の形態をもとに説明した。 この実施の形態は例示であり、 それらの各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、 またそうした変形例も本発明の範囲にあることは当業者に理解されるところであ る。
上述の説明では、 主に電話装置を例にとって説明したが、 実施の形態において 説明した技術は、 コンピュータや携帯電話など、 ストリームデータを送受信する 通信装置全般に利用可能である。 産業上の利用可能性 . 以上のように、 本発明は、 通信装置、 電話装置、 パケット処理装置などに利用可能 である。

Claims

請求 の 範 囲
1 . ネットワークを介して送られたパケットを受信する受信部と、
受信したパケットが、 データの送受信に先立って装置間で接続を確立すること を要する第 1の通信方式により送られたパケットであったとき、 そのパケットを ソフトウエアにより処理するための汎用回路と、
受信したバケツトが、 装置間での接続の確立を要しない第 2の通信方式により 送られたバケツトであったとき、 そのバケツトを処理するための専用回路と、 を備えることを特徴とする通信装置。
2 . ネットワークを介して送られたバケツトを受信する受信部と、
受信したパケットが、 送信パケットの到着確認を行う第 1の通信方式により送 られたパケットであったとき、 そのバケツトをソフトウエアにより処理するため の汎用回路と、
受信したバケツトが、 送信バケツトの到着確認を行わない第 2の通信方式によ り送られたバケツトであったとき、 そのバケツトを処理するための専用回路と、 を備えることを特徴とする通信装置。
3 . ネットワークを介してバケツトを送信する送信部をさらに備え、
送信するパケットが、 前記第 1の通信方式により送られるとき、 そのパケット を前記汎用回路により処理し、
送信するパケットが、 前記第 2の通信方式により送られるとき、 そのパケット を前記専用回路により処理することを特徴とする請求の範囲 1または 2に記載の 通信装置。
4 . 受信したパケットが、 どの通信方式により送られたかを検出する検出部を さらに備えることを特徴とする請求の範囲 1カゝら 3のいずれかに記載の通信装置 c
5 . 前記検出部により、 前記第 1の通信方式により送られたパケットが検出さ れたとき、 前記検出部は、 そのパケットを、 前記汎用回路を介さずに、 直接前記 専用回路へ送ることを特徴とする請求の範囲 4に記載の通信装置。
6 . パケットを構成するデータを暗号化または復号化するセキュリティ処理部 をさらに備えることを特徴とする請求の範囲 1から 5のいずれかに記載の通信装
7 . ネットワークを介して送られたバケツトを受信する受信部と、
受信したバケツトがフラグメント化されたバケツトであったとき、 そのバケツ トをソフトウエアにより処理するために汎用回路へ送り、 受信したバケツトがフ ラグメント化されていないバケツトであったとき、 そのバケツトをハードウエア により処理するために第 1の専用回路へ送る第 1の判別部と、
を備えることを特徴とする通信装置。
8 . 前記第 1の専用回路により処理したパケットが、 データの送受信に先立つ て装置間で接続を確立することを要する第 1の通信方式により送られたバケツト であったとき、 そのパケットを前記汎用回路に送り、 前記第 1の専用回路により 処理したバケツトが、 装置間での接続の確立を要しない第 2の通信方式により送 られたパケットであったとき、 そのパケットをハードウェアにより処理するため の第 2の専用回路へ送る第 2の判別部をさらに備えることを特徴とする請求の範 囲 7に記載の通信装置。
9 . ネットワークを介して受信したパケットが、 リアルタイムな処理を要する データを含むパケットであるか否かを判別する判別部と、
前記パケットを一時的に保持するバッファと、
前記バッファへの前記パケットの格納を制御する制御部と、 を備え、 前記制御部は、 前記バッファの空き領域が所定のしきい値を下回ったとき、 前 記リアルタイムな処理を要するデータを含むバケツトの前記バッファへの格納を 許可する一方、 リアルタイムな処理を要するデータを含まないバケツトの前記バ ッファへの格納を禁止することを特徴とする通信装置。
1 0 . ネットワークを介して受信したパケットが、 データの送受信に先立って 装置間で接続を確立することを要する第 1の通信方式により送られたパケットで ある力、 装置間での接続の確立を要しない第 2の通信方式により送られたパケッ トであるかを判別する判別部と、
前記バケツトを一時的に保持するバッファと、
前記バッファへの前記パケットの格納を制御する制御部と、 を備え、 前記制御部は、 前記バッファの空き領域が所定のしきい値を下回ったとき、 前 記第 2の通信方式により送られたパケットの前記バッファへの格納を許可する一 方、 前記第 1の通信方式により送られたバケツトの前記バッファへの格納を禁止 することを特徴とする通信装置。
1 1 . ネットワークを介して受信したバケツトの種別を判別する判別部と、 前記バケツトを一時的に保持するバッファと、
前記バッファへのパケットの格納を制御する制御部と、 を備え、
前記制御部は、 前記バッファへのバケツトの格納の許否を判定するためのしき い値をパケッ トの種別に応じて複数保持し、 前記バッファの空き領域がしきい値 を下回ったバケツト種別のバケツトの前記バッファへの格納を禁止することを特 徴とする通信装置。
1 2 . リアルタイムな処理を要するパケットの種別のしきい値を、 リアルタイ ムな処理を要しないバケツトの種別のしきい値よりも低く設定したことを特徴と する請求の範囲 1 1に記載の通信装置。
1 3 . 音声を入力する入力部と、 前記入力部により入力された音声を他の装置へ送信し、 他の装置から音声を受 信する通信部と、
他の装置から受信した音声を出力する出力部と、 を備え、
前記通信部は、
ネットワークを介して送られたバケツトを受信する受信部と、
受信したバケツトの通信方式を検出する検出部と、
前記通信方式が、 データの送受信に先立って装置間で接続を確立することを要 する第 1の通信方式であったとき、 そのパケットをソフトウエアにより処理する ための汎用回路と、
前記通信方式が、 装置間での接続の確立を要しない第 2の通信方式であつたと き、 そのパケットを処理するための専用回路と、 を含み、
前記音声を前記第 2の通信方式により送受信することを特徴とする電話装置。
1 4 . 画像および音声を入力する入力部と、
前記入力部により入力された画像および音声を他の装置へ送信し、 他の装置か ら画像および音声を受信する通信部と、
他の装置から受信した画像および音声を出力する出力部と、 を備え、 前記通信部は、
ネットワークを介して送られたバケツトを受信する受信部と、
受信したパケットの通信方式を検出する検出部と、
前記通信方式が、 データの送受信に先立って装置間で接続を確立することを要 する第 1の通信方式であったとき、 そのバケツトをソフトウエアにより処理する ための汎用回路と、
前記通信方式が、 装置間での接続の確立を要しない第 2の通信方式であつたと き、 そのパケットを処理するための専用回路と、 を含み、
前記画像おょぴ音声を前記第 2の通信方式により送受信することを特徴とする ビデオ電話装置。
1 5 . 画像を撮像する撮像部と、
前記撮像部により撮像された画像を他の装置へ送信し、 他の装置から画像を受 信する通信部と、 を備え、
前記通信部は、
ネットワークを介して送られたバケツトを受信する受信部と、
受信したパケットの通信方式を検出する検出部と、
前記通信方式が、 データの送受信に先立って装置間で接続を確立することを要 する第 1の通信方式であったとき、 そのバケツトをソフトウエアにより処理する ための汎用回路と、 ,
前記通信方式が、 装置間での接続の確立を要しない第 2の通信方式であつたと き、 そのパケットを処理するための専用回路と、 を含み、
前記画像を前記第 2の通信方式により送受信することを特徴とする撮像装置。
1 6 . パケットを受信したときに、 そのパケットの通信方式を検出する工程と, 前記通信方式に応じて、 そのパケットを処理すべき回路にパケットのデータを 送る工程と、
を含むことを特徴とする通信方法。
1 7 . 前記検出する工程は、 パケットのヘッダを解析することにより、 フラグ メント化されたパケットであるか、 フラグメント化されていないパケットである かを検出し、
前記データを送る工程は、 前記フラグメント化されたバケツトを、 ソフトゥェ ァ処理するための汎用回路に送り、 前記フラグメント化されていないバケツトを、 そのバケツトを処理するための専用回路に送ることを特徴とする請求の範囲 1 6 に記載の通信方法。
1 8 . 前記検出する工程は、 パケットのヘッダを解析することにより、 データ の送受信に先立って装置間での接続の確立を要する第 1の通信方式によるバケツ トであるか、 装置間での接続の確立を要しない第 2の通信方式によるバケツトで あるかを検出し、
前記データを送る工程は、 前記第 1の通信方式によるパケットを、 ソフトゥェ ァ処理するための汎用回路に送り、 前記第 2の通信方式によるパケットを、 その パケットを処理するための専用回路に送ることを特徵とする請求の範囲 1 6に記 載の通信方法。
1 9 . リアルタイム性を要しないデータは、 前記第 1の通信方式により送受信 する一方、 リアルタイム性を要するストリームデータは、 前記第 2の通信方式に より送受信することを特徴とする請求の範囲 1 6から 1 8のいずれかに記載の通 信方法。
2 0 . パケットを受信したときに、 そのパケットの種別を検出する工程と、 前記種別ごとに設定された条件に基づいて、 バケツトを一時的に保持するバッ ファへのそのバケツトの格納の許否を判断する工程と、
格納が許可されたときに、 そのバケツトを前記バッファへ格納する工程と、 格納が許可されなかったときに、 そのパケットを破棄する工程と、
を含むことを特徴とする通信方法。
2 1 . ネットワークを介して取得したパケットを一時的に保持するバッファと、 前記バケツトの前記バッファへの格納を制御する書き込み制御部と、 を備え、 前記書き込み制御部は、 前記パケットのヘッダ情報のうち、 送信先アドレス情 報を破棄して前記受信バッファに格納することを特徴とするバケツト処理装置。
2 2 . 前記書き込み制御部は、 前記送信先アドレス情報に代えて、 そのバケツ トがュ二キャスト、 マルチキャスト、 ブロードキャストのいずれで送信されたか を示す送信種別情報を含む管理情報を格納することを特徴とする請求の範囲 2 1 に記載のバケツト処理装置。
2 3 . 前記管理情報は、 パケットの種別を示すパケット種別情報、 および次の パケットの格納位置を示すァドレス情報をさらに含むことを特徴とする請求の範 囲 2 2に記載のパケット処理装置。
2 4 . 前記書き込み制御部は、 前記管理情報を 1ヮードにおさめ、 後続のデー タをヮ一ド単位で整形して前記バッファに格納することを特徴とする請求の範囲 2 2または 2 3に記載のバケツト処理装置。
2 5 . ネットワークを介して取得したパケットを一時的に保持するバッファと、 前記バケツトの前記バッファからの読み出しを制御する読み出し制御部と、 を 備え、
前記パケットのへッダ部分にはそれぞれ独立したレジスタを割り当ててランダ ムアクセスを可能とする一方、 前記バケツトのデータ部分はアクセスポートレジ スタを介して読み出しを行うように構成したことを特徴とするパケット処理装置 c
2 6 . 前記読み出し制御部は、 読み出すパケットの種別に応じて、 前記ァクセ スポートレジスタが読み出しを開始する位置を設定することを特徴とする請求の 範囲 2 5に記載のパケット処理装置。
2 7 . 前記パケットを前記バッファに格納する前に、 そのヘッダ情報を解析す ることにより不要なパケットを破棄するへッダ解析部と、 . 前記バケツトを前記バッファに格納する前に、 そのチヱックサムを算出して、 へッダに格納されたチェックサム値と一致するか否かを検証するチェックサム算 出部と、 をさらに備えることを特徴とする請求の範囲 2 5または 2 6に記載のパ ケット処理装置。
2 8 . 音声を入力する入力部と、 前記入力部により入力された音声を他の装置へ送信し、 他の装置から音声を受 信する通信部と、
他の装置から受信した音声を出力する出力部と、 を備え、
前記通信部は、
ネットワークを介して送られたバケツトを受信する受信部と、
受信したバケツトを処理するバケツト処理部と、 を含み、
前記バケツト処理部は、
前記バケツトを一時的に保持するバッファと、
前記パケットの前記バッファへの格納を制御する書き込み制御部と、 を含み、 前記書き込み制御部は、 前記パケットのへッダ情報のうち、 送信先アドレス情 報を破棄して前記受信バッファに格納することを特徴とする電話装置。
2 9 . 音声を入力する入力部と、
前記入力部により入力された音声を他の装置へ送信し、 他の装置から音声を受 信する通信部と、
他の装置から受信した音声を出力する出力部と、 を備え、
前記通信部ほ、
ネットワークを介して送られたバケツトを受信する受信部と、
受信したバケツトを処理するバケツト処理部と、 を含み、
前記パケット処理部は、
前記パケットを一時的に保持するバッファと、
前記バケツトの前記バッファからの読み出しを制御する読み出し制御部と、 を 含み、
前記パケットのへッダ部分にはそれぞれ独立したレジスタを割り当ててランダ ムアクセスを可能とする一方、 前記パケットのデータ部分はアクセスポートレジ スタを介して読み出しを行うように構成したことを特徴とする電話装置。
3 0 . パケットを受信したときに、 そのパケットをバッファに一時的に格納す る工程と、
前記格納する工程に先立って、 前記パケットのヘッダ情報のうち、 送信先アド レス情報を破棄する工程と、
を含むことを特徴とするバケツト処理方法。
3 1 . 所定のタイミングでデータ長が確定するデータプロックにチェックサム を与えるために、 前記タイミングに先立って、 前記データブロックを含むデータ ュニットの所定長ごとに、 前記データュニットの先頭からのチェックサムの累積 値を算出して記憶装置に保持することを特徴とするチェックサム算出方法。
3 2 . 前記データブロックのデータ長が確定したあと、 そのデータブロックの 前後の前記累積値を前記記憶装置から読み出して、 そのデータプロックのチェッ クサムを算出することを特徴とする請求の範囲 3 1に記載のチェックサム算出方 法。
3 3 . 前記データブロックの直前のデータまでのチェックサムの累積値と、 前 記データブロックの最後のデータまでのチェックサム累積値とを前記記憶装置か ら読み出し、 それらの差を算出して、 そのデータブロックのチェックサムとする ことを特徴とする請求の範囲 3 2に記載のチェックサム算出方法。
3 4 . 所定のタイミングでデ一タ長が確定するデータブ口ックにチェックサム を与えるために、 前記タイミングに先立って、 前記データブロックを含むデータ ュ-ットを所定長に分割し、 その各部分ごとにチェックサム値を算出して記憶装 置に保持することを特徴とするチ ックサム算出方法。
3 5 . 前記データブロックのデータ長は、 前記所定長の整数倍になるよう制限 されることを特徴とする請求の範囲 3 1から 3 4のいずれかに記載のチヱックサ ム算出方法。
3 6 . あるデータユニットの複数の箇所について、 データユニットの先頭から その箇所までのチェックサム値を算出して保持することを特徴とするチヱックサ ム記録方法。
3 7 . データユニットの入力を受け付ける入力部と、
前記データュニットの先頭からのチェックサムの累積値を算出する算出部と、 前記データュニットの所定長ごとに、 前記累積値を保持する保持部と、 を備えることを特徴とする通信装置。
3 8 . 前記データュニットを複数のデータプロックに分割し、 ネットワークを 介して送出する出力部と、
次に送出するデータプロックのサイズを制御するサイズ制御部と、
次に送出するデータブロックのサイズを取得して、 そのデータプロックの前後 の前記累積値を前記保持部から読み出し、 そのデータブロックのチェックサムを 算出する第 2算出部と、
をさらに備えることを特徴とする請求の範囲 3 7に記載の通信装置。
3 9 . 前記保持部は、 送出するデータブロックのサイズが予め定まっていない 通信方式でデータユニットを送出する場合は、 所定長ごとに、 そのデータュニッ トの先頭からのチヱックサムの累積値を保持し、 送出するデータプロックのサイ ズが予め定まっている通信方式でデータュニットを送出する場合は、 そのデータ ュニット全体のチヱックサムを保持することを特徴とする請求の範囲 3 8に記載
PCT/JP2003/012166 2002-09-30 2003-09-24 通信装置及びその応用 WO2004036865A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AU2003266582A AU2003266582A1 (en) 2002-09-30 2003-09-24 Communication device and application thereof
KR1020047014902A KR100753734B1 (ko) 2002-09-30 2003-09-24 통신 장치 및 그 응용
CN038124793A CN1656767B (zh) 2002-09-30 2003-09-24 通信装置及其应用
US11/003,982 US7843968B2 (en) 2002-09-30 2004-12-06 Communication apparatus and applications thereof

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2002-287870 2002-09-30
JP2002287870 2002-09-30
JP2002315085A JP3524914B1 (ja) 2002-10-29 2002-10-29 チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置
JP2002-315085 2002-10-29
JP2003005101A JP3557202B2 (ja) 2002-09-30 2003-01-10 通信装置、通信方法、およびその方法を利用可能な電話装置、ビデオ電話装置、撮像装置
JP2003-005100 2003-01-10
JP2003005100A JP3557201B2 (ja) 2003-01-10 2003-01-10 パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置
JP2003-005101 2003-01-10

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US10528977 A-371-Of-International 2003-09-22
US11/003,982 Continuation US7843968B2 (en) 2002-09-30 2004-12-06 Communication apparatus and applications thereof
US11/978,429 Continuation US7653295B2 (en) 2002-09-30 2007-10-29 Collapsible lens barrel and optical instrument using the same

Publications (1)

Publication Number Publication Date
WO2004036865A1 true WO2004036865A1 (ja) 2004-04-29

Family

ID=32110946

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/012166 WO2004036865A1 (ja) 2002-09-30 2003-09-24 通信装置及びその応用

Country Status (4)

Country Link
KR (3) KR100790673B1 (ja)
CN (1) CN1656767B (ja)
AU (1) AU2003266582A1 (ja)
WO (1) WO2004036865A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401805A (zh) * 2007-03-29 2013-11-20 威盛电子股份有限公司 网络装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001339462A (ja) * 2000-05-29 2001-12-07 Toshiba Corp 通信プロトコル処理方法および通信プロトコル処理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU769419B2 (en) * 1999-08-04 2004-01-29 Telefonaktiebolaget Lm Ericsson (Publ) An IP based telephone system
FR2797543B1 (fr) * 1999-08-12 2004-04-09 Cit Alcatel Procede pour faire communiquer un utilisateur avec au moins une base de donnees

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001339462A (ja) * 2000-05-29 2001-12-07 Toshiba Corp 通信プロトコル処理方法および通信プロトコル処理装置

Also Published As

Publication number Publication date
KR20070045338A (ko) 2007-05-02
KR100790673B1 (ko) 2008-01-02
AU2003266582A1 (en) 2004-05-04
KR20070091232A (ko) 2007-09-07
CN1656767A (zh) 2005-08-17
KR100753734B1 (ko) 2007-08-31
CN1656767B (zh) 2010-05-05
KR20040091769A (ko) 2004-10-28
KR100899923B1 (ko) 2009-05-28

Similar Documents

Publication Publication Date Title
US7843968B2 (en) Communication apparatus and applications thereof
US9118649B2 (en) Method and system for an electronic device with integrated security module
US8799741B2 (en) Method of transmitting ethernet frame in network bridge and the bridge
US20080310411A1 (en) Communication apparatus and integrated circuit for communication
WO2022126315A1 (zh) 数据传输方法和数据传输设备
JP3524914B1 (ja) チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置
JP3796251B2 (ja) 通信装置
JP3557202B2 (ja) 通信装置、通信方法、およびその方法を利用可能な電話装置、ビデオ電話装置、撮像装置
JP3557201B2 (ja) パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置
WO2004036865A1 (ja) 通信装置及びその応用
KR20140070896A (ko) 비디오 스트리밍 방법 및 그 전자 장치
JP2013051565A (ja) 通信端末装置、通信制御方法、及び通信制御プログラム
JP4514487B2 (ja) パケット処理装置
CN114666776A (zh) 数据发送方法、装置、设备和可读存储介质
JP2005269134A (ja) 構内交換機
JP2007195240A (ja) パケット処理装置、通信装置
JP2004236351A (ja) 通信方法、通信装置
KR100502270B1 (ko) 패킷 통신장치
JP2004173332A (ja) 通信装置
JP2005123985A (ja) 通信装置及び通信方法
JP2005167458A (ja) 音声画像伝送方法
JP2012049883A (ja) 通信装置およびパケット処理方法
KR100283173B1 (ko) 보코더의 지터 처리 버퍼링 방법
JP2005341107A (ja) パケット送受信装置
JP4201719B2 (ja) 通信装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020047014902

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020047014902

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 20038124793

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 11003982

Country of ref document: US

122 Ep: pct application non-entry in european phase