Mục lục
Danh mục các bảng 5
Danh mục các hình 6
Danh sách các từ viết tắt 8
Phần I: giới thiệu về hệ thống IMS 12
1. Tổng quan về hệ thống IMS 12
1.1 IMS là gì 12
1.2 Đôi nét về quá trình chuẩn hóa IMS 14
1.3 Lợi ích IMS mang lại 15
Phần II: các thành phần trong hệ thống IMS 18
2. Thiết bị đầu cuối UE 18
2.1 Nhận dạng người dùng 18
2.2 Nhận dạng thiết bị 22
Phần III: Chức năng các thành phần trong hệ thống IMS 25
3. Chức năng điều khiển cuộc gọi CSCF 25
3.1 P-CSCF 25
3.2 I-CSCF 33
3.3 S-CSCF 35
4. Cơ sở dữ liệu HSS, SLF 38
4.1 HSS 38
4.2 SLF 39
5. Chức năng quyết định chính sách PDF 40
6. Chức năng dự trữ tài nguyên MRF 40
7. Chức năng kết hợp với mạng CS CN 42
7.1 BGCF 42
7.2 MGCF 42
7.3 IMS- MGW 43
7.4 SGW 44
8. Chức năng kết hợp với mạng PS 44
8.1 SGSN 44
8.2 GGSN 45
9. Điểm tham chiếu trong hệ thống IMS 45
9.1 Điểm tham chiếu Gm 45
9.2 Điểm tham chiếu Go 46
9.3 Điểm tham chiếu Mw 47
9.4 Điểm tham chiếu Mp 48
9.5 Điểm tham chiếu Mn 48
9.6 Điểm tham chiếu Dx 49
9.7 Điểm tham chiếu Cx 50
9.8 Điểm tham chiếu ISC 51
Phần IV: Một số thủ tục thiết lập phiên trong IMS 53
10. Thủ tục liên quan đến đăng ký 53
10.1 Thủ tục đăng ký 53
10.2 Thủ tục đăng ký lại 55
11. Thủ tục xóa đăng ký 56
11.1 Xóa đăng ký khởi tạo bởi UE 56
11.2 Xóa đăng ký khởi tạo bởi nhà khai thác mạng 58
12. Thủ tục thiết lập phiên trong mạng IMS 62
12.1 Thủ tục thiết lập phiên giữa 2 mạng IMS 62
12.2 Thủ tục thiết lập cuộc gọi giữa mạng IMS và mạng PSTN 65
Phần VI: Các giao thức sử dụng trong hệ thống IMS 69
13. SIP 69
13.1 Tổng quan về SIP 69
13.2 Các thành phần chính 71
13.3 Cấu trúc bản tin SIP 76
14. DIAMETER 86
14.1 Tổng quan về DIAMETER 86
14.2 Các thành phần chính 87
14.3 Cấu trúc bản tin Diameter 91
14.4 Bảo mật trong bản tin Diameter 97
14.5 Kiểm soát lỗi 98
14.6 Kết nối và phiên trong Diameter 100
14.7 Dịch vụ trong Diameter 101
15. COPS 103
15.1 Giới thiệu về COPS 103
15.2 Chức năng chính của COPS 105
15.3 Bản tin COPS 105
16. MEGACO/H.248 109
16.1 Tổng quan về MEGACO/H.248 109
16.2 Cấu trúc Gateway trong MEGACO/H.248 111
16.3 Termination và Context 112
16.4 Một số lệnh trong MEGACO/H.248 113
16.5 Hoạt động của MEGACO/H.248 115
Phần VII: Tổng kết 117
118 trang |
Chia sẻ: banmai | Lượt xem: 2734 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Ims - IP Multimedia Subsystem, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
xóa đăng kí từ mặt phẳng điều khiển dịch vụ và thực hiện bất kì các thủ tục điều khiển dịch vụ hợp lí nào. Thông tin này có thể bao gồm cả lí do xóa đăng ký.
Bước 2: S-CSCF gởi bản tin Deregister xóa đăng ký về phía P-CSCF và cập nhật cơ sở dữ liệu bên trong của nó để xóa đăng kí UE. Lí do xóa đăng ký cũng được truyền đi nếu có thể
Bước 3: P-CSCF sẽ thông báo cho UE lý do xóa đăng ký trừ khi không kết nối được với UE
Bước 4: P-CSCF gửi đáp ứng tới S-CSCF và cập nhật cơ sở dữ liệu bên trong của nó để xóa đăng ký của UE.
Bước 5: Khi có thể, UE gửi một đáp ứng tới P-CSCF để báo nhận xóa đăng kí. Một UE không có khả năng giao tiếp hoặc nằm ngoài P-CSCF sẽ không thể trả lời cho yêu cầu xóa đăng kí. P-CSCF sẽ thực hiện xóa đăng kí trong bất kì trường hợp
Bước 6: Tùy thuộc vào nhà khai thác, S-CSCF có thể gửi là bản tin Cx-put (nhận dạng thuê bao chung, nhận dạng thuê bao riêng, xóa tên S-CSCF) hoặc Cx-Put (nhận dạng thuê bao chung, nhận dạng thuê bao riêng, giữ tên S-CSCF) với thuê bao không đăng kí dài lâu ở S-CSCF. Sau đó HSS sẽ xóa hoặc giữ lại tên của S-CSCF cho thuê bao đó tùy theo yêu cầu. Trong cả hai truờng hợp đó, trạng thái nhận dạng thuê bao được lưu trữ như chưa được đăng kí ở HSS. Nếu như tên của S-CSCF được giữ lại thì HSS sẽ cho phép xóa sự phục vụ của S-CSCF bất cứ lúc nào.
Bước 7: HSS sẽ gửi Cx-Put Resp tới S-CSCF để báo nhận sự gửi Cx-Put.
Thủ tục thiết lập phiên trong mạng IMS
Thủ tục thiết lập phiên giữa 2 mạng IMS
Khi một thuê bao IMS (UE#1) cần thiết lập phiên đến một thuê bao IMS khác (UE#2) thì quá trình thiết lập phiên được thực hiện như sau:
Hình 111Các bước thực hiện việc xóa đăng ký được thực hiện bởi S-CSCF
Bước 1: Sau khi biết được địa chỉ của P-CSCF#1, UE#1 gởi bản tin INVITE đến P-CSCF
Bước 2: P-CSCF#1 kiểm tra các thông số truyền thông. Nếu các thông số không phù hợp với chính sách mạng IMS đưa ra, P-CSCF#1 sẽ loại bỏ việc khởi tạo phiên.
Bước 3: P-CSCF#1 chuyển tiếp bản tin INVITE đến S-CSCF#1 mà UE#1 đã biết khi đăng ký.
Bước 4: S-CSCF#1 có thể truy cập AS để kiểm tra và đáp ứng yêu cầu về dịch vụ cho UE
Bước 5: S-CSCF chuyển tiếp bản tin đến I-CSCF#2
Bước 6: I-CSCF#2 truy vấn HSS để tìm địa chỉ của S-CSCF#2 ứng với UE#2
Bước 7: I-CSCF#2 chuyển tiếp bản tin INVITE đến S-CSCF#2
Bước 8: S-CSCF có thể truy cập AS để kiểm tra và đáp ứng các dịch vụ mà bản tin INVITE yêu cầu
Bước 9: S-CSCF chuyển bản tin INVITE đến P-CSCF#2 theo địa chỉ đã thiết lập khi UE#2 đăng ký
Bước 10: P-CSCF#2 sẽ kiểm tra các thông số trong bản tin INVITE. Nếu những thông số không phù hợp với chính sách đặt ra thì sẽ từ chối thiết lập phiên
Bước 11: P-CSCF#2 chuyển bản tin INVITE đến UE#2
Bước 12-17: tín hiệu chuông được chuyển từ UE#2 đến UE#1
Bước 18: thiết lập các thông số dự trữ tài nguyên
Bước 19: UE#2 chấp nhận thiết lập phiên bằng cách gởi bản tin 200 OK đến P-CSCF#2
Bước 20: Tùy thuộc vào chính sách của nhà khai thác dịch vụ mà P-CSCF#2 sẽ cho phép tài nguyên cần thiết
Bước 21-24: bản tin 200 OK được chuyển về UE#1
Bước 25: Tùy thuộc vào chính sách của nhà khai thác dịch vụ mà P-CSCF#1 sẽ cho phép tài nguyên cần thiết
Bước 26: Bản tin 200 OK được gởi từ P-CSCF đến UE#1
Bước 27-31: Bản tin ACK được gởi từ UE#1 đến UE#2 để xác nhận thiết lập phiên
Bước 32: Cuộc gọi được thiết lập, luồng thông tin đa phương tiện truyền giữa UE#1 và UE#2
Thủ tục thiết lập cuộc gọi giữa mạng IMS và mạng PSTN
Hình 112Mô hình thiết lập cuộc gọi giữa UE (IMS) và UE (PSTN)
Các bước thực hiện
Hình 113Các bước thiết lập cuộc gọi giữa UE (IMS) và UE (PSTN)
Bước 1: UE gởi bản tin INVITE đến P-CSCF để khởi tạo phiên, sau đó P-CSCF dựa vào tên S-CSCF đã được gán cho UE trong bản tin mà sẽ chuyển tiếp bản tin đến S-CSCF tương ứng.
Bước 2: S-CSCF thực hiện bất kì một logic điều khiển dịch vụ nào phù hợp để thiết lập phiên
Bước 3: S-CSCF thực hiện phân tích địa chỉ đích để xác định được rằng thuê bao đích thuộc PSTN và phải chuyển yêu cầu tới BGCF.
Bước 4: BGCF xác định MGCF ở cùng mạng, vì vậy cần phải lựa chọn một MGCF phù hợp. Yêu cầu INVITE được chuyển tới MGCF. Thông tin kết cuối PSTN được chuyển đi sau.
Bước 5-7: Các khả năng truyền thông của thuê bao đích được phản hồi theo tuyến báo hiệu như trả lời SDP, như các thủ tục kết cuối PSTN.
Bước 8: Người khởi tạo quyết định đưa ra các phương tiện truyền thông và chuyển tiếp thông tin này tới S-CSCF bằng các thủ tục khởi tạo.
Bước 9-10: S-CSCF chuyển tiếp SDP đã được đưa ra tới các điểm đầu cuối phía kết cuối như các thủ tục kết cuối PSTN thông qua phiên đã thiết lập.
Bước 11-13: Các điểm đầu cuối phía kết cuối trả lời SDP đã đưa ra và bản tin thông báo này được chuyển qua phiên đã thiết lập tới các điểm đầu cuối phía khởi tạo.
Bước 14-16: Khi điểm đầu cuối phía khởi tạo hoàn thành thủ tục đặt trước tài nguyên, nó sẽ gửi thông báo đặt trước tài nguyên thành công tới S-CSCF bằng các thủ tục khởi tạo và được chuyển tới điểm đầu cuối phía kết cuối thông qua tuyến phiên.
Bước 17-19: Điểm đầu cuối phía kết cuối bao nhận kết quả và thông báo này được chuyển tới điểm đầu cuối phía khởi tạo thông qua tuyến phiên.
Bước 20-21: Điểm đầu cuối phía kết cuối phát ra bản tin báo hiệu chuông và chuyển tiếp nó tới BGCF, sau đó BGCF chuyển tiếp bản tin tới S-CSCF.
Bước 22: S-CSCF chuyển tiếp bản tin báo hiệu chuông đó tới người khởi tạo bằng các thủ tục khởi tạo.
Bước 23: Khi người dùng đích trả lời, các kết quả của thủ tục kết cuối được chứa trong đáp ứng SIP 200 OK tới BGCF.
Bước 24-25: BGCF chuyển thông tin này tới S-CSCF và sau đó nó được chuyển tiếp tới điểm đầu cuối phía khởi tạo.
Bước 26: Bản tin 200 OK được đáp trả lại điển đầu cuối khởi tạo bằng các thủ tục khởi tạo từ điểm đầu cuối kết cuối.
Bước 27: Điểm đầu cuối phía khởi tạo gửi báo nhận cuối cùng tới S-CSCF bằng các thủ tục khởi tạo.
Phần VI: Các giao thức sử dụng trong hệ thống IMS
SIP
Tổng quan về SIP
Định nghĩa SIP
Theo định nghĩa của IETF, SIP là “giao thức báo hiệu lớp ứng dụng mô tả việc khởi tạo, thay đổi và huỷ các phiên kết nối tương tác đa phương tiện giữa những người sử dụng”. SIP có thể sử dụng cho rất nhiều các dịch vụ khác nhau trong mạng IP như dịch vụ thông điệp, thoại, hội nghị, email, dạy học từ xa, quảng bá, …
SIP sử dụng khuôn dạng text, một khuôn dạng thường gặp trong mạng IP. Nó kế thừa các các nguyên lý và khái niệm của các giao thức Internet như HTTP và SMTP. Nó được định nghĩa như một giao thức client-server, trong đó các yêu cầu được phía client đưa ra và các đáp ứng được server trả lời. SIP sử dụng một số kiểu bản tin và các trường header của HTTP, xác định nội dung luồng thông tin theo header.
Đặc điểm SIP
Đơ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 text, SIP là giao thức ra đời sau khắc phục được nhược điểm của các giao thức trước đây.
Các thực thể proxy server, registrar server, redirect server, location server,… là các thực thể logic, hay đơn giản chúng là các phần mềm có thể chạy trên các máy chủ khác nhau. Do đó hệ thống SIP rất dễ dàng nâng cấp.
Hỗ trợ tối đa sự di động của đầu cuối
Do có Proxy server, Registrar server và Redirect server, hệ thống luôn nắm được vị trí chính xác của thuê bao. Một người sử dụng có thể đăng nhập vào bất kỳ hệ thống đầu cuối nào (máy tính để bàn, máy tính xách tay, PDA, điện thoại SIP) tại bất kỳ địa điểm nào đều có khả năng hoạt động như nhau.
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. CPL và CGI 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ư call waiting, call forwarding, call blocking, ….
SIP là một công cụ hỗ trợ hấp dẫn đối với điện thoại IP
SIP có thể hoạt động vô trạng thái hoặc có trạng thái. Vì vậy, sự hoạt động vô trang thái cung cấp sự mở rộng tốt do các server không phải duy trì thông tin về trạng thái cuộc gọi một khi sự giao dịch đã được xử lý.
SIP có thể sử dụng nhiều dạng hoặc cú pháp giao thức chuyển siêu văn bản HTTP, vì vậy, nó có thể hoạt động trên các trình duyệt một cách thuận lợi.
Bản tin SIP có phần nội dung bản tin thì có thể linh động thay đổi, nó có thể là bất cứ cú pháp nào. Vì vậy, nó có thể được mô tả theo nhiều cách. Chẳng hạn, nó có thể được mô tả với sự mở rộng như Internet đa mục đích MINE hoặc ngôn ngữ đánh dấu mở rộng XML.
SIP nhận dạng một người dùng với bộ định vị tài nguyên đồng nhất URL, vì vậy nó cung cấp cho người dùng khả năng khởi tạo cuộc gọi bằng cách nhấp vào một liên kết trên trang web.
Chức năng chính
User location: xác định hệ thống kết cuối để sử dụng cho việc truyền thông.
User availability: xác định trạng thái tính sẵn sàng của thuê bao bị gọi để bắt đầu thiết lập đường truyền.
User capabilities: xác định phương tiện và các thông số truyền dẫn được sử dụng.
Call setup: thiết lập các thông số của phiên cho cả thuê bao gọi và thuê bao bị gọi.
Call handling: tạo, kết thúc, và sửa đổi phiên.
Các thành phần chính
Một khía cạnh khác biệt của SIP đối với các giao thức xử lý cuộc gọi IP khác là không dùng khái niệm Gateway hay bộ điều khiển Gateway mà dựa vào mô hình server/client.
UA
UA là một điểm cuối giao tiếp với người dùng và hoạt động đại diện cho người dùng. UA là một ứng dụng chứa cả UAC và UAS.
UAC là phần người sử dụng được dùng để khởi tạo một yêu cầu SIP tới server SIP hoặc UAS.
UAS là một ứng dụng server giao tiếp với người dùng khi yêu cầu SIP được chấp nhận và trả lại một đáp ứng đại diện cho người dùng.
Server
Là một chương trình ứng dụng chấp nhận các bản tin yêu cầu từ Client để 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 server sau:
Proxy server
Là thành phần trung gian, hoạt động như là một server khi nhận các yêu cầu SIP từ Client hoặc với vai trò là một Client khi nó gởi các bản tin yêu cầu thay mặt cho các Client đến các Server kế tiếp trong mạng (có thể là một proxy server khác hoặc là một UAS ). Một proxy có thể dịch bản tin và nếu cần thiết nó có thể tạo lại bản tin yêu cầu SIP trước khi chuyển chúng đến server khác hoặc một UA. Trong trường hợp này trường Via trong bản tin đáp ứng, yêu cầu chỉ ra các proxy trung gian tham gia vào tiến trình xử lý yêu cầu. Proxy server nhận một yêu cầu từ client và quyết định server kế tiếp mà yêu cầu sẽ đi đến. Proxy này có thể gửi yêu cầu đến một server khác, một Redirect server hoặc UAS. Đáp ứng sẽ được truyền cùng đường với yêu cầu nhưng theo chiều ngược lại.
Hình 121Proxy Server
Ví dụ hoạt động của Proxy server:
Hình 122Hoạt động của Proxy Server
Hoạt động của Proxy server được trình bày như trong hình. Client SIP userA@yahoo.com gửi bản tin INVITE cho userB@hotmail.com để mời tham gia cuộc gọi.
Từng bước được mô tả 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 proxy server SIP của miền hotmail.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 hotmail.com).
Bước 2: Proxy server của miền hotmail.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à UserB@hotmail.com).
Bước 4: Proxy server gửi bản tin INVITE tới userB@hotmail.com. 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ề userA@yahoo.com.
Bước 7: userA@yahoo.com 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 userB@work.
Bước 9: Sau khi cả hai bên đồng ý tham gia cuộc gọi, một kênh RTP/RTCP được mở giữa hai điểm đầu 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 đầu cuối.
Redirect server
Là một server chấp nhận một yêu cầu SIP, ánh xạ địa chỉ trong yêu cầu thành một địa chỉ mới và trả lại địa chỉ này trở về client. Không giống như Proxy server, nó không khởi tạo một yêu cầu SIP và không chuyển các yêu cầu đến các Server khác. Redirect server không chuyển yêu cầu nhưng sẽ chỉ định client tiếp xúc trực tiếp với server kế tiếp, đáp ứng gửi lại client chứa địa chỉ của server kế tiếp. Nó không hoạt động được như là một client, nó không chấp nhận cuộc gọi.
Hình 123Redirect Server
Hoạt động của Redirect Server
Hình 124Hoạt động của Redirect Server
Các bước cụ thể được trình bày 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.
Registrar
Là một server chấp nhận yêu cầu đăng ký. Một Registrar được xếp đặt với một Proxy hoặc một server gửi lại và có thể đưa ra các dịch vụ định vị. Registrar được dùng để đăng ký các đối tượng SIP trong miền SIP và cập nhật vị trí hiện tại của chúng. Loại server này thường nằm ở gần hoặc nằm trong những loại server khác như là location server.
Location server
Cung cấp chức năng phân giải tên cho SIP Proxy hoặc Redirect Server. Sever này có thuật toán để phân giải tên. Các cơ chế này bao gồm một database của nhà đăng ký hoặc truy nhập đến những công cụ phân giải tên được sử dụng phổ biến như whois, LDAP, hoặc các hệ thống hoạt động độc lập khác. Registrar server có thể là một thành phần con của location server; registrar server chịu trách nhiệm một phần trong việc populating database mà được liên kết với location server
Cấu trúc bản tin SIP
Bản tin SIP có ba phần: startline, header, và message body
Hình 125Cấu trúc bản tin SIP
Start line
Startline có 2 loại: Request và Response
Start Line
Syntax
Request
Method Request – URI SIP - Version
Response
SIP-Version Status-Code Response-Phrase
Hình 126Cấu trúc phần start line trong bản tin SIP
12.3.1.1 Các trường trong bản tin Request
Trường method
Bảng 121Trường method trong bản tin SIP Request
Trường Method
Chức năng
INVITE
Khởi tạo một phiên (client gởi thông điệp đến Server)
ACK
Khẳng định rằng client đã nhận được bản tin đáp ứng cho bản tin INVITE
OPTIONS
Sử dụng để xác định năng lực của server
BYE
Yêu cầu kết thúc phiên
CANCEL
Huỷ yêu cầu đang nằm trong hàng đợi
REGISTER
Đầu cuối SIP đăng ký với Register server
SUBSCRIBE
The calling party requests an update regarding the presence information of the called party.
NOTIFY
Đưa ra trạng thái cập nhật những mô tả về thuê bao
MESSAGE
Sử dụng gởi bản tin tức thời
SIP-URI
Địa chỉ SIP hay còn được gọi là bộ định vị tài nguyên chung URL, tồn tại dưới dạng user@host. Phần user trong phần địa chỉ có thể là tên người dùng hoặc số điện thoại. Phần host có thể là tên miền hoặc địa chỉ mạng. ví dụ các địa chỉ SIP
Bảng 122Bảng ví dụ các SIP URL
SIP URL Format
sip:user@reskit.com
sip:user@reskit.com;transport=TCP
sip:user@172.16.20.54
sip:+1-425-707-9796@reskit.com;user=phone
sip:marketing@reskit.com;maddr=225.0.2.1;ttl=64
12.3.1.2 Bản tin SIP Respone có các trường
Status code (có 6 loại)
Bảng 123Trường Status Code trong bản tin SIP Response
Status code
Response category
Ý nghĩa
1xx
Informational
Thông báo cho biết yêu cầu đang được tiến hành
2xx
Success
Mã thông báo yêu cầu đã hoàn tất và thành công
3xx
Redirection
Mã định hướng lại
4xx
Client Error
Mã thông báo yêu cầu của client bị sai hoặc hệ thống không hoàn tất được
5xx
Server Error
Mã cho biết yêu cầu hợp lệ nhưng server không thể hoàn tất được
6xx
Global Failures
Báo hiệu rằng yêu cầu không được thi hành bởi bất cứ server nào
Các Response-Phrase tương ứng với các loại status code
Bảng 124Các Response-Phrase tương ứng với các loại status code
Status Code
Response Category
Response Phrase
Ý nghĩa
100
Informational
Trying
đang thử
180
Informational
Ringing
Đang đổ chuông
181
Informational
Call is being forwarded
Cuộc gọi đang được chuyển hướng
182
Informational
Queued
Đang xếp hàng đợi
200
Success
OK
thành công
300
Redirection
Multiple choices
Có nhiều lựa chọn
301
Redirection
Moved permanently
Đã dời đi vĩnh viễn
302
Redirection
Moved temporarily
Đã tạm thời dời đi
303
Redirection
See other
xem phần khác
305
Redirection
Use proxy
Dùng Proxy
380
Redirection
Alternative service
Dịch vụ thay thế
400
Client Error
Bad request
Yêu cầu sai
401
Client Error
Unauthorized
Không được quyền
402
Client Error
Payment required
Yêu cầu trả tiền
403
Client Error
Forbidden
Cấm
404
Client Error
Not found
Không tìm thấy
405
Client Error
Method not allowed
Phương thức không được phép
406
Client Error
Not acceptable
Không được chấp nhận
407
Client Error
Proxy authentication required
Cần có sự cấp phép cho proxy
408
Client Error
Request timeout
Yêu cầu bị hết giờ
409
Client Error
Conflict
Xung đột
410
Client Error
Gone
Người dùng đã từng tồn tại, nhưng không còn ở đây nữa
411
Client Error
Length required
413
Client Error
Request entity too large
Đơn vị yêu cầu quá lớn
414
Client Error
Request-URI too large
URI của yêu cầu quá dài
415
Client Error
Unsupported media type
Kiểu phương tiện không được hỗ trợ
420
Client Error
Bad extension
Phần mở rộng không đúng
480
Client Error
Temporarily not available
Tạm thời không hoạt động
481
Client Error
Call leg/transaction does not exist
Cuộc gọi/Giao dịch không tồn tại
482
Client Error
Loop detected
Phát hiện thấy lặp
483
Client Error
Too many hops
Quá nhiều chặng trung chuyển
484
Client Error
Address incomplete
Địa chỉ không hoàn chỉnh
485
Client Error
Ambiguous
Tối nghĩa
486
Client Error
Busy here
Đang bận
500
Server Error
Internal server error
Lỗi bên trong máy chủ
501
Server Error
Not implemented
Phương thức yêu cầu SIP này chưa được khai báo ở đây
502
Server Error
Bad gateway
Gateway sai
503
Server Error
Service unavailable
Dịch vụ không có
504
Server Error
Gateway time-out
Máy chủ bị hết giờ
505
Server Error
SIP version not supported
Phiên bản không được hỗ trợ: máy chủ không hỗ trợ phiên bản giao thức SIP này
600
Global Failures
Busy everywhere
Tất cả mọi nơi đều bận
603
Global Failures
Decline
Từ chối
604
Global Failures
Does not exist anywhere
Không tồn tại ở bất cứ đâu
606
Global Failures
Not acceptable
Không được chấp nhận
Header
SIP có 4 loại header: general header, entity header, request header, và respone header. 2 loại đầu xuất hiện trong cả 2 loại bản tin, 2 cái sau xuất hiện trong loại bản tin là request hoặc response. Một start line cho phép đi kèm với một hoặc nhiều header. Tùy theo bản tin là request hay response mà ta dùng header cho phù hợp.
Bảng 125 Các Header trong bản tin SIP
General
Entity
Request
Response
Accept
Content-encoding
Authorization
Allow
Accept-encoding
Content-length
Contact
Proxy-authenticate
Accept-language
Content-type
Hide
Retry-after
Call-ID
Max-forwards
Server
Contact
Organization
Unsupported
Cseq
Priority
Warning
Date
Proxy-authorization
WWW-authenticate
Encryption
Proxy-require
Expires
Route
From
Require
Record-route
Response-key
Time stamp
Subject
To
User-agent
Via
Message Body
SIP message body: Phần thân (body) của bản tin SIP chứa những mô tả phiên giống như phần mô tả trong SDP. Một mô tả phiên gồm có 3 phần: mô tả phiên (a single session description), mô tả thời gian (zero or more time descriptions), and mô tả về truyển dẫn (zero or more media descriptions)
Hình 127Cấu trúc phần thân bản tin SIP
Session (phiên)
Bảng 126 Trường mô tả phiên trong phần thân của bản tin SIP
Type
Value
v
Protocol version
o
Owner/creator and session identifier
s
Session name
i
Session information
u
Uniform Resource Identifier (URI) of description
e
E-mail address
p
Phone number
c
Connection information
b
Bandwidth information
z
Time zone adjustments
a
Zero or more session attribute lines
Time (thời gian)
Bảng 127 Trường thời gian trong phần thân của bản tin SIP
Type
Value
t
Time the session is active
r
Zero or more repeat times
Media (truyền dẫn)
Bảng 128 Trường truyền dẫn trong phần thân bản tin SIP
Type
Value
m
Media name and transport address
i
Media title
c
Connection information
b
Bandwidth information
k
Encryption key
a
Zero or more media attribute lines
Ví dụ bản tin SIP
Bản tin yêu cầu (request)
Hình 128Bản tin SIP Request
Bản tin đáp ứng (response)
Hình 129Bản tin SIP Response
DIAMETER
Tổng quan về DIAMETER
Ban đầu, con người 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ề user name và password. Trong hầu hết các trường hợp, thông tin về user name và password không được lưu ở máy chủ đáp ứng truy cập mà được lưu ở một nơi khác, có thể là Lightweight Directory Access Protocol (LDAP). 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ề user name và password. 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 Base Protocol sử dụng cả Transmission Control Protocol (TCP) [RFC0793] và Stream Control Transmission Protocol (SCTP)[RFC2960] để truyền dữ liệu. Tuy nhiên SCTP thường được sử dụng hơn trong các kết nối có định hướng giữa các thành phần Diameter. SCTP cũng là một giao thức dựa trên nền IP không khác nhiều so với TCP. SCTP được phát triển sau và có cấu trúc phức tạp hơn TCP. SCTP được thiết kế để sử dụng trong điều kiện yêu cầu độ tin cậy và gần thời gian thực. Tuy nhiên, tại thời điểm hiện tại, SCTP chưa được sử dụng rộng rãi trong mạng truyền tải của các mạng. Diameter sử dụng Internet Protocol Security (IPSec) [RFC2401] và Transport Layer Security (TLS) [RFC2246] để bảo mật kết nối.
Các thành phần chính
Diameter là giao thức ngang hàng peer-to-peer, tại bất kỳ một thành phần nào cũng có thể thiết lập một yêu cầu. 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 va 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.
Diameter Replay 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. Thông tin tên miền được chứa trong bản tin UE gởi đến và là trường đầu tiên UE sử dụng để tìm kiếm một entry. Mã ứng dụng ứng trường vendor ID trong bản tin Diameter. Mã này được định nghĩa bởi IANA, mỗi ứng dụng có một ID khác nhau. Ví dụ:
0 bản tin Diameter
1 NASREQ
2 Mobile-IP
3 Chức năng tài khoả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.
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ết. 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.
They are similar to relay agents in that message routing is based on a Diameter routing table, but different in that they also modify the messages by implementing policy enforcement (e.g., resource usage enforcement, admission control or provisioning). Since policy enforcement always requires an understanding of the offered service, proxy agents need to support specific Diameter applications as well as the Diameter Base Protocol.
Hình 131 Diameter Proxy Agent định tuyến các bản tin dựa vào bảng định tuyến
Diameter Redirect Agent
Hình 132 Diameter Redirect Agent
Diameter Reditect Agent thực hiện việc đinh 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 tự vì đị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.
Diameter Translation Agent
Hình 133 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, ….
Cấu trúc bản tin Diameter
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 134Cấu trúc bản tin Diameter
Cấu trúc header của Diameter được mô tả trong hình sau:
Hình 135Cấ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ứcDIAMETER. Một số Command Code được liệt kê trong bảng sau:
Bảng 131 Command Code trong 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 nào đó. Nó là một dáy số từ 0x00000001 đến 0x00ffffff. Sau đây là một số Application-ID:
Bản tin Diameter chung 0
NASREQ 1
Mobile-IP 2
Chức năng Accounting trong Diameter 3
Relay 255
Application ID trong header phải giống với nội dung chứa trong AVP.
Hop-by-Hop Identifier: dài 32 bit, giúp phù hợp giữa bản tin yêu cầu và đáp ứng trong 1 kết nối trong 1 thời gian
End-to-end Identifier: xác định bản tin bị trùng
AVP
AVP chứa thông tin chứng thực, ủy quyền, và thông tin về tài khoản người dùng để định tuyến, bảo mật, thông tin cấu hình có liên quan đến yêu cầu và đáp ứng bản tin. Mỗi AVP chứa AVP header và AVP data.
Hình 136 Cấu trúc AVP
14.3.2.1 AVP header
Trường AVP Code: dài 32 bit, được quản lý bởi IANA, dùng để xác nhận các thuộc tính với trường Vendor-ID. Giá trị từ 0-255 dùng để tương thích vói RADIUS, các giá trị còn lại dùng trong DIAMETER
Trường AVP Flag dài 8 bit, có dạng VMPrrrrr, mỗi bit có ý nghĩa như sau:
Bit V (vendor -ID): nếu bằng một thì thông tin sẽ được đề cập trong trường Vendor-ID, ngược lại trường Vendor-ID rỗng.
Bit M (Mandatory): UE sẽ không nhận bản tin này nếu bit này bằng 0.
Bit P (Protect): nếu bằng 1 thì bản tin được yêu cầu mã hóa end-to-end.
Bit r: dự trữ
Trường AVP length: chiều dài AVP data.
14.3.2.2 AVP data
Trường AVP data có thể là rỗng hoặc nhiều octet chứa thông tin về thuộc tính cụ thể. Định dạng và chiều dài của trường này được xác định bởi trường AVP Code và AVP Length. Định dạng của trường này là một trong những dạng dữ liệu chuẩn sau đây: OctetString, Interger32, Interger64, Unsigned32, Unsigned64, Float32, Float64, Grouped…Để tìm hiểu kỹ về các dạng dữ liệu này, người xem có thể tham khảo [RFC 3588]. Trong trường hợp cần có một dạng dữ liệu cơ bản mới cho AVP Data thì một phiên bản RFC mới hơn phải được tạo ra.
Ngoài việc sử dụng các dạng dữ liệu cơ bản, trường này còn có thể sử dụng các định dạng dữ liệu khác nhau theo ứng dụng. Có một số dạng dữ liệu theo ứng dụng như sau:
Address: dạng dữ liệu này được tạo ra từ dạng OctetString ( dạng dữ liệu cơ bản). Nó có thể là dạng địa chỉ 32 bit (Ipv4) hoặc 128 bit (IPv6).
Time: dạng dữ liệu này được tạo ra từ OctetString. Chuỗi (string) phải dài bốn octet. Dạng dữ liệu này giống định dạng của SNTP [RFC 2030]
Diameter Identity: dạng dữ liệu này được tạo ra từ OctetString, dùng để xác định sự duy nhất của một nút trong mạng, tránh trường hợp có nhiều đường kết nối đến một nút dẫn đến trình trạng bị lặp trong định tuyến. Nội dung chuỗi dữ liệu trong kiểu này là FQDN của một nút Diameter.
Ngoài ra còn có các dạng dữ liệu khác như: UTF8String, DiameterURI, Enumerated, IPFilterRule, QoSFilterRule, … [RFC 3588]
Bảo mật trong bản tin Diameter
Client trong giao thức Diameter phải hổ trợ chuẩn IPSec và có thể hổ trợ TLS. Server phải hổ trợ cả 2 chuẩn trên. Để bảo mật, khuyến nghị rằng nên sử dụng IPSec ở các nút trong cùng một miền như giữa Client và Proxy và sử dụng TSL để bảo mật khi có giao dịch giữa các miền với nhau. Khi sử dụng TSL, hai phía phải thương lượng một Cipher key theo một trong các thuật toán sau:
RC4_128_MD5
RC4_128_SHA
3DES_EDE_CBC_SHA
AES_128_CBC_SHA
Kiểm soát lỗi
Lỗi trong giao thức Diameter chia thành 2 loại: lỗi giao thức và lỗi ứng dụng
Lỗi giao thức
Xảy ra ở cấp độ giao thức cơ bản như lỗi định tuyến. Khi xuất hiện lỗi, bit E trong trường Command Flag của Diameter Header trong bản tin đáp ứng sẽ được bật lên 1 và gởi trở lại theo đường đến.
Hình 137 Lỗi giao thức trong Diameter
Lỗi ứng dụng
Xảy ra ở các ứng dụng của Diameter như chứng thực User, mất gói AVP. Khi xuất hiện lỗi, bit R trong Command Flag trong bản tin đáp ứng được bật lên 1 và gởi lại cho User khởi tạo không thông qua Agent
Hình 138 Lỗi ứng dụng trong giao thức Diameter
Các bản tin đáp ứng lại trong trường hợp có lỗi:
Bảng 132 Bản tin đáp ứng trong trường hợp có lỗi xảy ra
Kết nối và phiên trong Diameter
Hình 139 Luồng lưu lượng kết nối các thực thể Diameter
Quá trình thiết lập đến kết thúc một giao dịch trong Diameter thực hiện qua các bước sau:
Bước 1: Client gởi bản tin Capabilities-Exchange-Request (CER) để yêu cầu thiết lập kết nối bằng cách sử dụng giao thức truyền TCP hoặc SCTP.
Bước 2: Server đáp ứng lại bởi bản tin Capabilities-Exchange-Answer (CEA). Trong quá trình, giao thức bảo mật (IPSec hoặ TSL) được thương lượng chọn lựa
Bước 3: Kết nối sẵn sàng cho việc truyền thông bản tin giữa Client và Server.
Bước 4, 5: Nếu không có bản tin nào được gởi thì đến một khoảng thời gian, Client sẽ gởi DWR và chờ đáp ứng DWA.
Bước 6, 7: Hủy kết nối có thể được một trong hai bên thực hiện bằng cách gởi DPR và nhận về đáp ứng DPA.
Dịch vụ trong Diameter
DIAMETER là giao thức độc lập, không thiết kế để hoạt động trên một ứng dụng cụ thể nào. Tùy thuộc vào ứng dụng mà các bản tin và dịch vụ có ít nhiều thay đổi. Tuy vậy, Diameter có ba dịch vụ chính là: chứng thực, ủy quyền và tài khoản.
Chứng thực và ủy quyền là hai dịch vụ kết hợp với nhau trong giao thức Diameter. Client là phía khởi tạo yêu cầu hai dịch vụ trên, phụ thuộc vào nội dung yêu cầu trong AVP mà Server sẽ đáp ứng theo những cách khác nhau. Hai dịch vụ này cung cấp chế độ bảo mật và thông số cho quá trình bảo mật thông tin chứng thực.
Client và Server sử dụng hai dịch vụ trên để hiểu đuợc các thông tin đã đươc mã hoá của nhau như mật khẩu chẳng hạn. Chứng thực và ủy quyền cũng giúp Client phát hiện sự giả mạo của gói tin đáp ứng. Thêm vào đó, nó được sử dụng để chuyển mật khẩu thành một dạng nào đó, ngăn chặn việc làm lộ mật khẩu của người dùng trong các bản tin Diameter.
Những dịch vụ này còn tạo ra thông số ngẫu nhiên gởi đến Client. Client dùng thông số chứng thực của minh( mật khẩu, khóa nhận dạng riêng) băm với số này qua thuật toán MD5. Sau đó gởi gói tin chứa kết quả sau khi băm tới Server để so sánh hai kết quả sau khi băm.
Chứng thực thì chỉ có thành công hoặc thất bại, trong khi đó dịch vụ ủy quyền còn dựa vào trạng thái dịch vụ là Statefull hoặc Stateless. Với trạng thái Statefull thì Server sẽ giữ lại trạng thái của phiên và có sự giới hạn về thời gian của phiên ủy quyền. Thời gian này không được vượt quá thời gian phiên ủy quyền và thời gian mở rộng thêm. Khi hết thời gian này, hoặc Client, hoặc Server sẽ hủy kết nối và bắt buộc Client phải nhận sự ủy quyền lại. Ngược lại, trong trạng thái Stateless, Server chỉ duy trì trạng thái dịch vụ mà không duy trì trạng thái phiên.
Diameter Base Protocol cung cấp dịch vụ tài khoản đến Diameter Application. Khi một Accouting Session chưa được kích hoạt, sẽ không có nguồn tài nguyên nào được dự trữ sẵn cho cả Client và Server. Khi một bản tin Accounting Request kích hoạt Accouting Session thành công, một Accounting Record rơi vào một trong 2 danh sách:
Dịch vụ tính theo thời gian: có thời gian bắt đầu và kết thúc rõ ràng. Đối với dịch vụ này, cước phí được tính khi dịch vụ bắt đầu và ngưng tính khi dịch vụ kết thúc.
Dịch vụ tính theo lần: tính phí theo số lần sử dụng dịch vụ, không quan tâm đến thời gian.
So sánh giao thức Diameter và giao thức RADIUS
Bảng 133 So sánh giao thức Diameter và giao thức RADIUS
COPS
Giới thiệu về COPS
COPS là giao thức được IETF chuẩn hóa nhằm thực hiện việc quản lý, cấu hình và áp đặt chính sách. Giao thức này hoạt động theo mô hình Client/Server. Nó định nghĩa một giao thức yêu cầu và đáp ứng một cách đơn giản trong việc trao đổi thông tin chính sách giữa server quyết định chính sách và Client của nó. Trong đó điểm thực hiện chính sách (PEP) được xem là Client và server là điểm quyết định chính sách (PDP). Và một thành phần đặc biệt là điểm quyết định chính sách cục bộ (LPDP), nó thay thế cho PDP trong việc liên lạc với PEP khi PDP không được tìm thấy. COPS điều khiển chính sách theo 2 mô hình chính:
Outsourcing
PEP chỉ định một PDP bên ngoài chịu trách nhiệm xử lý những sự kiện gởi ra từ PEP. Mô hình này cho thấy sự tương quan one-to-one giữa những sự kiện (events) ở PEP và những quyết định từ một PDP.
Configuration
Không giống như mô hình trước, là không có sự ánh xạ trực tiếp những sự kiện tại PEP và những quyết định từ PDP. PDP có thể cấu hình những sự kiện bên ngoài được khởi tạo bởi một PEP bất kỳ và sự kiện gởi từ PEP có thể được xử lý bởi PDP cùng khối với nó hoặc PDP thuộc khối khác. Xét về mặt thời gian thì mô hình này linh động hơn mô hình outsourcing.
Hình 141Mô hình cops
Cops sử dụng phương thức truyền TCP để truyền những bản tin đáng tin cậy giữa PEP và PDP. Không giống như giao thức client/server khác, cặp bản tin yêu cầu/đáp ứng này phải phù hợp với cặp bản tin yêu cầu/đáp ứng khác. ở đây, server có thể áp áp đặt chính sách cho client và xóa những chính sách trên client nếu chính sách đó không còn giá trị nữa. PEP khởi tạo kết nối TCP đến PDP, PEP gởi yêu cầu và nhận những quyết định chính sách từ PDP và sự liên lạc giữa PEP và PDP là sự trao đổi yêu cầu, đáp ứng. Tuy nhiên PDP/PEP có thể gởi đi những bản tin độc lập, ví dụ như PDP gởi những quyết định tới PEP bắt buộc PEP thay đổi những chính sách được PDP chấp nhận trước đó (không phải bản tin đáp ứng cho nhưng yêu cầu của PEP) và PEP có thể gởi những bản tin báo cáo về trạng thái cho PDP,... Sự mở rộng có thể được mô tả trong phần định dạng bản tin và những phần tử mang dữ liệu về chính sách không cần yêu cầu bất kỳ thay đổi nào trong giao thức.
COPS được sử dụng trong liên lạc giữa khối PDF và GGSN, tạo sự kết nối giữa mạng IMS và mạng GPRS
Hình 142COPS giữa PDF và GGSN/SBC
Chức năng chính của COPS
Giao thức này giao việc cho Client hỗ trợ cho mô hình Client/Server. Trong đó Client sẽ gởi những bản tin: yêu cầu, cập nhật, và xóa tới PDP và PDP gởi trả những quyết định cho PEP.
COPS sử dụng phương thức TCP để trao đổi bản tin giữa Server và Client nên ta không cần bổ sung thêm chức năng hỗ trợ việc liên lạc có đảm bảo giữa Server và Clients.
COPS thực hiện việc quản lý, cấu hình, và thực thi các chính sách
COPS cung cấp mức độ bảo mật các bản tin cho việc xác thực, phát lại bảo vệ, và toàn vẹn bản tin. COPS cũng có thể tái sử dụng giao thức về bảo mật như IPSEC hoặc TLS để xác thực và bảo vệ kênh truyền giữa PEP và PDP.
COPS cho phép Server áp dụng chính sách cho Client hoặc xóa chính sách đang thực thi trên Client nếu nó không còn được sử dụng nữa.
Bản tin COPS
Bản tin COPS gồm có một header và các thực thể theo sau.
Hình 143Cấu trúc bản tin COPS
COPS header
Hình 144COPS header
Version (4bits): chỉ phiên bản của giao thức COPS đang được dùng, hiện nay đang sử dụng COPS version 1
Flags (4bits): mặc định là 0, cờ flag đặt lên 1 khi bản tin gởi đi là bản tin DEC, khi đó PDP gởi bản tin DEC đáp ứng lại yêu cầu của bản tin REQ do PEP gởi ra.
Op Code (8 bits): cho biết hoạt động của COPS.
Bảng 141 Các loại Op code trong COPS header
Giá trị
Loại
Nơi chốn (where)
Tên
Mô tả
1
REQ
PEP→PDP
Request
Yêu cầu quyết định từ PDP và thiết lập một client handle nhằm xác định tình trạng phù hợp cho PEP
2
DEC
PDP→PEP
Decision
Trả lại một hoặc nhiều quyết định (đáp ứng) cho một yêu cầu
3
RPT
PEP→PDP
Report state
Báo cáo lại cho PDP biết là PEP đã nhận được đáp ứng của PEP hay chưa và thông báo sự thay đổi trạng thái của PEP
4
DRQ
PEP→PDP
Delete request state
Thông báo cho PDP biết là
5
SSQ
PDP→PEP
Synchronize state request
PDP gởi cho PEP để đồng bộ dữ liệu
6
OPN
PEP→PDP
Client-Open
7
CAT
PDP→PEP
Client- Accept
8
CC
PEP→PDP
PDP→PEP
Client-Close
Cho biết phần tử Client-type không được hỗ trợ
9
KA
PEP→PDP
PDP→PEP
Keep-Alive
Kiểm tra sự tồn tại của PDP/PEP
10
SSC
PEP→PDP
Synchronize complete
Thông báo sự đồng bộ thành công
Client-type (16 bits): cho biết chính sách áp dụng cho Client và determines the interpretation of the accompanying typed objects
Có giá trị trong khoảng 0x8000 - 0xFFFF
Đối với bản tin KA thì Client-type phải đặt là 0
Message Length (32 bits): bao gồm header chuẩn và phần tử rút gọn và độ dài chỉ trong 4bytes.
Object format
Hình 145Object format của bản tin COPS
Length (16bits)
C-num (8 bits): cho biết lớp thông tin chứa đựng trong object
Bảng 142 Trường C-Num trong Object format của bản tin COPS
C-num
Tên
Nơi chốn
Mô tả
1
Handle
Most
Giá trị duy nhất để xác định trạng thái được cài đặt
2
Context
REQ, DEC
Cho biết phần tử nào tạo ra những truy vấn
3
In interface
REQ
Địa chỉ và giao tiếp bên trong của PEP
4
Out interface
REQ
Địa chỉ và giao tiếp bên bên ngoài của PEP
5
Reason code
DRQ
Cho biết lý do các yêu cầu bị xóa
6
Decision
DEC
Quyết định do PDP tạo ra
7
LPDP decision
DEC
Quyết định do LPDP tạo ra
8
Error
CC
Xác định giao thức bị lỗi
9
Client-specific info
REQ, DEC, RPT, OPN
Thông tin về Client
10
Keep-Alive timer
CAT
Giá trị bộ đếm thời gian
11
PEP identification
OPN
Xác định PEP cho PDP
12
Report type
RPT
Loại báo cáo về trạng thái yêu cầu, nó phải tương ứng với handle cụ thể
13
PDP redirect address
CC
PDP có thể chuyển tiếp trực tiếp PEP đến PDP khác
14
Last PDP address
OPN
Địa chỉ của PDP mà PEP kết nối lần cuối
15
Accounting timer
CAT
Xác định thời gian cho việc tính phí
16
Message integrity
Any
Chuỗi số và sự kiểm bản tin chứng thực nhằm đảm bảo sự bảo mật cho những yêu cầu
C-type (8 bits): có giá trị được đặt dựa trên C-num, typically identifies the subtype or version of the information contained in the object.
MEGACO/H.248
Tổng quan về MEGACO/H.248
Megaco được phát triển bởi IETF (đưa ra vào cuối năm 1998), còn H.248 được đưa ra vào tháng 5/1999 bởi ITU-T. Sau đó cả IETF và ITU-T cùng hợp tác thống nhất giao thức điều khiển MG, kết quả là vào tháng 6/2000 chuẩn Megaco/H.248 ra đời.
Hình 151Quá trình chuẩn hóa MEGACO/H248
MEGACO/H248 cung cấp một giải pháp toàn diện cho việc điều khiển các MG. Giao thức này hỗ trợ đa phương tiện và các dịch vụ hội thoại nâng cao đa điểm các cú pháp lập trình được nâng cao nhằm tăng hiệu quả cho các tiến trình đàm thoại, hỗ trợ cả việc mã hoá text và binary và thêm vào việc mở rộng các định nghĩa cho các packets.
Megaco/H.248 là giao thức báo hiệu giữa Softswitch/MGC với MG (Trunking Media Gateway, Lines Media Gateway hoặc IP Phone Media Gateway). Megaco/H.248 điều khiển MG để kết nối các luồng từ ngoài.
Megaco/H.248 tương tự với MGCP về mặt cấu trúc và mối liên hệ giữa bộ điều khiển và cổng gateway, tuy nhiên Megaco/H248 hỗ trợ đa dạng hơn các loại mạng (ví dụ ATM).
Hình 152 MEGACO/H248 kết nối điều khiển Gateway
Cấu trúc Gateway trong MEGACO/H.248
Hình 153Cấu trúc Gateway trong MEGACO/H248
MGC (Media Gateway Control): cung cấp báo hiệu SIP hoặc H.323 và thực hiện ánh xạ giữa các giao thức báo hiệu mạng chuyển mạch kênh truyền thống và giao thức báo hiệu IP.
MG (Media Gateway): cung cấp sự ánh xạ Media và chức năng chuyển mã. Nó kết thúc tín hiệu chuyển mạch kênh và tín hiệu Media gói và thực hiện chuyển địa chỉ, …..
SG (Signalling Gateway): cung cấp môi trường báo hiệu giữa miền IP và miền chuyển mạch kênh truyền thống.
Termination và Context
Megaco có hai khái niệm mang tính trừu tượng là: Termination và Context
Termination
Termination là một thực thể luận lý trên MG như là các nguồn hoặc các luồng điều khiển, … Termination có duy nhất một số nhận dạng (Termination ID) được phân phối bởi MG ở thời điểm chúng được tạo ra.
Termication còn biểu hiện cho các thực thể vật lý có thời gian tồn tại bán thường trú như một kênh TDM
Termination cũng biểu diễn cho các luồng thông tin ngắn hạn như là các luồng RTP, thường tồn tại trong thời gian chúng được sử dụng. Các Termination ngắn hạn được tạo bởi lệnh Add và được hủy bỏ bởi lệnh Subtract. Ngược lại, một Termination vật lý được thêm vào và bỏ ra khỏi một Context bằng cách chúng được lấy ra hoặc đưa vào một Context rỗng tương ứng.
Các tín hiệu có thể áp dụng lên các Termination, các tín hiệu này như là các thông báo. Các Termination cũng có thể được lập trình để phát hiện các sự kiện.
Context
Context là một sự kết hợp giữa một số Termination. Có một Context đặc biệt được gọi là Context rỗng. Nó chứa các Termination không kết hợp với các Termination khác. Các Termination rỗng có thể có các tham số được khảo sát hoặc sửa đổi và có thể có các sự kiện xảy ra trên chúng.
Lệnh Add dùng để thêm Termination vào Context. Nếu MGC không chỉ định một Context tồn tại để Termination được thêm vào thì MG sẽ tạo một Context mới. Lệnh Subtract dùng để xóa bỏ Termination ra khỏi một Context. Termination cũng có thể được di chuyển từ Context này sang một Context khác với lệnh Move. Một Termination chỉ tồn tại trong một Context ở một thời điểm.
Số lượng Termination lớn nhất trong một Context phụ thuộc vào MG. Chẳng hạn, MG chỉ đưa ra kết nối điểm điểm thì có thể chỉ cho phép hai Termination trên một Context. Các MG hổ trợ các cuộc hội nghị đa điểm có thể cho phép 3 hoặc nhiều Termination trên một Context.
MEGACO có thể được dùng để tạo Context và sửa đổi các giá trị tham số của Context đang tồn tại. MEGACO có các lệnh để thêm Termination vào Context, bỏ Termination ra khỏi Context và di chuyển Termination giữa các Context. Context bị xóa hoàn toàn khi Termianation còn lại sau cùng bị xóa bỏ hoặc di chuyển khỏi context.
Các thuộc tính của Context:
ContextID: giá trị duy nhất trong mỗi MG
Topology: mô tả các luồng truyền thông giữa các Termination và ngõ vào ra của MG
Priority: độ ưu tiên, ưu tiên cho lưu lượng trong MG khi có nhiều Context phải được điều khiển đồng thời
Gọi khẩn cấp: cung cấp khả năng điều khiển ưu tiên cho cuộc gọi khẩn cấp
Một số lệnh trong MEGACO/H.248
Bảng 151 Một số lệnh trong giao thức MEGACO
Hoạt động của MEGACO/H.248
Hình 154Luồng giao thức của MEGACO/H248
Quá trình hoạt động của luồng giao thức MEGACO/H.248 như sau:
Bước 1: MGC gửi bản tin Modify đến MG A và MG B để yêu cầu Termination phát hiện nhấc máy.
Bước 2: Lệnh Modify được công nhận
Bước 3: GW A phát hiện sự nhấc máy và gửi cho MGC.
Bước 4: Xác nhận việc nhấc máy
Bước 5: MGC ghi nhận sự kiện và gởi bản tin đên MG đê xác nhận sự kiện này.
Bước 6, 7: GW A tích lũy các chữ số được quay từ người dùng và gởi các số này đến MGC trong lệnh Notify.
Bước 8: MGC công nhận việc nhận các chữ số.
Bước 9: MGC quyết định chuỗi số đúng và tạo cuộc gọi. Nó gởi lệnh Add đến MGA để tạo Context.
Bước 10: GW A trả lời MGC và đặt tên Context, định bộ nhận dạng Termination RTP (RTP/ID).
Bước 11: dựa vào thông tin nhận được từ GWA, MGC gởi lệnh Add chứa thông tin về số bên gọi, bộ mã hóa, … đến GWB.
Bước 12: GWB trả lời lại lệnh Add với một Context mới gởi đến MGC
Bước 14: MGC dùng lệnh Modify để yêu cầu chuông. Bản tin cũng yêu cầu GWA tìm kiếm sự nhấc máy.
Bước 15: User B nhấc máy, cuộc gọi đã được thiết lập, RTP Streaming được truyền 2 chiều từ A sang B.
Bước 16: Khi một trong 2 bên gác máy ( ở đây ví dụ là bên A), bản tin Modify yêu cầu kêt thúc cuộc gọi được gới đến MGC
Bước 17: MGC nhận được yêu cầu và gởi bản tin Rely đáp ứng
Bước 18, 19: Lệnh Subtract được gởi từ MGC đến 2 GW yêu cầu hủy kết nối (hủy Termination từ một Context). Sau khi nhận được bản tin Rely từ 2 Gateway thì kết thúc hoàn toàn một phiên gọi.
Phần VII: Tổng kết
Với nội dung đưa ra là tìm hiểu kiến trúc IMS trên nền mạng NGN, bài tìm hiểu này đã đưa ra được kiến trúc tổng quát nhất của một phân hệ IMS theo tiêu chuẩn của tổ chức 3GPP. Bài viết cũng đã lý giải vai trò, nhiệm vụ, chức năng của các thành phần, giao diện, và một số thủ tục thực hiện trong phân hệ IMS. Hơn nữa, bài tìm hiều còn trình bày các giao thức truyền thông sử dụng trong phận hệ này, đặc biệt là giao thức SIP. Đây là giao thức được 3GPP chọn là giao thức báo hiệu chính trong mạng lõi IMS.
IMS là một đề tài đang được sự quan tâm tìm hiểu của các tổ chức chuẩn hóa viễn thông và các công ty điện tử tin học. Phân hệ IMS sẽ là một xu hướng phát triển tất yếu của nền viễn thông trong nước nói riêng và trên thế giới nói chung. Xây dựng thành công hệ thống này sẽ mang lại lợi ích lớn cho cả nhà khai thác mạng và người dùng.
Trong phạm vi bài tìm hiểu này, chúng tôi chỉ đưa ra cái nhìn tổng quát nhất về phương thức hoạt động của IMS trên nền mạng NGN. Chúng tôi sẽ tiếp tục phát triển bài tìm hiểu này thành một đề tài hoàn chỉnh kèm theo sản phẩm là một mô hình lab có tính ứng dụng cao.
Tài liệu tham khảo
1. The IMS: IP Multimedia Concepts and Services, Second Edition Miikka Poikselkä, Georg Mayer Hisham Khartabil and Aki Niemi © 2006 John Wiley & Sons
2. 3GPP TS 23.228 v9.0.0 (06/2009): “IP Multimedia Subsystem”
3. 3GPP TS 23.002 V9.1.0 (2009-09): “Network Architecture”
4. Performance of Signalling Compression in the Third Generation Mobile Network, Jouni Mäenpää, 7.6.2005
5. IMS over NGN, Nguyễn Văn Quân, D2001VT
6. RFC 3261: "SIP: Session Initiation Protocol"
7. 3GPP TS 29. 229: "Cx and Dx Interfaces based on the Diameter protocol, Protocol details".
8. IMS AAA Server Administration Guide, Juniper Networks SRC-AAA Engine, Release 1.0, December 2007
9. Tích hợp mạng di động và cố định theo hướng NGN, Trần Trung Hiếu
10. 3GPP TS 29. 228: "IP Multimedia (IM) Subsystem Cx and Dx Interfaces, Signalling flows and message contents"
11. RFC 2543: SIP: Session Initial Protocol
12. RFC 3588: Diameter Base Protocol
13. UMTS Networks Architecture, Mobility and Services, Second Edition, Heikki Kaaranen Oy Aqua Records Ltd, Finland, Ari Ahtiainen Nokia Research Center, Finland, Lauri Laitinen Nokia Research Center, Finland, Siama ¨k Naghian Nokia Networks, Finland, Valtteri Niemi Nokia Research Center, Finland, John Wiley & Sons Ltd
14. Giao thức H.248, Trung tâm Ứng dụng công nghệ mới - Viện KHKT Bưu điện
15. int/ net/home/index.aspx
16.
17.
18.
19.
20.
Các file đính kèm theo tài liệu này:
- Tran Quoc Cuong.docx