CN101841463B - 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
CN101841463B
CN101841463B CN2010101201847A CN201010120184A CN101841463B CN 101841463 B CN101841463 B CN 101841463B CN 2010101201847 A CN2010101201847 A CN 2010101201847A CN 201010120184 A CN201010120184 A CN 201010120184A CN 101841463 B CN101841463 B CN 101841463B
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.)
Expired - Fee Related
Application number
CN2010101201847A
Other languages
Chinese (zh)
Other versions
CN101841463A (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 like 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 property.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.It is thus clear that 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 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 launches 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 data transfer 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; Through the mechanism of the active-standby path 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 uses < source address, destination address>doublet to 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 be sent from the pairing physical interface of the source address of appointment to 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 said method is to realize according to the following steps successively in the Internet of between the client and server end, forming:
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 following:
Step (1.1); Client is used for sub-routing table of this IP address associated each IP address creation of tabulation for this machine; Default gateway is the corresponding gateway in this interface IP address 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 said grouping can send from the network interface card corresponding with specified source addresses
Step (1.2), client are sent initialize communications INIT message and are given the IP address addr-S0 of a known server end, and are appointed as first local terminal address consistent with the destination address IP protocol type in the said IP address list of client to source address; Be not addr-C0 ', but in said 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; Said IP protocol type is meant IPv6; Or IPv4, have two kinds of protocol types
Step (1.3); Server end is after receiving said INIT message, and the IP protocol type that the opposite end is supported in IP protocol type of supporting according to local terminal and the said INIT message is confirmed the common public IP protocol type of supporting in communication two ends; Write the local terminal IP address of all the type in the INIT-ACK response message then; Reply to client, the destination address of this response message is addr-C0 ', and source address is appointed as addr-S0; Server end is stored all of listing in the said INIT message and the consistent client ip address of said common protocol type simultaneously
After step (1.4), client are received said INIT-ACK message, read the IP address of all these common type of local terminal storage; Again with said INIT-ACK message in the IP address of the opposite end server that comprises form path list jointly; And write in the array, comprise all possible path from the client to the server end in this array, and with the source address of the possible path clients corresponding of described each bar and the destination address of server end; Send out a COOKIE-ECHO simultaneously and reply message to server end; < addr-C0 ', addr-S0>is appointed as in the path
Step (1.5), server end add the mode bit mark that upper pathway can reach after receiving said COOKIE-ECHO message; And set up the path list of local terminal according to the method described in the step (1.4), and to send out a COOKIE-ACK to client simultaneously and reply message, < addr-S0 is appointed as in the path; Addr-C0 ' >; And survey to remove the accessibility in said < addr-S0, addr-C0 '>outer other path with the HEARTBEAT message: 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 on this path, makes a mode bit mark;
Step (2), client or server end carry out transfer of data according to following steps successively:
Step (2.1), communicating pair use said HEARTBEAT message periodically to survey the accessibility of every paths in the said 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 from all paths that can reach, selects the transmit path as this grouping,
Step (2.3), transmit leg is the source address in the specified path through the source address of bind () function designated packet when sending, be grouped in the IP layer through after the route querying from the corresponding said sub-routing table in this address the gateway of correspondence send.
Communicating pair IP address separately is by the application program appointment.
This programme that experiment showed, through in the real network environment can increase data transfer path effectively, utilize line bandwidth more fully through the mechanism that realizes < source address, destination address>common respective path of doublet, has reached link aggregation preferably.It is thus clear that this programme has actual application value preferably, be 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).
Four steps of Fig. 4 .SCTP-MP scheme shake hands and set up the 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 and gives a known Server end IP address addr-S0 (application program appointment); Source address is appointed as the Client end and is used for this IP address associated tabulation; 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, confirms 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 having supported 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 among array currentAssociation->path_list [], list size is currentAssociation->no_of_paths.
The method for building up of array currentAssociation->path_list [] is following: the Server end address consistent with public address type (IPv4/IPv6) is stored among the array dAddresses [], and the Client end address consistent with the public address type is stored among the array sAddresses [].To each the address dAddresses [i] among the dAddresses []; With all address sAddessess [k] consistent among the sAddesses [] and source address and the destination address of dAddresses [i], write according to the order of sequence among the path_list [] as a paths with its type.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, and then array currentAssociation->path_list [] size is dn*sn, and promptly currentAssociation->no_of_paths equals dn*sn.
Client end is replied the COOKIE-ECHO message and is held to Server, and < addr-C0 ', addr-S0>is appointed as in the path.
Step 1.4; The Server end is according to holding identical mode to set up the path list of local terminal with Client in the step 1.3; Reply the COOKIE-ACK message, < addr-S0, addr-C0 '>is appointed as in the path; And with the accessibility of HEARTBEAT message detection except that other outer path of < addr-S0, addr-C0 ' >.Identical in concrete detection method and the step 2.Every road among currentAssociation->path_list [] indicates via the mode bit of a correspondence whether this path can reach.The mode bit initial markers in path < addr-S0, addr-C0 '>is for reaching, and the value initial markers of other path status byte is unknown, and the result of detection by the HEARTBEAT message determines afterwards.
Step 1.5; After the Client end is received the COOKIE-ACK message; Beginning in the path addr-C0 '; Addr-S0>(mode bit initial markers for can reach) go up to the Server end and send data, and with the accessibility in other path among HEARTBEAT message detection currentAssociation->path_list [].Every road is through all having independently congested control window in this programme, and congestion avoidance algorithm is adjusted its window according to the situation of sending of the data on every paths.
Step 2, in data transmission procedure, communicating pair uses the HEARTBEAT message periodically to survey the accessibility of every paths among array currentAssociation->path_list [].Detection method sends the HEARTBEAT message for an end that connects on specified path, on reverse path, reply the HEARTBEAT-ACK message after receive the opposite end immediately, 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 and can be selected and be used for transmitting data.
Step 3 whenever there being grouping to be submitted to transport layer when sending from application layer, adopts certain routing algorithm, from all reachable paths, selects the transmit path as this grouping.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 on current available path, to send packet; 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 is as shown in Figure 5.
Step 4; For guarantee in the data transmission procedure packet in the path of appointment < source IP address; Purpose IP address>go up transmission, each specified path wait to send out divide into groups to be submitted to the IP layer before, the source address through 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, confirms to wait to send out a source address of dividing into groups 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 corresponding gateway in this interface IP address in the sub-routing table, has specified the meeting in group of source address to search the sub-routing table corresponding with this source address like this, guarantees to divide into groups to send from the interface corresponding with specified source addresses (network interface card).
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 uses < source address, destination address>doublet 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 confirm to wait to send out the source address of dividing into groups to traditional system's routing rule according to the destination address longest match principle; Thereby can't guarantee to divide into groups the problem of sending in strict accordance with the source address in the specified path; This programme has proposed to use the method for IP strategy route, thereby has 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 the doublet of being made up of < source IP address, purpose IP address >, promptly forms 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 local terminal address (source address) between address, any 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 again if Client end and Server end have two IP addresses respectively, then holds the Server end to exist 4 paths to use from Client, and the available path tabulation is 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 through four steps, and in this process, the both sides of communication can be used for this all related IP addresses alternately separately, all obtain the other side's available address each side after, can set up this related path list.Message switching procedure as shown in Figure 4 is 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 association 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 accomplished.4 step handshake procedures of standard Stream Control Transmission Protocol are following.Wherein the type of each element in currentAssociation->destinationAddresses [] tabulation is unionsockunion, and it defines 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) of all the type of Client end in the INIT message by application program.
2) after the Server end is received the INIT message, support type, confirm 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 confirmed 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; IP address, the opposite end that comprises in the message (Server end) is write in currentAssociation->destinationAddresses [] tabulation; 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.Write all the listed Client consistent end IP addresses of INIT message in currentAssociation->destinationAddresses [] tabulation, simultaneously as available opposite end address list, i.e. path list with the common protocol type.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 given specific destination address for sending the HEARTBEAT message, replys the HEARTBEAT-ACK message immediately after the Client end is received, if the Server end is received the answer message, thinks that then this destination address can reach.
5) after the Client end is received the COOKIE-ACK message, begin to send data to the Server end, destination address is addr-S0, and surveys the accessibility of other destination address with the HEARTBEAT message.
In order to set up the mechanism of < source address, destination address>common corresponding fullpath in the SCTP-MP scheme; 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 path list, to replace original simple destination address tabulation by < source address, destination address>correspondence.Modification to 4 step handshake procedures is following, and number of steps is consistent with preceding text.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 IP address associated tabulation; 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 having supported for two ends.Client end read in the local terminal address public address type therewith consistent be used for this IP address associated; Then with the INIT-ACK message in the peer IP address that comprises form path list jointly; And write among new data structure currentAssociation->path_list [], list size is currentAssociation->no_of_paths.
Each member is a structure in currentAssociation->path_list [] array, and 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 up of a source address and a destination address jointly.
The method for building up of currentAssociation->path_list [] is following.If the Server consistent with public address type end address is stored among the array dAddresses [], the Client end address consistent with the public address type is stored among the array sAddresses [].To each the address dAddresses [i] among the dAddresses []; With all address sAddessess [k] consistent among the sAddesses [] and source address and the destination address of dAddresses [i], write according to the order of sequence among the path_list [] as a paths with dAddresses [i] address style.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).
Client end is replied the COOKIE-ECHO message and is held to Server, and < addr-C0 ', addr-S0>is appointed as in the path.
4) ' Server end is according to 3) ' in set up the path list of local terminal with the identical mode of Client end.The Server end is replied the path of COOKIE-ACK message and is appointed as < addr-S0, addr-C0 ' >, and surveys the accessibility of removing other outer path of < addr-S0, addr-C0 '>with the HEARTBEAT message.Concrete detection method sees below.
Every road among currentAssociation->path_list [] indicates via the mode bit of a correspondence whether this path can reach.The mode bit initial markers in path < addr-S0, addr-C0 '>is for reaching, and the value initial markers of other path status byte is unknown, and the result of detection by the HEARTBEAT message determines afterwards.
5) after ' Client end is received the COOKIE-ACK message, beginning in the 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.The destination address among currentAssociation->destinationAddresses [] by original is surveyed; Be revised as and survey removing other outer path of path < addr-C0 ', addr-S0>among currentAssociation->path_list [].Every road is through all having independently congested control window in this programme, and congestion avoidance algorithm is adjusted window according to the situation of sending of the data on every paths.
The path of introducing below in this programme is surveyed and routing strategy.
In the process of transfer of data, communicating pair is surveyed its accessibility to each paths among path list currentAssociation->path_list [] through regular transmission HEARTBEAT message.Detection method sends the HEARTBEAT message for an end that connects on specified path, on reverse path, reply the HEARTBEAT-ACK message after receive the opposite end immediately, 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 possibly have mulitpath to can be used for transfer of data simultaneously in an association,, confirm the concrete path of adopting when each packet is sent 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 on current available path, to send packet; 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 is 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 confirmed according to route searching result by network layer; Therefore can't guarantee that packet can be according to path < source IP address, the purpose IP address>transmission of appointment.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 guarantee packet in the path of appointment < source IP address; 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 guarantee then to divide into groups to send from the interface corresponding (network interface card) with specified source addresses.
The source address (union sockunion src) that specific data divides into groups can realize through calling socket function bind ().Realize statement (with the IPv4 socket is example, down together) as follows:
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; Call bind () function before each divides into groups to send and bind the source address of appointment in the path for this socket; Call after sendto () function will divide into groups to send, call the socket addresses (struct sockaddr_in local_any) that bind () function is bound an INADDR_ANY for this socket immediately, the realization statement is:
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.Have when divide into groups sending, in sendto () function parameters, use with the path in the corresponding socket descriptor of source address, can realize specifying the source address of transmission grouping.This mode makes this association can receive the data of receiving on all native interfaces through in an association, using a plurality of socket.
The source address that specific data divides into groups can realize through calling bind () function; But only can not guarantee to divide into groups to send from the interface corresponding (network interface card) with source address through specified source addresses; This is in routing table, to carry out route querying according to longest match principle because traditional routing rule basis waits to send out a destination address that divides into groups; Thereby confirm that which interface that divides into groups from this machine sends, the source address of this process and specified in packets is irrelevant.For guaranteeing to divide into groups on the basis of traditional routing rule, to create tactful route based on source address from sending with the pairing interface of specified source addresses.Concrete grammar is following: be sub-routing table of each IP address creation on this main frame; Default gateway in the sub-routing table is the corresponding gateway in this interface IP address; Specified the meeting in group of source address to search the sub-routing table corresponding like this, thereby guaranteed to divide into groups to send from the interface corresponding (network interface card) with specified source addresses with this source address.In linux system, above-mentioned rule can realize through 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 following:
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
The corresponding sub-routing table of
Figure GSA00000045765200101
each interface
table subnetl:default via 59.66.24.254 dev wlan0 proto static
table subnet2:default via 166.111.132.1 dev eth0 proto static
Figure GSA00000045765200102
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 through order line.
The inventor has carried out performance test to the invention scheme in the Internet of reality environment.Test environment is 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 is done comparison 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 accessed 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 a data transfer path can use that (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
Can find out by experimental result:
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.
Can find out that when using two to be associated on two links the different file of transmission simultaneously, two total bandwidth of link are 237.82Kb/s, 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.
It is thus clear that in the real network environment, this programme can increase data transfer path effectively, utilize line bandwidth more fully through the mechanism that realizes < source address, destination address>common respective path of doublet, has reached link aggregation preferably.It is thus clear that this programme has actual application value preferably, be 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 said method is to realize according to the following steps successively in the Internet of between the client and server end, forming:
Step (1); When between the client and server end, setting up the concurrent transmission of multipath related, and 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 following:
Step (1.1); Client is used for sub-routing table of this IP address associated each IP address creation of tabulation for this machine; Default gateway is the corresponding gateway in this interface IP address 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 said grouping can send from the network interface card corresponding with specified source addresses
Step (1.2), client are sent initialize communications INIT message and are given the IP address addr-S0 of a known server end, and are appointed as first local terminal address consistent with the destination address IP protocol type in the said IP address list of client to source address; Be made as addr-C0 ', but in said 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; Said IP protocol type is meant IPv6; Or IPv4, have two kinds of protocol types
Step (1.3); Server end is after receiving said INIT message, and the IP protocol type that the opposite end is supported in IP protocol type of supporting according to local terminal and the said INIT message is confirmed the common public IP protocol type of supporting in communication two ends; Write the local terminal IP address of all public IP protocol types in the INIT-ACK response message then; Reply to client, the destination address of this response message is addr-C0 ', and source address is appointed as addr-S0; Server end is stored all of listing in the said INIT message and the consistent client ip address of said public IP protocol type simultaneously
After step (1.4), client are received said INIT-ACK message, read the IP address of all these public IP protocol types of local terminal storage; Again with said INIT-ACK message in the IP address of the opposite end server that comprises form path list jointly; And write in the array, comprise all possible path from the client to the server end in this array, and with the source address of the possible path clients corresponding of described each bar and the destination address of server end; Send out a COOKIE-ECHO simultaneously and reply message to server end; < addr-C0 ', addr-S0>is appointed as in the path
Step (1.5), server end add the mode bit mark that upper pathway can reach after receiving said COOKIE-ECHO message; And set up the path list of local terminal according to the method described in the step (1.4), and to send out a COOKIE-ACK to client simultaneously and reply message, < addr-S0 is appointed as in the path; Addr-C0 ' >; And survey to remove the accessibility in said < addr-S0, addr-C0 '>outer other path with the HEARTBEAT message: 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 on this path, makes a mode bit mark;
Step (2), client or server end carry out transfer of data according to following steps successively:
Step (2.1), communicating pair use said HEARTBEAT message periodically to survey the accessibility of every paths in the said 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 from all paths that can reach, selects the transmit path as this grouping,
Step (2.3), transmit leg is the source address in the specified path through the source address of bind () function designated packet when sending, be grouped in the IP layer through after the route querying from the corresponding said sub-routing table in this address 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 CN101841463A (en) 2010-09-22
CN101841463B true 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)

Families Citing this family (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
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
CN103166843A (en) * 2011-12-14 2013-06-19 中国科学院沈阳计算技术研究所有限公司 Packet switching network efficient real-time data interaction protocol and communication method
CN102821048B (en) * 2012-08-09 2014-10-08 华北电力大学 SCTP (Stream Control Transmission Protocol) path selection method
CN105099923B (en) * 2012-10-22 2019-04-05 华为技术有限公司 Message transmitting method and device
EP2738995A1 (en) 2012-11-30 2014-06-04 Thomson Licensing Method and multi-homed equipment for establishing a multipath connection
CA2917742C (en) * 2013-07-12 2020-04-14 Piramal Enterprises Limited A pharmaceutical combination for the treatment of melanoma
KR102259652B1 (en) * 2014-03-31 2021-06-02 삼성전자주식회사 Apparatus and method for providing service in communication network supporting multipath transport 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
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
WO2019178813A1 (en) * 2018-03-22 2019-09-26 华为技术有限公司 Method, device and system for handling message fragmentation
US11039369B2 (en) * 2018-08-10 2021-06-15 Mediatek Inc. Handling 5G QoS rules on QoS operation errors
CN109495461B (en) * 2018-11-01 2021-07-23 北京车和家信息技术有限公司 Data access request processing method and device and vehicle-mounted central control system
CN111654436B (en) * 2019-10-24 2021-07-13 北京大学 Network relay equipment suitable for high-speed mobile environment
CN111884936A (en) * 2020-07-22 2020-11-03 深信服科技股份有限公司 Routing method, routing device, electronic equipment and storage medium
CN114745221B (en) * 2022-03-22 2023-09-26 深圳渊联技术有限公司 Modbus communication system and communication method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1191745A1 (en) * 2000-09-22 2002-03-27 Siemens Aktiengesellschaft Method for transmitting messages using multipath connections
CN100388721C (en) * 2003-03-18 2008-05-14 中兴通讯股份有限公司 Method for protecting coupling based on flow control transfer protocol

Also Published As

Publication number Publication date
CN101841463A (en) 2010-09-22

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
Raychaudhuri et al. Mobilityfirst: a robust and trustworthy mobility-centric architecture for the future internet
US9154407B2 (en) Maintained message delivery during routing domain migration
Llorca et al. Network-coded caching-aided multicast for efficient content delivery
US10348646B2 (en) Two-stage port-channel resolution in a multistage fabric switch
CN102571587B (en) Method and equipment for forwarding messages
CN103618678A (en) Method, device and system for self-adaptation multiple-link aggregation
CN101326766A (en) Digital object routing
Tschudin et al. Network pointers
CN102763359B (en) The traffic optimization device of SCTP and method in multicast network
CN109257620B (en) Network live broadcast method and system based on multipath transmission
US10177973B2 (en) Communication apparatus, communication method, and communication system
CN102215231A (en) Data forwarding method and gateway
CN112291815A (en) MPTCP connection establishment method and device
Hasegawa et al. Deployable multipath communication scheme with sufficient performance data distribution method
Vassilakis et al. Toward information-centric software-defined cellular networks
Koga et al. A framework for network media optimization in multihomed QoS networks
Jagetiya et al. Survey of transport layer multihoming protocols and performance analysis of MPTCP
Szymaniak et al. Versatile anycasting with mobile ipv6
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
CN101848164B (en) Method for realizing stream distribution and stream re-direction based on multi-home host extension HIP protocol
Dreibholz et al. Improvements to the SCTP Environment in the INET Framework

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

Granted publication date: 20120516

CF01 Termination of patent right due to non-payment of annual fee