Tiểu luận môn Nền tảng cung cấp dịch vụ cho mạng thế hệ mới Giao thức SIP, bản tin SIP, định tuyến bản tin SIP, SIP trong IMS Giao thức khởi tạo phiên (SIP) là một giao thức báo hiệu mới xuất hiện thực hiện điều khiển phiên cho các kết nối đa dịch vụ. Về cơ bản, hoạt động điều khiển bao gồm khởi tạo, thay đổi và kết thúc một phiên có liên quan đến các phần tử đa phương tiện như video, thoại, tin nhắn, game trực tuyến, vân vân.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO SAU ĐẠI HỌC BÀI TẬP MÔN HỌC Nền tảng cung cấp dịch vụ cho mạng thế hệ mới ĐỀ TÀI 8: Giao thức SIP, bản 9n SIP, định tuyến bản 9n SIP, SIP trong IMS… Hà Nội, tháng 6/2012 Giảng viên hướng dẫn : TS. NGUYỄN TÀI HƯNG Học viên cao học : MAI THỦY ANH-CB110807 PHẠM LÊ MINH-CB110881 Lớp : KTTT1 Mở đầu Giao thức khởi tạo phiên (SIP) là một giao thức báo hiệu mới xuất hiện thực hiện điều khiển phiên cho các kết nối đa dịch vụ. Về cơ bản, hoạt động điều khiển bao gồm khởi tạo, thay đổi và kết thúc một phiên có liên quan đến các phần tử đa phương tiện như video, thoại, tin nhắn, game trực tuyến, vân vân. SIP đem lại ba năng lực chính cho mạng viễn thông. Thứ nhất, nó kích thích sự phát triển của các mô hình ứng dụng và dịch vụ dựa trên web. Đây là một điều hết sức thuật lợi cho nhà cung cấp dịch vụ do có thể sử dụng một nguồn tài nguyên dồi dào các công cụ sẵn có, đồng thời cũng thuận lợi đối với người sử dụng khi người sử dụng đã quen thuộc với kỹ thuật web và nó cũng đã được triên khai trên phần lớn các thiết bị thông minh ngày nay. Điều này tăng cường khả năng cung cấp các dịch vụ mới một cách nhanh chóng. Năng lực thứ hai là khả năng mở rộng, do SIP là giao thức báo hiệu đồng cấp và có tính phân bố cao. Khác với các giao thức báo hiệu truyền thống thường có tính xử lý tập trung cao, điển hình là SS7, trong đó hoạt động của nó tập trung tại một số điểm báo hiệu trong một cấu trúc mạng báo hiệu phức tạp; các phần tử của SIP phân tán đến tận biên của mạng và được nhúng tới tận các điểm đầu cuối. Cuối cùng là khả năng phổ cập của SIP. Được phát triển bởi IETF, SIP kế thừa các đặc điểm của hai giao thức Internet đã được phát triển rất phổ biến: đó là Hyper Text Transport Protocol (HTTP) sử dụng cho Web và Simple Mail Transport Protocol (SMTP) sử dụng cho e-mail. Dựa vào các nguyên tắc có được từ môi trường IP, SIP được thiết kế là giao thức độc lập với ứng dụng, rất mềm dẻo và có khả năng áp dụng trong nhiều môi trường khác nhau và cung cấp các dịch vụ đa dạng. Tóm lại, đặc điểm của SIP là đơn giản, mở, dễ dàng triển khai, và tương thích với các giao thức IP đã có. 1. Giao thức SIP SIP là một giao thức báo hiệu thường được sử dụng để thiết lập, chỉnh sửa, và kết thúc một phiên giữa hai điểm đầu cuối. SIP có thể được sử dụng để thiết lập một cuộc gọi giữa hai bên, một cuộc gọi nhiều bên, hoặc một phiên multicast cho các cuộc gọi Internet, các cuộc gọi đa phương tiện và phân phối đa phương tiện. Một cách đơn giản để mô tả SIP là xem xét một mô hình sử dụng. Giả sử một người dùng có định danh là A muốn thiết lập cuộc gọi với người dùng có định danh là B. Trong viễn thông, người dùng A và người dùng B có thể giao tiếp thông qua một thiết bị được gọi là tác nhân người dùng (User Agent). Một ví dụ về User Agent là một soft phone, một chương trình phần mềm sử dụng để thiết lập cuộc gọi điện thoại qua Internet. Một ví dụ khác là VoIP Phone, một loại điện thoại cho phép sử dụng VoIP (Voice over IP). Dưới đây là các bước cần thiết để thiết lập một cuộc gọi: • A mời B bắt đầu cuộc hội thoại. Như một phần của lời mời, A sẽ chỉ ra loại media nào sẽ được hỗ trợ. • B nhận lời mời, gửi đáp ứng trung gian tới người dùng A, và sau đó đánh giá lời mời. • Khi B sẵn sàng chấp nhận lời mời, nó gửi một xác nhận lại cho người dùng A. Như một phần của xác nhận, B cũng chỉ ra loại media mà nó hỗ trợ. • A kiểm tra xác nhận mà nó nhận được từ B và quyết định xem liệu media hỗ trợ bởi A và B có giống nhau không. Nếu A và B hỗ trợ cùng một loại media, cuộc gọi sẽ được thiết lập giữa A và B. SIP cung cấp một phương thức chuẩn để thực hiện các bước này. Nó thực hiện việc này bằng cách định nghĩa ra các phương thức yêu cầu (request), đáp ứng (response), mã đáp ứng (response code) và các trường điều khiển đặc trưng cho báo hiệu và điều khiển cuộc gọi. Giao thức này được chuẩn hóa bởi IETF (Internet Engineering Task Force) theo RFC 3261 và hiện nay nó được chấp nhận rộng rãi như một chuẩn báo hiệu cho 3GPP (3 rd Generation Partnership Project) và như là một thành phần không thể thiếu trong kiến trúc IMS. 1.1. SIP liên hệ với HTTP như thế nào Như đã nói ở trên, SIP kế thừa các đặc tính quan trọng của HTTP. Nó chia sẻ nhiều đặc điểm quan trọng với HTTP và cũng chính vì vậy nhiều người thường thắc mắc liệu SIP có sử dụng HTTP như một giao thức nền? Câu trả lời là không. SIP là một giao thức hoạt động ở cùng một tầng UDP, SCTP như là các giao thức nền của lớp dưới. Tuy nhiên SIP có rất nhiều điểm giống với HTTP. Ví dụ, tương tự như HTTP, SIP cũng là một giao thức dựa trên văn bản (text-based) và người dùng có khả năng đọc được. Cũng giống như HTTP, SIP sử dụng cơ chế yêu cầu – đáp ứng (request – response mechanism) với các phương thức đặc trưng, mã đáp ứng và các trường điều khiển. Tuy nhiên, một điểm khác biệt quan trọng giữa HTTP và SIP là cơ chế yêu cầu – đáp ứng trong SIP là không đồng bộ một yêu cầu không nhất thiết theo sau nó là một đáp ứng tương ứng. Thực tế, yêu cầu SIP thường có thể gây ra một vài yêu cầu khác được tạo ra. SIP là một giao thức ngang hàng (peer-to-peer protocol). Điều này có nghĩa là người dùng cuối (User Agent) có thể hoạt động như một Server cũng như có thể hoạt động như một Client. Đây là một điểm khác biệt giữa SIP và HTTP. Trong HTTP, máy client thì sẽ luôn luôn là máy client, máy chủ sẽ luôn luôn là máy chủ. SIP hỗ trợ các phương thức yêu cầu và mã đáp ứng sau: • REGISTER: sử dụng bởi client để đăng ký địa chỉ với máy chủ ứng dụng. • INVITE: chỉ ra rằng người dùng hay dịch vụ đang được mời tham gia vào một phiên. Phần thân của bản tin này bao gồm một mô tả phiên mà người dùng dịch vụ đang được mời. • ACK: xác nhận rằng client nhận được đáp ứng cuối cùng của một bản tin invite. Phương thức này chỉ được sử dụng với yêu cầu invite. • CANCEL: sử dụng để bỏ qua một yêu cầu đang chờ xử lý. • BYE: gửi một user client agent để chỉ định với máy chủ là nó muốn kết thuc cuộc gọi. Mã hồi đáp: • 1xx: thăm dò. Một ACK chỉ định một hành động đã được nhận thành công, được hiểu và được chấp nhận. • 3xx: chuyển hướng. Yêu cầu thêm các hành động khác để xử lý yêu cầu. • 4xx: lỗi client. Yêu cầu có chứa cú pháp sai và không thể hoàn thành ở máy chủ. • 5xx: lỗi máy chủ. Máy chủ thất bại trong việc hoàn thành một yêu cầu hợp lệ. • 6xx: lỗi toàn cục. Yêu cầu không thể hoàn thành ở bất cứ máy chủ nào. Giao thức mô tả phiên (SDP) là một định dạng cho việc mô tả định dạng media và loại media được dùng trong một phiên. SIP sử dụng SDP như là một phần tải trong bản tin của nó để thực hiện chức năng trao đổi khả năng giữa các người dùng. Ví dụ, nội dung của SDP có thể chỉ ra loại mã hóa hỗ trợ bởi user agent và giao thức sử dụng trao đổi thời gian thực (RTP). 1.2. Bản tin SIP Cấu trúc của bản tin SIP: Hình 3-20 : Cấu trúc bản tin SIP Hình trên chỉ ra cấu trúc thành phần của một bản tin SIP. Có 3 thành phần quan trọng: • Dòng yêu cầu: chỉ ra phương thức yêu cầu, địa chỉ và phiên bản SIP. • Trường điều khiển: chỉ ra dữ liệu về phiên hay cuộc gọi được thiết lập hay kết thúc. • Phần thân bản tin: cung cấp payload, SDP mô tả media của phiên. 1.3. Phiên giao dịch (Transaction) Mặc dù nói các bản tin SIP được gửi đi một cách độc lập qua mạng nhưng thực tế chúng thường được sắp xếp vào các transaction (giao dịch) bởi các user agent và một số kiểu proxy server nào đó. Do đó có thể nói giao thức SIP là một giao thức hỗ trợ transaction. Một transaction là một luồng các bản tin SIP được truyền đi một cách tuần tự giữa các phần tử mạng. Một transaction là một luồng bản tin SIP được truyền đi một cách tuần tự giữa các phần tử mạng. Một transaction chứa thông tin yêu cầu và tất cả các thông tin phản hồi cho thông tin yêu cầu đó hoặc thậm chí nhiều hơn các thông tin phản hồi cuối (final response). Nếu một transaction được khởi tạo bởi bản tin yêu cầu INVITE thì transaction đó cũng bao gồm cả bản tin ACK nếu như phản hồi cuối không phải là kiểu 2xx. Nếu như phản hồi cuối là kiểu 2xx thì bản tin ACK sẽ không được xem là một thành phần trong transaction. Nếu như vậy chúng ta có thể thấy rằng ở đây có sự cư sử không được công bằng – ACK được coi là một thành phần trong transaction với một lời từ chối ở phản hồi cuối, trong khi nó lại không phải là một thành phần transaction khi được chấp nhận ở phản hồi cuối. Lý do cho sự phân biệt này là sự quan trọng của tất cả các bản tin 200 OK. Không những nó thiết lập một phiên mà bản tin 200 OK còn được sinh ra bởi các thực thể khi một proxy server chuyển hướng yêu cầu và tất cả các proxy server đó phải chuyển bản tin 200OK về đến user agent. Do đó, trong trường hợp này user agent phải lãnh trách nhiệm và truyền lại bản tin 200 OK cho đến khi chúng nhận được bản tin ACK. Một lưu ý khác nữa là chỉ có bản tin INVITE là được truyền lại. Các thực thể SIP có khái niệm về transaction được gọi là stateful. Các thực thể này tạo một trạng thái kết nối với một transaction được lưu trong bộ nhớ trong suốt khoảng thời gian diễn ra transaction. Khi có thông tin yêu cầu hay phản hồi đến, một thực thể stateful sẽ cố gắng kết nối yêu cầu (hoặc phản hồi) đó tới một transaction đã tồn tại sẵn. Để có khả năng làm được điều đó, nó phải lấy thông tin xác định tính duy nhất của transaction (gọi là identifier) Hình 3-21 : Transaction 1.4. Hội thoại (dialog) Ở trên chúng ta đã biết đến transaction, đó là một transaction bao gồm bản tin INVITE và các bản tin phải hồi, một transaction khác bao gồm bản tin BYE và thông tin phản hồi (200 OK) khi một phiên làm việc kết thúc. Nhưng chúng ta có thể thấy rằng cả hai transaction này có liên quan đến nhau và cùng thuộc một hội thoại (dialog). Một dialog đặc trưng cho mối quan hệ SIP ngang hàng giữa hai user agent. Một dialog tồn tại trong một khoảng thời gian và nó là một khái niệm rất quan trọng đối với các user agent. Dialog thích hợp dễ dàng với việc sắp xếp tuần tự và định tuyến cho các bản tin SIP giữa các thiết bị cuối. Dialog được xác định bằng call-id, thẻ from và thẻ to. Các bản tin mà có cùng 3 identifier trên thì thuộc về cùng một dialog. Trường điều khiển Cseq được dùng để sắp xếp thứ tự các bản tin trong cùng một dialog không các user agent sẽ xử lý nó như là các yêu cầu không được sắp xếp hoặc là sẽ gửi lại bản tin đó. Trong thực tế, số Cseq xác định một transaction bên trong một dialog bởi chúng ta đã nói ở trên là các yêu cầu và các thông tin được phản hồi của nó được gọi là một transaction. Điều đó có nghĩa là chỉ có duy nhất một transaction hoạt động tại một thời điểm trong dialog. Do đó cũng có thể gọi dialog là một tập tuần tự của các transaction. Hình vẽ dưới đây minh họa các bản tin truyền đi bên trong một dialog. Hình 3-22 : Luồng cuộc gọi trong một hội thoại SIP Một vài bản tin dùng để thiết lập ra một dialog. Nó cho phép biểu diễn rõ ràng, chi tiết mối quan hệ giữa các bản tin và còn dùng để gửi bản tin mà không liên quan đến các bản tin khác đến các bản tin nằm ngoài một dialog. Điều đó được thực hiện một cách dễ dàng bởi user agent không lưu trạng thái của dialog. Lấy ví dụ, bản tin INVITE thiết lập một dialog, bởi sau đó sẽ có bản tin yêu cầu BYE dùng để kết thúc dialog tạo ra bởi bản tin INVITE ở trên. Bản tin BYE này được gửi bên trong dialog được thiết lập bởi bản tin INVITE. [...]... như là SIP Proxy Server Trong cấu hình này AS đóng vai trò là Sip Proxy AS để cung cấp dịch vụ Cấu hình được chỉ ra như trong hình 4-5 cung cấp dịch vụ cho người gọi Thiết bị đầu cuối gửi một bản tin yêu cầu INVITE tới P-CSCF và S-CSCF S-CSCF nhận thấy dịch vụ có liên quan đến AS và chuyển tiếp bản tin tới AS đó AS có thể thay đổi một số trường header trong bản tin Ví dụ như AS đang cung cấp dịch vụ quay... dụng và phụ thuộc vào bản chất của dịch vụ mà mày chủ ứng dụng cung cấp: một vài dịch vụ yêu cầu tương tác với HSS trong khi một số dịch vụ khác thì không Mỗi máy chủ ứng dụng có thể tùy chọn giao tiếp với HSS sử dụng giao thức Diameter thông qua giao diện Sh Giao thức Diameter cơ sở thực hiện chức năng nhận thực, cấp quyền và tính cước trong IMS và trong mạng thế hệ sau Nó cung cấp khả năng thương lượng... thức báo hiệu chính trong mạng NGN Vì vậy việc tiêu chuẩn hóa giao thức báo hiệu SIP cho mạng viễn thông Việt nam là cần thiết Tiêu chuẩn mới nhất cho phần lõi của SIP (SIP- core) được ban hành bởi IETF trong tài liệu RFC 3261 Sau SIP- core, nhiều mở rộng của SIP đã được phát triển như các mở rộng của SIP cho mạng NGN như SIP- profile trong cấu trúc IMS của 3GPP, SIP- profile cho dịch vụ VoIP của MSF Việc... một SIP User Agent (SIP UA) và trả lời bằng bản tin 200OK được gửi qua S-CSCF và P-CSCF tới thiết bị đầu cuối Một ví dụ của dịch vụ mà sử dụng mô hình này là dịch vụ mà trong đó AS được yêu cầu xử lý các bản tin SIP thay cho một người dùng Mô hình này được sử dụng trong dịch vụ Presence AS IMS Home Netw Hình 4-25 : AS hoạt động như một SIP UA Ví dụ của dịch vụ sử dụng mô hình này là bất kỳ dịch vụ nào... hợp tiềm năng của các dịch vụ trên Internet với các dịch vụ truyền thông truyền thống và dịch vụ Multimedia mới IMS cho phép cung cấp sự truy nhập ở mọi nơi vào tất cả các dịch vụ này nhưng có sự cung cấp các giá trị mới tương ứng, như bảo mật và chất lượng dịch vụ (QoS) trên các máy chủ ứng dụng Các máy chủ ứng dụng này có thể được đưa vào kiến trúc IMS bằng cách định nghĩa các giao diện tính cước,... được bản tin đáp ứng 302, nó sẽ tạo ra một yêu cầu INVITE mới mà Request URI của nó là giá trị trường Contact nhận được trong bản tin 302 Bản tin INVITE mới này có thể không đến trong cùng một miền IMS Một ví dụ tiêu biểu về khả năng ứng dụng như Sip Redirect server là provision của dịch vụ chuyển tiếp cuộc gọi Giao diện AS với các thành phần khác trong mạng Giao diện với IMS Core – ISC 2.6 2.6.1 Giao. .. được miêu tả bằng cách triển khai một giao diện SIP kết nối tới S-CSCF Giao diện được định nghĩa giữa S-CSCF và máy chủ được biết đến là giao diện điều khiển dịch vụ IMS (ISC – IMS Service Control) Máy chủ có thể được đặt tại mạng nhà hoặc đặt tại mạng của nhà cung cấp dịch vụ thứ ba Nhưng S-CSCF có nhiệm vụ phải quyết định có kết nối với một máy chủ ứng dụng nào trong cài đặt phiên hay không Một điểm... của IMS vì máy chủ ứng dụng là các thực thể cung cấp các dịch vụ đa phương tiện trong kiến trúc IMS, như Presence và Push to talk trong mạng tế bào Chức năng của máy chủ ứng dụng là: • Khả năng xử lý và tác động đến các phiên SIP nhận được từ IMS • Khả năng khởi tạo các yêu cầu SIP • Khả năng gửi các thông tin thanh toán để thực hiện các chức năng tính cước Giá trị chính của IMS trong lĩnh vực dịch vụ. .. và SIP, đặc tả này có thể định nghĩa SipApplicationSession là một đối tượng session ở mức ứng dụng Đối tượng SipApplicationSession có thể hoạt động như một lớp cha với các phiên HTTP và SIP trong một ứng dụng SipApplicationSession phục vụ hai mục đích: cung cấp kho chứa dữ liệu cho ứng dụng và phối hợp với một số protocol session Kết luận SIP ngày càng trở nên phổ biến và đã trở thành một giao thức. .. S-CSCF phục vụ người dùng • Initial filter criteria: chứa các thông tin kích hoạt cho một dịch vụ Một máy chủ ứng dụng có thể chỉ cần lấy các tiêu chí lọc khởi tạo để định tuyến bản tin SIP tới máy chủ ứng dụng yêu cầu • Location information: chứa vị trí của người dùng trong mạng chuyển mạch gói hay mạng chuyển mạch kênh • User state: chứa trạng thái của người dùng trong mạng chuyển mạch gói hay mạng chuyển