mạng thông tin

15
TRƯỜNG ĐẠI HC BÁCH KHOA HÀ NI VI ỆN ĐIỆN TVIN THÔNG --------------------------- ĐỀ TÀI : TRUYỀN TEXT SỬ DỤNG GIAO THỨC SIP GVHD TS.Nguyễn Tài Hưng Sinh viên MSSV Lp Khóa Mai Văn Quyết 20102057 ĐTVT6 55 Trần Văn Tâm 20102124 ĐTVT6 55 Nguyễn Văn Chương 20101177 ĐTVT6 55

Upload: tam-tran

Post on 16-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Tài liệu mạng thông tin đại học Bách Khoa

TRANSCRIPT

Page 1: Mạng Thông Tin

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ VIỄN THÔNG

---------------------------

ĐỀ TÀI : TRUYỀN TEXT SỬ DỤNG GIAO THỨC SIP

GVHD TS.Nguyễn Tài Hưng

Sinh viên MSSV Lớp Khóa

Mai Văn Quyết 20102057 ĐTVT6 55

Trần Văn Tâm 20102124 ĐTVT6 55

Nguyễn Văn Chương 20101177 ĐTVT6 55

Page 2: Mạng Thông Tin

PHẦN I. GIỚI THIỆU SIP

1.SIP

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 với một vài 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 sử dụng 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ả về các media session nhằm mục đích thông báo, mời gọi và thỏa

thuận tham số dành cho 1 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 để trao đổi media, cũng như

loại media, địa chỉ truyền tải,…

2.SIP Addressing (địa chỉ của SIP)

Trong SIP, mỗi người sử dụng đều có 1 SIP URI tương ứng , đó được gọi là địa chỉ của SIP. Có

dạng như sau:

sip:username:

sip:username:password@host:port

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, gồm có username và password, phần này không bắt buộc phải có.

- Phần host, là địa chỉ bắt buộc phải khai báo để có thể trao đổi media session

Ví dụ : sip:[email protected], sip:khang:[email protected]:2008, sip:43.67.23.12, ....

3. 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)

a.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 (yêu cầu) gởi cho UAS và thu nhận các response (phản hồi)

đượ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.

Page 3: Mạng Thông Tin

Lưu ý : SIP độc lập với media session. SIP không dính líu với bất cứ loại media session nào mà cần được

thực hiện. Ví dụ, nếu bạn muốn tăng cường 1 tính năng nào đó cho media thì bạn phải bổ sung thành phần

đó và tích hợp nó với user interface, còn chính SIP User Agent vẫn không thay đổi.

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,….

b. Registrar

Registrar là một server mà chấp nhận các registration request (các yêu cầu được đăng ký) từ các

UA. UA cung cấp vị trí hiện tại của nó với 1 SIP Message truyền đến Registrar Server. 1 SIP UA cần được

đăng ký trước khi nó có thể nhận cuộc gọi. Khi registrar nhận registration request, nó đưa những thông tin

mà nó nhận được 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ý.

c.Location Service

Location Service là một cơ sở dữ liệu mà chứa một tập danh sách ánh xạ giữa Adresses of Record

(AORs – địa chỉ công khai dành công UA) và Contact Addresses (địa chỉ để xác định tên domain cũng như

vị trí của người dùng).

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 cũng được liên hệ với Proxy Servcers chỉ ra domain chính xác để

lấy về thông tin vị trí có thể thực hiện được cuộc gọi đến người dùng.

Ví dụ:

Address of Record Contact Address

Sip:[email protected] Sip:[email protected]

Sip:[email protected] Sip:[email protected]

… ….

Page 4: Mạng Thông Tin

d.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, tới 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 được gởi đi đến người dùng.

Page 5: Mạng Thông Tin

Proxy Server có thể được dùng để kiểm tra, thống kê, tìm đường truyền kế tiếp, 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 đỡ các UA để định tuyến các request đi ra từ các UA.

Các UA thường được cấu hình truyền các request của nó đến một outbound proxy.

+ Inbound Proxy : giúp định tuyến các request đi ra từ proxy này trực tiếp đến UA yêu cầu. Khi

1 inbound proxy nhận một request yêu cầu gởi đến 1 user, inbound proxy sẽ gởi đến Location Service để

xác định contact address của user đó, sau đó gởi trực tiếp đến user.

e. 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 mà có nhiều Contact Adress trong

location service.

Ví dụ:

Address of Record Contact Address

Sip: [email protected] Sip:[email protected]

Sip: [email protected] Sip:[email protected]

Sip: [email protected] Sip: [email protected]

.. …

Khi có 1 request gởi đến inbound proxy để thực hiện cuộc gọi đến John, thì proxy này tìm thấy

các vị trí khác nhau này và đưa ra 1 thuật toán để cố gắng liên lạc với John ở các vị trí 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.

Page 7: Mạng Thông Tin

f.Redirect Server

Redirect Server là UAS mà nhận các request từ User Agent Clients và tự động tạo ra các

responses gởi đến UAC. Các reponses này luôn luôn hướng dẫn UAC tạo ra request liên lạc với 1 tập các

địa chỉ thay thế.

g. Back-to-Back User Agents (B2BUA)

Page 8: Mạng Thông Tin

Một B2BUA là một thực thể vật lý (là một server), 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 cũng được tính toán lại và gởi đi

theo hướng ngược lại. Nó 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….

Page 9: Mạng Thông Tin

PHẦN 2 : CÁCH HOẠT ĐỘNG CỦA GIAO THỨC SIP

I. Mô hình hoạt động của SIP:

SIP hoạt động dựa trên sự trao đổi các SIP Messages. SIP Message gồm 2 phần là SIP Request

và SIP Response. 1 SIP Request cùng với tất cả SIP Response kết hợp với nó được gọi là 1 transaction.

Cũng tương tự như HTTP, khi bạn kết nối 1 web site, trình duyệt của bạn gởi đi 1 HTTP request bao gồm

địa chỉ của trang web mà bạn muốn nhìn thấy. Server chứa website nhận được request và tạo ra 1

response bao gồm nội dung của trang web và hiển thị trên trình duyệt.

SIP requests bắt đầu từ 1 User Agent Client (UAC) đến 1 User Agent Server (UAS), SIP

responses cũng tương tự nhưng theo cách ngược lại từ UAS đến UAC.

1.SIP Responses

1 Response là 1 mã trạng thái có 3 chữ số. Số đầu tiên định nghĩa loại response, số đầu tiên là 1

đó là provisonal response, các số khác được gọi chung là final response.

Giá trị Ý nghĩa Miêu tả

1xx Provisional Request đã nhận được. Tiếp tục xử lý request

2xx Success Request đã được xử lý thành công.

3xx Redirection Redirection được gởi đi khi 1 session được chuyển đến 1 địa chỉ khác.

4xx Client Error Reuqest chứa cú pháp lỗi và không được xử lý ở phía server.

5xx Server Error Server bị lỗi không xử lý được các request hợp lệ.

6xx Global Failure Request không được xử lý ở bất cứ server nào.

Chữ x đại diện cho 1 con số nào đó từ 0-> 9. Ví dụ : 100, 202,301,…

Không giống như HTTP, trong SIP, 1 request có nhiều response. Bất kỳ request nào cũng phải có

ít nhất 1 final repsonse và có thể có nhiều provisional responses.

Page 10: Mạng Thông Tin

2.SIP Requests

Có 6 loại SIP Request thông dụng : REGISTER, INVITE, ACK, CANCEL, BYE, OPTIONS.

a.REGISTER

Register request được sử dụng bởi 1 User Agent để thực hiện thủ tục đăng ký. UAC xây dựng

một Register request bao gồm các thông tin sau:

- Address of Record (AOR) được biểu diễn dưới dạng 1 SIP URI trong trường đầu đề

To.

Ví dụ :

To : sip:[email protected]

To: John Wales <sip:[email protected]>

- Vị trí của người dùng (Contact Address) được biễu diễn dưới dạng 1 SIP URI trong trường

đầu đề Contact.

Ví dụ:

Contact: Sip:[email protected]

Contact: John Wales < Sip:[email protected]>

Ví dụ : John Wales muốn đăng ký để thực hiện trao đổi media. John phải cung cấp địa chỉ vị trí

của mình và gởi đến registrar server để đăng ký. Địa chỉ của Registrar server cũng được biểu diễn dưới

dạng SIP URI như sip:registrar.university.com.vn

Trong mô hình trên Registrar kết hợp với location service trên cùng 1 server. Khi đăng ký thành

công 1 response phản hồi mã trạng thái 200 OK.

Sự lưu trữ trên Location Server có thời gian tồn tại nhất định, nếu bạn muốn được lưu trữ theo ý

muốn bạn sử dụng trường tiêu đề Expires trong Request Register. Trường Expires được sử dụng trong tất

cả các Request để chỉ ra khoảng thời gian mà request hay message content là hợp lệ.

Ví dụ:

Page 11: Mạng Thông Tin

Expires : 60 (kể từ lúc đăng ký đến 60 giây)

Expires: 15 Sep 2013 00:00:00 GMT (hạn dùng là 15 tháng 9 năm 2013)

b.INVITE

Một UAC tạo ra 1 INVITE Request để khởi tạo 1 session với một UAS. Request này có thể

được gởi trực tiếp từ UAC đến UAS hay phải qua 1 hay nhiều proxy mà giúp định tuyến request này.

Một khi UAS nhận được request, nó tạo ra một vài provision response để thông báo tuyến trình

của cuộc gọi. Ví dụ, reponse có mã trạng thái 180 chỉ ra đang thông báo cho bên được gọi. Nếu bên được

gọi đã nhận được, 1 final response có mã trạng thái 200 OK được tạo ra và phản hồi đến người gọi.

Lưu ý, SIP chỉ truyền tín hiệu giữa bên gọi và bên được gọi, còn việc trao đổi media stream đó

là nhiệm vụ của Real-time Transport Protocol (RTP) và Sesson Description Protocol (SDP) – các bạn

đừng quá lo lắng, RTP và SDP không quá khó hiểu, chúng ta sẽ tìm hiểu nó trong những chương sau. SIP

Request sẽ dính kèm theo SDP, SDP này được gọi là “SDP offer”. Ví dụ, bạn muốn trao đổi voice hay

video, bên gọi và bên được gọi phải có cùng codecs, bên gọi và bên được gọi cũng phải cung cấp địa chỉ

IP, Port để trao đổi media stream. Codec, IP, Port được miêu tả trong SDP, sau đó RTP có trách nhiệm

truyền các media stream.

Ví dụ, Alice muốn thực hiện voice chat đến John, các thông số được kèm theo trong SDP:

- Media types : voice.

- Codec : Adaptive Multirate – AMR, Pulse Code Modulation -PCM

-IP và Port của Alice để thực hiện voice : 23.17.32.16:4000.

1 final response 200 OK được phản hồi nếu John nhận được thành công, trong response này cũng

chứa 1 SDP của John, SDP này được gọi là “SDP anwser” bao gồm các thông số sau:

- Media types : voice

- Codec : PCM (John không có AMR)

- IP và Port của John để thực hiện voice là : 45.23.2.5:3000.

Page 12: Mạng Thông Tin

Một INVITE request cũng có thể được gởi đi khi một cuộc đối thoại đang được thực hiện, trong

trường hợp này bạn có thể xem INVITE request mới này là 1 re-INVITE. Thông thường re-INVITE được

sử dụng để chỉnh sửa hay bổ sung các thông số của 1 session đang tồn tại. Ví dụ, Alice đang voice chat

với John, trong lúc này Alice muốn John mở webcam để thấy mặt nhau. Trong trường hợp này, Alice phải

gởi 1 INVITE mới trong một cuộc đối thoại đang tồn tại để bổ sung vào SDP thành phần video. SDP thay

đổi như sau :

- Media types : voice và video

- codecs dành cho voice : AMR

- codecs dành cho video : H.261

- IP và Port của Alice để thực hiện voice : 23.17.32.16:4000.

- IP và Port của Alice để thực hiện video : 23.17.32.16:4001.

c. ACK

ACK Request được sử dụng để xác nhận rằng UAC đã nhận được final response từ 1 INVITE

request. Tức là, sau khi UAC nhận được final response, nó sẽ tự tạo ra 1 request khác để thông báo với

UAS rằng UAC đã nhận được final response, request này được gọi là ACK.

Page 13: Mạng Thông Tin

d.CANCEL

1 UAC tạo ra 1 CANCEL request để hủy bỏ 1 request đang chờ xử lý. Ví dụ, Alice gọi John, vì

thế UA của Alice tạo ra 1 INVITE requset. Khi INVITE được nhận bởi UA của John, nó gởi 180

provisional response và bắt đầu thông báo đến John. John không tiếp nhận cuộc gọi này trong khi Alice

vẫn chờ và Alice quyết định gác máy. Để gác máy, Alice đã gởi 1 CANCEL request đến John. Khi

CANCEL request này được tiếp nhận bởi UA của John, UA sẽ dừng chuông báo và cuộc gọi được hủy

bỏ. UA của John tạo ra 2 response phản hồi CANCEL request : 200 OK response (dành cho CANCEL

request) và 487 “Request terminated” response (dành cho INVITE request).

e.BYE

BYE Request được sử dụng để kết thúc 1 media session đang được thực hiện. BYE Chỉ được

gởi bởi các UA đang tham gia trong media session. Ví dụ, Alice và John đang thực hiện voice chat với

nhau, một lúc sau Alice (hoặc John) muốn kết thúc ,cô ấy gởi 1 BYE Request để kết thúc cuộc trò cuộc

này.

Page 14: Mạng Thông Tin

f.Options

OPTIONS Request được sử dụng để truy vấn về tính năng thực hiện session media của 1 UA

hay Server , đồng thời khám phá những tính năng có sẵn của nó. OPTIONS được sử dụng khi tìm hiểu

các thông tin về phương thức hổ trợ, codec,….

Page 15: Mạng Thông Tin

PHẦN 3 : KẾT QUẢ SIMULATIONS