This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2010-291959 filed on Dec. 28, 2010, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein relate to a communication apparatus, relay apparatus, network system and techniques for packet communication of time division in wired networks.
Recently, there have been movements to integrate a local area network (LAN), which accommodates server-based traffic, and a storage area network (SAN) and or a disk area network (DAN), which accommodates disk-based traffic, into one network. When such integration is carried out, one network accommodates different kinds of traffic that are different in terms of properties such as the necessity or unnecessity of band guarantee.
On the other hand, there exists a technique that systematically reduces power consumption of routers using a time division multiplexing (TDM) communication method by using time slots (hereinafter referred to also as “slots”). For example, in an example illustrated in
There also exists a technique in which a management server dynamically assigns a plurality of paths (hereinafter referred to also as “flows”) to slots in accordance with a band to be used for a route determined depending on a combination of edge nodes. For example, this technique is realized by a pre-operation, static assignment of a fixed number of flows and a post-operation, dynamic assignment of a varying number of flows.
In any technique, however, an assignment is made such that each flow occupies the band assigned thereto. Accordingly, for example, as illustrated in
Japanese Unexamined Patent Application Publication Nos. 2010-141443, 2003-229857, 2002-247072, and 8-125654 are examples of the related art.
The related art is also disclosed in Mitsunobu, Kurita, and Kakemizu, “Packet Transmission Scheduling for Network Power Saving: Application for Bufferless Network” in Proceedings of the IEICE General Conference 2010, published by the Institute of Electronics, Information and Communication Engineers, March 2010; and Kurita, Mitsunobu, and Kakemizu, “Packet Transmission Scheduling for Network Power Saving”, in IEICE technical report published by the Institute of Electronics, Information and Communication Engineers, March 2010.
According to an aspect of the invention, a relay apparatus for performing packet communication of time division includes a receiver configured to receive a first data packet to be transmitted according to a reservation of a time slot, a second data packet being a data packet other than the first data packet, and a control packet including first data representing which of the first data packet and the second data packet is to be transmitted in the same time slot as the control packet; a processor configured to store in a data storage the second data packet, the second data packet being received by the receiver in a time slot in which the control packet is received, when the receiver receives a control packet including first data representing that the second data packet is to be transmitted in the same time slot as the control packet; and a transmitter configured to transmit the second data packet stored in the data storage in a time slot not including other data packet than the second data packet.
The object and advantages of the invention will be realized and attained by at least the features, elements, and combinations particularly pointed out in the claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
An object of the invention, as an aspect, is to provide a technique for improving network utilization efficiency.
First, with reference to
This embodiment will be described with a network configuration as illustrated in
With reference to
The reservation of a slot is made as follows. That is, the end system 1 transmits a slot assignment request including the identifier of a source end system and the identifier of a destination end system, and the management server determines a slot ID and a communication route (hereinafter referred to also as a “path” or a “flow”). Further, the end system 1 receives from a management server and holds the assigned slot ID and communication route information, and transmits a control packet including these data to the relay node 3 on the assigned communication route. The end system 1 as the destination is notified of these data via the relay node 3, and thus information on reservation of the slot is shared. Such a management server and slot reservation processing are similar to those of conventional techniques.
Turning now to the operations, in an application of the end system 1a or 1b, in the case where a packet to be transmitted to the end system 1c is generated (
Independently of storage of the packet in the queue, the end system 1 transmits the packet stored in the queue at the timing of a slot (step (2)). Here, the end system 1 of this embodiment uses both a slot that has been reserved and a slot that is not reserved. Note that, a control packet transmitted in each slot is provided with a mark area for setting whether the transmission in question uses a slot based on a reservation, which allows determination of whether a data packet transmitted in the same slot as the control packet is to be transmitted pursuant to the reservation. That is, a slot (a guarantee region in
In the example of
When receiving a packet to be relayed, a relay node specifies an output interface (IF) using a slot ID of a control packet as the key. The relay node also identifies the presence or absence of a mark from the mark area of the control packet. If the mark is absent, the data packet to be transmitted in the same slot as the control packet is a packet to be transmitted pursuant to a reservation and therefore is output from the output IF without buffering (step (3)). If the mark is present, the packet is temporarily stored in a wait queue prepared for each output IF (step (4)). Independently of reception of the packet, a packet in a wait queue is transmitted in a vacant slot (step (5)). Note that the vacant slot as used herein refers to a slot that has been reserved for any path and in which a packet to be transmitted does not exist ((A) of
The network system according to an embodiment of this technique includes the end system 1 and the relay node 3 as illustrated in
The packet receiving unit 101 receives a packet, for example, from an application executing unit (not illustrated) in the end system 1 or an external network and outputs it to the packet classifying unit 107. The packet classifying unit 107 generates or deletes queues 1071 (1071a, 1071b, 1071c, . . . in
The switching unit 301 receives a packet from the end system 1 or another relay node 3, and, on the basis of data stored in the slot table storage 303, outputs the packet to the output IF processing unit 305 corresponding to the output IF. A mark identifying unit 3051 of the output IF processing unit 305 identifies the mark area of a control packet, and stores in a wait queue 3053 the packet received in the same slot as the control packet if the mark is present, and outputs the packet to a sending scheduler unit 3055 if the mark is absent. The sending scheduler unit 3055 transmits the packet received from the mark identifying unit 3051 to the end system 1 or another relay node 3, or transmits the packet stored in the wait queue 3053 in a slot without any other packet to be transmitted. Note that the wait queue 3053 is prepared with a capacity capable of storing packets equivalent to one frame or several frames, for example. On the basis on data stored in the slot table storage 303, a timer controller 3057 controls interrupt processing performed by the output IF processing unit 305.
With reference to
Note that each end system 1 is assumed to have received in advance slot definition information including the number of slots, a slot time, and a transmission time and synchronization time point information from the management server, and synchronization of slots is assumed to be established in a network system. It is assumed that, a marking policy is set in the marking policy storage 1155, by the marking unit 1153, for each path that is defined by a combination of the source end system and the destination end system at the startup of the end system 1. The marking policy will be described in detail later. Further, route information is assumed to be registered in a slot table storage of the relay node 3.
First, upon receipt of a packet from an application executing unit included in the end system 1 or an external apparatus, the packet receiving unit 101 outputs the packet to the packet classifying unit 107 (
Then, on the basis of a path management table stored in the path management table storage 105, the packet classifying unit 107 determines whether the queue 1071 corresponding to the destination end system is present (step S5). In the path management table storage 105, a path management table as illustrated in
If it is determined that the corresponding queue 1071 is not present, then the packet classifying unit 107 generates the queue 1071 and adds a record including the queue ID and the identifier of the specified destination end system to the path management table (step S7). Then, the packet classifying unit 107 stores the packet in the generated queue 1071 (step S9).
Further, the slot reservation unit 111 makes a slot reservation to the management server (step S11). In this step, the slot reservation unit 111 transmits a slot assignment request to the management server. The assigned slot ID and communication route information are received from the management server, and data is registered in a slot reservation table of the slot reservation table storage 113. Here, a slot reservation table as illustrated in
On the other hand, if it is determined in step S5 that the corresponding queue 1071 is present, then the packet classifying unit 107 stores the packet in the corresponding queue 1071 (step S13). Then, processing at the time of receiving a packet is completed.
With processing as described above, a packet received by the packet receiving unit 101 is stored in the queue 1071 prepared for each destination address. The packet stored in the queue 1071 is transmitted at an appropriate timing by processing that is performed separately.
With reference to
First, the transmitting unit 1151 of the scheduler unit 115 determines whether a slot to be processed is associated with any queue 1071 in a slot reservation table of the slot reservation table storage 113 (
The marking policy in this embodiment is set, for example, as a parameter (referred to also as a “mark parameter”) for each path defined by a combination of the source end system and the destination end system. On the basis of the marking policy, the source end system determines which of a slot “without marking” and a slot “with marking” is used for packet transmission to a specific destination end system.
Further, the relationship between the marking policy and the traffic (e.g., transmitted data packets) will be described. For isochronous traffic (e.g., circuit switching traffic, performing delay guarantee transmission) such as voice and video, transmission is performed using only a slot “without marking”, ensuring a certain delay and band. For burst traffic (e.g., packet switching traffic, performing best-effort transmission) such as web data, transmission is performed using only a slot “with marking”, fully achieving the statistical multiplexing effect. Note that, in this case, for example, for a slot to be used, its guarantee region based on a reservation is set to zero (0) in the marking policy, and information on a path is registered in the relay node 3 when a packet is generated in the end system 1. For such traffic, a class of paths shared across the entirety may be prepared separately and controlled separately from paths assigned in this embodiment. In addition, for intermediate traffic (e.g., a combination of minimum guarantee of an assigned band and best-effort transmission), transmission is performed using both a slot “without marking” and a slot “with marking”, and thus the minimum band is ensured and the statistical multiplexing effect of traffic (with marking) in a band exceeding that band is achieved. Different kinds of traffic as described above are dispatched according to actual traffic conditions. Note that while the marking policy is set for each path in this embodiment, the marking policy may be set on the basis of other information representing the contents of traffic as described here.
A schematic representation of marking policies that the scheduler unit 115 has is as illustrated in
In this embodiment, as illustrated in
Note that the field “control type” is a value representing that this control packet is the start or the completion of a slot. As in
Turning now to the processing, the marking unit 1153 generates a control packet in which “used” is set in the slot state field, “absent” in the mark area field, and the slot ID of a slot to be processed in the slot ID field (step S27). The transmitting unit 1151 transmits the control packet and a data packet stored in the queue 1071 (step S29). Then, the process moves to step S43.
On the other hand, if it is determined in step S23 that a packet is absent in the queue 1071, or if it is determined in step S25 that the parameter of the marking policy is “2”, there is no packet to be transmitted in a slot to be processed. Accordingly, the marking unit 1153 generates a control packet in which “not used” is set in the slot state field, and the slot ID of a slot to be processed is set in the slot ID field (step S31). Then, the transmitting unit 1151 transmits only the control packet in the slot to be processed (step S33). An apparatus on the receiving side can determine from data set in the control packet that the slot is a vacant slot. Then, the process moves to step S43.
If it is determined in step S21 that the slot to be processed is not associated with any queue 1071, then the transmitting unit 1151 determines whether a packet is stored in any queue 1071 (step S35). That is, in the case of a slot without a reservation, it is determined whether there is a packet waiting for transmission to any destination end system. If the packet is not present in any queue 1071, then the process moves to step S43. On the other hand, if the packet is present in any queue 1071, then one queue 1071 is handled as that to be processed, and the marking unit 1153 determines whether the parameter set for the destination end system of that packet is “2” or “3” in the marking policy stored in the marking policy storage 1155 (step S37). If it is determined in this step that the parameter is “1”, then the process moves to step S43. On the other hand, if it is determined in step S37 that the parameter is “2” or “3”, then a packet in the queue 1071 to be processed can be transmitted using a slot with marking (e.g., using a slot to be processed that is not reserved). Therefore, the marking unit 1153 generates a control packet in which “used” is set in the slot state field and “present” is set in the mark area field (step S39). Then, the transmitting unit 1151 transmits the control packet and a data packet stored in the queue 1071 (step S41).
If it is determined in step S35 that the packet is not present in any queue 1071 or if it is determined in step S37 that the parameter is “1”, or after step S29, step S33, or step S41, the timer controller 1157 of the scheduler unit 115 performs setting of the next timer interruption so as to cause the next timer interruption to occur in one slot time after this timer interruption (step S43), and thus the processing at the time of occurrence of timer interruption is completed.
With processing as described above, a packet stored in the queue 1071 is transmitted. In this embodiment, according to the marking policy, a packet to be transmitted in a reserved slot is transmitted without a mark using a slot secured by a reservation. In other words, the set band is ensured. On the other hand, a packet that is allowed to be transmitted without a reservation, a slot that is not assigned by a reservation may be used. This results in the statistical multiplexing effect and improvement in network utilization efficiency.
With reference to
First, the switching unit 301 specifies an output IF from a slot table stored in the slot table storage 303 on the basis of the slot ID of a control packet, and outputs the received packet to the output IF processing unit 305 corresponding to the output IF (
Then, the mark identifying unit 3051 of the output IF processing unit 305 identifies the mark area of the control packet and determines whether marking is present (step S53). If it is determined that marking is present, a packet received in the same slot as the control packet is transmitted without a reservation of the slot and therefore is not relayed in the same slot as the packet has been received. The mark identifying unit 3051 stores in the wait queue 3053 the packets that have been received in that slot (step S65). Here, if there is no free space in the wait queue 3053, the packet received in that slot is discarded. In this step, for example, a control packet is stored in the wait queue 3053 so as to be used in the later processing. Note that, without storing a control packet, the slot ID or the output IF may be made identifiable, which allows a new control packet to be generated in a later step. Then, the processing at the time of receiving a packet is completed.
On the other hand, if it is determined in step S53 that marking is absent, then the mark identifying unit 3051 identifies the slot state of the control packet and determines whether the slot in question is used (step S55). If it is determined that that slot is not used, then the sending scheduler unit 3055 determines whether a packet is stored in the wait queue 3053 (step S57). If a packet is stored in the wait queue 3053, then the sending scheduler unit 3055 replaces the slot ID of the received control packet with the slot ID of the packet stored in the wait queue 3053 and changes the slot state to “used” and the mark area to “present”. The control packet with the changed fields and the data packet stored in the wait queue 3053 are transmitted in that slot (step S61). Thus, the processing at the time of receiving a packet is completed.
If it is determined in step S55 that the slot in question is used, or if it is determined in step S57 that a packet is not present in the wait queue 3053, then the sending scheduler unit 3055 transmits these packets without buffering (step S63). Note that if it is determined in step S57 that a packet is not present in the wait queue 3053, only the control packet is transmitted, and an apparatus on the receiving side can determine from the slot state of the control packet that the slot is a vacant slot without a data packet.
With processing as described above, in the case where a packet to be relayed in a reserved slot is received, the packet is transmitted in the same slot (e.g., the reserved slot). Accordingly, as with the original time division multiplexing communication, the band assigned by a reservation is ensured. In the case where there is no packet to be relayed in a reserved slot, a packet stored in the wait queue 3053 is transmitted in that slot. That is, a packet that is allowed to be transmitted without a reservation is transmitted using a vacant slot. This results in the statistical multiplexing effect and improvement in network utilization efficiency.
With reference to
Upon occurrence of a timer interruption, the sending scheduler unit 3055 of the output IF processing unit 305 determines whether a packet is stored in the wait queue 3053 (
After step S75 or if no packet is stored in the wait queue 3053 in step S71, the timer controller 3057 sets the next interruption such that a timer interruption occurs in the next empty slot (step S77). To find out the time of the next vacant slot, the reservation statuses of slots for a specific output IF registered in a slot table are arranged on the time axis, and the time at which the next vacant slot appears is specified. Note that, for example, the reservation status of a slot and the next start time of the slot may be held in such a manner that they are associated with each other, allowing the time of a vacant slot to be extracted. The slot time may be held in advance such that, on the basis of this, the time of a vacant slot can be calculated. Then, processing at the time of occurrence of a timer interruption is completed.
With processing as described above, a packet that is allowed to be transmitted without a reservation and that has been held is transmitted using a slot without an assignment conditioned by a reservation. This results in the statistical multiplexing effect and improvement in network utilization efficiency.
As the entire network system, when a slot that has been reserved is not used, or when a slot is not reserved, the slot is used for another path on a link-by-link basis, which makes it possible to achieve the statistical multiplexing effect and to improve the network utilization efficiency. In cases where communication with less losses is needed, transmission is performed without a mark using only a slot that has been reserved, and thus communication with less delays and less losses can be achieved. In conventional packet switching and multi-protocol label switching (MPLS), a buffer memory ranging from several hundred MB to several GB is used for a relay apparatus. In contrast, the relay node 3 according to this embodiment only requires a memory corresponding to one frame (about several hundred KB), and therefore it is possible to achieve cost reduction and power savings.
While the embodiment of this technique has been described above, this technique is not limited to this embodiment. For example, the block diagrams illustrating functions are exemplary, and their configurations sometimes do not match actual program module configurations. For the processing flows, the order of steps may be changed or may be carried out in parallel as long as the processing results are the same.
It is to be noted that the foregoing end system 1 may be a computer device. In a computer device, for example, as illustrated in
Note that a program for causing a computer to perform processing in the above-mentioned way may be created. The program is stored in a computer-readable recording storage medium such as a flexible disk, CD-ROM, optical magnetic disk, semiconductor memory, or hard disk or a storage device. Intermediate processing results are temporarily stored in a storage device such as a main memory.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment(s) of the present invention(s) has(have) been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2010-291959 | Dec 2010 | JP | national |