DATA ADDRESSING SCHEME

Abstract: A data addressing unit comprising an input for receiving a message representing data to be transmitted, the message including a header or trailer specifying a destination address to which the message is to be transmitted. Means are provided for reading the destination address and for modifying the header or trailer by exchanging the destination address specified in the header or trailer for the source address of the message, the source address being the address of the source of the message to be transmitted. The message with the modified header or trailer is then output for transmission to the destination address. Such a low-latency data transmission scheme is suitable for the delivery of real-time services.

Description: DATA ADDRESSING SCHEME This invention relates to data addressing and in particular to a method and apparatus for reducing the amount of data required for addressing. In data transmission there are two address components involved: a source address which identifies the apparatus from which the data originated and the destination address which identifies the point to where the data is to be sent. For some applications it is not important how long this transmission takes. For example, if non-real time data is to be sent over a communications network the sender and receiver may not mind if this takes a significant amount of time. An example of such data transmission could be the downloading of transaction data at the end of a day's trading: whilst it is important that the data is received, it might not matter if this takes three minutes or three hours. Other applications require the delivery of data in real-time. Examples of such applications are video conferencing and on-line gaming. Clearly any delay in the transmission will be apparent to the receiver. In the field of on-line gaming (or other real-time services), the time taken to deliver data between user terminals is critical to the way a game (or service) responds to the users, and can make the differences between an entertaining and absorbing experience, or a frustrating and difficult one. The present invention seeks to provide low-latency data transfer. According to the present invention there is provided a data addressing unit comprising: an input for receiving a message to be transmitted, the message including a header or trailer specifying a destination address to which the message is to be transmitted; means for reading the destination address; means for modifying the header or trailer by exchanging the destination address specified in the header or trailer for the source address of the message, the source address being the address of the source of the messag- to be transmitted; and an output for outputting the message and the modified header or trailer for transmission to the destination address. Thus the amount of data transmitted is reduced compared with schemes which require both the source and destination address to be transmitted. Preferably means are also provided for comparing the received destination address with a store of allowable destination addresses, the data addressing unit being arranged to modify the header or trailer and output a message for transmission only if a correspondence is found between the received destination address and at least one of the allowable addresses. Thus if no corresponding address is found, the message is discarded. The size of the address encoded in the header or trailer may vary in dependence on the value of the address. According to a second aspect of the invention there is provided apparatus for assembling data for transmission, the apparatus comprising means for receiving message to be transmitted; means for adding a header or trailer to the message to be transmitted, the header or trailer excluding information relating to the source address of the information. According to a third aspect of the invention the is also provided a point-to- point switching apparatus for receiving a message from a source for transmission to a destination, the switching apparatus comprising: an input for receiving from a source a message representing data to be transmitted, said message including a header or trailer specifying a destination address to which the message is to be transmitted; means for reading the destination address; means for modifying the header or trailer by exchanging the destination address specified in the header or trailer for the source address of the message, the source address being the address of the source of the message to be transmitted; and an output for outputting the message and the modified header or trailer for transmission to the destination address. Thus data efficiency is achieved on the access links between the point-to- point switching apparatus and the source and destination terminals. This is advantageous since the access links of a telecommunications network are generally the slowest link in a network. According to a further aspect of the invention there is provided apparatus for receiving transmitted data, the apparatus comprising an input for receiving a transmitted message, the message including a header or trailer including information relating to the source address of the data; means for inserting into the header or trailer information relating to the destination address of the data; and an output for outputting the modified message. Such data receiving apparatus is suitable for receiving a message modified according to the invention and reinserting the destination address of the message so that the message output by the receiving apparatus conforms to conventional protocols which require both the source and destination address. An example of such a protocol is IPX. The invention will now be described, by way of example only, with reference to the accompanying drawings in which: Figure 1 shows a distributed communications network; Figure 2 shows an example of the framing structure of a signal; Figure 3 shows an example of a data packet assembled according to the invention; Figure 4 shows an example of a processing unit according to the invention forming part of a user's terminal; Figure 5 is a flow diagram illustrating the operation of the processing unit shown in Figure 4; Figure 6 shows an example of a data addressing unit forming part of a central server in the communications network of Figure 1 ; Figure 7 is a flow diagram illustrating the operation of the unit shown in Figure 6; and Figure 8 is an example of the receiving function of a user's terminal. Referring now to Figure 1 , there is shown a distributed communications network. The network includes a set of terminals 2, each of which is a personal computer, for example an IBM/AT-386 personal computer. Each terminal 2 has a display screen, a processing unit and one or more input devices such as a keyboard, a joystick or a touch screen. Each terminal 2 is connected through a modem 8 and an access link 5 to a public switched telecommunications network (PSTN) 6. The PSTN 6 is connected by a set of access links 7 to a gateway 9. The gateway 9 has an individual modem for each access link 7. Each of the modems in gateway 9 is connected on a virtual circuit through a local area network (LAN) 3 to a central server 4 (for example a Sun SPARC server). The arrangement shown in Figure 1 is a switched star configured virtual network In this network each terminal 2 is connected to the server 4 by a point- to-point communications link. By way of modification, any of the terminals 2 may be connected to the server 4 by an integrated services digital network (ISDN) line. Where an ISDN line is used, modems are not used. By way of another modification, the server 4 may be connected directly to the access links 7, without using the gateway 9 or the LAN 3. By way of another modification, the LAN 3 may be replaced by a wide area network (WAN) . When a user wishes to join the virtual network shown in Figure 1 , the terminal dials up a connection to the central server 4. The server then assigns a unique address to the connecting terminal 2. The address is stored at the server 4 and then communicated to the terminal 2, which also stores it. Subsequently the server 4 receives messages in the form of packets from the terminal 2 and switches the packets to one or more other terminals according to the destination addresses included in the packets. Further description of the operation of the server 4 is given below. The network shown in Figure 1 involves switching data assembled into packets. Figure 2 shows an example of the framing structure of the data. The framing structure is a packet framing structure, each packet being of a fixed length and an example of a suitable framing structure is PPP (Point-to-Point Protocol). According to PPP a frame of data 10 comprises an information field 1 2 and some error correction fields 1 4, 1 6. The information field 1 2 has a maximum capacity of 2048 bytes. The first error correction field 1 4 is a 1 byte check sum. The second error correction field 1 6 is a 1 byte End-Of-Frame (EOF) marker used to delineate the frames 10. The information field 1 2 accepts data packets 1 8 as shown in Figure 3. Each data packet comprises a data field 1 22 for the data to be transmitted and a trailer field 1 24 for an address. By way of modification, each packet may have a header field instead of a trailer field. In use, each information field can accept a plurality of data packets 1 8 up to a payload of 2048 bytes. Figure 4 shows an example of a processor unit forming part of a user's terminal. It will be appreciated that the processor unit will comprise other conventional components to allow the unit to carry out other functions. Figure 4 only shows those features of the unit that are relevant to the description of the invention. The processor unit 40 comprises a central processing unit (CPU) 401 , an address store 402 and a packet assembler 403. The CPU has an input 404 for receiving a signal from the user input device of the terminal (not shown) and an output 405 for outputting a signal to the user's display device (not shown). The CPU also has an input/output (I/O) port 406 for receiving signals from and transmitting signals to the server 4 via the network 6. Figure 5 is a flow diagram showing the operation of the terminal processor unit 40. In use, when data is received (500) by the CPU from the user's input device, the data has to be assembled into packets. This is carried out by the packet assembler 403 which, under the control of the CPU 401 , appends (501 ) a trailer to each packet, which trailer specifies the destination address of the data. The CPU then inserts (502) the resulting data packets 1 8 into one or more information fields 1 2 and then transmits (503) the resulting signal to the server 4. Figure 6 shows an example of a data addressing unit 60 which is located within the server 4. The system comprises a packet dis-assembler 601 , an address decoder 602, a participants' address store 603, a destination address comparator 604, an address encoder 605, a source address store 606, a packet assembler 607 and a destination address store 608. Figure 7 is a flow diagram illustrating the operation of the data addressing unit 60. On receipt (701 ) of a signal from a terminal 2, the packet dis-assembler 601 dis-assembles (702) the signal into data packets 1 8. For each packet, the payload of the packet is passed to the packet assembler 607. The trailer of the packet is passed to the address decoder 602, which decodes (703) the destination address of the data from the address field 1 24. The address comparator 604 then compares (704) the received destination address with the allowable participants' addresses in store 603. If no match is found, the packet is discarded (705) and the next received packet disassembled (702) . If a match is found (704), the destination address is then stored (706) in the destination address store 608. Since the system is a point-to point system, the central processing unit (not shown) of the data addressing unit 60 knows the source address of the received signal and stores this information in the source address store 606. The address encoder 605 receives the source address from the source address store 606, then encodes the source address, and supplies the encoded source address to the packet assembler 607. In the packet assembler 607, each packet is reassembled with its payload and a trailer containing the encoded source address. Thus, in each packet, the destination address is replaced (707) with the source address of the terminal which transmitted the packet. The packet re-assembler 607 then reassembles (708) the data packets according to the framing structure by appending check sums and EOF fields to the information fields 1 2. The resulting signal is then transmitted (709) to the destination terminal. To carry out the modification of the address field 1 24 the server requires knowledge of the addresses of each of the participating terminals. This is achieved by the server 4 dynamically allocating a unique address to each terminal 2 when that terminal requests connection to a particular virtual network. This address is then communicated to the terminal, providing both the server 4 and the terminal 2 with knowledge of that terminal's address. The address is stored in the address store 402 of the terminal 2 and the participant's address store 602 of the server 4. Figure 8 shows the functionality of the user's terminal to allow for the reception of a signal with a modified header. The received packet of data is disassembled by packet dis-assembler 802 and the data dealt with in a conventional manner (e.g. by the CPU, the display device etc.) The source address contained in the header is decoded by the address decoder 804 and, together with the terminal's own address (stored in the address store 806), is processed by the address compiler 808 to conform to data transmission protocols used by the terminal which require both the source and the destination addresses to operate. Many network protocols use addresses that consist of large numeric values and therefore occupy several octets in each packet sent (eg: Ethernet, IP, IPX) . This is not efficient enough for use on a low bandwidth modem connection when carrying real-time data, and some protocols have custom compression schemes to overcome this problem (cf: Van Jacobson TCP compression). The use of numerically small values is suggested for network addresses since the number of terminals connected to one star network at any one time will be low (a separate star network is created for each game session). Values in the range 0-1 27 are encoded into 1 octet, and values in the range 32768-65535 are encoded into two octets. Values in the range 1 28-32767 are not permitted in this scheme. The encoding scheme uses the most significant (MS) bit of the most significant octet to indicate the presence of a second (less significant) octet eg: Decimal Binary MS octet LS octet MSB LSB MSB LSB 0 00000000 126 01111110 127 01111111 32768 10000000 00000000 32769 10000000 00000001 65535 11111111 11111111

Claims: CLAIMS 1 . A data addressing unit comprising: an input for receiving a message to be transmitted, the message including a header or trailer specifying a destination address to which the message is to be transmitted; means for reading the destination address; means for modifying the header or trailer by exchanging the destination address specified in the header or trailer for the source address of the message, the source address being the address of the source of the message to be transmitted; and an output for outputting the message and the modified header or trailer for transmission to the destination address. 2. A data addressing unit according to claim 1 further including means for comparing the received destination address with a store of allowable destination addresses, the data addressing unit being arranged to modify the header or trailer and output a message for transmission only if a correspondence is found between the received destination address and at least one of the allowable addresses. 3. A data addressing unit according to claim 1 or 2 in which the address is encoded in the header or trailer, the size of the header or trailer being dependent on the value of the address. 4. Apparatus for assembling data for transmission, the apparatus comprising: means for receiving a message to be transmitted; means for adding a header or trailer to the message to be transmitted, the header or trailer excluding information relating to the source address of the information. 5. A point-to-point switching apparatus for receiving a message from a source for transmission to a destination, the switching apparatus comprising: an input for receiving from a source a message representing data to be transmitted, said message including a header or trailer specifying a destination address to which the data is to be transmitted; means for reading the destination address; means for modifying the header or trailer by exchanging the destination address specified in the header or trailer for the source address of the message, the source address being the address of the source of the message to be transmitted; and an output for outputting the message with the modified header or trailer for transmission to the destination address. 6. A communications network comprising a server and a plurality of terminals connectable to the server via point-to-point communications links, the server including switching apparatus according to claim 5. 7. A method of data addressing comprising: receiving a message representing data to be transmitted, said message including a header or trailer specifying a destination address to which the message is to be transmitted; reading the destination address; modifying the header or trailer by exchanging the destination address specified in the header or trailer for the source address of the data, the source address being the address of the source of the data to be transmitted; outputting a signal comprising the message with the modified header or trailer for transmission to the destination address. 8. A method according to claim 7 in which the message comprises packets. 9. Apparatus for receiving transmitted data, the apparatus comprising an input for receiving a transmitted message, the message including a header or trailer including information relating to the source address of the data; means for inserting into the header or trailer information relating to the destination address of the data; and an output for outputting the modified message.

Inventors: ASHBY PHILIP ANDREW, ASHBY STUART PETER, HUMPHREYS ANDREW ADRIAN, ASHBY, PHILIP, ANDREW, ASHBY, STUART, PETER, HUMPHREYS, ANDREW, ADRIAN
Applicants: ASHBY PHILIP ANDREW, ASHBY STUART PETER, BRITISH TELECOMM, HUMPHREYS ANDREW ADRIAN, ASHBY, PHILIP, ANDREW, ASHBY, STUART, PETER, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, HUMPHREYS, ANDREW, ADRIAN
Application year: 1998
Main classification: H04L12
IPC codes: H04L12