ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đào Ngọc Anh
NGHIÊN CỨU GIAO THỨC TRONG MẠNG VOIP
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Điện tử - Viễn thông
HÀ NỘI - 2008
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đào Ngọc Anh
NGHIÊN CỨU GIAO THỨC TRONG MẠNG VOIP
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Điện tử - Viễn thông
Cán bộ hướng dẫn: Th.S Nguyễn Quốc Tuấn
HÀ NỘI - 2008
LỜI CẢM ƠN
Trước hết em xin gửi tới thầy giáo Nguyễn Quốc Tuấn – nguyên Chủ nhiệm Bộ
môn Hệ thống Viễn thông , lời cảm ơn chân thành và sâu sắc đã trực tiếp hướng dẫn ,
chỉ bảo tận tình trong suốt quá trình em làm luận văn.
Em cũng xin chân thành cảm ơn các thầy cô giáo trong Trường Đại học Công
Nghệ - Đại học Quốc Gia Hà Nội đã hết lòng dạy bảo, giúp đỡ em trong những năm
học Đại Học, giúp em có những kiến thức và kinh nghiệm quý báu trong chuyên môn
và cuộc sống. Những hành trang đó là một tài sản vô giá nâng bước cho em tới được
với những thành công trong tương lai.
Cuối cùng, em xin cảm ơn những người thân trong gia đình và bạn bè đã giúp đỡ,
động viên em hoàn thành luận văn này.
Hà nội, tháng 05 năm 2008
Sinh viên
TÓM TẮT NỘI DUNG
1.2.1. Ưu điểm 4
1.2.2. Nhược điểm 5
1.3. Yêu cầu chất lượng đối với VoIP 6
Chương 2. Các giao thức truyền tải trong VoIP 7
2.1. Giao thức IP 7
2.1.1. Giao thức IP phiên bản 4 (IPv4) 7
2.1.2. Giao thức IP phiên bản 6 (IPv6) 10
2.2. Giao thức TCP/IP 11
2.3. Giao thức UDP 16
2.4. Giao thức SCTP 17
2.5. Giao thức RTP 22
2.6. Giao thức RTCP 27
Chương 3. Giao thức báo hiệu VoIP 30
3.1. Giao thức báo hiệu H.323 30
3.1.1. Các thành phần trong mạng 30
3.1.2. Giao thức H.323 34
3.1.3. Thiết lập cuộc gọi VoIP sử dụng giao thức H.323 39
3.2. Giao thức SIP 43
3.2.1. Các thành phần trong mạng SIP 44
3.2.2. Bản tin SIP 46
3.2.3. Mô tả cuộc gọi SIP 52
3.3. So sánh giữa giao thức H.323 và SIP 54
Chương 4. Kết nối giữa mạng VoIP và PSTN 56
4.1. Mạng báo hiệu SS7 56
4.1.1. Các thành phần trong mạng báo hiệu SS7 56
4.1.2. Liên kết trong mạng SS7 57
4.1.3. Định tuyến trong mạng SS7 58
4.1.4. Giao thức trong mạng SS7 59
4.1.5. Các bước thiết lập cuộc gọi trong mạng SS7 65
4.2. Giao thức Sigtran 66
RTCP
Real Time Control
Protocol
Giap thức điều khiển thời gian thực
ATM
Asynchronous
Transfer Mode
Chế độ truyền không đồng bộ
QoS Quality of Service Chất lượng dịch vụ
ToS Type of Service Kiểu dịch vụ
IP Internet Protocol Giao thức Internet
IPv4 IP version 4 Giao thức Internet phiên bản 4
IPv6 IP version 6 Giao thức Internet phiên bản 6
TCP
Transmission Control
Protocol
Giao thức điều khiển truyền thông tin
UDP
User Datagram
Protocol
Giao thức Datagram người dùng
SCTP
Stream Control
Transmission Protocol
Giao thức truyền điều khiển luồng
ITU-T
International
Telecommunication
Union-
Telecommunication
ISUP ISDN User Part Phần người dùng ISDN
ISDN
Integrated Services
Digital Network
Mạng tích hợp dịch vụ số
SCCP
Signaling Connection
Control Part
Phần điều khiển kết nối báo hiệu
M2UA MTP2 User Adapter Bộ chuyển đổi người dùng MTP2
M2PA
MTP L2 Peer-to-Peer
Adapter
Bộ chuyển đổi bản tin lớp 2 ngang hàng
M3UA MTP3 User Adapter Bộ chuyển đổi người dùng MTP3
IUA ISDN User Adapter Bộ chuyển đổi người dùng ISDN
SUA SCCP User Adapter Bộ chuyển đổi người dùng SCCP
MỞ ĐẦU
Mạng VoIP ra đời như là một cuộc các mạng của hệ thống viễn thông và xã hội.
Với những ưu điểm vượt trội, mạng VoIP đã chứng tỏ được sức sống và tính thực tiễn
cao của nó. Sự phát triển quá nhanh của mạng VoIP cũng đặt ra một vấn đề nan giải đó
là việc chuẩn hóa giữa các giao thức VoIP của nhiều nhà phát triển khác nhau. Mà
trong đó có hai giao thức được nhắc tới nhiều nhất đó là H.323 của ITU-T và SIP của
IETF. Như một tất yếu khách quan, mạng VoIP sẽ được chia thành nhiều miền giao
thức khác nhau. Nên vấn đề quan trọng để có thể triển khai được mạng VoIP vào thực
tế đó là phải hiểu được bản chất của các giao thức VoIP và quan trọng nhất đó là các
giao thức báo hiệu sử dụng trong VoIP. Tuy vâyh mới là điều kiện cần cho sự ra đời
còn vấn đề then chốt cho sự tồn tại và phát triển của mạng VoIP lại là vấn đề kết nối
với hệ thống viễn thông vốn có. Và cụ thể là vấn đề kết nối giữa mạng VoIP và mạng
PSTN. Và đây cũng là hai nội dung chính của bài Luân văn tốt nghiệp này.
thuật này là hai trạm muốn trao đổi thông tin với nhau thì giữa chúng sẽ được thiết lập
một “ kênh” (circuit) cố định, kênh kết nối này được duy trì và dành riêng cho hai trạm
cho tới khi cuộc truyền tin kết thúc. Thông tin cuộc gọi là trong suốt. Quá trình thiết
lập cuộc gọi tiến hành gồm 3 giai đoạn:
• Giai đoạn thiết lập kêt nối: Thực chất quá trình này là liên kết các tuyến giữa
các trạm trên mạng thành một tuyến (kênh) duy nhất dành riêng cho cuộc gọi.
Kênh này đối với PSTN là 64kb/s (do bộ mã hóa PCM có tốc độ lấy mẫu tiếng
nói 8kb/s và được mã hóa 8 bit).
• Giai đoạn truyền tin: Thông tin cuộc gọi là trong suốt. Sự trong suốt thể hiện
qua hai yếu tố: thông tin không bị thay đổi khi truyền qua mạng và độ trễ nhỏ.
• Giai đoạn giải phóng (huỷ bỏ) kết nối: Sau khi cuộc gọi kết thúc, kênh sẽ được
giải phóng để phục vụ cho các cuộc gọi khác.
2
Qua đó, ta nhận thấy mạng chuyển mạch kênh có những ưu điểm nổi bật như
chất lượng đường truyền tốt, ổn định, có độ trễ nhỏ. Các thiết bị mạng của chuyển
mạch kênh đơn giản, có tính ổn định cao, chống nhiễu tốt. Nhưng ta cũng không thể
không nhắc tới những hạn chế của phương thức truyền dữ liệu này như:
• Sử dụng băng thông không hiệu quả: Tính không hiệu quả này thể hiện qua hai
yếu tố. Thứ nhất, độ rộng băng thông cố định 64k/s. Thứ hai là kênh là dành
riêng cho một cuộc gọi nhất định. Như vậy, ngay cả khi tín hiệu thoại là “lặng”
(không có dữ liệu) thì kênh vẫn không được chia sẻ cho cuộc gọi khác.
• Tính an toàn: Do tín hiệu thoại được gửi nguyên bản trên đường truyền nên rất
dễ bị nghe trộm. Ngoài ra, đường dây thuê bao hoàn toàn có thể bị lợi dụng để
an trộm cước viễn thông.
• Khả năng mở rộng của mạng kênh kém: Thứ nhất là do cơ sở hạ tầng khó năng
cấp và tương thích với các thiết bị cũ. Thứ hai, đó là hạn chế của hệ thống báo
hiệu vốn đã được sử dụng từ trước đó không có khả năng tùy biến cao.
Kỹ thuật chuyển mạch gói (Packet Switching): Trong chuyển mạch gói mỗi
bản tin được chia thành các gói tin (packet), có khuôn dạng được quy định trước.
Trong mỗi gói cũng có chứa thông tin điều khiển: địa chỉ trạm nguồn, địa chỉ trạm
1.2.1. Ưu điểm
• Giảm chi phí: Đây là ưu điểm nổi bật của VoIP so với điện thoại đường dài
thông thường. Chi phí cuộc gọi đường dài chỉ bằng chi phí cho truy nhập
Internet. Một giá cước chung sẽ thực hiện được với mạng Internet và do đó tiết
kiệm đáng kể các dịch vụ thoại và fax. Sự chia sẻ chi phí thiết bị và thao tác
giữa những người sử dụng thoại và dữ liệu cũng tăng cường hiệu quả sử dụng
mạng. Đồng thời kỹ thuật nén thoại tiên tiến làm giảm tốc độ bit từ 64Kbps
xuống dưới 8Kbps, tức là một kênh 64Kbps lúc này có thể phục vụ đồng thời 8
kênh thoại độc lập. Như vậy, lý dó lớn nhất giúp cho chi phí thực hiện cuộc gọi
VoIP thấp chính là việc sử dụng tối ưu băng thông.
• Tích hợp dịch vụ nhiều dịch vụ: Do việc thiết kế cơ sở hạ tầng tích hợp nên
có khả năng hỗ trợ tất cả các hình thức thông tin cho phép chuẩn hoá tốt hơn và
giảm thiểu số thiết bị. Các tín hiệu báo hiệu, thoại và cả số liệu đều chia sẻ cùng
mạng IP. Tích hợp đa dịch vụ sẽ tiết kiệm chi phí đầu tư nhân lực, chi phí xây
dựng các mạng riêng rẽ.
• Thống nhất: Vì con người là nhân tố quan trọng nhưng cũng dễ sai lầm nhất
trong một mạng viễn thông, mọi cơ hội để hợp nhất các thao tác, loại bỏ các
điểm sai sót và thống nhất các điểm thanh toán sẽ rất có ích. Trong các tổ chức
kinh doanh, sự quản lý trên cơ sở SNMP (Simple Network Management
Protocol) có thể được cung cấp cho cả dịch vụ thoại và dữ liệu sử dụng VoIP.
Việc sử dụng thống nhất giao thức IP cho tất cả các ứng dụng hứa hẹn giảm bớt
phức tạp và tăng cường tính mềm dẻo. Các ứng dụng liên quan như dịch vụ
danh bạ và dịch vụ an ninh mạng có thể được chia sẻ dễ dàng hơn.
4
• Vấn đề quản lý băng thông: Trong PSTN, băng thông cung cấp cho một cuộc
gọi là cố định. Trong VoIP, băng thông được cung cấp một cách linh hoạt và
mềm dẻo hơn nhiều. Chất lượng của VOIP phụ thuộc vào nhiều yếu tố, quan
trọng nhất là băng thông. Do đó không có sự bắt buộc nào về mặt thông lượng
giữa các thiết bị đầu cuối mà chỉ có các chuẩn tuỳ vào băng thông có thể của
mình, bản thân các đầu cuối có thể tự điều chỉnh hệ số nén và do đó điều chỉnh
đạt được những yêu cầu khắt khe: tỉ số nén lớn (để giảm được tốc độ bit
xuống), có khả năng suy đoán và tạo lại thông tin của các gói bị thất lạc Tốc
độ xử lý của các bộ Codec (Coder and Decoder) phải đủ nhanh để không làm
cuộc đàm thoại bị gián đoạn. Đồng thời cơ sở hạ tầng của mạng cũng cần được
nâng cấp lên các công nghệ mới như Frame Relay, ATM, để có tốc độ cao
hơn hoặc phải có một cơ chế thực hiện chức năng QoS (Quality of Service). Tất
cả các điều này làm cho kỹ thuật thực hiện điện thoại IP trở nên phức tạp và
không thể thực hiện được trong những năm trước đây
Ngoài ra có thể kể đến tính phức tạp của kỹ thuật và vấn đề bảo mật thông tin (do
Internet nói riêng và mạng IP nói chung vốn có tính rộng khắp và hỗn hợp, không có
gì bảo đảm rằng thông tin cá nhân được giữ bí mật).
1.3. Yêu cầu chất lượng đối với VoIP
Từ những nhược điểm chính của mạng chuyển mạch gói đã đặt ra những yêu cầu
cho VoIP như sau:
• Chất lượng thoại phải ổn định, độ trễ chấp nhận được.
• Mạng IP cơ bản phải đáp ứng được những tiêu chí hoạt động khắt khe gồm
giảm thiểu việc không chấp nhận cuộc gọi, mất mát gói và mất liên lạc. Điều
này đòi hỏi ngay cả trong trường hợp mạng bị nghẽn hoặc khi nhiều người sử
dụng chung tài nguyên của mạng cùng một lúc.
• Việc báo hiệu có thể tương tác được với báo hiệu của mạng PSTN.
• Quản lý hệ thống an toàn, địa chỉ hoá và thanh toán phải được cung cấp, tốt
nhất là được hợp nhất với các hệ thống hỗ trợ hoạt động PSTN.
6
Chương 2. Các giao thức truyền tải trong VoIP
2.1. Giao thức IP
Giao thức mạng IP được thiết kế để liên kết các mạng máy tính sử dụng phương
pháp truyền thông và nhận dữ liệu dưới dạng gói. Giao thức IP cho phép truyền các
gói dữ liệu từ điểm nguồn tới điểm đích có địa chỉ cố định. Đơn vị dữ liệu được trao
đổi là các gói dữ liệu. Các chức năng được thực hiện ở IP là:
• Đánh địa chỉ: tất cả các host trong mạng và trong liên mạng đều được cung cấp
đường truyền đạt ba tiêu chuẩn là thời gian trễ, độ tin cậy, bộ thông suốt của
gói tin. Được mô tả cụ thể như sau:
o Quyền ưu tiên (3 bit)
o Độ trễ D (1 bit)
D=0: độ trễ bình thường
D=1: độ trễ cao
o Thông lượng T (1bit)
T=0: thông lượng bình thường
T=1: thông lượng cao
o Độ tin cậy (1bit):
R=0: độ tin cậy bình thường
R=1: độ tin cậy cao
• Total Length (16bit): xác định độ dài của gói tin kể cả phần tiêu đề. Có giá
trị tối đa là 65535 byte. Thông thường các host chỉ có thể xử lý gói tin có độ
dài là 576 byte gồm 512 byte dữ liệu và 64 byte tiêu đề. Các host chỉ có thể
gửi các gói tin cố độ dài lớn hơn 576 byte khi biết trước là host đích có khả
năng xử lý gói này.
• Indentification: cùng với trường địa chỉ nguồn, đích dùng để định danh duy
nhất cho một gói tin trong khoảng thời gian nó tồn tại.
• Flag : có độ rộng 3 bit, chỉ độ phân đoạn của gói tin
o Bit 0: luôn bằng 0
o Bit 1 (DF):
DF=0: có phân đoạn
8
DF=1: không phân đoạn
o Bit 2 (MF):
MF=0: mảnh cuối cùng
MF=1: không phải mảnh cuối cùng
• Fragment Offset: độ rộng 13 bit, chỉ rõ vị trí của phân mảnh trong gói tin
tính theo đơn vị 64bit.
A được sử dụng. Giá trị byte đầu tiên của lớp A sẽ luôn nằm trong khoảng từ 1 tới 126,
mỗi một byte trong 3 byte còn lại sẽ có giá trị trong khoảng 1 đến 254.
Địa chỉ lớp B: Một địa chỉ lớp B được nhận ra bởi 2 bit đầu tiên của byte thứ
nhất mang giá trị 10. Lớp B sử dụng 2 byte đầu tiên của 4 byte để đánh địa chỉ mạng
và 2 byte cuối đánh địa chỉ máy trong mạng. Có 64*256 – 2 = 16.128 địa chỉ mạng lớp
B với 65.534 máy cho mỗi địa chỉ lớp B.
Địa chỉ lớp C: Một số tổ chức có quy mô nhỏ có thể xin cấp phát địa chỉ lớp C.
Một địa chỉ lớp C được nhận ra với 3 bit đầu mạng giá trị 110. Mạng lớp C sử dụng 3
byte đầu để đánh địa chỉ mạng và 1 byte cuối đánh địa chỉ máy trong mạng. Có
2.097.150 địa chỉ lớp C, mỗi địa chỉ lớp C có 254 máy.
Từ các lớp mạng cơ bản trên, ta có thể thực hiện chia subnet cho mạng để tạo
thành các mạng con (subnet) tùy theo yêu cầu cụ thể. Phần dùng để đánh mạng con
được lấy để đánh subnet được lấy từ phần dành đánh địa chỉ host.
Hình 2. Quy các địa chỉ IP khi chia subnet
Khi đó, để xác định địa chỉ mạng của trạm, ta cần phải biết mặt nạ mạng tương
ứng với IP được chia. Việc tính toán ra địa chỉ mạng của IP được tính như sau:
Dạng thập phân Dạng nhị phân
Địa chỉ IP của trạm 192.168.5.130 11000000.10101000.00000101.10000010
Mặt nạ mạng 255.255.255.192 11111111.11111111.11111111.11000000
Địa chỉ mạng 192.168.5.128 11000000.10101000.00000101.10000000
2.1.2. Giao thức IP phiên bản 6 (IPv6)
Trong IPv4 trường địa chỉ nguồn và đích có độ dài 32 bit nên không thể đáp ứng
đủ nhu cầu đánh địa chỉ của mạng. Ngoài ra, do sự phát triển của Internet, bảng định
tuyến của router không ngừng lớn lên và khả năng định tuyến đã bộc lộ hạn chế. Yêu
10
cầu nâng cao chất lượng dịch vụ và bảo mật được đặt ra. IPv6 là giao thức Internet
mới được kế thừa đặc điểm chính của IPv4 và có nhiều cải tiến để khắc phục những
hạn chế:
• Tăng kích thước địa chỉ từ 32 bit lên 128 bit
• Phạm vi định tuyến đa điểm: giao thức này hỗ trợ phương thức truyền mới
chính xác và độ tin cậy, một liên kết khi không còn đủ độ tin cậy thì sẽ bị huỷ
bỏ và thiết lập lại. Khi quá trình truyền tin hoàn thành thì kết nối được giải
phóng .
• Cung cấp đường truyền hai chiều (song công - full duplex).
• Đảm bảo độ tin cậy: Giao thức TCP cung cấp các tham số kiểm tra cùng với số
thứ tự (Sequence number), xác nhận (ACKnowledge ) và kiểm tra lỗi tổng
(Checksum). Các segment được đánh số tuần tự, cách làm này nhằm mục đích
loại bỏ các segment bị trùng lặp hay không đúng yêu cầu. Tại bên thu, khi nhận
được các segment thực hiện việc kiểm tra nhờ trường checksum. Nếu segment
nhận được không lỗi hay lặp, tín hiệu ACK sẽ được gửi trả lại bên phát để
khẳng định dữ liệu nhận tốt. Ngược lại nếu segment nhận được bị lỗi hay bị
trùng lặp thì segment này sẽ được loại bỏ và bên thu sẽ gửi một tin hiệu yêu cầu
bên phát phát lại segment bị lỗi đó, bằng cơ chế này sẽ đảm bảo tính chính xác
và độ tin cậy cho dữ liệu.
• Cung cấp các dịch vụ (chức năng) kiểm tra đường truyền, cho phép điều khiển
luồng và điều khiển tắc nghẽn.
Trong ứng dụng VoIP, giao thức TCP được sử dụng làm giao thức truyền báo
hiệu chứ không phục vụ việc truyền tín hiệu thoại. Lý do là vì phần mào đàu của TCP
lớn
Hình 4. Cấu trúc đơn vị dữ liệu TCP
Ý nghĩa các trường như sau:
• Source Port: độ dài 16 bit, xác định số hiệu cổng của trạm nguồn
12
• Destination Port: độ dài 16 bit, xác định số hiệu cổng của trạm đích
• Sequence Number: độ dài 32 bit. Số hiệu của byte đầu tiên của segment từ
khi bit SYN được thiết lập. Nếu bit SYN được thiết lập thì Sequence
Number là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN+1
• ACK Number: độ dài 32 bit, xác định số hiệu của segment tiếp theo mà trạm
nguồn đang chờ được xác nhận
• Data Offset: độ dài 4 bit, xác định vị trí bắt đầu của khối dữ liệu lớp trên
2) Client thiết lập một “active open” bằng cách gọi hàm connect. Khi đó, phía
client sẽ gửi SYN để báo cho server biết số thứ tự của dữ liệu client sẽ gửi
trong kết nối. Thông thường, SYN không chứa dữ liệu, chỉ chứa tiêu đề IP,
TCP và có thể là các tùy chọn TCP.
3) Server xác nhận SYN của server. Nó sẽ SYN với số thứ tự cho dữ liệu của nó.
Server gửi SYN và ACK cho SYN của client trong cùng một segment.
4) Client xác nhận SYN của server.
Số gói tối thiểu được truyền là ba nên được gọi là there-way handshake (bắt tay 3
bước).
Hủy kết nối TCP
Trong khi chỉ cần ba segment để thiết lập một kết nối TCP thì cần bốn segment
để hủy kết nối.
1) Một ứng dụng gọi hàm close trước, chúng ta gọi đầu cuối này thực hiện active-
close. Đầu cuối này sẽ gửi FIN segment để kế thúc việc gửi dữ liệu
2) Đầu cuối khác nhận FIN thực hiện “passive close”. FIN nhận được gọi xác
nhận bởi TCP. FIN nhận được cũng được truyền lên lớp ứng dụng như là end-
of-file(sau khi các dữ liệu khác đã được nhận đủ). Khi nhận được FIN nghĩa là
ứng dụng không nhận thêm dữ liệu nữa.
3) Ứng dụng sau khi nhận được end-of-file sẽ close (đóng) socket lại. TCP của nó
sẽ gửi FIN.
4) TCP của phía yêu cầu hủy kết nối nhận bản tin FIN cuối cùng, xác nhận FIN.
14
Hình 6. Hủy kết nối TCP
Hoạt động của TCP trong thiết lập và hủy cuộc gọi được mô tả bằng lược đồ
trạng thái. Có 11 trạng thái khác nhau cho một kết nối và luật cho phép chuyển từ
trạng thái này sang trạng thái khác dựa trên cơ sở trạng thái đã có. Ví dụ: nếu một ứng
dụng thiết lập một “active open” ở trạng thái CLOSED, TCP gửi SYN và trạng thái
mới là SYN_SENT. Nếu TCP sau đó nhận được SYN với ACK, nó sẽ gửi ACK và
một trạng thái mới ESTABLISH. Trạng thái cuối khi mà việc truyền dữ liệu diễn ra.
Hai đường mũi tên chỉ từ trạng thái ESTABLISHED tới trạng thái ngắt kết nối. Nếu
trình mạng với UDP là đảm bảo tính tin cậy. Nếu datagram tới đích nhưng trường
kiểm tra tổng (checksum) có lỗi hay gói tin bị drop ở trên mạng thì nó sẽ được truyền
lại. Nếu muốn xác định được rằng gói tin đã tới đích thì cần rất nhiều tính năng trong
16