CN101841463A - Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol) - Google Patents

Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol) Download PDF

Info

Publication number
CN101841463A
CN101841463A CN201010120184A CN201010120184A CN101841463A CN 101841463 A CN101841463 A CN 101841463A CN 201010120184 A CN201010120184 A CN 201010120184A CN 201010120184 A CN201010120184 A CN 201010120184A CN 101841463 A CN101841463 A CN 101841463A
Authority
CN
China
Prior art keywords
address
path
client
message
addr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010120184A
Other languages
Chinese (zh)
Other versions
CN101841463B (en
Inventor
吴茜
张文涛
阳旺
李贺武
李风华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN2010101201847A priority Critical patent/CN101841463B/en
Publication of CN101841463A publication Critical patent/CN101841463A/en
Application granted granted Critical
Publication of CN101841463B publication Critical patent/CN101841463B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention relates to a multipath cocurrent transmission method based on an SCTP (Stream Control Transmission Protocol), relating to data transmission and communication among multiaddress host computers. The method is characterized in that multipath reachable paths are simultaneously utilized to carry out end-to-end data transmission by expanding a main standby path mechanism of the standard SCTP in the same SCTP relationship and adopting certain path detection and path selection strategies; meanwhile, distinguishing from the only correspondence mechanism of the path and the target address in the realization of the traditional SCTP protocol, the invention utilizes a (an original address and a target address) binary unit to define the path together so that the number of the available paths in the relationship to be maximal and the basis for realizing more complex paths is provided; finally, the invention is based on a Linux system to carry out code realization, and the data groups are sent strictly according to the designated original address and the target address under the condition of multiple available paths. The invention efficiently improves the throughput of end-to-end data transmission on the basis of keeping the advantage of strong fault tolerance of the standard SCTP protocol.

Description

Based on the concurrent transmission method of the multipath of SCTP
Technical field
Belong to the internet transmission technical field based on the concurrent transmission method of the multipath of SCTP, relate generally between the Multihomed Host transfer of data with communicate by letter.
Background technology
In recent years, since GSM, GPRS, 3G, Wifi, the reduction that the coexistence of the mechanics of communication standard of different technical characteristics such as Wimax and large-scale industrial production are brought the communication module cost makes intelligent mobile terminal develop towards many Radio direction.If end system has available heterogeneous radio of a plurality of whiles, perhaps a plurality of Ethernet interfaces will have many available links of while between the end system.The end-to-end multi-path data host-host protocol of research heterogeneous network, thus multiple network resources effectively utilized, be a problem that great researching value is arranged for application end to end provides better support.
Yet traditional internet transmission layer protocol is as most popular Transmission Control Protocol, because its connection identifier has comprised single source address and destination address, so transfer of data can only be used single-pathway end to end.SCTP (SCTP, Stream Control Transmission Protocol) has carried out two main expansions with respect to traditional transport layer protocol, promptly supports Multihomed Host and supports single SCTP to use a plurality of streams in related.For example, the http server of multithread can utilize two streams to load HTML and picture image simultaneously in an association, thereby shows better response.But a plurality of streams in the same association of Stream Control Transmission Protocol are just different on logical meaning, be not corresponding with different physical transfer paths, in fact, the transfer of data that loads two logic flows of HTML and picture image is all carried out on same physical transfer path.As seen, multithread can only improve the parallelization responsiveness to a certain extent, but can't improve throughput end to end.If will improve in the SCTP association throughput end to end, then need to utilize SCTP to support the characteristic of Multihomed Host.
But the standard Stream Control Transmission Protocol utilizes multi-address purpose only to be to strengthen the fault-tolerance of connection, has one to be chosen as prefered path in all available paths in association, and all the other are as alternative path.Under the normal condition, transfer of data is only carried out on prefered path, has only when the connectedness of prefered path goes wrong, and just enables alternative path.Therefore the Stream Control Transmission Protocol that is standard can't make full use of the network bandwidth resources of mulitpath only in the enterprising line data transmission of single-pathway, also can't improve the throughput of end-to-end communication well.
Summary of the invention
The present invention proposes based on the concurrent transmission method of the multipath of SCTP and (be designated hereinafter simply as SCTP-MP, be Multi-PathSCTP), it is characterized in that, in a SCTP association, by the active-standby path mechanism in the extension standards Stream Control Transmission Protocol, make mulitpath can be used for transfer of data simultaneously, and be different from traditional Stream Control Transmission Protocol realize in the path only with the corresponding path definition method of destination address, the present invention's use<source address, destination address〉two tuples define the path, thereby make that the quantity of available path reaches maximum in the association, simultaneously also for realizing that complicated more routing algorithm provides the foundation.The present invention is based on linux system and carried out the code realization, can't guarantee the problem that packet can send from the pairing physical interface of the source address of appointment at traditional route system, proposed to use the method for IP strategy route, thereby realized that under the situation that mulitpath can be used packet can transmit in strict accordance with specified source addresses and destination address.
The invention is characterized in that described method is to realize according to the following steps successively in the Internet of forming between the client and server end:
Step (1), when between the client and server end, setting up the concurrent transmission of multipath related, shake hands according to four steps of SCTP SCTP and to set up when related, set up the available path tabulation at communicating pair, and make the maximization of available path quantity, its step is as follows:
Step (1.1), client is used for sub-routing table of each IP address creation of this related IP address list for this machine, default gateway is the gateway of this interface IP address correspondence in this sub-routing table, so that the meeting in group of designated source address is searched the sub-routing table corresponding with this address, guarantee that described grouping can send from the network interface card corresponding with specified source addresses
Step (1.2), client sends the IP address addr-S0 of initialize communications INIT message to a known server end, and source address is appointed as first local terminal address consistent with the destination address IP protocol type in the described IP address list of client, be not addr-C0 ', but in described INIT message, not only will comprise the IP protocol type that client is supported, also will comprise the client ip address of all the type, described IP protocol type is meant IPv6, or IPv4, have two kinds of protocol types
Step (1.3); Server end is after receiving described INIT message; The IP protocol type that the opposite end is supported in the IP protocol type of supporting according to local terminal and the described INIT message; Determine the common public IP protocol type of supporting in communication two ends; Then the local terminal IP address of all the type is write in the INIT-ACK response message; Reply to client; The destination address of this response message is addr-C0 '; Source address is appointed as addr-S0; Server end is stored described INIT newspaper all client ip address consistent with described common protocol type listed in the text simultaneously
Step (1.4); After client is received described INIT-ACK message; Read the IP address of all these common type of local terminal storage; Again with described INIT-ACK message in the IP address of the opposite end server that comprises jointly form path list; And write in the array; Comprise all possible path from the client to the server end in this array; And the source address of the client corresponding with the possible path of described each bar and the destination address of server end; Send out simultaneously a COOKIE-ECHO and reply message to server end; The path is appointed as<addr-C0 '; Addr-S0 〉
Step (1.5), server end is after receiving described COOKIE-ECHO message, add the mode bit mark that upper pathway can reach, and set up the path list of local terminal according to the method described in the step (1.4), send out a COOKIE-ACK to client simultaneously and reply message, the path is appointed as<addr-S0, addr-C0 ' 〉, and survey to remove described<addr-S0 with the HEARTBEAT message, addr-C0 '〉accessibility in outer other path: on the path of appointment, send the HEARTBEAT message, if receive the HEARTBEAT-ACK message that the opposite end client is replied on reverse path as the server end of transmit leg, then this path can reach, and makes a mode bit mark on this path;
Step (2), client or server end carry out transfer of data according to following steps successively:
Step (2.1), communicating pair use described HEARTBEAT message periodically to survey the accessibility of every paths in the described path list of local terminal set by step respectively described in (1.5),
Step (2.2), whenever there being grouping to be submitted to transport layer when sending from application layer, transmit leg adopts based on the formula routing algorithm by turns of congested control window and select the transmit path as this grouping from all path that can reach,
Step (2.3), the source address of transmit leg by bind () function designated packet is the source address in the specified path when sending, be grouped in the IP layer through after the route querying from the described sub-routing table of this address correspondence the gateway of correspondence send.
Communicating pair IP address separately is by the application program appointment.
Pass through realization<source address, destination address by this programme that experiment showed, in the real network environment〉mechanism of the common respective path of two tuples can increase data transfer path effectively, utilize line bandwidth more fully, reached link aggregation preferably.As seen, this programme has actual application value preferably, is comprehensive, a multi-path transmission solution efficiently.
Description of drawings
Fig. 1. client (Client) multiaddress, the single address situation of server end (Server).
Fig. 2. client (Client), server end (Server) are the situation of double address.
Fig. 3. client among Fig. 2 (Client) is to the available path tabulation of server end (Server).
Fig. 4 .SCTP-MP scheme four step shakes hands and sets up key operation in the association process.
Fig. 5. the routing strategy flow chart.
Embodiment
The present invention includes following steps, describe with the Client/Server model:
Step 1 goes on foot in the related process of the foundation of shaking hands at SCTP four, sets up the available path tabulation at communicating pair, and makes the maximization of available path quantity.
Step 1.1, the Client end sends initialization INIT message to a known Server end IP address addr-S0 (application program appointment), source address is appointed as the Client end and is used for this related IP address list, the local terminal address that first is consistent with destination address IP protocol type (IPv4/IPv6) is made as addr-C0 '.Comprise the IP protocol type of Client end support and the Client end IP address (also can specify operable IP address, below default to whole uses) of all the type in the INIT message by application program.
Step 1.2 after the Server end is received the INIT message, is supported type according to IP protocol type and the opposite end in the INIT message that local terminal is supported, determines the common public IP protocol type of supporting in communication two ends; Then the local terminal IP address of all the type is write in the INIT-ACK response message and (also can specify operable IP address by application program, below default to whole uses), reply to the Client end, the destination address of this response message is addr-C0 ', and source address is appointed as addr-S0; All listed Clients consistent with public anti-view type of Server end storage INIT message hold IP addresses simultaneously.
Step 1.3, after the Client end is received the INIT-ACK message, the peer IP address type that wherein comprises, the public ip address type of supporting for two ends.The IP address that the Client end reads all the type of local terminal, then with the INIT-ACK message in the peer IP address that comprises form path list jointly, and write array currentAssociation->path_list[] in, list size is currentAssociation->no_of_paths.
Array currentAssociation->path_list[] method for building up as follows: the Server consistent with public address type (IPv4/IPv6) end address is stored in array dAddresses[] in, the Client end address consistent with the public address type is stored in array sAddresses[] in.To dAddresses[] in each address dAddresses[i], with sAddesses[] in all address sAddesses[ks consistent with its type] and dAddresses[i] as the source address and the destination address of a paths, write path_list[according to the order of sequence] in.Only support all that with two ends the situation of IPv4 is an example, if array dAddresses[] size is dn, array sAddesses[] size is sn, array currentAssociation->path_list[then] size is dn*sn, promptly currentAssociation->no_of_paths equals dn*sn.
The Client end is replied the COOKIE-ECHO message and is held to Server, and the path is appointed as<addr-C0 ', addr-S0 〉.
Step 1.4, the Server end is set up the path list of local terminal according to mode identical with the Client end in the step 1.3, reply the COOKIE-ACK message, the path is appointed as<addr-S0, addr-C0 ' 〉, and survey to remove<addr-S0 addr-C0 ' with the HEARTBEAT message〉accessibility in outer other path.Identical in concrete detection method and the step 2.CurrentAssociation->path_list[] in every road indicate via the mode bit of a correspondence whether this path can reach.Path<addr-S0, addr-C0 '〉the mode bit initial markers for reaching, the value initial markers of other path status byte is unknown, afterwards by the result of detection decision of HEARTBEAT message.
Step 1.5, after the Client end is received the COOKIE-ACK message, beginning is at path<addr-C0 ', addr-S0〉(mode bit initial markers for can reach) go up to the Server end and send data, and with HEARTBEAT message detection currentAssociation->path_list[] in the accessibility in other path.Every road is through all having independently congested control window in this programme, and congestion avoidance algorithm sends situation according to the data on every paths its window is adjusted.
Step 2, in data transmission procedure, communicating pair uses the HEARTBEAT message periodically to survey array currentAssociation->path_list[] in the accessibility of every paths.Detection method sends the HEARTBEAT message for an end that connects on specified path, reply the HEARTBEAT-ACK message after receive the opposite end immediately on reverse path, if transmit leg is received the answer message, thinks that then this path can reach.Mode bit is labeled as the path that can reach can be selected to transmit data.
Step 3 whenever there being grouping to be submitted to transport layer when sending from application layer, adopts certain routing algorithm, selects the transmit path as this grouping from all reachable paths.This programme can use multiple routing algorithm flexibly, is that example is introduced with a kind of formula routing algorithm by turns based on congested control window here.Every paths all can have independently congested control window in this programme, the routing strategy of this algorithm is to send packet on current available path, write full until the congested control window of current path, switch to then and continue on the non-vanishing available path of the congested control window of next bar to send data, flow chart as shown in Figure 5.
Step 4, for guaranteeing that packet is at the path<source IP address of appointment in the data transmission procedure, purpose IP address〉go up transmission, each specified path wait that sending out grouping is submitted to the IP layer before, the source address by bind () function designated packet is the source address in the specified path.Being grouped in the IP layer sends from correct interface (network interface card) through after the route querying.
Step 5 because traditional system's routing rule is only searched routing table according to the destination address longest match principle, determines to wait to send out the source address of grouping then, therefore uses bind () function can't guarantee fully that also the source address of dividing into groups in strict accordance with appointment sends.So before the operation agreement, need be according to the tactful routing rule of the corresponding IP address setting of native interface (network interface card) based on the source of packets address, be sub-routing table of each IP address creation on this main frame, default gateway is the gateway of this interface IP address correspondence in the sub-routing table, specified the meeting in group of source address to search the sub-routing table corresponding like this, guaranteed that grouping sends from the interface corresponding with specified source addresses (network interface card) with this source address.
We at first introduce general status of the present invention.
This multi-path transmission method (SCTP-MP) has been expanded prefered path and the alternative path mechanism in the standard Stream Control Transmission Protocol, and the every paths of fair play makes it all can be elected to be the path of transmitting data by routing algorithm under the same conditions.And, be different from traditional Stream Control Transmission Protocol realize in the path only with the corresponding path definition method of destination address, the present invention's use<source address, destination address〉two tuples definition path, thereby make that the quantity of available path has reached maximum in the association, simultaneously also for realizing that complicated more routing algorithm provides the foundation.In addition, only search routing table to determine to wait to send out the source address of grouping at traditional system's routing rule according to the destination address longest match principle, thereby can't guarantee to divide into groups the problem that sends in strict accordance with the source address in the specified path, this programme has proposed to use the method for IP strategy route, thereby realized that under the situation of many available paths packet can transmit in strict accordance with specified source addresses and destination address.
How introduce this programme below makes in the SCTP association operational physical transfer number of paths reach maximum.
Traditional SCTP is corresponding one by one with destination address with transmission path in realizing, transmitting terminal is specified source addresses not, but directly obtains according to destination address inquiry main frame routing table.And in the main frame routing table, the only corresponding effective route table items of destination address, therefore in fact for each destination address, main frame only can use a paths to carry out transfer of data.Under this mechanism, the quantity of available transmission paths equals the quantity of destination address, makes the multiaddress characteristic of local terminal to be fully used.Situation as shown in fig. 1, Client main frame have two IP addresses, and the Server main frame has an IP address.Under Server end transmission data conditions,, then hold the Server end to have only a paths to use at the Client end from Client if available path is only corresponding with destination address.And in fact, two addresses of Client end can arrive the Server end, promptly have two available physical transmission paths, and in this case, wherein the bandwidth of a paths does not just obtain utilizing.
This programme has adopted new path definition mode, and promptly transmission path is defined as by<source IP address, purpose IP address〉two tuples formed, promptly form a complete path jointly by a source address and a destination address.Tentation data transmitting terminal and data receiver number of addresses are respectively m, n, and under the mechanism of destination address respective path, available transmission path number is n in the association in traditional SCTP realizes; And after setting up the mechanism of source address, the common respective path of destination address, because all there is a paths in any one local terminal address (source address) between any one address, opposite end (destination address), so available transmission path number is m*n in the association, improve greatly than traditional mechanism available path quantity.
For situation shown in Figure 1, hold the Server end then can utilize two paths to carry out transfer of data simultaneously from Client.Situation as shown in Figure 2 if Client end and Server end have two IP addresses respectively, then holds the Server end to exist 4 paths to use from Client again, and available path is tabulated as shown in Figure 3.Increased complexity though utilize 4 paths to carry out transfer of data simultaneously, provided the foundation for realizing complicated more routing algorithm.
Be presented in the method for setting up the available path tabulation in the SCTP association below.
The standard Stream Control Transmission Protocol was shaken hands and is set up an association by four steps, and in this process, the both sides of communication can be used for all IP addresses of this association alternately separately, all obtain the other side's available address each side after, can set up this related path list.Message switching procedure is as shown in Figure 4 set up four related step handshake procedures for the anti-view of standard SCTP, adopts traditional Client/Server model to describe.
The Client end sends to be set up before the related request, and the Server end need be opened corresponding service processes and prepare response.Going on foot in the process of shaking hands 4 alternately of address, two ends finished.4 step handshake procedures of standard Stream Control Transmission Protocol are as follows.CurrentAssociation->destinationAddresses[wherein] the type of each element in the tabulation is unionsockunion, it is defined as follows, to support two kinds of agreements of IPv4 and IPv6 simultaneously.
union?sockunion
{
struct?sockaddr?sa;//the?generic?socket?address?structure
struct?sockaddr?in?sin;//the?Internet(IPv4)socket?address?structure
struct?sockaddr?in6?sin6;//the?Ihternet(IPv6)socket?address?structure
};
1) at first, the Client end sends the INIT message, the Server end IP address addr-S0 (application program appointment) that destination address is known, and source address is made as addr-C0 by the decision of routing table Query Result.Comprise the IP protocol type (IPv4/IPv6) of Client end support and the IP address (also can specify operable IP address, below default to whole uses) that Client holds all the type in the INIT message by application program.
2) after the Server end is received the INIT message, support type, determine the common public IP protocol type of supporting in communication two ends according to IP protocol type and the opposite end in the INIT message that local terminal is supported; Then all local terminal IP addresses of the type are write and reply to the Client end in the INIT-ACK message and (also can specify operable IP address by application program, below default to whole uses), the destination address of reverse-path is addr-C0, and source address is determined by routing table; All listed Clients consistent with the common protocol type of Server end storage INIT message hold IP addresses simultaneously.Association this moment is set up as yet, the Server end also not for this reason association allocate resource in advance.
3) after the Client end is received the INIT-ACK message, the IP address, opposite end (Server end) that comprises in the message is write currentAssociation->destinationAddresses[] tabulation in, this tabulation is available opposite end address list, also is path list.List size, promptly number of paths is currentAssociation->noOfNetworks.The Client end is replied the COOKIE-ECHO message and is held to Server, and destination address is addr-S0.
4) after Server end was received the COOKIE-ECHO message, association was formally set up, and associated allocation resource for this reason.Simultaneously hold all listed Clients consistent of INIT message IP addresses to write currentAssociation->destinationAddresses[with the common protocol type] tabulate, as available opposite end address list, i.e. path list.The Server end is replied the COOKIE-ACK message to Client end address addr-C0 then, and surveys the accessibility of other address, opposite end except that addr-C0 with the HEARTBEAT message.The method of surveying is replied the HEARTBEAT-ACK message for sending the HEARTBEAT message to specific destination address after the Client end is received immediately, if the Server end is received the answer message, thinks that then this destination address can reach.
5) after the Client end was received the COOKIE-ACK message, beginning sent data to the Server end, and destination address is addr-S0, and surveys the accessibility of other destination address with the HEARTBEAT message.
In order to set up in the SCTP-MP scheme<source address, destination address〉mechanism of a common corresponding fullpath, and realize concurrent transmission, need go on foot in the process of the mutual address of shaking hands at standard Stream Control Transmission Protocol 4, set up new by<source address, destination address〉corresponding path list, to replace original simple destination address tabulation.To being amended as follows of 4 step handshake procedures, number of steps is with above consistent.Listed the key operation in each step in the message switching procedure among Fig. 4.
1) ' destination address of INIT message still is a known Server end address addr-S0 of application program appointment, source address is appointed as the Client end and is used for this related IP address list, the local terminal address that first is consistent with the destination address IP protocol type is made as addr-C0 '.
2) ' destination address of Server end answer INIT-ACK message is addr-C0 ', and source address is appointed as addr-S0.
3) after ' the Client end is received the INIT-ACK message, the peer IP address type that wherein comprises, the public ip address type of supporting for two ends.Client end reads in the local terminal address this related IP address that is used for of public address type unanimity therewith, then with the INIT-ACK message in the peer IP address that comprises form path list jointly, and write new data structure currentAssociation->path_list[] in, list size is currentAssociation->no_of_paths.
CurrentAssociation->path_list[] each member is a structure in the array, structure is defined as
struct?path_structure
{
union?sockunion?src_addr;//source?address?of?a?certain?path
union?sockunion?dest_addr;//destination?address?of?this?path
};
Wherein src_addr is the source address in path, and dest addr is the destination address in path, and promptly each paths is made of jointly a source address and a destination address.
CurrentAssociation->path_list[] method for building up as follows.If the Server consistent with public address type end address is stored in array dAddresses[] in, the Client end address consistent with the public address type is stored in array sAddresses[] in.To dAddresses[] in each address dAddresses[i], with sAddesses[] in all and dAddresses[i] address sAddesses[k that address style is consistent] and dAddresses[i] as the source address and the destination address of a paths, write path_list[according to the order of sequence] in.To with a kind of IP agreement, the quantity of available path has just been brought up to O (n from O (n) like this 2).
The Client end is replied the COOKIE-ECHO message and is held to Server, and the path is appointed as<addr-C0 ', addr-S0 〉.
4) ' Server end is according to 3) ' in the mode identical with the Client end set up the path list of local terminal.Server end is replied the path of COOKIE-ACK message and is appointed as<addr-S0 addr-C0 ' 〉, and survey with the HEARTBEAT message and to remove<addr-S0 addr-C0 ' outside the accessibility in other path.Concrete detection method sees below.
CurrentAssociation->path_list[] in every road indicate via the mode bit of a correspondence whether this path can reach.Path<addr-S0, addr-C0 '〉the mode bit initial markers for reaching, the value initial markers of other path status byte is unknown, afterwards by the result of detection decision of HEARTBEAT message.
5) after ' Client end was received the COOKIE-ACK message, beginning was at path<addr-C0 ', addr-S0〉(the mode bit initial markers is for reaching) go up to the Server end and send data, and with HEARTBEAT message detective path accessibility.By original to currentAssociation->destinationAddresses[] in destination address survey, be revised as currentAssociation->path_list[] in remove path<addr-C0 ', addr-S0 other outer path surveys.Every road is through all having independently congested control window in this programme, and congestion avoidance algorithm sends situation according to the data on every paths window is adjusted.
The path of introducing below in this programme is surveyed and routing strategy.
In the process of transfer of data, communicating pair is to path list currentAssociation->path_list[] in each paths, survey its accessibility by regular transmission HEARTBEAT message.Detection method sends the HEARTBEAT message for an end that connects on specified path, reply the HEARTBEAT-ACK message after receive the opposite end immediately on reverse path, if transmit leg is received the answer message, thinks that then this path can reach.Have only the path that can reach to be elected to be the path of transmission data by routing algorithm.
Owing to may have mulitpath to can be used for transfer of data simultaneously in an association,, determine the concrete path of adopting when each packet sends so need certain routing algorithm that data are shunted.This programme can use multiple routing algorithm flexibly, is that example is introduced with a kind of formula routing algorithm by turns based on congested control window here.Every paths all can have independent congested control window in this programme, the strategy of this algorithm Path selection is to send packet on current available path, write full until the congested control window of current path, switch to then and continue on the non-vanishing available path of the congested control window of next bar to send data, flow chart as shown in Figure 5.This strategy can make full use of the bandwidth resources of every paths, helps improving the throughput of whole association.
During the program of introducing below realizes, guarantee the method that packet is transmitted on the path of appointment.
Because in existing host operating system, transport layer only indicates destination address when the network layer data delivery, source address and actual transmission interface (network interface card) then are to be determined according to route searching result by network layer, therefore can't guarantee that packet can be according to the path<source IP address of appointment, purpose IP address〉transmission.And, only corresponding effective route table items of destination address in the routing table, therefore in fact for each destination address, main frame only can use a paths to carry out transfer of data.
Therefore for guaranteeing the path<source IP address of packet in appointment, purpose IP address〉go up and transmit, need make amendment to the data transmission procedure of transmitting terminal, at first need the source address of designated packet, need then to guarantee to divide into groups to send from the interface corresponding (network interface card) with specified source addresses.
The source address (union sockunion src) of specific data grouping can realize by calling socket function bind ().Realize statement following (with the IPv4 socket is example, down together):
bind(sfd,(struct?sockaddr*)src,sizeof(struct?sockaddr?in));
But after socket sfd use bind () function bind address src, this socket can only receive the grouping that destination address is src, and can not receive the grouping that destination address is address outside the src.Can both receive and dispatch grouping simultaneously for a plurality of interfaces of making arbitrary end in the association (corresponding a plurality of addresses), can adopt dual mode to realize.
First kind of mode, only create a socket at arbitrary end of association, before sending, each grouping calls the source address of bind () function for appointment in this socket binding path, sendto () function calls after will divide into groups to send, call the socket addresses (struct sockaddr_in local_any) of bind () function immediately, realize that statement is for an INADDR_ANY of this socket binding:
bind(sfd,(struct?sockaddr*)&local_any,sizeof(struct?sockaddr_in));
Local_any.sin_addr.s_addr=htonl (INADDR_ANY) wherein
This socket just can receive the data that total interface is received on this machine like this.
The second way, for creating a socket respectively in all this machine addresses of using in the association, promptly each socket passes through bind () function and has bound this machine address.When having grouping to send, in sendto () function parameters, use the socket descriptor corresponding, can realize specifying the source address that sends grouping with source address in the path.This mode makes this association can receive the data of receiving on all native interfaces by use a plurality of socket in an association.
The source address of specific data grouping can realize by calling bind () function, but only can not guarantee to divide into groups to send from the interface corresponding (network interface card) with source address by specified source addresses, this is because traditional routing rule basis waits that a destination address of sending out grouping carries out route querying according to longest match principle in routing table, thereby determine grouping from which interface of this machine sends, and the source address of this process and specified in packets is irrelevant.From sending, need on the basis of traditional routing rule, create tactful route for guaranteeing grouping based on source address with the pairing interface of specified source addresses.Concrete grammar is as follows: be sub-routing table of each IP address creation on this main frame, default gateway in the sub-routing table is the gateway of this interface IP address correspondence, specified the meeting in group of source address to search the sub-routing table corresponding like this, thereby guaranteed that grouping sends from the interface corresponding with specified source addresses (network interface card) with this source address.In linux system, above-mentioned rule can realize by policyrouting is set, and can not influence on this machine other network application and divide into groups normally to send.With the Client main frame that has two interfaces among Fig. 1 is example, and policy routing method to set up is as follows:
Figure GSA00000045765200091
Routing rule
ip?rule
(priority: operation)
0: from?all?lookup?local
32764:from?59.66.24.0/24?lookup?subnet1
32765:from?166.111.132.0/24?lookup?subnet2
32766:from?all?lookup?main
32767:from?all?lookup?default
Figure GSA00000045765200101
The sub-routing table of each interface correspondence
table?subnetl:default?via?59.66.24.254?dev?wlan0?proto?static
table?subnet2:default?via?166.111.132.1?dev?eth0?proto?static
System default routing table main need not change
table?main:
The kernel IP route table
Intended gateway subnet mask sign jumps and a little quotes the use interface
166.111.132.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
59.66.24.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0
0.0.0.0 166.111.132.1 0.0.0.0 UG 0 0 0 eth0
Introduce experimental verification below to this multi-path transmission method SCTP-MP.
The inventor has carried out the code realization based on (SuSE) Linux OS.For the employed IP of local terminal address in the association, be to use whole IP address of main frame under the default situations, also can specifically indicate one or more IP address of required use in addition by order line.
The inventor has carried out performance test to the invention scheme in the Internet of reality environment.Test environment as shown in Figure 1.Client end has two IP available v4 addresses (166.111.132.178 and 59.66.24.88, brief note is c166 and c59 respectively), and the Server end has an IP available v4 address (202.112.35.141, note by abridging be s202).Content measurement be by Client end to the upload file of Server end, throughput end to end when measuring file transfer, transport layer protocol compares with this programme SCTP-MP and standard Stream Control Transmission Protocol, application layer protocol is the TFTP agreement.Client end main frame is positioned at Tsing-Hua University's campus network in the experimental situation, and Server end main frame is positioned at outside the campus network.Need to prove, at present Tsing-Hua University to each in the school the speed of IP address visit outer net limit, rate limit is 1Mbps, promptly about 128KB/s.
Test one: successively use standard Stream Control Transmission Protocol and SCTP-MP protocol transmission same file, with two kinds of protocol transmission the time, all only set up a SCTP association between Client end and the Server end, and the Client end specifies two addresses all to be used for this association (c166 and c59), and the Server end specifies a unique address to be used for association (s202).Since adopt during the standard Stream Control Transmission Protocol is realized transmission path only with the corresponding path definition method of destination address, therefore only exist the data transfer path can be with (c166->s202), the SCTP-MP agreement then can be used two transmission paths (c166->s202, c59->202) simultaneously.Test result is as shown in the table, and data unit is KB/s.
Figure GSA00000045765200111
By experimental result as can be seen:
1) the standard Stream Control Transmission Protocol realizes using the transmission rate of individual paths comparatively stable, and average is 118.13KB/s.
When 2) the SCTP-MP agreement realized adopting certain routing strategy to use two links to transmit simultaneously, the assignment of traffic situation on two links had slight fluctuations.But overall transmission rate average is 236.92KB/s, is about the twice that standard agreement is realized the individual paths transmission rate.
Experimental result shows, in the real network environment, adopt the concurrent transmission method of multipath, can use mulitpath to transmit data concomitantly simultaneously, and this scheme makes transmission path quantity available in the association reach maximum, thereby makes overall transmission rate be enhanced.
Test two: for understanding the SCTP-MP agreement to the multilink bandwidth utilization, we test the situation of setting up two standard SCTP association simultaneously and using different paths to carry out transfer of data respectively.At this moment Client end uses two SCTP associations to two files of Server end transmission, the approximate ideal value of total bandwidth when obtaining two links and use simultaneously with this.The Client end is specified different local terminal addresses respectively in two associations.Test result is as shown in the table.Data unit is KB/s.
As can be seen, when using two to be associated on two links the different file of transmission simultaneously, two total bandwidth of link are 237.82Kb/s, and this value should be the approximate ideal value of two link bandwidth sums.According to test one, when the SCTP-MP agreement adopted certain routing strategy to use two links to upload single file, the overall transmission rate average of transmission was 236.92KB/s, reaches parallel fully 99.53% of the Time Bandwidth sum of using of two links.
As seen, in the real network environment, this programme is by realization<source address, destination address〉mechanism of the common respective path of two tuples can increase data transfer path effectively, utilize line bandwidth more fully, reached link aggregation preferably.As seen, this programme has actual application value preferably, is comprehensive, a multi-path transmission solution efficiently.

Claims (2)

1. based on the concurrent transmission method of the multipath of SCTP, it is characterized in that described method is to realize according to the following steps successively in the Internet of forming between the client and server end:
Step (1), when between the client and server end, setting up the concurrent transmission of multipath related, shake hands according to four steps of SCTP SCTP and to set up when related, set up the available path tabulation at communicating pair, and make the maximization of available path quantity, its step is as follows:
Step (1.1), client is used for sub-routing table of each IP address creation of this related IP address list for this machine, default gateway is the gateway of this interface IP address correspondence in this sub-routing table, so that the meeting in group of designated source address is searched the sub-routing table corresponding with this address, guarantee that described grouping can send from the network interface card corresponding with specified source addresses
Step (1.2), client sends the IP address addr-S0 of initialize communications INIT message to a known server end, and source address is appointed as first local terminal address consistent with the destination address IP protocol type in the described IP address list of client, be made as addr-C0 ', but in described INIT message, not only will comprise the IP protocol type that client is supported, also will comprise the client ip address of all the type, described IP protocol type is meant IPv6, or IPv4, have two kinds of protocol types
Step (1.3); Server end is after receiving described INIT message; The IP protocol type that the opposite end is supported in the IP protocol type of supporting according to local terminal and the described INIT message; Determine the common public IP protocol type of supporting in communication two ends; Then the local terminal IP address of all the type is write in the INIT-ACK response message; Reply to client; The destination address of this response message is addr-C0 '; Source address is appointed as addr-S0; Server end is stored described INIT newspaper all client ip address consistent with described common protocol type listed in the text simultaneously
Step (1.4); After client is received described INIT-ACK message; Read the IP address of all these common type of local terminal storage; Again with described INIT-ACK message in the IP address of the opposite end server that comprises jointly form path list; And write in the array; Comprise all possible path from the client to the server end in this array; And the source address of the client corresponding with the possible path of described each bar and the destination address of server end; Send out simultaneously a COOKIE-ECHO and reply message to server end; The path is appointed as<addr-C0 '; Addr-S0 〉
Step (1.5), server end is after receiving described COOKIE-ECHO message, add the mode bit mark that upper pathway can reach, and set up the path list of local terminal according to the method described in the step (1.4), send out a COOKIE-ACK to client simultaneously and reply message, the path is appointed as<addr-S0, addr-C0 ' 〉, and survey to remove described<addr-S0 with the HEARTBEAT message, addr-C0 '〉accessibility in outer other path: on the path of appointment, send the HEARTBEAT message, if receive the HEARTBEAT-ACK message that the opposite end client is replied on reverse path as the server end of transmit leg, then this path can reach, and makes a mode bit mark on this path;
Step (2), client or server end carry out transfer of data according to following steps successively:
Step (2.1), communicating pair use described HEARTBEAT message periodically to survey the accessibility of every paths in the described path list of local terminal set by step respectively described in (1.5),
Step (2.2), whenever there being grouping to be submitted to transport layer when sending from application layer, transmit leg adopts based on the formula routing algorithm by turns of congested control window and select the transmit path as this grouping from all path that can reach,
Step (2.3), the source address of transmit leg by bind () function designated packet is the source address in the specified path when sending, be grouped in the IP layer through after the route querying from the described sub-routing table of this address correspondence the gateway of correspondence send.
2. the concurrent transmission method of the multipath based on SCTP according to claim 1 is characterized in that, communicating pair IP address separately is by the application program appointment.
CN2010101201847A 2010-03-05 2010-03-05 Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol) Expired - Fee Related CN101841463B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101201847A CN101841463B (en) 2010-03-05 2010-03-05 Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101201847A CN101841463B (en) 2010-03-05 2010-03-05 Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol)

Publications (2)

Publication Number Publication Date
CN101841463A true CN101841463A (en) 2010-09-22
CN101841463B CN101841463B (en) 2012-05-16

Family

ID=42744597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101201847A Expired - Fee Related CN101841463B (en) 2010-03-05 2010-03-05 Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol)

Country Status (1)

Country Link
CN (1) CN101841463B (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111330A (en) * 2010-12-15 2011-06-29 北京佳讯飞鸿电气股份有限公司 Data transmission method of two-channel video monitoring system
CN102137101A (en) * 2011-03-04 2011-07-27 中山中珩数字科技有限公司 Embedded Linux system data transmission method based on SCTP (Stream Control Transmission Protocol) and system thereof
CN102164078A (en) * 2011-03-25 2011-08-24 北京星网锐捷网络技术有限公司 Policy routing method, device and system
CN102201991A (en) * 2011-05-23 2011-09-28 北京交通大学 Data transmission method and system based on integral end-to-end multi-path transmission
CN102821048A (en) * 2012-08-09 2012-12-12 华北电力大学 SCTP (Stream Control Transmission Protocol) path selection method
CN103166843A (en) * 2011-12-14 2013-06-19 中国科学院沈阳计算技术研究所有限公司 Packet switching network efficient real-time data interaction protocol and communication method
CN105099923A (en) * 2012-10-22 2015-11-25 华为技术有限公司 Message transmission method and apparatus
US9225630B2 (en) 2012-11-30 2015-12-29 Thomson Licensing Method and multi-homed equipment for establishing a multipath connection
CN106445951A (en) * 2015-08-07 2017-02-22 中兴通讯股份有限公司 File transmission method and apparatus
CN106656606A (en) * 2016-12-27 2017-05-10 北京奇虎科技有限公司 Data path testing method, data path testing server and data path testing system
CN106879262A (en) * 2014-07-28 2017-06-20 诺基亚通信公司 Message based Path selection for supporting the host-host protocol of multiple transmission paths
CN107078972A (en) * 2014-03-31 2017-08-18 三星电子株式会社 Apparatus and method for providing service in the communication network for supporting multi-path transmission control protocol
CN109495461A (en) * 2018-11-01 2019-03-19 北京车和家信息技术有限公司 Data access request processing method, device and vehicle-mounted central control system
CN110012458A (en) * 2018-01-04 2019-07-12 中兴通讯股份有限公司 A kind of method and device for negotiating IP address type
TWI680760B (en) * 2013-07-12 2020-01-01 印度商皮拉馬爾企業有限公司 A pharmaceutical combination for the treatment of melanoma
CN110650089A (en) * 2019-10-24 2020-01-03 北京大学 Intermediate device supporting multi-path aggregation communication
CN111034268A (en) * 2018-08-10 2020-04-17 联发科技股份有限公司 Enhanced user equipment path selection policy rule matching
CN111884936A (en) * 2020-07-22 2020-11-03 深信服科技股份有限公司 Routing method, routing device, electronic equipment and storage medium
CN111903098A (en) * 2018-03-22 2020-11-06 华为技术有限公司 Method, device and system for processing message fragment
CN114745221A (en) * 2022-03-22 2022-07-12 深圳渊联技术有限公司 Modbus communication system and communication method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188014A1 (en) * 2000-09-22 2003-10-02 Gradischnig Klaus David Method for transmiting messages using multipaths
CN1533100A (en) * 2003-03-18 2004-09-29 ����ͨѶ�ɷ����޹�˾ Method for protecting coupling based on flow control transfer protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188014A1 (en) * 2000-09-22 2003-10-02 Gradischnig Klaus David Method for transmiting messages using multipaths
CN1533100A (en) * 2003-03-18 2004-09-29 ����ͨѶ�ɷ����޹�˾ Method for protecting coupling based on flow control transfer protocol

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《计算机技术与发展》 20070331 朱桂勇等 基于SCTP多宿特点的多路径同时传输研究 , 第03期 2 *

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111330A (en) * 2010-12-15 2011-06-29 北京佳讯飞鸿电气股份有限公司 Data transmission method of two-channel video monitoring system
CN102137101A (en) * 2011-03-04 2011-07-27 中山中珩数字科技有限公司 Embedded Linux system data transmission method based on SCTP (Stream Control Transmission Protocol) and system thereof
CN102164078A (en) * 2011-03-25 2011-08-24 北京星网锐捷网络技术有限公司 Policy routing method, device and system
CN102164078B (en) * 2011-03-25 2014-07-02 北京星网锐捷网络技术有限公司 Policy routing method, device and system
CN102201991B (en) * 2011-05-23 2014-01-29 北京交通大学 Data transmission method based on integral end-to-end multi-path transmission
CN102201991A (en) * 2011-05-23 2011-09-28 北京交通大学 Data transmission method and system based on integral end-to-end multi-path transmission
CN103166843A (en) * 2011-12-14 2013-06-19 中国科学院沈阳计算技术研究所有限公司 Packet switching network efficient real-time data interaction protocol and communication method
CN102821048A (en) * 2012-08-09 2012-12-12 华北电力大学 SCTP (Stream Control Transmission Protocol) path selection method
CN102821048B (en) * 2012-08-09 2014-10-08 华北电力大学 SCTP (Stream Control Transmission Protocol) path selection method
CN105099923A (en) * 2012-10-22 2015-11-25 华为技术有限公司 Message transmission method and apparatus
CN105099923B (en) * 2012-10-22 2019-04-05 华为技术有限公司 Message transmitting method and device
US9225630B2 (en) 2012-11-30 2015-12-29 Thomson Licensing Method and multi-homed equipment for establishing a multipath connection
TWI680760B (en) * 2013-07-12 2020-01-01 印度商皮拉馬爾企業有限公司 A pharmaceutical combination for the treatment of melanoma
CN107078972A (en) * 2014-03-31 2017-08-18 三星电子株式会社 Apparatus and method for providing service in the communication network for supporting multi-path transmission control protocol
CN107078972B (en) * 2014-03-31 2020-07-28 三星电子株式会社 Apparatus and method for providing service in communication network supporting multi-path transmission control protocol
CN106879262A (en) * 2014-07-28 2017-06-20 诺基亚通信公司 Message based Path selection for supporting the host-host protocol of multiple transmission paths
CN106445951B (en) * 2015-08-07 2022-05-17 中兴通讯股份有限公司 File transmission method and device
CN106445951A (en) * 2015-08-07 2017-02-22 中兴通讯股份有限公司 File transmission method and apparatus
CN106656606A (en) * 2016-12-27 2017-05-10 北京奇虎科技有限公司 Data path testing method, data path testing server and data path testing system
CN110012458A (en) * 2018-01-04 2019-07-12 中兴通讯股份有限公司 A kind of method and device for negotiating IP address type
CN111903098A (en) * 2018-03-22 2020-11-06 华为技术有限公司 Method, device and system for processing message fragment
US11411892B2 (en) 2018-03-22 2022-08-09 Huawei Technologies Co., Ltd. Packet fragment processing method and apparatus and system
CN111903098B (en) * 2018-03-22 2022-01-28 华为技术有限公司 Method, device and system for processing message fragment
CN111034268A (en) * 2018-08-10 2020-04-17 联发科技股份有限公司 Enhanced user equipment path selection policy rule matching
CN111034268B (en) * 2018-08-10 2023-10-13 联发科技股份有限公司 User equipment path selection policy rule matching method and user equipment
CN109495461B (en) * 2018-11-01 2021-07-23 北京车和家信息技术有限公司 Data access request processing method and device and vehicle-mounted central control system
CN109495461A (en) * 2018-11-01 2019-03-19 北京车和家信息技术有限公司 Data access request processing method, device and vehicle-mounted central control system
CN110650089A (en) * 2019-10-24 2020-01-03 北京大学 Intermediate device supporting multi-path aggregation communication
CN111884936A (en) * 2020-07-22 2020-11-03 深信服科技股份有限公司 Routing method, routing device, electronic equipment and storage medium
CN114745221A (en) * 2022-03-22 2022-07-12 深圳渊联技术有限公司 Modbus communication system and communication method
CN114745221B (en) * 2022-03-22 2023-09-26 深圳渊联技术有限公司 Modbus communication system and communication method

Also Published As

Publication number Publication date
CN101841463B (en) 2012-05-16

Similar Documents

Publication Publication Date Title
CN101841463B (en) Multipath cocurrent transmission method based on SCTP (Stream Control Transmission Protocol)
CN108476208B (en) Multipath transmission design
CN101180860B (en) Traffic diversion in an ethernet-based access network
KR101557853B1 (en) Binding/aggregating multiple interfaces at application layer
US10348646B2 (en) Two-stage port-channel resolution in a multistage fabric switch
CN110463158A (en) Multipath Transmission communication
CN103327027B (en) Content-centric network bottom implementation method, content-centric network and communication method
Tschudin et al. Network pointers
US10177973B2 (en) Communication apparatus, communication method, and communication system
CN101300816A (en) Translating network addresses for multiple network interfaces
CN102215231A (en) Data forwarding method and gateway
Vassilakis et al. Toward information-centric software-defined cellular networks
CN112291815A (en) MPTCP connection establishment method and device
Jagetiya et al. Survey of transport layer multihoming protocols and performance analysis of MPTCP
Koga et al. A framework for network media optimization in multihomed QoS networks
Djukic et al. WLC12-4: Reliable and Energy Efficient Transport Layer for Sensor Networks
KR101333814B1 (en) High speed data communication apparatus used plural communicating interface, Gateway, Router, High speed data transmitting and receiving method, IP registration method for high speed data transmitting and receiving
TWI469657B (en) Multiple-link transmission architecture and method for improving performance of bandwidth aggregation
Valdovinos et al. Tcp extension to send traffic simultaneously through multiple heterogeneous network interfaces
CN100512172C (en) Method for, realizing self adaption extension domain management entity mechanism Flexible IP network technology system
Ciko Improving Internet Performance with a" Clean-Slate" Network Architecture-The Case of RINA
Lee et al. Load balancing scheme and implementation in multihoming mobile router
Gibb Ubiquitous Communication for the Internet of Things
Dreibholz et al. Improvements to the SCTP Environment in the INET Framework
Hur et al. IPlug and dSocket: A new network API for decoupling identifier and locator

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120516