« Home « Kết quả tìm kiếm

Tìm hiểu về SCTP và đánh giá, thử nghiệm.


Tóm tắt Xem thử

- Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 1 LỜI CẢM ƠN Để hoàn thành luận văn này, tôi đã nhận được sự tin tưởng và chỉ bảo rất nhiều từ thầy PGS.TS Ngô Hồng Sơn, Bộ môn Truyền thông và Mạng máy tính – Viện Công nghệ thông tin và Truyền thông – Đại học Bách Khoa Hà Nội.
- Trước hết tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Ngô Hồng Sơn đã dành thời gian và tâm huyết hướng dẫn, giúp đỡ tôi hoàn thành Luận văn tốt nghiệp này.
- Tôi cũng xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên tôi rất nhiều trong thời gian làm luận văn, cảm ơn ban lãnh đạo công ty Hyperlogy đã tạo điều kiện thuận lợi trong việc cung cấp thiết bị và thực hiện các thí nghiệm trong luận văn.
- Nhân đây tôi cũng xin gửi lời cảm ơn đến quý thầy cô Viện Công nghệ thông tin và Truyền thông đã tạo rất nhiều điều kiện để tôi học tập và tích lũy kiến thức trong thời gian theo đuổi khóa học tại trường.
- Một lần nữa tôi gửi lời cảm ơn chân thành đến tất cả quý thầy cô Viện Công nghệ thông tin và Truyền thông – Đại học Bách Khoa Hà Nội cùng gia đình, bạn bè và ban lãnh đạo công ty Hyperlogy đã giúp đỡ tôi hoàn thành luận văn này.
- Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 2 DANH MỤC CÁC TỪ VIẾT TẮT: 3GPP 3rd Generation Partnership Project Dự án mạng thế hệ mới 3G ACK Acknowledgment Báo nhận API Application Programming Interface Giao diện lập trình ứng dụng DoS Deny of Service Tấn công từ chối dịch vụ HoL Head of Line Nghẽn đầu dòng HTTP Hyper Text Transfer Protocol Giao thức truyền siêu văn bản IETF Internet Engineering Task Force Nhóm đặc trách kỹ thuật Internet IP Internet Protocol Giao thức internet MAC Message Authentication Code Mã xác thực thông điệp MTU Maximum Transmission Unit Đơn vị dữ liệu truyền lớn nhất của đường truyền CBR Constan Bit Race Tốc độ Bit không đổi RFC Resquest for Command Khuyến nghị duyệt thảo và bình luận RTP Real Time Protocol Giao thức vận chuyển thời gian thực RTT Round-trip Time Thời gian vòng khứ hồi A_rwnd Advertised receiver window credit Bộ đệm để nhận dữ liệu mà đầu thu quảng bá cho đầu gửi SACK Selective acknowledgement Báo nhận có chọn lọc SCTP Stream Control Transmission Protocol Giao thức truyền thông theo luồng có điều khiển Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 3 SCTPLIB Siemens SCTP library Thư viện SCTP của Siemens SI Stream Identifier Nhận diện luồng SSN Stream Sequence Number Số thứ tự luồn SYN Synchronization Đồng bộ SDP Session Description Protocol Giao thức mô tả phiên SSTHRESH Slow Start Threshold Giá trị ngưỡng (đơn vị byte) trong SCTP để xác định tắc nghẽn là ở giai đoạn “khởi đầu chậm” hay “tránh tắc nghẽn” TCP Transmission Control Protocol Giao thức truyền thông có điều khiển TCB Transport Control Block Khối điều khiển giao vận TSN Transmission Sequence Number Số thứ tự truyền TLV Type-Length-Value Kiểu-Độ dài-Giá trị UAC User Agent Client Đơn vị thực hiện các chức năng client trong SIP UAS User Agent Server Đơn vị thực hiện các chức năng server trong SIP UDP User Datagram Protocol Giao thức truyền thông người dùng URL Uniform Resource Identifiers Dạng địa chỉ để tham chiếu đến tài nguyên trên Internet VoIP Voice over IP Giao thức truyền tiếng nói qua Internet Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 4 DANH MỤC BẢNG: Bảng 2-1: So sánh các đặc tính của SCTP với TCP và UDP.
- 31 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.
- 60 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.
- 68 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 5 DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ: Hình 2-1: Định dạng gói tin SCTP.
- Theo sau tiêu đề tổng quát là một hay nhiều các chunk chứa đựng thông tin điều khiển hay thông tin dữ liệu.
- 15 Hình 2-3: Thiết lập và kết thúc một kết nối.
- SCTP sử dụng kĩ thuật cookie trong cơ chế bắt tay 4 bước để thiết lập một kết nối.
- Giai đoạn kết thúc kết nối là cơ chế bắt tay 3 bước.
- 18 Hình 2-4 : Các giai đoạn trong quá trình hoạt động của một kết nối SCTP.
- 25 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ối25 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.
- 37 Hình 3-3: Lab hiển thị các chức năng cơ bản của SCTP.
- 39 Hình 3-4 : Tiêu đề tổng quát của SCTP.
- 40 Hình 3-5: Định dạng các chunk dữ liệu SCTP.
- 41 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 .
- 43 Hình 3-8: Các chunk dữ liệu được truyền lại.
- 44 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 6 Hình 3-10 : Sự độc lập của các luồng SCTP.
- 48 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.
- 49 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.
- 51 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.
- 52 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.
- 52 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.
- 53 Hình 3-18: Việc truyền nhiều luồng SCTP trong điều kiện không có mất gói.
- 55 Hình 3-20 : Trang web với 4 kết nối TCP từ client.
- 56 Hình 3-21: Trang web với 10 kết nối TCP từ client.
- 56 Hình 3-22 : Kiến trúc Lab thí nghiệm HTTP với SCTP làm giao thức lớp transport.
- 57 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 đến thttpd để truyền tập tin có dung lượng 10K Byte và tỉ lệ mất gói là 10.
- 60 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.
- 60 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à 10.
- 61 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 7 Hình 3-26: Chồng giao thức multimedia trên Internet.
- 65 Hình 3-29 : Lab thực nghiệm SIP với giao thức transport là SCTP và UDP.
- 67 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 .
- 70 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 8 MỤC LỤC: LỜI CẢM ƠN.
- Giới thiệu về SCTP.
- Cơ bản về SCTP.
- Các giai đoạn (pha) trong một kết nối SCTP.
- 15 2.2.1 Thiết lập kết nối.
- 15 2.2.2 Truyền dữ liệu.
- 18 2.2.3 Kết thúc kết nối.
- Kết thúc kết nối đúng qui trình.
- Hủy kết nối nữa chừng.
- Các đặc tính nổi bật của SCTP so với TCP.
- Điều khiển luồng.
- Điều khiển tắc nghẽn.
- 29 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 9 2.3.6.
- So sánh giữa SCTP với TCP/UDP.
- Các đặc tính cơ bản của SCTP.
- Trường hợp một: định dạng gói tin SCTP.
- Đánh giá SCTP so với TCP và UDP.
- Trường hợp 1: So sánh hiệu suất giữa SCTP và TCP với một kết nối TCP.
- Trường hợp 2: So sánh hiệu suất giữa SCTP và TCP với nhiều kết nối TCP.
- Đánh giá các ứng dụng với SCTP đóng vai trò lớp transport.
- Ứng dụng HTTP với SCTP.
- 56 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 10 3.3.2.
- Ứng dụng SIP với SCTP.
- 75 Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 11 LỜI NÓI ĐẦU Hiện nay nhu cầu truyền dữ liệu thời gian thực và đảm bảo các yếu tố an toàn đang rất được quan tâm.
- Các giao thức đang hoạt động ở lớp ứng dụng như TCP và UDP ngày càng bộc lộ những nhược điểm về khả năng an toàn, giám sát tắc nghẽn, khả năng chịu lỗi… Hiện tại tổ chức IETF đang phát triển giao thức vận chuyển đa mục đích thế hệ mới, gọi là SCTP (streaming control transport protocol).
- Giao thức này còn mới, đang được cộng đồng khoa học phát triển và hoàn thiện về hoạt động, ứng dụng, hiệu suất…Việc nghiên cứu, đánh giá và ứng dụng giao thức này đang trở thành nhu cầu bức thiết, nhất là cho Internet thế hệ sau.
- Mục tiêu của luận văn này là nghiên cứu, đánh giá và phân tích thực nghiệm tính hiệu quả khi áp dụng giao thức lớp transport mới - SCTP trong việc truyền dữ liệu so với các giao thức TCP, UDP, đặc biệt là trong các ứng dụng dữ liệu thời gian thực như SIP.
- Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 12 I.
- Giới thiệu về SCTP Stream Control Transport Protocol (SCTP) được IETF phát triển với mục đích ban đầu là giao thức truyền thông tin cậy thuộc lớp transport để truyền dữ liệu báo hiệu SS7 trên mạng IP.
- Bên cạnh đó SCTP còn có các đặc tính tiên tiến mà TCP hay UDP không cung cấp, cho phép nó có thể được sử dụng rộng rãi hơn là chỉ trong các ứng dụng báo hiệu [4].
- Như với TCP, SCTP là giao thức truyền thông tin cậy với các cơ chế điều khiển tắc nghẽn và điều khiển luồng.
- Nó cũng là giao thức hướng kết nối với việc thiết lập phiên làm việc trước khi truyền dữ liệu và cơ chế ACK.
- Bên cạnh đó để tăng tốc độ truyền dữ liệu, nó có cơ chế truyền tin mà không quan tâm đến thứ tự gói tin như UDP.
- Nó cũng bao gồm kĩ thuật heartbeat để theo dõi trạng thái của các đầu cuối và các sự cố kết nối một cách nhanh chóng.
- Đặc biệt tính năng multi-homing của SCTP giúp đầu cuối tăng cường khả năng chịu lỗi.
- Tính năng đa luồng (multi-streaming) hay còn gọi là “thứ tự từng phần” cung cấp khả năng truyền dữ liệu tốc độ cao, giảm được trì hoãn trên đường truyền, giải quyết được vấn đề nghẽn HoL (Head-of-Blocking) mà giao thức TCP gặp phải.
- [4] Nhiều tổ chức và dự án khác nhau đang nghiên cứu và phát triển SCTP như dự án KAME SCTP với mục đích phát triển các plug-in SCTP cho Apple MAC, dự án SCTP Kernel Implementation phát triển các phiên bản ứng dụng web apache2 và Mozilla có hỗ trợ SCTP nên nền tảng FreeBSD.
- Dự án của Salvatore Loreto cũng cung cấp tài liệu và mã nguồn để chạy SIP với lớp transport là SCTP.
- Tất cả các phiên bản còn đang trong giai đoạn nghiên cứu, phát triển, do đó Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 13 SCTP cần phải được tìm hiểu sâu sắc, cải tiến hơn nữa để có thể áp dụng phổ biến vào thực tế [16] 1.2.
- Các vấn đề quan trọng được giải quyết trong luận văn Luận văn này đề cập đến đặc tính kĩ thuật của SCTP, đánh giá và phân tích hiệu quả của SCTP ở lớp transport.
- Trước hết luận văn sẽ trình bày các đặc tính quan trọng và những ưu điểm của SCTP so với TCP/UDP, giải thích tại sao SCTP có thể thay thể được TCP/UDP  Định nghĩa kiến trúc và kịch bản các thí nghiệm để thể hiện và chứng minh các đặc tính nổi bật của SCTP  Định nghĩa các thông số để đánh giá hiệu suất và các tham số mô tả môi trường mạng thực tế để đo đạc và thấy được các ưu điểm của SCTP so với TCP/UDP  Triển khai các thực nghiệm sử dụng Ubuntu, lskctp và NS2  Thực hiện các kịch bản kiểm tra và phân tích kết quả  Đề xuất các công việc cần nghiên cứu hơn nữa trong tương lai Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 14 II.
- TỔNG QUAN Trong phần này chúng ta sẽ phân tích chi tiết về SCTP bao gồm định dạng gói tin, các giai đoạn cần thiết trong một kết nối (gọi là một association), các đặc tính cũng như ưu điểm của SCTP so với TCP.
- Chúng ta cũng giải thích tính cần thiết của SCTP so với TCP/UDP và nguyên nhân cộng đồng mạng hiện đang rất quan tâm đến nó (cả trong nghiên cứu và phát triển).
- Cuối cùng, chúng ta giới thiệu sơ lược tình hình phát triển SCTP hiện tại để hiểu rõ vấn đề hơn và dự án lksctp, dự án này cho phép kernel Linux hỗ trợ SCTP ở lớp transport.[1] 2.1.
- Cơ bản về SCTP Phần này đề cấp đến định dạng gói tin SCTP và các giai đoạn trong vòng đời một kết nối SCTP (associatioin).
- [2], [15] Hình 2-1: Định dạng gói tin SCTP.
- Theo sau tiêu đề tổng quát là một hay nhiều các chunk chứa đựng thông tin điều khiển hay thông tin dữ liệu TCP cung cấp dịch vụ truyền dữ liệu là các luồng byte (byte-stream), trong khi đó SCTP truyền dữ liệu theo hướng thông điệp (message-oriented).
- Các gói tin SCTP luôn bắt đầu với một tiêu đề chung, có dung lượng 12 byte, kiến trúc tối thiểu phải cung cấp ba chức năng sau: Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 15  Port nguồn và port đích: cùng với địa chỉ IP trong tiêu đề IP, số port là giá trị 16 bit, được dùng để xác định một kết nối mà một gói tin thuộc vào.
- Các thẻ kiểm tra (verification tag-Vtags): Trường Vtags 32 bit đảm bảo gói tin thuộc vào một kết nối hiện thời, giá trị này được trao đổi giữa các đầu cuối khi thiết lập kết nối.
- Đây cũng là cơ chế bảo vệ chống lại các tấn công của hacker  Kiểm lỗi (checksum): giá trị 32 bit này dùng để đảm bảo tính toàn vẹn của toàn bộ gói tin, nó sẽ bảo vệ gói tin tốt hơn so với trường checksum 16 bit của TCP hay UDP Phần còn lại của một gói SCTP bao gồm một hay nhiều chunk, chunk ở đây là một hay nhiều khối chứa đựng thông tin điều khiển hay dữ liệu.
- Định dạng này khác với các gói tin TCP và UDP, chúng chỉ chứa đựng thông tin điều khiển trong phần tiêu đề và chỉ có duy nhất một trường dữ liệu tùy chọn Hình 2-2: Định dạng của một chunk SCTP 2.2.
- Các giai đoạn (pha) trong một kết nối SCTP Giống như TCP, SCTP là một giao thức hướng kết nối (connection-oriented) và một kết nối SCTP có ba giai đoạn: thiết lập kết nối, truyền dữ liệu và kết thúc kết nối.
- 2.2.1 Thiết lập kết nối SCTP sử dụng bắt tay 4 bước (4-way handshake), trong đó sử dụng kỹ thuật cookie để thiết lập một kết nối nhằm ngăn ngừa các tấn công SYN.
- Nếu một host A khởi tạo một kết nối với host B, các tiến trình theo thứ tự sau đây sẽ phải xảy ra: [2],[8] Tìm hiểu về SCTP và đánh giá, thử nghiệm Học viên: Nông Anh Đức Người hướng dẫn: PGS.TS Ngô Hồng Sơn 16  Khi một ứng dụng trên host A muốn bắt đầu một kết nối với host B, nó gọi thủ tục ASSOCIATE (SCTP API) và tất cả các cấu trúc dữ liệu cần thiết được khởi tạo để hình thành nên chunk INIT.
- Chunk INIT này được gửi đến một địa chỉ lớp transport (là tổ hợp giữa địa chỉ IP và port dịch vụ) của host B.
- Cùng lúc này một bộ đếm thời gian cũng được kích hoạt để host A lặp lại việc gửi chunk INIT này khi hết hạn thời gian chờ để nhận chunk INT-ACK từ host B.
- Nếu sau một số lần gửi đã thiết lập trước các chunk INIT mà không có chunk INT-ACK nào được nhận thì một lỗi được thông báo đến ứng dụng bên trên là host B không thể kết nối được.
- Thông thường khi host B nhận được thông điệp yêu cầu thiết lập (chunk INIT), nó đang ở trạng thái CLOSED.
- Nó sẽ phân tích dữ liệu chứa trong chunk đó, từ đó sinh ra tất cả các giá trị cần thiết cho việc hình thành một kết nối, đồng thời nó cũng tạo ra một mã băm an toàn từ những giá trị này và một khóa bí mật (theo thuật toán MD5 hay SHA1).
- Chỉ có host B mới có thể kiểm tra được thông tin trong COOKIE này.
- Tại thời điểm này, host B vẫn trong trạng thái CLOSE và không phân bổ bất kì tài nguyên bộ nhớ hay CPU để duy trì tình trạng hiện thời của yêu cầu kết nối từ host A.
- Chúng ta chú ý một điều rằng trong giai đoạn thiết lập kết nối của TCP, tại thời điểm này, nó vẫn dành tài nguyên để duy trì trạng thái này, làm cho nó dễ bị tấn công dạng SYN  Khi host A nhận được thông điệp INIT-ACK ở trạng thái COOKIE-WAIT, nó sẽ dừng bộ đếm thời gian của mình lại và tạo ra chunk COOKIE-ECHO.
- Cùng lúc này nó cũng bật bộ đếm thời gian để lặp lại việc gửi chunk COOKIE-ECHO cho đến khi nhận được một chunk

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt