HTTP Hyper Text Transfer Protocol
IETF Internet Engineering Task Force Internet
A_rwnd Advertised receiver window credit
UAC User Agent Client client trong SIP
UAS User Agent Server server trong SIP
UDP User Datagram Protocol dùng
URL Uniform Resource Identifiers tài nguyên trên Internet
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ:
Hình 3- 41 Hình 3-7: Các chunk SACK 43
Hình 3-transport là SCTP và UDP 67 Hình 3-
UDP ngày càng an toàn, giám sát
tiêu này nghiên là giá và phân tích tính
khi áp giao transport - SCTP trong so các giao TCP, UDP, trong là các gian
Stream Control Transport Protocol ban
SS7 trên IP Bên SCTP còn có các tính tiên TCP hay mà UDP không cung cho phép nó có rãi trong là
và Nó giao là phiên làm khi và ACK SCTP còn
công DoS Bên nó có
heartbeat theo dõi thái các và các cách nhanh chóng
Tính (multi-streaming) hay còn là cung
HoL (Head-of-Blocking) giao mà TCP [4]
và khác nhau án nghiên và phát SCTP án KAME SCTP phát các plug- in SCTP cho Apple MAC, án SCTP Kernel Implementation phát các phiên web apache2 và Mozilla SCTP nên có FreeBSD án Salvatore Loreto cung nhà nghiên PEL (Protocol Engineer Laboratory) trung phát
GNU/Linux tích SCTP firefox, modun ns2-sctp hay tcpdum
1.2 Các vấn đề quan trọng được giải quyết trong luận văn
Trư trình bày các tính quan và u
SCTP so TCP/UDP, thích sao SCTP có thay TCP/UDP
trúc và các thí và minh
các thông giá và các tham mô môi
và các SCTP so TCP/UDP
các công nghiên trong lai
Multi -homing
Hình 2-5: Các host dạ ng multihomed A1 và A2 là hai đ ịa chỉ IP củ a đ ầu cuố i A B1 và B2 là hai đ ịa chỉ IP củ a đ ầu cuối B
SCTP này cung phòng cho transport
SCTP multi-homing có liên khi nó IP
SCTP tính multi-homing cho
client là multi-homing thì nó thông báo cho server các IP
IP server vì server cung các IP nó cho client qua chunk INIT- IPv6
trình SCTP xem IP tác nó
không có IP rõ ràng nào trong chunk INT hay INIT-ACK thì
IP gói tin mang IP SCTP này giúp cho
SCTP theo dõi truy IP host qua hai : ACKs các chunk và các chunk heartbeat, hertbeat là chunk
trình SCTP giám sát các phía tác nó, chunk các hearbeat qua các mà dùng
gán thái là hay kích
gói SCTP và gói tin này tin xác phía bên kia
trên nào liên thì thành thái kích các chunk heartbeat không
trong gian nào hay trên
khác nó sàng chu trình (round trip), các chunk SACK nên gói tin IP
SCTP có thông báo tình các (tình và các thông theo có nhu hay chính thay
Hình 2- 6: Kỹ thuật heartbeat SCTP
Multi -streaming
Hình 2-7: Nhiều luồng trong kết nối SCTP Các luồng ở ây là luồng dữ liệu logical một chiều mà các đ đ ầu cuối đ ã thỏa thuận với nhau trong quá trình thiết lập kết nối
- phân chi - stream sequence number (SSNs) toàn và tính tin
chunk trong Tuy nhiên, không
các này tránh dòng (HoL - head-of-
trong hàng bên cho khi bên các segment
Hình 2- 8: Mô phỏng sự kiện nghẽn HoL của các luồng riêng rẽ bên đ ầu nhận
SCTP có cho các có không có
hai này có bên trong Các
thông TSN=2 Tuy nhiên nó thông TSN=3 gói là tin id=0 Vì nó gói tin lên mà không thông TSN=2, id=1 TCP, node
không thông TSN=3 cho khi nó thông TSN=2 này SCTP tránh dòng [21]
Hình 2- 9: Mô phỏng multi streaming Gói tin mất trên một luồng không ả - nh hư ng đ ở ến luồng khác
SCTP xác hai tiêu là sàng
cho tiêu này là công DoS thông qua làm host
các yêu (ví công SYN trong TCP)
các khác trong hình 2.3, SCTP có nguy
cookie tránh duy thông tin trì thái cho các
- tính toàn cho thông tin
này, SCTP có dùng IPSec hay TLS tính bí
2.3.7 So sánh giữa SCTP với TCP/UDP
nhìn có cái quan, so sánh tóm các và SCTP
TCP và UDP trình bày sau: [15]
Dịch vụ/Chứcnăng SCTP TCP UDP
Dò tìm MTU Có Có Không
Multi-streaming Có Không Không
Multi-homing Có Không Không
hoàn toàn Không Có có
Bả ng 2- 1: So sánh các đ ặc tính của SCTP với TCP và UDP
2.4 Các vấn đề còn tồn tại trong SCTP
vài này trình bày ba mà SCTP trong lai [2], [8], [15]
2.4.1 Phù hợp với các yêu cầu về độ tin cậy của báo hiệu SS7
báo SS7 có yêu nghiêm tin và nay
có khai nào các tiêu SCTP phù yêu này vài yêu tóm
2.4.2 Hiệu suất SCTP trong môi trường không dây
dùng trong TCP Chúng cho môi dây, có
các gây ra hay vì RTT thay
rates) cao có dây này làm SCTP cách không và
là thông SCTP nên nghèo nàn
2.4.3 Cấu hình lại địa chỉ tự động
IP không này ý có các quan hay môi di hình các mà không làm gián Tuy nhiên tùy này
chunk và các tham nay nó còn trong giai
2.5 Giới thiệu về LKSCTP và tình trạng hiện tại
2.5.1 Giới thiệu về dự án LKSCTP
án Linux Kernel Stream Control Transmission Protocol (lksctp) trung vào
khai SCTP trên nhân (kernel) Linux chính này là án
khác nhau nó Cùng liên phát giao này án
thông tin SCTP và khích cho
thì SCTP trong bao án SCTP Siemens (Siemens SCTP libarary - Kernel)
vào các RFC và phát API này, khai SCTP
là trên nhân Linux 2.6 sctplib-1.0.8 công vào tháng
linh các thông không gian lý dùng nên
các gói qua tin không gian dùng và
SCTP các thông là lý thông không gian dùng không là trúc này là không có trình SCTP trên host, vì modun trung gian cho phép trình SCTP SCTPLIB, modun trung gian này SCTPD là này làm và tiêu
lksctp SCTPLIB, này lksctp hành các thí phân
2.5.2 Tình trạng hiện tại của LKSCTP [16], [19], [20]
vài rõ các khía SCTP: các
nhau, so sánh SCTP so TCP qua các multi-homing và multi-
vai trò là giao transport
Hình 3 - 1: Lab dùng đ ể kiểm tra hiệu suất SCTP trong mạng thực tế
SCTP, nó API lksctp, các trên iperf API lksctp
Hình 3- 2: Mô hình hoạ ộng của lksctp bên trong nhân Linux t đ
2.34 [10] Chúng ta so sánh SCTP, TCP và UDP trên NS2.
http SCTP và TCP vai giao trò là transport
là và làm server web phía client là httperf http, do
Elvis Plutzenreuter [12] trên API lksctp SCTP trong anh trình httpd trên máy tính
và các file kích có khác nhau trong bình
3.1 Các đặc tính cơ bản của SCTP
(SSN Stream Sequence Number) là liên
3.1.1 Trường hợp một: định dạng gói tin SCTP
này gói tin SCTP do trình wireshark
Hình 3-3 : Lab hiển thị các chứ c năng cơ b ản của SCTP
Server: $./sctp_test H server_ipaddress P server_port l– – –
Client: $./sctp_test H server_ipaddress P server_port h client_address – – – –
Hình 3-4 : Tiêu đ ề tổng quát của SCTP
các chunk SCTP phân tích hình 3-5
Hình 3-5 : Đ ịnh dạng các chunk dữ liệu SCTP
3.1.2 Trường hợp hai: các chunk thứ tự bên trong một luồng SCTP
Hình 3-6 : Lab hiển thị chứ c năng tin c ậy của SCTP khi mạng ở trạng thái quá tải
- Ba máy tính cài Ubuntu, lksctp và trên hình 3-6
- sctp_test server client sau:
Server: $./sctp_test H server_ipaddress P server_port l– – –
Client: $./sctp_test H server_ipaddress P server_port h client_address – – – –
- này, chúng có thì các chunk này cùng SCTP
$ tc qdisc change dev eth0 root netem loss 5%
Hình 3-8 : Các chunk dữ liệ u đư ợc truyền lại
3.1.3 Trường hợp ba: sự độc lập của các luồng SCTP
Hình 3-9 : Lab hiển thị sự ộc lập giữa các luồng SCTP đ
- giá SI chunk, này có dài 16 bit
Hình 3- 10 : Sự ộc lập của các luồng SCTP đ
3.1.4 Trường hợp bốn: khả năng chịu lỗi với multi-homming host0_if0 O===========O host1_if0
/ \ host0_core O O host1_core \ / host0_if1 O===========O host1_if1
$ns multihome-add-interface $host0_core $host0_if0
$ns multihome-add-interface $host0_core $host0_if1
$ns multihome-add-interface $host1_core $host1_if0
$ns multihome-add-interface $host1_core $host1_if1
$ns duplex-link $host0_if0 $host1_if0 5Mb 200ms DropTail
$ns duplex-link $host0_if1 $host1_if1 5Mb 200ms DropTail
set sctp0 [new Agent/SCTP]
$ns multihome-attach-agent $host0_core $sctp0 set sctp1 [new Agent/SCTP]
$ns multihome-attach-agent $host1_core $sctp1
Hình 3-1 1: Lab thể hiện chứ c năng multi -homming
$sctp0 set-primary-destination $host1_if0
$ns at 7.5 "$sctp0 set-primary-destination $host1_if1"
Hình 3-1 2: Kết quả mô phỏng multi -homming
3.2 Đánh giá SCTP so với TCP và UDP
này, chúng ta phát này
giao chúng ta thông, gói và gian dùng
Sau chúng ta so sánh SCTP và TCP các thu trên
3.2.1 Trường hợp : So sánh hiệu suất giữa SCTP và TCP với một kết nối 1
Hình 3- 13: Lab thể hiệ n ưu đi ểm của SCTP so vớ i TCP trong môi trư ờng mạng không ổ n đ ịnh
- 3 máy tính hành Ubuntu lksctp cài chúng
- Trên các máy tính server và client, các trình
- Máy tính 2 có card vai trò bridge cho là client và server
chúng dùng ta trình TCP
Hình 3- 14: Thời gian ứng dụng truyền dữ liệu với lớ p transport là SCTP và TCP trong đi ều kiện bình th ư ờng
Trong bình (loss 0%) SCTP và TCP nhau
TCP này có thích SCTP là
HoL trong khi TCP thì này Vì khi TCP
máy PC nó hoãn trì các trong
Hình 3- 15: Thời gian ứng dụng truyền dữ liệu với lớp transport là SCTP và TCP khi tỉ lệ mất gói 10%
Hình 3- 16 : So sánh thời gian truyền cũng mộ t lư ợng dữ liệu giữa TCP và SCTP
3.2.2 Trường hợp : So sánh hiệu suất giữa SCTP và TCP với nhiều kết nối 2
lab này là so sánh SCTP và TCP
- gói 5% Nguyên nhân là quá là TCP trong ra và
Hình 3- 17 : So sánh TCP đa k ết nố i và SCTP đa lu ồng với tỉ lệ mấ t gói thay đ ổi từ 0% đ ến 5%
3.2.3 Trường hợp : giải quyết vấn đề HOL gặp phải ở TCP3
- trong lab này là head-of-line
- ra SCTP, hai thông 0% là
Hình 3- 19: Hạn chế đư ợc vấ n đ ề HoL sử dụng nhiều luồng SCTP với tỉ lệ mất gói 10%
3.3 Đánh giá các ứng dụng với SCTP đóng vai trò lớp transport
SCTP có vào thì quan là SCTP khi
so sánh các tham TCP và SCTP khi
2 qua giao http [11] vai trò http server và
có thích làm giao transport hay không và thích
3.3.1 Ứng dụng HTTP với SCTP
Lab này là so sánh web transport l là SCTP và TCP quan chúng là ta cách client http các thông tin trang web HTTP 1.0, tiên client
TCP và HTML dùng mã mô trang web, sau nó
Hình 3- 20 : Trang web với 4 kết nối TCP từ client
các yêu khác này có
HTTP giao transport TCP là pháp này là
HTTP 1.0, vì URL các TCP riêng khác nhau nên các
tin có HTTP dung SCTP là giao tin transport
Lab này dùng tra (multi-streaming) SCTP có
dùng thông cho HTTP hay không SCTP thích là hay TCP khi làm giao transport
Hình 3- 22 : Kiến trúc Lab thí nghiệm HTTP với SCTP làm giao thức lớp transport
- Ta thttpd làm web server, là web server nhanh,
và Nó có khi phát sinh ra http, do
- httperf vai trò web client, biên và trên máy
- các lab hai máy và hành Ubuntu và tích modun lksctp Máy tính vai trò bridge hai máy
netem và server SCTP theo tham cao
- web server ta các tin dung 100Byte, là
httpd sctp Trong lab này có hai
$httperf port 80 server 192.168.70.44 num-– – – streams 1
$httperf port 80 server 192.168.70.44 num-– – – streams 10
$httperf port 80 server 192.168.70.44 num-– – – streams 100
Hình 3-23: Minh họa kết quả thu đư ợc với kết nối sctp 1 luồng từ httperf đ ến thttpd đ ể truyền tậ p tin có dung lư ợng 10K Byte và tỉ lệ mất gói là 10%
Bảng 3-1: Số liệ u thông lư ng HTTP trong đi ợ ều kiệ n thư ng và đi ờ ều kiện mất gói 10%, với lớp transport là TCP và SCTP
Hình 3- 24 : So sánh thông lư ợng http với lớ p transport là TCP và SCTP trong đi ều kiệ n thư ờng
100 byte 1 KB 10 KB 100 KB 100 byte 1 KB 10 KB 100 KB
Thông lượng HTTP ở điều kiện thường (KB/s) Thông lượng HTTP với tỉ lệ mất gói 10% (K B/s)
Hình 3-25 : So sánh thông lư ợng http với lớ p transport là TCP và SCTP trong đi ều kiện tỉ lệ mất gói là
SCTP trong này khác có chút lý là 10 hay 100 tin server client
quá thông tin Và quan là
3.3.2 Ứng dụng SIP với SCTP
H323 có SIP 3GPP (Third Generation Partnership Project) giao là báo các không dây 3G (Third Genneration) [21] [23]
SIP giao là và thúc các phiên làm làm
(session) hay bên tham gia phiên làm có là
INVITE, BYE, ACK, REGISTER, OPTIONS, CANCEL và INFO SIP dùng INVITE dùng tham gia vào phiên làm nó thông IAM báo SS7 trong PSTN BYE dùng
xác bên bên thông INVITE
dùng REGISTER thông báo trí trong
SIP OPTION dùng truy agent hay server
thúc các yêu lý INFO dùng mang thông tin
SIP giao session (Session Description Protocol - SDP) mô
thông tin phiên làm dùng RTP trên giao
ng trên các giao transport khác nhau TCP, UDP hay SCTP nay SIP
wireless hay Internet các SIP tin hay
Hình 3-26: Chồng giao thức multimedia trên Internet H323 hoạ ộng trên TCP, SIP hoạ ộng trên TCP, t đ t đ
UDP hay SCTP, còn RTP hoạ ộng trên UDP t đ
cho các SIP Tính multi-streaming và multi-homing thích cho các và tincaocácserver SIP proxy
dùng (users agent) và các server Agent dùng là cho nào
các yêu xác trí các yêu và sau thay
trí phân tiên (Domain name system Locator)
dùng Các server SIP tìm URL
các server xa và xác chính xác trí IP)
Hình 3-27: Kiến trúc chủ chốt của SIP bao gồ m agent ngư ời dùng, server (server proxy và server chuyể n hư ớng) và dịch vụ xác đ nh đ ị ịa chỉ
- [4] vào do server server proxy yêu
kí di bên trong SIP Khi dùng SIP di
trí kí trí server này vào
khi các server khác tham
server nó cách các Thông
server và kí các server SIP khác khai trên cùng
Hình 3- 28 : Server đăng kí SIP theo d õi vị trí hiện tại củ a ngư ời dùng SIP
dùng SIP kí Registrar sau:
này tham SIP trên SCTP phát trong
lksctp Agent kphone này là và
Partsipmáy tính Ubuntu 9.0, máy tính
Hai agent port SIP 5060, là trong khi server SIP
Wirehark cài trên server sip theo dõi các SIP
nhau thông qua LAN các switch 100 Mbps
Các thí bao các kí các agent,
transport UDP là và SCTP Sau so sánh các thu
Hình 3- 29 : Lab thực nghiệm SIP với giao thức transport là SCTP và UDP b
Bảng 3-2 : So sánh hiệu quả của SIP với giao thức transport lầ n lư t là UDP và SCTP trong đi ợ ều kiện chỉ có một phiên kết nối mạng ở tình trạng bình th ư ờng
so UDP Vì trong bình
hai: môi có gói 10% và phiên
Dùng Netem gói 5%, 10%, 20% và là30%
trong cùng trên các máy tính agent kphone này
8 trong SCTP 8 là UDP trên
giao các SIP server mà lý và ghi
Hình 3-30: So sánh hiệu quả của SIP với giao thức transport lầ n lư t là UDP và SCTP trong đi ợ ều kiện có nhiều phiên kết nối mạng và mạng ở tình trạng mất gói
[1] An implementation of SCTP under Linux, http://lksctp.sourceforge.net/
[2] SCTP RFC 4960, http://www.ietf.org/rfc/rfc4960.txt
[3] LKSCTP, http://lksctp.sourceforge.net/overview.html
[4] S Fu and all, SCTP of the Art Research, Products, in and Technical
[5] http://www.linuxfoundation.org/en/Net:Netem
[6] http://www.linuxfoundation.org/en/Net:Bridge
[7] W Richard Stevens, Bill Fenner, Andrew M Rudoff, UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API, Addison Wesley, 2003
[8] SCTP for Beginners, http://tdrwww.exp-math.uni- essen.de/inhalt/forschung/sctp_fb/index.html
[9] [ns] awk/perl script to calculate throughput/delay/jitter from trace files http://mailman.isi.edu/pipermail/ns-users/2004-September/044655.html
[10] NS-allinone-2.34, http://www.isi.edu/nsnam/ns/
[11] Rajesh Rajamani, Sumit Kumar, Nikhil Gupta, SCTP versus TCP, the Performance of Transport Protocols for Web Traffic, Computer Sciences
-2004, http://epx.com.br/mestrado/index_en.php
[13] thttpd, http://acme.com/software/thttpd/thttpd_man.html
[14] httperf, http://www.hpl.hp.com/research/linux/httperf/httperf-man-0.9.pdf
[15] Nguyen Anh Dung, Tran Minh Phat, Nguyen Thanh Van: Multi-streaming with SCTP, final report Page 6-15, 2009
[16] Stream Control Transmission Protocol (SCTP), http://www.sctp.org/index.html
and SCTP for SIP-T and TCP, UDP and SCTP with consta Institute of Technology, November 2008
[18] SCTP-DataTAG, http://datatag.web.cern.ch/datatag/WP3/sctp/tests.htm
[19] SCTP, http://www.sctp.de/sctp.html
[20] SCTP, http://www.sctp.org/
[21] Thomas Kwok- in session initiation protocol proxy master thesis, Simon Fraser University,
[23] SIP, http://en.wikipedia.org/wiki/Session_Initiation_Protocol
[24] Wireshark, www.wireshark.org/download.html
[25], Session Initiation Protocol, RFC 3261, http://www.ietf.org/rfc/rfc3261.txt
này là cho chunk vì chunk có dài không nó xác giá (payload) chunk Trong gói tin SCTP, các chunk có
các bye thêm (0x00) và các byte này không tính trong dài
Trong kì gói SCTP nào, tin các chunk luôn các chunk
Trong hai này, còn gói tin không lý
11xxxxxx : qua chunk này, chunk lý và chunk (chunk ERROR) a
TSN Stream Identifier S Stream Sequence Number N
User Data (seq n of Stream S) b (INIT)
Chunk này dùng hai chunk này sau
Type=1 Chunk Flags Chunk Length
Initiate Tag Advertised Recieiver Window Credit (a_rwnd) Number of Outbount Stream Number of Inbount Stream
Optional/Variable Length - Parameters c ACK)
INIT ACK có chunk (INIT) Nó thêm hai tham khác là thái cookie (State Cookie) và tham không
Type=2 Chunk Flags Chunk Length
Initiate Tag Advertised Recieiver Window Credit (a_rwnd) Number of Outbount Stream Number of Inbount Stream
Optional/Variable Length - Parameters d (SACK)
Chunk này bên kia xác các chunk (DATA)
thông qua giá (transmission sequence number TSN) SACK
a_rwnd (Advertised Receiver Window Credit)
khi ra khi TSN, các chunk SACK
này xác là giá TSN các hay
con TSN khi mà TSN có
này, các TSN xác Gap Ack Block hay
Type=3 Chunk Flags Chunk Length
Cumulative TSN Ack Advertised Recieiver Window Credit (a_rwnd)
Number of Gap Block = N Number of Duplicate TSNs = x Gap Ack Block #1 Start Gap Ack Block #1 End
Gap Ack Block #N Start Gap Ack Block #N End
Duplicate TSN X e Chunk heartbeat (HEARTBEAT)
có chunk này cho bên kia truy
Heartbeat Information TLV (Variable-Length) f ACKNOWLEDGEMENT)
chunk Heartbeat Hearbeat Ack luôn IP trong gói tin IP
Hearbeat tham trúc có dài thay
Type = 5 Chunk Flags Heartbeat Ack Length
Heartbeat Information TLV (Variable-Length) g (Abort)
Chunk không kèm trong chunk Abort Các chunk
chunk INIT, INIT ACK, và SHUTDOWN COMPLETE) có
không chúng không bên lý
chunk này không gì thêm mà có lý trong kì nào,
Zero or more Error Cause h (SHUTDOWN)
theo qui trình Chunk này có sau.
Type = 7 Chunk Flags Length = 8 j (ERROR)
xem bên trong hay chính nó là có dùng chunk Abort
One or more error causes
Tham nó là dài thay có ra
Cause code Cause length Cause specific - Information
10 cookie khi thúc k Chunk Cookie Echo (COOKIE ECHO)
nó lý khi chunk kèm có hay
Chunk này dùng trong quá trình
Type = 11 Chunk Flags Length =4 m COMPLETE)