# Patent

## Title
Method for transmitting packets in a network

## Abstract

Stream Control Transmission Protocol (SCTP) transmits packets to the remote peer with a size equal or smaller than Maximum Transmission Unit (MTU). The MTU can be discovered by SCTP utilizing the path-MTU discovery algorithm of RFC1191 (or similar techniques). However the MTU of a certain path within a SCTP association can change over time. If the path MTU grows then there is no problem. If the path MTU decreases, then packets with size equal to the old path MTU will not be able to be delivered to the remote peer as the link or router with the smaller MTU will drop the packet. Thus all such packets will remain unacknowledged and will lead to head of line blocking for in-sequence delivery of packets of the streams to which to non-delivered packets belong. This leads to the failure of the association. The proposed method resegments SCTP-packets due to a path MTU decrease in a SCTP association.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is based on and hereby claims priority to European Application No. EP06014496 filed on Jul. 12, 2006 and International PCT Application No. PCT/EP2007/052567 filed on Mar. 16, 2007, the contents of which are hereby incorporated by reference.
BACKGROUND OF THE INVENTION
A Transmission Protocol like Stream Control Transmission Protocol (=SCTP) transmits packets to the remote peer with a size equal or smaller than a Maximum Transmission Unit (=MTU). In case of SCTP the MTU of a path can be discovered utilising the path-MTU discovery algorithm of RFC1191 (or similar techniques). However the MTU of a certain path within a SCTP association can change over time. If the path-MTU (MTU of a certain path) grows during a SCTP association then there is no problem. If the path MTU decreases, then packets with size equal to the old path MTU will not be able to be delivered to the remote peer as the link or router with the smaller MTU will drop the packet. Thus all such packets will remain unacknowledged and will lead to head of line blocking for in-sequence delivery of packets of the streams to which to non-delivered packets belong. This leads to the failure of the association.
The problem has not been solved in SCTP up till now.
SUMMARY
The inventor proposes a transmission protocol that resegments packets of a connection (in case of SCTP a connection is called an association) due to a discovered decrease of the maximum packet size (MTU) with sizes to match the new maximum packet size (MTU).
In the following an SCTP implementation of the invention is described for all modes of operations for delivering of messages/packets to an application (see also the FIGUR of the Drawing).



BRIEF DESCRIPTION OF THE DRAWING
These and other objects and advantages of the present invention will become more apparent and more readily appreciated from the following description of the preferred embodiments, taken in conjunction with the accompanying FIGURE which schematically represents segmenting and resegmenting a message.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawing.
According to SCTP each message can be segmented in one or more packets and each packet has a transmission sequence number (=TSN) assigned to it. Each packet also is assigned to a certain stream via the stream identifier (stream id). All messages in sequenced operation belonging to the same stream id must be delivered to the peer application in order. The SCTP implementation should be doing path-MTU discovery for each of its paths on a regular basis (this is required by RFC2932). When the reduction of the path MTU has been detected, then the following actions for either unordered or ordered delivery should be observed. The detection can be done via RFC1191 or similar techniques (RFC1981, draft-ietf-pmtud-method-06.txt . . . ).

    
    
        First the new path MTU must be detected via the use of path MTU discovery. If the path MTU was reduced, the old packet must be resegmented with sizes to match the new path MTU (so at least 2 new TSN must be allocated in sequence)
        If only a single packet was generated for the message, then the required resegmentation may yield 2 or more packets. The packets need to be segmented according to the rules found in RFC2932.
        If the original packet was already the result of segmenting the message, then the old packet must be segmented again with new TSN's in sequence for each old TSN packet according to the rules found in RFC2932.
        In addition, a resegment parameter contained in a control packet (SCTP control chunk), is sent towards to the remote peer to indicate what old TSN is replaced by the new TSN's. The old TSN will be mapped to 2 or more new TSN's and packets already received before and after the old TSN must be used if required to reassemble the complete message. The resegment parameter may be contained in any of the already existing SCTP control chunks or a new SCTP remapping control chunk.
        The resegment parameter must be sent to the remote peer before the new resegmented packets are sent to the remote peer.
        The resegment parameter contains an old TSN and a list of one or more new TSN's. This maps the old TSN to the new TSN's. The resegement parameter may contain a list of mappings or could be repeated within or across control chunks.
        The old packet TSN is invalidated by sending to the remote peer the forward cumulative TSN chunk with the TSN set to the old packet TSN. See specific use of the Forward cumulative TSN in RFC3758. This can only be done after the message has been successfully reassembled from packets using the outstanding old TSN and mapped old-to-new TSN's.
        The packets with the old TSN must not be resent to the remote peer after sending the resegment parameter.
        After receiving the resegment parameter, the remote peer is not required to issue gap reports for the old TSN's.(Gap report=request for the sender peer to send the packets again, in this case the old TSN)
        When the remote peer has received all the new TSN segments and reassembled the message, then the message must be delivered to the application. The delivered message is followed by the messages containing the original old TSN in case of ordered delivery. In case of unordered delivery, the messages with the original old TSN were already delivered to the application.
        The number of packets sent after resegmenting must not violate the rules on outstanding packets due to the congestion algorithm utilized in SCTP RFC2932 and others.
    
    


Allows SCTP not to block transmission of data to the remote peer if the path MTU is reduced during transmission. TCP does not have this problem due to the use of byte counting as the TSN (TCP simply divides up the message and uses a byte count TSN in between followed by the original byte count TSN). The proposed method solves a weakness of SCTP in comparison to TCP and allows SCTP to be more acceptable to TCP applications (especially in case of very long lived time connections/associations) especially in single homed associations. If multi-homed associations are used, the too-large message has the possibility to be transmitted via the alternate paths(assuming the path MTU has not changed along those paths).
The invention has been described in detail with particular reference to preferred embodiments thereof and examples, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention covered by the claims which may include the phrase “at least one of A, B and C” as an alternative expression that means one or more of A, B and C may be used, contrary to the holding in Superguide v. DIRECTV, 69 USPQ2d 1865 (Fed. Cir. 2004).

## Claims

1. A method for transmitting packets in a network, comprising:
transmitting packets of a message of a connection, the packets being segmented from a data stream to have a packet size equal to or smaller than a maximum packet size;
assigning each packet of a transmission sequence number;
transmitting the segmented packets to a remote peer of the connection;
continuously monitoring a current maximum packet size;
resegmenting the packets with new transmission sequence numbers when a decrease in the maximum packet size has been monitored, the packets being resegemented to have packet sizes that match the current maximum packet size;
sending a resegment parameter to the remote peer to indicate which previously received transmission sequence numbers are being replaced with a new transmission sequence number; and
transmitting the resegmented packets to the remote user after sending the resegment parameter.

2. The method of claim 1, wherein
packets are transmitted on a plurality of paths, and
the current maximum packet size is discovered for each path.

3. The method according claim 2, comprising further:
not transmitting packets having a packet size larger than the maximum packet size.

4. The method according claim 2, the wherein:
packets are transmitted according to a Stream Control Transmission Protocol (SCTP).

5. The method according claim 1, comprising further:
not transmitting packets having a packet size larger than the maximum packet size.

6. The method according claim 1, wherein:
packets are transmitted according to a Stream Control Transmission Protocol (SCTP).