CẤU TRÚC CỦA LUẬN VĂN

Một phần của tài liệu Đánh giá hiệu quả của giao thức SCTPIP cho ứng dụng DVTS trong hội chẩn từ xa luận văn thạc sĩ (Trang 26)

Nội dung đề tài này được trình bày thành bốn chương:

Chương 1: Tổng quan

Giới thiệu và đưa ra những ưu điểm mà hội nghị truyền hình đem lại cho ngành y tế. Từ đó giới thiệu hệ thống hội nghị truyền hình đã và đang được các nước trong khu vực sử dụng. Đồng thời nêu ra những ưu – nhược điểm còn tồn tại từ hệ thống này khi áp dụng vào hệ tấng mạng ở nước ta. Từ đó nêu ra mục tiêu của đề tài và ý nghĩa khoa học mà đề tài đem lại.

Chương này sẽ tập trung vào việc tìm hiểu giao thức SCTP, đồng thời so sánh các đặc tính – dịch vụ cơ bản của giao thức SCTP với giao thức UDP/TCP trên phương diện lý thuyết và nêu lên được những ưu điểm thực sự của giao thức SCTP so với giao thức TCP/UDP.

Chương 3: Phân tích – so sánh đánh giá giao thức và so sánh hệ thống DVTS.

 Tập trung xây dựng các mô phỏng để có thể so sánh đánh giá các đặc tính cũng như truyền/nhận của giao thức SCTP với giao thức UDP/TCP.

 So sánh việc sử dụng hệ thống DVTS cải tiến với hệ thống DVTS truyền thống.

Chương 4: Tổng Kết Và Kiến Nghị Trong Tương Lai.

Phần này đưa ra những kết luận đúc kết được trong quá trình thực hiện đề tài và nêu ra định hướng phát triển hệ thống sau này. Đồng thời, phần này nêu tóm tắt các kết quả đạt được và những hạn chế của đề tài.

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT. 2.1 Giao Thức SCTP

2.1.1 Lịch sử

SCTP ra đời vào năm 1998 sau khi nhóm làm việc của IETF được triệu tập để thiết kế một cơ chế giao vận tin cậy để truyền báo hiệu điều khiển cuộc gọi trên mạng Internet. Kết quả là Sigtran ra đời cho phép truyền các bản tin SS7 trên mạng IP. Vấn đề chính mà Sigtran cần giải quyết chính mà TCP chưa đáp ứng đó là:

Head of line blocking: vấn đề xảy ra khi gửi các bản tin độc lập trên

kết nối TCP đã được thiết lập, thì các bản tin được nhận sau bị trễ và lưu trong bộ đệm của tầng giao vận của phía nhận, tới khi các bản tin trước đó bị mất được truyền lại và tới đích. Mà ở đó, các bản tin sau thường thiết lập các cuộc gọi độc lập. Như vậy, trễ ở các bản tin sau là nguyên nhân sinh ra Timeout trong điều khiển cuộc gọi, gây ra lỗi không mong muốn trong quá trình điều khiển cuộc gọi.

Multihoming: khi một máy trạm với nhiều đường/cách thức truy cập

Internet với mục đích dự phòng, không muốn đợi để định tuyến trong khi mạng bị tắc nghẽn để truyền tin với trạm ngang hàng với nó. Với báo hiệu cuộc gọi, độ trễ này là không thể chấp nhận được khi mà ta có nhiều đường truyền (Moderm, Card mạng, Wireless). Lí do là TCP chỉ gắn một đường kết nối giữa hai đầu cuối nên sẽ không thể giải quyết được vấn đề này.

Cân nhắc những vấn đề này, Sigtran được thiết kế như là một giao thức tầng giao vận mới cho phép mang báo hiệu cuộc gọi trên mạng IP. Đồng thời, IETF mở rộng phạm vi của nhóm thiết kế từ một nhóm nhỏ đến một nhóm

chuyên trách để thiết kế một giao thức giao vận có thể phục vụ nhiều mục đích và hoạt động tốt với nhiều ứng dụng.

Năm 2000, SCTP được chuẩn hoá theo IETF trong tài liệu RFC2960 và được cập nhật trong tài liệu RFC4960. Giao thức SCTP là giao thức tin nhắn theo định hướng tin cậy để truyền thông điệp giữa các máy tính trong cùng mạng IP.

2.1.2/ Tầng hoạt động của giao thức SCTP

Giao thức SCTP hoạt động tại tầng giao vận cùng với các giao thức UDP

và TCP, được mô tả qua hình vẽ sau [11]:

Upper layer applications TCP, UDP, SCTP

IP Link Layer Physical Layer

Bảng 2.1 – Tầng hoạt động của giao thức SCTP

2.1.3/ Kiến trúc tổng quan của giao thức SCTP

Hình 2.1 – Mô hình kiến trúc giao thức SCTP Trong đó [13]:

Association Startup and Takedown: một Association được khởi

xướng bởi một yêu cầu từ người sử dụng SCTP.

Sequenced Delivery within Streams: Thuật ngữ "dòng" được sử dụng

trong SCTP để chỉ một chuỗi các thông điệp người dùng sẽ được gửi đến các lớp giao thức phía trên theo thứ tự với các thông điệp khác trong cùng một dòng. Điều này là trái ngược với việc sử dụng giao thức TCP, ở đó dùng để chỉ một chuỗi các byte (trong luận văn này một byte được coi là tám bit). Người sử dụng SCTP có thể xác định số dòng được hỗ trợ bởi Association tại thời gian khởi động Association. Con số này dùng đàm phán với Endpoint ở xa. Thông điệp người sử dụng có liên quan đến số luồng (SEND, Receive primitives (nguyên thủy)). Trong đó, SCTP thiết lập một số thứ tự cho mỗi Stream được thông qua (adsbygoogle = window.adsbygoogle || []).push({});

nó trước khi đến người sử dụng SCTP. Ở phía bên nhận, SCTP đảm bảo rằng thông điệp được gửi đến người dùng SCTP theo thứ tự trong một stream cho trước. Tuy nhiên, khi một trong những stream có thể bị chặn để chờ thông điệp người dùng trong của trình tự tiếp theo, việc phân phối từ những stream khác vẫn có thể tiến hành. SCTP cung cấp một cơ chế để bỏ qua trình tự/thứ tự phân phối. Thông điệp người dùng được gửi bằng cách sử dụng cơ chế này được giao cho người sử dụng SCTP ngay sau khi chúng nhận được.

User Data Fragmentation: Khi cần thiết, những fragments SCTP của

thông điệp người dùng đảm bảo rằng gói SCTP (Packet SCTP) đi qua các lớp bên dưới sẽ phù hợp với đường dẫn MTU. Bên đầu nhận, các fragments được lắp ráp lại thành những thông điệp hoàn chỉnh trước khi được đưa đến người sử dụng SCTP.

TCP-Friendly Congestion Control: Acknowledgement và chức năng

tránh tắc nghẽn thì chịu trách nhiệm gửi lại gói tin khi hết thời gian mà không nhận được Acknowledgement. Việc gửi lại gói tin có điều kiện bởi thủ tục tránh tắc nghẽn sử dụng giống như trong TCP.

Chunk Bundling: Gói tin SCTP khi chuyển giao cho các lớp phía dưới

gồm một tiêu để phổ biến (common header) bằng một hay nhiều khối. Mỗi Chunk có thể chứa dữ liệu người dùnh hoặc thông tin điều khiển SCTP. Người sử dụng SCTP có thể chọn để yêu cầu Bundling nhiều hơn một thông điệp trong một gói SCTP. Hàm chunk bundling của SCTP chịu trách nhiệm gửi đầy đủ gói tin SCTP và được loại bỏ vào cuối lúc nhận.

Packet Validation: một trường xác minh bắt buộc có chiều dài là 32 bits bao gồm trong tiêu đề phổ biến trong SCTP. Giá trị thẻ xác minh được chọn bởi mỗi một thiết bị cuối của một Asscociation kể cả

Association startup. Các gói tin nhận được mà không có thẻ xác minh sẽ bị loại bỏ, như là một cách bảo vệ chống lại các cuộc tấn công giả mù (blind masquerade) và chống lại gói tin SCTP cũ từ các Association trước đó. Thuật toán Adler32 sẽ thiết lập trên mỗi gói tin người gửi để cung cấp thêm cơ chế chống hỏng dữ liệu trên mạng. Người nhận một gói tin SCTP với kiểm tra Adler-32 không hợp lệ sẽ âm thầm loại bỏ gói tin đó.

Path Management: Chức năng quản lý đường dẫn SCTP chọn địa chỉ

vận chuyển đích cho mỗi gói tin gửi đi SCTP dựa trên hướng dẫn của người dùng SCTP và cảm nhận trạng thái hiện tại có thể đủ điều kiện tới đích đã thiết lập. Chức năng quản lý đường màn hình thông quan những heartbeats khi mà lưu lượng truy cập gói tin là không đủ cung cấp thông tin và khuyên người dùng SCTP khi có bất cứ thay đổi nào liên quan đến địa chỉ truyền vận tại đầu cuối. Chức năng quản lý đường dẫn cũng chịu trách nhiệm cho việc báo cáo đến các địa chỉ truyền vận vùng đủ điều kiện để những đầu cuối phía xa bao gồm cả Association startup và báo cáo địa chỉ truyền vận trở lại từ những đầu cuối phía xa đến những người dùng SCTP.

o Tại Associationd Startup, một đường dẫn chính được xác định cho mỗi điểm cuối (End – point) và sử dụng cho việc gửi các gói tin SCTP.

o Tại nơi nhận, việc quản lý đường dẫn sẽ có trách nhiệm xác minh sự tồn tại hợp lệ của một SCTP Asssociation bên trong gói SCTP được thông qua trước khi xử lý các tiến trình khác.

o Chú ý: quản lý đường dẫn và xác nhận gói tin được thực hiện cùng một lúc. Do đó, mặc dù mô tả một cách riêng biệt như ở

trên nhưng thực tế nó không thể thực hiện thành các mục riêng biệt.

SCTP Association [3]: Một SCTP Association thì được định nghĩa bởi

2 SCTP endpoint (điểm đầu – điểm cuối). Mỗi SCTP endpoint được xác định bởi một địa chỉ IP và 1 cổng (port). Điều đó có nghĩa là cùng 1 địa chỉ IP có thể định nghĩa nhiều Association khác nhau miễn là số cổng (SCTP port number) là khác nhau. Ví dụ đối với SGSN Alcatel- Lucent thì họ thường dùng địa chỉ IP khác nhau để phân biệt các Association, còn SGSN Huawei thì họ lại phân biệt Association bằng cách chọn cổng SCTP khác nhau. Tổ hợp địa chỉ IP@ + Port (transport address, địa chỉ vận tải) là duy nhất cho mỗi SCTP Endpoint.

(@IP 1, port A) ———– Association ————- (@IP 2, port B).

Trong trường hợp multi-homing thì SCTP endpoint được định nghĩa bởi nhiều địa chỉ IP+port, tức nhiều địa chỉ vận tải.

(@IP 1, port A) — Association —([@IP 2, port B][@IP 3, port B]) Như vậy, Association hình phía trên có 2 đường định tuyến khác nhau để hướng về SCTP Endpoint 2. Người ta gọi đó là path. Tức một association có thể có nhiều path. Khi một path bị hỏng (ví dụ hư router) thì association vẫn còn được giữ nguyên, không bị đứt.

Về việc khai báo cổng SCTP ở 2 đầu thiết bị, cổng SCTP ở 2 đầu không nhất thiết phải giống nhau. Thông thường người ta hay khai báo giống nhau cho dễ, nhưng cũng có thể hoàn toàn khai báo khác nhau. Quan trọng là ở đầu A phải biết là đầu B dùng port nào (để gửi message

SCTP cho đúng) và ngược lại ở đầu B phải khai báo port mà đầu A dùng để lắng nghe bản tin SCTP.

Trong 1 SCTP Association thì hai đầu đều gửi một cách đều đặn các thông điệp SCTP HEARTBEAT (nhịp tim) về đầu bên kia và chờ đầu bên kia trả lời lại bằng HEARTBEAT ACK (đã nhận được HEARTBEAT). Nhờ vào đó mà các SCTP Endpoint kiểm tra được là Association còn sống hay đã chết, hoặc một path của Association còn sống hay đã chết.

SCTP Endpoint: là điểm gửi/nhận gói tin SCTP tại tầng vật lý. Trên

một Host đa đích, một SCTP Endpoint thì đại diện cho các điểm ngang hàng với nó như là một tập các địa chỉ chuyển vận đích đủ điều kiện mà các gói tin SCTP có thể gửi và thiết lập một địa chì chuyển vận nguồn mà gói tin SCTP có thể nhận. Tất cả các địa chỉ chuyển vận được sử dụng bởi một SCTP Endpoint phải có cùng số Cổng, nhưng có thể dùng nhiều địa chỉ IP. Một địa chỉ chuyển vận đã xác định bởi một SCTP Endpoint không thể được sử dụng bởi một SCTP Endpoint khác.  Stream: Một kênh logic đơn hướng được thành lập từ một SCTP

Endpoint này đến SCTP Endpoint khác trong cùng hiệp hội, trong đó tất cả các thông điệp người dùng được phân phối theo thứ tự ngoại trừ những dịch vụ không được cung cấp theo thứ tự.

2.1.4/ Định dạng gói tin SCTP [17]

Hình 2.2 – Định dạng một gói tin SCTP

SCTP truyền dữ liệu theo dạng các thông báo (messages), mỗi thông báo chứa một hoặc nhiều gói tin. Một gói tin SCTP được chia thành nhiều chunk (đoạn) dữ liệu, mỗi đoạn có thể thuộc về một luồng logic khác nhau trong phạm vi liên kết. Trong hình 2.2 trình bày cấu trúc một gói tin SCTP. Các phân đoạn dữ liệu của các chunk có thể có kích thước khác nhau, tuy nhiên tổng kích thước gói tin SCTP nhỏ hơn hoặc bằng MTU liên kết. Một số kiểu

chunk được định nghĩa trước theo RFC SCTP, bao gồm các chunk dành cho khởi tạo liên kết, tải dữ liệu, lựa chọn báo nhận SACK,… . Những Chunk này thì được chia thành các phần: ConTrol Chunks (Bó điều khiển) và Data Chunks (Bó dữ liệu). Thông tin về dữ liệu thì được chuyển tiếp bằng data Chunks (màu xanh lá) và những thông tin điều khiển được chuyển bằng Control Chunk (màu đỏ). (adsbygoogle = window.adsbygoogle || []).push({});

2.1.4.1/ Trường Common Header trong SCTP (màu xanh dương)

SCTP common header chiếm 12 bytes đầu tiên (từ bit 0 – 95), phần có màu xanh dương trong hình 2.2 và cung cấp cho ta các thông tin:

 Xác định gói tin SCTP đó thuộc về Association nào và xác minh toàn vẹn dữ liệu của tầng vận chuyển.

 Một chi tiết khá thú vị là việc xác minh Association không chỉ sử dụng cổng (port) nguồn và đích mà còn sử dụng cả địa chỉ IP.

 Các SCTP common header cũng bao gồm một thẻ xác minh để phân biệt giữa hai trường hợp Association khác nhau và bảo vệ chống lại các cuộc “tấn công mù” bằng cách đặt dữ liệu vào một Association đã tồn tại.

Chi tiết các thành phần của trường Common Header:

2.1.4.1.a/ Cổng nguồn (Source Port Number): 16 bits (unsigned integer) [13]

Đây là số cổng người gửi SCTP. Nó có thể được sử dụng bởi người nhận kết hợp với địa chỉ IP nguồn, cổng đích SCTP và có thể là địa chỉ IP đích để xác định các Association mà gói tin này thuộc về.

2.1.4.1.b/ Destination Port Number (Cổng đích): 16 bits (unsigned integer) [13]

Đây là số cổng SCTP xác định đích của gói tin. Các máy chủ tiếp nhận sẽ sử dụng cổng này số để truyền nhiều gói tin SCTP đến đúng thiết bị đầu cuối / ứng dụng.

2.1.4.1.c/ Verification Tag (thẻ xác minh): 32 bits (unsigned integer) [13]

Người nhận được gói tin này sẽ sử dụng “thẻ xác minh” để kiểm tra người gửi gói tin SCTP. Trên việc chuyển/nhận, giá trị “thẻ xác minh” này phải được thiết lập để giá trị của Tag Bắt đầu nhận được từ thiết bị đầu cuối ngang hàng trong quá trình khởi tạo liên kết, với các trường hợp ngoại lệ sau đây:

 Một gói tin lưu trữ một Chunk init phải có “thẻ xác minh” là 0.

 Một gói có chứa một đoạn SHUTDOWN - COMPLETE với các thiết lập T-bit phải có “thẻ xác minh” sao chép từ các gói tin với các đoạn SHUTDOWN - ACK.

 Một gói có chứa một đoạn hủy bỏ có thể có thẻ xác minh được sao chép từ các gói tin được hủy bỏ bởi người gửi.

 Một đoạn init phải là đoạn duy nhất trong các gói tin SCTP mang nó.

2.1.4.1.d/ Checksum: 32 bits (unsigned integer) [13]

Đây là trường lưu trữ việc kiểm tra gói tin SCTP. Khi gửi một gói tin SCTP, các thiết bị đầu cuối phải tăng cường tính toàn vẹn dữ liệu truyền tải bao gồm cả các Adler -32 giá trị tổng kiểm tra tính trên gói tin, như mô tả dưới đây. Sau khi gói tin được xây dựng (có chứa tiêu đề SCTP phổ biến và kiểm soát một hoặc nhiều hơn hoặc dữ liệu khối ), Việc truyền nhận sẽ:

 Điền vào các “thẻ xác minh” thích hợp trong tiêu đề phổ biến SCTP và khởi tạo các lĩnh vực kiểm tra = 0.

 Tính toán các Adler-32 checksum của toàn bộ gói, bao gồm cả tiêu đề phổ biến SCTP và tất cả các khối.

 Đặt giá trị kết quả vào trường checksum trong tiêu đề chung, và để phần còn lại của các bit không thay đổi.

2.1.4.2 Mô tả Chunk SCTP [13]

Các Chunk, tạo nên thành phần còn lại của gói tin – hình 2.2. Trong hình 2.2, Chunk đầu tiên thì có màu xanh lá, và khối chunk cuối cùng được đánh dấu màu đỏ. Cũng trong minh hoạ trên, mỗi Chunk thì được định dạng với 1 trường Chunk Type, 1 trường Flag, 1 trường Length và 1 trường Value. Trong gói tin SCTP, mỗi chunk có định dạng giống nhau, nhưng trên mỗi chunk nội dung có thể khác nhau. Mỗi Chunk hoặc phải kết thúc hoặc được thêm đến 32 bits cho phần kế tiếp.

2.1.4.2.a Chunk type:

8 Byte (256 bit) của trường Chunk Type thì đại diện cho các loại Chunk. RFC4960 đã định nghĩa một danh sách Chunk và hiện nay có 15 loại đã được xác định, trong đó có 14 chunk điều khiển và một Chunk dữ liệu (xem bảng 2.2).

2.1.4.2.b. Chunk Flags:

8 bits được hiểu khác nhau tuỳ thuộc vào kiểu chunk. Bất kỳ những Chunk flag không được xác định thì đều được thiết lập là 0. Giá trị đại diện cho kích

Một phần của tài liệu Đánh giá hiệu quả của giao thức SCTPIP cho ứng dụng DVTS trong hội chẩn từ xa luận văn thạc sĩ (Trang 26)