Tìm hiểu giao thức SIP và xây dựng ứng dụng minh họa - Pdf 33

LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn thầy Huỳnh Minh Quang là
người đã tận tình hướng dẫn, chỉ bảo em trong lúc thực hiện đề tài. Những
ý kiến của thầy là vô cùng quý giá đối với em không những trong lúc thực
hiện đề tài này mà còn là kinh nghiệm hữu ích cho em sau này.
Em cũng xin chân thành cảm ơn các thầy cô trong khoa Tin Học
trường đại học Mở TP.HCM đã nhiệt tình dạy dỗ và cung cấp cho em
những kiến thức hữu dụng trong cuộc sống.
Xin cảm ơn bạn bè, anh chị em đã động viên và chia sẻ thông tin cho
em trong khi thực hiện đề tài.
Cuối cùng con xin cảm ơn ba mẹ đã chăm sóc, nuôi dưỡng con thành
người.
Mặc dù đã cố gắng nhưng với những hiểu biết giới hạn chắc chắn sẽ
không tránh khỏi những thiếu sót. Rất mong thầy cô và các bạn cảm thông
và chỉ bảo.

Sinh viên thực hiện
Lưu Mạnh Hùng

i


Mục lục
Lời cảm ơn ..............................................................................................................i
Nhận xét của giáo viên hướng dẫn .........................................................................ii
Mục lục .................................................................................................................iii
Phần I Giới thiệu đề tài ....................................................................................... 1
Chương 1 Tổng quan, vai trò và ý nghĩa của SIP ............................................ 1
1.1. Tổng quan ........................................................................................................ 1
1.2. Vai trò và ý nghĩa của SIP............................................................................... 2
1.3. Các loại dịch vụ sử dụng SIP .......................................................................... 3

4.5.Nhóm 5 (5xx Server Failure Status Codes).................................................... 37
4.6.Nhóm 6 (6xx Global Failure Status Codes) ................................................... 38
Chương 5 Thủ tục đăng ký và thành lập phiên trong mạng SIP .................. 40
5.1. Thủ tục đăng ký ............................................................................................. 40
5.1.1 .Đăng ký cơ bản .................................................................................. 40
5.1.2. Khai báo sự kiện ................................................................................ 41
5.2. Thành lập một phiên trong SIP...................................................................... 42
5.2.1. Truy cập mạng ................................................................................... 42
iii


5.2.2. Khởi tạo cuộc gọi............................................................................... 42
5.2.3. Yêu cầu từ máy khách ....................................................................... 44
5.2.4. Trả lời từ máy chủ.............................................................................. 44
5.2.5. Định tuyến SIP................................................................................... 45
5.3. Chỉnh sửa phiên SIP ...................................................................................... 46
5.4. Chấm dứt phiên SIP....................................................................................... 46
Chương 6 Bảo mật SIP...................................................................................... 47
5.1. Các tấn công mạng ........................................................................................ 47
6.1.1. Registration Hijacking ....................................................................... 47
6.1.2. Session Hijacking .............................................................................. 47
6.1.3. Impersonating a Server ...................................................................... 47
6.1.4. Tampering with Message Bodies....................................................... 47
6.1.5. Tearing Down Sessions47
6.1.6. Denial of Service and Amplification ................................................. 48
6.1.7. Bots and DDoS Attacks ..................................................................... 48
6.2. Giải pháp bảo mật.......................................................................................... 48
6.2.1. Network-layer security (IPSec) ......................................................... 48
6.2.2. Transport-layer security(TLS) ........................................................... 49
6.2.3. SIPS URI scheme .............................................................................. 50

Sự quan tâm đối với internet và các dịch vụ truyền thông đa phương tiện ngày
càng tăng. Những người sử dụng internet trước đây chỉ để lướt web bây giờ lại say mê
các dịch vụ như chat (Instant Messaging), game trực tuyến, gọi điện thoại và trao đổi
Video trên mạng.
Có nhiều dịch vụ cung cấp trên mạng internet dựa trên mạng IP, có thể chia làm
3 nhóm theo quan điểm của người sử dụng là:
• Dịch vụ Infotainment:
là dịch vụ người dùng có thể truy cập thông tin và các ứng dụng giải trí từ
các máy chủ từ xa ví dụ như Web.
• Dịch vụ Streaming:
cho phép người dùng truy cập trực tuyến hoặc download các media (phim,
nhạc,v.v).
• Dịch vụ Communication:
cho phép người này giao tiếp với người khác sử dụng các media khác nhau
như điện thoại hay gửi thư.

1


Dịch vụ Communication có thể chia làm 2 loại: dịch vụ trực tuyến và dịch vụ
không trực tuyến.
• Trong dịch vụ trực tuyến chúng ta cần phải nối kết đồng thời để việc truyền
thông có thể xảy ra ngay lập tức như điện thoại, chơi cờ hay chat.
• Trong dịch vụ không trực tuyến không cần thiết phải kết nối cùng lúc để
truyền thông xảy ra như gửi thư điện tử.

Không như những loại dịch vụ khác, tín hiệu đóng vai trò quan trọng trong dịch
vụ truyền thông đa phương tiện trên mạng IP. SIP (Session Initiation Protocol) là giao
thức tín hiệu mức ứng dụng nên vai trò của nó rất quan trọng trong các dịch vụ truyền
thông đa phương tiện.

1.3. Các loại dịch vụ sử dụng SIP:
1.3.1. Các dịch vụ quản lý phiên cơ bản:
SIP có thể sử dụng trong các loại truyền thông đa phương tiện sau:
Voice communication:

Truyền thông giọng nói.
3


Video communication:
Instant Messaging communication (IM):
Text over IP:
Peer-to-peer gaming:
Whiteboarding:
File transfer:

Truyền thông video.
Trao đổi tin nhắn trực tuyến.
Trao đổi văn bản thời gian thực.
game trực tuyến.
Sử dụng một bảng vẽ để trao đổi
thông tin giữa những người dùng.
Chia sẻ file.

Ngoài ra có thể kết hợp những dịch vụ này một số như:
• Voice và video.
• Voice và IM.
• Voice và Real-Time Text.
• Voice và File Transfer.
• Voice và Gaming.


• Music on hold:
Cho nghe nhạc khi chờ đợi.
• Ringback tones:
Chuông cảnh báo cuộc gọi đến.
• Do not disturb:
Người gọi được chuyển đến một menu với một số tham số được cấu
hình.
1.3.4. Các dịch vụ hội nghị:
• Multiparty call:
Nhiều người cùng hội thoại.
• Dial-in conferences:
Những người tham gia quay 1 số định trước tham gia.
• Dial-out conferences:
Server được cấu hình để bắt đầu hội nghị ở thời gian xác định.
1.4. Mục tiêu của luận văn:
Với tầm quan trọng của hệ thống SIP như ta đã thấy mục tiêu của luận văn là tìm
hiểu giao thức SIP và cài đặt giao thức, xây dựng ứng dụng minh họa giao thức SIP.
Với mục tiêu tìm hiểu giao thức SIP luận văn sẽ trình bày về hệ thống SIP bao
gồm cấu trúc mạng SIP, chức năng SIP, các thành phần hệ thống SIP. Bên cạnh đó nó
miêu tả cách thức tổ chức của hệ thống SIP, thủ tục đăng ký trong mạng SIP. Ngoài ra
nó còn trình bày vấn đề bảo mật trong mạng SIP.
Với mục tiêu cài đặt giao thức, xây dựng ứng dụng minh họa luận văn sẽ tập
trung vào cài đặt giao thức với các lớp hỗ trợ cho hoạt động mạng SIP. Bên cạnh đó là
ứng dụng nhỏ sử dụng thư viện lớp giao thức đã cài đặt nhằm minh họa rõ nét hơn một
ứng dụng của SIP.

5



phần media mới vào phiên.
Chức năng cuối cùng của việc quản lý phiên là chấm dứt phiên. Bất kỳ
người nào tham gia vào phiên có thể sử dụng SIP để chấm dứt việc truyền thông
và việc gửi nhận media.
Một phiên có thể diễn ra như sau:
6


ƒ Bên muốn thành lập cuộc gọi sẽ gửi yêu cầu cho bên nhận. Hệ thống SIP
sẽ chuyển lời mời này đến bên nhận.
ƒ Khi yêu cầu được chuyển nó sẽ mất chút thời gian để bên nhận chấp
nhận hoặc từ chối lời mời do đó bên gửi cần phải được thông báo là yêu
cầu đang được xử lý. Hệ thống SIP sẽ chuyển những thông tin báo đang
được xử lý đến bên gửi để tránh bên gửi tiếp tục gửi lại yêu cầu.
ƒ Nếu bên nhận yêu cầu chấp nhận yêu cầu thì bên gửi cần biết được thông
tin đó để bắt đầu thành lập cuộc gọi. SIP sẽ chuyển thông tin về sự chấp
nhận đến bên gửi.
ƒ Việc thống nhất các tham số để giao tiếp như sự mã hóa và giải mã giọng
nói và video. SIP sẽ sử dụng việc mô tả phiên để thực hiện chức năng
này.
ƒ Giả sử lúc đầu phiên có truyền thông cả audio và video. Trong khi giao
tiếp một bên có thể muốn không truyền video nữa. Lúc này SIP sẽ chỉnh
sửa phiên, một mô tả phiên mới không có video sẽ gửi đến bên kia và
nếu yêu cầu được chấp nhận thì lúc này chỉ còn truyền giọng nói.
ƒ Sau khi giao tiếp một bên muốn ngắt cuộc gọi chấm dứt đàm thoại thì hệ
thống SIP sẽ chấm dứt phiên.

7



Proxy Server hoạt động như là client và server cho mục đích tạo yêu cầu
thay cho client khác.Vai trò chính của Proxy server là định tuyến tức là công việc
của nó là chuyển yêu cầu đến server tiếp theo cho đến người dùng đích.
Có thể có một tập hợp proxy server giúp định tuyến yêu cầu giữa UAC và
UAS. Có các loại proxy sau:
2.3.2.1. Outbound proxy:
Một Outbound proxy giúp UA định tuyến các yêu cầu gửi đi. UA
thường cấu hình để gửi yêu cầu đến outbound proxy, sau đó proxy sẽ định
tuyến cho chúng.

9


2.3.2.2. Inbound proxy:
Inbound proxy nắm giữ các yêu cầu đến sau đó sẽ chuyển cho UA
thích hợp trong miền mà nó chịu trách nhiệm. Khi nhận được yêu cầu đến
người dùng trong miền của nó, nó truy vấn Location Service để xác định
Contact Address rồi chuyển yều cầu đến địa chỉ này.

2.3.2.3. Forking:
Có trường hợp người dùng đăng ký nhiều địa chỉ cho một định danh
lúc đó proxy có thể thực hiện theo 2 cách như sau: Tìm kiếm lần lượt từng
địa chỉ hoặc tìm kiếm đồng thời nhiều địa chỉ.
2.3.3. Redirect Server:
Redirect server là server UA, nó nhận yêu cầu từ UAC và tạo câu trả lời cho
những yêu cầu này. Những câu trả lời này sẽ hướng dẫn UAC liên hệ với URI
khác.

10


• Các người dùng giao dịch: chịu trách nhiệm tạo các thông điệp như INVITE,
hủy bỏ giao dịch, xác định địa chỉ.
Trong các lớp trên 2 lớp đầu là cần thiết phải có.
3.1.1. Khái niệm Dialog:
Khi 2 thiết bị giao tiếp với nhau chúng trao đổi những thông điệp (là các
giao dịch). Ví dụ một điện thoại gửi yêu cầu INVITE đến điện thoại nhận. Nếu
điện thoại nhận chấp nhận yêu cầu thì nó gửi câu trả lời đến yêu cầu và trao đổi
các thông điệp khác (xem như là một dialog với thiết bị khác). Một phiên có thể
có nhiều dialog như hình sau:

12


Mỗi dialog cần một dialog ID bắt nguồn từ SIP header. Khi UAC gửi yêu
cầu nó mong chờ câu trả lời. Câu trả lời cần những header như TO, FROM
CALL ID. Header TO và FROM cần tham số TAG sử dụng để tính dialog ID.
Dialog ID là duy nhất trong UAC và UAS.

SIP là giao thức dạng text có nghĩa thông tin được mã hóa trong giao thức
là các chuỗi ký tự. Thông điệp SIP là những hàng ký tự, mỗi hàng được phân biệt
bởi hai ký tự là ký tự về đầu dòng và ký tự xuống hàng Carriage Return and Line
Feed (CRLF).
Có hai loại thông điệp là yêu cầu và câu trả lời cho yêu cầu. Cả hai loại
thông điệp đều bao gồm một hàng bắt đầu, một hoặc nhiều các field header, một
dòng trắng để xác định kết thúc các field header và một phần thân thông điệp tùy
chọn. Field header là một hàng bao gồm tên header, dấu “:”, giá trị của header và
kết thúc bởi CRLF.

13



Hình trên minh họa giá trị của Request-URI qua các hop khác nhau từ
người gửi đến người nhận trong mạng SIP. Ta có thể thấy trong bước 1 và 2 SIP
URI chứa định danh public của người nhận. Tuy nhiên khi yêu cầu đến inbound
proxy của người nhận nó truy vấn Location service và nhận địa chỉ của người
nhận sau đó thay thế URI gốc. Trong chuỗi định tuyến trên thì Request-URI luôn
chỉ nơi đến của yêu cầu và giá trị của nó thay đổi khi đến inbound proxy của
người nhận vì đã có thông tin chính xác.

14


Trong hình trên inbound proxy của người nhận cài đặt một dịch vụ chuyển
tiếp đơn giản, khi nó nhận một yêu cầu có đích đến là abc nó tự động thay đổi giá
trị Request-URI đến SIP URI của cba người mà abc muốn chuyển tất cả các cuộc
gọi đến của abc.
3.1.3. Các câu trả lời:
Câu trả lời gửi từ server đến client theo yêu cầu. Dạng của câu trả lời là:
SIP VERSION (space)STATUS CODE(space)REASON PHRASE(crlf)
SIP VERSION là phiên bản SIP, mặc định là 2.0
Status code được định nghĩa theo lớp. Có 6 lớp mã tình trạng
ƒ 1xx: Mã tạm thời:
Các mã thuộc nhóm này chỉ ra rằng yêu cầu đã được nhận và đang
được xử lý. Đây là mã trả lời thường xuyên từ server đến client, nó như là
một sự xác nhận. Mục đích là ngăn chặn việc gửi lại yêu cầu nhiều lần.
ƒ 2xx: Thành công:
Chỉ ra rằng yêu cầu đã được xử lý và hành động đã hoàn thành.
ƒ 3xx: Chuyển tiếp.
Chuyển tiếp được gửi khi một phiên được chuyển tiếp đến một địa chỉ
khác. Câu trả lời sẽ giải thích lý do chuyển tiếp và chi tiết nơi thông điệp


17


3.1.4.1. From header:
Field From thể hiện định danh logic của người tạo yêu cầu. Định danh
này là một SIP URI. Nó là định danh logic nên có thể nó không chứa địa chỉ
IP hay tên miền.
From: ABC < > ; tag = dei3i5h8sdshj88d
Field From có chứa tham số “tag”, tham số “tag” của field From kết
hợp với tham số “tag” của field To và giá trị của field Call-ID dùng để xác
định dialog. Field From cũng có thể chứa một Display-name được thêm
trước SIP URI. Display-name thể hiện tên người khởi tạo yêu cầu và có thể
để cho người nhận biết.
3.1.4.2. To header:
Field To thể hiện người nhận logic của yêu cầu. Cái này có thể là
Address of Record của người dùng hoặc tài nguyên mà request yêu cầu.
Đinh danh logic này là SIP URI.
sip:
UAC đặt giá trị field header To và không proxy nào trên đường đi có
thể thay đổi. Proxy trên đường đi có thể quyết định tái định tuyến. Chúng
có thể quyết định chuyển tiếp yêu cầu đến đích đến khác nhưng field header
To không thay đổi giá trị.
Giá trị của field header To thường được nhập vào hoặc chọn từ danh
sách có sẵn. Cũng như header From header cũng có thể có “Display-name”
sip: ABC < >
Tham số “tag” của header To kết hợp với tham số “tag” của From và
Call-ID để xác định dialog. Do đó trong một yêu cầu tham số “tag” của
header To là bắt buộc.
18

Có một tham số quan trọng khác trong header Via là tham số
“received”. Khi server nhận yêu cầu mà địa chỉ IP gốc trong lớp IP không
giống như địa chỉ trong header Via thì server sẽ thêm vào tham số
“received”. Giá trị tham số này bằng với địa chỉ IP thực nơi yêu cầu được
gửi.
Giả sử người gửi có một UAC với hai địa chỉ IP: 5.4.3.2 và 5.4.3.1.
Người gửi muốn thành lập một phiên với người nhận thì sẽ gửi yêu cầu
INVITE đến proxy của người gửi. Header Via trong yêu cầu INVITE có thể
có dạng như sau:
Via: SIP/2.0/UDP 5.4.3.2:5060; branch = z9hG4bKl740ws
19


Chúng ta cho rằng địa chỉ IP ở mức IP là 5.4.3.1 do đó khi proxy tìm
thấy tình huống này nó sẽ thêm vào tham số “received” đến header Via như
sau:
Via: SIP/2.0/UDP proxy.xyz.com:5060; branch = z9hG4bKos72hh
Via: SIP/2.0/UDP 5.4.3.2:5060;received=5.4.3.1;branch= z9hG4bKl740ws
3.1.4.5. Contact:
Header Contact được tạo bởi UA nó cung cấp một SIP URI dùng để
liên hệ với UA cho yêu cầu tiếp theo. Có nghĩa là yêu cầu mới trong dialog
phải định tuyến trực tiếp đến UA sử dụng header Contact. Có nghĩa là
những proxy không cần thiết mà ở trong đường dẫn của yêu cầu INVITE
đầu tiên sẽ được loại bỏ.
Contact: < sip: >

20


Như hình trên yêu cầu BYE được định tuyến trực tiếp giữa hai người


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status