2.1.2.1 Máy chủ
Là một chƣơng trình ứng dụng chấp nhận các bản tin yêu cầu từ máy khách để phục vụ các yêu cầu này và gửi trả các đáp ứng cho các yêu cầu đó. Ta có các loại máy chủ sau:
Ngƣời dùng là thiết bị đầu cuối trong mạng SIP, có thể là một máy điện thoại SIP, có thể là máy tính chạy phần mềm đầu cuối SIP
Máy chủ ủy quyền: là một chƣơng trình trung gian, hoạt động nhƣ là một
máy chủ và một máy khách cho mục đích tạo các yêu cầu thay mặt cho các máy khách khác. Các yêu cầu đƣợc phục vụ bên trong hoặc truyền chúng đến các máy chủ khác. Một máy chủ ủy quyền có thể dịch và nếu cần thiết có thể tạo lại các bản tin yêu cầu SIP trƣớc khi chuyển chúng đến máy chủ khác hoặc ngƣời dùng.
Máy chủ định vị: là phần mềm định vị thuê bao, cung cấp thông tin về
những vị trí có thể của thuê bao bị gọi cho các phần mềm máy chủ ủy quyền và máy chủ chuyển đổi địa chỉ
Máy chủ chuyển đổi địa chỉ: là phần mềm nhận yêu cầu SIP và chuyển
đổi địa chỉ SIP sang một số địa chỉ khác và gửi lại cho đầu cuối. Không giống nhƣ máy chủ ủy quyền, máy chủ chuyển đổi địa chỉ không bao giờ hoạt động
nhƣ một đầu cuối, tức là không gửi đi bất cứ yêu cầu nào. Máy chủ chuyển đổi địa chỉ cũng không nhận hoặc huỷ cuộc gọi.
Máy chủ đăng ký: là phần mềm nhận các yêu cầu đăng ký. Trong nhiều
trƣờng hợp máy chủ đăng ký đảm nhiệm luôn một số chức năng an ninh nhƣ xác nhận ngƣời sử dụng. Thông thƣờng máy chủ đăng ký đƣợc cài đặt cùng với máy chủ ủy quyền và máy chủ hay địa chỉ hoặc cung cấp dịch vụ định vị thuê bao. Mỗi lần đầu cuối đƣợc bật lên (ví dụ máy điện thoại hoặc phần mềm SIP) thì đầu cuối lại đăng ký với máy chủ. Nếu đầu cuối cần thông báo cho máy chủ về địa điểm của mình thì bản tin đăng ký cũng đƣợc gửi đi. Nói chung các đầu cuối đều thực hiện việc đăng ký lại một cách định kỳ.
Trong IMS, HSS đóng vai trò nhƣ một máy chủ đăng ký chứa cơ sở dữ liệu về thuê bao và dịch vụ thuê bao đã đăng ký. S-CSCF chính là máy chủ định vị, đảm nhiệm phục vụ một nhóm thuê bao trong mạng đó hoặc chuyển vùng sang mạng IMS. I-CSCF thực hiện chức năng nhƣ một máy chủ chuyển đổi địa chỉ, giao tiếp với S-CSCF của mạng khác khi UE sử dụng dịch vụ liên mạng.
Hình 2.1 Cấu trúc SIP
2.1.2.2 Máy khách
Máy khách trong giao thức SIP chính là các thiết bị mà ngƣời dùng sử dụng để khởi tạo yêu cầu SIP đến các máy chủ. Thiết bị này có thể là các thiết bị phần cứng hỗ trợ chuẩn SIP nhƣ điện thoại IP hay là phần mềm hỗ trợ chuẩn SIP nhƣ Express Talk, Sidefisk,… hay hỗ trợ cả IMS nhƣ: Mercuro IMS Client, UCT Client, OpenIC_Lite,. . .
2.1.3 Bản tin SIP
SIP sử dụng các bản tin để khởi tạo, hiệu chỉnh và kết thúc phiên giữa các ngƣời dùng.
Bảng 2.1 Bản tin yêu cầu SIP
Bản tin Ý nghĩa
INVITE Khởi tạo một phiên
ACK Khẳng định rằng client đã nhận đƣợc bản tin đáp ứng cho bản tin INVITE BYE Yêu cầu kết thúc phiên
CANCEL Yêu cầu kết thúc phiên
REGISTER Đầu cuối SIP đăng ký với máy chủ đăng ký OPTIONS Đầu cuối SIP đăng ký với máy chủ đăng ký
INFO Sử dụng để tải các thông tin Bảng 2.2 Bản tin đáp ứng SIP
Bản tin Ý nghĩa
1xx Các bản tin chung 2xx Thành công
3xx Chuyển địa chỉ
4xx Yêu cầu không đƣợc đáp ứng 5xx Sự cố Server
6xx Sự cố toàn mạng
2.1.4 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
Hoạt động của máy chủ ủy quyền đƣợc trình bày nhƣ trong hình 2.2 Client SIP userA@yahoo.com gửi bản tin đăng ký cho userB@hotmail.com để mời tham gia cuộc gọi.
Hình 2.2 Mô tả hoạt động của máy chủ ủy quyền Các bƣớc nhƣ sau:
Bƣớc 1: userA@yahoo.com gửi bản tin INVITE cho UserB ở miền hotmail.com, bản tin này đến máy chủ ủy quyền SIP của miền hotmail.com (Bản tin INVITE có thể đi từ Máy chủ ủy quyền SIP của miền yahoo.com và đƣợc Proxy này chuyển đến Máy chủ ủy quyền của miền hotmail.com).
Bƣớc 2: Máy chủ ủy quyền của miền hotmail.com sẽ tham khảo máy chủ đị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à UserB@hotmail.com).
Bƣớc 4: Máy chủ ủy quyền gửi bản tin INVITE tới userB@hotmail.com. Máy chủ ủy quyền 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: Máy chủ ủy quyền gửi đáp ứng 200 OK trở về userA@yahoo.com.
Bƣớc 7: userA@yahoo.com gửi bản tin ACK cho UserB thông qua máy chủ ủy quyền.
Bƣớc 8: Máy chủ ủy quyền huyển bản tin ACK cho userB@hostmail.com 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ỉ:
Hình 2.3 Mô tả hoạt động của máy chủ chuyển đổi địa chỉ Các bƣớc nhƣ sau:
Bƣớc 1: Máy chủ chuyển đổi địa chỉ 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 máy chủ ủy quyền khác).
Bƣớc 2: Máy chủ chuyển đổi địa chỉ truy vấn server định vị địa chỉ của B. Bƣớc 3: Máy chủ định vị trả lại địa chỉ của B cho Máy chủ chuyển đổi địa chỉ.
Bƣớc 4: Máy chủ chuyển đổi địa chỉ 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ƣ máy chủ ủy quyền.
Bƣớc 5: User Agent bên A gửi lại bản tin ACK đến Máy chủ chuyển đổi địa chỉ để 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 Máy chủ chuyển đổi địa chỉ (đế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.
Tổng quát lại trong mạng SIP quá trình thiết lập và hủy một phiên kết nối: Quá trình thiết lập và hủy cuộc gọi SIP cơ bản đƣợc mô tả trong hình 2.4 1. Đăng ký, khởi tạo và định vị đầu cuối
2. Xác định phƣơng tiện của cuộc gọi, tức là mô tả phiên mà đầu cuối đƣợc mời tham gia
3. Xác định mong muốn của đầu cuối bị gọi, trả lời hay không. Phía bị gọi phải gửi bản tin xác nhận chấp thuận cuộc gọi hay từ chối.
4. Thiết lập cuộc gọi
5. Thay đổi hay điều khiển cuộc gọi (ví dụ nhƣ chuyển cuộc gọi) 6. Hủy cuộc gọi
Hình 2.4 Thiết lập và hủy cuộc gọi SIP
2.1.5 Tính năng của SIP
Giao thức SIP đƣợc thiết kế với những chỉ tiêu sau: Tích hợp với các giao thức đã có của IETF. Đơn giản và có khả năng mở rộng. Hỗ trợ tối đa sự di động của đầu cuối. Dễ dàng tạo tính năng mới cho dịch vụ.
2.1.5.1 Tích hợp với các giao thức đã có của IETF
Các giao thức khác của IETF có thể xây 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 (Resource Reservation Protocol): Giao thức giành trƣớc tài nguyên mạng.
- RTP (Real-time transport Protocol): Giao thức truyền tải 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 trong 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): Giao thức thƣ điện tử.
- 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ở.
2.1.5.2 Đơn giản và có khả năng mở rộng
SIP có rất ít bản tin, không có các chức năng thừa nhƣng SIP có thể sử dụng để thiết lập những phiên kết nối phức tạp nhƣ hội nghị… Đơn giản, gọn nhẹ, dựa trên khuôn dạng văn bản, SIP là giao thức ra đời sau và đã khắc phục đƣợc điểm yếu của nhiều giao thức trƣớc đây.
Các phần mềm của máy chủ ủy quyền, máy chủ đăng ký, máy chủ chuyển đổi địa chỉ, máy chủ định vị… có thể chạy trên các máy chủ khác nhau và việc cài đặt thêm máy chủ hoàn toàn không ảnh hƣởng đến các máy chủ đã có. Chính vì thế hệ thống chuyển mạch SIP có thể dễ dàng nâng cấp.
2.1.5.3 Hỗ trợ tối đa sự di động của đầu cuối
Do có máy chủ ủy quyền, máy chủ đăng ký và máy chủ chuyển đổi địa chỉ hệ thống luôn nắm đƣợc địa điểm chính xác của thuê bao. Thí dụ thuê bao với địa chỉ ptit@vnpt.com.vn có thể nhận đƣợc cuộc gọi thoại hay thông điệp ở bất cứ địa điểm nào qua bất cứ đầu cuối nào nhƣ máy tính để bàn, máy xách tay, điện thoại SIP… Với SIP rất nhiều dịch vụ di động mới đƣợc hỗ trợ.
2.1.5.4 Dễ dàng tạo tính năng mới và dịch vụ mới.
Là giao thức khởi tạo phiên trong mạng chuyển mạch gói SIP cho phép tạo ra những tính năng mới hay dịch vụ mới một cách nhanh chóng. Ngôn ngữ xử lý cuộc gọi (Call Processing Language) và Giao diện cổng kết nối chung (Common Gateway Interface) là một số công cụ để thực hiện điều này. SIP hỗ trợ các dịch vụ thoại nhƣ chờ cuộc gọi, chuyển tiếp cuộc gọi, khóa cuộc gọi… (call waiting, call forwarding, call blocking…), hỗ trợ thông điệp thống nhất…
2.2 Giao thức Diameter [10]
2.2.1 Tổng quan về giao thức Diameter
Ban đầu, ngƣời dùng muốn truy cập vào internet đến một Server cụ thể nào đó, ngƣời đó phải cung cấp thông tin về ngƣời sử dụng và mật khẩu. Trong hầu hết các trƣờng hợp, thông tin về ngƣời sử dụng và mật khẩu không đƣợc lƣu ở máy chủ đáp ứng truy cập mà đƣợc lƣu ở một nơi khác. Do đó nảy sinh vấn đề cần một giao thức truyền thông đáng tin cậy để trao đổi thông tin giữa máy chủ truy cập và máy lƣu thông tin về ngƣời sử dụng và mật khẩu. Vì thế, vào 1995 RADIUS ra đời, đƣợc dùng để chứng thực, quản lý quyền truy cập dịch vụ, thông tin tài khoản ngƣời dùng.
Khi công nghệ di động ngày càng phát triển thì RADIUS không đáp ứng đƣợc yêu cầu về QoS và không hỗ trợ chuyển vùng. Điều này là một trở ngại lớn trong sự phát triển dịch vụ. Một yêu cầu đặt ra là tìm ra một công nghệ mới không chỉ đáp ứng đƣợc tính năng của RADIUS mà còn khắc phục đƣợc những nhƣợc điểm của giao thức này. Đến 1996, IETF chuẩn hóa Diameter trong RFC 3588. Giao thức này thỏa mãn các yêu cầu đặt ra ở trên.
Giao thức Diameter chia ra 2 phần: Diameter Base Protocol và Diameter Application. Diameter Base Protocol cần thiết cho việc phân phối các đơn vị dữ liệu, khả năng thƣơng lƣợng, kiểm soát lỗi và khả năng mở rộng. Diameter Application định nghĩa những ứng dụng dữ liệu riêng. Tại thời điểm này, ngoài ứng dụng chuẩn trong RFC3588, một số ứng dụng đã đƣợc định nghĩa nhƣ: Mobile IP, NASREQ, EAP, Diameter điều khiển tính phí và ứng dụng Diameter trong giao thức SIP,… Diameter là giao thức truyền thông hoạt động trên giao diện Sh giữa HSS, AS, S-CSCF.
2.2.2 Cấu trúc giao thức Diameter
Trong Diameter có 3 thành phần chính là Server, Client và Agent. Client là một thiết bị ở biên, thực hiện các truy vấn và sử dụng dịch vụ. Một Diameter Agent thực hiện chức năng nhƣ một Proxy, Relay, Redirect Agent và dịch các bản tin. Diameter Server quản lý các yêu cầu về AAA cho một hệ thống.
2.2.2.1 Diameter Relay Agent
Diameter Relay Agent là một thực thể chấp nhận các yêu cầu và định tuyến các bản tin đến một thực thể khác dựa trên thông tin tìm đƣợc trong bản tin nhƣ tên miền đích đến của bản tin. Thông tin định tuyến này đƣợc thực hiện dựa vào bảng định tuyến đƣợc lƣu trữ tại các nút mạng. Bảng định tuyến này chứa các trƣờng sau: tên miền, mã ứng dụng, hoạt động cục bộ, nhận dạng Server, cấu hình tĩnh hoặc động, thời gian hết hạn.
Mã ứng dụng đƣợc dùng nhƣ trƣờng quan trọng thứ 2 để tìm kiếm một entry. Trƣờng hoạt động cục bộ chứa một trong bốn giá trị: Local, Relay, Proxy, Redirect. Dựa vào trƣờng này mà Diamter Relay sẽ biết xử lý gói tin hay chuyển tiếp gói tin. Trƣờng nhận dạng Server để xác định nút mạng kế tiếp cần đi đến. Cấu hình tĩnh hay động cho biết entry này đƣợc cấu hình tĩnh hoặc tự động tìm ra nút kết tiếp. Nếu là cấu hình động thì có thời gian hết hạn mà entry đó phải đƣợc cập nhật lại.
Tổng hợp những yêu cầu đến các miền khác nhau và phân bố gói tin đến đích thích hợp giúp giảm nhẹ cấu hình máy chủ truy cập cũng nhƣ thuận tiện cho việc thay thế, thêm hoặc bỏ máy chủ truy cập.
Diameter Relay Agent thay đổi bản tin bằng cách chèn vào hoặc bỏ các thông tin định tuyến mà không thay đổi bất kì phần nào khác của bản tin. Relay Agent sẽ không duy trì trạng thái phiên mà chỉ duy trì trạng thái giao dịch để thực hiện chức năng Accouting.
2.2.2.2 Diameter Proxy Agent
Giống nhƣ Relay, Proxy Agent định tuyến các bản tin Diameter sử dụng bảng định tuyến. Tuy nhiên, giữa hai thành phần có sự khác nhau về cách thay đổi bản tin để thực hiện chính sách
Hình 2.6 Diameter Proxy Agent định tuyến các bản tin dựa vào bảng định tuyến
2.2.2.3 Diameter Redirect Agent
Hình 2.7 Diameter Redirect Agent
Diameter Reditect Agent thực hiện việc định tuyến các bản tin sang tên miền khác. Nó cũng sử dụng bảng định tuyến để xác định chặng tiếp theo của đƣờng đi đến đích đã đƣợc yêu cầu. Thay vì tự định tuyến những yêu cầu, Redirect Agent sẽ đáp ứng lại địa chỉ của chặng kết tiếp để Proxy Agent định tuyến.
2.2.2.4 Diameter Translation Agent
Hình 2.8 Diameter Translation Agent
Diameter Translation Agent là thành phần thực hiện việc chuyển đổi dịch vụ giữa Diameter và một giao thức thực hiện chức năng AAA khác. Translation Agent sử dụng để tƣơng thích với các dịch vụ trên cơ sở hạ tầng mạng sẵn có phổ biến nhƣ RADIUS, TACACS,….
2.2.3 Bản tin
Bản tin Diameter chứa một header và một số cặp giá trị thuộc tính AVP. Header gồm nhiều trƣờng với dữ liệu dạng nhị phân giống header của giao thức IP.
Hình 2.9 Cấu trúc bản tin trong giao thức Diameter
2.2.3.1 Cấu trúc Diameter header
Hình 2.10 Cấu trúc header của Diameter
Version: đƣợc thiết lập bằng 1 ứng với phiên bản hiện nay của giao thức
Diameter là 1.
Command Flags: trƣờng này dài 8 bit. Có dạng RPETrrrr, có ý nghĩa nhƣ
sau:
+ R (request): nếu bằng 1, đây là bản tin yêu cầu. Nếu bằng 0 là bản tin đáp ứng.
+ P (proxiable): nếu bằng 1, bản tin có thể chuyển tiếp bởi Proxy, Relay hoặc Redirect. Nếu bằng 0 thì bản tin sẽ đƣợc xử lý tại nút
+ E (error): Nếu bằng 1, bản tin đáp ứng chứa lỗi giao thức, và bản tin sẽ không phù hợp với mô tả ABNF. Nếu bằng 0 trong bản tin yêu cầu và không lỗi.
+ T (potentially re-transmitted masage): Bit này bằng 1 khi liên kết bị đứt, bản tin yêu cầu bị trùng hoặc không có trả lời từ Server
+ r: dự trữ, luôn bằng 0
Command Code: trƣờng này dài 24 bit, đƣợc quản lý bởi IANA, giá trị
từ 0- 24 dùng riêng cho RADIUS, 16777214 và 16777215 dùng thí nghiệm, các số còn lại dùng trong giao thức DIAMETER.
Application-ID: dài 32 bit, dùng để xác định tên ứng dụng do IANA quản
lý. Ứng dụng có thể là một ứng dụng dành cho việc chứng thực, một ứng dụng quản lý tài khoản ngƣời dùng hoặc một ứng dụng cụ thể của một nhà sản xuất