Abstract:
A data transmission apparatus in which the bandwidth necessary for an application is determined and is communicated to a transmission interval counting function. The transmission interval counting function determines a transmission interval according to the necessary bandwidth and effects transmit control on a transmission unit transmitting function with timing set at this transmission interval so as to transfer data in a desired bandwidth. Owing to the above construction, even when a plurality of types of applications for transmitting data at desired times exist and they perform data transmissions while sharing the use of a network, the contention between the data transmissions in the network can be prevented from occurring. This prevents data losses and delays in data transmission from increasing.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a data transmission apparatus for controlling contention between data transmissions when a plurality of types of applications for transmitting data at arbitrary times exist and they transmit the data while sharing the use of a network. 
     2. Description of the Related Art 
     A plurality of applications generally operates on the same network. FIG. 1 is a diagram for describing the use condition of such applications. In the same drawing, a plurality of data transmission apparatuses 101 are electrically connected to a transmitting medium 100. Applications such as print, electronic mails, file transfer, telnets, etc. make use of the transmitting medium 100 through the data transmission apparatuses 101. Of these applications, applications incapable of predicting the condition of its own data transmission also exist as in the case of, for example, a telnet and an electronic mail in which human interaction serves as a source for the transmission of data. Thus, in such a network, a plurality of terminals start to transmit data at arbitrary times and there is a probability of occurrence of the contention between data transmissions. 
     The contention between the data transmissions will first be explained with reference to FIG. 2. Each terminal transmits data through a transmitting medium constituting a network. A transmission rate indicative of the capability of transmission of data is expressed in the form of the amount of transmitted data per unit time. The transmission bandwidth of the transmitting medium has its limitations and the maximum transmission bandwidth (hereinafter called &#34;Rmax (bit/sec)&#34;) thereof is a fixed finite value. 
     The transmission rate (hereinafter called &#34;r(t)&#34;) at which the bandwidth is used for the transmission of data by each application, shares the use of a network by using Rmax in divided form. r(t) changes every moment. When the sum of r(t): Σr(t) is greater than Rmax of the transmitting medium, a struggle for the common bandwidth occurs between respective data transmissions. This will be referred to as &#34;contention&#34;. 
     Data, which needs a bandwidth exceeding Rmax, will be lost without transmission. In order to avoid the loss of the data, control for avoiding the contention, i.e., contention control is performed. 
     The conventional contention control will next be described. In general, each of transmitting stations puts predetermined amounts of data together into a transmission unit and transmits the data for each transmission unit. A packet or cell or the like is known as the transmission unit. When respective data transmissions contend with each other at a transmitting medium upon execution of the respective data transmissions, the occurrence of its contention is notified tothetransmitting stations forperformingthe individualdata transmissions. Each of such transmitting stations extends a transmission interval of the continuous transmission unit so as to reduce r(t). As a result, Σr(t) becomes smaller than Rmax, so that the loss of the data can be avoided. As typical techniques for contention control, there ares known a CSMA/CD (Carrier Sense Multiple Access/Collision Detection) system of Ethernet (Trademark of Xerox Corporation), a system using a RM cell (Resource Management Cell) employed in ABR (Available Bit Rate) service of an ATM (Asynchronous Transfer Mode), etc. 
     Features of the prior art will next be explained. In the conventional contention control technique, Rmax is available without any waste because the bandwidth is dynamically distributed to a transmission actually using the bandwidth. On the one hand, however, a bandwidth available for transmission at a given time t is-expressed as R(t)=|Rmax -Σr(t)|. On the other hand, it is necessary to control a bandwidth r (t) used for transmission and control |R(t)-r(t)| so as to approach zero. At this time, there may be a case in which r(t) is controlled excessively and deficiently as shown in FIG. 3. 
     Where R(t)-r(t)&gt;0 (excessively large in controlled variable) 
     The contention occurs for the transmission bandwidth. In general, the excess of the controlled variable is absorbed by buffering data before and after the use of a transmitting medium and averaging used bandwidths on a time basis. However, when the amount of data producedndue to the excess of the controlled variable is greater than the amount of buffering, the data will be lost. Even when a buffer length is sufficiently long, a delay in the data transmission due to the buffering increases. 
     Where R(t)-r(t)&lt;0 (excessively small in controlled variable): 
     A bandwidth unused for transmission occurs and hence the utilization efficiency of the bandwidth is reduced. 
     The reason why r(t) is controlled excessively or deficiently, will next be described. 
     A distance L exists between a point where r(t)-r(t) is observed and a point where r(t) is controlled in accordance with notification of observations results. Upon the propagation of the notification between the two, a delay of Δt=(light velocity c×distance L) exists even at the minimum. Namely, r(t) is always controlled in accordance with R(t)-r(t) preceding Δt. Thus, since Δt≠0 even if the accurate observation or notification is made, it is impossible to perform control for satisfying |R(t)-r(t)|=0. 
     In the conventional contention control technique as described above, the longer the distance of a transmission path is, the wider a control error of |R(t)-r(t)| becomes. As the transmission rate Σr(t) approaches Rmax of the transmission bandwidth, no margin of absorption of the control error of |R(t)-r(t)| is given, so that a data loss and a data transmission delay increase due to the occurrence of contention. 
     Meanwhile, the bandwidth and the amount of data to be transmitted, which are necessary for the establishment of an application, differ according to the type of application. For example, a telnet needs a bandwidth for transmitting a few hundred Bytes in several seconds, an electronic mail needs a bandwidth for transmitting a few KBytes in a few minutes, and print needs a bandwidth for transmitting a few hundred KBytes in a few seconds. Thus, since the data transmitted from each application is several hundred Bytes or more and is sufficiently larger than the transmission unit, it is divided into plural transmission units, which are continuously transmitted. Since an apparatus for actually transmitting data or a transmission protocol permits the transmission of data of any applications, there has normally been a demand for the transmission of data as high in speed as possible according to applications requiring broad bandwidths. Therefore, the transmission interval for each transmission unit tends to be narrowed unlimitedly and r(t) comes to reach Rmax. 
     In the conventional contention control technique, a problem occurs such that if plural terminals starts to transmit data at the rates reaching Rmax, the data loss and the delay in the data transmission increase as described above. 
     With the notification of the contention, the r(t) decreasing operation is evenly effected on all the transmitting stations without regard to the type of application. Thus, once dathe contention occurs, the problem of a great reduction in quality arises in the applications requiring large transmission bandwidth, such as a printing application. 
     SUMMARY OF THE INVENTION 
     With the foregoing in view, it is therefore an object of the present invention to previously prevent the occurrence of contention between data transmissions and prevent increases in data loss and data transmission delay even when plural types of applications for transmitting data at arbitrary times exist and they perform the data transmissions while sharing a network. 
     According to the present invention, for achieving the above object, each of transmitting stations controls the use of a bandwidth prior to the transmission of data in conformity to a bandwidth necessary for each application to thereby avoid undesired contention between the data transmissions. 
     That is, according to the present invention, a data transmission apparatus is provided with necessary bandwidth recognizing means for recognizing transmission bandwidths necessary for each of applications, and data transmitting means for adjusting a transmit interval for each continuous transmission unit so as to provide a transmission bandwidth necessary for a corresponding application upon the transmission of data by the application. 
     According to the construction referred to above, assignment can be controlled so as to allocate a small bandwidth, for example, corresponding to the applications, so that the contention for the bandwidth can be restrained. 
     In the above-described construction as well, the transmission bandwidth necessary for the application may be determined depending on the type of protocol, the input of the application by a user or the throughput of the application. 
     When plural applications transmit data simultaneously, the bandwidth necessary for the above application can be determined according to the type of protocol or a connection number. Further, the use of the connection number can be applied even at the case in which the plural applications simultaneously use the same protocol. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a diagram for describing a configuration of a network in which a plurality of applications are operated; 
     FIG. 2 is a diagram for describing contention between transmissions in the network shown in FIG. 1; 
     FIG. 3 is a diagram for describing errors occurring in transmission control of the network; 
     FIG. 4 is a block diagram showing a basic configuration of the present invention; 
     FIG. 5 is a block diagram illustrating data transmitting means employed in a first embodiment of the present invention; 
     FIG. 6 is a diagram for describing the operation of the data transmitting means shown in FIG. 5; 
     FIG. 7 is a block diagram depicting a configuration of necessary bandwidth recognizing means employed in the first embodiment; 
     FIG. 8 is a diagram for describing a data recognizing function of the necessary bandwidth recognizing means employed in the first embodiment shows a construction of data to be transmitted; 
     FIG. 9 is a diagram showing a specific construction of the transmitted data shown in FIG. 8; 
     FIG. 10 is a diagram for explaining a necessary bandwidth storing function of the necessary bandwidth recognizing means employed in the first embodiment; 
     FIG. 11 is a block diagram showing a configuration of data transmitting means employed in a second embodiment of the present invention; 
     FIG. 12 is a diagram for describing the operation of the data transmitting means shown in FIG. 11; 
     FIG. 13 is a block diagram illustrating a configuration of necessary bandwidth recognizing means employed in the second embodiment; 
     FIG. 14 is a diagram for describing connection numbers for data identifying means of the necessary bandwidth recognizing means employed in the second embodiment; 
     FIG. 15 is a diagram for describing the data identifying means of the necessary bandwidth recognizing means employed in the second embodiment; and 
     FIG. 16 is a diagram for describing a necessary bandwidth storing function of the necessary bandwidth recognizing means employed in the second embodiment. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     A configurational example of the principle of the present invention will first be described. FIG. 4 shows the configurational example of the principle of the present invention. In the drawing, a data transmission apparatus or equipment has data transmitting means 1 and a necessary bandwidth recognizing means 2. The necessary bandwidth recognizing means 2 corresponds to means for recognizing a transmission bandwidth necessary for each application. The necessary bandwidth recognizing means 2 notifies the result of recognition to the data transmitting means 1. The data transmitting means 1 adjusts a transmit interval for each of the continuous transmission units so as to become the bandwidth notified from the necessary bandwidth recognizing means 2 upon the transmission of data of the corresponding application and transmits the so-processed data therefrom. 
     Preferred embodiments of the present invention will hereinafter be described in more details with reference to the accompanying drawings. 
     [First Embodiment] 
     FIG. 5 shows a configuration of a first embodiment with data transmitting means 1 principally as the center. In FIG. 5, a data transmission equipment or apparatus according to the first embodiment has the data transmitting means 1 and a necessary bandwidth recognizing means 2. The data transmitting means 1 has a transmission unit transmitting function 11 and a transmission interval counting function 12. In the present embodiment, the transmission unit transmitting function 11 is used to transmit a transmission unit of a fixed length p (bit). This transmission unit corresponds to, for example, a RM cell for ATM transmission. 
     The transmission unit transmitting function 11 divides transmission data a inputted thereto from an application into transmission units and sends each divided transmission unit to a transmitting medium according to a signal b for each transmission unit. Each transmission unit is sent to the transmitting medium by each start signal c delivered from the transmission interval counting function 12. The transmission unit transmitting function 11 notifies a transmission end signal d to the transmission interval counting function 12 each time the sending of the transmission unit is completed. 
     The transmission interval counting function 12 starts to count the time that elapses after the transmit end signal d was received. After the transmission interval counting function 12 has counted the time m (sec), it notifies a start signal c to the transmission unit transmitting function 11. A clock for counting may be arbitrarily selected. A transmitting clock for the transmitting medium or a receiving clock introduced from the transmitting medium or the like is available as the clock, for example. 
     A description will next be made of how to determine the time m (sec). The necessary bandwidth recognizing means 2 notifies a required or necessary bandwidth B (bit/sec) to the transmission interval counting function 12 through a signal e. Assuming now that the transmission unit length is defined as the fixed length p (bit) and the maximum bandwidth of the transmitting medium is defined as Rmax (bit/sec), m (sec) is given by the following equation: 
     
         m=(p/B)-(p/Rmax) 
    
     The above-described operation will be explained with reference to a timing chart shown in FIG. 6. The transmission unit transmitting function 11 that has received a direction of transmission start therein through the signal c, sends data corresponding to the p (bit) therefrom. When the transmission unit transmitting function 11 notifies a transmission end to the transmission interval counting function 12 through the signal d after having sent the data, the transmission interval counting function 12 counts m (sec) and notifies the transmission start to the transmission unit transmitting function 11 through the signal c. This operation is repeated subsequently. 
     An example of a configuration of the necessary bandwidth recognizing means 2 will next be described with reference to FIG. 7. The necessary bandwidth recognizing means 2 has a data identifying function 21 and a necessary bandwidth storing function 22. The data identifying function 21 monitors the transmission data a delivered from the application and identifies the protocol type of the transmission data a. Thereafter, the data identifying function 21 notifies the result of identification to the necessary bandwidth storing function 22 by a signal g. 
     A method of identifying the protocol type will be described below. Since the transmission data supplied from the application is delivered to a receiving station, using layered protocol functions, the transmission data generally has such a structure as shown in FIG. 8. Namely, information about a layer (N) protocol includes information for specifying a layer (N+1) protocol located above the layer (N) by one layer. For example, FIG. 9 shows a header for TCP/IP as one example of actual transmission data. An IP layer corresponds to a third layer and a TCP layer corresponds to a fourth layer. A field &#34;PROTO&#34; indicative of a protocol used in the fourth layer is defined in the third layer. The position of the field &#34;PROTO&#34; can be specified according to the provisions. When &#34;6&#34; is entered in the field &#34;PROTO&#34;, the protocol employed in the fourth layer indicates TCP. Using such a data structure, the data identifying function 21 checks the transmission data a and identifies based on the result of check whether any of the protocols is used for the transmission data. 
     Since applications such as an electronic mail, a telnet, etc. make use of protocols specialized for the applications, the identification of the protocols is equivalent to the identification of the applications. 
     The necessary bandwidth storing function 22 has already stored therein a table shown in FIG. 10, which is indicative of the correspondence of the type of protocol and the required bandwidth. When the data identifying function 21 notifies the type of protocol to the necessary bandwidth storing function 22 through the signal g, the necessary bandwidth storing function 22 notifies a necessary bandwidth B corresponding thereto to the data transmitting means 1 by a signal e. 
     According to the present embodiment as described above, the type of protocol is judged by monitoring the transmission data delivered from the application and the bandwidth necessary for the data transmission is determined based on the result of judgment. Thus, since a small bandwidth may simply be assigned to an application whose transmission rate may be small, the contention for the bandwidth can be controlled. 
     [Second Embodiment] 
     A second embodiment of the present invention will next be described. A data transmission apparatus according to the second embodiment has also data transmitting means 1 and necessary bandwidth recognizing means 2. FIG. 11 shows one example of a configuration of the data transmitting means on a central basis. In the drawing, the data transmitting means 1 has a transmission unit transmitting function 11, a transmission unit length counting function 13 and a transmission interval counting function 12. In the present embodiment, the transmission unit transmitting function 11 serves so as to transmit a transmission unit of an arbitrary length q (bit). This transmission unit corresponds to, for example, a packet for packet communications. 
     The transmission unit transmitting function 11 divides transmission data a inputted thereto from an application into transmission units and sends each divided transmission unit to a transmitting medium according to a signal b for each transmission unit. Each transmission unit is sent to the transmitting medium each time the transmission unit transmitting function 11 receives a start signal c from the transmission interval counting function 12. The transmission unit transmitting function 11 notifies a transmission end signal d to the transmission unit length counting function 13 each time the sending of the transmission unit is terminated. 
     The transmission unit length counting function 13 starts counting in response to the start signal c and notifies the result of counting based on the transmission end signal d to the transmission interval counting function 12 as the transmission unit length q (bit) by a signal f. As a clock for counting, a transmitting clock for the transmitting medium is utilized. 
     When the transmission interval counting function 12 receives the signal f therein as the transmission unit length q (bit), it starts to count the time. After the time m (sec) has been counted, the transmission interval counting function 12 notifies the start signal c to the transmission unit length counting function 13. A clock for counting may be arbitrarily selected. A transmitting clock for the transmitting medium or a receiving clock introduced from the transmitting medium or the like may be available as the clock. 
     A description will next be made of how to determine the time m (sec). The necessary bandwidth recognizing means 2 notifies a required bandwidth B (bit/sec) to the transmission interval counting function 12 by a signal e. Assuming now that the transmission unit length is defined as q (bit) notified from the transmission interval counting function 12 and the maximum bandwidth of the transmitting medium is defined as Rmax (bit/sec), m (sec) is given by the following equation: 
     
         m=(q/B)-(q/Rmax) 
    
     The above-described operation will be explained with reference to a timing chart shown in FIG. 12. The transmission unit transmitting function 11 that has received a transmit start therein through the signal c, sends data corresponding to the q (bit). Simultaneously with this, the transmission unit length counting function 13 starts to count the length of the transmitted data. After completion of the above transmission, the transmission unit transmitting function 11 notifies a transmission end to the transmission unit length counting function 13 by the signal d. The transmission unit length counting function 13 notifies a counted value at this time to the transmission interval counting function 12 as the transmission unit length q (bit) by the signal f. The transmission interval counting function 12 counts the signal m (sec) using the q (bit) and thereafter notifies the transmission start to the transmission unit transmitting function 11 by the signal c. This operation is repeated subsequently. 
     An example of a configuration of the necessary bandwidth recognizing means 2 will next be described with reference to FIG. 13. Referring to FIG. 13, the necessary bandwidth recognizing means 2 has a data identifying function 21, a necessary bandwidth storing function 22 and a stored-contents updating function 23. 
     The data identifying function 21 monitors transmission data a delivered from an application and identifies a connection number for the transmission data a. Thereafter, the data identifying function 21 notifies the result of identification to the necessary bandwidth storing function 22 by a signal g. The term &#34;connection number&#34; means a number for identifying a logical connection between the transmitting side and the receiving side when each application uses it upon its data transmission. That is, since the type of protocol cannot draw a distinction between the same types of applications when the same types of applications transmit data simultaneously as shown in FIG. 14, the connection numbers are used to make a distinction between the data transmissions. 
     Since these connection numbers are normally dynamically allocated from vacant numbers before transmitting, they are changed per every data transmission. As shown in FIG. 15, the position of each connection number can be specified based on the provisions or rules. Thus, the data identifying function 21 checks the transmission data a to identify whether the transmission data a has any one of the connection numbers. 
     As examples of the connection numbers,there are known a port number in an TCP, an IP address in an IP, VPI/VCI (Virtual Path Identification/Virtual Channel Identification) in ATM. The connection numbers will be explained specifically using the example of FIG. 9 referred to above. FIG. 9 shows the header for TCP/IP as one example of the actual transmission data. In the drawing, fields for a &#34;SOURCE PORT&#34; and a &#34;DESTINATIONPORT&#34; used by status shift protocols are defined in an TCP layer. The positions of the fields for these &#34;SOURCE PORT&#34; and &#34;DESTINATION PORT&#34; can be specified/according to the rules. Further, fields for a &#34;SOURCE ADDRESS&#34; and a &#34;DESTINATION ADDRESS&#34; are defined in an IP layer. The positions of the fields for these &#34;SOURCE ADDRESS&#34; and &#34;DESTINATION ADDRESS&#34; can be also specified according to the rules. 
     The stored-contents updating function 23 receives a connection number used for an application from the application through a signal h before the application starts its data transmission. Thus, the stored-contents updating function 23 makes the correspondence between the predetermined necessary bandwidth and connection numbers according to the type of application and updates the contents of the necessary bandwidth storing function 22 by a signal i. 
     Some applications may notify bandwidths requested from users in addition to connection numbers. When a user specifies a print end time, e.g, a printing application notifies its corresponding necessary bandwidth to the stored-contents updating function 23 by a signal h. At this time, the stored-contents updating function 23 associates the necessary bandwidth with a connection number and updates the contents of the necessary bandwidth storing function 22 by a signal i. 
     Further, other applications may notify their processing through puts (bps) in addition to connection numbers. When the processing speed of a printer is lower than or equal to Rmax, e.g., a printing application notifies its processing speed to the stored-contents updating function 23 by a signal h. At this time, the stored-contents updating function 23 defines the processing speed as a necessary bandwidth. Further, the stored-contents updating function 23 associates the necessary bandwidth with a connection number and brings the contents of the necessary bandwidth storing function 22 up to date by a signal i. 
     The necessary bandwidth storing function has already stored therein a table shown in FIG. 16, which is indicative of the correspondence between connection numbers and necessary bandwidth. When the data identifying function notifies a connection number to the necessary bandwidth storing function through a signal g, the necessary bandwidth storing function notifies a necessary bandwidth B corresponding thereto to the data transmitting means 1. 
     According to the present embodiment as described above, the connection number is judged by monitoring the transmission data delivered from the application. After the bandwidth requested from the user and the throughput of the application have been notified from the application, the bandwidth necessary for the data transmission is determined based on these. Thus, since a small bandwidth may simply be assigned to an application whose bandwidth may be small, the contention for the bandwidth can be controlled. 
     According to the present invention, as has been described above, even if plural types of applications for transmitting data at desired times exist and they transmit the data with a shared network, the respective applications transmit the data within necessary bandwidth. It is therefore possible to reduce the occurrence of contention between the data transmissions. Thus, the prevention of increases in data loss and data transmission delay can bring about an advantage that the quality of each application is ensured.