Chương 1 : Giới thiệu SIP
Khi
bạn chat message, vioce chat hay webcam trong Y!M hay SKY để thực
hiện cuộc trò chyện trên Internet, các lập trình viên của Y!M hay SKY đã
sử dụng giao thức SIP để cho ra đời những tính năng đó. SIP được xem là
một giao thức thế hệ mới rất mạnh mẽ trong việc trao đổi qua mạng.
Chúng ta hãy bắt đầu tìm hiểu về SIP.
I. Sip là gì ?
SIP
là viết tắt của cụm từ “Session Initiation Protocal”, là một giao thức
truyền tín hiệu ở tầng ứng dụng (application-level) và được định nghĩa
bởi IETF. SIP được sử dụng để tạo và quản lý các session thông qua mạng
IP. Thuật ngữ “Session” là một phiên làm việc trong quá trình trao đổi
media (voice, video,….).
SIP
làm việc cùng các giao thức khác trong tầng ứng dụng để nhận dạng và
truyền session media. Sự nhận dạng và thỏa thuận về media được thực hiện
với Session Description Protocol (SDP). Đối với việc truyền các media
stream (voice, video), SIP kết hợp Real-time Transport Protocol (RTP)
hay Secure Real-time Transport Protocol (SRTP). Còn bảo mật trong quá
trình truyền các thông điệp thì được mã hóa bởi Transport Layer Security
(TLS).
SDP
được sử dụng để miêu tả các loại media session nhằm mục đích thông báo,
mời gọi và thỏa thuận về các tham số dành cho một session. Do đó, để
tạo ra một session, một SIP message luôn mang theo SDP mà cho phép các
bên tham gia đồng ý thiết lập một vài các thông số cần thiết vể trao đổi
media, cũng như kiểu media, địa chỉ truyền tải,…
Tóm
lại, nhiệm vụ của SIP là liên kết các peer lại với nhau, nó kết hợp với
SDP để miêu tả về tính năng media sẽ thực hiện sau đó. Còn việc thực
hiện các tính năng media là nhiệm vụ của giao thức khác.
II. SIP Addressing (địa chỉ của SIP):
Trong SIP, mỗi người dùng đều có 1 SIP URI tương ứng , đó được gọi là địa chỉ của SIP.
Có dạng như sau:
Trong đó:
- Mỗi địa chỉ SIP URI, đầu tiên bắt buộc phải có bổ ngữ sip.
- Phần người dùng (không bắt buộc) gồm có : username và password.
- Phần host (bắt buộc) phải khai báo để có thể trao đổi media session.
Ví dụ : sip:khang.dang@niit.com, sip:khang:34632@112.167.4.9:2008, sip:43.67.23.12, ....
III. Các thành phần của SIP:
Các thành phần của SIP bao gồm :
- User Agents (UAs)
- Registras
- Proxies
- Back-to-Back User Agents (B2BUSs)
1. User Agents :
Một SIP User Agent (UA) bao gồm 2 thành phần : User Agent Client (UAC) và User Agent Server (UAS).
- Nhiệm vụ của UAC : tạo ra các SIP request gởi cho UAS và nhận các response được gởi từ UAS .
- Nhiệm vụ của UAS : nhận các SIP request được gởi từ UAC và tạo ra các response gởi cho UAC.
UAC
và UAS của 1 UA không bao giờ liên lạc với nhau, nên nói "UAC gởi
request đến UAS" thì bạn phải hiểu UAC thuộc UA1 và UAS thuộc UA2 , cũng
như nói "UAS gởi reponse đến UAC" thì bạn cũng phải hiểu UAS và UAC
thuộc 2 UA khác nhau.
SIP UA là bộ phận quan trọng của 1 ứng dụng về truyền media. SIP UA được thực hiện trong nhiều cách khác nhau, có thể là:
- Một phần mềm chạy trên PC.
- Một ứng dụng trên mobile phone.
- Một trạng thái nào đó trong network server : gởi phản hồi tự động khi có yêu cầu, tự động gởi media chúc mừng sinh nhật,….
2. Registrar :
Registrar
là một server mà chấp nhận các registration request từ các UA. UA cung
cấp địa chỉ hiện tại của nó trong resgistration request gởi đến
Registrar Server. Mỗi UA phải được đăng ký trước khi nó có thể gởi và
nhận media . Khi registrar nhận registration request, nó lấy một số
thông tin và lưu vào trong 1 cơ sở dữ liệu được gọi là Location Service.
Tức
là, Registrar là 1 SIP endpoint mà nhận các registration request và đưa
các thông tin nó nhận được trong request này vào location service để xử
lý.
3. Location Service:
Location
Service là một cơ sở dữ liệu mà chứa một tập danh sách được ánh xạ giữa
Adresses of Record (AORs – địa chỉ công khai của UA) và Contact
Addresses (địa chỉ IP của UA).
Khi
Registrar nhận một registration request từ một UA, registrar sẽ đưa
thông tin nó nhận được vào Location Service. Location service liên hệ
với Proxy Servcers chỉ ra domain chính xác để lấy về thông tin địa chỉ
mà có thể được thực hiện cuộc gọi đến người dùng.
Ví dụ:
4. Proxy Server :
* Chức năng của Proxy Server trong Internet :
Một
số hãng và công ty sử dụng proxy với mục đích: Giúp nhiều máy tính truy
cập Internet thông qua một máy tính với tài khoản truy cập nhất định,
máy tính này được gọi là Proxy server. Chỉ duy nhất máy Proxy này cần
modem và account truy cập internet, các máy client (các máy trực thuộc)
muốn truy cập internet qua máy này chỉ cần nối mạng LAN tới máy Proxy và
truy cập địa chỉ yêu cầu. Những yêu cầu của người sử dụng sẽ qua trung
gian proxy server thay thế cho server thật sự mà người sử dụng cần giao
tiếp, tại điểm trung gian này công ty kiểm soát được mọi giao tiếp từ
trong công ty ra ngoài internet và từ internet vào máy của công ty. Sử
dụng Proxy, công ty có thể cấm nhân viên truy cập những địa chỉ web
không cho phép, cải thiện tốc độ truy cập nhờ sự lưu trữ cục bộ các
trang web trong bộ nhớ của proxy server và giấu định danh địa chỉ của
mạng nội bộ gây khó khăn cho việc thâm nhập từ bên ngoài vào các máy của
công ty.
Đối
với các nhà cung cấp dịch vụ đường truyền internet: Do internet có
nhiều lượng thông tin mà theo quan điểm của từng quốc gia, từng chủng
tộc hay địa phương mà các nhà cung cấp dịch vụ internet khu vực đó sẽ
phối hợp sử dụng proxy với kỹ thuật tường lửa để tạo ra một bộ lọc gọi
là firewall proxy nhằm ngăn chặn các thông tin độc hại hoặc trái thuần
phong mỹ tục đối với quốc gia, chủng tộc hay địa phương đó. Địa chỉ các
website mà khách hàng yêu cầu truy cập sẽ được lọc tại bộ lọc này, nếu
địa chỉ không bị cấm thì yêu cầu của khách hàng tiếp tục được gửi đi đến
các DNS server của các nhà cung cấp dịch vụ. Firewall proxy sẽ lọc tất
cả các thông tin từ internet gửi vào máy của khách hàng và ngược lại.
* Chức năng của Proxy Server trong SIP:
Tương
tự như chức năng của Proxy Server trong Internet, Proxy Server trong
SIP là một thực thể trung gian, vai trò chính của proxy là định tuyến,
nghĩa là bảo đảm một request sẽ được gởi đến người dùng. Proxy Server có
thể được dùng để kiểm tra, thống kê, tìm đường truyền kế tiếp, hoặc
một chính sách bắt buộc nào đó,….
Có nhiều loại Proxy khác nhau trong SIP, nhưng 2 loại Proxy thường được nhắc đến là : outbound proxy và inbound proxy.
+ Outbound Proxy
: Outbound Proxy giúp đỡ UAC để định tuyến các request đi ra từ UAC.
UAC thường được cấu hình truyền các request của nó đến một outbound
proxy.
+ Inbound Proxy
: định tuyến các request đi ra từ Inbound proxy, sẽ trực tiếp đến UAS.
Khi Inbound proxy nhận một request yêu cầu gởi đến 1 user, đầu tiên
inbound proxy sẽ truy cập Location Service để xác định contact address
của user, sau đó mới gởi trực tiếp đến user.
5. Forking :
Forking
của SIP request có nghĩa là nhiều session media có thể được thực hiện
từ 1 request duy nhất. Đây là 1 tính năng mạnh mẽ của SIP.
Với SIP Forking, bạn có thể đăng ký 1 Address of Record với nhiều Contact Adress trong location service.
Khi
có 1 request gởi đến inbound proxy để thực hiện cuộc gọi, nếu proxy tìm
thấy nhiều địa chỉ contact khác nhau thì nó sẽ đưa ra 1 thuật toán để
cố gắng liên lạc với các địa chỉ contact khác nhau. Có 2 thuật toán được
sử dụng :
+ Sequential search (tìm tuần tự) : proxy cố gắng tìm lần lượt từng vị trí, vị trí này xong đến vị trí khác.
+ Parallel search (tìm song song) : proxy sẽ tìm tất cả các vị trí cùng lúc.
6. Redirect Server:
Redirect
Server là UAS mà nhận request từ UAC và tự động tạo ra các responses
gởi đến UAC. Các reponses này hướng dẫn UAC tạo ra request mà có thể
liên lạc với 1 tập các địa chỉ thay thế.
7. Back-to-Back User Agents (B2BUA):
Một
B2BUA là một server mà nhận 1 request, sau đó tính toán lại request đó
và gởi nó đi dưới dạng 1 request mới. Các Response phản hồi lại request
mới này cũng được tính toán lại và gởi đi theo hướng ngược lại. B2BUA
quản lý từ lúc bắt đầu cho đến khi kết thúc.
B2BUA được sử dụng để cung cấp những tính năng nâng cao, ví dụ dịch vụ nặc danh, ẩn thông tin người gọi….
IV. Cấu trúc giao thức SIP:
Giao
thức SIP hoạt động dưới dạng một tập hợp các bước xử lý độc lập riêng
lẽ nhau, những bước xử lý này được gọi là Layer (lớp). Chúng ta đã từng
biết qua một vài các giao thức nổi tiếng cũng hoạt động theo mô hình
Layer như bộ giao thức TCP/IP. Tuy nhiên, SIP cũng chỉ là 1 giao thức
nằm trong bộ giao thức TCP/IP.
Lưu ý: Trong chương này, khi nói đến Layer thì bạn phải hiểu đó là Layer của giao thức SIP.
* Các layer của giao thức SIP:
- SIP Syntax and encoding
: là layer thấp nhất được định nghĩa trong SIP. Nó là một tập các quy
tắc mà định nghĩa về sự định dạng và cấu trúc của mỗi SIP Message. Nói
đơn giản là nó cho các thực thể hiểu và biên dịch các SIP message. Ví
dụ, khi UA nhận được 1 SIP Message, thì UA cần phải biết sự khác nhau
giữa các loại message, các tham số bắt đầu và kết thúc của mỗi
header,... Đó là nhiệm vụ của Syntax and encodeing layer.
- SIP transport layer:
nó định nghĩa UAC gởi request và nhận response như thế nào và UAS nhận
request và gởi response như thế nào thông qua mạng. Tất cả các thực thể
SIP đều phải có transport layer. Nó có hai thành phần: client transport
(dành cho UAC) , và server transport (dành cho UAS).
- SIP transaction layer:
là bộ phận chủ yếu của SIP. 1 Transaction được định nghĩa là một
request được gởi từ UAC đến UAS và tất cả các reponse được kết hợp với
request này. Nhiệm vụ của transaction layer là quản lý sự truyền lại của
tất cả các response liên quan đến request, và thời gian chờ đợi. Chỉ UA
và stateful porxy (chúng ta sẽ tìm hiểu trong phần sau) có transaction
layer. Nó có 2 thành phần: client transaction (dành cho UAC) và server
transaction (dành cho UAS).
-SIP core layer:
đó là tất cả các thực thể của SIP : UAC, UAS, registrar, stateful proxy
(chúng ta sẽ tìm hiểu trong những chương sau), stateless proxy.
---------------- kết thúc chương 1 -----------
Rất hay! Cảm ơn tác giả..
Trả lờiXóa