Rate Based Satellite Control Protocol

Last Updated: November 1, 2012

Rate Based Satellite Control Protocol (RBSCP) was designed for wireless or long-distance delay links with high error rates, such as satellite links. Using tunnels, RBSCP can improve the performance of certain IP protocols, such as TCP and IP Security (IPSec), over satellite links without breaking the end-to-end model.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Restrictions for Rate Based Satellite Control Protocol

  • RBSCP was designed for wireless or long-distance delay links with high error rates such as satellite links. If you do not have long-distance delay links with high error rates, do not implement this feature.
  • If IP access lists (ACLs) are configured on an interface that is used by an RBSCP tunnel, the RBSCP IP protocol (199) must be allowed to enter and exit that interface or the tunnel will not function.
  • RBSCP has some performance limitations because traffic through the tunnel is process-switched.

Information About Rate Based Satellite Control Protocol

IP over Satellite Links

Satellite links have several characteristics that affect the performance of IP protocols over the link. The figure below shows that satellite links can have a one-way delay of 275 milliseconds. A round-trip time (RTT) of 550 milliseconds is a very long delay for TCP. Another issue is the high error rates (packet loss rates) that are typical of satellite links as compared to wired links in LANs. Even the weather affects satellite links, causing a decrease in available bandwidth, and an increase in RTT and packet loss.

Figure 1 Typical Satellite Link


Long RTT keeps TCP in a slow start mode, which increases the time before the satellite link bandwidth is fully used. TCP and Stream Control Transmission Protocol (SCTP) interpret packet loss events as congestion in the network and start to perform congestion recovery procedures, which reduce the traffic being sent over the link.

Although available satellite link bandwidths are increasing, the long RTT and high error rates experienced by IP protocols over satellite links are producing a high bandwidth-delay product (BDP).

Performance Enhancing Proxy over Satellite Links

To address the problem of TCP being kept in a slow start mode when a satellite link is used, a disruptive performance enhancing proxy (PEP) solution is introduced into the network. In the figure below you can see that the transport connection is broken up into three sections with hosts on the remote side connecting to the Internet through their default router. The router sends all Internet-bound traffic to the TCP PEP, which terminates the TCP connection to the Internet. The PEP generates a local TCP ACK (TCP spoofing) for all data. Traffic is buffered and retransmitted through a single PEP protocol connection over the satellite link. The second PEP receives the data from the satellite link and retransmits the data over separate TCP connections to the Internet. TCP transmission is disrupted, so dropped packets are not interpreted as TCP congestion and can be retransmitted from buffered data. Minimal TCP ACKs and reduced TCP slow starts allow more bandwidth to be used.

Figure 2 Disruptive TCP PEP Solution


One of the disadvantages to using disruptive TCP PEP is the breaking of the end-to-end model. Some applications cannot work when the flow of traffic is broken, and the PEP has no provision for handling encrypted traffic (IPSec). New transport protocols such as SCTP require special handling or additional code to function with disruptive TCP PEP. An additional managed network component is also required at every satellite router.

RBSCP over Satellite Links

RBSCP has been designed to preserve the end-to-end model and provide performance improvements over the satellite link without using a PEP solution. IPSec encryption of clear-text traffic (for example a VPN service configuration) across the satellite link is supported. RBSCP allows two routers to control and monitor the sending rates of the satellite link, thereby increasing the bandwidth utilization. Lost packets are retransmitted over the satellite link by RBSCP preventing the end host TCP senders from going into slow start mode.

RBSCP is implemented using a tunnel interface as shown in the figure below. The tunnel can be configured over any network interface supported by Cisco IOS software that can be used by a satellite modem or internal satellite modem network module. IP traffic is sent across the satellite link with appropriate modifications and enhancements that are determined by the router configuration. Standard routing or policy-based routing can be used to determine the traffic to be sent through the RBSCP tunnel.

Figure 3 Nondisruptive RBSCP Solution


RBSCP tunnels can be configured for any of the following features.

Time Delay

One of the RBSCP routers can be configured to hold frames due for transmission through the RBSCP tunnel. The delay time increases the RTT at the end host and allows RBSCP time to retransmit lost TCP frames or other protocol frames. If the retransmission is successful, it prevents lost frame events from reaching the end host where congestion procedures would be enabled. In some cases the retransmission can be completed by RBSCP without inserting the delay.

ACK Splitting

Performance improvements can be made for clear-text TCP traffic using acknowledgement (ACK) splitting in which a number of additional TCP ACKs are generated for each TCP ACK received. TCP will open a congestion window by one maximum transmission unit (MTU) for each TCP ACK received. Opening the congestion window results in increased bandwidth becoming available. Configure this feature only when the satellite link is not using all the available bandwidth. Encrypted traffic cannot use ACK splitting.

Window Stuffing

Clear-text TCP and SCTP traffic can benefit from the RBSCP window stuffing feature. RBSCP can buffer traffic so that the advertised window can be incremented up to the available satellite link bandwidth or the available memory in the router. The end host that sends the packets is fooled into thinking that a larger window exists at the receiving end host and sends more traffic. Use this feature with caution because the end host may send too much traffic for the satellite link to handle and the resulting loss and retransmission of packets may cause link congestion.

SCTP Drop Reporting

SCTP uses an appropriate byte counting method instead of ACK counting to determine the size of the transmission window, so ACK splitting does not work with SCTP. The RBSCP tunnel can generate an SCTP packet-dropped report for packets dropped across the satellite but not as a result of congestion loss. This SCTP drop reporting is on by default and provides a chance to retransmit the packet without affecting the congestion window size. Actual congestion losses are still reported, and normal recovery mechanisms are activated.

How to Configure Rate Based Satellite Control Protocol

Configuring the RBSCP Tunnel

Perform this task to configure the RBSCP tunnel. Remember to configure the router at each end of the tunnel.

Before You Begin

Ensure that the physical interface to be used as the tunnel source in this task is already configured.


SUMMARY STEPS

1.    enable

2.    configure terminal

3.    interface type number

4.    ip unnumbered interface-type interface-number

5.    tunnel source {ip-address | interface-type interface-number}

6.    tunnel destination {hostname | ip-address}

7.    tunnel bandwidth {receive | transmit} bandwidth

8.    tunnel mode {aurp | cayman| dvmrp| eon| gre| gre multipoint| ipip[decapsulate-any]| iptalk| mpls| nos| rbscp}

9.    tunnel rbscp ack_split split-size

10.    tunnel rbscp delay

11.    tunnel rbscp report

12.    tunnel rbscp window_stuff step-size

13.    exit


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
interface type number


Example:

Router(config)# interface tunnel 0

 

Specifies the interface type and number and enters interface configuration mode.

 
Step 4
ip unnumbered interface-type interface-number


Example:

Router(config-if)# ip unnumbered Ethernet 1

 

Enables IP processing on an interface without assigning an explicit IP address.

  • Whenever the unnumbered interface generates a packet (for example, for a routing update), it uses the address of the specified interface as the source address of the IP packet.
 
Step 5
tunnel source {ip-address | interface-type interface-number}


Example:

Router(config-if)# tunnel source Ethernet 1

 

Configures the tunnel source.

  • Use the ip-addressargument to specify the IP address of the service provider.
  • Use the interface-typeand interface-numberarguments to specify the interface to use. For RBSCP we recommend specifying an interface as the tunnel source.
 
Step 6
tunnel destination {hostname | ip-address}


Example:

Router(config-if)# tunnel destination 172.17.2.1

 

Configures the tunnel destination.

  • Use the hostnameargument to specify the IP address of the service provider.
  • Use the ip-addressargument to specify the interface to use.
 
Step 7
tunnel bandwidth {receive | transmit} bandwidth


Example:

Router(config-if)# tunnel bandwidth transmit 1000

 

Specifies the tunnel bandwidth to be used to transmit packets.

  • Use the bandwidthargument to specify the bandwidth.
Note    The receive keyword is no longer used.
 
Step 8
tunnel mode {aurp | cayman| dvmrp| eon| gre| gre multipoint| ipip[decapsulate-any]| iptalk| mpls| nos| rbscp}


Example:

Router(config-if)# tunnel mode rbscp

 

Specifies the protocol to be used in the tunnel.

  • Use the rbscp keyword to specify that RBSCP will be used as the tunnel protocol.
 
Step 9
tunnel rbscp ack_split split-size


Example:

Router(config-if)# tunnel rbscp ack_split 6

 

(Optional) Enables TCP acknowledgement (ACK) splitting with RBSCP tunnels.

  • Use the split-size argument to specify the number of ACKs to send for every ACK received.
  • The default number of ACKs is 4.
 
Step 10
tunnel rbscp delay


Example:

Router(config-if)# tunnel rbscp delay

 

(Optional) Enables RBSCP tunnel delay.

  • Use this command only when the RTT is greater than 700 milliseconds.
 
Step 11
tunnel rbscp report


Example:

Router(config-if)# tunnel rbscp report

 

(Optional) Reports dropped RBSCP packets to SCTP.

  • Reporting dropped packets to SCTP provides better bandwidth use because SCTP tells the end hosts to retransmit the dropped packets and this prevents the end hosts from assuming that the network is congested.
 
Step 12
tunnel rbscp window_stuff step-size


Example:

Router(config-if)# tunnel rbscp window_stuff 3

 

(Optional) Enables TCP window stuffing by increasing the value of the TCP window scale for RBSCP tunnels.

  • Use the step-size argument to specify the step increment number.
 
Step 13
exit


Example:

Router(config-if)# exit

 

Exits interface configuration mode and returns to global configuration mode.

  • Repeat this step one more time to exit global configuration mode.
 

What to Do Next

This task must be repeated on the router on the other side of the satellite link. Substitute the sample IP addresses, host names, and other parameters for the appropriate values on the second router.

Verifying that the RBSCP Tunnel Is Active

Perform this task to verify that the RBSCP tunnel configured in the Configuring the RBSCP Tunnel task is active.

SUMMARY STEPS

1.    enable

2.    show rbscp [all| state| statistics] [tunnel tunnel-number]

3.    exit


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
show rbscp [all| state| statistics] [tunnel tunnel-number]


Example:

Router# show rbscp state tunnel 1

 

Use this command with the state and tunnelkeywords to display information about the current state of the tunnel. In the following sample output the tunnel is shown in an open state. All counters display totals accumulated since the last clear rbscp command was issued.

 
Step 3
exit


Example:

Router># exit

 

Exits priviliged EXEC configuration mode.

 

Verifying the RBSCP Traffic

Perform this task to verify that the traffic is being transmitted through the RBSCP tunnel and across the satellite link.

SUMMARY STEPS

1.    enable

2.    show interfaces tunnel number [accounting

3.    exit


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
show interfaces tunnel number [accounting


Example:

Router# show interfaces tunnel 0

 

Use this command to show that traffic is being transmitted through the RBSCP tunnel.

 
Step 3
exit


Example:

Router># exit

 

Exits priviliged EXEC configuration mode.

 

Configuration Examples for Rate Based Satellite Control Protocol

Configuring the RBSCP Tunnel Example

In the following example, Router 1 and Router 2 are configured to send traffic through an RBSCP tunnel over a satellite link.

Router 1

interface Tunnel 0
 ip unnumbered ethernet1
 tunnel source ethernet1
 tunnel destination 172.17.2.1
 tunnel bandwidth transmit 1000
 tunnel mode rbscp
 tunnel rbscp ack_split 6
 tunnel rbscp report
!
interface ethernet1
 description Satellite Link
 ip address 172.20.1.2 255.255.255.0

Router 2

interface Tunnel 0
 ip unnumbered ethernet1
 tunnel source ethernet1
 tunnel destination 172.20.1.2
 tunnel bandwidth transmit 1000
 tunnel mode rbscp
 tunnel rbscp ack_split 6
 tunnel rbscp report
!
interface ethernet1
 description Satellite Link
 ip address 172.17.2.1 255.255.255.0

Configuring Routing for the RBSCP Tunnel Example

To control the type of traffic that uses the RBSCP tunnel, you must configure the appropriate routing. If you want to direct all traffic through the tunnel, you can configure a static route.


Note


Remember to configure the tunnel interface as passive if dynamic routing protocols are used to prevent routing flaps.

The following example shows how to use policy based routing to route some specific protocol types through the tunnel. In this example, an extended access list allows TCP, Stream Control Transmission Protocol (SCTP), Encapsulating Security Payload (ESP) protocol, and Authentication Header (AH) traffic to travel through the tunnel. All IP traffic is denied.

Router 1 (Local Side)

interface Tunnel1
 ip unnumbered FastEthernet1/1
 tunnel source FastEthernet1/1
 tunnel destination 10.12.0.20
 tunnel mode rbscp
 tunnel ttl 5
 tunnel bandwidth transmit 30000
 tunnel rbscp window_stuff 1
 tunnel rbscp ack_split 4
!
interface FastEthernet0/0
 ip address 10.13.0.1 255.255.255.0
 ip policy route-map rbscp-pbr
 duplex auto
 speed auto
!
interface FastEthernet1/1
 description Satellite Link
 ip address 10.12.0.1 255.255.255.0
 duplex auto
 speed auto
!
ip route 10.15.0.0 255.255.255.0 FastEthernet1/1
!
ip access-list extended rbscp-acl
 permit tcp any 10.15.0.0 0.0.0.255
 permit 132 any 10.15.0.0 0.0.0.255
 permit esp any 10.15.0.0 0.0.0.255
 permit ahp any 10.15.0.0 0.0.0.255
 deny ip any any
!
!
route-map rbscp-pbr permit 10
 match ip address rbscp-acl
 set interface Tunnel1

Router 2 (Remote Side)

ip dhcp pool CLIENT
 import all
 network 10.15.0.0 255.255.255.0
 default-router 10.15.0.1
 domain-name engineer.chicago.il.us
 dns-server 10.10.0.252
!
interface Tunnel1
 ip unnumbered FastEthernet0/1
 tunnel source FastEthernet0/1
 tunnel destination 10.12.0.1
 tunnel mode rbscp
 tunnel ttl 5
 tunnel bandwidth transmit 30000
 tunnel rbscp window_stuff 1
 tunnel rbscp ack_split 4
!
interface FastEthernet0/0
 description Local LAN
 ip address 10.15.0.1 255.255.255.0
 ip policy route-map rbscp-pbr
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description Satellite Link
 ip address 10.12.0.20 255.255.255.0
 duplex auto
 speed auto
!
ip route 0.0.0.0 0.0.0.0 FastEthernet0/1
!
ip access-list extended rbscp-acl
 permit tcp any any
 permit 132 any any
 permit esp any any
 permit ahp any any
 deny ip any any
!
route-map rbscp-pbr permit 10
 match ip address rbscp-acl
 set interface Tunnel1

Additional References

Related Documents

Related Topic

Document Title

Tunnel interface commands: complete command syntax, command mode, defaults, usage guidelines, and examples

Cisco IOS Interface and Hardware Component Command Reference

Tunnel configuration

Cisco IOS Interface and Hardware Component Configuration Guide

Standards

Standards

Title

No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.

--

MIBs

MIBs

MIBs Link

No new or modified MIBs are supported by this feature, and support for existing MIBs has not been modified by this feature.

To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs

RFCs

RFCs

Title

RFC 1323

TCP Extensions for High Performance

RFC 2018

TCP Selective Acknowledgment Options

Technical Assistance

Description

Link

Technical Assistance Center (TAC) home page, containing 30,000 pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.

http://www.cisco.com/public/support/tac/home.shtml

Feature Information for Rate Based Satellite Control Protocol

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Table 1 Feature Information for AToM NSF Any Transport over MPLS and AToM Graceful Restart

Feature Name

Releases

Feature Information

Rate Based Satellite Control Protocol

12.3(7)T

This feature was introduced.

The following commands were introduced or modified:

clear rbscp, debug tunnel rbscp, show rbscp, tunnel bandwidth, tunnel mode, tunnel rbscp ack_split, tunnel rbscp delay, tunnel rbscp input_drop, tunnel rbscp long_drop, tunnel rbscp report, tunnel rbscp, window_stuff.

Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1110R)

Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.

© 2012 Cisco Systems, Inc. All rights reserved.