GIAO THỨC SIP ( SESSION INITIATION PROTOCOL : GIAO THỨC BÁO HIỆU ĐIỀU KHIỂN) BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP. HCM ĐỀ ÁN CƠ SỞ NGÀNH MẠNG MÁY TÍNH TRIỂN KHAI HỆ THỐNG VOICE H.323 & SIP Giáo viên hướng dẫn: Ths.Nguyễn Đức Quang Người thực hiện: Nguyễn Văn Sáng MSSV: 1031020010x TP. Hồ Chí Minh, 2013 MỤC LỤC Lời Mở Đầu…………………………………………………………….04 I. Giới thiệu về công nghệ VoIP………………………………………….......04 1. Giới thiệu chung về VoIP…………………………………………………………04 1.1 Tổng quan.…………………………………………………………………….04 1.2 Ưu điểm và nhược điểm VoIp…………………………………………….......07 II. Tổng quan về giao thức H.323…………………………………………. 1. Cơ sở xây dựng H.323………………………………………………………… 2. Định nghĩa…………………………………………………………………….. 3. Cấu trúc và các thành phần của H.323……………………………………….. 3.1. Thiết bị đầu cuối H.323 (H.323 Terminal)………………………………. 3.2. H.323 Gateway…………………………………………………………... 3.4. Đơn vị điều khiển liên kết đa điểm (MCU- Multipoint ControlUnit)….. 4. H.323 Xone…………………………………………………………………….. 5. Bộ giao thức H.323……………………………………………………………. 6. Thiết lập và giải phóng cuộc gọi cho H.323…………………………………... 7. H.323 cho IP Telephone………………………………………………………. III. Tổng quan về giao thức SIP………………………………………… 1. Tổng quan về RFC…………………………………………………………… 2. Tổng quan về giao thức SIP…………………………………………………. 3. Nguồn gốc sự phát triển của SIP…………………………………………….. 4. Các thành phần bên trong mạng SIP………………………………………… 4.1 SIP User Agent…………………………………………………………... 4.2 SIP Server………………………………………………………………... 4.3 Mối liên hệ giữa các thành phần trong mạng SIP……………………….. 5. Bản tin SIP……………………………………………………………………. 5.1 SIP Response……………………………………………………………... 5.2 SIP Request……………………………………………………………….. 5.3 Các trường Header………………………………………………………... 5.4 Message Body…………………………………………………………….. 5.5 Cấu trúc bản tin SIP………………………………………………………. 6. Chức năng của SIP……………………………………………………………. 6.1 Thiết lập,sửa đổi và kết thúc phiên………………………………………. 6.2 Tính di động của người sử dụng…………………………………………. 7. Thiết lập và hủy cuộc gọi SIP…………………………………………………. 8. Các giao thức hỗ trợ trong SIP………………………………………………… 8.1 RSVP (Reource Revervation Protocol): Giao thức chiếm trước tài nguyên mạng………………………………………………………………………………. 8.2 RTP (Real Time Tranpsport Protocol): Giao thức vận chuyển thời gian thực 8.3 RTCP (Real-Time Transport Control Protocol): odd port-port lẻ………… 8.4 RTSP (Real Time Streaming Protocol): Giao thức tạo luồng thời gian thực. 8.5 SDP (Session Description Protocol): Giao thức mô tả phiên kết nối đa phương tiện………………………………………………………………………………….. 8.6 MIME (Multipurpose Internet mail Extension): Mở rộng thư tín Internet đa mục đích……………………………………………………………………………. 8.7 HTTP (Hypertext Transfer protocol): Giao thức truyền siêu văn bản…….. IV. Demo 1. Mục tiêu và mô hình……………………………………………………………. 2. Công cụ Demo………………………………………………………………….. 3. Các bước………………………………………………………………………... 4. Kết luận………………………………………………………………………… DANH MỤC CÁC TỪ VIẾT TẮT Kí hiệu viết tắt Viết đầy đủ Ý nghĩa VoIP Voice over IP Công nghệ truyền thoại trên mạng IP PSTN Public Switch Telephone Network Mạng điện thoại công cộng PCM Pulse-Code Modulation Bộ mã hóa mã xung SNMP Simple Network 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 ATM Asynchronous Transfer Mode Chế độ truyền không đồng bộ QoS Quality of Service Chất lượng 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ùng SCTP Stream Control Transmission Protocol Giao thức truyền điều khiển luồng RSVP Reource Revervation Protocol Giao thức chiếm trước tài nguyên mạng RTP Real Time Tranpsport Protocol Giao thức vận chuyển thời gian thực RTCP Real-Time Transport Control Protocol odd port-port lẻ RTSP Real Time Streaming Protocol Giao thức tạo luồng thời gian thực SDP Session Description Protocol Giao thức mô tả phiên kết nối đa phương tiện MIME Multipurpose Internet mail Extension Mở rộng thư tín Internet đa mục đích HTTP Hypertext Transfer protocol Giao thức truyền siêu văn bản ITU-T International Telecommunication Union- Telecommunication Standardization Sector Hiệ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ái SAP Session Announcement Protocol Giao thức thông báo phiên SDP Session Description Protocol Giao thức mô tả phiên SS7 Signaling System No.7 Hệ thống báo hiệu số 7 MTP Message Tranfer Part Phần truyền bản tin TUP Telephone User Part Phần người dùng điện thoại ISDN Integrated Services Digital Network Mạng tích hợp dịch vụ số SCCP Signaling Connection Control Part Phần điều khiển kết nối báo hiệu LỜI CẢM ƠN Trước hết em xin gửi tới thầy giáo Ths. Nguyễn Đức Quang, lời cảm ơn chân thành và sâu sắc đã trực tiếp hướng dẫn, chỉ bảo tận tình trong suốt quá trình em làm đề án này. LỜI MỞ ĐẦU Trước đây khi đề cập đến VoIP, tiêu chuẩn quốc tế thường đề cập đến là H.323. Giao thức H.323 là chuẩn do ITU-T phát triển cho phép truyền thông đa phương tiện qua các hệ thống dựa trên mạng chuyển mạch gói, tập giao thức H.323 bao gồm rất nhiều giao thức con bên trong nó như H.245, H225, Q.931… hoạt động dựa trên H.323 là rất chặt chẽ và phức tạp. Những năm trở lại đây thì giao thức ATM lại chiếm ưu thế và dần dần thay thế H.323. I. 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ực hiện cuộc thoại qua Internet đầu tiên trên thế giới. Sau đó có nhiều công ty đã tham gia vào lĩnh vực này. Tháng 3 năm 1996, VOLCALTEC kết hợp với DIALOGIC tung ra thị 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ại qua 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ạng Internet. 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ệ cho phé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ạng Internet. VoIP là một trong những công nghệ viễn thông đang được quan tâm nhất hiệ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ênh truyề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ào nghiê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ói chung 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ập mộ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ạm cho 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ết lậ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ỏ. • 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ển mạch kênh đơn giản, có tính ổn định cao, chống nhiễu tốt. Nhưng ta cũng không thể 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ác thô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 trạm đích. Vì kỹ thuật chuyển mạch gói trong quá trình truyền tin có thể được định tuyến động để truyền tin. Điều khó khăn nhất đối với chuyển mạch gói là việc tập hợp các gói tin để tạo bản tin ban đầu; đặc biệt là khi các gói tin được truyền theo nhiều con đường khác nhau tới trạm đích. Chính vì lý do trê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ống lặ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ền tin, các gói tin sắp hàng và truyền theo tốc độ rất nhanh trên đường truyền. • 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 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ông cầ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ập Internet. Một giá cước chung sẽ thực hiện được với mạng Internet và do đó tiết kiệm đáng kể các dịch vụ thoại và fax. Sự chia sẻ chi phí thiết bị và thao tác giữ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ụng mạng. Đồng thời kỹ thuật nén thoại tiên tiến làm giảm tốc độ bit từ 64Kbps xuống dưới 8Kbps, tức là một kênh 64Kbps lúc này có thể phục vụ đồng thời 8 kê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ọi VoIP 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ùng mạ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ây dự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ức kinh doanh, sự quản lý trên cơ sở SNMP (Simple Network Management Protocol) 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ớt phứ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ố, quan trọ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ượng giữ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ủa mì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ềm dẻ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ên mạng. Các giao thức SIP (Session ineitiation Protocol – giao thức khởi đầu phiê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ông trê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ỏi chấ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ại nữa là kỹ thuật nén để tiết kiệm đường truyền. Nếu nén xuống dung lượng càng thấ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ưởng nhiều đến chất lượng thoại. • 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ó được mộ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 độ bit xuố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àm cuộ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 được nâng cấp lên các công nghệ mới như Frame Relay, ATM,... để có tốc độ cao hơ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ật thô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ồm giả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ều nà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ốt nhất là được hợp nhất với các hệ thống hỗ trợ hoạt động PSTN. II. GIAO THỨC BÁO HIỆU H.323 1. Cơ sở xây dựng H.323 - Đầu năm 1996 một nhóm các công ty lớn (Microsoft, Intel...) đã tổ chức hội nghị Voice over IP nhằm thống nhất tiêu chuẩn cho các sản phẩm của các nhà cung cấp. Đến tháng 5/1996, ITU-T phê chuẩn đặc tả H.323. Chuẩn H.323 cung cấp nền tảng kỹ thuật cho truyền thoại, hình ảnh và số liệu một cách đồng thời qua các mạng IP, bao gồm cả Internet. Tuân theo chuẩn H.323, các sản phẩm và các ứng dụng đa phương tiện từ nhiều hãng khác nhau có thể hoạt động cùng với nhau, cho phép người dùng có thể thông tin qua lại mà không phải quan tâm tới vấn đề tương thích. - H.323 cũng đồng thời giải quyết các ứng dụng cốt lõi của điện thoại IP thông qua việc định nghĩa tiêu chuẩn về độ trễ cho các tín hiệu âm thanh, định nghĩa mức ưu tiên trong việc chuyển tải các tín hiệu yêu cầu thời gian thực trong truyền thông Internet. (H.324 định nghĩa việc truyền tải các tín hiệu âm thanh, hình ảnh và dữ liệu qua mạng điện thoại truyền thống, trong khi đó H.320 định nghĩa tiêu chuẩn cho truyền tải các tín hiệu âm thanh, hình ảnh và dữ liệu qua mạng tổ hợp đa dịch vụ ISDN). - Đến nay H.323 đã phát triển thông qua hai phiên bản. Phiên bản thứ nhất (Version 1) được thông qua vào năm 1996 và phiên bản thứ hai (Version 2) được thông qua vào tháng một năm 1998. ứng dụng của chuẩn này rất rộng bao gồm cả các thiết bị hoạt động độc lập (stand-alone) cũng như những ứng dụng truyền thông nhúng trong môi trường máy tính cá nhân, có thể áp dụng cho đàm thoại điểm-điểm cũng như cho truyêng thông hội nghị. H.323 còn bao gồm cả chức năng điều khiển cuộc gọi, quản lý thông tin đa phương tiện và quản lý băng thông đồng thời còn cung cấp giao diện giữa mạng LAN và các mạng khác. - Hiện nay, hầu hết các nhà sản xuất, các ITSP (Internet Telephony Service Provider: Nhà cung cấp dịch vụ điện thoại Internet) đều chấp nhận sử dụng tiêu chuẩn H.323 của ITU_T làm nền tảng để phát triển công nghệ VoIP. Điều này cho phép các thiết bị của các nhà sản xuất khác nhau có thể làm việc tương thích với nhau. Đây là một vấn đề lớn khi triển khai bất kì một công nghệ mới nào. 2. Định nghĩa : H.323 là chuẩn của ITU_T quy định về các thiết bị, giao thức và thủ tục để cung cấp các dịch vụ thông tin đa phương tiện thời gian thực trên các mạng chuyển mạch gói, bao gồm cả mạng IP. H.323 là một tập hợp các khuyến nghị, bao gồm các chuẩn nén tiếng nói như G.729, G.723.1, chuẩn truyền dẫn thời gian thực như RTP (Real Time Protocol), các chuẩn báo hiệu như H.225, H.245. Đầu cuối H.323 trên chuyển mạch gói Tuy nhiên, do H.323 là chuẩn của truyền thông tin multimedia trên mạng chuyển mạch gói, cụ thể ban đầu là các mạng LAN, nên cần phải bổ sung một số điểm để phù hợp với mục đích truyền tin thoại thời gian thực trên các mạng IP, đặc biệt là mạng Internet. Vấn đề nén tiếng nói, các sản phẩm hiện nay trên thị trường thường dùng đồng thời các chuẩn G.729, G.711, G.723.1 ... để truyền mỗi kênh thoại với tốc độ khoảng 10 kbit/s (chuẩn H.323 ban đầu là 64 kbit/s). Phía phát và phía thu sẽ có một cơ chế trao đổi để xác định chuẩn nén tiếng nói được sử dụng. 3. Cấu trúc và các thành phần của H.323 Cấu trúc H.323 có thể được sử dụng một cách thông dụng ở mạng LAN hoặc mạng gói diện rộng. Bất kỳ một mạng gói không đủ tin cậy không có đảm bảo về chất lượng dịch vụ hoặc có độ trễ đều có thể sử dụng H.323. Không những thế, các khả năng của H.323 có thể mở rộng cho WAN nếu các kết nối được thiết lập giữa các thiết bị H.323, đây chính là chức năng chính của các thiết bị Gatekeeper H.323, các thiết bị này là tuỳ chọn ở H.323, nếu không có các Gatekeeper tất cả các thiết bị phải có khả năng tự đưa ra các bản tin báo hiệu trực tiếp. Mọi kết nối WAN đềuđược xử lý bằng một hoặc nhiều GATEWAY H.323 và các GATEWAY H.323 có thể phù hợp hoạt động với các loại thiết bị khác nhau trong các cấu trúc mạng khác nhau. H.323 có thể được sử dụng với PSTN toàn cầu, N- ISDN (tốc độ nhỏ hơn 1,5 Mbs hoặc 2 Mbs), B- ISDN sử dụng ATM (tốc độ nhỏ hơn 1,5 Mbs hoặc 2 Mbs) thậm chí một đầu cuối thoại cũng có thể tham gia vào H.323 nhưng chỉ với khả năng audio. Khi H.323 được sử dụng với N- ISDN điện thoại ISDN hoặc các kết nối H.320 cũng được sử dụng. H.320 mô tả sự sắp xếp các kết cuối đối với hệ thống thoại N-ISDN, các thiết bị này thường được dùng cho các dịch vụ video conference và video phone. Nếu có một mạng LAN được gắn liền với ISDN đảm bảo chất lượng mặc định của các tham số dịch vụ, khi đó H.323 là đầu cuối gắn liền với mạng trong đó đường truyền bao gồm 1 hoặc nhiều mạng LAN, mỗi mạng LAN được cấu tạo để cung cấp một chất lượng dịch vụ QoS tương ứng với chất lượng N- ISDN. Những mạng B-ISDN dựa trên ATM có thể dùng để kết cuối H.321 video/audio. B - ISDN cũng có thể dùng cấu hình kết cuối H.310 hoạt động trong H.321. Các kết cuối H.310 là một kiểu kết cuối audio/visual tận dụng được cả B - ISDN và ATM về mặt dịch vụ và báo hiệu. Tóm lại, bên cạnh H.323 còn có thêm một số giao diện khác có một số ứng dụng khác nhau và người ta phân chúng ra cho các ứng dụng cụ thể: H.320 dùng cho xác định các loại đầu cuối; H.321 dùng cho B- ISDN và ATM; H.322 cho QoS các mạng LAN; H.323 dùng cho hội nghị; H.324 dành cho các kết nối thoại 33,6 Kbs. Khi dùng cho thoại IP, H.323 gồm cả các cuộc gọi VoIP được thực hiện giữa các kết cuối H.323 và GATEWAY H.323. Các dòng thông tin trong hệ thống H.323 được chia thành các loại sau: · Audio (thoại): là tín hiệu thoại được số hoá và mã hoá. Để giảm tốc độ trung bình của tín hiệu thoại, cơ chế phát hiện tích cực thoại có thể được sử dụng. Tín hiệu thoại được đi kèm với tín hiệu điều khiển thoại. · Video (hình ảnh): là tín hiệu hình ảnh động cũng được số hoá và mã hoá. Tín hiệu video cũng đi kèm với tín hiệu điều khiển video. · Số liệu: bao gồm tín hiệu fax, tài liệu văn bản, ảnh tĩnh, file... · Tín hiệu điều khiển truyền thông (Communication Control Signals) là các thông tin điều khiển trao đổi giữa các thành phần chức năng trong hệ thống để thực hiện điều khiển truyền thông giữa chúng như: trao đổi khả năng, đóng mở các kênh logic, các thông điệp điều khiển luồng và các chức năng khác. · Tín hiệu điều khiển cuộc gọi (Call Control Signals) được sử dụng cho các chức năng điều khiển cuộc gọi như thiết lập cuộc gọi, kết thúc cuộc gọi ... · Tín hiệu kênh RAS (Random Access Signal) được sử dụng để thực các chức năng: đăng ký tham gia vào một vùng H.323, kết nạp/ tháo gỡ một điểm cuối khỏi vùng. Thay đổi băng thông và các chức năng khác liên quan đến quản lý hoạt động của các điểm cuối trong một vùng H.323. Hình: Cấu trúc H.323 và các thành phần H.323 · Về mặt logic, hệ thống H.323 bao gồm các thành phần 3.1. Thiết bị đầu cuối H.323 (H.323 Terminal): là một trạm đầu cuối trong mạng LAN, đảm nhận việc cung cấp truyền thông hai chiều theo thời gian thực. Hình 3.1 miêu tả các thành phần chức năng của một thiết bị đầu cuối H.323. - Các phần giao tiếp với người sử dụng. - Các bộ codec (Audio và video). - Phần trao đổi dữ liệu từ xa (telematic). - Lớp (layer) đóng gói (chuẩn H.225.0 cho việc đóng gói multimedia). - Phần chức năng điều khiển hệ thống - Và giao diện giao tiếp với mạng LAN. Tất cả các thiết bị đầu cuối H.323 đều phải có một đơn vị điều khiển hệ thống, lớp đóng gói H.225.0, giao diện mạng và bộ codec thoại. Bộ codec cho tín hiệu video và các ứng dụng dữ liệu của người sử dụng là tuỳ chọn (có thể có hoặc không). - Giao diện với mạng LAN (LAN Interface): Giao diện với mạng LAN phải cung cấp các dịch vụ sau cho lớp trên (lớp đóng gói dữ liệu multimedia H.225.0): Dịch vụ thông tin tin cậy đầu cuối đến đầu cuối (ví dụ như TCP hay SPX). Dịch vụ này phục vụ cho kênh điều khiển H.245 và kênh dữ liệu. Dịch vụ truyền thông tin không tin cậy đầu cuối đến đầu cuối (ví dụ như UDP hay IPX). Dịch vụ này phục vụ cho các kênh Audio, các kênh Video, và kênh điều khiển RAS. Các dịch vụ này có thể là song công hay bán song công, thông tin unicast hay multicast tuỳ thuộc vào ứng dụng, khả năng của thiết bị đầu cuối và cấu hình của mạng LAN. - Bộ codec video (Video codec): Bộ video codec là thành phần tuỳ chọn, cung cấp cho thiết bị đầu cuối khả năng truyền video. - Bộ codec thoại (audio codec): Tất cả các thiết bị đầu cuối H.323 đều phải có thành phần này. Nó đảm nhận chức năng mã hoá và giải mã tín hiệu thoại. Chức năng mã/giải mã dòng thoại PCM 64kbps luật A và luật ( (theo khuyến nghị G.711) là bắt buộc. Ngoài ra bộ codec có thể có thêm chức năng mã/giải mã thoại theo các thuật toán khác gồm: CS-ACELP (khuyến nghị G.729 và G.729A), ADPCM (khuyến nghị G.723), LD-CEPT (G.728), mã hoá băng rộng (G.722). Với các bộ codec thoại có nhiều khả năng mã hoá, thuật toán được sử dụng cho mã/giải mã thoại sẽ được đàm phán giữa các terminal tham gia cuộc đàm thoại (quá trình này được gọi là trao đổi khả năng). Trong trường hợp này terminal phải có khả năng hoạt động không đối xứng (ví dụ như mã hoá tín hiệu phát sử dụng theo khuyến nghị G.711 (PCM64), giải mã tín hiệu thu được theo G.728 (LD-CEPT)). Thiết bị đầu cuối Terminal có thể gửi đi nhiều kênh thoại cùng một lúc tuỳ thuộc vào ứng dụng. Các gói thoại phải được gửi lên tầng giao vận (transport layer) một các định kỳ theo những khoảng thời gian được xác định bởi chức năng codec nào đang được sử dụng (khoảng thời gian của khung tín hiệu thoại). Sự phân phối gói thoại lên lớp trên (lớp giao vận) không được muộn hơn 5ms sau khi kết thúc khoảng thời gian của khung thoại trước đó. Thiết bị đầu cuối H.323 có thể thu một vài kênh thoại (đàm thoại hội nghị). Trong trường hợp này, terminal cần thực hiện chức năng trộn các kênh thoại lại thành một kênh hỗn hợp đưa đến người sử dụng (Audio Mixing). Số lượng các kênh thoại bị hạn chế căn cứ vào tài nguyên sẵn có của mạng. - Trễ chiều thu: Chức năng trễ chiều thu bao gồm việc thêm vào dòng thông tin thời gian thực một độ trễ để đảm bảo duy trì sự đồng bộ và bù độ jitter của các gói đến. Độ trễ thêm vào phải tính đến thời gian trễ do xử lý tín hiệu khi thu. Dòng tín hiệu chiều phát không được làm trễ. - Kênh số liệu (Data Channel): Kênh dữ liệu trong thiết bị đầu cuối H.323 là không bắt buộc. Kênh dữ liệu có thể là đơn hướng hay hai hướng tuỳ thuộc vào từng ứng dụng. Nền tảng của ứng truyền số liệu trong thiết bị đầu cuối H.323 là chuẩn T.120. Trong luận án phần này cũng không được mô tả chi tiết. - Chức năng điều khiển truyền thông multimedia (chuẩn H.245): Chức năng điều khiển truyền thông sử dụng kênh điều khiển truyền thông H.245 để truyền tải các thông điệp điều khiển hoạt động truyền thông đầu cuối tới đầu cuối bao gồm: + Trao đổi khả năng (Capabilities Exchange). + Đóng mở các kênh logic cho tín hiệu media (tín hiệu thời gian thực) - Chức năng báo hiệu RAS (Registration - Admission - Status): Chức năng báo hiệu RAS sử dụng các thông điệp H.225.0 để thực hiện các thủ tục điều khiển giữa termnal và gatekeeper, bao gồm: + Khám phá gatekeeper. + Đăng ký (registration) tham gia vào vùng H.323. + Định vị điểm cuối. + Điều khiển kết nạp, tháo gỡ (Admission/Desengage). + Thay đổi băng thông sử dụng(bandwidth changes). + Thông báo trạng thái (status). - Chức năng báo hiệu cuộc gọi: Chức năng báo hiệu cuộc gọi sử dụng báo hiệu cuộc gọi H.225.0 (Q.931) để thiết lập kết nối giữa các điểm cuối H.323. - Lớp đóng gói thông tin (H.225.0 layer): Các kênh logic mang thông tin thoại, video, số liệu hay thông tin điều khiển được thiết lập theo các thủ tục điều khiển mô tả trong khuyến nghị H.245. Các kênh logic hầu hết là đơn hướng và độc lập trên mỗi hướng truyền. Một vài kênh lôgic như kênh số liệu có thể là hai hướng và liên quan đến thủ tục mở kênh hai hướng của H.245. Một số lượng bất kỳ các kênh logic có thể được sử dụng để truyền ngoại trừ kênh điều khiển H.245 (chỉ có một kênh cho mỗi cuộc gọi). Ngoài ra các điểm cuối H.323 còn sử dụng thêm hai kênh cho báo hiệu cuộc gọi và các chức năng liên quan đến gatekeeper (RAS). a. Số kênh logic (Logical Channel Number - LCN): Mỗi một kênh logic được chỉ ra bởi một số kênh logic (LCN) trong khoảng từ 0 cho đến 65535 nhằm mục đích phù hợp với kênh logic tương ứng trong kết nối tầng giao vận. Số kênh logic được bên phát chọn một cách tuỳ tiện ngoại trừ kênh logic 0 được dành riêng cho kênh điều khiển h.245. b. Giới hạn tốc độ bit của kênh logic: Băng thông của một kênh logic phải được giới hạn bởi một giá trị cận trên suy ra từ khả năng phát tối thiểu và khả năng thu của thiết bị đầu cuối. Dựa trên giới hạn này, một thiết bị đầu cuối phải mở kênh logic với tốc độ giới hạn kênh thấp hơn hoặc bằng cận trên đó và bên phát có thể phát bất cứ dòng thông tin nào có tốc độ không quá tốc độ giới hạn của kênh. Tốc độ giới hạn kênh chỉ ra tốc độ của dòng dữ liệu mang thông tin nội dung của kênh mà không bao gồm các phần mào đầu giao thức. Khi thiết bị đầu cuối không có thông tin nào để gửi đi trong một kênh thì thiết bị đầu cuối không cần phải gửi đi các thông tin lấp vào để duy trì tốc độ của kênh. 3.2 . H.323 Gateway : · Gateway ( GW) là thành phần dùng để kết nối 2 mạng khác loại nhau. Một cổng H323 dùng để liên kết mạng H323 với mạng không phải mạng chuẩn H.323. Việc kết nối giữa 2 mạng khác loại nhau thực hiện được nhờ việc dịch các giao thức ( protocol translation) khác nhau cho quá trình thiết lập và giải tỏa cuộc gọi, việc chuyển đổi dạng thông tin giữa các mạng khác nhau và việc truyền thông tin giữa các mạng kết nối với GW. · Tuy nhiên một GW sẽ không cần thiết lập cho việc liên lạc giữa các đầu cuối thuộc cùng mạng H.323. · Cấu tạo của một GW bao gồm : 1 Media Gateway Controller (MGC), Media Gateway (MG) và Signaling Gateway (SG) được minh họa trong hình vẽ * Các đặc tính cơ bản của một GW : · Một GW phải hỗ trợ các giao thức hoạt động trong mạng H.323 và mạng sử dụng chuyển mạch kênh ( SCN – Switched Circuit Network ) · Về phía H.323, GW phải hỗ trợ báo hiệu điều khiển H.245 cho quá trình trao đổi khả năng hoạt động của terminal cũng như của GW, báo hiệu cuộc gọi H.225, báo hiệu RAS. · Về phía SCN, GW phải hỗ trợ các giao thức hoạt động trong mạng chuyển mạch kênh ( như SS7 sử dụng trong PSTN ). · Các giao thức mà một GW phải hỗ trợ được minh họa trong hình vẽ : Hình : Chồng giao thức của một Gateway * Các chức năng của Gateway : - Chuyển đổi giữa các dạng khung truyền dẫn. - Chuyển đổi giữa các thủ tục giao tiếp. - Chuyển đổi giữa các dạng mã hoá khác nhau của các luồng tín hiệu hình ảnh cũng như âm thanh. - Thực hiện việc thiết lập và xoá cuộc gọi ở cả phía mạng LAN cũng như phía mạng chuyển mạch SCN. - Gateway khi hoạt động sẽ có đặc điểm của một thiết bị đầu cuối H.323 hoặc một MCU trong mạng LAN và có đặc điểm của một thiết bị đầu cuối trong SCN hoặc một MCU trong SCN. 3.3. Gatekeeper. Một Gatekeeper ( GK ) được xem là bộ não của mạng H.323, nó chính là điểm trung tâm cho mọi cuộc gọi trong mạng H.323. Mặc dù là thành phần tùy chọn nhưng GK cung cấp các dịch vụ quan trọng như việc dịch địa chỉ, sự ban quyền và nhận thực cho đầu cuối terminal và GW quản lý băng thông, thu thập số liệu và tính cước. Ngoài ra nó cũng cung cấp dịch vụ định tuyến cuộc gọi. Đây là một chức năng có rất nhiều ưu điểm vì quá trình giám sát cuộc gọi cũng như định tuyến qua GK sẽ cung cấp hoạt động mạng tốt hơn. Điều này là do việc GK đưa ra quyết định định tuyến dựa trên rất nhiều yếu tố, ví dụ như yếu tố cân bằng tải giữa các GW. Hình 4.3 : Chức năng của một Gatekeeper Các chức năng cần thiết của một GK : · Dịch địa chỉ ( Address Translation ) : một cuộc gọi đi trong mạng H.323 có thể dùng bí danh ( alias ) để chỉ địa chỉ của đầu cuối đích ( destination terminal ). Do đó ta cần phải sử dụng chức năng này để dịch bí danh sang địa chỉ H.323. · Quản lý việc thu nhận điểm cuối ( Admission Control ) : GK sử dụng báo hiệu RAS để quản lý việc tham gia vào mạng H.323 để có thể tham gia vào một kết nối nào đó của các điểm cuối dựa vào một số tiêu chuẩn như băng thông còn trống, sự cho phép hay một số tiêu chuẩn khác mà một số yêu cầu đặc biệt khác đòi hỏi đáp ứng. · Điều khiển băng thông ( Bandwidth Control ) : GK điều khiển băng thông bằng báo hiệu RAS. Ví dụ nếu người điều hành mạng đã xác định số cuộc gọi tối đa được thực hiện cùng lúc thì mạng có quyền từ chối bất cứ cuộc gọi nào khi số cuộc gọi tại thời điểm đó đã đạt đến ngưỡng này. · Quản lý vùng hoạt động ( One management ) : GK chỉ có thể thực hiện các chức năng trên đối với các terminal, GW và MCU thuộc vùng quản lý của nó. Hay nói cách khác GK định nghĩa các điểm cuối ( endpoint ) nó quản lý. Các chức năng tùy chọn của GK : · Báo hiệu điều khiển cuộc gọi ( Call Control Signaling ). · Chấp nhận cuộc gọi ( Call Authorixation) : GK có quyền quyết định cho một điểm cuối ( endpoint) có thể thực hiện một cuộc gọi hay không. · Quản lý cuộc gọi ( Call Management ) : chức năng này cho phép GK lưu trữ tất cả các thông tin về các cuộc gọi mà nó xử lý ( các cuộ gọi xuất phát từ vùng hoạt động của nó ). 3.4 Đơn vị điều khiển liên kết đa điểm ( MCU- Multipoint ControlUnit): a. Multipoint Control Unit ( MCU ) là thành phần hỗ trợ trong dịch vụ hội nghị đa điểm có sự tham gia của từ 2 terminal H.323 trở lên. Mọi terminal tham gia vào hội nghị đều phải thiết lập một kết nối với các MCU. Và MCU quản lý tài nguyên phục vụ cho hội nghị, thương lượng giữa các terminal để xác định loại codec ( coder / decoder ) nào cho tiếng và hình được sử dụng đồng thời xử lý dòng thông tin truyền . · Một MCU bao gồm 2 thành phần con : bộ điều khiển đa điểm ( Multipoint Controller – MC ) và thành phần tùy chọn bộ xử lý đa điểm ( Multipoint Processor – MP ) Hình 4.4: Cấu tạo của Multipoint Control Unit MC có chức năng quản lý báo hiệu cuộc gọi. Trong lúc đó, MP xử lý việc trộn và chuyển mạch các dòng thông tin cũng như các quá trình xử lý thông tin khác . b. Vùng hoạt động. - Một vùng hoạt động H.323 là tập hợp tất cả các đầu cuối, các GW và các MCU chịu sự quản lý duy nhất của một GK. Vùng hoạt động này độc lập với các topo của mạng thực tế và có thể bao gồm nhiều đoạn mạng ( segment ) nối với nhau qua router hay các thiết bị khác. Mô hình về một vùng hoạt động đơn giản được minh họa trong hình sau : Hình 4.4a : Một vùng hoạt động 4. H.323 Xone Hình III.3 H.323 Zone Một H.323 Zone là tập hợp tất cả các đầu cuối, Gateway, MCU được quản lý bởi một Gatekeeper (hình III.5). Một zone bao gồm ít nhất một đầu cuối và có thể bao gồm Gateway hay MCU. Mỗi zone chỉ có duy nhất một Gatekeeper. 5. Bộ giao thức H.323 Hình 5. Các lớp của bộ giao thức H.323 Khuyến nghị H.323 đề ra những giao thức nằm trên tầng IP và các tầng vận tải (TCP hay UDP), những giao thức này được sử dụng một cách kết hợp bảo đảm cho việc thiết lập cuộc thoại và truyền dòng tiếng nói tuân thủ tính thời gian thực qua mạng chuyển mạch gói. Hình III.4 là sơ đồ chồng giao thức. Có thể phân chia thành 2 nhóm giao thức : Nhóm thứ nhất có vai trò thực hiện trao đổi tín hiệu (signaling) giữa các thành phần của mạng H.323, đảm bảo cho một endpoint có thể thiết lập được cuộc thoại với một endpoint khác. Bao gồm: · RAS (Registation/Admission/Status): giao thức trao đổi giữa endpoint với Gatekeeper. · Q.931: giao thức cho phép thiết lập và kết thúc cuộc gọi. · H.245: giao thức cho phép thống nhất phương thức truyền thông giữa các endpoint và thiết lập kênh logic để dữ liệu tiếng nói truyền qua kênh này. Như vậy nhóm này có thể coi như tập giao thức giúp các bên tham gia “bắt tay” được với nhau trước khi dòng tiếng nói thực sự được trao đổi qua lại. Nhóm thứ hai chịu trách nhiệm đảm bảo truyền dòng tiếng nói có tính thời gian thực qua mạng, cộng thêm một số thông tin trạng thái và điều khiển giúp cho việc nâng cao chất lượng cuộc thoại. Bao gồm : · RTP (Real Time Protocol): giao thức đảm nhiệm việc truyền dòng tiếng nói thực sự tới phía nhận. · RTCP (Real Time Control Protocol): giao thức hỗ trợ cung cấp các thông tin trạng thái và điều khiển chất lượng cuộc thoại tới các bên tham gia. Tính chất của các thông tin mà nhóm này chịu trách nhiệm truyền là tính thời gian thực (Real Time). Vì thế người ta chọn tầng vận tải phía dưới chúng là UDP. Tầng này tuy không có cơ chế đảm bảo độ tin cậy trong việc truyền dữ liệu (không có cơ chế phát hiện sự mất dữ liệu, không phát lại dữ liệu bị mất...) nhưng bù lại header của UDP nhỏ gọn và đơn giản, dẫn đến có thể tăng tốc độ xử lí, phù hợp với yêu cầu về thời gian thực. RTP và RTCP thường được mở trên hai cổng UDP riêng, sát cạnh nhau. Việc thiết lập các cổng này là chức năng của giao thức H.245 (mở kênh logic) · Codec 6. Thiết lập và giải phóng cuộc gọi cho H.323 Báo hiệu H.323 là một quá trình phức tạp. Tương tác giữa các phần tử trong mạng H.323 trong quá trình báo hiệu được mô tả như sau: Hình 6. Báo hiệu thiết lập cuộc gọi giữa mạng chuyển mạch gói và PSTN Hình 6.1 . Quá trình thiết lập cuộc gọi H.323 Nếu xem xét một cuộc gọi giữa hai đầu cuối H.323 thì quá trình được thiết lập như sau: · Trước hết, cả hai đầu cuối H.323 phải được đăng ký tại các Gatekeeper · Đầu cuối A gửi yêu cầu tới Gatekeeper đề nghị thiết lập cuộc gọi · GATEWAY gửi cho đầu cuối A thông tin cần thiết về đầu cuối B · Đầu cuối A gửi bản tin SETUP tới đầu cuối B · Đầu cuối B trả lời bản tin Call Proceeding và đồng thời liên lạc với Gatekeeper để xác nhận quyền thiết lập cuộc gọi. · Đầu cuối B gửi bản tin Alerting và Connect · Hai đầu cuối trao đổi một số bản tin H.245 để xác định chủ tớ, khả năng xử lý của đầu cuối và thiết lập kết nối RTP Mô tả trong hình là trường hợp cuộc gọi điểm- điểm đơn giản nhất, khi báo hiệu cuộc gọi không định tuyến tới Gatekeeper. 7. H.323 cho IP Telephone Cấu trúc H.323 là quá mức cần thiết đối với VoIP thậm chí đối với cả mạng IP hoàn chỉnh. Chỉ có một tập con của H.323 là cần thiết cho vận hành các kết cuối audio (các PC hoặc điện thoại) qua mạng IP. Hình ảnh Âm thanh Điều khiển Dữ liệu H.261 H.263 (mã hoá video) G.711 G.722 G.723 G.728 G.729 H.225 Báo hiệu từ kết cuối tới Gatekeeper H.225 Tín hiệu cuộc gọi H.245 T.120 Chuyển tiếp dữ liệu đa điểm RTP RTCP RTP RTCP Chuyển tải không tin cậy (UDP) Chuyển tải tin cậy (TCP) Hình II.7. H.323 cho thoại IP Thoại IP chỉ sử dụng thành phần audio và điều khiển của H.323. Thành phần audio xử lý toàn bộ chức năng VoIP và tiêu chuẩn audio mà H.323 yêu cầu là G.711 ( 64Kbs). Hầu hết các cấu hình của VoIP, G.278 ( 16Kbs) có ý nghĩa hơn khi thực hiện thoại có tốc độ thấp, đặc biệt là G.723 (5,3Kbs) hoặc G.729 (6,4Kbs). Hình II.8. Các chức năng giao thức của hệ thức VoIP. Phần điều khiển của H.323 cũng có thể sử dụng các UDP để nhanh chóng thiết lập các kết nối giữa các thiết bị đầu cuối H.323 và Gatekeeper H.323. Gatekeeper H.323 về mặt cơ bản là một server truy nhập từ xa của mạng H.323. H.225 cũng được dùng để điều khiển cuộc gọi tới TCP để thiết lập, duy trì những kết nối VoIP. H245 sử dụng với mọi kết cuối H.320 cũng có thể được sử dụng với TCP. Trong khi một số các nhà sản xuất thiết bị và phần mềm VoIP tùy thuộc vào các thành phần và giao thức độc quyền. Hầu hết họ sử dụng khuyến nghị H.323 và cố tuân thủ nó một cách đầy đủ để cố gắng có thể phối hợp hoạt động với nhiều nhà khai thác. Thực tế đó làm cho H.323 trở thành mô hình tốt đối với các hệ thống VoIP. III. TỔNG QUAN VỀ GIAO THỨC SIP : 1. Tổng quan về RFC : Trong kỹ thuật mạng máy tính, các tài liệu RFC (Request For Comments - RFC) là 1 loạt các bản ghi nhớ chứa những nghiên cứu mới, những phương pháp luận ứng dụng cho công nghệ internet. Thông qua Hội đồng Internet (Internet Society) các kỹ sư và các nhà khoa học máy tính có thể công bố luận văn dưới hình thức là một bản ghi nhớ RFC để cho những đồng nghiệp khác phê bình hoặc chỉ đơn thuần là để thông báo những tin tức hoặc quan điểm mới về mặt kỹ thuật. Tổ chức chuyên trách kỹ thuật liên mạng (IETF – Internet Engineering Task Force) chấp nhận những lý thuyết đã được công bố trong các RFC và đã được ứng dụng thực tế như là những tiêu chuẩn cho Internet. Mỗi một bản RFC chỉ có duy nhất một số đăng ký,một khi số đăng ký đã được công bố thì nó sẽ không bao giờ được sữa chữa hay bị hủy bỏ. Nếu cần được chỉnh sửa thì tác giả của nó sẽ công bố các bản chỉnh sữa vì vậy các bản RFC bị lỗi thời bởi những bản mới hơn của chính nó. Hàng loạt các RFC đã đăng ký hình thành nên lịch sử tiến triển của tiêu chuẩn Internet . Tiến trình kiến tạo RFC không giống với những tiến trình tiêu chuẩn hóa do những tổ chức chính quy về tiêu chuẩn như ANSI thường làm. Những chuyêng gia về kỹ thuật mạng và truyền thông có thể tự đề bạt một bản dự thảo Internet (Internet Draft) mà không cần sự hỗ trợ từ những cơ quan bên ngoài. Những bản RFC được công nhận thường được công bố với sự phê chuẩn của IETF và đa số là do những chuyên gia tham dự trong các nhóm điều hành của IETF thi hành. Khi mới bắt đầu chúng chỉ là những bản dự thảo Internet, cách xắp xếp này cho phép những bản dự thảo này được thông qua những vòng thăm dò ý kiến ban đầu từ những đồng nghiệp trước khi tài liệu được hoàn thành và thanh lọc để trở thành những bản RFC. Truyền thống của RFC là dựa vào tính thực dụng, kinh nghjệm từng trải, quyền tiêu chuẩn hóa những bản thảo thông qua thực tế đạt được bởi các cá nhân hoặc một nhóm cộng tác nhỏ. Điều này có ưu điểm đó là hơn rất nhiều so với quy trình chính quy do hội đồng điều khiển mà chúng ta thường thấy ở ANSI hoặc ISO. Các bản RFC đã từng nổi tiếng vì chất lượng của chúng. Trong các bản RFC chúng ta vừa không gặp những sự nhập nhằng,khó hiểu là một vấn đề phổ biến trong các bản thiết kế dự thảo, vừa không có những chức năng ngoài dự kiến do sai lầm của hội đồng gây ra đó là những điều ám ảnh đối với các tiêu chuẩn chính quy. Và chúng đang mở đường cho một mạng lưới đang phát triển tới tầm cỡ toàn cầu. Hình thức RFC được khởi đầu vào năm 1969, khi nó là một phần trong hội thảo của dự án ARPANET. Hiện nay, nó là kênh công bố chính thức của IETF, của Ủy Ban Kiến Trúc Mạng ( Internet Architecture Board – IAB) và ở mức độ nào đó là của cộng đồng những kỹ sư nghiên cứu về mạng lưới truyền thông máy tính toàn cầu. Những bản RFC đầu tiên được tác giả của chúng đánh bằng máy đánh chữ và truyền tay các bản in giữa nhóm những kỹ sư nghiên cứu tại ARPA. Tháng 12 năm 1969, các kỹ sư nghiên cứu phân phát các bản RFC mới thông qua mạng lưới truyền thông ARPANET. Bản RFC đầu tiên với đề tài Phần Mềm Dành Cho Máy Chủ (Host Software), được Steve Crocker, một sinh viên của trường đại học California, Los Angeles ( UCLA) viết và được công bố vào ngày 07 tháng 04 năm 1969. Trong phiên bản RFC số 3, Steve Crocker đã đặt các bản RFC dưới quyền của “Nhóm Điều Hành Mạng – Network Working Group“, nhóm này chưa bao giờ tồn tại chính thức mà chỉ được định nghĩa là “nhóm người này” nhưng sự ủy quyền của “họ” vẫn tồn tại trong các RFC cho đến nay. Trường đại học UCLA tiếp tục cho ra đời nhiều bản RFC trong những năm 1970 không những vì chất lượng của chúng cao mà còn vì UCLA là một trong những điểm kết nối mạng đầu tiên của ARPANET. Từ năm 1969 đến 1998, ông Jon Postel làm chủ biên tập RFC. Sau khi hết hạn hợp đồng tài trợ của chính phủ Mỹ, hội đồng Internet (thay mặt cho IETF) ký hợp đồng với chi nhánh điều hành mạng (Networking Division) của trường đại học Nam California (USC) đứng ra làm quyền biên tập và chịu trách nhiệm về việc xuất bản. Mọi người đều có thể tiếp cận bất kỳ một bản RFC nào tại website chính thức của chủ biên RFC : http://www.rfc-editor.org/rfc.html . Hầu hết các bản RFC đều hiện hiện hữu ở dạng ASCII, đồng thời cũng có ở một số định dạng khác. Từ năm 2006 trở đi bất kỳ một đặc tả tiêu chuẩn internet nào cũng đều ở dưới dạng ASCII. Không phải bất kỳ bản RFC nào cũng là tiêu chuẩn, chỉ có nhóm IETF đại diện cho nhóm chỉ đạo kỹ thuật kết nối mạng ( Internet Engineering Stearing Group – IESG) là có quyền chuẩn y các bản RFC có thể trở thành tiêu chuẩn. Cấp bậc của các RFC bao gồm : Đề nghị (Proposed – PS), dự thảo (Draft – DS), bảng đầy đủ (Full) – Tiêu chuẩn Internet (Internet Standart – STD). Mỗi một biên tập phụ, thuộc một tiêu chuẩn STD nào đó đều có một mã số riêng. Kể từ năm 2006 thì tiêu chuẩn số 1 là RFC3700. Một số các STD tạo thành nhiều nhóm nhỏ, gồm những RFC có liên quan với nhau. Một bản RFC thử nghiệm có thể là một tài liệu của IETF, hoặc một bản đệ trình cá nhân lên chủ biên RFC. Trên lý thuyết, thực trạng các bản tài liệu như cái tên của nó ám chỉ - chỉ là những “ đề nghị duyệt thảo và bình luận “ ( Request For Comments ). Trên thực tế ,một số bản tài liệu không được nâng lên mức tiêu chuẩn vì không có người tình nguyện thực hành những chi tiết cụ thể trong thủ tục. Một số tài liệu quan trọng cũng chỉ tồn tại như một “Bản Thảo Internet”, trong khi có những bản RFC chính quy lại trở nên lỗi thời . Một bản RFC tin tức (news) có thể là bất cứ thứ gì, từ những bản RFC hài hước ( những bản này được công bố vào ngày 1-4 – Ngày nói đùa ) về những giao thức sở hữu cho đến những bản RFC chủ chốt được nhiều người biết đến như RFC 1591. Một số bản RFC tin tức được nhóm lại thành một loạt các bài “ tin tức đáng chú ý” (For Your Information – FYI). Tuy nhiên hiện nay ít ai đăng thêm, một số FYI cũ vẫn còn rất thú vị như FYI 18 hay còn gọi là RFC 1983 bản “ từ vựng dành cho người dùng Internet” (Internet User’s Glossary) Một bản RFC tồn kho (historic) là một bản lỗi thời và đã có bản RFC khác thay thế nó. Những bản này nói về một giao thức đã không còn được để ý trong hoàn cảnh Internet hiện tại hoặc đã bị đưa ra khỏi mức tiêu chuẩn hóa vì một lý do nào đó. Một số các RFC lỗi thời còn không được liệt kê trong danh sách các bản tồn kho, vì “ tiến trình tiêu chuẩn hóa “ (Internet Standards Process) thường không cho phép những tham chiếu có tính quy chuẩn (normative references) đối với một RFC đang được tiêu chuẩn hóa, từ một bản RFC có cấp độ thấp hơn. Đồng thời ít người chú ý đến việc giải quyết những chi tiết thủ tục yêu cầu, để những bản RFC được phân loại là tồn kho, và những thay đổi được đánh dấu vào tất cả các RFC phụ thuộc vào nó. Dạng vô danh thường được đặt cho những bản RFC quá cũ không rõ cấp bậc là gì nếu phải công bố. Trong một vài trường hợp những RFC đó còn hoàn toàn không được công bố. Những RFC cũ thường chỉ là những bản “ yêu cầu duyệt thảo và bình luận “, không chú trọng việc đặc tả một giao thức, một chu trình quản lý hoặc bất cứ một thứ gì khác mà các RFC hiện nay đang được dùng để thực hiện. 2. Tổng quan về SIP : Giao thức SIP (Secssion Initiation Protocol ) là giao thức báo hiệu điều khiển lớp ứng dụng được dùng để thiết lập , duy trì , kết thúc các phiên truyền thông đa phương tiện ( multimedia ) có một hoặc nhiều người tham gia . Các phiên multimedia bao gồm thoại internet , hội nghị và các ứng dụng tương tự có liên quan đến các phương tiện truyền đạt ( media ) như âm thanh , hình ảnh và dữ liệu . SIP sử dụng các bản tin mời ( INVITE ) để thiết lập các phiên và để mang các thông tin mô tả phiên truyền dẫn . SIP hỗ trợ các phiên đơn bá ( unicast ) và quảng bá ( multicast ) tương ứng các cuộc gọi điểm tới điểm và cuộc gọi đa điểm . SIP là một giao thức để thiết lập các phiên truyền thông . Các phiên SIP bao gồm · Hội họp đa phương tiện qua internet . · Các cuộc gọi điện thoại qua internet . · Các phiên video qua internet . · Phân phối đa phuong tiên . Các phần tử của SIP có thể liên lạc thông qua : · Liên lạc cá nhân . · Phát quảng bá . · Thông qua tổ hợp của các quan hệ liên lạc cá nhân hoặc một tổ hợp của tất cả những phương tiên trên . Trong các môi trường IPv4 và IPv6 thông qua : · UDP · TCP · SCTP hoặc TLS trên nền TCP SIP là một giao thức mở rộng đơn giản · Các phương tiên ( Methods ) – Định nghĩa về phiên truyền thông . · Phần mào đầu ( Headers ) – Mô tả về phiên truyền thông . · Phần thông tin báo hay còn gọi là phần thân ( Message Body ) – SDP , ký tự , XML . 3. Nguồn gốc sự phát triển của giao thức SIP : Đầu tiên SIP chỉ đơn thuần là một giao thức dùng để thiết lập phiên quảng bá cho Internet ( từ giữa đến cuối thập kỉ 90 ) . SIP được phát triển bởi SIP Working Group trong IETF. Phiên bản đầu tiên được ban hành vào tháng 3 năm 1999 trong tài liệu RFC 2543 : nó là 1 giao thức dựa trên ý tưởng và cấu trúc của HTTP (HyperText Transfer Protocol) là giao thức trao đổi thông tin của World Wide Web (WWW) và là 1 phần trong kiến trúc Multimedia của IETF. Sau đó, SIP trải qua nhiều thay đổi và cải tiến. Phiên bản mới nhất hiện nay được ban hành trong IETF RFC 3261. RFC 3261 hoàn toàn tương thích ngược với RFC 2543, do đó các hệ thống thực thi theo RFC 2543 hoàn toàn có thể sử dụng với các hệ thống theo RFC 3261. Các giao thức có liên quan đến SIP bao gồm : · Giao thức đặt trước tài nguyên RSVP ( Resource Reservation Protocol ) · Giao thức truyền vận thời gian thực RTTP ( Real Time Transfer Protocol ) · Giao thức cảnh báo phiên SAP ( Session Announcement Protocol ) · Giao thức miêu tả phiên SDP ( Session Description Protocol ) Các chức năng của SIP là độc lập và không phụ thuộc vào bất kỳ giao thức nào thuộc các giao thức trên. Mặt khác SIP có thể hoạt động hỗ trợ với các giao thức báo hiệu khác như H.323 . SIP là một giao thức theo thiết kế mở do đó nó có thể mở rộng thêm các chức năng mới. Sự linh hoạt của bản tin SIP cũng cho phép đáp ứng các dịch vụ thoại tiên tiến bao gồm cả các dịch vụ di động. Một bản tin SIP có hai phần, phần mào đầu ( Headers ) và phần thân ( Message Body ). Phần thân cho phép phục vụ các ứng dụng khác nhau một cách linh hoạt. Ban đầu phần thân chỉ dùng để chuyển tải các tham số miêu tả phiên SDP như codec, địa chỉ IP đầu cuối, ... Phần thân được sử dụng để mở rộng các ứng dụng của khác nhau của SIP ví dụ như SIP-T cho liên vận PSTN-SIP-PSTN hoặc MSCML (Media Server Control Markup Language) cho dịch vụ hội nghị. Sự phổ cập của SIP đã dẫn tới việc một loạt nhóm làm việc liên quan đến SIP được thành lập. Nhóm SIPPING ( Session Initiation Protocol Project Investigation working group) được thành lập với mục đích nghiên cứu các ứng dụng và phát triển các yêu cầu mở rộng cho SIP. Nhóm SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions) có nhiệm vụ chuẩn hoá các giao thức cho các ứng dụng nhắn tin tức thời. Các nhóm làm việc khác là PINT (PSTN and Internet Inter-networking), SPIRITS (PSTN/IN requesting Internet Services). 4. Các thành phần bên trong mạng SIP : Thành phần của SIP : bao gồm SIP User Agent ( UA ) và SIP server . 4.1. SIP User Agent: SIP UA hoặc thiết bị đầu cuối là điểm cuối của dialog : SIP UA gửi - nhận các yêu cầu và trả lời của SIP , nó là điểm cuối của luồng đa phương – bao gồm ứng dụng trong thiết bị đầu cuối hoặc ứng dụng phần cứng chuyên dụng . UA gồm hai phần : · User Agent Client ( UAC ) : ứng dụng của người gọi – khởi tạo yêu cầu (request ) · User Agent Server ( UAS ) : chấp nhận , gửi lại , từ chối yêu cầu ( request ) và gửi trả lời cho request đến thay mặt cho người gọi. UA là thực thể SIP mà tương tác với người sử dụng bằng giao diện. 4.2. SIP Server : SIP server : Cần phân biệt SIP Server và UA server cũng như mô hình client-server . Ở đây , SIP server là một thực thể luận lý , một SIP server có thể có chức năng của nhiều loại server hay nói cách khác một SIP Server có thể hoạt động như các server khác nhau trong các trường hợp khác nhau . Trong SIP Server có các thành phần quan trọng như : Proxy Server , Redirect Server , Location Server , Registrar Server … · Proxy Sever : Có thể xem các Proxy Server như các router thiết bị đầu cuối SIP làm nhiệm vụ chuyển tiếp các request tới thực thể khác trong mạng, như vậy chức năng chính của nó trong mạng là định tuyến cho các bản tin đến đích. Tuy nhiên các Proxy SIP sử dụng nguyên tắc định tuyến phức tạp hơn là chỉ tự động chuyển tiếp bản tin dựa vào bảng định tuyến. Các Proxy Server cũng cung cấp các chức năng khác như : xác định tính hợp lệ của bản tin, xác thực người sử dụng, phân nhánh các request, phân giải địa chỉ, hủy bỏ các cuộc gọi đang chờ. Một Proxy có thể lưu (stateful) hoặc không lưu trạng thái (stateless) của bản tin trước đó, thông thường thì Proxy có lưu trạng thái và chúng duy trì trạng thái đó trong suốt Transaction (khoảng 32 giây). Sự linh hoạt của các proxy SIP cho phép các nhà khai thác và quản trị mạng sử dụng các proxy cho các mục đích khác nhau và trong các vị trí khác nhau trong mạng (chẳng hạn như Proxy biên, Proxy lõi, và Proxy của các doanh nghiệp). · Redirect Server : Truy nhập dữ liệu và dịch vụ định vị để tìm địa chỉ của user và gửi trả về bản tin lớp 300 để thông báo thiết bị là chuyển hướng bản tin tới địa chỉ khác – tự liên lạc thông qua địa chỉ trả về . · Registrar Sever : Là sever nhận bản tin SIP REGISTER yêu cầu và cập nhật thông tin từ bản tin request vào “ location database “ nằm trong Location Sever . · Location Sever : Lưu thông tin trạng thái hiện tại của người dùng trong mạng SIP . 4.3. Mối liên hệ giữa các thành phần trong mạng SIP Trong ví dụ thứ nhất, cho ta có một cái nhìn khái quát về chức năng của Proxy Server, Redirect Server, SIP Phone trong mạng. Giả sử thuê bao có tên user1 trong miền dịch vụ do here.com muốn thực hiện một cuộc gọi thoại tới thuê bao có thể là user2 ( thuộc there.com) Chức năng của Proxy, Redirect Server trong mạng SIP 1. Khi User 1 muốn gọi tới User 2, trước hết nó sẽ gửi bản tin INVITE 1 đến Proxy Server 1. Proxy Server 1 chuyển tiếp bản tin tới Redirect Server. 2. Redirect Server này xử lý và trả về mã 3xx thông báo cho Proxy Server tự thực hiện kết nối. 3. Proxy Server 1 gửi bản tin INVITE 2 tới đích trả về bởi Redirect Server ( chính là Stateless Proxy Server 1). Vì đây là Stateful Proxy nên thực chất bản tin INVITE được gửi bởi Stateful Proxy là khác so với bản tin nhận được từ User1(ban đầu). 4. Stateless Proxy Server chuyển tiếp bản tin INVITE tới SIP Statefull Proxy 2. Do là Stateless Proxy nên công việc của nó đơn giản là chuyển tiếp bản tin. 5. SIP Statefull Proxy 2 chuyển tiếp bản tin INVITE tới user2. 6. Khi user2 nhấc máy thì nó sẽ gửi bản tin 200 OK theo chiều ngược lại. 7. Sau khi nhận được bản tin 200 OK, user1 sẽ gửi xác nhận ACK tới user2. 8. Luồng RTP trực tiếp giữa hai thuê bao được thiết lập. Và cuộc gọi được thực hiện. Trong ví dụ thứ hai sẽ mô tả quá trình một SIP Phone đăng kí với với Registrar Server quản lý nó,hoạt động của Location Server, Proxy Server. Chức năng của Location, Registrar Server trong mạng SIP Khi một SIP Phone được kết nối với mạng. Nó liên tục gửi bản tin REGISTER tới Registrar Server để thông báo vị trí hiện tại của nó. Giả sử trong miền dịch vụ có tên chicago.com thì quá trình REGISTER (đăng kí) được tiến hành như sau: 1. Thuê bao có tên Carol gửi bản tin REGISTER tới Registrar Server.Server này tiến hành xác thực. Nếu hợp lệ thì các thông tin đó được lưu trong Location Server. 2. Khi một thuê bao khác (có tên là Bob) gửi bản tin INVITE tới Proxy Server để xin kết nối tới thuê bao Carol. Proxy Server sẽ truy vấn các thông tin về thuê bao bị gọi thông qua Location Server. 3. Proxy Server gửi bản tin INVITE tới thuê bao Carol để thiết lập cuộc gọi. 5. Bản tin SIP Thông điệp SIP gồm 3 phần: start line, header của thông điệp và body. Client gửi yêu cầu (request) và server trả lời bằng response. 1 phiên của SIP bao gồm yêu cầu từ client, 0 hoặc nhiều provisional response và final response từ server. 5.1 SIP response : Status line là dòng bắt đầu của response. Các bản tin đáp ứng được chia thành thành hai nhóm bao gồm 6 loại bản tin, mỗi bản dùng một mã trạng thái nằm trong một dải mã. Khuôn dạng thông điệp SIP SIP version Status code Reason Phrase Cấu trúc Response Line SIP response · Provisional (1xx): Bản tin này dùng để chỉ thị tiến trình nhưng không kết thúc giao dịch SIP (tìm kiếm, rung chuông, xếp hàng). · Final (2xx, 3xx, 4xx, 5xx, 6xx): Bản tin này chỉ thị kết thúc giao dịch SIP. 1xx: Provisional – đã nhận yêu cầu và đang tiếp tục xử lý yêu cầu. Tìm kiếm, rung chuông, xếp hàng đợi, nó được phát khi quá trình xử lý chưa thể kết thúc ngay được. Phía phát cần phải dừng quá trình truyền các yêu cầu khi nhận được bản tin này. 2xx: Success – Các yầu đã được xử lý thành công (nhận, hiểu và đã được tiếp nhận). 3xx: Redirection – Cần tiến hành thêm các hoạt động để có thể đáp ứng được các yêu cầu. Chúng được gửi bởi các Redirect Server. 4xx: Client Error – Lỗi do phía Client, các yêu cầu sai cú pháp hoặc không đáp ứng đúng yêu cầu của Server. 5xx: Server Error – Lỗi phía Server, server bị sự cố và không đáp ứng được các yêu cầu hợp lệ. 6xx: Global Failure – Lỗi tổng thể, các yêu cầu không thể được đáp ứng tại bất kỳ server nào. Các lớp Response Mã trả về Mô tả Thông tin 100 Đang thực hiện kết nối 180 Đang đổ chuông 181 Cuộc gọi đang được chuyển tiếp 182 Được đặt vào hàng đợi 183 Phiên đang được xử lý Thành công 200 Thành công Chuyển hướng 300 Nhiểu lựa chọn 301 Chuyển vĩnh viễn 302 Chuyển tạm thời 305 Sử dụng proxy 380 Dịch vụ khác Lỗi Client 400 Yêu cầu không hợp lệ 401 Không nhận dạng được 402 Yêu cầu thành toán 403 Bị cấm 404 Không tìm thấy 405 Phướng thức không được phép 406 Không chấp nhận 407 Yêu cầu xác thực Proxy 408 Request timeout 410 Đã dời đi 413 Yêu cầu quá dài 414 URL được yêu cầu quá lớn 415 Không hỗ trợ kiểu media 416 Không hỗ trợ URI 420 Phần mở rộng lỗi 421 Yêu cầu phần mở rộng 423 Khoảng thời gian giữa hai sự kiện quá ngắn 480 Tạm thời chưa sẵn sàng 481 Transaction không tồn tại 482 Phát hiện thấy “loop” (chu trình) 483 Quá nhiều “hop” 484 Địa chỉ không đủ 485 Mật mở không rõ ràng 486 Đang bận 487 Yêu cầu bị hủy 488 Không thể chấp nhận tại đây 491 Yêu cầu chưa được giải quyết Lỗi Server 500 Lỗi nội tại trong server 501 Chưa được thực hiện đầu đủ 502 Gateway lỗi 503 Dịch vị không tồn tại 504 Server timeout 505 Phiên bản SIP không được hỗ trợ 513 Bản tin quá lớn Lỗi toàn cục 600 Bận ở khắp mọi nơi 603 Suy sụp 604 Không tồn tại 606 Không thể chấp nhận 5.2 SIP request : Request line là dòng đầu tiên của request. Tên giao thức chỉ ra mục đích của request và request-URI chứa đích của request. Các phương thức SIP Các phương thức SIP có thể xem như là các kiểu thông điệp. Chúng xác định yêu cầu đang được tạo bởi thiết bị của người dùng (hoặc thực thể mạng trong một số trường hợp). Các phương thức SIP cơ bản hiện tại được định nghĩa để sử dụng trong IMS: ACK, BYE, CANCEL, INVITE, REGISTER, UPDATE.. Method Request URI SIP version Cấu trúc Request Line SIP request 5.3 Các trường header Khuôn dạng của các trường header: Tên của trường header: giá trị của trường header Có các trường header bắt buộc và tùy chọn trong mỗi thông điệp. Có 6 trường header có tính bắt buộc trong mỗi SIP thông điệp: To, From, Cseq, Call-ID, Max- Forward, Via. 5.4 Message Body Message Body được tách khỏi trường header bởi dòng trống. Thông điệp SIP có thể mang bất kỳ kiểu nào của body, kể cả body nhiều phần sử dụng mã hóa MIME (Multipurpose Internet Mail Extension ). SIP sử dụng MIME để mã hóa body của nó. Do đó, body của SIP được mô tả giống như phần đính kèm vào email. Đặc tính quan trọng của body là chúng truyền từ đầu cuối đến đầu cuối. Proxy không cần phân tích cú pháp của thông điệp body để định tuyến thông điệp. Thực tế, UA có thể lựa chọn để mã hóa nội dung của thông điệp body end to end. Trong trường hợp này, proxy sẽ không thể biết kiểu phiên nào đang được thiết lập giữa hai UA 5.5 Cấu trúc bản tin SIP Bản tin Request: INVITE sip:
[email protected] SIP/2.0 Via: SIP/2.0/UDP ph1.company.com:5060;branch=z9hG4bK83749.1 From: Alice ;tag=1234567 To: Bob Call-ID:
[email protected] CSeq: 1 INVITE Contact: Content-Type: application/sdp INVITE sip:
[email protected] SIP/2.0 Content-Length: ... v=0 o=alice 2890844526 28908445456 IN IP4 172.18.193.102 s=Session SDP c=IN IP4 172.18.193.102 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Bản tin Response: SIP/2.0 200 OK Via: SIP/2.0/UDP ph1.company.com:5060;branch=z9hG4bK83749.1 From: Alice ;tag=1234567 To: Bob ;tag=9345678 Call-ID:
[email protected] CSeq: 1 INVITE Content-Length: ... v=0 o=bob 3800844316 3760844696 IN IP4 172.18.193.109 s=Session SDP c=IN IP4 172.18.193.109 t=0 0 m=audio 48140 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Ý nghĩa của các trường trong bản tin: Tiêu đề SIP Mô tả From Thường là AOR(Address of Record) của người gửi. Nó bao gồm SIP hoặc SIPS URI và với tùy chọn tên được hiển thị. To Mô tả người nhận của bản tin SIP, AOR của người nhận. Với chức năng forward hay redirect thi đanh không phải là địa chỉ người nhận. Trường này giống trường From. Call-ID Định nghĩa series của bản tin SIP. Call-ID phải được xác định trong mọi bản tin SIP được gửi bởi tất cả các UA trong một dialog. Cseq Chứa một giá trị nguyên và tên phương thức. Trường này dùng để xác định, săpx xếp, đánh dấu chuỗi SIP request trong một dialog. Cseq có thể khác nhau giữa bản tin được truyền lại và truyền mới. Via Xác định đường đi được chỉ ra request và các response sẽ được gửi. Contact Chứa SIP hoặc SIPS URI của UA muốn nhận được SIP request mới. Allow Liệt kê tập các phương thức SIP được hỗ trợ bởi UA. Supported Liệt kê tập các phần mở rộng của SIP hỗ trợ bởi UA. Require Trường này rất giống như trường Supported nhưng là của các UA ở xa cần thiết cho một transaction được xử lý. Content- Type Kiểu của phần thân của bản tin SIP (nếu có phần thân) Content- Length Kích thức của phần thân bản tin SIP. Trường này là bắt buộc khi bản tin SIP được truyền trên TCP. 6. Chức năng của SIP 6.1 Thiết lập, sửa đổi và kết thúc phiên SIP độc lập với kiểu của phiên đa phương tiện được điều khiển và kỹ thuật sử dụng để mô tả phiên. Nó rất hữu ích cho hội nghị, cuộc gọi audio, whiteboard được chia sẻ và các phiên chơi game. Các phiên bao gồm các luồng RTP (Real Time Protocol) mang audio và video thường xuyên được mô tả bằng SDP, nhưng có một vài kiểu phiên khác có thể được mô tả với các giao thức mô tả khác. SIP được sử dụng để phân phối mô tả phiên giữa các bên tham gia tiềm năng. Khi mô tả phiên được phân phối, SIP có thể sử dụng để thỏa thuận và sửa các tham số của phiên và kết thúc phiên. Ví dụ sau đây mô tả tất cả các chức năng này. B muốn có một phiên audio-video với A và dự định dùng codec PCM (Pulse Code Modulation) để mã hóa voice. Trong ví dụ này, bên phân phối phiên bao gồm B gửi cho A mô tả phiên với codec PCM. A thích sử dụng codec ADPCM vì nó tốn ít băng thông hơn, do đó A thuyết phục B sử dụng ADPCM. Cuối cùng cả hai sử dụng codec ADPCM, nhưng phiên không thể được thiết lập cho đến khi việc thỏa thuận này kết thúc. Đột nhiên, ở giữa phiên audio-video, A quyết định muốn bỏ thành phần video. A sửa phiên chỉ có audio. Khi B quyết định cuộc hội thoại đã kết thúc, phiên được kết thúc. 6.2 Tính di động của người sử dụng SIP không thể phân phối mô tả phiên cho các bên tham gia cho đến khi họ được định vị. Người dùng có thể thường xuyên được liên lạc tại vài vị trí. Khi đó, họ có vài địa chỉ IP khác nhau phụ thuộc vào máy mà họ sử dụng và muốn nhận phiên đến chỉ tại vị trí hiện tại của họ. Ví dụ, người khác có thể muốn nhận phiên mời trên máy trạm của họ vào buổi sáng khi người sử dụng đến nơi làm việc, trên máy tính tại nhà vào buổi tối và trên điện thoại cầm tay khi họ đi du lịch. SIP URI: người sử dụng trong môi trường SIP được định nghĩa bởi SIP Uniform Resource Identity (URI). Khuôn dạng của SIP URI tương tự như địa chỉ email, bao gồm username và domain name: sip:
[email protected] Trong ví dụ trước, nếu chúng ta tra cứu SIP server (điều khiển domain company.com) chúng ta sẽ tìm thấy người sử dụng có username là B. URI của B có thể là SIP:
[email protected], chỉ ra rằng host có địa chỉ IP là 131.160.1.112 có username là B. Registration (đăng ký): chú ý rằng, người sử dụng đăng ký vị trí hiện tại của họ cho server nếu họ muốn được tìm thấy. Trong ví dụ trên, B đang làm việc trên laptop của mình có địa chỉ IP là 131.160.1.112. Tên login là B. B đăng ký vị trí hiện tại của mình với server của công ty. Bây giờ A muốn gọi B. A muốn có địa chỉ SIP Public của B sip:
[email protected]) vì nó được in trong business card của B. Vì vậy, khi server tại thanglong.com được liên hệ và hỏi về B, nó biết nơi mà B có thể liên lạc và kết nối được tạo. 7. Thiết lập và hủy cuộc gọi SIP: Trước tiên ta tìm hiểu hoạt động của máy chủ ủy quyền và máy chủ chuyển đổi + Hoạt động của máy chủ ủy quyền (Proxy Server) Hoạt động của Proxy server được trình bày như trong hình ….Client SIP
[email protected] gửi bản tin INVITE cho
[email protected] để mời tham gia cuộc gọi. Các bước như sau: + Bước 1:
[email protected] gửi bản tin INVITE cho UserB ở miền hostmail.com, bản tin này đến proxy server SIP của miền hostmail.com (Bản tin INVITE có thể đi từ Proxy server SIP của miền yahoo.com và được Proxy này chuyển đến Proxy server của miền hostmail.com). + Bước 2: Proxy server của miền hostmail.com sẽ tham khảo server định vị (Location server) để quyết định vị trí hiện tại của UserB. + Bước 3: Server định vị trả lại vị trí hiện tại của UserB (giả sử là
[email protected]). + Bước 4: Proxy server gửi bản tin INVITE tới
[email protected]. Proxy server thêm địa chỉ của nó trong một trường của bản tin INVITE. + Bước 5: UAS của UserB đáp ứng cho server Proxy với bản tin 200 OK. + Bước 6: Proxy server gửi đáp ứng 200 OK trở về
[email protected]. + Bước 7:
[email protected] gửi bản tin ACK cho UserB thông qua proxy server. + Bước 8: Proxy server chuyển bản tin ACK cho
[email protected] + Bước 9: Sau khi cả hai bên đồng ý tham dự cuộc gọi, một kênh RTP/RTCP được mở giữa hai điểm cuối để truyền tín hiệu thoại. + Bước 10: Sau khi quá trình truyền dẫn hoàn tất, phiên làm việc bị xóa bằng cách sử dụng bản tin BYE và ACK giữa hai điểm cuối. Hoạt động của máy chủ chuyển đổi địa chỉ (Redirect Server): Hoạt động của Redirect Server được trình bày như hình . Các bước như sau: + Bước 1: Redirect server nhân được yêu cầu INVITE từ người gọi (Yêu cầu này có thể đi từ một proxy server khác). + Bước 2: Redirect server truy vấn server định vị địa chỉ của B. + Bước 3: Server định vị trả lại địa chỉ của B cho Redirect server. + Bước 4: Redirect server trả lại địa chỉ của B đến người gọi A. Nó không phát yêu cầu INVITE như proxy server. + Bước 5: User Agent bên A gửi lại bản tin ACK đến Redirect server để xác nhận sự trao đổi thành công. + Bước 6: Người gọi A gửi yêu cầu INVITE trực tiếp đến địa chỉ được trả lại bởi Redirect server (đến B). Người bị gọi B đáp ứng với chỉ thị thành công (200 OK), và người gọi đáp trả bản tin ACK xác nhận. Cuộc gọi được thiết lập. Ngoài ra SIP còn có các mô hình hoạt động liên mạng với SS7 (đến PSTN) hoặc là liên mạng với chồng giao thức H.323. 8- Các giao thức hỗ trợ trong SIP Các giao thức khác của IETF có thể sử dụng để xây dựng những ứng dụng SIP . SIP có thể hoạt động cùng với nhiều giao thức như : · RSVP ( Reource Revervation Protocol ) : Giao thức chiếm trước tài nguyên mạng . · RTP ( Real-time tranpsport Protocol ) : Giao thức vận chuyển thời gian thực . · RTSP ( Real Time Streaming Protocol ) : Giao thức tạo luồng thời gian thực . · SAP ( Session Advertisement Protocol ) : Giao thức thông báo phiên kết nối . · SDP ( Session Description Protocol ) : Giao thức mô tả phiên kết nối đa phương tiện . · MIME ( Multipurpose Internet mail Extension) : Mở rộng thư tín Internet đa mục đích . · HTTP ( Hypertext Transfer protocol ) : Giao thức truyền siêu văn bản . · COPS ( Common Open policy Service ) : Dịch vụ chính sách mở chung . · OSP ( Open Settlement protocol ) : Giao thức thỏa thuận mở . 8.1. RSVP (Reource Revervation Protoco): Giao thức chiếm trước tài nguyên mạng RSVP là một cơ chế báo hiệu dùng để dành riêng tài nguyên trên một mạng. RSVP không phải là một giao thức định tuyến. Việc quyết định tuyến do IGP (gồm cả các mở rộng TE) và CSPF. Công việc của RSVP là báo hiệu và duy trì tài nguyên dành riêng qua một mạng. Trong MPLS TE, RSVP dự trữ băng thông tại mặt phẳng điều khiển (control-plane layer); không có chính sách lưu lượng trên mặt phẳng chuyển tiếp (forwarding-plane). Khi sử dụng cho các mục đích khác (như VoIP hay DLSW + reservations), RSVP có thể được dùng để dành riêng không gian hàng đợi công bằng có trọng số (WFQ – Weighted Fair Queuing) hay xây dựng các ATM SVC. - RSVP có ba chức năng cơ bản: * Thiết lập và duy trì đường đi (Path setup and maintenance) * Hủy đường đi (Path teardown) * Báo lỗi (Error signalling) - RSVP là một giao thức trạng thái mềm (soft-state protocol). Nghĩa là cần lặp lại báo hiệu trên mạng để làm mới định kỳ cho nó. Với RSVP, một yêu cầu bị hủy nếu nó được chỉ định xóa khỏi mạng bằng RSVP hay hết thời gian dành riêng (reservation times out). 1.1 Các loại thông điệp trong RSVP : Có 6 loại thông điệp trong RSVP như sau : a) Path – sử dụng để yêu cầu tài nguyên dành trước b) Resv – Gửi đáp ứng bản tin đường để thiết lập và duy trì dự trữ tài nguyên. c) PathTear - Sử dụng đề xóa dự trữ tài nguyên khỏi mạng theo hướng đi. d) ResvTear – Sử dụng để xóa bỏ tài nguyên khỏi mạng theo hướng về. e) PathErr – Thông báo lỗi bản tin Path f) ResvErr- Thông báo lỗi bản tin Resv g) ResvConf – Là một bản tin tùy chọn, gửi ngược lại tới phía gửi của bản tin Resv đề xác nhận rằng tài nguyên dự trữ xác định thực sự đã được cài đặt h) ResvTearConf- Sử dụng để xác nhận dự trữ tài nguyên xác định đã bị xóa khỏi mạng. 1.2 Mô hình hoạt động ( Gồm 6 bước ) : SHAPE \* MERGEFORMAT Bước 1: Ứng dung trên Host A sẽ tạo 1 phiên đến máy đích co Ip : 128.32.32.69 bằng RSVP tại host A . Bước 2 : Tại host A , RSVP sẽ tạo bản tin Path và sẽ gửi đến router gần nhất R1 nhằm đưa đến địa chỉ 128.32.32.69 . Bước 3 : Bản tin Path tiếp tục thông qua R5 và R4 cho đến khi đến đích là Host B . Bước 4 : Ứng dụng tại host B sẽ tiếp nhận RSVP này và kiểm tra phiên 128.32.32.69. Kiểm tra xem các bản tin này có tồn tại trong phiên không . Bước 5 : Host B sử dụng RSVP tạo ra bản tin Resv gửi ngược lại R4 về địa chỉ gửi là 24.1.70.210 Bước 6 : Bản tin Resv tiếp tục thông qua R5 và R1 cho đến khi tới Host A. 1.3 Các chức năng của RSVP: A. Thiết lập và duy trì đường đi: a.Thiết lập đường đi (Path Setup): - Sau khi đầu đường hầm (tunnel headend) hoàn thành CSPF cho một đường hầm cụ thể, nó gửi một thông điệp Path đến nút kế tiếp (next-hop) dọc theo đường đi đã tính toán đến đích. LSR gửi thông điệp Path được gọi là LSR ngược dòng (upstream router), và LSR nhận thông điệp được gọi là LSR xuôi dòng (down-stream router). LSR ngược dòng con duoc goi la trạm trước đó ( phop – previous hop). - Sau khi LSR xuôi dòng nhận một thông điệp Path, nó kiểm tra định dạng của thông điệp, sau đó kiểm tra lượng băng thông mà thông điệp yêu cầu. Tiến trình này được gọi là điều khiển chấp nhận (admission control). - Nếu việc kiểm tra này thành công và thông điệp Path được phép dành riêng băng thông như nó yêu cầu, LSR xuôi dòng tạo một thông điệp Path mới và gửi đến nút kế trong đối tượng tuyến tường minh (ERO – Explicit Route Object). Thông điệp Path tiếp tục được chuyền đi đến khi nào chúng đến được nút cuối cùng trong ERO – đuôi đường hầm MPLS TE (tunnel tail). - Đuôi đường hầm thực hiện điều khiển chấp nhận trên thông điệp Path giống như các LSR xuôi dòng khác. Khi nó nhận ra rằng nó là đích đến của thông điệp Path nó trả lời lại bằng thông điệp Resv. Resv đóng vai trò như là một ACK báo về cho LSR ngược dòng. Resv chứa một thông báo rằng thỏa mãn sự dành riêng đến cuối đường hầm và thông tin nhãn đến (incoming label) cho LSR ngược dòng sử dụng để gửi các gói dọc theo TE LSP đến đích. b.Duy trì đường đi (Path Maintenance): - Thoạt nhìn, việc duy trì đường đi giống như thiết lập đường đi. Mỗi 30 giây đầu đường hầm gửi một thông điệp Path đến láng giềng xuôi dòng của nó. Nếu một LSR gửi đi một dãy 4 thông điệp Path và không thấy Resv, nó nghĩ rằng sự dành riêng bị mất và gửi một thông điệp ngược dòng (message upstream) báo rằng sự dành riêng bị mất. - Các thông điệp Path và Resv được gửi độc lập và bất đồng bộ giữa các láng giềng với nhau. Thông điệp Resv được dùng để làm tươi (refresh) một sự dành riêng đang tồn tại chứ không phải trả lời cho thông điệp Path. B. Hủy đường đi: -Nếu một nút (thường là đầu đường hầm) quyết định một sự dành riêng không còn cần thiết trong mạng, nó gửi một thông điệp PathTear dọc theo đường thông điệp Path đã đi và một ResvTear dọc theo đường của Resv. - Thông điệp ResvTear được gửi để hồi đáp cho PathTear báo hiệu đuôi đường hầm. PathTear và ResvTear cũng được gửi để trả lời một điều kiện lỗi trong mạng. -Không giống thông điệp làm tươi, PathTear không cần đi đến hết downstream trước khi nhận được kết quả. C. Báo lỗi: - Thỉnh thoảng, tín hiệu RSVP có thể bị lỗi. Các lỗi này được báo hiệu bằng thông điệp PathErr hay ResvErr. Thông điệp lỗi được gửi ngược dòng về phía nguồn của lỗi; một PathErr được gửi ngược dòng từ một nút xuôi dòng và một ResvErr được gửi xuôi dòng từ một nút ngược dòng. 2. RTP ( Real Time Tranpsport Protocol ) : Giao thức vận chuyển thời gian thực RTP – từ viết tắt của Real Time Transport Protocol (Giao thức Vận chuyển Thời gian Thực) đặc tả một tiêu chuẩn định dạng gói tin dùng để truyền âm thanh và hình ảnh qua internet. Tiêu chuẩn này được khai báo trong RFC 1889. Nó được phát triển bởi nhóm Audio Video Transport Working và được ban hành lần đầu tiên vào năm 1996. RTP và RTCP liên kết rất chặt chẽ với nhau – RTP truyền dữ liệu thực trong khi RTCP được dùng để nhận thông tin phản hồi về chất lượng dịch vụ. 2.1 RTP (even port-port chẵn) _ RTP cung cấp chức năng mạng vận chuyển end-to-end cho những ứng dụng truyền dữ liệu mà yếu cầu thời gian thực (real-time) như là âm thanh và video. Những chức năng đó bao gồm nhận diện loại dự liệu, số trình tự, tham số thời gian và giám sát tiến trính gởi. - RTP là thành phần quan trọng của VoIP bởi vì nó cho phép thiết bị đích sắp xếp và điều chỉnh lại thời gian cho gói tin thoại trước khi được gởi đến người dùng. - Sequence number được tăng thêm bởi 1 đối với từng gói tin, giá trị khởi đầu ( của gói tin đầu tiên ) được chọn ngẫu nhiên để nhằm mục đích bảo mật. Xem xét giá trị trong trường này, receiver có thể xác định được gói tin bị mất hoặc out of oder tính tóan sác xuất mất gói hay để điều chỉnh thời gian playout của dữ liệu nhằm đảm bảo chất lượng của dịch vụ. - Timestamp được sử dụng để tính tóan đồng bộ cũng như jitter của dữ liệu, vì vậy giá trị trong trường này luôn tăng một cách tuyến tính và đơn điệu tùy thuộc theo xung clock lấy mẫu được sử dụng cho từng lọai dữ liệu ( vd video là 90kHz) bắt đầu từ thời điểm byte đầu tiên của gói RTP. Giá trị đầu tiên cũng được chọn ngẫu nhiên. 2.2 RTCP (Real-Time Transport Control Protocol)odd port-port lẻ - RTCP giám sát chất lượng của quá trình phân phối dữ liệu và cung cấp tiến trình điều khiển thông tin. RTCP cung cấp thông tin phản hồi dựa theo điều kiện của mạng: - RTCP cung cấp cơ chế cho những thiết bị liên quan trong phiên (session) RTP trao đổi thông tin về giám sát và điều khiển phiên. - RTCP giám sát chất lượng của các yếu tố như là đếm gói (packet count), mất gói, độ trễ, jitter. RTCP truyền gói bằng 1% băng thông của phiên, nhưng ở một tốc độ xác định trong ít nhất mỗi 5 giây. - Tham số thời gian Network Time Protocol(NTP) dưa vào các xung được đồng bộ. - Tham số thời gian RTP tương ứng thì được tạo ngẫu nhiên và dựa vào tiến trính lấy mẫu gói dữ liệu. Cả hai NTP và RTP thì được đặt trong gói RTCP bởi người gởi dữ liệu. 3 RTSP ( Real Time Streaming Protocol ) : Giao thức tạo luồng thời gian thực Là giao thức điều khiển kiểm soát hệ thống mạng , được thiết kế sử dụng trong hệ thống giải trí và truyền thông để kiểm soát Streaming media Severs . Giao thức được sử dụng để thiết lập và kiểm soát các phương tiện truyền thông giữa các điểm cuối phiên . Người dùng đưa ra các lệnh VCR , như chạy hay tạm dừng , để điều khiển thời gian thực trong việc phát lại các file media từ sever . 4 SDP ( Session Description Protocol ) : Giao thức mô tả phiên kết nối đa phương tiện Là giao thức cho phép client chia sẻ thông tin về phiên kết nối cho các client khác. Nó đóng một vai trò quan trọng trong VoIP. 4.1 Mô tả SDP: SDP không phải là một giao thức lớp vận chuyển, nó không thực sự vận chuyển dữ liệu giữa các client mà nó chỉ thiết lập cấu trúc thông tin về các thuộc tính của luồng dữ liệu, dữ liệu thực sự được truyền đi bởi các giao thức SIP, RTSP hay HTTP. Thông tin trong gói SDP ở dạng ASCII gồm nhiều dòng, mỗi dòng là 1 trường. Ví dụ bản tin SDP: v=0 o=bsmith 2208988800 2208988800 IN IP4 68.33.152.147 s=
[email protected] c=IN IP4 20.1.25.50 t=0 0 a=recvonly m=audio 0 RTP/AVP 0 1 101 a=rtpmap:0 PCMU/8000 Trường Ý nghĩa V Phiên bản của giao thức O Chủ của phiên kết nối, nhận dạng, phiên bản phiên kết nối, Loại mạng, Loại địa chỉ, IP của chủ. S Tên phiên kết nối I Miêu tả kết nối U URI E E-mail của người cần liên lạc P Số điện thoại của người cần liên lạc C Thông tin kết nối:: IP version and CIDR IP address k Khóa mã hóa như clear text,base64, uri m Loại mạng, port kết nối,phương thức vận chuyển,danh sách định dạng t Thời điểm bắt đầu và kết thúc kết nối a Thuộc tính. Ý nghĩa của các trường 4.2 Hoạt động của SDP : Client gửi SIP request, thiết bị sẽ tạo một gói SDP gửi trả lại. Gói SDP này mang thông tin về phiên kết nối. Sau đây là một ví dụ: v=0 o=thang 2890844526 2890844526 IN IP4 host.hanoi.example.com s= c=IN IP4 host.hanoi.example.com t=0 0 m=audio 49170 RTP/AVP 0 8 97 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:97 iLBC/8000 m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 Trong ví dụ trên, người gửi là Thắng , lắng nghe kết nối từ host.hanoi.example.com. Gói được gửi tới bất kỳ ai muốn tham gia phiên kết nối. Kết nối của Alice hỗ trợ ba loại kết nối cho audio là PCMU, PCMIA và iLBC, hai loại kết nối video H.261 và MPV. Nếu Ngọc muốn tham gia kết nối thì gửi lại bản tin SDP: v=0 o=ngoc 2808844564 2808844564 IN IP4 host.hanoi2.example.com s= c=IN IP4 host.hanoi2.example.com t=0 0 m=audio 49174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 49170 RTP/AVP 32 a=rtpmap:32 MPV/90000 4.3 Bảo mật cho SDP : Bản tin SDP mang thông tin về phiên kết nối như nhận dạng phiên kết nối, IP người gửi, người nhận,… Nếu kẻ tấn công bắt được những gói SDP này nó có thể thay đổi giá trị trong các trường rồi gửi đi. Nhưng điều này hoàn toàn có thể khắc phục bằng phương pháp chứng thực user của SIP. 5 MIME ( Multipurpose Internet mail Extension – Mở rộng thư tín Internet đa mục đích MIME cung cấp cách thức kết hợp nhiều loại dữ liệu khác nhau vào trong một thông điệp duy nhất có thể được gởi qua Internet dùng Email hay Newgroup. Thông tin được chuyển đổi theo cách này trông giống như những khối ký tự ngẫu nhiên. Những thông điệp sử dụng chuẩn MIME có thể chứa hình ảnh, âm thanh và bất kỳ những loại thông tin nào khác có thể lưu trữ được trên máy tính. Hầu hết những chương trình xử lý thư điện tử sẽ tự động giải mã những thông báo này và cho phép bạn lưu trữ dữ liệu chứa trong chúng vào đĩa cứng. 6 HTTP ( Hypertext Transfer protocol ) : Giao thức truyền siêu văn bản Là một trong năm giao thức chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa Máy cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ (Web client) là giao thức Client/Server dùng cho World Wide Web-WWW, HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet). Cấu trúc của HTTP Message HTTP là một giao thức kiểu client/server; client đưa ra các request, và server sẽ trả lời các request này. Cấu trúc các HTTP message vì thế cũng thay đổi theo yếu tố này. Có một định dạng cho HTTP request và cho các response. 6.1 HTTP Request Mỗi request bắt đầu với một Request-Line. Dòng này chỉ ra phương thức mà client yêu cầu, tài nguyên, và phiên bản của HTTP mà client có thể hỗ trợ. Request-Line có thể có tiếp sau một hay nhiều header và một message body. Một HTTP request bắt đầu với một Request-Line và có thể bao gồm các header và message body. Phần header có thể mô tả quá việc truyền dữ liệu, xác định các yêu cầu hay phần message body kèm theo. GET / HTTP/1.1 Accept: */* Accept-Language: en-us A ccept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Host: www.ft.com Connection: Keep-Alive Request-Line chứa ba mục phân biệt, đó là method, uri, và phiên bản HTTP, mỗi mục được phân tách bởi một hay nhiều khoảng trống. Một HTTP Request-Line có một phương thức, một địa chỉ định danh tài nguyên (URI), và thông báo phiên bản HTTP. Phương thức được xác định trên dòng đầu tiên của Request-Line. HTTP định nghĩa tất cả là 8 phương thức. Một HTTP server chỉ được yêu cầu hỗ trợ các phương thức GET và HEAD; nếu chúng hỗ trợ các phương thức HTTP khác, sự hỗ trợ đó phải được gắn với các quy tắc của HTTP. Đặc tả HTTP cũng có các mở rộng để các phương thức khác có thể được bổ sung trong tương lai. Mục tiếp theo trong Request-Line là Request-uri. Mục này cung cấp địa chỉ định danh tài nguyên cho một tài nguyên. Ví dụ, Request-uri là /, chỉ ra một request cho tài nguyên gốc. Cho các request không yêu cầu một tài nguyên cụ thể (như là TRACE request hay trong một số trường hợp cả OPTIONS request), client có thể dùng một dấu * cho Request-uri. Mục cuối cùng trong Request-Line là phiên bản HTTP. Như trong ví dụ, phiên bản HTTP là 1.1 chứa trong đoạn text HTTP/1.1. Tiếp sau Request-Line, một HTTP request có thể bao gồm một hay nhiều dòng message header. Một message header có thể chứa các loại general header, request header, hoặc entity header. General header áp dụng trong truyền dữ liệu; request header áp dụng cho các request cụ thể, và entity header áp dụng cho message body trong request. Một HTTP request luôn chứa một dòng trống sau Request-Line và bất kỳ header nào. Nếu request bao gồm một message body, phần body đi sau một dòng trống. Dòng trống - blank line rất quan trọng vì server xác định được phần kết của request, hoặc phần kết của header. Không có dòng trống, server nhận các message sẽ không biết được các header khác nữa có tiếp tục được truyền không. 6.2 HTTP Response HTTP Response khá giống với HTTP Request. Dấu hiệu khác biệt duy nhất là response bắt đầu với một dòng trạng thái status so với Request-Line. Status-Line, cũng giống như Request-Line, chứa ba mục ngăn cách bởi các khoảng trống. Một HTTP response bắt đầu với một Status-Line và có thể chứa các header và một message body. Header có thể mô tả quá trình truyền dữ liệu, xác định response, hoặc phần body kèm theo. Dòng bắt đầu với phiên bản cao nhất của HTTP mà server hỗ trợ. HTTP/1.1 200 OK Date: Sun, 08 Oct 2000 18:46:12 GMT Server: Apache/1.3.6 (Unix) Keep-Alive: timeout=5, max=120 Connection: Keep-Alive Content-Type: text/html ... HTTP Status-Line bắt đầu với chỉ báo HTTP, mã trạng thái, và một đoạn text mô tả response. Hai mục còn lại trong Status-Line là Status-Code và Reason-Phrase. Status-Code là một bộ ba kí tự chỉ báo kết quả của request. Status-Code phổ biến nhất là 200. Giá trị này thông báo yêu cầu của client thành công. Phân loại HTTP Status Code Header Field HTTP request và response có thể có một hay nhiều message header. Message header bắt đầu với tên trường và dấu (“:”). Trong một số trường hợp, chỉ có tên trường trong phần header. Trong hầu hết các trường hợp khác header chứa các thêm thông tin khác nữa, các thông tin này đi sau dấu “:”. Một message header kết thúc ở cuối dòng, nhưng nếu một client cần biểu diễn nhiều hơn một dòng thì dòng tiếp theo sẽ bắt đầu với một hay nhiều kí tự trống hay kí tự gạch ngang (ascii character 8). Ví dụ sau là của User-Agent header: GET / HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Host: www.ft.com Connection: Keep-Alive Nếu một message header chứa một chuỗi giá trị phân tách bởi dấu “,”; ta có thể tách ra thành các dòng riêng, như ví dụ sau tách các giá trị của Accept-Encoding: GET / HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip Accept-Encoding: deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Host: www.ft.com Connection: Keep-Alive Bảng sau thể hiện các HeaderField, phạm vi áp dụng của chúng trong các request hay response, hay trong message body (entity) đi kèm với request hay response. Header General Request Response Entity Accept ● Accept-Charset ● Accept-Encoding ● Accept-Language ● Accept-Ranges ● Age ● Allow ● Authentication-Info ● Authorization ● Cache-Control ● Connection ● Content-Encoding ● Content-Language ● Content-Length ● Content-Location ● Content-MD5 ● Content-Range ● Content-Type ● Cookie ● Cookie2 ● Date ● Etag ● Expect ● Expires ● From ● Host ● If-Match ● If-Modified-Since ● If-None-Match ● If-Range ● If-Unmodified- ● Since ● Last-Modified ● Location ● Max-Forwards ● ● Meter ● Pragma ● Proxy-Authenticate ● Proxy- Authorization ● Range ● Referer ● Retry-After ● Server ● Set-Cookie2 ● TE ● Trailer ● Transfer-Encoding ● Upgrade ● User-Agent ● Vary ● Warning ● WWW-Authenticate ● HTTP Header Field Status Code Ý nghĩa 100-199 Informational; server nhận được request nhưng kết quả cuối cùng không sẵn có. 200-299 Success; server có khả năng thực hiện các yêu cầu. 300-399 Redirection; client có thể chuyển hướng request sang một server hay tài nguyên khác 400-499 Client error; request có lỗi. 500-599 Server error; server không thể thực hiện các yêu cầu ngay cả khi request hợp lệ. Bảng phân loại HTTP Status Code 1- Mục tiêu và mô hình : Xây dựng mô hình hệ thống gọi VOIP cho 2 chi nhánh của 1 công ty có thể gọi điện với nhau thông qua máy tính (hoặc qua điện thoại) trên môi trường mạng Internet nhằm tiết kiệm chi phí điện thoại cho công ty và đồng thời có thể hoạt động độc lập với hệ thống điện thoại truyền thống. Áp dụng mô hình VoIP dựa trên công nghệ SIP là một công nghệ thoại qua Internet khá phổ biến hiện nay. Trong đồ án cơ sở này tôi xin làm demo một hệ thống VoIP đơn giản gồm 2 máy PC ( 1 máy thật và 1 máy ảo ) đóng vai trò tương tự như 2 hệ thống mạng ở 2 địa điểm khác nhau là Hà Nội và Sài Gòn kết nối trực tiếp với nhau thông qua 2 router, cho 2 máy tính gọi điện thoại với nhau và tôi sẽ dùng chương trình bắt gói tin để tìm hiểu quy trình cũng như cách thức hoạt động của giao thức SIP dùng để thiết lập cuộc gọi này. MÔ HÌNH LÀM DEMO 2. Công cụ Demo : _ 1 máy tính laptop Asus sử dụng Windows 7 _ Dùng phần mềm VMware 9.2 giả lập một PC ảo sử dụng Windows7 _ Dùng phần mềm GNS 3 giả lập 2 router Cisco 2691 cùng với 2 Cloud được dùng như 2 hệ thống mạng. _ Phần mềm Brekeke Ondo Sip Server đóng vai trò là SIP server _ Phần mềm Xterm Eye Beam đóng vai trò là SIP client (phần mềm dùng để thực hiện cuộc gọi điện thoại) _ Phần mềm WireShark bắt các gói tin cuộc gọi. 3. Các bước tiến hành : _ Cài đặt chương trình VMware version 9.2 vào máy laptop Asus _ Mở chương trình Vmware 9.2 lên và cài đặt Windows7. _ Cài đặt phần mềm GNS3 _ Giả lập 2 router Cisco 2691 và 2 Cloud rồi cho kết nối với nhau _ Cấu hình cho 2 router như sau : R1: Ta xem như một chi nhánh ở Hà Nội, có các địa chỉ IP như sau R2 : Ta xem như một chi nhánh ở Sài Gòn, có các địa chỉ IP như sau _ Đặt cấu hình địa chỉ IP cho máy PC ảo như sau _ Đặt cấu hình địa chỉ IP cho máy PC thật như sau _ Xác định chắc chắn là các kết nối đã thông suốt (máy thật ping thấy máy ảo thông 2 router đã cấu hình) _ Cài đặt SIP Server trên máy Windows 7 _ Cấu hình SIP server như sau _ Thiết lập địa chỉ IP là địa chỉ của máy tính cài đặt và cấu hình SIP Server,ở đây là địa chỉ : 1.1.1.10 Tạo danh sách các số điện thoại mà chúng ta muốn SIP server quản lý. _ Cài đặt SIP Client ( Xterm Eye Beam ) trên máy thật và máy ảo,đăng nhập với các account tương ứng như khi ta tạo các account trong SIP Server Máy PC thật (Win7) được cài đặt Sip Client và đăng nhập với số điện thoại là 101 Máy PC ảo ( Win7 ) được cài đặt Sip Client và đăng nhập với số điện thoại là 102 _ Thực hiện cuộc gọi giữa 2 máy 4. Kết quả : _ Sử dụng WireShark bắt các gói tin cuộc gọi Kết quả thu được từ việc bắt gói tin bằng WireShark cho thấy quy trình thiết lập 1 cuộc gọi của giao thức SIP như sau : Khi ta thực hiện cuộc gọi thì giao thức SIP đưa ra gói tin Invite để gởi yêu cầu thực hiện cuộc gọi tới máy đích như hình 1.Gói tin Invite. Ở hình dưới ta thấy gói Invite được gởi từ số máy 101 có địa chỉ IP là 1.1.1.2 đến số máy 102 có địa chỉ IP là 2.2.2.2 sử dụng chương trình User-Agent (Sip Client) là Eye Beam. 1. Gói tin Invite Sau khi đã gởi gói tin Invite và nhận được phản hồi (cho biết máy đích hiện đang online – available) thì giao thức SIP tiếp tục gởi gói tin 180 - Ringing như hình 2. 180-Ringing để báo hiệu có cuộc gọi đến máy đích. Đồng thời lúc này cả máy gởi yêu cầu và máy đích đều có tiếng đổ chuông. 2. 180-Ringing Khi máy đích cho phép cuộc gọi được thực hiện (hình thức nhấc máy điện thoại) thì gói tin 200 – OK được khởi tạo và bắt đầu thực hiện việc kết nối cuộc gọi trực tiếp giữa 2 máy như hình 3. 200- OK . 3. 200- OK Khi cuộc gọi đã kết thúc (hình thức gác máy điện thoại) thì gói tin BYE được khởi tạo để thực hiện việc ngắt kết nối trực tiếp của cuộc gọi. 4. BYE Kết Luận Do hạn chế về khuôn khổ đề án và kinh nghiệm thực tiễn của em không nhiều nên đề án này không tránh khỏi có những sai sót và nhầm lẫn. Vì vậy những sự đóng góp của thầy cô và các bạn không chỉ giúp đề án của em có được chất lượng cao hơn mà còn giúp trang bị cho em một kiến thức vững vàng hơn trong việc nghiên cứu và công việc sau này. Em xin chân thành cảm ơn Tài liệu tham khảo: 1. RFC 3261 : http://www.ietf.org/rfc/rfc3261.txt 2. Các RFC khác của IETF liên quan đến SIP : http://www.sipknowledge.com/SIP_RFC.htm 3. Trang web của SIP http://www.cs.columbia.edu/sip/ 4. http://www.chez.com/jaaayyy/html/ProjetSIP/SIP07.html (tiếng Pháp) 5. Sách "SIP Demystified" 2001-08 by: Gonzalo Camarillo http://rapidshare.com/files/12389875/sipdemystified.rar Giao diện với mạng LAN (LAN Interface) Chức năng điều khiển hệ thống (System Control) RAS Control H.225.0 Call Control H .225.0 H.245 Control Trễ chiều thu (Receive Path Delay) Lớp đóng gói dữ liệu Multimedia, chuẩn H.225.0 (H.225.0 Layer) Audio Codec G.711, G.722, G.723, G.728, G.729(G.711:Bắt buộc) Video Codec Camera/ display Micro/ Speaker ứng dụng số liệu Giao diện điều khiển hệ thống cho người sử dụng Các chức năng H.323 R4 R5 R3 R2 R1 Host A 24.1.70.210 Host B 128.32.32.69 PATH PATH PATH PATH RESV RESV 3 1 2 PAGE 1