Tiểu luận môn học
Mục lục
MỤC LỤC
THUẬT NGỮ VIẾT TẮT ................................................................................................... ii
CHƯƠNG 1: TỔNG QUAN VỀ GIAO THỨC DIAMETER ....................................9
1.1.
Giới thiệu: ................................................................................................................9
1.2. Khung Diameter ....................................................................................................... 10
1.2. Các thành phần Diameter ..................................................................................... 11
1.2.1 Thành phần RELAY (Chuyển tiếp) .................................................................. 12
1.2.2 Thành phần PROXY (Ủy quyền)...................................................................... 13
1.2.3 Thành phần REDIRECT (Gửi lại) .................................................................... 13
1.2.4 Thành phần TRANSLATION (Dịch) .............................................................. 14
1.4. Cấu trúc bản tin của Diameter ................................................................................. 15
1.4.1 Cấu trúc Header .................................................................................................. 15
1.4.2 AVP (Attribute value pair) ................................................................................ 16
1.5. Một số đặc điểm của giao thức Diameter.......................................................... 19
1.5.1 Vận chuyển ....................................................................................................... 19
1.5.2 Nút ngang cấp Diameter .................................................................................... 23
1.5.2. Kết nối và phiên ............................................................................................... 24
1.5.4. Bảo mật trong Diameter................................................................................... 26
1.5.5. Thanh toán ......................................................................................................... 26
1.5.6. Cơ chế truyền thay thế và xử lý lỗi ............................................................... 27
1.5.7. So sánh với giao thức RADIUS ..................................................................... 29
Kết luận .............................................................................................................................. 30
CHƯƠNG II: GIAO THỨC DIAMETER TRONG IMS .......................................... 31
2.1 Thủ tục đăng kí và xóa đăng kí mức ứng dụng với giao diện Cx .................... 31
2.1.1 Đăng kí IMS ....................................................................................................... 31
2.1.2 Thủ tục xóa đăng kí mức ứng dụng .............................................................. 43
2.2. Thủ tục liên quan đến truy vấn thông tin định tuyến (giao diện Dx) ............. 50
2.2.1 Nhận dạng người dùng tới giải đáp HSS ....................................................... 50
2.2.2 Đăng kí trên SLF ............................................................................................ 54
2.2.3 Mời UE trên SLF ............................................................................................. 55
2.3. Khởi tạo phiên ....................................................................................................... 56
2.4
Tính cước ............................................................................................................... 57
2.4.1 Kiến trúc tính cước ........................................................................................... 57
2.4.2 Kiến trúc tính cước ngoại tuyến...................................................................... 57
2.4.3 Kiến trúc tính cước trực tuyến ........................................................................ 76
2.4.4. Các AVP sử dụng cho thanh toán trực tuyến và ngoại tuyến .................... 85
Kết luận .............................................................................................................................. 88
TỔNG KẾT ............................................................................................................................ 89
Tài liệu tham khảo ............................................................................................................... 90
Nhóm 1 _ D11VT7
i
Tiểu luận môn học
Thuật ngữ viết tắt
THUẬT NGỮ VIẾT TẮT
Từ viết tắt
Từ đầy đủ
Tiếng Việt
3GPP
Third Generation Partnership
Dự án hợp tác thế hệ thứ ba
Project
3GPP2
Third Generation Partnership
Dự án hợp tác thế hệ thứ ba 2
Project 2
AAA
Authentication, authorization
Nhận thực, cấp phép và thanh toán
and accounting
AAL
ATM adaptation layer
Lớp thích ứng ATM
ACA
Accounting-Answer
Trả lời- thanh toán
ACR
Accounting requests
Yêu cầu thanh toán
ADSL
Asynchronous Digital
Đường dây thuê bao số không đồng
Subscriber Line
bộ
AH
Authentication header
Header nhận thực
AKA
Authentication and key
Thỏa thuận khóa và nhận thực
agreement
AS
Application server
Server ứng dụng
ATM
Asynchronous transfer mode
Phương thức truyền tải bất đồng bộ
AVP
Attribute value pair
Cặp giá trị thuộc tính; profile âm
thanh hình ảnh
BCF
Bearer Charging Function
Chức năng tính cước kênh mạng
BER
Bit error ratio
Tốc độ bít lỗi
BGCF
Breakout Gateway Control
Chức năng điểu khiển cổng nối
Function
xuyên
Bearer Independent Call
Điều khiển cuộc gọi độc lập kênh
BICC
Nhóm 1 _ D11VT7
ii
Tiểu luận môn học
BS
Thuật ngữ viết tắt
Control
mang
Bearer service; billing system
Dịch vụ kênh mạng, hệ thống hóa
đơn
BSF
Bootstrapping Server
Chức năng server tự mồi
Function
BTS
Base Transceiver Station
Trạm thu phát gốc
CAMEL
Customized Applications for
Ứng dụng theo yêu cầu khách hàng
Mobile network Enhanced
đối với
Logic
CAP
Camel Application Part
Phần ứng dụng Camel
CCF
Charging Collection Function
Chức năng tập hợp tính cước
CCSA
China Communications
Liên hiệp chuẩn thông tin Trung
Standards Association
Quốc
Code Division Multiple
Đa truy nhập phân chia theo mã
CDMA
Access
CDR
Charging Data Record
Charging Detail Record
Bản ghi dữ liệu cước, bản ghi chi tiết
cước
CGF
Charging Gateway Function
Chức năng cổng tính cước
CK
Ciphering key
Khóa mật mã
CSN
Circuit switching network
Mạng chuyển mạch kênh
CN
Core Network
Mạng lõi
CS
Circuit-switched
Chuyển mạch kênh
CSCF
Call Session Control Function
Chức năng điều khiển phiên gọi
CSCN
Circuit Switched Core
Mạng lõi chuyển mạch kênh
Network
DHCP
Dynamic Host Configuration
Nhóm 1 _ D11VT7
Giao thức cầu hình trạm động
iii
Tiểu luận môn học
Thuật ngữ viết tắt
Protocol
DOS
Denial of service
Từ chối dịch vụ
DNS
Domain name system
Hệ thống tên miền
DSL
Digital Subscriber Line
Đường dây thuê bao số
EAP
Extensible Authentication
Giao thức nhận thực mở rộng
Protocol
ECF
Event Charging Function
Chức năng tính cước sự kiện
GGSN
Gateway GPRS Support Node
Node hỗ trợ cổng GPRS
GPRS
General Packet Radio Service
Dịch vụ vô tuyến gói chung
GSM
Global System for Mobile
Hệ thống viễn thông di động toàn cầu
Communications
HLR
Home location register
Bộ đăng ký vị trí nhà
HSS
Home Subscriber Server
Server thuê bao nhà
HTTP
Hyper Text Transfer Protocol
Giao thức truyền tải siêu văn bản
ICID
IMS charging identifier
Nhận dạng tính cước IMS
I-CSCF
Interrogating-CSCF
CSCF –Thẩm vấn (hỏi)
IETF
Internet Engineering Task
Nhóm đặc trách kỹ thuật về Internet
Force
IK
Integrity key
Khóa toàn vẹn
IKE
Internet Key Exchange
Trao đổi khóa Internet
IMS-MGW
IP Multimedia Subsystem-
Chức năng cổng phương tiện – phân
Media Gateway Function
hệ đa phương tiện IP.
IMS
IP Multimedia Subsystem
Phân hệ đa phương tiện IP
IM-SSF
IP Multimedia Service
Chức năng chuyển mạch dịch vụ đa
Switching Function
phương tiện IP
Nhóm 1 _ D11VT7
iv
Tiểu luận môn học
Thuật ngữ viết tắt
IP
Internet Protocol
Giao thức Internet
IP-CAN
IP-Connectivity Access
Mạng truy nhập kết nối IP
Network
IPsec
Internet Protocol security
Bảo mật giao thức Internet
IPv4
Internet Protocol Version 4
Giao thức Internet phiên bản 4
IPv6
Internet Protocol Version 6
Giao thức Internet phiên bản 6
IP-SSF
IP Multimedia Service
Chức năng chuyển mạch dịch vụ đa
Switching Function
phương tiện IP
ISC
IMS Service Control
Điều khiển dịch vụ IMS
ISDN
Integrated Services Digital
Mạng số đa dịch vụ
Network
ISIM
ISP
IP Multimedia Services
Môđun nhận dạng dịch vụ đa phương
Identity Module
tiên IP
Internet Service Provider
Nhà cung cấp dịch vụ
Internets
ISUP
ISDN User Part
Phần người dùng ISDN
LCS
Location services
Dịch vụ vị trí
LIA
Location-Info-Answer
Trả lời thông tin vị trí
LIR
Location-Info-Request
Yêu cầu thông tin vị trí
MAR
Multimedia-Auth-Request
Yêu cầu
MEGACO
Media Gateway Control
Giao thức điểu khiển cổng phương
Protocol
tiện
Media Gateway Control
Chức năng điều khiển cổng phương
Function
tiện
Media gateway function
Chức năng cổng phương tiện
MGCF
MGW
Nhóm 1 _ D11VT7
v
Tiểu luận môn học
Thuật ngữ viết tắt
MID
Media stream identification
Nhận dạng luồng phương tiện
MMS
Multimedia Messaging
Dịch vụ nhắn tin đa phương tiện
Service
Multimedia Resource
Bộ điều khiển chức năng tài nguyên
Function Controller
đa phương tiện
MSC
Mobile switching centre
Trung tâm chuyển mạch di động
NAI
Network access identifier
Nhận dạng truy nhập mạng
NAPTR
Naming authority pointer
NAS
Network access server
Server truy nhập mạng
NASREQ
Network Access Server
Yêu cầu server truy nhập mạng
MRFC
Requirements
NGN
Next Gene Network
Mạng thế hệ tiếp theo
NTP
Network Time Protocol
Giao thức thời gian mạng
OCS
Online Charging System
Hệ thống tính cước trực tuyến
P-CSCF
Proxy-CSCF
CSCF - ủy quyền
PDF
Policy Decision Function
Chức năng quyết định chính sách
PDP
Packet Data Protocol; policy
Giao thức dữ liệu gói; điểm quyết
decision point
định chính sách.
PLMN
Public Land Mobile Network
Mạng di động công cộng mặt đất
PS
Packet-switched; presence
Chuyển mạch gói; server hiện thời
server
Public Switched Telephone
Mạng điện thoại chuyển mạch kênh
Network
công cộng
QoS
Quality of service
Chất lượng dịch vụ
RADIUS
Remote Authentication Dial
Dịch vụ người sử dụng quay số nhận
In User Service
thực từ xa
PSTN
Nhóm 1 _ D11VT7
vi
Tiểu luận môn học
Thuật ngữ viết tắt
SA
Security association
Liên kết bảo mật
SAA
Server-Assignment-Answer
Trả lời gán server
SAR
Server-Assignment-Request
Yêu cầu gán server
S-CDR
SGSN-CDR
Bản ghi chi tiết cước SGSN
SCF
Session Charging Function
Chức năng tính cước phiên
SCS
Service Capability Server
Server khả năng dịch vụ
S-CSCF
Serving-CSCF
CSCF - Phục vụ
SCTP
Stream Control Transmission
Giao thức truyền dẫn điều khiển
Protocol
luồng
SDP
Session Description Protocol
Giao thức miêu tả phiên
SGSN
Serving GPRS Support Node
Node hỗ trợ dịch vụ GPRS
SGW
Signalling Gateway
Cổng báo hiệu
SIP
Session Initiation Protocol
Giao thức khởi tạo phiên
SIPS
Secure SIP
Bảo mật SIP
SLF
Subscription Locator Function
Chức năng định vị đăng ký thuê bao
SNMP
Simple Network Management
Giao thức quản lý mạng đơn giản
Protocol
SRV
Service records
Bản ghi dịch vụ
SSF
Service Switching Function
Chức năng chuyển mạch phục vụ
TCP
Transmission Control
Giao thức điều khiển truyền dẫn
Protocol
TCP/IP
TCP/IP stack
Ngăn xếp TCP/IP
TLS
Transport Layer Security
Bảo mật lớp truyền tải
TTL
Time to live
Thời gian sống
Nhóm 1 _ D11VT7
vii
Tiểu luận môn học
Thuật ngữ viết tắt
UA
User Agent
Tác nhân người dùng
UAA
User-Authorization-Answer
Trả lời cấp phép người dùng
UAR
User-Authorization-Request
Yêu cầu cấp phép người dùng
UDP
User Datagram Protocol
Giao thức dữ dữ liệu người dùng
UE
User equipment
Thiết bị người dùng
UMTS
Universal Mobile
Hệ thống viễn thông di động toàn cầu
Telecommunications System
URI
Uniform resource identifier
Nhận dạng tài nguyên duy nhất
URL
Universal resource locator
Định vị tài nguyên chung
USIM
Universal Subscriber Identity
Môđun nhận dạng thuê bao toàn cầu
Module
UMTS terrestrial radio access
Mạng truy nhập vô tuyến mặt đất
network
UMTS
VPN
Virtual private network
Mạng riêng ảo
VoIP
Voice over IP
Thoại qua IP
WAP
Wireless Application Protocol Giao thức ứng dụng không dây
UTRAN
Nhóm 1 _ D11VT7
viii
Tiểu luận môn học
Chương 1: Tổng quan về giao thức Diameter
CHƯƠNG 1: TỔNG QUAN VỀ GIAO THỨC DIAMETER
1.1.
Giới thiệu:
Giao thức AAA RADIUS được phát triển vào năm đầu thập niên 90. Tại
thời điểm đó Internet sử dụng rất khác, mọi người sử dụng quay số để kết nối
Internet. Người sử 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ề user 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
(LADP). 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ế, năm 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. Giao thức AAA
(Authentication, Authorization and Accounting) là giao thức cho việc chứng thực,
cấp phép và tính cước.
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ụ. Cùng với sự phát triển của web 2.0 và sự tăng lên
không ngừng của các router và server truy nhập mạng (NAS) do đó yêu cầu thay
đổi và cần có giao thức để thay thế RADIUS.
Vào tháng 9 năm 2003 một giao thức AAA Diameter mới được IETF chuẩn
hóa trong RFC 3588. Giao thức Diameter được phát triển giải quyết vấn đề mà
RADIUS còn bỏ ngỏ. Trong ứng dụng mới như mạng truy nhập nội bộ không dây
(WLAN) và Voice over IP (VoIP) Diameter tốt hơn và phù hợp hơn đối với người
dùng chuyển vùng.
Giao thức Diameter bao gồm: Diameter Base Protocol (giao thức Diameter
nền tảng) và Diameter Application (ứng dụng Diameter). Giao thức Diameter nền
tảng 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. Ứng dụng Diameter định nghĩa những ứng dụng dữ
liệu riêng. Diameter dựa trên RFC 3588 được chọn là giao thức AAA trong mạng
IMS.
Hiện tại giao thức Diameter được dùng để tập trung, hạn chế, hỗ trợ truy
nhập mạng IP. Giao thức Diamter được thiết kế nhằm cải tiến giao thức RADIUS.
Nhóm 1_ D11VT7
Page 9
Tiểu luận môn học
Thuật ngữ viết tắt
Đích đến của nó là tối đa hóa khả năng và cho chuyển đổi đơn giản hơn từ
RADIUS sang Diameter. Vi dụ với bản tin Diameter, như bản tin RADIUS nhưng
có thêm cặp giá trị thuộc tính (AVP).
Hình 1.1 Tổng quan về Diameter
1.2. Khung Diameter
Hình 1.2 Kiến trúc phân lớp giao thức Diameter
Giao thức Diameter bao gồm giao thức cơ bản và ứng dụng giao thức
Diameter chỉ ra trong hình 2.2. Các ứng dụng mở rộng của giao thức Diameter cơ
bản:
Hình 1.3 Giao thức cơ bản Diameter
Nhóm 1 _ D11VT7
10
Tiểu luận môn học
Thuật ngữ viết tắt
Trong giao thức cơ bản chức năng được hỗ trợ cho tất cả các dịch vụ, như là
cơ chế truyền tin cậy, truyền bản tin và xử lý lỗi.
Giao thức cơ sở Diameter (Diameter Base Protocol) sử dụng cả giao thức
điều khiển truyền dẫn – Transmission Control Protocol (TCP) [RFC 793] và Giao
thức điều khiển luồng truyền dẫn – Stream Control Transmission Protocol (SCTP)
[RFC 2960] để truyền dữ liệu. Sự khác nhau giữa các nút Diameter là liên kết nối
với cấu trúc ngang cấp peer-to-peer. Khung Diameter cho phép kiểu và cấu trúc ứng
dụng push và pull. Giao thức cơ bản Diameter định nghĩa tiêu để Diameter và cặp
giá trị thuộc tính AVP (AVPs). Ứng dụng có thể mở rộng với việc định nghĩa bản
tin mới và các AVP và trong đơn vị dữ liệu giao thức (PDU-Protocol Data Units).
Khả năng thích hợp ngược với giao thức, giao thức Diameter không chia sẻ
PDU chung với RADIUS. Cần có một bộ dịch để dịch giữa Diameter và RADIUS.
1.2.
Các thành phần Diameter
Diameter là một giao thức ngang hàng peet-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. Diameter máy khách là thiết bị đầu cuối của mạng thực
hiện truy vấn và sử dụng dịch vụ. Tác nhân Diameter có thể là Relay, Proxy,
Redirect hoặc Translation (dịch bản tin).
Diameter thiết lập chứng thực, cấp quyền và thanh toán cho từng vùng cụ
thể đó là nơi có server đặt trong đó.
Thành phần Diameter thực hiện một số yêu cầu trong khi đó một số thì
không. Một thành phần có thể là một kiểu thành phần hoặc là server đối với một vài
yêu cầu, nhưng cũng có thể là thành phần hoặc máy chủ cho yêu cầu khác.
Trong Diameter, cả Diameter client và Diameter server đều có thể gửi hoặc
nhận các yêu cầu cũng như hồi đáp.
Bản tin Diameter ở một trong hai dạng yêu cầu và hồi đáp. Một yêu cầu được
trả lời bởi một hồi đáp. Ngoại trừ một vài trường hợp đặc biệt, nói chung yêu cầu
Diameter luôn luôn được trả lời, vì vậy bên gửi yêu cầu luôn được nhận thông tin
chính xác về kết quả của yêu cầu đó. Trong trường hợp có lỗi, bên gửi có thể dễ
dàng phát hiện và gửi lại.
Nhóm 1 _ D11VT7
11
Tiểu luận môn học
Thuật ngữ viết tắt
1.2.1 Thành phần RELAY (Chuyển tiếp)
Được sử dụng để truyền bản tin tới đích tương ứng, tùy thuộc vào thông tin
chứa trong bản tin. Thành phần Relay cho phép thay đổi bản tin bằng cách thêm vào
hoặc bỏ đi thông tin định tuyến, nhưng không cho phép sửa đổi các phần khác 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 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 sử dụng để tìm kiếm một entry. Mã
ứng dụng ứng với 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 thứ quan trọng thứ hai để tìm kiếm một
entry. Trường hoạt động cục bộ chứa một trong 4 giá trị: Local, Relay, Proxy,
Redirect. Dựa vào trường này mà thành phần 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ế
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.
Thành phần Relay 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 Accounting, tức là ghi lại các hành động của
người dùng sau khi đã thực hiện một chức năng nào đó trong hệ thống.
Hình 1.4: Thành phần Relay
Nhóm 1 _ D11VT7
12
Tiểu luận môn học
Thuật ngữ viết tắt
1.2.2 Thành phần PROXY (Ủy quyền)
Giống như thành phần Relay, thành phần Proxy định tuyến các bản tin
Diameter sử dụng bảng định tuyến. Thành phần Proxy có thể được sử dụng cho
truyền gói tin, nhưng không giống như thành phần Relay, thành phần Proxy có thể
thay đổi nội dung bản tin chứa bên trong và do dó cung cấp giá trị dịch vụ, bắt buộc
qui tắc trên bản tin khác nhau, hoặc thực hiện quản lý nhiệm vụ cho vùng cụ thể.
Khi mà thành phần Proxy thay đổi bản tin thì việc không có bảo mật đầu cuối cũng
có thể xảy ra.
Hình 1.5: Thành phần PROXY
1.2.3 Thành phần REDIRECT (Gửi lại)
Thành phần Redirect có thể cho một Agent biết nơi để tìm thấy Diameter
server, ví dụ như server mạng nhà cho từng người dùng cụ thể. Hoạt động như 1
kho chứa cấu hình tập trung cho nút Diameter khác. Khi nó nhận 1 bản tin, nó kiểm
tra trong bảng định tuyến và gửi trở lại bản tin trả lời với thông tin gián tiếp tới bên
gửi. Bởi vì thành phần Redirect không thiết lập bản tin, chúng cũng không thay đổi
bản tin. Khi một yêu cầu vào thành phần Proxy, thành phần Redirect cho biết server
mạng nhà được đặt ở đâu. Sau đó thành phần Proxy có thể thiết lập kết nối tới
server mạng nhà. Hình 1.6 chỉ ra rằng làm thực thể Redirect hoạt động như thế nào.
Hình 1.6 dưới đây là giống như hình 1.5 nhưng lúc này tác nhân Proxy không biết
địa chỉ để liên lạc với nút Diameter về example.com. Do đó nó tìm kiếm thông tin
trong thực thể Redirect trong vùng của nó để lấy địa chỉ:
Nhóm 1 _ D11VT7
13
Tiểu luận môn học
Thuật ngữ viết tắt
Tìm kiếm (example.com)
-> định tuyến tới thành phần
Proxy
Tìm kiếm (example.com)
-> định tuyến tới Diameter server trong
miền khác
Tìm kiếm (example.com)
-> xử lý nội bộ
5. Trả lời
6.Trả lời
Thực thể
Diameter Proxy
Diameter Client
1. Yêu cầu
Diamerter
Server
4. Yêu cầu
Example.net
2. Yêu cầu
3. Gửi lại
Example.com
Thành phần
Diameter
REDIRECT (gửi
lại)
Hình 1.6: Thành phần Redirect
Vậy, thành phần Redirect thực hiện việc định tuyến các bản tin sang tên miền
khác. Nó đã 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, thành phần Redirect sẽ
đáp ứng lại địa chỉ của chặng kế tiếp để thành phần Proxy định tuyến.
1.2.4 Thành phần TRANSLATION (Dịch)
Trong những thành phần đã có, có thành phần đặc biệt gọi là thành phần
dịch. Tương ứng với tên gọi của thành phần này chức năng chính của nó chính là
chuyển đổi bản tin từ giao thức AAA sang dạng khác. Thực thể Translation có thể
cung cấp khả năng tương thích ngược.
Hình 1.7: Thực thể Diameter Translation
Hình 1.7 chỉ ra rằng cách 1 thực thể Translation chuyển từ giao thức Radius
sang giao thức Diameter. Thành phần Translation 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,...
Nhóm 1 _ D11VT7
14
Tiểu luận môn học
Thuật ngữ viết tắt
1.4. Cấu trúc bản tin của 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.
Diameter Header
AVP
AVP
Hình 1.8: Cấu trúc bản tin Diameter
1.4.1 Cấu trúc Header
0
8
16
Version
Message Length
Command Flags
Command Code
31
Application – ID
Hop – by – Hop Identifier
End – to – End Identifier
Hình 1.9: Cấu trúc Header của giao thức Diameter
Giải thích ý nghĩa các trường:
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 9 trong bản tin yêu cầu và
không lỗi.
T (potentially re-transmitted massage): Bít 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.
Nhóm 1 _ D11VT7
15
Tiểu luận môn học
Thuật ngữ viết tắt
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.
1.4.2 AVP (Attribute value pair)
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.
0
7
8
31
AVP code
AVP flags
AVP length
Vendor ID
Data
Hình 1.10: Cấu trúc AVP
Giải thích ý nghĩa các trường:
Trường cờ AVP, 8 bit
00 01 02 03 04 05 06 07
Nhóm 1 _ D11VT7
16
Tiểu luận môn học
Thuật ngữ viết tắt
V M P Reserved
V, Vendor-specific, 1 bit
Nếu đặt, Trường định danh nhà sản xuất được đưa ra.
M, có tính bắt buộc, 1 bit
Nếu đặt, cho biết rằng AVP này được yêu cầu hỗ trợ.
P, 1bit
Nếu đặt, bảo mật đầu cuối được cần đến.
Reserved, trường dành riêng, 5 bit
Kích cỡ của tiêu đề AVP và dữ liệu trong các byte.
Trường chiều dài, cho biết chiều dài AVP không có phần độn
Dữ liệu Diameter AVP có thể có kiểu định dạng sau: OctetString, Interger32,
Interger64, Unsigned32, Unsigned64, Float32, Float64 và Grouped.
Grouped các AVP được sử dụng cho nhiều AVP trong 1 AVP. Trong trường
hợp này trường dữ liệu AVP chứa nhiều AVP.
Trường Vendor ID, 32 bit
Trường này được đưa ra khi mà bit V được đặt trong trường cờ của AVP.
Trường này chứa IANA đã gán giá trị “Mã quản lý cá nhân mạng SMI” (SMI
Network Management Private Enterprise Codes), được mã hóa theo thứ tự. Bất kì
nhà sản xuất đều bổ sung một Vendor-specific Diameter AVP để sử dụng Vendor
ID của riêng họ với quản lý không gian địa chỉ AVP của riêng mình, đảm bảo rằng
chúng không xung đột với bất kì AVP vendor-specific của các nhà sản xuất khác, và
trong ứng dụng tương lai. Khi mà trường này không có thì phải chèn thêm các bit
giá trị 0 vào.
Trường mã lệnh 32 bit
Khi kết hợp với định danh nhà sản xuất thì thuộc tính được định danh duy
nhất. Giá trị AVP từ 1 đến 255 được dành riêng cho RADIUS mà không có trường
Vendor ID. Giá trị AVP từ 256 trở lên sử dụng cho Diameter, được cấp phát bởi
IANA.
Nhóm 1 _ D11VT7
17
Tiểu luận môn học
Thuật ngữ viết tắt
Bảng 1.1: Một số AVPs
Mã
Mô tả
Tham
Khảo
1-255
Thuộc tính RADIUS
257
Host-IP-Address.
RFC 3588
259
Acct-Application-Id.
RFC 3588
260
Vendor-Specific-Application-Id.
RFC 3588
261
Redirect-Host-Usage.
RFC 3588
264
Origin-Host.
265
Supported-Vendor-Id.
266
Vendor-Id.
267
Firmware-Version.
268
Result-Code.
269
Product-Name.
278
Origin-State-Id.
279
Failed-AVP.
280
Proxy-Host.
281
Error-Message.
282
Route-Record.
283
Destination-Realm.
284
Proxy-Info.
285
Re-Auth-Request-Type.
292
Redirect-Host.
293
Destination-Host.
Nhóm 1 _ D11VT7
18
Tiểu luận môn học
Thuật ngữ viết tắt
294
Error-Reporting-Host.
295
Termination-Cause.
296
Origin-Realm.
320
MIP-Reg-Request.
321
MIP-Reg-Reply.
322
MIP-MN-AAA-Auth.
323
MIP-HA-to-FA-SPI.
325
MIP-MN-to-FA-MSA.
RFC 4004
326
MIP-FA-to-MN-MSA.
RFC 4004
369
SIP-Accounting-Server-URI.
RFC4740
370
SIP-Credit-Control-Server-URI.
RFC4740
379
SIP-Authenticate.
RFC4740
380
SIP-Authorization.
RFC4740
389
SIP-User-Data.
RFC4740
390
SIP-User-Data-Type.
RFC4740
415
CC-Request-Number.
RFC 4006
1.5.
Một số đặc điểm của giao thức Diameter
1.5.1
Vận chuyển
Giao thức Diameter sử dụng cả 2 giao thức truyền tải TCP và SCTP. Tuy
nhiên SCTP được chọn nhiều hơn trong các kết nối có định hướng giữa các thành
phần Diameter, nó có thể chia nhiều luồng độc lập vào trong một kết nối SCTP,
thay vì giữ tất cả các luồng đó riêng như trong TCP. Diameter khách hỗ trợ 1 trong
2 giao thức, trong khi đó các thực thể khác và server phải hỗ trợ cả 2. Một nút
Diameter có thể khởi tạo kết nối từ port nguồn tới một đích mà nó chấp nhận kết
nối, và phải chuẩn bị để nhận kết nối trên cổng 3868. Một cơ chế là không sử dụng
Nhóm 1 _ D11VT7
19
Tiểu luận môn học
Thuật ngữ viết tắt
nhiều hơn 1 kết nối vận chuyển với nút ngang cấp, trừ phi trường hợp nhiều nút tồn
tại và mỗi trường hợp là kết nối riêng biệt và được cho phép xử lý.
Khi không có kết nối vận chuyển tồn tại với nút ngang cấp, việc cố gắng kết
nối theo chu kì sẽ được tiến hành. Cách cư xử này được thiết lập thông qua Tc
Timer, với giá trị là 30s.
i.
SCTP
SCTP được thiết kế để truyền bản tin báo hiệu PSTN trên mạng IP, nhưng
cũng có thể cho các ứng dụng khác rộng hơn. 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, nó cung cấp những dịch vụ sau tới người dùng:
Xác thực lỗi truyền của người dùng.
Phân chia tệp dữ liệu để phù hợp với MTU của từng mạng.
Chuỗi bản tin người dùng được sắp xếp với đa luồng, với sự tùy chọn thứ tự
nơi đến của từng bản tin riêng biệt.
Đóng gói tùy chọn nhiều bản tin người dùng vào trong một gói SCTP.
Khả năng chịu đựng lỗi mạng thông qua hỗ trợ multi-homing một trong hai
hay cả hai đầu cuối liên kết.
Thiết kế SCTP bao gồm tránh tắc nghẽn và chống lại quá trình flood và tấn
công giả mạo.
MAC header
IP header
SCTP header
Data
Tiều đề SCTP
0
15
31
Cổng đích
Cổng nguồn
Thẻ xác minh
Tổng kiểm tra
Đoạn (1…n)
Hình 1.11: Định dạng bản tin SCTP
Nhóm 1 _ D11VT7
20
Tiểu luận môn học
Thuật ngữ viết tắt
Giải thích ý nghĩa các trường:
Cổng nguồn. 16 bit
Số cổng của SCTP bên gửi. Nó có thể được sử dụng kết hợp với địa chỉ IP
nguồn. Khi tới bên nhận để xác định nguồn, cổng đích SCTP và có thể địa chỉ đích
IP để xác định nút đến mà gói tin thuộc về.
Cổng đích. 16 bit
Số cổng SCTP mà gói tin sẽ được chuyển đến. Bên nhận sẽ sử dụng số cổng
này để truyền các gói tin SCTP đến đúng điểm /ứng dụng nhận.
Thẻ xác minh. 32 bit
Bên nhận bản tin SCTP sẽ sử dụng trường này để xác nhận tính hợp lệ của
gói tin SCTP phía gửi. Trên quá trình truyền, giá trị của trường này phải đặt giá trị
Initiate (Khởi đầu). Thẻ nhận được từ nút ngang cấp đầu cuối trong suốt quá trình
khởi tạo, sẽ loại bỏ với trường hợp sau:
Một gói chứa một đoạn khởi đầu có giá trị thẻ xác minh là 0.
Gói chứa một đoạn SHUT_DOWN với bit T được đặt có xác nhận thẻ copy
từ gói với đoạn SHUT_DOWN.
Gói chứa một đoạn ABORT sẽ có xác nhận thẻ đã copy từ gói với ABORT
đã được gửi.
Tổng kiểm tra. 32 bit
Chứa tổng kiểm tra của gói tin SCTP. STCP sử dụng thuật toán Adler-32 cho
tính toán tổng kiểm tra.
ii.
TCP
Giao thức TCP (Transmission Control Protocol) cung cấp dịch vụ truyền
thông dữ liệu định hướng truyền thống cho các chương trình - dịch vụ chuyển dòng
(stream) tin cậy. TCP cung cấp một mạch ảo, còn được gọi là kết nối. Nó cấp khả
năng đứt quãng, kiểm tra lỗi và điều khiển luồng.
Nhóm 1 _ D11VT7
21
Tiểu luận môn học
Thuật ngữ viết tắt
Cấu trúc tiêu đề TCP:
0
4
10
15
Source Port
31
Destination Port
40 octet
Sequence Number
Acknowledgement Number
Header
length
Unused
Flags
Checksum
Window
Urgent Pointer
Option Padding
Hình 1.12: Cấu trúc tiêu đề TCP
Giải thích ý nghĩa các trường:
Source port, Destination port (cổng nguồn, cổng đích): chứa các giá trị cổng
TCP để xác định các chương trình ứng dụng tại hai đầu kết nối. Mỗi khi TCP
nhận gói dữ liệu từ IP, nó sẽ gỡ bỏ phần đầu IP và đọc phần đầu TCP.
Sequence Number (số thứ tự): xác định vị trí trong chuỗi các byte dữ liệu
trong segment của nơi gửi.
Acknowledgment Number (số xác nhận): xác định số octet mà nguồn đang
đợi để nhận kế tiếp. Lưu ý là Sequence Number để chỉ đến lượng dữ liệu
theo cùng chiều với segment, trong khi giá trị Acknowledgment Number để
chỉ đến dữ liệu ngược lại với segment đến.
Header length (độ dài tiêu đề): chứa một số nguyên để xác định độ dài của
phần đầu segment, được tính theo bội số của 32 bit. Giá trị này là cần thiết vì
có phần Options có độ dài thay đổi, tùy thuộc vào những lựa chọn đã được
đưa vào.
Unused (dự phòng): được dành riêng để sử dụng trong tương lai.
Flags (bít mã): gồm có 6 bít để xác định mục đích và nội dung của segment,
diễn dịch các nội dung trong phần đầu dựa vào nội dung các bit. Ví dụ
segment chỉ chuyển tải ACK, hoặc chỉ chuyển đưa dữ liệu hay để tải những
yêu cầu để thiết lập hoặc ngắt nối.
Window (cửa sổ): thông báo cho máy tính đầu cuối kích thước vùng đêm cho
quá trình truyền.
Urgent pointer (con trỏ khẩn cấp): yêu cầu kết nối gửi dữ liệu ngoài dòng xác
định, chương trình nhận phải được thông báo lập tức ngay khi dữ liệu đến
cho dù nó nằm ở đâu trong vùng dữ liệu. Sau khi xử lý xong dữ liệu khẩn
Nhóm 1 _ D11VT7
22
Tiểu luận môn học
Thuật ngữ viết tắt
cấp, TCP thông báo cho chương trình ứng dụng trở về trạng thái thông
thường.
Đơn vị truyền giữa hai phần mềm TCP trên hai máy được gọi là segment.
Các segment được trao đổi để thiết lập kết nối, để truyền dữ liệu, để gửi các ACK
(thông báo xác nhận đã nhận dữ liệu), để thông báo kích thước của cửa sổ (nhằm tối
ưu hóa quá trình truyền và nhận dữ liệu) và để ngắt kết nối.
1.5.2 Nút ngang cấp Diameter
Diameter là giao thức ngang hàng (pear-to-pear), có nghĩa là từ mọi nút
Diameter đều có thể gửi yêu cầu tới các nút khác. Một Diameter client không phải
là thực thể chức năng chỉ gửi yêu cầu cũng như một Diameter server không phải là
thực thể chức năng chỉ gửi trả lời khi có yêu cầu. Thay vì thế một Diameter client là
thực thể chức năng có tính chất điều khiển truy nhập, trong khi Diameter server là
thực thể chức năng thực hiện việc chứng thực và cấp quyền. Trong Diameter, cả
Diameter client và Diameter server đều có thể gửi hoặc nhận các yêu cầu cũng như
hồi đáp.
Nút Diameter có tối thiểu 2 nút trên miền, nút thứ cấp và nút sơ cấp. Các nút
Diameter được kết nối được lưu trữ trong bảng ngang cấp.
Việc khám phá ngang cấp làm cho giao thức Diameter đơn giản hơn và hiệu
quả hơn. Việc làm này diễn ra khi mà nút có thể cần khám phá ra thực thể Diameter
đầu tiên hoặc khi máy khách cần khám phá ra thực thể khác cho quá trình xử lý xa
hơn. Cơ chế này dựa trên chuẩn IETF. Cơ chế này được cấu hình bằng tay cho vị trí
thực thể (cấu hình tĩnh), Giao thức vị trí dịch vụ (SRVLOC) (RFC 2608) và Server
tên miền (DNS) (RFC 1034, RFC 1035).
Khi hai nút muốn thiết lập kết nối, chúng sử dụng bản tin trao đổi để tìm
kiếm các nút và khả năng trao đổi. Khả năng trao đổi có thể sử dụng tại các nút kế
tiếp. Sau khi yêu cầu khả năng trao đổi luôn là bản tin trả lời khả năng trao đổi.
Khi nút mất kết nối, yêu cầu ngắt kết nối được sử dụng để cho nút biết việc
ngắt kết nối tầng vận chuyển, và nút sẽ không kết nối lại trừ khi nó có lý do nào đó.
Khi nút ngắt kết nối mà không có bản tin Disconect-Peer nút sẽ cố gắng liên lạc lại
theo chu kì.
Đối với 1 nút Diameter, khám phá vị trí ngang cấp cũng giống như cấu hình
định tuyến sẽ được lưu trữ sử dụng 2 bảng Diameter.
Nhóm 1 _ D11VT7
23
Tiểu luận môn học
Thuật ngữ viết tắt
Peer Table, bảng ngang cấp được sử dụng để lưu trữ địa chỉ host của các nút
Diameter. Thông tin khác được tìm thấy một cách tự động như là tình trạng, thông
tin bảo mật, cũng có trong bảng định tuyến
Peer Routing Table, yêu cầu chú ý bản tin định tuyến. Đầu tiên chính là tên
vùng và tên ứng dụng, đó được coi như là tiêu chuẩn cho bản tin định tuyến. Bước
tiếp theo chính là lấy được đích bản tin, có thể là Proxy, Relay, Redirect hoặc Local.
Cơ chế Local nghĩa là bản tin nên đuợc xử lý nội bộ thay vì chuyển tới nút khác.
1.5.2. Kết nối và phiên
Sau khi nút ngang cấp phù hợp được tìm ra, bước thực hiện tiếp theo là kết
nối tới nút đó. Một kết nối vật lý giữa các nút Diameter được thiết lập. Nó là bắt
buộc cho giao thức Diameter chạy TCP hoặc SCTP. So sánh với UDP, sử dụng
trong Radius, 2 giao thức này cung cấp truyền tin cậy hơn, nó có tính chất quan
trọng trong ứng dụng trao đổi thông tin thanh toán.
Giao thức Diameter đưa ra cấu trúc cơ bản là cấu trúc ngang hàng peer-topeer, có thể có hơn nhiều 1 kết nối được thiết lập cho từng nút cụ thể. Giao thức
Diameter định nghĩa 1 cách rõ ràng nút Diameter phải được thiết lập 1 kết nối giữa
2 nút ngang cấp tại vùng nhỏ, hoạt động như là điểm sơ cấp và thứ cấp. Dĩ nhiên kết
nối sẽ được thiết lập khi cần.
So sánh với kết nối, phiên là kết nối logic giữa 2 nút Diameter, và có thể là
nhiều kết nối. Một phiên trên thực tế là khái niệm các chuỗi các hành động trong
khung thời gian, và có tác động lẫn nhau giữa nút Diameter client và Diameter
server trong khoảng thời gian được đưa ra. Mỗi phiên trong Diameter được kết hợp
với 1 nhận dạng phiên (Session –ID) client mà là tổng quát và duy nhất. Session-ID
được sử dụng để nhận dạng từng phiên riêng biệt trong suốt quá trình liên lạc.
Nhóm 1 _ D11VT7
24
Tiểu luận môn học
Thuật ngữ viết tắt
Phiên người dùng X
Các thực thể
client
Bảo mật từng chặng
Kết nối nút A
server
Bảo mật từng chặng
Kết nối nút B
Hình 1.13: Phiên và kết nối trong Diameter
Khởi tạo phiên
Như hầu hết kiểu kết nối client-server, 1 phiên Diameter bắt đầu bởi bản tin
yêu cầu từ máy khách tới máy chủ. Diameter khách sẽ gửi 1 bản tin yêu cầu nhận
thực chứa session-id duy nhất không trùng với bản tin khác tới Diameter server
(hoặc Diameter proxy nếu bản tin chuyển yêu cầu). Chú ý rằng AVPs được sử dụng
cho nhận thực và cấp quyền cho ứng dụng cụ thể và chúng không định nghĩa trong
giao thức cơ bản Diameter.
Sau khi chấp nhận bản tin yêu cầu nhận thực, Diameter server có thể bao
gồm AVP cấp quyền thời gian sống trong bản tin trả lời. AVP này được sử dụng để
chỉ định thời gian tính bằng giây cho Diameter client cần để nhận thực lại. Sau khi
hết thời gian Diameter server sẽ kết thúc phiên từ danh sách phiên và xoá tài nguyên
cấp phát cho phiên đó.
Phiên
Trong suốt phiên, Diameter server có thể bắt đầu bản tin yêu cầu nhận thực
lại và cấp quyền lại. Với dịch vụ trả cước, kiểu của bản tin yêu cầu được sử dụng để
kiểm tra có hay không người dùng vẫn sử dụng dịch vụ, nếu không có Server sẽ bỏ
đi phiên để tránh tình trạng tính thêm cước.
Do đó, Origin-State-id AVP được sử dụng cho giao diện của chấp nhận kết
thúc phiên. Bản tin request của người gửi sẽ bao gồm AVP này, và bởi vì nó được
yêu cầu cho giá trị của AVP này bên nhận bản tin yêu cầu này có thể kết luân rằng
phiên này đã khoá, theo một cách khác bởi vì thiết bị truy nhập có thể bị ngắt hoặc
Nhóm 1 _ D11VT7
25