Title of Invention

A SYSTEM FOR DATA TRANSMISSION VIA SEVERAL COMMUNICATION ROUTES

Abstract A system for transmission of data between at least two units(1,2) adapted to intercommunicate said system comprising at least two possible communicate routes (3-5) having different characteristics, wherein the characteristics of at least one of said routes is variable during the data transmission, and wherein each unit comprises a transmission unit including means for gathering information on the characteristics of the possible communication routes, said information at least partly being gathered during the data transmission, characteristics in that each unit further comprises for dividing, on the basis of said information and an optimizing condition, the flow of the data, preferably in the form of data packets, among at least two of said communication routes, and wherein each unit further comprises a corresponding receiver unit with means for re-combining the data flow transmitted via said at least two communication routes, whereby the division of the flow of data between said at least two communication routes is continuously optimized in accordance with said optimizing condition during the data transmission.
Full Text FORM 2
THE PATENTS ACT 1970
[39 OF 1970]
COMPLETE SPECIFICATION

"A SYSTEM FOR DATA TRANSMISSION VIA SEVERAL COMMUNICATION ROUTES"
ICOMERA AB, of Stena Center 1C, SE-412 92 Goteborg, Sweden,
The following specification particularly describes the nature of the invention and the manner in which it is to be performed :-


A-GYGTEM FOR DATA TRANGMIGOION VIA SEVERAL—
COMMUKTICATION ROUTES
Technical Field
The present invention relates to a system for trans-mission of data between at least two units that are adapted to inter-communicate, said system comprising sev¬eral possible communication routes having different qualities. The invention likewise comprises a correspond¬ing method, and a terminal unit for use together with the system in accordance with the invention.
Background
The demands for rapid transmission of data are con¬stantly increasing, and for that reason new solutions for data transmission are required. Existing networks in¬tended for other first-hand uses, such as television or electricity, may be used in some cases for data transmis¬sion as well. The prospects of increased proceeds are likely to drive the development towards more extensive use of this at presently free capacity.
In addition, the mobile communication networks are likely to be developed to provide increasingly rapid transmission speeds. Such development will take place in several steps and will lead to multiple increases of speed on the mobile networks within the next few years. In addition, more equipment will be connected wireless to peripheral equipment and other equipment, both that lo-cated in its immediate vicinity and for long-distance communication. As a result, the need for rapid and reli-able data transmission increases even more.

Today"s users often have access to multiple communi-cation links to networks, such as Internet or intranets of individual enterprises. However, only one link is em-ployed at a time, and consequently considerable capacity is not used. The possibility of sending data via one com-munication link and of receiving data on another does ex-ist, but in an unintelligent and static way.
In today"s data transmission systerns the last link to the user is the weakest one. This is true for instance in the case of data services effected via GSM or station¬ary modem, but also ISDN and other somewhat more rapid transmission methods are bottle-necks that hold up data transmission, because the speed on Internet is many times higher.
Furthermore, fixed connections to Internet are in¬stalled in an increasing number of households and of¬fices, leading to a new standard of transmission speeds available to the average user. In consequence, many fu¬ture data transmission systems will have difficulties in meeting the demands of the new standard, and this is true particularly as regards the, mobile systems.
In addition, to achieve sufficient coverage is also a problem found in today"s systems. Irrespectively of the user,s whereabouts he/she will require access to Inter-net, and consequently facilities for internet connection must be available globally. The facilities for connection may- vary from place to place and may include:
• Fixed connections
• Connection via modem
• Connection via mobile communication, and
• Connection via satellite communication.
The coverage of mobile services is restricted by the fact that the mobile networks are not fully expanded and be-
3

cause of problems arising from radio-shadows in the net-work in question, which sometimes causes coverage disap-pearance. No communication system is error-proof. Nor is any system able to offer capacity to an unlimited number of users."
The lack of flexibility of user"s choices among sev-eral different communication routes leads to poor exploi-tation of capacity of the respective communication sys-tems and thus to impaired service to the individual user. In addition, competition between different communication systems would be improved, were the choice between said system more flexible.
Consequently, there is a need for a data transmis¬sion system that makes use of several transmission links more efficiently, both to more efficiently utilise exist¬ing transmission channels and to provide improved per¬formance and to achieve a higher degree of user satisfac¬tion.
From EP-0 696 010 is known a system allowing data to be transmitted on several available channels. Non-avail¬able channels are made non-selectable channels by means of a notch filter system, and the application is mainly concerned with this aspect. However, this system does not solve the above problems of making data transmission op¬erations more efficient as regards availability, cover¬age, costs, etcetera.
From US-5 787 079 it is known to divide a flow of data among several part channels in a radio channel, and the flow of data may be transferred in parallel on dif¬ferent part channels and subsequently be re-assembled by the receiver. Like EP 0 699 010 this patent specification is concerned merely with the technology of transmitting data between a base station and a mobile unit. This sys-
4

tern does not either solve the problems with which the present invention is concerned, particularly as concerned availability, coverage and costs.
Furthermore is known a method of asymmetrical trans¬mission, (Asymmetrical Digital Subscriber Line, ADSL), which is a method of increasing the transmission speed from Internet to the local computer whereas the speed is restricted in the opposite direction. ADSL may use a physical connection having different transmission speeds depending on the signal modulation. Also, two physical separate connections to the network may be involved. One possible configuration could be an ordinary telephone mo¬dem for the up link and the cable-television network for the down link. ADSL is, however, useable only in cases when high transmission speeds are not required in both directions. Applications such as video conferences there¬fore are not feasible. On account of the lack of dynamics in the system, the problems of availability, coverage and costs are not solved either.
The division of data into several parallel flows is known from other applications. Although in many cases in¬creased transmission speeds are achieved, they fail to satisfactorily solve the problems with which the subject invention is concerned, viz. to improve the user"s possi-bilities of selecting by himself relevant optimising con¬ditions, such as transmission speeds, reliability, avail-ability and costs.when parallel lines are used in exist-
ing applications normally only the same type of communi¬cation link is made use of, sometimes even the same physical link. The result is poorer performance and in¬creased risks of total data-flow interruption.
5


Object of the Invention
One object of the subject invention therefore is to completely or at least partly eliminate the above-men-tioned drawbacks inherent in the prior-art, and to pro¬vide a system allowing more efficient and more rapid data transmission operations.
This object is achieved in accordance with the in-vention as the latter is defined in the appended claims.
Summary of the Invention
The invention comprises a system for transmission of data between at least two units adapted to inter-communi-cate, said system comprising a plurality of possible com-munication routes exhibiting different characteristics. Each unit further comprises a transmission unit’ which gathers information on the characteristics of the possi¬ble communication routes and, on the. basis of said infor¬mation and of an optimizing condition given by the user, divides the flow of data, preferably in the form of a data packet, among at least two of said communication routes. Each unit also comprises a corresponding recep¬tion unit, which re-combines the data flow transmitted . via said at least two communication routes. An active choice of communication route thus is made to match the optimising condition of the user"s choice, and in addi¬tion, the choice is made on the,basis of the relevant in¬formation gathered by the transmission unit. In .this man¬ner, the user is given more satisfaction, since the opti¬mising condition is met to a higher extent than in prior-art systems, while at the same time existing communica¬tion routes and the like may be made better use of by the supply of relevant status information to the transmission units. The transmission units preferably gather informa-
. 6

tion continuously and effect the division of the data flow automatically on the basis of that information, which makes the above-mentioned advantages still more ap-parent. Specifically suitable bits of information to be gathered is one or several of the following: fixed and variable prices for the communication routes, maximum and present speed of the latter, sizes of packets that could be transmitted, transportation time (the end-to-end transportation time for packets), ID or similar informa¬tion on forwarding units, i.e. units comprised by the communication routes, and predetermined priorities made for instance by the user concerning choices of specific communication routes, specific forwarding units or the like. Based on such information it becomes possible for instance to optimize the, transmission with respect to. one or several optimizing parameters, such as price, speed, and preferences as to intermediary forwarding units.
The system in accordance with the invention is par¬ticularly suitable for data transmission operations, wherein at least one of the communication routes is a wireless route, since the need, for such active optimisa¬tion is greatest in those cases. In addition, the system, is particularly well suited to solve the data-transmis¬sion problems, when one of the communicating units in turn is connected to an additional network for forwarding data to and from that network. In this manner, the trans¬mission system in accordance with the invention may be used in some particularly sensitive parts of a transmis¬sion chain. These parts could for instance be particu¬larly expensive, particularly slow, have a particularly small transmission capacity or the like. The invention could be used for mobile, that is wireless, connection to larger stationary networks, such as Internet.
7
The invention likewise concerns a method correspond¬ing to the system outlined above, and a terminal unit to be used in such a system.
In accordance with a different aspect, the invention concerns a system for transmission of data between at least two units (1, 2) , which are adapted to intercommu¬nicate, said system comprising at least two possible com-munication routes C3-5), each having different character-istics, and wherein each unit comprises a transmission unit which is adapted to gather information on the char¬acteristics of said.possible communication routes and to divide the flow of data, preferably in the form of data packets, and which chooses one of said at least two com¬munication routes on the basis of the information thus gathered and of an optimising condition given by. the user for each such data flow part. Each unit further comprises a corresponding receiver unit, which re-combines the data flow transmitted via said at least two communication routes.
In this manner a choice of communication route is , made for each packet or the like, and thus a smooth tran¬sition is made possible from one communication route to another, while at the same time it is ensured that the preferred communication route is utilized at all times.
In addition, the invention concerns a corresponding method.
The invention likewise comprises a system for trans¬mission of data between at least two units adapted to in¬ter-communicate, said system comprising at least two pos¬sible wireless communication routes via different base stations and wherein each unit comprises a transmission unit dividing the flow of data, preferably in the form of data packets, among said at least two communication


routes and wherein each unit further comprises a corre¬sponding receiver unit, which re-combines the data flow transmitted via said at least two communication routes. Since at least some of the communication routes in this case are mobile, the system becomes particularly power¬ful, if the networks of several different.operators (base stations) are utilised. In this manner access to a larger number of frequencies is obtained, offering improved cov¬erage, availability and transmission speed. This should be compared with the use of one single network the lim¬ited frequency supply of which is to be divided among the input lines. In the above case, when the network charac¬teristics are static and similar, gathering of informa¬tion and subsequent optimization are not, however, neces¬sary in order to meet the objectives of the invention. Because the transmission unit divides the data flow into equal-size parts and the reception unit re-combines them, the desired effect is obtained.
Brief Description of the Drawings
The invention will be described in the following for exemplifying purposes by means of some embodiments and with reference to the accompanying drawings, wherein:
Fig 1 is a schematic general view of the system in accordance with the invention;
Fig 2 is a schematic view of one embodiment of the system comprising several communication routes in one physical unit;
Fig 3 is a schematic representation of one embodi¬ment of the system comprising several separate communica¬tion routes;
Fig 4 is a schematic representation of one embodi¬ment of the system comprising a communication unit having several communication routes;
Fig 5 is a schematic representation of one embodi¬ment of. the system involving several users having several communication routes;
Fig 6 is a schematic view of one embodiment of the system comprising an integrated unit having several com¬munication routes;
Fig 7 illustrates, one example of realisation of a combined optimising operation involving several optimis¬ing parameters;
Fig 8 illustrates one example of an NDIS wrapper ac¬cording to the invention including installed PAM and NDM;
Fig 9 illustrates one example of output signals transmitted via three NDM.s;
Fig 10 is a general view illustrating the relation between the PAM classes according to the example; and
Fig 11 is a general view illustrating the relation between the NDM classes according to the example;
Fig 12 illustrates schematically how different com¬munication technologies may provide different coverage areas. The coverage will span from being nation-wide (mo¬bile networks) to point-based (Bluetooth, LAN, modem) as well as anything in between. The method described in this application makes it possible to roam between these dif¬ferent technologies; and
Fig 1-3 is a schematic representation of a system in accordance with the invention, wherein via multiple com¬munication links the client communicates with a "remote server" via a server in the system.


Description of Preferred Embodiments .
As illustrated in Fig 1, the system of the invention comprises several parallel communication links, the ob¬jective .of which is to solve or reduce the problems out¬lined previously herein. The system comprises at least two units 1, 2, which are adapted to inter-communicate, and the system comprises a plurality of possible communi¬cation routes 3-5 exhibiting different characteristics. Each unit comprises a transmission unit, which gathers, information on the characteristics of the possible commu¬nication routes and, on the basis of that information and of an optimising condition given by the user, divides the flow of data, preferably in the form of data packets, among at least two of said communication routes. In addi¬tion, each unit comprises a corresponding reception unit, which re-combines the data flow transmitted via said at least two communication routes.
The user or the application 6 utilising the system in accordance with the invention may for instance request communication with another unit, such as to obtain a service 7 on Internet. Normally, a request of this kind is transmitted directly to the supplier of the service, who then sends his answer, if any, back via the same com¬munication link on which the original request was trans¬mitted. In exceptional cases the return link is not the same as the original one but in these cases the choice of up and down link is determined statically. By positioning a reception unit in the form of e.g. a computer on Inter¬net and making all requests and answers pass there through active choices of communication routes within the system are made possible.
The following user case describes the flow from the instance the request is made to the return of the re-

suits. The user initially executes an operation in an ap¬plication, which causes transmission of a request (step S1). The user"s transmission unit, i.e. the client part of the system, processes the request and forwards it via one or several communication links to the reception unit, i.e. the server part of the system, which in turn may be connected to another network, such as Internet. Together with the request is transmitted also other information needed by the server to optimise the transmission of the answer to the request (step S2) . The server then receives the request (step S3) and performs the requested service. This may be a local service on the server or involve the server in turn transmitting a request for a service on Internet (step S4).
The answer to the request is then received by the server (step S5), and based on information gathered on existing communication links the answer is divided and is returned to the client via the various communication links (step S6) ., As will be described in more detail be-low, for the optimising operation, the server uses infor¬mation on the receiver, the measured transmission speed and current price information regarding the various com¬munication routes, etcetera. The client then receives data via the different communication links and re-com¬bines the data flow into its original form (step S7) , and the result is delivered to the application that made the request (step S8).
The system in accordance with the invention makes an active and "intelligent"" choice of different communica¬tion links in both directions, resulting in possibilities of optimisation with respect to several different crite¬ria.

In cases when the characteristics of the communica¬tion links are equal and static, it will not be necessary to optimise the data flow (steps S2 and S6 are modified) .
Application 6 could be for instance a mail pro¬gramme, a browser, or any other programme using data transmission. The transmission in accordance with the in¬vention preferably is. made transparent to the application because the division takes place on protocol level in the computer.
The client part 1 may be realised in the from of a driver for network connection. All communications with the network then takes place via this new driver, which consequently is able to optimise the flow. According to the invention, the client can for instance gather and thus have access to the following information, viz.. :
• maximum and current transmission speeds in the respec-tive direction, which makes speed optimisation possible by giving priority to high-speed links in case of large amounts of data.
• Type of subscription and supplying operator, rate sys¬tem and current tariffs, allowing price optimisation by selection of the cheapest communication link that at the
same time has sufficient transmission speed,
• identification of available forwarding servers for the
different communication routes and their individual col¬
lective characteristics, which allows speed maximisation
by choice of a server under low load and price minimisa¬
tion by choice of a server positioned in a geographically
advantageous location.
The communication routes, 3-5, consist of a connec¬tion to the receiver unit having a well defined interface to the client part. Preferably, all communication links use the same communication protocol, for example TCP/IP,

which facilitates the process of transmission of data packets via the various routes.The communication routes may consist of fixed networks, such as local data net¬works (LAN), electrical mains or cable-television net¬works, or mobile networks, such as GSM-900 (Global Serv¬ice Mobile 900), GSM-1800, GPRS (General Packet Radio Service), EDGE, WCDMA, Bluetooth and Radio-LAN. When the system uses mobile networks it is likewise possible, al¬though not obligatory, to use the mobile networks of dif¬ferent operators as separate communication routes. When the network of the same operator is used for. several com¬munication links the latter do not necessarily have to compete for transmission capacity, if the connection takes place for instance at different frequencies to the same base station or to different base stations. In this case the optimisation is within the specifications of the mobile networks and takes place automatically.
It is particularly advantageous to use the data transmission- method in accordance with the invention, when one of the communicating units is connected to an additional network. This additional network could be an intranet, a WAN (Wide Area Network), such as Internet, or a local network (LAN) to which two or more computers are connected.; The unit that is connected to the network preferably has one or several high-speed connections to the network. Requests are received and forwarded, and the corresponding answers are returned to the client. The server could for instance gather, and thus have access to the following information, viz.:
• maximum and current transmission speed in the respec¬tive directions, allowing speed optimisation by giving priority to high-speed links;

• type of subscription including operator, rate system and current tariffs, allowing price optimisation by choice of the cheapest communication link that also has sufficient transmission speed.
• identification of the client communication links and their individual and collective characteristics, allowing maximisation of speed for market segmentation and in¬creased transmission reliability.
• user identification and password, allowing user identi¬fication and authorisation checks.
The external services available on the additional networks and with which the user is able to come into contact in this manner via the transmission system in ac¬cordance with the invention principally could be any ex¬isting and future network-supplied services. This is made possible, since all that is needed to perform the service is offered by the application as input data to the cli¬ent. The input data is re-created by the client part to its original form.
Information Gathered by The System Units When Needed
In the system in accordance with the invention an "intelligent" division of data and revassembly thereof takes place as well as an "intelligent" choice of differ¬ent communication links to optimise the transmission with respect to different criteria. In order to achieve this it is necessary that each one of the two communicating units, i.e. the client and server parts, can send the data flow over multiple communication links and perform this intelligent division and re-assembly of the data flow. This intelligent division is made possible because the communicating units gather information allowing opti-


misation of the transmission of data between the units, i.e. between the client and the server.
One kind of relevant information that may be gath¬
ered is the price. By price is to be understood herein on
the one hand fixed and on the other variable costs. The
fixed prices could be e.g. the price per call, per con¬
nection or per month. The variable part relates to a
price calculated per time unit or per packet/bit. Nor¬
mally, the prices vary both in the short and the long
run, a fact that the inventive system is able to take
into consideration. The price information preferably is
stored in the server and is spread therefrom to all cli¬
ents concerned. The price quotation could be of a valid-
until-further-notice character or be valid for a defined
period of time only. The first type of quotation prefera¬
bly is given a
a version number, offering the client program easy access
to the latest quotations with only minimum communication
with the server.
In addition, speed is of essence. The speed is de¬fined herein as the amount of data transmitted per time unit. It could be speed as experienced by the user and the speed on a link included in the system. Most net¬works, and in particular Internet, consists of a large number of links of which the weakest one largely sets the pace of transmission between two points. In consequence hereof, the speed of the flow of received data corre¬sponds to the speed of the weakest link. Some links will have different speeds in different directions. For exam¬ple, GPRS is likely to offer larger capacity initially on the up link than on the down link.
For each type of communication link there is also defined a maximum packet size. For example, the CAN bus


uses in cars 8 bytes-size packets whereas the packet size in GPRS probably will be in the order of 300 bytes.
For each connection between two points on a network there will always be a certain minimum time for packet travel. This piece of information is interesting, since a request often could be accommodated within precisely these packets and because in those cases it is advanta¬geous to use the link where the time of transport is the shortest. The time of transport to the client of each user is updated at a predetermined periodicity. In the case of GPRS time measuring from the server to the opera¬tor"s forwarding unit (gateway, GW) is free, whereas it costs money to measure the time all the way up to the client. For that reason the transportation time to GW in this case preferably is measured so as to include a stan¬dard extra-time charge for the communication between GW and client. When the number of GWs for GPRS per country is limited, information on transportation time from a server to each operator"s GW will be measurable at a pre¬determined periodicity and consequently it will be possi¬ble for the server to store that information and use it for all communication towards the user having GPRS units. There is nothing to prevent measurement of transportation times over the mobile links more frequently, but since this is more expensive it is desirable to avoid doing so as much as possible. Of the transmission time, the time of transport is the dominating factor in the case of small amounts of data whereas the transmission time is the decisive one in the case of large amounts of data.
Essential information could also be the identity of and the information on the servers comprised in the sys¬tem. There are several reasons why users would want to employ different servers. One such reason could be for

instance a temporary stay in another country where there is a local server. By using this server, it may be possible to reduce the transmission time. Another reason may be to increase the system safety and to make it possible to connect and disconnect servers without affecting the users or indeed even without the users noticing. The sys-tem also needs information on the geographical location of the servers and on the capacity of the connection to the network. Finally, information is also needed on the costs for connecting the server to the network. All this information may vary with the time of day. For example, some servers may be open only during certain hours.
It may likewise be of interest to choose a link on the basis of other grounds than the price and the trans¬mission speed. When the transmission links are three mo-bile links an operator may wish in the first instance to make use of the capacity of his own network before buying capacity from another operator. The priority-selection information of this type may be stored in the server. In addition, during operation it could be possible for the user to make a preference whether the system is to optimize with respect to most favorable price or highest speed, as will be described in more detail in the follow-ing.
When the user"s unit is being configured, some in¬formation preferably also is entered. This information relates to the type of links and the information required to communicate therewith. This comprises also information regarding how often the client updates the server and on the progress of the communication.
In addition, it may be important to know the geo¬graphical location of the client. By knowing the the user"s position it becomes possible to select the most


advantageous server. It could also be possible for the user to enter his geographical location himself.
The table below summarizes examples of information that that it may be valuable for the units incorporated in the system in accordance with the invention to gather, where such information may be gathered as well as how such gathering activities may be effected.
Summarising Table on Information Gathering

Type of Info Source of Info Gathering Method
Price Server Defined
Speed(maximum) Server Defined
Speed (current) Client/Server Measured
Packet size Server Defined
Transportation time Client/Server Measured
Server ID/Info Server Defined
Priority Client/Server Defined
User Setting Client Defined/Measured
Optimisation of Data Transmission
The system is complex and there may be a consider¬able number of parameters and preferences that guide the optimisation procedure. However, -the optimisation is based on an optimisation condition defined by the user. This optimisation condition could, however, in turn com¬prise several different optimising parameters. In this case different priorities should, however,, be attributed to the different parameters in order to indicate their relative importance. Four examples of optimisation areas are given below.
According to the first example, the optimisation is made on the basis of the parameter price, which often is desirable. Given all necessary information on price in

the manner indicated above for each individual link the total price for the respective link is calculated. One of the links will be the cheapest one. Purely price-based optimisation therefore will result in all transmission being carried out on the cheapest link. As the prices may-vary, this may however by changed during a transmission operation.
One very important optimisation parameter is trans¬mission speed. Speed optimisation may be carried out on the basis of the following formulas:

when n> = 2; where Xi is the part data transmitted on link i; ti the time from dispatch of the first packet to reception of the last packet over link i; t10 is the transportation time between server and client in the di¬rection in question on link i; vi is the speed of trans¬mission on link i; and s is the total amount of data to be transmitted.
The optimisation procedure is divided into three parts: The request is sent to the server, the server per¬forms the service and finally the response is returned to the client. In the text below n=3.
In order that the dispatch of the request, in part 1, be as rapid as possible, it is sent on the link having the shortest transportation, time, i.e. min(t1,t2,t3). In-


formation on which one of the links that has the shortest transportation time is derived on the one hand from pre¬vious transmissions and on the other from the connection procedure in connection with the on-going session. To¬gether with the request, the client also sends informa¬tion on the speed (v1 v2/ v3) with which the client re¬ceived the previous transmission on the respective link.
The time the server needs to perform the service, i.e. part 2, is beyond the control of the system and preferably is not handled by the optimisation algorithm. The result to be dispatched from the server in part 3 to the client is to be divided among the three links of the system. During the client"s request in,part 1 infor¬mation was sent on the client"s latest reception speeds. These two pieces of information are used together with the transport time data relating to the three links in order to minimise [1] with respect to X1,x2,x3 according to secondary conditions [4] and [5]. In other words, the objective is to minimise the time needed for the latest packet received, which leads to a percentage division of the flow of data between the different links.
f is a function in R3. The secondary condition [4] is a plane intersected in A=(1,0,0), B=(0,1,0) and C= (0,0,1). [5] causes limitation of the defined set of f to the triangular surface that A,B, and C defines. The maximum of t1 is in A and declines linearly towards the -line BC and on line BC it discontinuously becomes zero; the maximum of t2 is in B and declines linearly towards line AC and on line AC it discontinuously becomes zero; the maximum of t3 is in C and sinks linearly towards line AB and on line AB it discontinuously becomes zero. In cases when the three transportation times are of corre¬sponding magnitude an unambiguous solution x1, x2, x3 is


obtained somewhere between A, B, and C and t1 = t2 = t3 In case for instance t10 >= t30 +s / V2 and tio >= t30+ s/v3, a solution is obtained somewhere on the line between B and C, i.e. x1=0. In case both t20 >= t10 + s / V1 and t30 >= t10 + s/v1 a solution in point A is obtained, i.e. X1=l and x2=x3=0
The client informs the server of the measured values of V1, when one of two criteria are met, viz. : either a predetermined amount of data has been received or a pre¬determined time has lapsed. These two parameters are set by the user. Accordingly, the server is able to adapt the selection of communication links during rapid variations of the transmission speeds via the different links. Small amounts of data will give preference to the links showing the shortest transportation time whereas large amounts of data preferably will be sent via high-speed transmission links. Should one link cease to function, the server will be informed accordingly, as a result of v1 being lowered to zero, which de facto results in disabling of the link.. Should the client find out later that communication via this link has been resumed, the server will be informed accordingly and the link again be put into service.
As mentioned previously, it is likewise possible to combine several optimisation parameters within the scope of the invention. For instance, price and speed may be combined. In order to enable compromise solutions and thus to make it possible to offer precisely the capacity that the client is prepared to pay for, the user is of¬fered an option to choose how the price and the speed, respectively, should be weighted in the optimisation pro¬cedure. Often, price and speed are opposites, i.e. it is not possible to simultaneously achieve both the lowest price and the highest transmission speed. The extremes of


optimisation of price and speed, respectively, have been described above. The combination thereof may be made by simple linearisation as shown in Fig 7. To the left in the drawing figure, all data are sent on the cheapest link. To the right, data is transmitted divided in the manner providing the most favourable transmission speed as calculated in the manner described above.
Optimisation may also be made on the basis of choice of server. The following procedure is followed for in¬stance when a system consisting of three mobile links connected to Internet via several GWs is started. The client connects to the same server as at the latest in¬stance of use. The server then sees which operator"s gateway that the client communicates with. The server in¬forms all other servers that it has a client via a cer¬tain operator,"s GW. All other servers then measure the transportation time to the same GW, and the result is sent to the original server. The original server sees whether another server can offer more favourable trans-portation time to this GW. Should a server be in a posi¬tion to offer a significantly better transportation time to the operator"s GW, the server hands over the responsi¬bility to that server.
The transportation times of the servers to the most common gateways will, however, be rather static, and con¬sequently there might be reasons for storing the corre¬sponding data in each server.
Examples of Alternative Embodiments
The five components that are. included in the embodi¬ment of the system in accordance with the invention de¬scribed above (application, client part, link, network


and server) may be combined physically in different ways, providing different areas of use and functionalities.
According to one embodiment illustrated in Fig 2 ap¬plication 6 and client part 1 are integrated in one unit, for example a portable computer, i.e. the drive routines for division of data etcetera are installed on the com¬puter. Divided data are sent via cable or in wireless mode to the communication unit, which in this case is a physical unit comprising several independent telephone units la-c. Preferably, the telephone units are located in close vicinity to one another and preferably they share the same source of power but otherwise they do not communicate with one another. The flow of data is for¬warded only by the telephone units included in the commu¬nication units to the network of the respective communi¬cation link. The networks of the communication links are interconnected with stationary networks, such as Inter¬net, where the receiving server part 2 is positioned.
According to an alternative embodiment, shown in Fig 3, application 6 and client part 1 are interconnected in the same way as in the previous embodiment. In this case, the various communication units la-c are not, however, integrated in one physical unit but are separate units. If the user should want to communicate with Internet via several parallel lines but is able to contribute himself with only one communication link-, several links may be made available by loan of capacity from neighbouring com¬munication units. They may have accepted the loan of ca¬pacity in advance or else the question of compensation may be solved by means of an intelligent billing system. To enable the transmission between the user"s client part and the various communication units to be effected as convenient as possible wireless transmission mode pref-


erably is used. The various communication links need not, however, in this case be of the same type. For example also modems, electricity mains or cable-television may be used as communication links.
In a further alternative shown in Fig 4 the client part 1 is combined with one or several communication units la-c in the same unit. In this manner an independ¬ent unit is created, which is able to communicate with a separate application 6 on one hand and towards the net¬work of a separate communication link on the other. Thus a separate communication unit is made possible, having.no other function than to divide data in an intelligent man¬ner among different lines. The application must be con¬nected separately for instance via a serial port.
Application 6, client part 1 and the communication unit la-d could also be three physically separate units. Thus, the client part may act as the "spider in the cen¬tre of the cobweb" and on the one hand be in contact with the respective applications 6 of one or several users and on the other with one or several communication links la-d. This situation is illustrated schematically in Fig 5. In this case the client part coordinates data from the different users and optimises the use of the different communication links. A typical field of use is by a group of user, for instance consultants visiting a customer, who wish to share one and the same communication method. Alternatively, application 6, the client part 1 and the communication unit la-c could also be integrated in a common unit, as shown in Fig 6. This unit thus is able to satisfy all user need on the client side. Physically, the product may be similar to a small hand-held computer hav¬ing several mobile telephone antennae or be a telephone that may be used as a mobile laptop modem.


The physical unit that might be used to transmit data over multiple lines thus could be realized as fol-lows: The terminal has multiple parallel lines on one or several printed cards in a physical unit. Consequently, the lines of the terminal may consists of several sepa-rate telephone units, each having its own SIM card. Al-ternatively, a common SIM card may be used for a number of lines. The unit is also equipped with one transmission step and one antenna per line. Also in this case it is possible, as an alternative, to divide the transmission step and/or the antenna among several lines. While the lines of the terminal thus are separate they do, however, preferably share the battery and the casing. The differ-ent lines in the terminal preferably are also able to in-ter-communicate internally as regards certain information, such as control information, such that all lines do not transmit on maximum efficiency simultaneously, which might be beyond the battery capacity. Also, the different lines may share the same Bluetooth, buffer memory, etcet¬era. The various lines of the terminal may consists of the same kind of units or else they could be different ones, such as three GPRS units, two GPRS units and one EDGE unit, one GPRS unit, one EDGE unit and 1 W-CDMA unit.
The terminal may be conceived to transmit data only, but could also have conventional mobile-telephone functions, i.e. it may be used as an ordinary mobile tele-phone. The terminal having multiple lines could also com-prise the function of a hand-held computer, i.e. the com-puter and the terminal built into one unit.
In some applications there is a need for higher-speed transmissions than conventional network interface cards could cope with. To obtain higher speeds it becomes


necessary to buy more advanced network interface cards at many times higher costs. The invention makes it possible to solve this problem at a fraction of the cost by trans-mitting data on several parallel lines when the cards are standard network interface cards.
Examples of Implementation of the Invention
In the following an embodiment will be described, using several transmission lines in parallel. More spe-cifically the embodiment is directed to a packet-based parallel data transmission based on a client/server solu-tion, where the operative system, here the network sub-system of Windows NT, is modified in such a way that the TCP/IP-stack is able to transparently send packets over multiple transmission lines. The same process is repeated for incoming traffic, i.e. the TCP/IP-stack is not aware of the fact that the packets are transmitted in parallel.
In this embodiment Windows NT is" used as the opera-tive system of the system. The subsystem of Windows re-sponsible for dealing with the lower layers of networking is called the NDIS wrapper (NDIS = Network Device Inter¬face Specification) and provides the interface between the various networking parts. The parts themselves are represented as Miniports, usually in the form of files ending with the suffix "SYS". These device drivers can be divided into two categories, protocols and adapters. The NDIS wrapper is responsible for loading these drivers and for keeping track of which protocols are using which adapters. This is also known as binding, i.e. a protocol binds to one or several adapters.
The protocol device drivers implement a specific communication protocol at the transport layer, e.g. IP. They are responsible for sequencing a data stream into
27

packets and framing these packets. By, framing is here meant the process of adding header information to the packet.
The adapter device drivers are responsible for transmit ting blocks of data to the physical medium. They are also responsible for signalling to the upper layers when incoming data is available.
The TCP/IP stack on Windows NT is the component re¬sponsible for implementing the IP protocol and associated services, e.g. TCP and UDP. The protocol itself requires an IP address for each adapter it binds to. The stack is also capable of IP forwarding, meaning that any IP pack¬ets arriving with a destination address other than any of the local adapters" will be "forwarded" to another com¬puter. The TCP/IP stack decides which adapter to use when sending IP packets based on the contents of a routing ta¬ble. This table contains a list of IP addresses and asso¬ciated masks, i.e. values that specify which parts of the corresponding IP address should be considered valid when doing routing calculations.
It is preferred that the system is as transparent as possible. This could be accomplished by creating a so-•called Intermediate NDIS Driver. Such an intermediate driver is a driver arranged between existing protocols and adapters. They appear as adapters to protocols, and as protocols to adapters. The intermediate driver accord-ing" to the invention is called a Protocol Adapter Module, (PAM) . The PAM utilizes adapters. known as Network Driver Modules (NDM) when communicating with.the transmission links. A NDIS wrapper with installed PAM and NDM is il¬lustrated in Fig 8.
The PAM binds to the appropriate adapters and/or NDMs. It then exposes itself as a network adapter and is
28

subsequently bound to the overlying protocol (s) . It modi¬fies and, if necessary, splits the outgoing packets and adds certain header data to the split packets (also called fragments). It keeps track of which NDMs are ac¬tive and what their transmission performances are. It then uses this as a basis when sending the fragments. It also queues and, if necessary, reassembles incoming frag¬ments before passing them on to the bound overlying pro¬tocols.
There is preferably one NDM for each logical link. These are either standard Miniports provided by the manu¬facturer of the hardware, or specially developed if no regular Miniport is available. In either case they are preferably implemented as standard NDIS adapters.
All device drivers could be implemented as dynamic link libraries (DLLs).
In a preferred embodiment the NDIS will call the drivers during the binding phase when it analyses the registry. The adapters will receive a single call to their initialization routine, at which time they should attempt to claim hardware resources and contact their NICs (Network Interface Card). Protocols, on the other hand, will receive a call for each adapter they"re bound to. This allows them to allocate a memory area in which they can store state information on a per-adapter basis.
Adapters will be queried by NDIS as to their capa¬bilities, e.g. maximum packet size, media supported, link speed, etc. NDIS will use this information when process¬ing packets.
When a protocol sends a packet through NDIS, it is expected that the adapter responsible for the actual transmission signals the protocol when it has finished sending the packet. Calling a function in NDIS with a
29

pointer to the packet in question carries this out. This process is known as completing the packet.
When the TCP/IP stack has finished opening and ini¬tializing its adapters, it broadcasts an ARP (Address Resolution Protocol) Request with the IP address being that of the local interface(s) . It does this in order to find out if there are .any conflicts in the reachable net¬works. If no reply is received, the stack assumes that there is no conflict and activates the adapter. If, on the other hand, an ARP reply is received, there is obvi¬ously a conflict, so TCP/IP prints an error message and disables the adapter.
When TCP/IP sends a packet it needs to know two things: which adapter to use and which Ethernet address to use for the destination address. The Ethernet address is retrieved by means of an ARP request, and is stored in a table. The adapter to use is resolved by consulting the routing table.
An entry in the routing table preferably contains the following information:
• Network destination: This is the destination IP ad¬
dress .
"• • Netmask: Before making any comparisons based on the IP address, a logical AND between it and the netmask value is first performed. This allows for making com¬parisons based on a group of values instead of one at "the time.
• Gateway: This is the IP address of the "gateway", i.e. the host that knows where to send packets with an IP address matching that of the Network destination.
• Interface: The Interface is the IP address of the -adapter responsible for sending the packet.


• Metric: The Metric is a simple value that would be used when choosing which Interface to use if more than one was possible for the actual route.
The Transmission Process
The system according to the example basically con¬sists of two bi-directional data flows; one outgoing from the overlying protocol, and one incoming from the under¬lying NDMs. However, several incoming or outgoing flows could be used as well. The data flows are received and sent as packets. Each incoming packet is split into frag¬ments if it is too large to fit within a single NDM packet. The fragment (which can consist of a single packet if the packet is small enough) has header data added to it before it is sent to an NDM for further transmission. This is illustrated schematically, in Fig 9.
The process is repeated in reverse for incoming fragments, except that multi-fragment packets will be held in a list until all fragments belonging to a certain packet has arrived. If a certain amount of time passes without any new fragments belonging to the partially re¬assembled packet have arrived, the packet is,considered lost and all fragments belonging to it are discarded.
An Example of an Inventive Protocol Adapter Module (PAM) according to the invention
, The PAM is responsible for the ""one-to-many" inter¬face, i.e. it poses as a single Ethernet adapter to NDIS, but binds to several adapters below it. A PAM is used by the client computer, but also by the router gateway. The only difference between them is that the PAM on the router gateway binds to an Ethernet adapter as well as to the Serial NDM, and intercepts and replies to ARP re-


quests regarding the client"s IP address coming from other computers than the router gateway.
The PAM according to the invention preferably com¬prises the following classes of objects. The functional relationship between these classes in the PAM is illus¬trated in Fig 10.
• Main: This is the class responsible for the creation of all other objects. It also contains the global driver entry function called by NDIS as soon as the device driver is loaded. The Main object creates all other objects and stores their addresses in public pointers. The other objects are able to access each other through theses pointers by using a global pointer to the Main object.
• SplitJoin: This class is the "spider in the web". It receives outgoing packets from UpperAdapter and, if necessary, splits these packets into smaller parts called fragments. It then lets Framing add fragment-specific headers before calling the LowerAdapter de-cided by Router and asking it to send the fragment. It also lets Arp construct fake ARP replies and returns them to UpperAdapter.
The process is repeated in reverse for incoming frag-ments; Framing verifies them and removes the unneces-sary header data. The fragments are then stored in a list, waiting for the other fragments that make up the original packet to arrive. When the whole packet has been received, SplitJoin reconstructs it and lets Framing add an Ethernet header before sending it to UpperAdapter. • Router: This class decides which NDM will get the next packet fragment. It uses data from the Statistics ob-


jects and compares transmission speeds, cost, etc. As of now the algorithm simply assigns the first packet to the first NDM, the second packet to the second NDM, etc in a round-robin fashion.
• Framing; The Framing class provides functionality used when adding fragment headers to the packets handed to it by SplitJoin. It also verifies the integrity of in¬coming fragments and removes the headers. When Split-Join sends incoming packets to the TCP/IP stack, Fram¬ing adds the fake Ethernet headers. In order to do this, it queries Config as to what the-PAM"s fake Ethernet address is.
• Arp: This class provides functionality used when de¬tecting and replying Ethernet ARP requests. Since TCP/IP will not send anything until it has received an Ethernet address corresponding to the IP destination address, a "fake" Ethernet address must be provided. At the same time, it is not desirable to provide fake Ethernet addresses for anything but the client"s IP. Thus Arp must query Config what the client"s IP ad¬dress is.
» DpperAdapter: This is the class providing the "one" interface. It is responsible for the upper communica¬tion with the protocols bound to the PAM, e.g. TCP/IP. It informs NDIS that it is a "late binding" adapter, i.e. it will not register with NDIS as an Ethernet adapter until at least one NDM has been bound to the protocol part of the PAM.
UpperAdapter is also responsible for handling any que¬ries from NDIS, such as the PAM"s Ethernet address, link speed, maximum packet size supported, etc.
X

• LowerAdapter: This class represents the lower adapters bound to the PAM. Since it is the protocol"s responsi¬bility to keep state information for its adapters, Protocol creates one instance of this class for each NDM that binds. Their main responsibility is notifying SplitJoin of incoming packets.
In the modified PAM on the router gateway computer in the Prototype Test Configuration, a special LowerAdap-ter is created for the Ethernet card used when doing IP-forwarding. This LowerAdapter"s only task is to in¬tercept ARP requests from other computers regarding the client"s IP. Since ARP requests aren"t forwarded to the client, the PAM creates an ARP reply and re¬turns it without it even reaching the TCP/IP layer.
• Protocol: This class represents- the protocol portion of the PAM. During the binding phase, it will be noti¬fied by NDIS when it should open the adapters bound to" it. As soon as it has opened the first NDM, it calls UpperAdapter and informs it that it can expose its in¬terface to NDIS.
• Statistics: There is one Statistics object for each ", LowerAdapter, and they have a one-to-one relationship. The Statistics object is called by its LowerAdapter partner each time it sends or receives a packet. It is also informed of bad or incomplete packets, etc. The Router object queries the Statistics objects when mak¬ing its decision of which LowerAdapter will be used when sending the next packet.
• Control: This is the class responsible for communica¬tion with other processes. It does so by responding to Device 10 Control Codes, or IOCTLs (Device Input Out¬put Control Code). These are sent by e.g. the user in-

terface when it requests that a transmission parameter be changed.
• Config: UpperAdapter calls this class when it initial¬izes. This allows it to read any PAM-specific parame¬ters stored in the registry. It is also called by the LowerAdapters and reads parameters stored on a per-NDM basis. Such parameters could be COM-port to use, transmission speed, inactive at start, etc.
An example of an Inventive Network Driver Module (NDM) according- to the invention
The NDM preferably appears as an Ethernet adapter to NDIS. The NDM according to the invention comprises the following classes of objects. These classes and the rela¬tionship between them are illustrated in Fig 11.
• Main: This is the class responsible for the creation
of all other objects. It also contains the driver en¬
try function. The only global symbol in the NDM is a
pointer to the Main object. It, in turn, has public
pointers to all instances of the other objects. Main
does not participate in any actions once the other ob¬
jects have been initialized; it merely acts as a
"global" data area.
• Adapter: This class provides the NDIS adapter inter¬face callbacks. It opens the underlying serial port through use of Serial"s Open method. Adapter also con¬tains callbacks called by Serial when it notifies of new incoming packets or the completed sending of an outgoing packet. Sent packets are then completed to NDIS.
• Arp: This class analyses packets received from the overlying protocol- If it turns out to be an Ethernet ARP Request, Arp provides methods for constructing a


corresponding ARP Reply. Since the PAM intercepts any ARP Requests before they reach the NDM, the function¬ality of this class is not used when the NDM is bound to the PAM only.
• Serial: This class is directly responsible for the translation and transmission of the packet data over the RS-232 medium. It first sends the Serial Test Pro¬tocol header, followed by the packet data itself. This send-procedure is carried out in an asynchronous man¬ner. It also receives (and, if synchronization is lost, resynchronizes) data transmitted in the opposite direction. This data is then passed on as a chunk to the callback specified when- initializing the Serial class through use of the Open method.
Data sent to or received from the 10 subsystem is transferred by means of I/O Request Packets (IRPs) , a data structure used by all kernel components in Win¬dows NT.
The implementations for the PAM and the NDM pre¬sented above are however merely an example, and several alternatives are possible. For example, the implementa¬tion above is based on Windows NT as the operative system (OS) . However, the invention may as well be implemented on other OS, such as UNIX/Linux. The references given above to Windows should therefore not be construed as only meaning the specific features and objects provided by Windows, but to comprise any similar feature and ob¬ject in other OS.
Further, one additional interesting application of the system according to the invention in the mobile data area is the combination of circuit-switched and packet-


switched data links. One can use a regular GSM (Global System for Mobile communication) link, or more likely a High-Speed Circuit-Switched Data. Evolution of GSM that allows higher transfer speed HSCSD (High-Speed Circuit-Switched Data) link and combine that with a GPRS (General Packet Radio Servi ce) link. The HSCSD link would termi-nate as usual, though fragments sent through it would be directed to the router gateway, since the HSCSD connec-tion eventually ends up on the Internet. The GPRS link, being packet-switched from the beginning, would be treated in a similar manner. The greatest point of having this setup, would be that the GPRS link could provide an "always-on" quality, enabling the ,user to be connected constantly without paying except when transferring data. The HSCSD link could then be enabled when the need for more bandwidth arises, keeping the total cost at a mini-mum while at the same time providing greater transmission speeds than is possible with either GPRS or HSCSD alone. There are a number of possible optimization options, such as the balancing of speed and cost, keeping the delay in-troduced when connecting with the HSCSD link at a mini-mum, etc.
An Example of Another Inventive Embodiment of the inven-tion
The invention, as described above, may further be used as a method by which a computer may transparently use multiple communication links with individual IP ad-dresses. The method enables roaming between IP network technologies.
The benefits of this solution are many:
37

• The connection is maintained even when individual con-
nection links are dropped because of coverage, over-
load, bad reception or any other reason
• Only one IP address is used externally which removes any troubles when changing between the links (only for IP addressing)
• It is possible to optimise the transfer for speed or cost
• Roaming between different technologies or different instances of the same technology is possible (e.g. it is possible to roam with WLAN which in itself has problems providing the possibility).During the time the user is not covered by wLAN, any other communica-tion link is used to maintain the connection.
• The user will get the benefits of all the different communication links, giving a. solution that is better than any of the individual links.
In the connected world of today, having an Internet connection is for many people and applications an abso-lute necessity. Until now people have connected to the Internet through a multitude of methods, e.g.
• Modem
• Local Area Network

• ISDN • Cable
• Etc
So far only one of these has" been the active commu-nication link at any given time.
Although ISDN is in fact able to use multiple commu-nication links (B-channels) in parallel, those links ter-minate at the same location and are circuit switched. In
38

principle, therefore, ISDN may be regarded as a single communication link.
Mobility is an issue that has not been of great im¬portance in the past. Some advances have been made but the available bandwidth has been much too low to render it of any practical use. Mobile communication solutions have mostly been of -a semi-stationary character, e.g. portable computers with a built-in modem that is used to connect to the Public Switched Telephone Network (PSTN).
In the future we are likely to see a more complex scenario with a multitude of optional ways to connect to the Internet. Depending on various reasons (required bandwidth, cost issues, coverage, practical feasibility etc) the user will normally select one of the available communication links at a time. This will work for sta¬tionary users who can make a selection and continue using it for a few hours. For mobile users, the situation is not quite as simple, even though increases in mobile bandwidth will make mobile data communication more inter¬esting.
Moving around, the user will.be within coverage of different network access methods at different times, as is shown schematically in Fig 12. At home or in the of¬fice, wireless LAN (WLAN) will probably be the preferred method. At other times the user may be able to use con¬nection points based on Bluetooth or other short-range systems. When out of range of all other systems a mobile communication system such as GPRS, EDGE or WCDMA (Wide¬band Code Division Multiple Access) or any of their suc¬cessors will provide coverage. Of course more traditional methods like LAN or modem are still possible. The follow¬ing table indicates the range of some known communication technologies:


Long-range (A) Medium-range (B) Short-range (C)
GSM WLAN 56k modem
HSCSD ISDN
GPRS LAN
EDGE Bluetooth-LAN
WCDMA
PCS
Switching between these systems means that the user will constantly change the IP address by which it is known on the network. This, in turns, means that the user will have to re-establish connections. This involves:
• Disconnecting from the first communication link
• Connecting via a new connection link (which may or may not function)
• Restarting; transfers that are already in progress
(file transfers etc), thereby aborting transfers that may have taken minutes or even hours so far but have not finished
• Re-establishing iPSec tunnels since the authentication
will fail because the IP address has changed
To some extent WCDMA and other wide spread mobile systems will make it possible to be mobile while trans-ferring data.. The cost associated with such methods will make it infeasible for constant use. The user will there-fore still have to choose the connection method.
A solution to the problem described above is to tun-nel the data on multiple communication links. One or sev-eral of. these links are active at any one time and the system will support adding or removing links, either
40

manually or automatically. The reason that communication links will be added or removed could be, but is not re-stricted to:
• Losing coverage
• A communication link that is faster or cheaper than the one(s) currently used has been added (e.g. arriv-ing to the office)
• Manual selection by the user
To enable the solution, two functional entities must be added:
• Client software
• Server software
The core of the client software is placed below the TCP/IP stack of the client. The client software is re-sponsible for forwarding data on one or more of the available communication links. An embodiment of the sys-tem according to this aspect of the invention is sche-matically illustrated in Fig 13.
However, the client is not restricted to use three communication links as depicted in the illustration. Also, the type of link is independent of the solution as long as all the communication links are capable of trans-porting IP packets to and from the Internet.
The server software receives data from multiple cli-ents, each of which may transmit data over multiple com-munication links. The server forwards the data to the re-mote server and relays the response back to the client that made the initial request. The remote server may be any server supplying information to the client, e.g. a web server.
41

The system may offer the possibility to restrict the usage to individual users or groups of users.
As data is received from remote servers by the server there are two ways to identify which client should receive the data:
• Port numbers
• IP addresses
These two methods will be described in the following two sections.
The benefits of this solution are many:
• The connection is maintained even when individual con-nection links are dropped because of coverage, over-load, bad reception or any other reason
• Only one IP address is used externally which removes any troubles when changing between the links (only for IP addressing)
• It is possible to optimise the transfer for speed or " cost
• Roaming between different technologies or different instances of the same technology is possible (e.g. it is possible to roam with WLAN which in itself has problems providing the possibility) . During the time the user is not covered by WLAN (Wireless. Local Area Network) any other communication link is used to maintain the connection.
• The user will get the benefits of all the different communication links, giving a solution that is better than any of the individual links.
Port addressing works by using port numbers to iden-tify the intended destination of data. Data sent from a


client will have one of the IP addresses of the client as sender. The server will open a connection to the remote server, replace the sender address with its own (IPso) and then forward the data. When the server receives a reply it examines the port address to decide which client should receive the result. The server then sends the data, together with any other information the client needs to reconstruct the IP packet.
The PAM (Protocol Adapter Module) reports an IP ad¬dress to the TCP/IP stack. This address may be the IP ad¬dress of one of the links but it does not have to be. If it is the IP address of one of the links, the address may still be used even if that communication link is dropped, thus making it possible to maintain a connection even if the link with that IP address is dropped.
Port addressing works for most transfers. It spe¬cifically works for web (HTTP) transfers. Port addressing will be important when IP addresses are a scarce resource since a single IP address (IPS0) on the server can serve many clients. More clients can be served through this method by allocating additional IP addresses from the pool of addresses (IPS0-IPSn) for port addressing.
In some cases the port addressing may not be used. In those cases IP addressing will be used.
The server is in this case given a range of IP ad¬dresses (IPSO-IPSN) the illustration, minus any that are used for port addressing) that may be given to clients. These addresses are allocated to clients on a temporary basis, in much the same way as when using DHCP (Dynamic Host Configuration Protocol).
The client (or more specifically the PAM) requests a dynamic or static IP address from the. server. This ad¬dress (IPsx) could be the one that PAM reports to the


TCP/IP stack, although the stack could be configured to use a static IP address that vill never be visible out-side the client. All packets " .,ent will have this address as the sender address. PAM sends packets (after possibly having split them into smaller fragments) on the multiple communication links, each with its own IP address, through gateways to the server. The server reassembles the packets and forwards the resulting IP packet, i.e. a packet identical to the one that was sent from the IP layer of the Client. The IP packet that leaves the server has the IP address IPSx as sender.
IP packets sent from the network to the client are addressed to the IP address, belonging to the client (IPSx) . Packets sent to that address are routed to the server, which forwards them to the client by changing the destination IP address on the fly, possible after having split, the packet into fragments. The server does not have to use port numbers since the IP address uniquely identi-fies the destination.
PAM recollects the fragments and reconstructs the initial IP packet, which is passed to the IP layer of the TCP/IP stack.
The client sees PAM as a regular network adapter. The network likewise views the IP address of the client as the only IP address of the client. What happens in the tunnel is completely transparent to the communication of the above layers. Consequently, all applications will work as intended, ignorant of the multiple communication links used to transport the data.
IP addressing requires the use of an extra IP ad-dress for every active client. Because of that fact port addressing will be used whenever possible as long as IP addresses are scarce.


The invention may be used to combine different known communication methods, such as HSCSD & GPRS. In this case the user has an HSCSD (High Speed Circuit Switched Data) card in the computer and an external GPRS telephone. Each of these could be used for mobile data communication. With the solution presented in this paper, they can be used in conjunction. GPRS will then be used to stay on-line while HSCSD provides the possibility to give dedi-cated bandwidth. To the user this means less cost and higher bandwidth. To the operator it means a more effi-cient use of radio resources.
Another example is to combine WLAN & WCDMA. In this case the user has a computer with WLAN and WCDMA capa-bilities, either internally or externally. WLAN is the preferred method of communicating since it provides higher bandwidth as well as lower cost. WLAN, however, lacks coverage and may not provide to possibility to roam. WCDMA is therefore used to maintain the connection when moving between different WLAN areas. It is not nec-essary to transfer large amounts of data over WCDMA dur-ing those times. Only small amounts of data need to be transferred to keep the connection alive until the user reaches another area that is covered by WLAN. As soon as the user once again is within WLAN coverage, either WLAN or WCDMA is used to report the new IP address for the WLAN link to the server.
Still further., Bluetooth and GPRS/EDGE/WCDMA may be combined. In this case a mobile communicator is equipped with both Bluetooth as well as the capability to communi-cate with a mobile communication network such as GPRS, EDGE or WCDMA. While being within range of a network that is accessible via Bluetooth that network is the primary choice because of higher speed and lower cost. When mov-
45

ing around, the mobile network is used to transfer data. By implementing the method described in this paper the communication equipment is always on-line and always us-ing the preferred technology among those which are avail-able.
The, invention has been described herein by means of one embodiment. Several modifications are, however, pos-sible. For instance, the system may be used for transmis-sion between two equivalent units, none of which operates as server and is connected to an additional network. In addition, other types of optimisation are conceivable, and consequently also other types of information are re-quired. In addition, the information" could be gathered continuously at predetermined times/or when needed, or else be entered at separate occasions. The system could also comprise a larger number of units, such as more cli-ents who communicate with one common server. These and other obvious varieties must be regarded to be within the scope of protection of the invention as the latter is de-fined in the appended claims.


We Claim:
1. A system for transmission of data between at least two units (1,2) adapted to intercommunicate, said system comprising at least two possible communication routes (3-5) having different characteristics, wherein the characteristics of at least one of said routes is variable during the data transmission, and wherein each unit comprises a transmission unit including means for gathering information on the characteristics of the possible communication routes, said information at least partly being gathered during the data transmission,
characterized in that each unit further comprises means for dividing, on the basis of said information and of an optimising condition, the flow of data, preferably in the form of data packets, among at least two of said communication routes, and wherein each unit further comprises a corresponding receiver unit with means for re-combining the data flow transmitted via said at least two communication routes, whereby the division of the flow of data between said at least two communication routes is continuously optimized in accordance with said optimizing condition during the data transmission.
2. The system as claimed in claim 1, wherein the transmission unit comprises means for dividing the flow of data, preferably in the form of data packets, wherein the division among the communication routes is achieved by for each such divided part and on the basis of said gathered information and of an optimising condition, choosing one of said at least two communication routes.
3. A system as claimed in claim 1 or 2, wherein said transmission unit is adapted to continuously gather information on the

characteristics of said communication routes (3-5) and to automatically perform said division of the flow off data on the basis of that information.
4. A system as claimed in any one of claims 1 to 3, wherein the characteristics on which said transmission unit gathers information are one or several of the following ones, viz. fixed and variable prices, maximum and current speed, packet size, transportation time, ID or similar information on forwarding units, and predetermined priorities.
5. A system as claimed in any one of the preceding claims, wherein the optimization condition comprises one or several optimising parameters, such as price, speed, preferences with respect to intermediary forwarding units.
6. A system as claimed in claim 5, wherein the optimising condition comprises several optimising parameters and an indication, given in advance, of priorities relating to said optimising parameters.
7. A system as claimed in any one of the preceding claims, wherein at least one of said communication routes (3) is a wireless route.
8. A system as claimed in claim 7, wherein said communication routes are wireless communication routes comprising several base stations.
9. A system as claimed in any one of the preceding claims, wherein at least one of said communicating units (2) in turn is connected to a further network for forwarding data to and from said network.

10. A system as claimed in any one of the preceding claims, said transmission unit comprising a module having a uniform interface to additional systems while at the same time being capable of communicating via said at least two communicatibn routes, the latter preferably differing with respect to at least interface or transportation medium.
11. A system as claimed in claim 1 or 2, wherein at least one of said at least two communication routes is provided by a separate unit wirelessly connected to one of said two units.
12. A system as claimed in claim 11, wherein compensation for utilizing said separate unit is solved by means of an intelligent billing system.
13. A method of transmitting data between at least two units (1, 2), which are adapted to intercommunicate via at least two possible communication routes (3-5) having different characteristics, wherein the characteristics of at least one of said routes is variable during the data transmission, comprising the step of:
gathering information on the characteristics of the possible communication routes, wherein said information at least partly is gathered during the data transmission; characterized by the further steps of: gathering information on an optimising condition; dividing said flow of data on the basis of said information; transmitting each part of the thus divided data flow, preferably in the form of data packets, to one of said two communication routes, the choice of communication route for each part being controlled by the information gathered and by the optimisation condition given; and

receiving and re-combining the data flow transmitted via said at least two communication routes;
whereby the division of the flow of data between said at least two communication routes is continuously optimized in accordance with said optimsing condition during the data transmission.
A method as claimed in claim 13, wherein the characteristics on which information is gathered are one or several of the following: fixed and variable prices, maximum and current speed, packet size, transportation time, ID or similar information on forwarding units, and predetermined priorities.
A method as claimed in any one of claims 13 to 14, wherein the optimising condition comprises one or several optimising parameters, such as price, speed, preferences regarding intermediary, furthering units.
A method as claimed in any one of claims 13 to 15, wherein it comprises the step of transmitting the data received to another network.
A method as claimed in claim 13, wherein at least one of said at least two communication routes is provided by a separate unit wirelessly connected to one of said two units.
A method as claimed in claim 17, wherein compensation for utilizing said separate unit is solved by means of an intelligent billing system.
A terminal unit for transmission of data via at least two communication routes (3-5) having different characteristics,

wherein the characteristics of at least one of said routes is variable during the data transmission, said terminal unit comprising a transmission unit (1) which is connected to said at least two communication routes (3—5) and a receiver unit (2), wherein the transmission unit divides a flow of data into parts and transmits said data flow parts essentially simultaneously on said at least two communication routes (3-5), and in that the receiver unit (2) receives parts of a data flow on different lines and to re-combine them into one flow.
20. A terminal unit as claimed in claim 19, wherein at least one and preferably all communication routes (3) are wireless routes.
21. A terminal unit as claimed in claim 20, wherein it comprises several antennae and preferably one antenna per wireless communication route.
22. A terminal unit as claimed in claim 20 or 21, said terminal unit comprising several transmission unit, and preferably one transmission unit per wireless communication route.

Dated this 10th day of October, 2001.

Documents:

abstract1.jpg

in-pct-2001-01242-mum-affidavit(27-11-2001).pdf

in-pct-2001-01242-mum-cancelled pages(09-06-2005).pdf

in-pct-2001-01242-mum-claims(granted)-(9-6-2005).pdf

in-pct-2001-01242-mum-claims(granted)-09-06-2005.doc

in-pct-2001-01242-mum-correspondence(ipo).pdf

in-pct-2001-01242-mum-correspondence.pdf

in-pct-2001-01242-mum-drawing(9-6-2005).pdf

in-pct-2001-01242-mum-form 13(27-11-2001).pdf

in-pct-2001-01242-mum-form 19(28-4-2004).pdf

in-pct-2001-01242-mum-form 1a(10-10-2001).pdf

in-pct-2001-01242-mum-form 1a(6-6-2005).pdf

in-pct-2001-01242-mum-form 1a(9-6-2005).pdf

in-pct-2001-01242-mum-form 2(granted) (9-6-2005).pdf

in-pct-2001-01242-mum-form 2(granted)-09-06-2005.doc

in-pct-2001-01242-mum-form 3(10-10-2001).pdf

in-pct-2001-01242-mum-form 5(10-10-2001).pdf

in-pct-2001-01242-mum-form 5(9-6-2005).pdf

in-pct-2001-01242-mum-form pct-ipea-409(10-10-2001).pdf

in-pct-2001-01242-mum-petition under rule 137(9-6-2005).pdf

in-pct-2001-01242-mum-power of attorney(10-10-2001).pdf

in-pct-2001-01242-mum-power of attorney(6-6-2005).pdf


Patent Number 213286
Indian Patent Application Number IN/PCT/2001/01242/MUM
PG Journal Number 04/2008
Publication Date 25-Jan-2008
Grant Date 26-Dec-2007
Date of Filing 10-Oct-2001
Name of Patentee ICOMERA AB
Applicant Address STENA CENTER 1C, SE-41292 GOTEBORG SWEDEN
Inventors:
# Inventor's Name Inventor's Address
1 MARTIN BERGEK KULLENGATAN 8B, SE412 62 GOTEBORG
2 KRISTIAN AXELSSON EKLANDAGATAN 23A, SE-412 82 GOTEBORG
3 MATS KARLSSON RICHTERSGATAN 2B-2205, SE-412 81 GOTEBORG, SWEDEN
4 MAGNUS AGERVALD
PCT International Classification Number H04L12/56 H04Q11/04
PCT International Application Number PCT/SE00/00883
PCT International Filing date 2000-05-04
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 9901621 1999-05-04 Sweden
2 0000707-0 2000-03-01 Sweden