The Network Simulator NS-2 & SCTP Module

18
The Network Simulator NS-2 & SCTP Module Student Kuo-Lun Lu Advisor Dr. Jen-Yi Pan

description

The Network Simulator NS-2 & SCTP Module. Student : Kuo-Lun Lu Advisor : Dr. Jen-Yi Pan. Outline. SCTP - what ' s is SCTP - important features SCTP module - multi-interface - set nodes - configuration parameters. - PowerPoint PPT Presentation

Transcript of The Network Simulator NS-2 & SCTP Module

Page 1: The Network Simulator NS-2  & SCTP Module

The Network Simulator NS-2 & SCTP Module

Student : Kuo-Lun Lu

Advisor : Dr. Jen-Yi Pan

Page 2: The Network Simulator NS-2  & SCTP Module

Outline

• SCTP

- what's is SCTP

- important features

• SCTP module

- multi-interface

- set nodes

- configuration parameters

Page 3: The Network Simulator NS-2  & SCTP Module

What is SCTP ?

• SCTP ( Stream Control Transmission Protocol ) - PSTN signaling messages over IP Networks

• Similar to TCP and UDP - transport layer

- reliable / unreliable transmission

- congestion control

- ordered / unordered transmission

Page 4: The Network Simulator NS-2  & SCTP Module

Important Features

• Multi-homing

• Multiple Streams

• SACK

• reliable / unreliable transmission

• ordered / unordered

Page 5: The Network Simulator NS-2  & SCTP Module

SCTP Multi-homing

• More than one IP address. - one of the IP addresses is set to be the primary address primary path - other IP addresses secondary path

Interface 1

Interface 2

Interface 1

Interface 2

#path1

#path2 #path3

#path4

four possibly independent pathsHost A Host B

Page 6: The Network Simulator NS-2  & SCTP Module

Multi-homing – change path

HostB

NI-1

HostA

OS

OS

Multi-homing

NI-1

IP networkERRORXData Data Data

Data

Data

Data

Data

DataDataDataDataNI-2 Primary Path

Secondary Path

X

Primary Path

Secondary PathX

Page 7: The Network Simulator NS-2  & SCTP Module

SCTP Multiple Stream

• The streams within an SCTP association allow the endpoints to transfer multiple sequences of messages at the same time.

HostB

NI

HostA

OSNI

OSData3 Data2 Data1 Data0

Data7 Data6 Data5 Data4

Data11 Data10 Data9 Data8

Multiple Streams

Page 8: The Network Simulator NS-2  & SCTP Module

Acknowledgment chunk

• SCTP detects packet losses by checking the blocking gaps in its Selective Acknowledgment (SACK) chunks.

Page 9: The Network Simulator NS-2  & SCTP Module

SCTP module

• Base SCTP Agent在撰寫的過程中,主要遵循 RFC2960與其相關的後續推出的 draft 。包括有:– Normal Establishment of an Association (rudimentary handshake)– Transmission of DATA Chunks– Acknowledgment on Reception of DATA Chunks– Management Retransmission Timer– Multi-homed SCTP Endpoints– Stream Identifier and Stream Sequence Number– Ordered and Unordered Delivery– Report Gaps in Received DATA TSNs– SCTP Slow-Start and Congestion Avoidance– Endpoint Failure Detection– Path Failure Detection– Path Heartbeat (without upper layer control)– Partial Reliability (draft-ietf-tsvwg-usctp-01.txt)

Page 10: The Network Simulator NS-2  & SCTP Module

Multi-interface

• NS2's architecture, a node can't actually be multihomed.

Each multihomed node is actually made up of

more than one node.

- core node

- interface node

Page 11: The Network Simulator NS-2  & SCTP Module
Page 12: The Network Simulator NS-2  & SCTP Module

建立多網路介面節點方法 -- command Where to find?

in sctp.cc

• set-multihome-core : 建立核心節點• multihome-add-interface : 核心節點與網路介面 Link

$ns node-config-multihome-core \ -wiredRouting OFF \ -macTrace OFFset host1_core [$ns node 1.0.1]set host1_if0 [$ns node 1.0.2]set host1_if1 [$ns node 2.0.1]$ns multihome-add-interface $host1_core $host1_if0$ns multihome-add-interface $host1_core $host1_if1

host1_core [$ns node 1.0.1]

host1_if0 [$ns node 1.0.2]

host1_if1 [$ns node 2.0.1]

Page 13: The Network Simulator NS-2  & SCTP Module

在節點加上 SCTP agent

• multihome-attach-agent :將 SCTP agent加到節點上

– 若 SCTP僅有單一網路介面則用 attach-agentset sctp0 [new Agent/SCTP]

$ns attach-agent $host0 $sctp0

– 若 SCTP有多個網路介面則用 multihome-attach-agent set sctp1 [new Agent/SCTP]

$ns multihome-attach-agent $host1_core $sctp1

Page 14: The Network Simulator NS-2  & SCTP Module

設定路徑• set-primary-destination:目的端有多個介面 ,設定要到達的 Destination 位置– $sctp0 set-primary-destination $host1_if0

不指定 ?

• force-source:設定多界面節點的主用 interface– $ns at 0 "$sctp1 force-source $host1_if0“

Page 15: The Network Simulator NS-2  & SCTP Module

主要參數設定

Where to find?

in sctp.cc

• PathMaxRetrans_ 5– 當路徑的錯誤計數器超過此參數值時,會將此路徑的狀態設為 INACTIVE 並改由其他路徑傳輸。

• maxInitRetransmits 8 – 是 INIT Chunk 的最大重傳次數

• heartInterval_ 30– 當路徑超過此參數時間沒有資料傳送時,將路徑視為是 idle path ,並開始透過 HEARTBEAT 機制偵測路徑的狀態 (以秒為單位 )。

Page 16: The Network Simulator NS-2  & SCTP Module

主要參數設定 (cont.)

• mtu_ 1500 – 是指每條路徑的最大傳輸單位

• initialSsthresh_ 65536 – Ssthresh(以 Byte 為單位 )

• InitialCwnd_ 2 – Cwnd ( 以 MTU - SCTP/IP headers 為單位 )

• numOutStreams_ 1 – 指由傳送端到接收端有幾條 outbound stream

• unordered_ 0 – 所傳輸的資料是有序或無序傳輸,預設 0 指 ordered

• ipHeaderSize_ 20 – IP header 的長度

Page 17: The Network Simulator NS-2  & SCTP Module

主要參數設定 (cont.)

• dataChunkSize_ 512 – Data chunk 的長度

• useDelayedSacks_ 1 –是否使用 Delay SACK

• rtxToAlt_ 1

….其餘參數設定可參閱 NS2使用手冊

Page 18: The Network Simulator NS-2  & SCTP Module

• rtxToAlt_–重傳的資料是否要使用其他路徑傳輸 0 = sam

e, 1 = alt, 2 = fast rtx to same + timeouts to alt