nghiên cứu giao thức h323 sip server trong mạng voip
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
GVHD : Ths NGUYỄN ĐỨC QUANG SVTH :
MSSV : 09C1020164 Lớp : 10LDTHM2
TP.HCM Tháng 06/2013
Trang 2TÓM TẮT NỘI DUNG
Với sự phát triển nhảy vọt của mạng chuyển mạch gói IP hiện nay không chỉ đemlại cho chúng ta những dịch vụ mới đa dạng mà còn là cơ hội cải thiện các dịch vụviễn thông trước kia với chất lượng tốt hơn và giá thành rẻ hơn Đã từ lâu, mạngchuyển mạch kênh ghép phân kênh theo thời gian PSTN đã có một vai trò vô cùngquan trọng với sự phát triển của xã hội Bên cạnh những ưu điểm về chất lượng dịch
vụ tốt, vùng dịch vụ rộng lớn trên khắp mọi lãnh thổ,… thì mạng PSTN cũng bộc lộnhiều hạn chế như số lượng các dịch vụ hạn chế, sử dụng tài nguyên đường truyềnkhông tối ưu, giá thành cao
Trên cơ sở đó, mạng VoIP ra đời và ngày càng đáp ứng tốt hơn các yêu cầu đặt
ra như chất lượng dịch vụ, giá thành, số lượng tích hợp các dịch vụ thoại lẫn phi thoại.Cũng như các công nghệ ra đời trong thời gian gần đây, thì vấn đề Giao thức là đặcbiệt quan trọng Việc nắm chắc Giao thức là chìa khóa thành công của việc triển khaimỗi một công nghệ mới vào thực tế Chính vì vậy, trong nội dung của bài Luận văn tốtnghiệp này, em xin được giới thiệu về “Giao thức sử dụng trong mạng VoIP” Bài luậnvăn sẽ gồm các nội dung chính như sau:
Chương 1: Tổng quan về mạng VoIP
Chương 2: Các giao thức truyền tải trong VoIP
Chương 3: Giao thức báo hiệu VoIP
Một vấn đề đặc biệt quan trong khi mỗi công nghệ, một giao thức mới được sinh
ra là vần đề tương thích với các công nghệ và giao thức trước đó Đó cũng là một trongnguyên nhân quyết định sự sống còn của mạng VoIP được đề cập tới tại:
Trang 3MỤC LỤC
Chương 1 Tổng quan về mạng VoIP 2
1.1 Tổng quan về mạng VoIP 2
1.2 Đặc tính của mạng VoIP 4
1.2.1 Ưu điểm 4
1.2.2 Nhược điểm 5
1.3 Yêu cầu chất lượng đối với VoIP 6
Chương 2 Các giao thức truyền tải trong VoIP 7
2.1 Giao thức IP 7
2.1.1 Giao thức IP phiên bản 4 (IPv4) 7
2.1.2 Giao thức IP phiên bản 6 (IPv6) 10
2.2 Giao thức TCP/IP 11
2.3 Giao thức UDP 16
2.4 Giao thức SCTP 17
2.5 Giao thức RTP 22
2.6 Giao thức RTCP 27
Chương 3 Giao thức báo hiệu VoIP 30
3.1 Giao thức báo hiệu H.323 30
3.1.1 Các thành phần trong mạng 30
3.1.2 Giao thức H.323 34
3.1.3 Thiết lập cuộc gọi VoIP sử dụng giao thức H.323 40
3.2 Giao thức SIP 43
3.2.1 Các thành phần trong mạng SIP 44
3.2.2 Bản tin SIP 47
3.2.3 Mô tả cuộc gọi SIP 52
3.3 So sánh giữa giao thức H.323 và SIP 54
3.4 Giới thiệu chương trình Wireshark 56
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
Kí hiệu
VoIP Voice over IP Công nghệ truyền thoại trên mạng IP
Management Protocol Giao thức quản trị mạng đơn giản
SIP Session Initiation
Protocol Giao thức thiết lập phiên
RTP Real Time Protocol Giap thức thời gian thực
RTCP Real Time Control
Protocol Giap thức điều khiển thời gian thực
ATM Asynchronous
Transfer Mode Chế độ truyền không đồng bộ
QoS Quality of Service Chất lượng dịch vụ
ToS Type of Service Kiểu dịch vụ
IP Internet Protocol Giao thức Internet
IPv4 IP version 4 Giao thức Internet phiên bản 4
IPv6 IP version 6 Giao thức Internet phiên bản 6
TCP Transmission Control
Protocol Giao thức điều khiển truyền thông tin
UDP User Datagram
Protocol Giao thức Datagram người dùngSCTP Stream Control Giao thức truyền điều khiển luồng
Trang 5Hiệp hội viễn thông quốc tế
- Bộ phận chuẩn viễn thông
RAS Register Admission
Status Báo hiệu đăng kí, cấp phép, thông tin trạng tháiSAP
Trang 6MỞ ĐẦU
Mạng VoIP ra đời như là một cuộc các mạng của hệ thống viễn thông và xã hội.Với những ưu điểm vượt trội, mạng VoIP đã chứng tỏ được sức sống và tính thực tiễncao của nó Sự phát triển quá nhanh của mạng VoIP cũng đặt ra một vấn đề nan giải đó
là việc chuẩn hóa giữa các giao thức VoIP của nhiều nhà phát triển khác nhau Màtrong đó có hai giao thức được nhắc tới nhiều nhất đó là H.323 của ITU-T và SIP củaIETF Như một tất yếu khách quan, mạng VoIP sẽ được chia thành nhiều miền giaothức khác nhau Nên vấn đề quan trọng để có thể triển khai được mạng VoIP vào thực
tế đó là phải hiểu được bản chất của các giao thức VoIP và quan trọng nhất đó là cácgiao thức báo hiệu sử dụng trong VoIP Tuy vâyh mới là điều kiện cần cho sự ra đờicòn vấn đề then chốt cho sự tồn tại và phát triển của mạng VoIP lại là vấn đề kết nốivới hệ thống viễn thông vốn có Và cụ thể là vấn đề kết nối giữa mạng VoIP và mạngPSTN Và đây cũng là hai nội dung chính của bài Luân văn tốt nghiệp này
Trên cơ sở nhận thức rõ sự quan trọng cũng như cách thức hoạt động của giaothức trong mạng VoIP, thì phương pháp nghiên cứu của em trong nội dung Luận vănchủ yếu đi sâu nghiên cứu thông qua tài liệu quy chuẩn về Giao thức VoIP (RFC củaIETF, các tài liệu chuẩn của ITU-T); đồng thời tham chiếu đến các tài liệu chuyên mônsâu về VoIP để làm rõ các vấn đề cần giải quyết
Từ những hiểu biết nghiên cứu lý thuyết khá sâu về chuyên môn, em sẽ thamchiếu với mô hình thực tế Từ đó làm rõ các vấn đề vướng mắc mà khi nghiên cứu lýthuyết chưa thể giải quyết và lảm rõ được
Trang 7Chương 1 Tổng quan về mạng VoIP
1.1 Tổng quan về mạng VoIP
Đầu năm 1995 công ty VOCALTEC đưa ra thị trường sản phẩm phần mềm thựchiện cuộc thoại qua Internet đầu tiên trên thế giới Sau đó có nhiều công ty đã tham giavào lĩnh vực này Tháng 3 năm 1996, VOLCALTEC kết hợp với DIALOGIC tung rathị trường sản phẩm kết nối mạng PSTN và Internet Hiệp hội các nhà sản xuất thoạiqua mạng máy tính đã sớm ra đời và thực hiện chuẩn hoá dịch vụ thoại qua mạngInternet Việc truyền thoại qua internet đã gây được chú ý lớn trong những năm qua và
đã dần được ứng dụng rộng rãi trong thực tế
Có thể định nghĩa: Voice over Internet Protocol (VoIP) là một công nghệ chophép truyền thoại sử dụng giao thức mạng IP, trên cơ sở hạ tầng sẵn có của mạngInternet VoIP là một trong những công nghệ viễn thông đang được quan tâm nhấthiện nay không chỉ đối với các nhà khai thác, các nhà sản xuất mà còn cả với người sửdụng dịch vụ VoIP có thể vừa thực hiện cuộc gọi thoại như trên mạng điện thoại kênhtruyền thống (PSTN) đồng thời truyền dữ liệu trên cơ sở mạng truyền dữ liệu Nhưvậy, nó đã tận dụng được sức mạnh và sự phát triển vượt bậc của mạng IP vốn chỉđược sử dụng để truyền dữ liệu thông thường
Để có thể hiểu được những ưu điểm của VoIP mang lại, trước hết chúng ta đi vàonghiên cứu sự khác biệt giữa mạng kênh PSTN hiện có với mạng chuyển mạch gói nóichung và mạng VoIP nói riêng
Kỹ thuật chuyển mạch kênh (Circuit Switching): Một đặc trưng nổi bật của kĩ
thuật này là hai trạm muốn trao đổi thông tin với nhau thì giữa chúng sẽ được thiết lậpmột “ kênh” (circuit) cố định, kênh kết nối này được duy trì và dành riêng cho hai trạmcho tới khi cuộc truyền tin kết thúc Thông tin cuộc gọi là trong suốt Quá trình thiếtlập cuộc gọi tiến hành gồm 3 giai đoạn:
• Giai đoạn thiết lập kêt nối: Thực chất quá trình này là liên kết các tuyến giữa
các trạm trên mạng thành một tuyến (kênh) duy nhất dành riêng cho cuộc gọi Kênh này đối với PSTN là 64kb/s (do bộ mã hóa PCM có tốc độ lấy mẫu tiếng nói 8kb/s và được mã hóa 8 bit)
• Giai đoạn truyền tin: Thông tin cuộc gọi là trong suốt Sự trong suốt thể hiện
qua hai yếu tố: thông tin không bị thay đổi khi truyền qua mạng và độ trễ nhỏ
Trang 8• Giai đoạn giải phóng (huỷ bỏ) kết nối: Sau khi cuộc gọi kết thúc, kênh sẽ được giải phóng để phục vụ cho các cuộc gọi khác.
Qua đó, ta nhận thấy mạng chuyển mạch kênh có những ưu điểm nổi bật nhưchất lượng đường truyền tốt, ổn định, có độ trễ nhỏ Các thiết bị mạng của chuyểnmạch kênh đơn giản, có tính ổn định cao, chống nhiễu tốt Nhưng ta cũng khôngthể không nhắc tới những hạn chế của phương thức truyền dữ liệu này như:
• Sử dụng băng thông không hiệu quả: Tính không hiệu quả này thể hiện qua hai yếu tố Thứ nhất, độ rộng băng thông cố định 64k/s Thứ hai là kênh là dành riêng cho một cuộc gọi nhất định Như vậy, ngay cả khi tín hiệu thoại là “lặng” (không có dữ liệu) thì kênh vẫn không được chia sẻ cho cuộc gọi khác
• Tính an toàn: Do tín hiệu thoại được gửi nguyên bản trên đường truyền nên rất
dễ bị nghe trộm Ngoài ra, đường dây thuê bao hoàn toàn có thể bị lợi dụng để
an trộm cước viễn thông
• Khả năng mở rộng của mạng kênh kém: Thứ nhất là do cơ sở hạ tầng khó năng cấp và tương thích với các thiết bị cũ Thứ hai, đó là hạn chế của hệ thống báo hiệu vốn đã được sử dụng từ trước đó không có khả năng tùy biến cao
Kỹ thuật chuyển mạch gói (Packet Switching): Trong chuyển mạch gói mỗi
bản tin được chia thành các gói tin (packet), có khuôn dạng được quy định trước.Trong mỗi gói cũng có chứa thông tin điều khiển: địa chỉ trạm nguồn, địa chỉ trạmđích và số thứ tự của gói tin,… Các thông tin điều khiển được tối thiểu, chứa cácthông tin mà mạng yêu cầu để có thể định tuyến được cho các gói tin qua mạng vàđưa nó tới đích Tại mỗi node trên tuyến gói tin được nhận, nhớ và sau đó thìchuyển tiếp cho tới chạm đích Vì kỹ thuật chuyển mạch gói trong quá trình truyềntin có thể được định tuyến động để truyền tin Điều khó khăn nhất đối với chuyểnmạch gói là việc tập hợp các gói tin để tạo bản tin bản đầu đặc biệt là khi mà cácgói tin được truyền theo nhiều con đường khác nhau tới trạm đích Chính vì lý dotrên mà các gói tin cần phải được đánh dấu số thứ tự, điều này có tác dụng, chốnglặp, sửa sai và có thể truyền lại khi hiên tượng mất gói xảy ra
Các ưu điểm của chuyển mạch gói:
• Mềm dẻo và hiệu suất truyền tin cao: Hiệu suất sử dụng đường truyền rất cao vì
trong chuyển mạch gói không có khái niệm kênh cố định và dành riêng, mỗiđường truyền giữa các node có thể được các trạm cùng chia sẻ cho để truyềntin, các gói tin sắp hàng và truyền theo tốc độ rất nhanh trên đường truyền
Trang 9• Khả năng tryền ưu tiên: Chuyển mạch gói còn có thể sắp thứ tự cho các gói để
có thể truyền đi theo mức độ ưu tiên Trong chuyển mạch gói số cuộc gọi bị từchối ít hơn nhưng phải chấp nhận một nhược điểm vi thời gian trễ sẽ tăng lên
• Khả năng cung cấp nhiều dịch vụ thoại và phi thoại
• Thích nghi tốt nếu như có lỗi xảy ra: Đặc tính này có được là nhờ khả năngđịnh tuyến động của mạng
Bên cạnh những ưu điểm thì mạng chuyển mạch gói cũng bộ lộ những nhược điểm như:
• Trễ đường truyền lớn: Do đi qua mỗi trạm, dữ liệu được lưu trữ, xử lý trước khiđược truyền đi
• Độ tin cậy của mạng gói không cao, dễ xảy ra tắc nghẽn, lỗi mất bản tin
• Tính đa đường có thể gây là lặp bản tin, loop làm tăng lưu lượng mạng khôngcần thiết
• Tính bảo mật trên đường truyền chung là không cao
1.2 Đặc tính của mạng VoIP
1.2.1 Ưu điểm
• Giảm chi phí: Đây là ưu điểm nổi bật của VoIP so với điện thoại đường dài
thông thường Chi phí cuộc gọi đường dài chỉ bằng chi phí cho truy nhậpInternet Một giá cước chung sẽ thực hiện được với mạng Internet và do đó tiếtkiệm đáng kể các dịch vụ thoại và fax Sự chia sẻ chi phí thiết bị và thao tácgiữa những người sử dụng thoại và dữ liệu cũng tăng cường hiệu quả sử dụngmạng Đồng thời kỹ thuật nén thoại tiên tiến làm giảm tốc độ bit từ 64Kbpsxuống dưới 8Kbps, tức là một kênh 64Kbps lúc này có thể phục vụ đồng thời 8kênh thoại độc lập Như vậy, lý dó lớn nhất giúp cho chi phí thực hiện cuộc gọiVoIP thấp chính là việc sử dụng tối ưu băng thông
• Tích hợp dịch vụ nhiều dịch vụ: Do việc thiết kế cơ sở hạ tầng tích hợp nên
có khả năng hỗ trợ tất cả các hình thức thông tin cho phép chuẩn hoá tốt hơn vàgiảm thiểu số thiết bị Các tín hiệu báo hiệu, thoại và cả số liệu đều chia sẻ cùngmạng IP Tích hợp đa dịch vụ sẽ tiết kiệm chi phí đầu tư nhân lực, chi phí xâydựng các mạng riêng rẽ
• Thống nhất: Vì con người là nhân tố quan trọng nhưng cũng dễ sai lầm nhất
trong một mạng viễn thông, mọi cơ hội để hợp nhất các thao tác, loại bỏ cácđiểm sai sót và thống nhất các điểm thanh toán sẽ rất có ích Trong các tổ chứckinh doanh, sự quản lý trên cơ sở SNMP (Simple Network Management
Trang 10Protocol) có thể được cung cấp cho cả dịch vụ thoại và dữ liệu sử dụng VoIP.Việc sử dụng thống nhất giao thức IP cho tất cả các ứng dụng hứa hẹn giảm bớtphức tạp và tăng cường tính mềm dẻo Các ứng dụng liên quan như dịch vụdanh bạ và dịch vụ an ninh mạng có thể được chia sẻ dễ dàng hơn.
• Vấn đề quản lý băng thông: Trong PSTN, băng thông cung cấp cho một cuộc
gọi là cố định Trong VoIP, băng thông được cung cấp một cách linh hoạt vàmềm dẻo hơn nhiều Chất lượng của VOIP phụ thuộc vào nhiều yếu tố, quantrọng nhất là băng thông Do đó không có sự bắt buộc nào về mặt thông lượnggiữa các thiết bị đầu cuối mà chỉ có các chuẩn tuỳ vào băng thông có thể củamình, bản thân các đầu cuối có thể tự điều chỉnh hệ số nén và do đó điều chỉnhđược chất lượng cuộc gọi
• Nâng cao ứng dụng và khả năng mở rộng: Thoại và fax chỉ là các ứng dụng
khởi đầu cho VoIP, các lợi ích trong thời gian dài hơn được mong đợi từ cácứng dụng đa phương tiện (multimedia) và đa dịch vụ Tính linh hoạt của mạng
IP cho phép tạo ra nhiều tinh năng mới trong dịch vụ thoại Đồng thời tính mềmdẻo còn tạo khả năng mở rộng mạng và các dịch vụ
• Tính bảo mật cao: VOIP được xây dựng trên nền tảng Internet vốn không an
toàn, do đó sẽ dẫn đến khả năng các thông tin có thể bị đánh cắp khi các gói tin
bị thu lượm hoặc định tuyến sai địa chỉ một cách cố ý khi chúng truyền trênmạng Các giao thức SIP (Session Ineitiation Protocol – giao thức khởi đầuphiên) có thể thành mật mã và xác nhận các thông điệp báo hiệu đầu cuối RTP(Real Time Protocol) hỗ trợ mã thành mật mã của phương thức truyền thôngtrên toàn tuyến được mã hoá thành mật mã đảm bảo truyền thông an toàn
1.2.2 Nhược điểm
• Chất lượng dịch vụ chưa cao: Các mạng số liệu vốn dĩ không phải xây dựng
với mục đích truyền thoại thời gian thực, vì vậy khi truyền thoại qua mạng sốliệu cho chất lượng cuộc gọi không được đảm báo trong trường hợp mạng xảy
ra tắc nghẽn hoặc có độ trễ lớn Tính thời gian thực của tín hiệu thoại đòi hỏichất lượng truyền dữ liệu cao và ổn định Một yếu tố làm giảm chất lượng thoạinữa là kỹ thuật nén để tiết kiệm đường truyền Nếu nén xuống dung lượng càngthấp thì kỹ thuật nén càng phức tạp, cho chất lượng không cao và đặc biệt làthời gian xử lý sẽ lâu, gây trễ
• Vấn đề tiếng vọng: Nếu như trong mạng thoại, độ trễ thấp nên tiếng vọng
không ảnh hưởng nhiều thì trong mạng IP, do trễ lớn nên tiếng vọng ảnh hưởngnhiều đến chất lượng thoại
Trang 11• Kỹ thuật phức tạp: Truyền tín hiệu theo thời gian thực trên mạng chuyển
mạch gói là rất khó thực hiện do mất gói trong mạng là không thể tránh được và
độ trễ không cố định của các gói thông tin khi truyền trên mạng Để có đượcmột dịch vụ thoại chấp nhận được, cần thiết phải có một kỹ thuật nén tín hiệuđạt được những yêu cầu khắt khe: tỉ số nén lớn (để giảm được tốc độ bitxuống), có khả năng suy đoán và tạo lại thông tin của các gói bị thất lạc Tốc
độ xử lý của các bộ Codec (Coder and Decoder) phải đủ nhanh để không làmcuộc đàm thoại bị gián đoạn Đồng thời cơ sở hạ tầng của mạng cũng cần đượcnâng cấp lên các công nghệ mới như Frame Relay, ATM, để có tốc độ caohơn hoặc phải có một cơ chế thực hiện chức năng QoS (Quality of Service) Tất
cả các điều này làm cho kỹ thuật thực hiện điện thoại IP trở nên phức tạp vàkhông thể thực hiện được trong những năm trước đây
Ngoài ra có thể kể đến tính phức tạp của kỹ thuật và vấn đề bảo mậtthông tin (do Internet nói riêng và mạng IP nói chung vốn có tính rộng khắp vàhỗn hợp, không có gì bảo đảm rằng thông tin cá nhân được giữ bí mật)
1.3 Yêu cầu chất lượng đối với VoIP
Từ những nhược điểm chính của mạng chuyển mạch gói đã đặt ra những yêu cầu cho VoIP như sau:
• Chất lượng thoại phải ổn định, độ trễ chấp nhận được
• Mạng IP cơ bản phải đáp ứng được những tiêu chí hoạt động khắt khe gồmgiảm thiểu việc không chấp nhận cuộc gọi, mất mát gói và mất liên lạc Điềunày đòi hỏi ngay cả trong trường hợp mạng bị nghẽn hoặc khi nhiều người sửdụng chung tài nguyên của mạng cùng một lúc
• Việc báo hiệu có thể tương tác được với báo hiệu của mạng PSTN
• Quản lý hệ thống an toàn, địa chỉ hoá và thanh toán phải được cung cấp, tốtnhất là được hợp nhất với các hệ thống hỗ trợ hoạt động PSTN
Trang 12Chương 2 Các giao thức truyền tải trong VoIP
2.1 Giao thức IP
Giao thức mạng IP được thiết kế để liên kết các mạng máy tính sử dụng phươngpháp truyền thông và nhận dữ liệu dưới dạng gói Giao thức IP cho phép truyềncác gói dữ liệu từ điểm nguồn tới điểm đích có địa chỉ cố định Đơn vị dữ liệuđược trao đổi là các gói dữ liệu Các chức năng được thực hiện ở IP là:
• Đánh địa chỉ: tất cả các host trong mạng và trong liên mạng đều được cung cấpmột địa chỉ IP duy nhất Theo giao thức IP version 4, mỗi địa chỉ IP gồm 32bit
và được chia làm 5 lớp A,B,C,D,E Các lớp A,B,C được sử dụng để định danhcác host trên các mạng Lớp được sử dụng cho quá trình truyền đa điểm còn lớp
E để dự phòng
• Định tuyến: giúp xác định đường đi (tuyến)cho gói tin khi được truyền trênmạng Nó giúp lựa chọn đường đi tối ưu cho các gói dữ liệu Nếu hai host cầnliên lạc không nằm trên một subnet thì bảng định tuyến sẽ được sử dụng đểquyết định việc chuyển dữ liệu và các bộ định tuyến thường xuyên trao đổi vàcập nhật thông tin trong bảng định tuyến tùy thuộc vào phương pháp định tuyếnđược sử dụng
• Truyền đa điểm:
Hiện nay có ba cách truyền các gói IP là:
o Truyền một điểm đích (unicast): các gói tin được truyền từ host nguồnđến host đích duy nhất
o Truyền quảng bá: gói tin được truyền đến tất cả các host trong mạng
o Truyền đa điểm: gói tin được gửi đến một số các host nhất định trongmạng
Ngoài ra, giao thức IP còn cung cấp khả năng phân mảnh dữ liệu lớnthành các gói có kích thước nhỏ hơn để truyền qua mạng
2.1.1 Giao thức IP phiên bản 4 (IPv4)
Cấu trúc của header IPv4 như sau:
Trang 13Hình 1 Cấu trúc gói IP phiên bản 4
Ý nghĩa các trường như sau:
• Version: độ rộng 4 bit mô tả phiên bản IP
• IP Header Length(IHL): có độ rộng 4 bit, xác định độ rộng của phần tiêu đềcủa gói tin IP
• Type of Service: có độ rộng 8 bit, xác định các tham số chỉ dịch vụ sử dụngkhi truyền gói tin qua mạng Rất nhiều mạng cung cấp các dịch vụ về độ ưutiên lưu thông, đặc biệt khi mạng bị quá tải Việc lựa chọn này đảm bảođường truyền đạt ba tiêu chuẩn là thời gian trễ, độ tin cậy, bộ thông suốt củagói tin Được mô tả cụ thể như sau:
o Quyền ưu tiên (3 bit)
o Độ trễ D (1 bit)
D=0: độ trễ bình thường
D=1: độ trễ cao
o Thông lượng T (1bit)
T=0: thông lượng bình thường
T=1: thông lượng cao
o Độ tin cậy (1bit):
R=0: độ tin cậy bình thường
R=1: độ tin cậy cao
• Total Length (16bit): xác định độ dài của gói tin kể cả phần tiêu đề Có giátrị tối đa là 65535 byte Thông thường các host chỉ có thể xử lý gói tin có độdài là 576 byte gồm 512 byte dữ liệu và 64 byte tiêu đề Các host chỉ có thểgửi các gói tin cố độ dài lớn hơn 576 byte khi biết trước là host đích có khảnăng xử lý gói này
• Indentification: cùng với trường địa chỉ nguồn, đích dùng để định danh duynhất cho một gói tin trong khoảng thời gian nó tồn tại
• Flag : có độ rộng 3 bit, chỉ độ phân đoạn của gói tin
o Bit 0: luôn bằng 0
o Bit 1 (DF):
DF=0: có phân đoạn
Trang 14 DF=1: không phân đoạn
o Bit 2 (MF):
MF=0: mảnh cuối cùng
MF=1: không phải mảnh cuối cùng
• Fragment Offset: độ rộng 13 bit, chỉ rõ vị trí của phân mảnh trong gói tintính theo đơn vị 64bit
• Time to Live: độ rộng 8 bit, quy định thời gian tồn tại của gói tin
• Protocol: độ rộng 8 bit, xác định giao thức tầng giao vận Ví dụ
o Protocol = 6: giao thức TCP
o Protocol=17: giao thức UDP
• Header Checksum: độ rộng 16 bit, mã kiểm tra CRC-16 của phần tiêu đềcho phát hiệnlỗi
• Source Address: độ rộng 32 bit, xác định địa chỉ nguồn
• Destination Address: độ rộng 32 bit, xác định địa chỉ đích
• Option: có độ dài thay đổi để lưu thông tin tùy biến của người dùng
• Padding: có độ dài thay đổi, đảm bảo độ dài của header luôn là bội 32 bit
• Data: có độ dài tối đa là 65535 byte chứa dữ liệu lớp cao hơn
Đánh địa chỉ trong IPv4
Hệ thống địa chỉ này được thiết kế mềm dẻo qua một sự phân lớp, có 5 lớp địa chỉ IP là: A, B, C, D, E Sự khác nhau cơ bản giữa các lớp địa chỉ này là ở khả năng tổ chức các cấu trúc con của nó
Lớp Nhận dạng Địa chỉ đầu Địa chỉ cuối Mặt nạ mạng
Địa chỉ lớp A: Lớp A sử dụng byte đầu tiên của 4 byte để đánh địa chỉ mạng.
Như hình trên, nó được nhận ra bởi bit đầu tiên trong byte đầu tiên của địa chỉ cótrị giá 0 Ba byte còn lại được sử dụng để đánh địa chỉ máy trong mạng Có 126địa chỉ lớp A với số máy tính trong mạng là 2563 – 2 = 16.777.214 máy cho mỗiđịa chỉ lớp A Địa chỉ lớp A thường được cấp cho những tổ chức có số lượngmáy tính lớn Nguyên nhân chỉ có 126 network trong khi dùng 8 bit vì bit đầu
Trang 15tiên mang giá trị 0 dùng để định nghĩa lớp A Do vậy còn lại 7 bit đánh từ 0 –
127, tuy nhiên người ta không sử dụng một địa chỉ chứa toàn các con số 1 hoặc 0nên chỉ còn lại 126 mạng lớp A được sử dụng Giá trị byte đầu tiên của lớp A sẽluôn nằm trong khoảng từ 1 tới 126, mỗi một byte trong 3 byte còn lại sẽ có giátrị trong khoảng 1 đến 254
Địa chỉ lớp B: Một địa chỉ lớp B được nhận ra bởi 2 bit đầu tiên của byte thứ
nhất mang giá trị 10 Lớp B sử dụng 2 byte đầu tiên của 4 byte để đánh địa chỉmạng và 2 byte cuối đánh địa chỉ máy trong mạng Có 64*256 – 2 = 16.128 địachỉ mạng lớp B với 65.534 máy cho mỗi địa chỉ lớp B
Địa chỉ lớp C: Một số tổ chức có quy mô nhỏ có thể xin cấp phát địa chỉ lớp
C Một địa chỉ lớp C được nhận ra với 3 bit đầu mạng giá trị 110 Mạng lớp C sửdụng 3 byte đầu để đánh địa chỉ mạng và 1 byte cuối đánh địa chỉ máy trongmạng Có 2.097.150 địa chỉ lớp C, mỗi địa chỉ lớp C có 254 máy
Từ các lớp mạng cơ bản trên, ta có thể thực hiện chia subnet cho mạng để tạothành các mạng con (subnet) tùy theo yêu cầu cụ thể Phần dùng để đánh mạngcon được lấy để đánh subnet được lấy từ phần dành đánh địa chỉ host
Hình 2 Quy các địa chỉ IP khi chia subnetKhi đó, để xác định địa chỉ mạng của trạm, ta cần phải biết mặt nạ mạng tươngứng với IP được chia Việc tính toán ra địa chỉ mạng của IP được tính như sau:
Dạng thập phân Dạng nhị phân
Địa chỉ IP của trạm 192.168.5.130 11000000.10101000.00000101.10000010Mặt nạ mạng 255.255.255.192 11111111.11111111.11111111.11000000Địa chỉ mạng 192.168.5.128 11000000.10101000.00000101.10000000
2.1.2 Giao thức IP phiên bản 6 (IPv6)
Trong IPv4 trường địa chỉ nguồn và đích có độ dài 32 bit nên không thểđáp ứng đủ nhu cầu đánh địa chỉ của mạng Ngoài ra, do sự phát triển của
Trang 16Internet, bảng định tuyến của router không ngừng lớn lên và khả năng địnhtuyến đã bộc lộ hạn chế Yêu cầu nâng cao chất lượng dịch vụ và bảo mật đượcđặt ra IPv6 là giao thức Internet mới được kế thừa đặc điểm chính của IPv4 và
có nhiều cải tiến để khắc phục những hạn chế:
• Tăng kích thước địa chỉ từ 32 bit lên 128 bit
• Phạm vi định tuyến đa điểm: giao thức này hỗ trợ phương thức truyền mới
“anycasting” Phương thức này sử dụng để gửi các gói tin đến một nhómxác định
• Phần tiều đề của IPv6 được đơn giản hóa hơn IPv4 Điều đó cho phép xử lýgói tin nhanh hơn Ngoài ra, IPv6 còn cung cấp một số tiêu đề phụ cho phépgiao thức IPv6 có thể sử dụng một cách mềm dẻo hơn hẳn so với IPv4.Cấu trúc gói tin IPv6 như sau:
Hình 3 Cấu trúc gói tin IP phiên bản 6
Ý nghĩa các trường như sau:
• Version: có giá trị bằng 6 với IPv6
• Traffic Class: độ dài 8 bit, xác định độ ưu tiên
• Flow Label: độ dài 20bit, xác định các gói dữ liệu được ưu tiên trên đườngtruyền nếu có xảy ra tranh chấp, thường được sử dụng cho các dịch vụ đòihỏi chất lượng dịch vụ cao hay thời gian thực
• Payload Length: độ dài 16 bit, xác định độ dài phần dữ liệu không tính phầntiêu đề
• Hop Limit: độ dài 8 bit, giống như trường Time to Live của IPv4
• Source Address và Destination Address giống như IPv4 nhưng có độ dài 128bit
• Data: có độ dài tối đa là 65535 byte
2.2 Giao thức TCP/IP
Giao thức TCP là giao thức điều khiển truyền thông hướng kết nối và có
độ tin cậy cao TCP cung cấp là giao thức được xây dựng phức tạp hơn UDP rấtnhiều, ngoài các dịch vụ như UDP, TCP còn cung cấp các dịch vụ khác cho ứngdụng Dịch vụ quan trọng nhất là truyền dữ liệu có độ tin cậy cao, các cơ chế
Trang 17điều khiển lưu lượng và kiểm soát tắc nghẽn, đánh số thứ tự và số thứ tự bênnhận, bộ định thời, Cụ thể TCP cung cấp các dịch vụ sau:
• Thiết lập liên kết: TCP là giao thức hướng kết nối, trước khi gửi dữ liệu cầnthiết lập trước đường truyền (chính là 1 liên kết lôgic giữa hai thực thể TCP),thủ tục này gọi là thủ tục “bắt tay” Liên kết được thiết lập phải đảm bảo tínhchính xác và độ tin cậy, một liên kết khi không còn đủ độ tin cậy thì sẽ bị huỷ
bỏ và thiết lập lại Khi quá trình truyền tin hoàn thành thì kết nối được giảiphóng
• Cung cấp đường truyền hai chiều (song công - full duplex)
• Đảm bảo độ tin cậy: Giao thức TCP cung cấp các tham số kiểm tra cùng với số
thứ tự (Sequence number), xác nhận (ACKnowledge ) và kiểm tra lỗi tổng(Checksum) Các segment được đánh số tuần tự, cách làm này nhằm mục đíchloại bỏ các segment bị trùng lặp hay không đúng yêu cầu Tại bên thu, khi nhậnđược các segment thực hiện việc kiểm tra nhờ trường checksum Nếu segmentnhận được không lỗi hay lặp, tín hiệu ACK sẽ được gửi trả lại bên phát đểkhẳng định dữ liệu nhận tốt Ngược lại nếu segment nhận được bị lỗi hay bịtrùng lặp thì segment này sẽ được loại bỏ và bên thu sẽ gửi một tin hiệu yêu cầubên phát phát lại segment bị lỗi đó, bằng cơ chế này sẽ đảm bảo tính chính xác
và độ tin cậy cho dữ liệu
• Cung cấp các dịch vụ (chức năng) kiểm tra đường truyền, cho phép điều khiển luồng và điều khiển tắc nghẽn
Trong ứng dụng VoIP, giao thức TCP được sử dụng làm giao thứctruyền báo hiệu chứ không phục vụ việc truyền tín hiệu thoại Lý do là vì phầnmào đàu của TCP lớn
Hình 4 Cấu trúc đơn vị dữ liệu TCP
Ý nghĩa các trường như sau:
• Source Port: độ dài 16 bit, xác định số hiệu cổng của trạm nguồn
Trang 18• Destination Port: độ dài 16 bit, xác định số hiệu cổng của trạm đích
• Sequence Number: độ dài 32 bit Số hiệu của byte đầu tiên của segment từkhi bit SYN được thiết lập Nếu bit SYN được thiết lập thì SequenceNumber là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN+1
• ACK Number: độ dài 32 bit, xác định số hiệu của segment tiếp theo mà trạmnguồn đang chờ được xác nhận
• Data Offset: độ dài 4 bit, xác định vị trí bắt đầu của khối dữ liệu lớp trêntrong đơn vị dữ liệu TCP
• Control bit:
o URG: vùng Urgent Pointer có hiệu lực
o ACK: vùng ACK có hiệu lực
o PSH: chức năng Push
o RST: khởi động lại liên kết
o SYN: đồng bộ hóa các số hiệu tuần tự
o FIN: không còn số liệu từ trạm cuối
• Window: cấp phát thẻ bài để kiểm soát luồng dữ liệu theo cơ chế cửa sổ.Đây chính là số lượng các byte dữ liệu bắt đầu từ byte được chỉ ra trongvùng ACK mà trạm nguồn sẵn sàng nhận
• Checksum: mã CRC-16
• Urgent Pointer: con trỏ trỏe tới số hiệu tuần tự của byte đi sau dữ liệu khẩn,cho bên nhận biết được độ dài của dữ liệu khẩn Vùng này có hiệu lực khibit URG được thiết lập
• Option: có độ dài thay đổi, khai báo các lựa chọn của TCP trong đó có độdài tối đa của vùng dữ liệu trong một đơn vị dữ liệu segment
• Padding: đảm bảo phần tiêu đề của TCP luôn là bội 32 bit
• TCP data: chứa dữ liệu lớp trên có giá trị tối đa là 536 byte Giá trị này cóthể thay đổi nhờ khai báo trong Option
Thiết lập và hủy kết nối TCP
Để hiểu được chức năng của hàm connect, accept, close và giúp debugcác ứng dụng TCP bằng chương trình netstat, chúng ta cần hiểu làm thế nào đểthiết lập và hủy một kết nối TCP, cũng như trạng thái của TCP
Trang 19Hình 5 Bắt tay 3 bước trong thiết lập kết nối TCPGiản đồ trên đây diễn ra khi một kết nối TCP được thiết lập:
1) Server đã sẵn sàng accept một kết nối tới Công việc này được thực hiện bằngviệc gọi hàm socket, bind, listen Và được gọi là “passive open” (mở ở trạngthái bị động)
2) Client thiết lập một “active open” bằng cách gọi hàm connect Khi đó, phíaclient sẽ gửi SYN để báo cho server biết số thứ tự của dữ liệu client sẽ gửitrong kết nối Thông thường, SYN không chứa dữ liệu, chỉ chứa tiêu đề IP,TCP và có thể là các tùy chọn TCP
3) Server xác nhận SYN của server Nó sẽ SYN với số thứ tự cho dữ liệu của nó.Server gửi SYN và ACK cho SYN của client trong cùng một segment
4) Client xác nhận SYN của server
Số gói tối thiểu được truyền là ba nên được gọi là there-way handshake (bắt tay
3) Ứng dụng sau khi nhận được end-of-file sẽ close (đóng) socket lại TCP của nó
sẽ gửi FIN
4) TCP của phía yêu cầu hủy kết nối nhận bản tin FIN cuối cùng, xác nhận FIN
Trang 20Hình 6 Hủy kết nối TCPHoạt động của TCP trong thiết lập và hủy cuộc gọi được mô tả bằnglược đồ trạng thái Có 11 trạng thái khác nhau cho một kết nối và luật cho phépchuyển từ trạng thái này sang trạng thái khác dựa trên cơ sở trạng thái đã có Vídụ: nếu một ứng dụng thiết lập một “active open” ở trạng thái CLOSED, TCPgửi SYN và trạng thái mới là SYN_SENT Nếu TCP sau đó nhận được SYNvới ACK, nó sẽ gửi ACK và một trạng thái mới ESTABLISH Trạng thái cuốikhi mà việc truyền dữ liệu diễn ra Hai đường mũi tên chỉ từ trạng tháiESTABLISHED tới trạng thái ngắt kết nối Nếu ứng dụng gọi close trước khinhận FIN, thì trạng thái là FIN_WAIT1 Nhưng nếu ứng dụng nhận FIN trongkhi đang ESTABLISHED, trạng thái sẽ là CLOSE_WAIT.
Một lý do cần thiết phải hiểu được lược đồ trạng thái là để hiểu được 11trạng thái TCP với tên của nó Trạng thái này được hiện bởi netstat, là một công
cụ hữu hiệu trong việc debug ứng client/server
Hình 7 Sơ đồ thay đổi trạng thái thiết lập TCP
Truyền các gói
Trang 21Hình 8 Truyền dữ liệu với TCPHình trên biễu diễn việc truyền gói thực diễn ra cho một TCP hoànchỉnh: thiết lập kết nối, truyền dữ liệu, hủy kết nối Client trong ví dụ này thôngbáo MSS=536(xác định kích thước buffer của nó) và server có kích thước buffer
là 1460 Với mỗi kết nối được thiết lập, client tạo một yêu cầu và gửi nó tớiserver Yêu cầu này được gắn trọn trong chỉ một TCP segment Server xử lý yêucầu và gửi trả lời (kích thước nhỏ hơn 536) Hai gói dữ liệu được biểu diễn bằngđường mũi tên đậm Chú ý rằng ACK của yêu cầu của client được gửi kèm vớitrả lời của server Cách thức này được gọi là piggybacking và thường được thựchiện khi thời gian server xử lý và trả lời nhỏ hơn 200ms Nếu lâu hơn, thì ACK
sẽ được gửi trước khi gửi trả lời Một điều quan trọng trong mô hình này là: Nếuchỉ để gửi một segment yêu cầu đi và nhận một segment trả lời thì cần támsegment khác Nếu UDP được sử dụng, chỉ có hai segment được truyền: yêu cầu,trả lời Nhưng chuyển từ TCP sang UDP thì chúng ta không còn tính tin cậy màTCP cung cấp cho ứng dụng nữa, việc đảm bảo truyền tin sẽ do chương trìnhUDP thực hiện Một yếu tố quan trọng nữa của TCP đó là điều khiển tắc nghẽn
mà ở UDP không có Các ứng dụng thường sử dụng UDP với các dữ liệu nhỏ cầntốc độ truyền cao(độ trễ nhỏ)
Trang 22thì nó sẽ được truyền lại Nếu muốn xác định được rằng gói tin đã tới đích thì cầnrất nhiều tính năng trong ứng dụng: ACK từ đầu cuối khác, điều khiển việctruyền lại, Mỗi một UDP datagram có chiều dài và được truyền lên cùng với dữliệu cho lớp ứng dụng Điều này khác với TCP là giao thức luồng byte (byte-stream protocol) Chúng ta cũng có thể nói: UDP cung cấp dịch vụ không hướngkết nối Ví dụ, client UDP có thể tạo một socket và gửi datagram tới server này
và sau đó gửi một datagram khác cũng tới server khác Cũng giống như serverUDP có thể nhận nhiều datagram trên một socket UDP từ các client khác nhau
Hình 9 Cấu trúc đơn vị dữ liệu UDP
2.4 Giao thức SCTP
Năm 1998, nhóm làm việc của IETF được tập hợp để thiết kế một cơ chế giaovậ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 đã được 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 được đó 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ị làm 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 đượctruyề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ểncuộc gọi
Multihoming: Khi một trạm với nhiều đường 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 tinvớ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ấpnhận được khi có nhiều đường đã có Do TCP chỉ gắn một đường kết nối giữahai đầ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ứctầ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,
Trang 23IETF mở rộng phạm vi của nhóm thiết kế từ một nhóm nhỏ đến một nhómchuyê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 Và khi đó SCTP ra đời với các đặc tínhsau:
Multistreaming: SCTP hỗ trợ đa luồng (stream) bản tin độc lập với nhau trên
một liên kết SCTP Mỗi bản tin được gửi trên đó được gán cho một luồng riêng.Tất cả dữ liệu trong một luồng được nhận theo thứ tự với dữ liệu khác trongluồng Dữ liệu trong các luồng khác nhau thì không có đặc tính này Do vậy,SCTP cung cấp cơ chế cho phép việc nhận dữ liệu có thứ tự một cách cục bộ.Như vậy là nó đã giải quyết được vấn đề head-of-line blocking Ứng dụng của
đa luồng (multistreaming) có thể hỗ trợ các ứng dụng liên quan tới hợp kênh dữliệu như thoại, văn bản, video trên một đường truyền giữa hai đầu cuối thay vì
mở nhiều kết nối TCP cho mỗi luồng
Multihoming: giữa hai đầu cuối trong quá trình thiết lập liên kết có thể xác
định liên kết đa điểm Việc có nhiều giao diện cho phép dữ liệu được tựđộng gửi theo nhiều địa chỉ khác nhau khi có lỗi xảy ra Điều này là hoàntoàn không thể thực hiện được ở TCP vì nó gắn kết một đầu cuối với mộtgiao diện nhất định Nếu như có lỗi xảy ra, tất cả các kết nối được gắn vớigiao diện đó vần có thời gian timeout và được hủy bỏ Và sau đó, ứng dụng
là phải thiết lập lại các kết nối khác
Message Orientation: Trong TCP, dữ liệu được gửi giữa hai đầu cuối là
luồng các byte Nếu cần thiết, ứng dụng phải làm chức năng định dạngkhung (frame) cho bản tin Ở SCTP, bản tin được giữ nguyên định dạng.Tức là nếu tầng ứng dụng phía phát gửi bản tin 100 byte đi thì phía thu cũngnhận được đúng 100 byte UDP cũng cung cấp dịch vụ hướng bản tin nhưngkhông có độ tin cậy cao như SCTP
Un-ordered Service: Đối với TCP, tất cả các bản tin được nhận tin cậy
đúng theo thứ tự được gửi Còn với SCTP, giao thức này cung cấp cơ chếnhận tin không có thứ tự (giữa các luồng song song với nhau) Ở UDP cũngcấp dịch vụ này nhưng không có độ tin cậy như SCTP
Extensibility: Gói TCP bị giới hạn bởi 40 byte trường Option Trái lại, gói
SCTP được mở rộng thông qua việc sử dụng trường TLV Value)
(Tag-Length- Heartbeat/Keep-alive: SCTP có một tùy chọn cho phép xác định thời gian
sống của bản tin Nó cho phép ứng dụng truyền tin xác định khoảng thờigian mà bản tin còn có ích Nếu thời gian này hết hạn trước khi được truyền
Trang 24tin cậy tới phía nhận, thì thực thể SCTP gửi có thể dừng việc cố gửi bản tinhay hủy bỏ bản tin Kiểu tin cậy này gọi là “tin cậy cục bộ” Điều này rấthữu ích như trong truyền tin di động hay ở các game online Việc này sẽgiúp tiết kiệm băng thông đường truyền chống tắc nghẽn.
Syn cookie: SCTP sử dụng bắt tay bốn bước bới việc sử dụng cookie có dấu
hiệu định trước Phía nhận của bản tin thiết lâpk liên kết SCTP mới duy trìtrạng thái no-state (không được cấp tài nguyên) cho tới khi phía khởi tạochứng thực được đó là IP của đối tượng yêu cầu kết nối Cơ chế này chophép chống lại tấn công từ chối dịch vụ bằng cách SYN flooding
Stronger checksum: SCTP cung cấp 32 bit kiểm tra tổng với khả năng phát
hiện lỗi tốt hơn 16 bit ở TCP hay UDP
Advanced TCP services: các dịch vụ mới của TCP như SACK (RFC
2018), Appropriate Byte Counting Byte Counting (RFC 3465) và ExplicitCongestion Notificaion (RFC3168) đã được tích hợp sẵn trong SCTP
Trang 25Bọc các PDU tầng ứng dụng Có Có Không
Giả tiều đề cho checksum Không
(sử dụng vtags) Có Có
SCTP là giao thức hướng kết nối giống như TCP và cũng có việc bắt tay
để thiết lập và hủy kết nối Tuy vậy, việc bắt tay của SCTP khác so với TCP
Hình 10 Thiết lập kết nối SCTP1) Server sẵn sàng chấp nhận một association đến Việc này được thực hiện thôngqua lời gọi hàm socket, bind, listen và được gọi là passive open
2) Client thiết lập một active open bằng cách gọi hàm connect hay gửi một bản tinyêu cầu mở một association Khi đó, SCTP client sẽ gửi bản tin INIT thông báovới server danh sách địa chỉ IP của nó, số hiệu thứ tự, tag thiết lập để xác địnhtất cả các gói là trong một association, số luồng mà client yêu cầu, số luồng vào
mà nó hỗ trợ
3) Server xác nhận bản tin INIT của client với bản tin INIT-ACK chứa danh sáchđịa chỉ IP, số thứ tự thiết lập, tag thiết lập, số luồng mà nó hỗ trợ và một cookietrạng thái Cookie trạng thái chứa tất cả các trạng thái mà server xác nhậnassociation là hợp lệ và được gán số để cho việc xác thực này
Trang 264) Client gửi lại cookie trạng thái của server với bản tin COOKIE-ECHO Bản tinnày chứa dữ liệu người dùng gắn kèm.
5) Server xác nhận rằng cookie là hợp lệ và association được thiết lập với bản tinCOOKIE-ACK Bản tin này cũng chứa dữ liệu người dùng
Hủy association
Không giống như TCP, SCTP không cho phép “half-closed” association.Khi một đầu cuối ngừng thì đầu cuối kia cũng phải dừng gửi dữ liệu mới Phíanhận yêu cầu hủy kết nối gửi nốt dữ liệu đã được xếp hàng trước khi hủy kếtnối SCTP không có trạng thái TIME_WAIT như TCP mà sử dụng tag để làmviệc này Tất cả các chunk được tag hóa với tag gửi trong chunk INIT, mộtchunk từ một kết nối cũ sẽ được nhận với tag sai Như vậy, SCTP sử dụng việcxác nhận giá trị tag trong TIME_WAIT
Hình 11 Hủy kết nối SCTPCác trạng thái trong kết nối SCTP được biểu diễn bằng lược đồ sau:
Trang 27Hình 12 Sơ đồ trạng thái thiết lập SCTP
Sự đồng bộ trong các phương thức truyền thông: Các khoảng lặng trong tiếngnói được triệt và nén lại để giảm thiểu băng thông cần thiết, tuy nhiên khi đếnbên nhận, thời gian giữa các khoảng lặng này phải được khôi phục một cáchchính xác
Sự đồng bộ giữa các phương thức truyền thông: Có thể tín hiệu thoại sử dụngmột phương thức truyền thông trong khi tín hiệu video lại sử dụng một phươngthức truyền thông khác, các tín hiệu tiếng và hình phải được đồng bộ một cáchchính xác, gọi là sự đồng bộ tiếng - hình
Sự nhận diện phương thức truyền tải: Trong Internet, thông thường cần thay đổi
sự mã hoá cho phương thức truyền tải (payload) trên hành trình truyền để hiệuchỉnh thay đổi độ rộng băng thông sẵn sàng hoặc đủ khả năng cho người dùngmới kết nối vào nhóm Một vài cơ chế cần được sử dụng để nhận diện sự mãhoá cho mỗi gói đến
Các dịch vụ cung cấp bởi RTP bao gồm:
Đa phát đáp thân thiện: (multicast – friendly): RTP và RTCP là kỹ thuật cho đaphát đáp, cung cấp khả năng mở rộng cuộc hội thoại nhiều bên Trên thực tế,chúng được thiết kế để có thể hoạt động trong cả các nhóm đa phát đáp nhỏ,phù hợp cho các cuộc điện đàm ba bên Đối với các nhóm lớn, chúng sử dụng
đa phát đáp quảng bá (broadcasting)
Độc lập thiết bị: RTP cung cấp các dịch vụ cần thiết chung cho phương thứctruyền thông thời gian thực nói chung như thoại, video hay bất kì một bộ mãhoá, giải mã cụ thể nào có sự định nghĩa các phương thức mã hoá và giải mãriêng bằng các thông tin tiêu đề và định nghĩa
Các bộ trộn và chuyển đổi: Các bộ trộn là thiết bị nắm giữ phương thức truyềnthông từ một vài người sử dụng riêng lẻ, để trộn hoặc nối chúng vào các dòngphương thức truyền thông chung, chuyển đổi chúng vào khuôn dạng khác vàgửi nó ra Các bộ chuyển đổi có ích cho sự thu nhỏ băng thông yêu cầu củadòng số liệu từ dòng số liệu chung trước khi gửi vào từng kết nối băng thông
Trang 28hẹp hơn mà không yêu cầu nguồn phát RTP thu nhỏ tốc độ bit của nó Điều nàycho phép các bên nhận kết nối theo một liên kết nhanh để vẫn nhận được truyềnthông chất lượng cao RTP hỗ trợ cả các bộ trộn và cả các bộ chuyển đổi.
Mã hoá thành mật mã: Các dòng phương thức truyền thông RTP có thể mã hoá
thành mật mã dùng các khoá, việc mã hoá đảm bảo cho việc thông tin trênmạng được an toàn hơn
Các gói tin truyền trên mạng Internet có trễ và jitter không dự đoánđược Nhưng các ứng dụng đa phương tiện yêu cầu một thời gian thích hợp khitruyền các dữ liệu và phát lại RTP cung cấp các cơ chế bảo đảm thời gian, sốthứ tự và các cơ chế khác liên quan đến thời gian Bằng các cơ chế này RTPcung cấp sự truyền tải dữ liệu thời gian thực giữa các đầu cuối qua mạng
Bản thân RTP không cung cấp một cơ chế nào cho việc bảo đảm phânphối kịp thời các dữ liệu tới các trạm mà nó dựa trên các dịch vụ của tầng thấphơn để thực hiện điều này RTP cũng không đảm bảo việc truyền các gói theođúng thứ tự Tuy nhiên, số thứ tự trong RTP header cho phép bên thu xây dựnglại đúng thứ tự các gói của bên phát
Hoạt động của RTP được hỗ trợ bởi một giao thức khác là RTCP đểnhận các thông tin phản hồi về chất lượng truyền dẫn và các thông tin về thànhphần tham dự các phiên hiện thời Không giống như các giao thức khác là sửdụng các trường trong header để thực hiện các chức năng điều khiển, RTP sửdụng một cơ chế điều khiển độc lập trong định dạng của gói tin RTCP để thựchiện các chức năng này
Khuôn dạng bản tin RTP:
RTP header bao gồm một phần cố định có ở mọi gói RTP và một phần
mở rộng phục vụ cho các mục đích nhất định
Phần cố định:
Trang 29Hình 13 Phần cố định của đơn vị dữ liệu RTP
• Version (2 bits): Chỉ ra version của RTP, hiện nay là version 2.
• Padding (1 bit): Nếu bit này được đặt, sẽ có thêm một vài octets thêm vào cuối
gói dữ liệu Các octets này không phải là thông tin, chúng được thêm vào đểnhằm mục đích:
o Phục vụ cho một vài thuật toán mã hoá thông tin cần kích thước của gói
• Contributing Sources Count (4 bits): số lượng các thành phần nhận dạng nguồn
CSRC nằm trong phần header gói tin Số này lớn hơn 1 nếu các gói tin RTP đến
từ nhiều nguồn
• Marker (1 bit): mang ý nghĩa khác nhau, tuỳ theo từng trường hợp cụ thể, được
chỉ ra trong profile đi kèm
• Payload Type (7 bits): chỉ ra loại tải trọng mang trong gói Các mã sử dụng
trong trường này ứng với các loại tải trọng được quy định trong một profile đikèm
• Sequence Number (16 bits): mang số thứ tự của gói RTP Số này được tăng
thêm 1 sau mỗi gói RTP được gửi đi Có thể được sử dụng để phát hiện được sựmất gói và khôi phục mất gói tại đầu thu Giá trị khởi đầu của trường này làngẫu nhiên
• Time stamp (tem thời gian, 32 bits): Phản ánh thời điểm lấy mẫu của octet đầu
tiên trong gói RTP Thời điểm này được lấy từ một đồng hồ tăng đều đặn vàtuyến tính theo thời gian để cho phép việc đồng bộ và tính toán độ jitter Tần sốđồng hồ này không cố định, tuỳ thuộc vào loại tải trọng Giá trị khởi đầu đượcchọn ngẫu nhiên Một vài gói RTP có thể mang cùng một giá trị “Tem thờigian” nếu như chúng được phát đi cùng lúc về mặt logic Nếu gói dữ liệu đượcphát ra đều đặn thì “tem thời gian” được tăng một cách đều đặn Trong trườnghợp khác thì giá trị “tem thời gian” tăng không đều
Trang 30“Tem thời gian” là thành phần thông tin quan trọng nhất trong các ứngdụng thời gian thực Người gửi thiết lập các “tem thời gian” ngay thời điểmoctet đầu tiên của gói được lấy mẫu “Tem thời gian” tăng dần theo thời gianđối với mọi gói Sau khi nhận được gói dữ liệu, bên thu sử dụng các “tem thờigian” này nhằm khôi phục thời gian gốc để chạy các dữ liệu này với tốc độthích hợp Ngoài ra, nó còn được sử dụng để đồng bộ các dòng dữ liệu khácnhau (chẳng hạn như giữa hình và tiếng) Tuy nhiên RTP không thực hiện đồng
bộ mà các ứng dụng phía trên sẽ thực hiện sự đồng bộ này
• Synchronization Source Identifier (SSRC, 32 bits): chỉ ra nguồn đồng bộ của
gói RTP, số này được chọn ngẫu nhiên Trong 1 phiên RTP có thể có nhiều hơnmột nguồn đồng bộ Mỗi một nguồn phát ra một luồng RTP Bên thu nhóm cácgói của cùng một nguồn đồng bộ lại với nhau để phát lại tín hiệu thời gian thực
• Contributing Source Identifier (CSRC, từ 0-15 mục, mỗi mục 32 bits): chỉ ra
những nguồn đóng góp thông tin vào phần tải trọng của gói Giúp bên thu nhậnbiết được gói tin này mang thông tin của những nguồn nào
Hình 14 Ví dụ về Cấu trúc gói RTP
Phần mở rộng: có độ dài thay đổi Sự tồn tại phụ thuộc vào bit Extension của
phần cố định
Hình 15 Phần mở rộng cấu trúc dữ liệu RTP
Trang 31• 16 bit đầu tiên được sử dụng với mục đích riêng cho từng ứng dụng được địnhnghĩa bởi profile Thường được dùng để phân biệt các loại header mở rộng.
• Length (16 bits): giá trị chiều dài phần header mở rộng tính theo đơn vị 32 bit,
không bao gồm 32 bit đầu tiên của phần header mở rộng
Cơ chế mở rộng của RTP cho phép các ứng dụng riêng lẻ của giao thứcRTP thực hiện được với những chức năng mới đòi hỏi những thông tin thêmvào phần header của gói Cơ chế này được thiết kế để một vài ứng dụng có thể
bỏ qua phần header mở rộng này (mà vẫn không ảnh hưởng tới hoạt động)trong khi một số ứng dụng khác lại có thể sử dụng được phần đó
Bộ phận nhận dạng tải xác định kiểu định dạng của tải tin cũng như cách
mã hoá và nén Từ các bộ phận định dạng này, các ứng dụng phía thu biết cáchphân tích và chạy các dòng dữ liệu tải tin Tại một thời điểm bất kỳ trong quátrình truyền tin, các bộ phát RTP chỉ có thể gửi một dạng của tải tin cho dùdạng của tải tin có thể thay đổi trong thời gian truyền (thay đổi để thích ứng với
sự tắc nghẽn của mạng)
Một chức năng khác của RTP là xác định nguồn: cho phép phía thu biếtđược dữ liệu đến từ đâu Ví dụ trong thoại hội nghị, từ thông tin nhận dạngnguồn một người sử dụng có thể biết được ai đang nói
RTP được cố tình để cho không hoàn thiện Nó chỉ cung cấp các dịch vụphổ thông nhất cho hầu hết các ứng dụng truyền thông hội nghị đa phương tiện.Mỗi một ứng dụng cụ thể đều có thể them vào RTP các dịch vụ mới sao chophù hợp với các yêu cầu của nó Các khả năng mở rộng này được mô tả trongmột profile đi kèm Profile này còn chỉ ra các mã tương ứng sử dụng trongtrường PT (Payload Type) của phần tiêu đề RTP ứng với các loại tải trọngmang trong gói
RTP nằm ở phía trên UDP, sử dụng các chức năng ghép kênh và kiểmtra của UDP Sở dĩ UDP được sử dụng làm thủ tục truyền tải cho RTP là bởi vì