Analisis Performansi TFMCC Pada Jaringan Broadband Wireline.

(1)

i

ANALISIS PERFORMANSI TFMCC PADA JARINGAN

BROADBAND WIRELINE

Aditya Pratomo Sarwoko / 0622008 surel: adityapratomosarwoko@yahoo.com

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia

ABSTRAKSI

Trend baru dalam dunia komunikasi, khususnya penyebaran aplikasi-aplikasi streaming multicast dan real-time audio/video, akan menyebabkan meningkatnya trafik non-TCP pada internet. Aplikasi-aplikasi tersebut biasanya jarang melakukan congestion control seperti halnya aplikasi-aplikasi berbasis TCP, sehingga buffer lokal akan penuh dengan sangat cepat. Karena alasan itulah, dikembangkan protokol-protokol TCP-friendly yang dapat bersaing secara adil dengan TCP untuk mendapatkan bandwidth.

Untuk menghindari terjadinya congestion pada trafik non-TCP yang dikirim secara streaming multicast, muncul algoritma TFMCC.

Pada tugas akhir ini, performansi TFMCC dengan mekanisme congestion control akan dibandingkan dengan performansi TCP tradisional. Keduanya akan diuji menggunakan perangkat lunak Network Simulator 2 (NS-2) untuk mengukur parameter throughput, TCP-friendliness, dan persentase packet loss.

Hasil simulasi yang dilakukan pada tugas akhir ini menunjukkan bahwa pada kondisi jaringan yang sama, grafik throughput TFMCC lebih stabil daripada TCP. Peningkatan variabel bandwidth, akan meningkatkan throughput rata-rata TCP dan TFMCC serta tingkat TCP- friendliness. Kedua parameter throughput akan mencapai nilai tertingginya saat melalui bandwidth sebesar 2000 kbps, sedangkan TCP-friendliness saat lebar bandwidth sebesar 1500 kbps. Peningkatan lebar bandwidth akan menurunkan persentase packet loss, dengan nilai optimal saat bandwidth benilai 2000 kbps. Jika variabel packet size yang ditingkatkan, besar throughput rata-rata untuk trafik TCP dan tingkat TCP- friendliness akan meningkat, dengan nilai tertinggi masing-masing pada packet size 2000 dan 1000 bytes. Sebaliknya, peningkatan nilai variabel packet size, akan menurunkan nilai throughput rata-rata TFMCC dan persentase packet loss. Kedua parameter tersebut akan mencapai nilai tertingginya masing-masing pada packet size 250 dan 1000 bytes. Peningkatan jumlah penerima akan menurunkan throughput rata-rata TCP dan TFMCC. Throughput rata-rata tertinggi akan didapat saat terdapat 2 node penerima. Sementara itu, peningkatan jumlah penerima akan menaikkan persentase packet loss. Parameter ini memiliki nilai terendah pada 2 node penerima. Variabel jumlah penerima tidak berpengaruh signifikan terhadap tingkat TCP- friendliness, walaupun tingkat TCP- friendliness dapat mencapai nilai optimalnya pada 6 penerima.


(2)

ii

TFMCC PERFORMANCE ANALYSIS IN BROADBAND

WIRELINE NETWORK

Aditya Pratomo Sarwoko / 0622008 e-mail: adityapratomosarwoko@yahoo.com

Department of Electrical Engineering, Faculty of Engineering, Maranatha Christian University

Jalan Prof. Drg. Suria Sumantri 65 Bandung 40164, Indonesia

ABSTRACT

New trends in communications, especially the distribution of multicast streaming applications and real-time audio / video, will increase non-TCP traffic on the internet. These non-TCP applications are rarely to perform congestion control as well as TCP-based applications, so the local buffer will be full very quickly. For that reason, TCP-friendly protocols is developed to compete fairly with TCP for bandwidth.

To avoid congestion on non-TCP traffic is sent in a streaming multicast, appear TFMCC algorithm.

In this final project, the performance of TFMCC with congestion control mechanisms will be compared with the performance of traditional TCP. Both protocols will be tested using software Network Simulator 2 (NS-2) to analyse some performance metrics such as throughput, TCP-friendliness, and the percentage of packet loss.

The simulation results conducted in this final project show that on the same network conditions, throughput of TFMCC is more stable than TCP’s. The increased of bandwidth variable, will increase the average throughput of TCP and TFMCC and TCP-friendliness level. Throughput parameters will achieve the highest value when the bandwidth is 2000 kbps, while TCP-friendliness level when the bandwidth is 1500 kbps. Increased bandwidth will decrease the percentage of packet loss, with the optimal value while the value of bandwidth 2000 kbps. If variable packet size is increased, the average throughput of TCP traffic and TCP-friendliness level will increase, with the highest value on packet size 2000 for TCP throughput’s and 1000 bytes for TCP-friendliness level. On the contrary, increasing the value of variable packet size, will reduce the average throughput value TFMCC and percentage of packet loss. Both of these parameters will reach its highest value at packet size 250 for TFMCC throughput’s and 1000 bytes for percentage of packet loss. Increasing the number of receiver would lose an average throughput of TCP and TFMCC. Highest average throughput will be obtained when there are two nodes of receiver. Meanwhile, the increasing number of receiver would increase the percentage of packet loss. This parameter has the lowest value at 2 node receiver. Variable number of receiver does not significantly influence the level of friendliness, although the level of TCP-friendliness can achieve optimal value in 6 receiver.


(3)

iii

DAFTAR ISI

LEMBAR PENGESAHAN SURAT PERNYATAAN

ABSTRAKSI………...…...… i

ABSTRACT………...……... ii

KATA PENGANTAR ………... iii

DAFTAR ISI ………....…… v

DAFTAR GAMBAR ………....…... viii

BAB I PENDAHULUAN 1.1 Latar Belakang ………... 1

1.2 Identifikasi Masalah ………... 2

1.3 Tujuan…...………...….. 2

1.4 Pembatasan Masalah………...… 2

1.5 Sistematika Pembahasan ………...…... 3

BAB II LANDASAN TEORI 2.1 Congestion Control... 4

2.2 Klasifikasi Congestion Control... 6

2.2.1. The Box is Black: Blind Congestion Control ... 8

2.2.2. The Box is Grey: Measurement-based Congestion Control 9 2.2.3. The Box is Green ... 10

2.3 TFMCC (TCP Friendly Multicast Congestion Control)... 10

2.3.1. Latar Belakang ... 10

2.3.2. Protocol Overview ... 13

2.3.3. Slowstart ... 15

BAB III METODA SIMULASI 3.1 Metoda Simulasi Secara Umum ……….…... 16

3.1.1 Perangkat Keras dan Lunak yang Digunakan... 16

3.1.2 Skrip Simulasi dan Asumsi yang Digunakan Secara Umum ... 16


(4)

iv

3.1.3. Kondisi Awal Sebelum Simulasi Dilakukan Secara Umum.

... 17

3.1.4. Hasil Yang Diharapkan Secara Umum ... 17

3.2 Metoda Simulasi Secara Khusus ………... 17

3.2.1. Throughput berdasarkan bandwidth pada bottleneck link.. 17

3.2.2 Throughput berdasarkan packet size... 18

3.2.3. Throughput berdasarkan jumlah penerima ... 19

3.2.4. Persentase packet loss berdasarkan bandwidth pada bottleneck link ... 21

3.2.5. Persentase packet loss berdasarkan packet size... 22

3.2.6. Persentase packet loss berdasarkan jumlah penerima... 24

3.2.7. TCP-friendliness berdasarkan bandwidth pada bottleneck link ... 26

3.2.8. TCP-friendliness berdasarkan packet size ... 27

3.2.9. TCP-friendliness berdasarkan jumlah penerima ... 28

BAB IV HASIL SIMULASI DAN ANALISIS DATA 4.1. Throughput berdasarkan bandwidth pada bottleneck link... 30

4.2. Throughput berdasarkan packet size ... 36

4.3. Throughput berdasarkan jumlah penerima ... 43

4.4. Persentase packet loss berdasarkan bandwidth bottleneck link .... 48

4.5. Persentase packet loss berdasarkan packet size ... 49

4.6. Persentase packet loss berdasarkan jumlah penerima ... 51

4.7. TCP-friendliness berdasarkan bandwidth bottleneck link ... 52

4.8. TCP-friendliness berdasarkan packet size ... 53

4.9. TCP-friendliness berdasarkan jumlah penerima ... 55

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 56

5.2. Saran ... 57


(5)

v LAMPIRAN

LAMPIRAN A

Versi jorg widmer ………...……… A-1

Untuk variabel bandwidth ……….………. A-3 Untuk variabel packet size ……….. A-5 Untuk variabel jumlah penerima ………...………. A-8 LAMPIRAN B

Tampilan layar saat simulasi ………..…… B-1 LAMPIRAN C

Skrip perl untuk menghitung throughput ………...…… C-1 Skrip perl untuk menghitung jumlah paket kirim ……….. C-2 Skrip perl untuk menghitung jumlah paket terima ………. C-3 LAMPIRAN D

Contoh dan penjelasan hasil trace ………..…… D-1 LAMPIRAN E

Data statistik throughput TCP dan TFMCC berdasarkan bandwidth pada

bottleneck link detik ke 21 – 120... E-1 Data statistik throughput TCP dan TFMCC berdasarkan packet size detik ke

21 – 120 ... E-2 Data statistik throughput TCP dan TFMCC berdasarkan jumlah penerima


(6)

vi

DAFTAR GAMBAR

Gambar 2.1. Klasifikasi Congestion Control... 7 Gambar 2.2 Sistem Pengiriman Data secara Multicast ………...…. 11 Gambar 4.1 Perbandingan throughput TCP pada Node 3 berdasarkan bandwidth bottleneck link………..……... 30 Gambar 4.2 Perbandingan throughput TFMCC pada Node 3 berdasarkan

bandwidth bottleneck link...………... 31 Gambar 4.3 Perbandingan throughput TCP pada Node 5 berdasarkan bandwidth bottleneck link...…...……….... 31 Gambar 4.4 Perbandingan throughput TFMCC pada Node 5 berdasarkan

bandwidth bottleneck link.……….……... 32 Gambar 4.5 Perbandingan throughput TCP pada Node 7 berdasarkan bandwidth bottleneck link………...………..…. 32 Gambar 4.6 Perbandingan throughput TFMCC pada Node 7 berdasarkan

bandwidth bottleneck link.………... 33 Gambar 4.7 Perbandingan throughput TCP pada Node 9 berdasarkan bandwidth bottleneck link...………... 33 Gambar 4.8 Perbandingan throughput TFMCC pada Node 9 berdasarkan

bandwidth bottleneck link....………... 34 Gambar 4.9 Perbandingan throughput TCP pada Node 3 berdasarkan packet

size………..………... 36 Gambar 4.10 Perbandingan throughput TFMCC pada Node 3 berdasarkan packet

size...……….... 37 Gambar 4.11 Perbandingan throughput TCP pada Node 5 berdasarkan packet

size………...……….. 37 Gambar 4.12 Perbandingan throughput TFMCC pada Node 5 berdasarkan packet

size...………... 38 Gambar 4.13 Perbandingan throughput TCP pada Node 7 berdasarkan packet

size………... 38 Gambar 4.14 Perbandingan throughput TFMCC pada Node 7 berdasarkan packet


(7)

vii

Gambar 4.15 Perbandingan throughput TCP pada Node 9 berdasarkan packet size...………...…... 39 Gambar 4.16. Perbandingan throughput TFMCC pada Node 9 berdasarkan packet

size... 40 Gambar 4.17. Perbandingan throughput TCP pada Node 4 berdasarkan jumlah

penerima... 43 Gambar 4.18. Perbandingan throughput TFMCC pada Node 4 berdasarkan

jumlah penerima... 43 Gambar 4.19. Perbandingan throughput TCP pada Node 5 berdasarkan jumlah

penerima... 44 Gambar 4.20. Perbandingan throughput TFMCC pada Node 5 berdasarkan

jumlah penerima... 44 Gambar 4.21. Perbandingan throughput TCP dan TFMCC pada penerima tunggal ... 46 Gambar 4.22. Perbandingan packet loss berdasarkan bandwidth bottleneck link.... ... 48 Gambar 4.23. Perbandingan packet loss berdasarkan packet size... 49 Gambar 4.24. Perbandingan packet loss berdasarkan jumlah penerima... 51 Gambar 4.25. Perbandingan TCP-friendliness berdasarkan bandwidth bottleneck

link ... 52 Gambar 4.26. Perbandingan TCP-friendliness berdasarkan packet size... 53 Gambar 4.27. Perbandingan TCP-friendliness berdasarkan jumlah penerima... 55


(8)

(9)

LAMPIRAN A


(10)

SKRIP SIMULASI TFMCC

1.

VERSI JORG WIDMER

set interval 1.0 set duration 120.0 set psize 1000 set fid 0

set tcp_num 0 set tfmcc_num 0 set tfmcc_recv_num 0

ns-random 0

# better if bw and packet size don't match exactly (i.e., exactly one # packet each 10ms), otherwise you might sometimes see strange # synchronization effects in ns!

set bw 1007 set num_links 4

Agent/TCP set packetSize_ $psize Agent/TFMCC set packetSize_ $psize

# always add some randomness, s.o. Agent/TCP set overhead_ 0.002

proc setupTCP {start stop s r} {

global ns tcp_num fid interval tcp tcp_sink ftp set tcp($tcp_num) [new Agent/TCP/Sack1] $tcp($tcp_num) set fid_ $fid

set tcp_sink($tcp_num) [new Agent/TCPSink/Sack1] $ns attach-agent $s $tcp($tcp_num)

$ns attach-agent $r $tcp_sink($tcp_num)

$ns connect $tcp($tcp_num) $tcp_sink($tcp_num) set ftp($tcp_num) [new Application/FTP]

$ftp($tcp_num) attach-agent $tcp($tcp_num) $ns at $start "$ftp($tcp_num) start"

$ns at $stop "$ftp($tcp_num) stop" incr tcp_num

incr fid

return $tcp([expr $tcp_num-1]) }


(11)

proc setupTFMCC {start stop s} {

global ns tfmcc_num fid interval tfmcc set group [Node allocaddr]

set tfmcc($tfmcc_num) [new Agent/TFMCC] $tfmcc($tfmcc_num) set fid_ $fid

$tfmcc($tfmcc_num) set dst_addr_ $group $tfmcc($tfmcc_num) set dst_port_ 0 $ns attach-agent $s $tfmcc($tfmcc_num) $ns at $start "$tfmcc($tfmcc_num) start" $ns at $stop "$tfmcc($tfmcc_num) stop" incr tfmcc_num

incr fid

return $tfmcc([expr $tfmcc_num-1]) }

proc setupTFMCCSink {start stop t r} { global ns tfmcc_recv_num tfmcc_sink set group [$t set dst_addr_]

set tfmcc_sink($tfmcc_recv_num) [new Agent/TFMCCSink] $ns attach-agent $r $tfmcc_sink($tfmcc_recv_num)

$tfmcc_sink($tfmcc_recv_num) set dst_addr_ [$t set agent_addr_] $tfmcc_sink($tfmcc_recv_num) set dst_port_ [$t set agent_port_] $tfmcc_sink($tfmcc_recv_num) set recv_id_ $tfmcc_recv_num $ns at $start "$r join-group $tfmcc_sink($tfmcc_recv_num) $group" $ns at $stop "$tfmcc_sink($tfmcc_recv_num) stop; $r leave-group $tfmcc_sink($tfmcc_recv_num) $group"

incr tfmcc_recv_num

return $tfmcc_sink([expr $tfmcc_recv_num-1]) }

set ns [new Simulator -multicast on]

#set f [open output/$bw.pkt w] #$ns trace-all $f

set n(0) [$ns node] set n(1) [$ns node]

for {set i 0} {$i < $num_links} {incr i} { set s($i) [$ns node]

set r($i) [$ns node] }

#$ns duplex-link $n(0) $n(1) [expr $bw*1000] 20ms RED $ns duplex-link $n(0) $n(1) [expr $bw*1000] 20ms DropTail for {set i 0} {$i < $num_links} {incr i} {


(12)

$ns duplex-link $s($i) $n(0) 100Mb 5ms DropTail $ns duplex-link $n(1) $r($i) 100Mb 5ms DropTail }

set mproto DM

set mrthandle [$ns mrtproto $mproto {}]

set t [setupTFMCC 1.0 $duration $s(0)] for {set i 0} {$i < $num_links} {incr i} { setupTFMCCSink 0.9 $duration $t $r($i) }

for {set i 0} {$i < $num_links} {incr i} { setupTCP 2.0 $duration $s($i) $r($i) }

$ns at $duration "exit 0" $ns run

2.

UNTUK VARIABEL BANDWIDTH

set interval 1.0 set duration 120.0 set psize 1000 set fid 0

set tcp_num 0 set tfmcc_num 0 set tfmcc_recv_num 0

ns-random 0

# better if bw and packet size don't match exactly (i.e., exactly one # packet each 10ms), otherwise you might sometimes see strange # synchronization effects in ns!

set bw 250

# dapat diubah menjadi BW 500, 1000, 1500, dan 2000 kilobytes per second. set num_links 4

Agent/TCP set packetSize_ $psize Agent/TFMCC set packetSize_ $psize

# always add some randomness, s.o. Agent/TCP set overhead_ 0.002


(13)

proc setupTCP {start stop s r} {

global ns tcp_num fid interval tcp tcp_sink ftp set tcp($tcp_num) [new Agent/TCP/Sack1] $tcp($tcp_num) set fid_ $fid

set tcp_sink($tcp_num) [new Agent/TCPSink/Sack1] $ns attach-agent $s $tcp($tcp_num)

$ns attach-agent $r $tcp_sink($tcp_num)

$ns connect $tcp($tcp_num) $tcp_sink($tcp_num) set ftp($tcp_num) [new Application/FTP]

$ftp($tcp_num) attach-agent $tcp($tcp_num) $ns at $start "$ftp($tcp_num) start"

$ns at $stop "$ftp($tcp_num) stop" incr tcp_num

incr fid

return $tcp([expr $tcp_num-1]) }

proc setupTFMCC {start stop s} {

global ns tfmcc_num fid interval tfmcc set group [Node allocaddr]

set tfmcc($tfmcc_num) [new Agent/TFMCC] $tfmcc($tfmcc_num) set fid_ $fid

$tfmcc($tfmcc_num) set dst_addr_ $group $tfmcc($tfmcc_num) set dst_port_ 0 $ns attach-agent $s $tfmcc($tfmcc_num) $ns at $start "$tfmcc($tfmcc_num) start" $ns at $stop "$tfmcc($tfmcc_num) stop" incr tfmcc_num

incr fid

return $tfmcc([expr $tfmcc_num-1]) }

proc setupTFMCCSink {start stop t r} { global ns tfmcc_recv_num tfmcc_sink set group [$t set dst_addr_]

set tfmcc_sink($tfmcc_recv_num) [new Agent/TFMCCSink] $ns attach-agent $r $tfmcc_sink($tfmcc_recv_num)

$tfmcc_sink($tfmcc_recv_num) set dst_addr_ [$t set agent_addr_] $tfmcc_sink($tfmcc_recv_num) set dst_port_ [$t set agent_port_] $tfmcc_sink($tfmcc_recv_num) set recv_id_ $tfmcc_recv_num $ns at $start "$r join-group $tfmcc_sink($tfmcc_recv_num) $group" $ns at $stop "$tfmcc_sink($tfmcc_recv_num) stop; $r leave-group $tfmcc_sink($tfmcc_recv_num) $group"


(14)

return $tfmcc_sink([expr $tfmcc_recv_num-1]) }

global ns

set ns [new Simulator -multicast on]

set f0 [open out_bottleneck.tr w] $ns trace-all $f0

set f1 [open out_bottleneck.nam w] $ns namtrace-all $f1

puts " Simulation started."

# Declare "finish" procedure which closes the trace file proc finish {} {

global ns f0 f1 $ns flush-trace close $f0 close $f1

exec nam out_bottleneck.nam & puts " Simulation ended." exit 0

}

set n(0) [$ns node] set n(1) [$ns node]

for {set i 0} {$i < $num_links} {incr i} { set s($i) [$ns node]

set r($i) [$ns node] }

#$ns duplex-link $n(0) $n(1) [expr $bw*1000] 20ms RED $ns duplex-link $n(0) $n(1) [expr $bw*1000] 20ms DropTail for {set i 0} {$i < $num_links} {incr i} {

$ns duplex-link $s($i) $n(0) 100Mb 5ms DropTail $ns duplex-link $n(1) $r($i) 100Mb 5ms DropTail }

set mproto DM

set mrthandle [$ns mrtproto $mproto {}]

set t [setupTFMCC 1.0 $duration $s(0)] for {set i 0} {$i < $num_links} {incr i} { setupTFMCCSink 0.9 $duration $t $r($i) }

for {set i 0} {$i < $num_links} {incr i} { setupTCP 2.0 $duration $s($i) $r($i)


(15)

}

$ns at $duration "finish" $ns run

3.

UNTUK VARIABEL PACKET SIZE

set interval 1.0 set duration 120.0 set psize 250

# dapat diubah menjadi packet size 500, 1000, 1500, dan 2000 bytes. set fid 0

set tcp_num 0 set tfmcc_num 0 set tfmcc_recv_num 0

ns-random 0

# better if bw and packet size don't match exactly (i.e., exactly one # packet each 10ms), otherwise you might sometimes see strange # synchronization effects in ns!

set bw 1007 set num_links 4

Agent/TCP set packetSize_ $psize Agent/TFMCC set packetSize_ $psize

# always add some randomness, s.o. Agent/TCP set overhead_ 0.002

proc setupTCP {start stop s r} {

global ns tcp_num fid interval tcp tcp_sink ftp set tcp($tcp_num) [new Agent/TCP/Sack1] $tcp($tcp_num) set fid_ $fid

set tcp_sink($tcp_num) [new Agent/TCPSink/Sack1] $ns attach-agent $s $tcp($tcp_num)

$ns attach-agent $r $tcp_sink($tcp_num)

$ns connect $tcp($tcp_num) $tcp_sink($tcp_num) set ftp($tcp_num) [new Application/FTP]

$ftp($tcp_num) attach-agent $tcp($tcp_num) $ns at $start "$ftp($tcp_num) start"


(16)

incr tcp_num incr fid

return $tcp([expr $tcp_num-1]) }

proc setupTFMCC {start stop s} {

global ns tfmcc_num fid interval tfmcc set group [Node allocaddr]

set tfmcc($tfmcc_num) [new Agent/TFMCC] $tfmcc($tfmcc_num) set fid_ $fid

$tfmcc($tfmcc_num) set dst_addr_ $group $tfmcc($tfmcc_num) set dst_port_ 0 $ns attach-agent $s $tfmcc($tfmcc_num) $ns at $start "$tfmcc($tfmcc_num) start" $ns at $stop "$tfmcc($tfmcc_num) stop" incr tfmcc_num

incr fid

return $tfmcc([expr $tfmcc_num-1]) }

proc setupTFMCCSink {start stop t r} { global ns tfmcc_recv_num tfmcc_sink set group [$t set dst_addr_]

set tfmcc_sink($tfmcc_recv_num) [new Agent/TFMCCSink] $ns attach-agent $r $tfmcc_sink($tfmcc_recv_num)

$tfmcc_sink($tfmcc_recv_num) set dst_addr_ [$t set agent_addr_] $tfmcc_sink($tfmcc_recv_num) set dst_port_ [$t set agent_port_] $tfmcc_sink($tfmcc_recv_num) set recv_id_ $tfmcc_recv_num $ns at $start "$r join-group $tfmcc_sink($tfmcc_recv_num) $group" $ns at $stop "$tfmcc_sink($tfmcc_recv_num) stop; $r leave-group $tfmcc_sink($tfmcc_recv_num) $group"

incr tfmcc_recv_num

return $tfmcc_sink([expr $tfmcc_recv_num-1]) }

global ns

set ns [new Simulator -multicast on]

set f0 [open out_bottleneck.tr w] $ns trace-all $f0

set f1 [open out_bottleneck.nam w] $ns namtrace-all $f1

puts " Simulation started."


(17)

proc finish {} { global ns f0 f1 $ns flush-trace close $f0 close $f1

exec nam out_bottleneck.nam & puts " Simulation ended." exit 0

}

set n(0) [$ns node] set n(1) [$ns node]

for {set i 0} {$i < $num_links} {incr i} { set s($i) [$ns node]

set r($i) [$ns node] }

#$ns duplex-link $n(0) $n(1) [expr $bw*1000] 20ms RED $ns duplex-link $n(0) $n(1) [expr $bw*1000] 20ms DropTail for {set i 0} {$i < $num_links} {incr i} {

$ns duplex-link $s($i) $n(0) 100Mb 5ms DropTail $ns duplex-link $n(1) $r($i) 100Mb 5ms DropTail }

set mproto DM

set mrthandle [$ns mrtproto $mproto {}]

set t [setupTFMCC 1.0 $duration $s(0)] for {set i 0} {$i < $num_links} {incr i} { setupTFMCCSink 0.9 $duration $t $r($i) }

for {set i 0} {$i < $num_links} {incr i} { setupTCP 2.0 $duration $s($i) $r($i) }

$ns at $duration "finish" $ns run

4.

UNTUK VARIABEL JUMLAH PENERIMA

set interval 1.0 set duration 120.0 set psize 1000 set fid 0


(18)

set tcp_num 0 set tfmcc_num 0 set tfmcc_recv_num 0

ns-random 0

# better if bw and packet size don't match exactly (i.e., exactly one # packet each 10ms), otherwise you might sometimes see strange # synchronization effects in ns!

set bw 1007

#num_links dihilangkan, supaya jumlah pengirim dapat berbeda dengan jumlah penerima

Agent/TCP set packetSize_ $psize Agent/TFMCC set packetSize_ $psize

# always add some randomness, s.o. Agent/TCP set overhead_ 0.002

proc setupTCP {start stop s r} {

global ns tcp_num fid interval tcp tcp_sink ftp set tcp($tcp_num) [new Agent/TCP/Sack1] $tcp($tcp_num) set fid_ $fid

set tcp_sink($tcp_num) [new Agent/TCPSink/Sack1] $ns attach-agent $s $tcp($tcp_num)

$ns attach-agent $r $tcp_sink($tcp_num)

$ns connect $tcp($tcp_num) $tcp_sink($tcp_num) set ftp($tcp_num) [new Application/FTP]

$ftp($tcp_num) attach-agent $tcp($tcp_num) $ns at $start "$ftp($tcp_num) start"

$ns at $stop "$ftp($tcp_num) stop" incr tcp_num

incr fid

return $tcp([expr $tcp_num-1]) }

proc setupTFMCC {start stop s} {

global ns tfmcc_num fid interval tfmcc set group [Node allocaddr]

set tfmcc($tfmcc_num) [new Agent/TFMCC] $tfmcc($tfmcc_num) set fid_ $fid

$tfmcc($tfmcc_num) set dst_addr_ $group $tfmcc($tfmcc_num) set dst_port_ 0 $ns attach-agent $s $tfmcc($tfmcc_num)


(19)

$ns at $start "$tfmcc($tfmcc_num) start" $ns at $stop "$tfmcc($tfmcc_num) stop" incr tfmcc_num

incr fid

return $tfmcc([expr $tfmcc_num-1]) }

proc setupTFMCCSink {start stop t r} { global ns tfmcc_recv_num tfmcc_sink set group [$t set dst_addr_]

set tfmcc_sink($tfmcc_recv_num) [new Agent/TFMCCSink] $ns attach-agent $r $tfmcc_sink($tfmcc_recv_num)

$tfmcc_sink($tfmcc_recv_num) set dst_addr_ [$t set agent_addr_] $tfmcc_sink($tfmcc_recv_num) set dst_port_ [$t set agent_port_] $tfmcc_sink($tfmcc_recv_num) set recv_id_ $tfmcc_recv_num $ns at $start "$r join-group $tfmcc_sink($tfmcc_recv_num) $group" $ns at $stop "$tfmcc_sink($tfmcc_recv_num) stop; $r leave-group $tfmcc_sink($tfmcc_recv_num) $group"

incr tfmcc_recv_num

return $tfmcc_sink([expr $tfmcc_recv_num-1]) }

global ns

set ns [new Simulator -multicast on]

set f0 [open out_bottleneck.tr w] $ns trace-all $f0

set f1 [open out_bottleneck.nam w] $ns namtrace-all $f1

puts " Simulation started."

# Declare "finish" procedure which closes the trace file proc finish {} {

global ns f0 f1 $ns flush-trace close $f0 close $f1

exec nam out_bottleneck.nam & puts " Simulation ended." exit 0

}

set n(0) [$ns node] set n(1) [$ns node]


(20)

for {set i 0} {$i < 2} {incr i} { set s($i) [$ns node]

}

#jumlah node pengirim for {set i 0} {$i < 2} {incr i} { set r($i) [$ns node]

}

#jumlah node penerima

$ns duplex-link $n(0) $n(1) 1Mb 20ms DropTail

for {set i 0} {$i < 2} {incr i} {

$ns duplex-link $s($i) $n(0) 100Mb 5ms DropTail }

for {set i 0} {$i < 2} {incr i} {

$ns duplex-link $n(1) $r($i) 100Mb 5ms DropTail }

# Set Nodes Orientation

$ns duplex-link-op $s(0) $n(0) orient right-down $ns duplex-link-op $s(1) $n(0) orient right-up $ns duplex-link-op $n(0) $n(1) orient right $ns duplex-link-op $n(1) $r(0) orient right-up $ns duplex-link-op $n(1) $r(1) orient right-down set mproto DM

set mrthandle [$ns mrtproto $mproto {}]

set t [setupTFMCC 1.0 $duration $s(0)] for {set i 0} {$i < 2} {incr i} {

setupTFMCCSink 0.9 $duration $t $r($i) }

for {set i 0} {$i < 2} {incr i} {

setupTCP 2.0 $duration $s(1) $r($i) }

$ns at $duration "finish" $ns run

Catatan : kata yang dicetak tebal (bold) merupakan hasil pengembangan (penambahan atau perubahan) dari skrip simulasi asli versi Jorg Widmer.


(21)

LAMPIRAN B


(22)

Gambar B-1

Tampilan Awal Layar Cygwin

Gambar B-2


(23)

Gambar B-3

Perintah untuk menjalankan simulasi TFMCC

Gambar B-4


(24)

Gambar B-5


(25)

LAMPIRAN C


(26)

1. SKRIP PERL UNTUK MENGHITUNG THROUGHPUT $infile=$ARGV[0];

$tonode=$ARGV[1]; $granularity=$ARGV[2];

$sum=0; $clock=0;

open (DATA,"<$infile") ||die "Can't open $infile $!"; while (<DATA>) {

@x=split(' ');

if ($x[1]-$clock <=$granularity) {if ($x[0] eq 'r')

{if ($x[3] eq $tonode) {if ($x[4] eq 'tcp')

# dapat diganti “if ($x[4] eq 'tfmcc_data')” untuk throughput TFMCC {$sum=$sum+$x[5];

}}}} else

{$throughput=$sum/$granularity; print STDOUT "$throughput\n"; $clock=$clock+$granularity; $sum=0;

}}

$throughput=$sum/$granularity; print STDOUT "$throughput\n"; $clock=$clock+$granularity; $sum=0;

close DATA ; exit(0);

(disimpan dengan nama throughput_tcp.pl atau throughput_tfmcc.pl)

PERINTAH PERL UNTUK MENGHITUNG THROUGHPUT perl throughput_tcp.pl out_bottleneck.tr 3 1 > throughput_tcp_node_3 perl throughput_tfmcc.pl out_bottleneck.tr 3 1 > throughput_tfmcc_node_3

(perl “nama skrip perl untuk hitung throughput” “skrip hasil trace” “node tujuan” “interval sample” > “nama file hasil hitung”)


(27)

2. SKRIP PERL UNTUK MENGHITUNG JUMLAH PAKET KIRIM $infile=$ARGV[0];

$fromnode=$ARGV[1]; $granularity=$ARGV[2];

$sum=0; $clock=0;

open (DATA,"<$infile") ||die "Can't open $infile $!"; while (<DATA>) {

@x=split(' ');

if ($x[1]-$clock <=$granularity) {if ($x[0] eq 'r')

{if ($x[2] eq $fromnode) {if ($x[4] eq 'tcp')

# dapat diganti “if ($x[4] eq 'tfmcc_data')” untuk paket kirim TFMCC {$sum=$sum+($x[2]/$fromnode);

}}}} else

{$pkirim=$sum;

print STDOUT "$pkirim\n"; $clock=$clock+$granularity; $sum=0;

}}

$pkirim=$sum;

print STDOUT "$pkirim\n"; $clock=$clock+$granularity; $sum=0;

close DATA ; exit(0);

(disimpan dengan nama pkirim_tcp.pl atau pkirim_tfmcc.pl)

PERINTAH PERL UNTUK MENGHITUNG PAKET KIRIM perl pkirim_tcp.pl out_bottleneck.tr 2 120 > pkirim_tcp_3

perl pkirim_tfmcc.pl out_bottleneck.tr 2 120 > pkirim_tfmcc

(perl “nama skrip perl untuk hitung paket kirim” “skrip hasil trace” “node asal” “interval sample” > “nama file hasil hitung”)


(28)

3. SKRIP PERL UNTUK MENGHITUNG JUMLAH PAKET TERIMA $infile=$ARGV[0];

$tonode=$ARGV[1]; $granularity=$ARGV[2];

$sum=0; $clock=0;

open (DATA,"<$infile") ||die "Can't open $infile $!"; while (<DATA>) {

@x=split(' ');

if ($x[1]-$clock <=$granularity) {if ($x[0] eq 'r')

{if ($x[3] eq $tonode) {if ($x[4] eq 'tcp')

# dapat diganti “if ($x[4] eq 'tfmcc_data')” untuk paket terima TFMCC {$sum=$sum+($x[3]/$tonode);

}}}} else {

$ptrima=$sum;

print STDOUT "$ptrima\n"; $clock=$clock+$granularity; $sum=0;

}}

$ptrima=$sum;

print STDOUT "$ptrima\n"; $clock=$clock+$granularity; $sum=0;

close DATA ; exit(0);

(disimpan dengan nama ptrima_tcp.pl atau ptrima_tfmcc.pl)

PERINTAH PERL UNTUK MENGHITUNG PAKET TERIMA perl ptrima_tcp.pl out_bottleneck.tr 3 120 > ptrima_tcp_3

perl ptrima_tfmcc.pl out_bottleneck.tr 3 120 > ptrima_tfmcc

(perl “nama skrip perl untuk hitung paket terima” “skrip hasil trace” “node tujuan” “interval sample” > “nama file hasil hitung”)[15]


(29)

LAMPIRAN D


(30)

CONTOH DAN PENJELASAN HASIL TRACE OUT_BOTTLENECK.TR 1. + 1 2 0 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0

2. - 1 2 0 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 3. r 1.00508 2 0 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 4. + 1.00508 0 1 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 5. - 1.00508 0 1 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 6. r 1.033024 0 1 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 7. + 1.033024 1 3 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 8. - 1.033024 1 3 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 9. + 1.033024 1 5 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 10.- 1.033024 1 5 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 11.+ 1.033024 1 7 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 12.- 1.033024 1 7 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 13.+ 1.033024 1 9 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 14.- 1.033024 1 9 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 15.r 1.038104 1 3 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 16.r 1.038104 1 5 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 17.r 1.038104 1 7 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0 18. r 1.038104 1 9 tfmcc_data 1000 --- 0 2.1 -2147483648.0 -1 0

19.+ 2.061961 4 0 tcp 1040 --- 2 4.1 5.2 1 18

20.- 2.061961 4 0 tcp 1040 --- 2 4.1 5.2 1 18

21.r 2.067044 4 0 tcp 1040 --- 2 4.1 5.2 1 18

22.+ 2.067044 0 1 tcp 1040 --- 2 4.1 5.2 1 18

23.- 2.067044 0 1 tcp 1040 --- 2 4.1 5.2 1 18

24.r 2.095306 0 1 tcp 1040 --- 2 4.1 5.2 1 18

25.+ 2.095306 1 5 tcp 1040 --- 2 4.1 5.2 1 18

26.- 2.095306 1 5 tcp 1040 --- 2 4.1 5.2 1 18

27.r 2.100389 1 5 tcp 1040 --- 2 4.1 5.2 1 18

28.+ 2.100389 5 1 ack 40 --- 2 5.2 4.1 1 26 29.- 2.100389 5 1 ack 40 --- 2 5.2 4.1 1 26 30.r 2.105393 5 1 ack 40 --- 2 5.2 4.1 1 26 31.+ 2.105393 1 0 ack 40 --- 2 5.2 4.1 1 26 32.- 2.105393 1 0 ack 40 --- 2 5.2 4.1 1 26 33.r 2.12571 1 0 ack 40 --- 2 5.2 4.1 1 26 34.+ 2.12571 0 4 ack 40 --- 2 5.2 4.1 1 26 35.- 2.12571 0 4 ack 40 --- 2 5.2 4.1 1 26 36.r 2.130714 0 4 ack 40 --- 2 5.2 4.1 1 26


(31)

37.d 2.610824 0 1 tcp 1040 --- 2 4.1 5.2 30 130

38.+ 9.482586 9 1 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

39.- 9.482586 9 1 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

40.r 9.487589 9 1 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

41.+ 9.487589 1 0 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

42.- 9.487589 1 0 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

43.r 9.507907 1 0 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

44.+ 9.507907 0 2 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

45.- 9.507907 0 2 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

46.r 9.51291 0 2 tfmcc_ack 40 --- 0 9.1 2.1 -1 1874

Penjelasan :

Kode antrean paket (+,-,r,d) / waktu simulasi (detik) / node pengirim / node tujuan / tipe data / packet size (bytes)

/ flags /

flow id / alamat sumber / alamat tujuan / packet sequence number / packet id (+) = (enqueued / dimasukkan antrean),

(-) = (dequeued / dikeluarkan dari antrean), (r) = (received / diterima oleh tujuan), (d) = (dropped / dibuang)

prune = (menyebar),

ack = (acknowledge / feedback bahwa sudah diterima) Nomor 1-18 Pengiriman paket TFMCC

Nomor satu menunjukkan, sebuah paket TFMCC 1000 bytes memasuki antrean pada detik pertama. Paket ini dikirim oleh node 2 menuju node 0. Pada nomor 2,

paket TFMCC tersebut dinyatakan ditelah sampai di node 0. Kemudian disampaikan ke node 1, dan akhirnya disebarkan ke node 3, 5, 7, dan 9.

Nomor 19-36 Pengiriman dan feedback Paket TCP

Nomor 19 menunjukkan sebuah paket TCP 1040 bytes dikirim oleh node 4 menuju node 0 pada detik 2,61. Packet ini mempunyai packet ID 18 hingga tiba di node tujuan yaitu node 5. Kemudian node 5 akan mengirimkan ACK ke node pengirim dengan packet ID yang lain yaitu 26.


(32)

Nomor 37 Contoh kode antrean paket yang drop atau dibuang.

Nomor 38 Pengiriman feedback TFMCC

Feedback dikirimkan oleh node 9 menuju pengirim yaitu node 2, dengan pakcet ID 1874.


(33)

LAMPIRAN E

DATA STATISTIK


(34)

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Trend baru dalam dunia komunikasi, khususnya penyebaran aplikasi-aplikasi streaming multicast dan real-time audio/video, akan menyebabkan meningkatnya trafik non-TCP pada internet. Aplikasi-aplikasi tersebut biasanya jarang melakukan congestion control seperti halnya aplikasi-aplikasi berbasis TCP, sehingga buffer lokal akan penuh dengan sangat cepat. Aplikasi-aplikasi non-TCP tidak berbagi kapasitas jaringan yang telah disediakan secara adil dengan aplikasi-aplikasi yang dibangun berdasarkan TCP, seperti web browser, FTP, atau email. Dengan keadaan yang demikian, tentu saja komunitas internet sangat khawatir bahwa evolusi yang terjadi saat ini dapat menyebabkan meningkatnya congestion bagi trafik TCP. Karena alasan itulah, dikembangkan protokol-protokol TCP-friendly yang dapat bersaing dengan TCP untuk mendapatkan bandwidth yang sama.

Protokol TCP-Friendly mendefinisikan mekanisme adaptasi laju yang sesuai untuk trafik non-TCP yang kompatibel dengan mekanisme adaptasi laju dari TCP. Mekanisme dan aturan congestion control terhadap adaptasi laju tersebut diharapkan membuat aplikasi-aplikasi non-TCP menjadi TCP-Friendly dan menjanjikan sebuah mekanisme distribusi kapasitas jaringan yang sama dengan menghormati trafik TCP yang mengalir berdampingan sehingga congestion pada jaringan dapat dikurangi.

Untuk menghindari terjadinya congestion pada trafik non-TCP yang dikirim secara streaming multicast, muncul algoritma TFMCC. TFMCC atau TCP-Friendly Multicast Congestion Control merupakan sebuah algoritma congestion control untuk aplikasi yang berdasarkan protokol non-TCP (dengan skema TCP-friendly) untuk transmisi multicast dalam lingkungan best-effort. Ini merupakan skema single-rate congestion control yang kecepatan pengiriman datanya diadaptasikan kepada penerima dengan kondisi jaringan terburuk. Secara singkat, algoritma congestion control pada TFMCC bertugas untuk menurunkan kecepatan kirim TFMCC saat terjadi congestion dan menaikkan kecepatan kirim


(35)

2

jika tidak terjadi congestion, sehingga throughput TCP dan TFMCC pada penerima akan relatif sama.

TFMCC diharapkan dapat menjadi skema congestion control yang dapat dipergunakan untuk melengkapi protokol yang sudah ada untuk mengirimkan data maupun streaming multimedia yang handal.

Pada tugas akhir ini, performansi TFMCC dengan mekanisme congestion control akan dibandingkan dengan performansi TCP tradisional. Keduanya akan diuji menggunakan perangkat lunak Network Simulator 2 (NS-2) untuk mengukur parameterthroughput, TCP-friendliness, dan persentase packet loss.

1.2. Identifikasi Masalah

Apa pengaruh congestion control terhadap performansi TFMCC?  Bagaimana perbandingan performansi TFMCC dengan TCP tradisional? 1.3. Tujuan

Mengetahui pengaruh congestion control pada TFMCC.

 Mengetahui perbandingan performansi TFMCC dan TCP tradisional. 1.4. Pembatasan Masalah

Topologi jaringan yang digunakan adalah topologi dumbell, dengan single bottleneck link.

Simulasi dilakukan pada jaringan broadband wireline.

Diasumsikan seluruh node penerima TFMCC berada pada 1 grup yang sama serta melakukan join dan leave group secara bersama-sama.


(36)

3

1.5. Sistematika Pembahasan

Sistematika pembahasan tugas akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

Bab I : Pendahuluan

Bab ini membahas tentang latar belakang, identifikasi masalah, tujuan, pembatasan masalah, serta sistematika pembahasan.

Bab II : Landasan Teori

Bab ini membahas tentang landasan teori tentang congestion control, klasifikasi dan fungsi congestion control pada jaringan telekomunikasi, serta penerapannya pada TFMCC.

Bab III : Metoda Simulasi

Bab ini membahas tentang alat-alat yang dibutuhkan untuk melakukan simulasi, penjelasan ringkas tentang skrip simulasi, asumsi yang digunakan dalam simulasi, kondisi awal sebelum simulasi dilakukan, prosedur simulasi, dan hasil yang diharapkan.

Bab IV : Hasil Simulasi dan Analisis Data

Bab ini menampilkan hasil simulasi dan analisisnya.

Bab V : Kesimpulan dan Saran


(37)

56

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil simulasi pada tugas akhir ini, maka dapat disimpulkan beberapa hal sebagai berikut.

Congestion control pada TFMCC mempunyai peran yang besar terhadap performansi TFMCC pada jaringan internet.

Pada kondisi jaringan yang sama, grafik throughput TFMCC lebih stabil (tidak fluktuatif; range-nya lebih kecil) daripada TCP.

Peningkatan nilai variabel bandwidth pada bottleneck link, akan meningkatkan throughput rata-rata TCP dan TFMCC serta tingkat TCP- friendliness. Pada simulasi ini, kedua parameter throughput akan mencapai nilai tertingginya saat melalui bandwidth sebesar 2000 kbps, sedangkan TCP-friendliness saat lebar bandwidth sebesar 1500 kbps. Sementara itu, peningkatan bandwidth pada bottleneck link akan menurunkan persentase packet loss, dengan nilai persentase packet loss terendah pada saat bandwidth pada bottleneck link bernilai 2000 kbps.

Jika variabel packet size yang ditingkatkan nilainya, besar throughput rata-rata untuk trafik TCP dan tingkat TCP- friendliness akan meningkat, dengan nilai tertinggi masing-masing pada packet size 2000 dan 1000 bytes. Sebaliknya, peningkatan nilai variabel packet size, akan menurunkan nilai throughput rata-rata TFMCC dan persentase packet loss. Kedua parameter tersebut akan mencapai nilai tertingginya masing-masing pada packet size 250 dan 1000 bytes.

Peningkatan jumlah penerima akan menurunkan throughput TCP dan TFMCC. Throughput rata-rata tertinggi akan didapat saat terdapat 2 node penerima. Sementara itu, peningkatan jumlah penerima akan menaikkan persentase packet loss. Parameter ini mencapai nilai terendahnya pada 2 node penerima. Variabel jumlah penerima tidak berpengaruh signifikan terhadap tingkat TCP- friendliness, walaupun tingkat TCP- friendliness dapat mencapai nilai optimalnya pada 6 penerima.


(38)

57

5.2. Saran

Setelah mengevaluasi tugas akhir ini, diharapkan tugas akhir ini dapat dikembangkan lebih lanjut dengan beberapa saran sebagai berikut:

 Diperlukan simulasi atau penelitian lebih lanjut untuk menemukan nilai optimal antara bandwidth pada bottleneck link, packet size dan jumlah penerima.

Diperlukan simulasi atau penelitian lebih lanjut yang memasukkan error, QoE (Quality of Experience), jitter, dan delay/latency sebagai parameternya.


(39)

58

DAFTAR PUSTAKA

1. Leon – Garcia, Alberto, Indra Widjaja. 2002. Communication Network: Fundamental Concepts and Key Architures. New Delhi: McGraw-Hill. 2. Stallings, William. 2004. Data and Computer Communications. New Jersey:

Prentice Hall.

3. http://digilib.itb.ac.id/gdl.php?mod=browse&op=read&id=jbptitbpp-gdl-herusukoco-25077, 5 Agustus 2010.

4. http://en.wikipedia.org/wiki/Congestion_control, 9 September 2010. 5. http://en.wikipedia.org/wiki/Taxonomy_of_congestion_control,

9 September 2010.

6. http://ftp.utcluj.ro/pub/users/cemil/prc/CONGESTION%20CONTROL.ppt, 9 September 2010.

7. http://icapeople.epfl.ch/widmer/tfmcc/example.tcl, 17 Agustus 2010. 8. http://inst.eecs.berkeley.edu/~cs294-9/fa03/slides/TCPFriendly.ppt,

13 Januari 2011.

9. http://support.microsoft.com/kb/291786, 29 September 2010. 10. http://utopia.duth.gr/~emamatas/jie2007.pdf, 9 September 2010. 11. http://utopia.duth.gr/~emamatas/TR-DUTH-EE-2004-10.pdf,

12 September 2010.

12. http://web.cs.wpi.edu/~cs513/s07/week8-nlcong.pdf, 9 September 2010. 13. http://www.cs.cornell.edu/courses/cs414/2001fa/tcp-final.ppt,

29 September 2010.

14. http://www.faqs.org/rfcs/rfc4654.html, 2 Agustus 2010.

15. http://www-sop.inria.fr/members/Eitan.Altman/COURS-NS/n3.pdf, 9 Juni 2010.


(1)

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Trend baru dalam dunia komunikasi, khususnya penyebaran aplikasi-aplikasi streaming multicast dan real-time audio/video, akan menyebabkan meningkatnya trafik non-TCP pada internet. Aplikasi-aplikasi tersebut biasanya jarang melakukan congestion control seperti halnya aplikasi-aplikasi berbasis TCP, sehingga buffer lokal akan penuh dengan sangat cepat. Aplikasi-aplikasi non-TCP tidak berbagi kapasitas jaringan yang telah disediakan secara adil dengan aplikasi-aplikasi yang dibangun berdasarkan TCP, seperti web browser, FTP, atau email. Dengan keadaan yang demikian, tentu saja komunitas internet sangat khawatir bahwa evolusi yang terjadi saat ini dapat menyebabkan meningkatnya congestion bagi trafik TCP. Karena alasan itulah, dikembangkan protokol-protokol TCP-friendly yang dapat bersaing dengan TCP untuk mendapatkan bandwidth yang sama.

Protokol TCP-Friendly mendefinisikan mekanisme adaptasi laju yang sesuai untuk trafik non-TCP yang kompatibel dengan mekanisme adaptasi laju dari TCP. Mekanisme dan aturan congestion control terhadap adaptasi laju tersebut diharapkan membuat aplikasi-aplikasi non-TCP menjadi TCP-Friendly dan menjanjikan sebuah mekanisme distribusi kapasitas jaringan yang sama dengan menghormati trafik TCP yang mengalir berdampingan sehingga congestion pada jaringan dapat dikurangi.

Untuk menghindari terjadinya congestion pada trafik non-TCP yang dikirim secara streaming multicast, muncul algoritma TFMCC. TFMCC atau TCP-Friendly Multicast Congestion Control merupakan sebuah algoritma congestion control untuk aplikasi yang berdasarkan protokol non-TCP (dengan skema TCP-friendly) untuk transmisi multicast dalam lingkungan best-effort. Ini merupakan skema single-rate congestion control yang kecepatan pengiriman datanya diadaptasikan kepada penerima dengan kondisi jaringan terburuk. Secara singkat, algoritma congestion control pada TFMCC bertugas untuk menurunkan kecepatan kirim TFMCC saat terjadi congestion dan menaikkan kecepatan kirim


(2)

jika tidak terjadi congestion, sehingga throughput TCP dan TFMCC pada penerima akan relatif sama.

TFMCC diharapkan dapat menjadi skema congestion control yang dapat dipergunakan untuk melengkapi protokol yang sudah ada untuk mengirimkan data maupun streaming multimedia yang handal.

Pada tugas akhir ini, performansi TFMCC dengan mekanisme congestion control akan dibandingkan dengan performansi TCP tradisional. Keduanya akan diuji menggunakan perangkat lunak Network Simulator 2 (NS-2) untuk mengukur parameterthroughput, TCP-friendliness, dan persentase packet loss.

1.2. Identifikasi Masalah

Apa pengaruh congestion control terhadap performansi TFMCC?

 Bagaimana perbandingan performansi TFMCC dengan TCP tradisional?

1.3. Tujuan

Mengetahui pengaruh congestion control pada TFMCC.

 Mengetahui perbandingan performansi TFMCC dan TCP tradisional.

1.4. Pembatasan Masalah

Topologi jaringan yang digunakan adalah topologi dumbell, dengan single

bottleneck link.

Simulasi dilakukan pada jaringan broadband wireline.

Diasumsikan seluruh node penerima TFMCC berada pada 1 grup yang sama serta melakukan join dan leave group secara bersama-sama.


(3)

3

1.5. Sistematika Pembahasan

Sistematika pembahasan tugas akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

Bab I : Pendahuluan

Bab ini membahas tentang latar belakang, identifikasi masalah, tujuan, pembatasan masalah, serta sistematika pembahasan.

Bab II : Landasan Teori

Bab ini membahas tentang landasan teori tentang congestion control, klasifikasi dan fungsi congestion control pada jaringan telekomunikasi, serta penerapannya pada TFMCC.

Bab III : Metoda Simulasi

Bab ini membahas tentang alat-alat yang dibutuhkan untuk melakukan simulasi, penjelasan ringkas tentang skrip simulasi, asumsi yang digunakan dalam simulasi, kondisi awal sebelum simulasi dilakukan, prosedur simulasi, dan hasil yang diharapkan.

Bab IV : Hasil Simulasi dan Analisis Data

Bab ini menampilkan hasil simulasi dan analisisnya.

Bab V : Kesimpulan dan Saran


(4)

56

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil simulasi pada tugas akhir ini, maka dapat disimpulkan beberapa hal sebagai berikut.

Congestion control pada TFMCC mempunyai peran yang besar terhadap performansi TFMCC pada jaringan internet.

Pada kondisi jaringan yang sama, grafik throughput TFMCC lebih stabil (tidak fluktuatif; range-nya lebih kecil) daripada TCP.

Peningkatan nilai variabel bandwidth pada bottleneck link, akan meningkatkan throughput rata-rata TCP dan TFMCC serta tingkat TCP- friendliness. Pada simulasi ini, kedua parameter throughput akan mencapai nilai tertingginya saat melalui bandwidth sebesar 2000 kbps, sedangkan TCP-friendliness saat lebar bandwidth sebesar 1500 kbps. Sementara itu, peningkatan bandwidth pada bottleneck link akan menurunkan persentase packet loss, dengan nilai persentase packet loss terendah pada saat bandwidth pada bottleneck link bernilai 2000 kbps.

Jika variabel packet size yang ditingkatkan nilainya, besar throughput rata-rata untuk trafik TCP dan tingkat TCP- friendliness akan meningkat, dengan nilai tertinggi masing-masing pada packet size 2000 dan 1000 bytes. Sebaliknya, peningkatan nilai variabel packet size, akan menurunkan nilai throughput rata-rata TFMCC dan persentase packet loss. Kedua parameter tersebut akan mencapai nilai tertingginya masing-masing pada packet size 250 dan 1000 bytes.

Peningkatan jumlah penerima akan menurunkan throughput TCP dan TFMCC. Throughput rata-rata tertinggi akan didapat saat terdapat 2 node penerima. Sementara itu, peningkatan jumlah penerima akan menaikkan persentase packet loss. Parameter ini mencapai nilai terendahnya pada 2 node penerima. Variabel jumlah penerima tidak berpengaruh signifikan terhadap tingkat TCP- friendliness, walaupun tingkat TCP- friendliness dapat mencapai nilai optimalnya pada 6 penerima.


(5)

57

5.2. Saran

Setelah mengevaluasi tugas akhir ini, diharapkan tugas akhir ini dapat dikembangkan lebih lanjut dengan beberapa saran sebagai berikut:

 Diperlukan simulasi atau penelitian lebih lanjut untuk menemukan nilai optimal antara bandwidth pada bottleneck link, packet size dan jumlah penerima.

Diperlukan simulasi atau penelitian lebih lanjut yang memasukkan error, QoE (Quality of Experience), jitter, dan delay/latency sebagai parameternya.


(6)

58

1. Leon – Garcia, Alberto, Indra Widjaja. 2002. Communication Network: Fundamental Concepts and Key Architures. New Delhi: McGraw-Hill.

2. Stallings, William. 2004. Data and Computer Communications. New Jersey:

Prentice Hall.

3. http://digilib.itb.ac.id/gdl.php?mod=browse&op=read&id=jbptitbpp-gdl-herusukoco-25077, 5 Agustus 2010.

4. http://en.wikipedia.org/wiki/Congestion_control, 9 September 2010.

5. http://en.wikipedia.org/wiki/Taxonomy_of_congestion_control,

9 September 2010.

6. http://ftp.utcluj.ro/pub/users/cemil/prc/CONGESTION%20CONTROL.ppt,

9 September 2010.

7. http://icapeople.epfl.ch/widmer/tfmcc/example.tcl, 17 Agustus 2010. 8. http://inst.eecs.berkeley.edu/~cs294-9/fa03/slides/TCPFriendly.ppt,

13 Januari 2011.

9. http://support.microsoft.com/kb/291786, 29 September 2010.

10. http://utopia.duth.gr/~emamatas/jie2007.pdf, 9 September 2010.

11. http://utopia.duth.gr/~emamatas/TR-DUTH-EE-2004-10.pdf,

12 September 2010.

12. http://web.cs.wpi.edu/~cs513/s07/week8-nlcong.pdf, 9 September 2010.

13. http://www.cs.cornell.edu/courses/cs414/2001fa/tcp-final.ppt, 29 September 2010.

14. http://www.faqs.org/rfcs/rfc4654.html, 2 Agustus 2010.

15. http://www-sop.inria.fr/members/Eitan.Altman/COURS-NS/n3.pdf, 9 Juni