Nghiên cứu và ứng dụng giao thức RTP.
Mục
Trang
Mục lục.
Lời nói đầu.
1
3
CHƯƠNG 0:TRUYỀN DÒNG DỮ LIỆU THỜI GIAN THỰC.
0.1. Khái niệm truyền dòng.
0.2. Quá trình truyền dòng.
4
5
CHƯƠNG I: LỰA CHỌN CÁC GIAO THỨC PHÙ HỢP VỚI CÁC ỨNG
DỤNG THỜI GIAN THỰC.
1.1. Giao thức TCP: ( Transmision Control Protocol) .
1.2. Giao thức UDP: (User Datagram Protocol).
1.3. Định tuyến multicast.
1.4. Giao thức nào có thể đáp ứng được yêu cầu thời gian
11
16
17
19
thực?
CHƯƠNG II: TỔNG QUAN GIAO THỨC THỜI GIAN THỰC RTP
(REAL TIME PROTOCOL).
3.1 Những khái niệm ban đầu.
3.2 ứng dụng của RTP trong hội thảo đa phương tiện.
22
24
CHƯƠNG III: GIAO THỨC TRUYỀN TẢI THỜI GIAN THỰC
(REAL TIME TRANSPORT PROTOCOL).
3.1. Một số khái niệm liên quan đến RTP.
3.2. Cấu trúc phần tiêu đề gói RTP.
3.3 Ghép các phiên truyền RTP.
3.4. Sự thay đổi phần tiêu đề trong một số trường hợp.
28
32
36
37
CHƯƠNG IV: GIAO THỨC ĐIỀU KHIỂN RTP
(RTCP: RTP CONTROL PROTOCOL).
4.1 Chức năng và hoạt động của RTCP.
4.2. Các loại gói tin RTCP.
4.3 Khoảng thời gian truyền các gói RTCP.
4.4 Cập nhật số thành viên tham gia phiên truyền.
4.5 Qui định đối với việc gởi và nhận các gói RTCP.
4.6. Các bản tin thông báo của người gởi và người nhận.
4.7 Gói tin mô tả các thông tin của nguồn.
4.8. Gói BYE.
4.9. Gói APP.
39
41
44
47
48
54
64
70
71
1
Nghiên cứu và ứng dụng giao thức RTP.
CHƯƠNG V: CÁC BỘ RTP TRANSLATORS VÀ RTP MIXERS .
5.1. Khái niệm chung.
5.2. Hoạt động của bộ Translators.
5.3. Hoạt động của Mixers.
5.4. Các “mixer” mắc phân tầng.
73
76
78
80
PHẦN VI: MỘT SỐ THUẬT TOÁN CẦN CHÚ Ý.
6.1. Phân phối các định danh SSRC.
6.2 Vấn đề bảo mật trong RTP.
6.3. Điều khiển tắc nghẽn.
6.4. RTP với các giao thức lớp mạng và lớp giao vận.
82
86
87
88
CHƯƠNG VII: ỨNG DỤNG LÝ THUYẾT VÀO THỰC TẾ.
7.1 Phân tích yêu cầu đặt ra.
7.2. thực hiện.
7.3. Kết quả.
Phụ lục.
Kết luận.
Tài liệu tham khảo.
90
92
93
96
99
100
LỜI NÓI ĐẦU
Hiện nay, mạng máy tính không còn là khái niệm xa lạ gì. sau hơn 40
năm phát triển, mạng máy tính, giờ đây mạng máy tính đã trải rộng trên
toàn cầu, với chất lượng đường truyền có chất lượng cao. Ngoài ra tính bảo
mật, độ tin cậy trên mạng cũng ngày càng được củng cố. Những ứng dụng
trên mạng đang ngày càng phong phú. Chính những sự phát triển này làm
nảy sinh một vấn đề, đó là truyền thông đa phương tiện trên mạng. Yếu tố
rất quan trọng, có mặt trong rất nhiều lĩnh vực. Trong các buổi hội thảo trực
tuyến, trong đào tạo từ xa trên mạng, trong dịch vụ video/audio theo yêu
cầu….Tuy nhiên sự phát triển của truyền thông đa phương tiện đòi hỏi tính
2
Nghiên cứu và ứng dụng giao thức RTP.
thời gian thực rất cao, chùm giao thức TCP/IP hiện đang được sử dụng rất
phổ biến không thể đáp ứng được yêu cầu này. Do vậy, đòi hỏi các chuyên
gia mạng phải tìm ra một giải pháp mới, một giao thức mới có thể đáp ứng
được việc truyền tải dữ liệu thời gian thực trên mạng. Hiện nay, giao thức
RTP đã và đang chứng tỏ những ưu điểm của mình trong việc đáp ứng các
ứng dụng thời gian thực.
Tại Việt Nam, các ứng dụng thời gian thực còn chưa phát triển, nhưng
với như cầu cấp thiết của thực tế, trong thời gian tới chắc chắn các ứng
dụng thời gian thực sẽ phát triển mạnh mẽ.
Đây cũng là một trong những lý do chính để em chọn lựa đề tài này.
CHƯƠNG 0: TRUYỀN DÒNG DỮ LIỆU THỜI GIAN THỰC
(REAL TIME STREAMING)
Có rất nhiều ứng dụng hiện nay đòi hỏi tính thời gian thực (real
time). Trong các dịch vụ truyền hình qua mạng, hội thảo trực
tuyến, chat hình, chat tiếng…mỗi ứng dụng có những đặc điểm
riêng của nó, tuy nhiên có một số điều chung nhất mà các dịch vụ
này đều yêu cầu đó là việc truyền dữ liệu theo dòng (streaming).
Do vậy chúng ta sẽ bắt đầu với việc tìm hiểu về khái niệm truyền
dòng.
0.1. KHÁI NIỆM TRUYỀN DÒNG:
3
Nghiên cứu và ứng dụng giao thức RTP.
Khái niệm truyền dòng có thể hiểu là khi nội dung của audio hay video được
truyền tới nơi nhận, nơi nhận có thể thể hiện được ngay trong quá trình truyền mà
không cần phải đợi đến khi toàn bộ nội dung video được truyền xong. Cơ chế này
hoàn toàn khác với cơ chế download file của các giao thức HTTP hay FTP.
Truyền dòng cho phép chúng ta thể hiện các dòng video thời gian thực mà
không phụ thuộc vào độ dài của video. Điều này rất có ý nghĩa khi truyền các file
video có kích thước lớn hay các dòng video có độ dài không xác định. Khi đó, các
giao thức khác như FTP hay HTTP sẽ không thể sử dụng được.
Chúng ta có thể bắt gặp rất nhiều trường hợp sử dụng cơ chế truyền dòng như
các chương trình truyền hình trực tiếp, hội thảo qua mạng. Với khả năng truyền tải
nội dung video, audio thông qua mạng, chúng ta có một phương pháp giao tiếp và
truy nhập thông tin mới.
Với góc nhìn bao quát, truyền dòng là một phương pháp truyền thông tin liên
tục, trong đó nội dung video được truyền đi theo thời gian thể hiện của nội dung
video đó. Bên nhận khi nhận dòng thông tin nội dung video sẽ có thể thể hiện
ngay nội dung của video theo thời gian. Khả năng này rất có ý nghĩa đối với các
loại dữ liệu phụ thuộc thời gian như video, audio, bởi vì để đảm bảo chất lượng
cảm thụ video thì phải đảm bảo được mối quan hệ về mặt thời gian giữa các khung
hình.
Để có thể hình dung một cách đơn giản về cơ chế truyền dòng thời gian thực,
chúng ta lấy một ví dụ như sau. Giả thiết có hai máy được kết nối với nhau, trong
đó một máy đóng vai trò là máy truyền và một máy đóng vai trò là máy nhận. Bên
truyền được trang bị camera để thu hình giảng viên giảng bài và dữ liệu video thu
được được truyền tới máy nhận. Bên nhận có nhiệm vụ nhận dòng dữ liệu từ bên
truyền gửi tới và thể hiện lên thiết bị ra như TV hay màn hình máy tính. Khi đó
với việc sử dụng cơ chế truyền dòng thời gian thực, các hình ảnh của giảng viên
mà bên nhận thể hiện sẽ phản ánh một cách tức thời (về mặt lí thuyết) những gì
đang xảy ra đối với giảng viên ở bên truyền. Còn với các bài giảng được lưu trữ
trước, truyền dòng thời gian thực sẽ đảm bảo việc thể hiện của video tương đương
4
Nghiên cứu và ứng dụng giao thức RTP.
như khi nó được thể hiện trên máy truyền. Khi đó, môi trường mạng là trong suốt
đối với người sử dụng, người sử dụng có cảm giác việc thể hiện đoạn video như là
được thực hiện ngay trên máy cục bộ.
0.2. QUÁ TRÌNH TRUYỀN DÒNG:
Truyền dòng đối với video hay audio phải trải qua nhiều công đoạn với từng
nhiệm vụ riêng để đi đến kết quả cuối cùng là đạt được khả năng thể hiện ngay ở
bên nhận.
Dòng
video/audio
Lấy
Lấymẫu
mẫu
Giải
Giảinén
nén
video/audio
video/audio
Khôi
Khôiphục
phụcdữ
dữ
liệu
liệuvà
vàđồng
đồngbộ
bộ
Network
RTP
Packets
Hình 0.1: Quá trình truyền dòng video/audio
Để có thể tìm hiểu sâu được cơ chế truyền dòng, chúng ta cần đi sâu vào quá
trình mà thông tin được truyền đi thông qua môi trường mạng. Bất cứ một nội
dung video hay audio nào được truyền đi dưới dạng truyền dòng đều phải trải qua
các bước sau:
Bước 1 - Mã hoá:
Việc mã hoá video, mà cụ thể là nén video là một công đoạn không bắt buộc
nhưng rất cần thiết. Với các loại dữ liệu video thô như dữ liệu thu từ camera, thì
5
Nghiên cứu và ứng dụng giao thức RTP.
việc lưu trữ hay truyền video không nén sẽ phải trả giá cao, đôi khi là điều không
thể. Ta lấy ví dụ với một định dạng tiêu biểu thường được sử dụng trong các ứng
dụng hội nghị từ xa bằng video là định dạng CIF (Common Intermediate Format).
CIF sử dụng độ phân giải 352 pixel mỗi dòng và 288 dòng tất cả. Một ảnh không
nén cho một frame hình (chế độ 352x288x16bpp) chiếm 202752 byte. Việc ghi
video không nén với tốc độ 15 hình một giây sẽ cần xấp xỉ 3 MB một giây và nếu
truyền qua mạng thì băng thông cần thiết cho một dòng video không nén là 24
Mbps. Từ ví dụ trên đây, ta thấy việc nén video gần như là không thể thiếu được
nếu các dòng video được truyền trên môi trường mạng tốc độ thấp. Bảng sau cho
biết độ nén cần thiết đối với từng môi trường mạng khác nhau:
Dạng kết nối Bit Rate
Tỉ lệ nén
OC3
155 Mbps
1:1
T3
42 Mbps
4:1
Ethernet
10 Mbps
17:1
T1
1.5 Mbps
110:1
ISDN
128 Kbps
1300:1
Modem
56 Kbps
3000:1
B¶ng 0-2: B¨ng th«ng m¹ng vµ tØ lÖ nÐn yªu cÇu
Cã thÓ sö dông nhiÒu chuÈn nÐn kh¸c nhau cho viÖc nÐn
video. Tuú theo yªu cÇu chÊt lîng vµ b¨ng th«ng, mµ ta cã thÓ
lùa chän ®îc ph¬ng ph¸p nÐn thÝch hîp. Víi viÖc ¸p dông mét
chuÈn nÐn cho d÷ liÖu video, kh«ng gian lu tr÷ cÇn thiÕt còng
nh b¨ng th«ng m¹ng yªu cÇu cho dßng video gi¶m ®ét ngét. VÝ
nh ®èi víi dßng video ë trªn, nÕu sö dông chuÈn nÐn H.263 th×
b¨ng th«ng yªu cÇu cho viÖc truyÒn dßng video nµy chØ vµo
kho¶ng 140 Kbps vµ kh«ng gian lu tr÷ cÇn thiÕt cho mét ngµy
víi 24 giê vµo kho¶ng 1.4 MB. HiÖn phæ biÕn hai hä chuÈn nÐn,
lµ hä CCITT víi c¸c chuÈn d¹ng H.26x, H.36x vµ hä ISO MPEG víi
6
Nghiên cứu và ứng dụng giao thức RTP.
c¸c chuÈn MPEG-1, MPEG-2, MPEG-4, MPEG-7. Sù ph¸t triÓn cña
c¸c chuÈn nÐn cã thÓ tham kh¶o trong s¬ ®å díi ®©y:
H.261 - Một kĩ thuật với tốc độ dòng bit nhỏ,
được đưa ra vào năm 1984 bởi ITU sử dụng
cho các dịch vụ audio-visual.
MPEG-1 - Chuẩn ISO, ứng dụng trong ngành
công nghiệp quảng bá. MPEG-1 được tạo ra
như là một sự sửa đổi của H.261 cho việc
chuyển video vào đĩa CD với tốc độ dòng bit
thấp.
MPEG-2 - Được phát triển cho việc quảng bá
video chất lượng cao bằng cách sử dụng tỉ
lệ nén thấp.
H.263 - Một sửa đổi phỏng theo MPEG-2 với
mục đích thu được độ nén cao trong khi vẫn
đảm bảo chất lượng hình ảnh cao. H.263+
và H.263++ là các phiên bản mở rộng của
H.263.
MPEG-4 - Được phát triển song song với H.263
như là một phương pháp thay thế cho
MPEG-1 với tốc độ dòng bit thấp.
H.323 - Một hệ thống hoàn hảo cho việc truyền
thông multimedia, trong đó thành phần video
được thực hiện trên cơ sở H.261/263.
JPEG-2000 - Chuẩn JPEG mới nhất, dựa trên cơ
sở DWT (Discrete Wavelet Transform), ban
đầu được phát triển cho việc nén ảnh tĩnh,
hiện nay được áp dụng cho cả video.
H.264 - Mở rộng H.263, hiện chưa được phát
triển
7
Nghiên cứu và ứng dụng giao thức RTP.
H×nh 0.3: sù ph¸t triÓn cña c¸c chuÈn nÐn.
Bíc 2 - LÊy mÉu:
ViÖc lÊy mÉu thùc chÊt lµ viÖc chia nhá néi dung cña video
hay audio ra thµnh c¸c khèi nhá thÝch hîp ®Ó cã thÓ truyÒn ®i
trong m«i trêng m¹ng. §èi víi c¸c d÷ liÖu audio, viÖc lÊy mÉu ®îc thùc hiÖn theo thêi gian. T¬ng øng sau mét kho¶ng thêi gian
b»ng chu k× lÊy mÉu phÇn d÷ liÖu audio t¬ng øng trong kho¶ng
thêi gian ®ã sÏ ®îc sö dông ®Ó truyÒn ®i.Víi c¸c d÷ liÖu video,
ngoµi viÖc lÊy mÉu theo thêi gian cßn cã viÖc lÊy mÉu theo
kh«ng gian. ViÖc lÊy mÉu theo thêi gian t¬ng øng víi thêi gian
thÓ hiÖn cña c¸c khung h×nh vµ viÖc lÊy mÉu theo kh«ng gian
sÏ ®îc thùc hiÖn b»ng c¸ch chia nhá c¸c khung h×nh thµnh c¸c
phÇn víi kÝch thíc thÝch hîp ®èi víi viÖc truyÒn ®i.
Khi lÊy mÉu, c¸c mÉu ph¶i chøa ®ùng ®Çy ®ñ c¸c th«ng tin
dïng cho viÖc kh«i phôc l¹i d÷ liÖu video hay audio vÒ c¶ mÆt
kh«ng gian còng nh thêi gian khi bªn nhËn nhËn ®îc c¸c mÉu
nµy. Víi viÖc sö dông mét giao thøc nh giao thøc truyÒn th«ng
thêi gian thùc nh RTP, qu¸ tr×nh lÊy mÉu sÏ ®îc tiÕn hµnh tù
®éng.
Bíc 3 - TruyÒn c¸c mÉu qua m¹ng:
ViÖc truyÒn c¸c mÉu d÷ liÖu video cã thÓ ®îc thùc hiÖn mét
c¸ch trùc tiÕp th«ng qua c¸c giao diÖn cña m«i trêng m¹ng nh
Socket hay ®îc thùc hiÖn th«ng qua mét giao thøc cÊp cao ë
tÇng øng dông nh RTP. Th«ng thêng ngêi ta sÏ chän gi¶i ph¸p
8
Nghiên cứu và ứng dụng giao thức RTP.
thø hai, tøc lµ sö dông mét giao thøc truyÒn dßng thêi gian thùc
cho viÖc truyÒn c¸c mÉu nÕu nh giao thøc ®ã ®îc hç trî trªn
nÒn phÇn cøng còng nh phÇn mÒm.
ViÖc sö dông mét giao thøc truyÒn dßng thêi gian thùc cã
nhiÒu u ®iÓm. ¦u ®iÓm thø nhÊt lµ tÝnh hiÖu qu¶, bëi v× c¸c
giao thøc truyÒn th«ng thêi gian thùc ®îc thiÕt kÕ cho viÖc
truyÒn c¸c lo¹i d÷ liÖu ®éng, nh d÷ liÖu video ch¼ng h¹n, khi
®ã tÝnh thêi gian thùc sÏ ®îc chó träng h¬n lµ tÝnh chÝnh x¸c
vÒ mÆt d÷ liÖu. VÝ dô nh ®èi víi giao thøc RTP, giao thøc
truyÒn th«ng líp díi thêng ®îc sö dông lµ UDP (User Datagram
Protocol) lµ giao thøc víi ®é tin cËy thÊp nhng cã tèc ®é truyÒn
d÷ liÖu cao h¬n c¸c giao thøc víi ®é tin cËy cao nh TCP.
¦u ®iÓm thø hai lµ c¸c giao thøc thêi gian thùc hç trî m¹nh
viÖc ®ång bé c¸c dßng d÷ liÖu tõ c¸c nguån kh¸c nhau nhng cã
quan hÖ víi nhau vÒ mÆt thêi gian thùc. VÝ dô nh ®èi víi viÖc
truyÒn ©m thanh vµ h×nh ¶nh cña cïng mét sù vËt, khi ®ã bªn
nhËn khi thÓ hiÖn ph¶i ®¶m b¶o yªu cÇu lµ ©m thanh ph¶i phï
hîp víi h×nh ¶nh.
Ngoµi ra, c¸c giao thøc ®iÒu khiÓn cßn cung cÊp c¸c dÞch vô
cho phÐp qu¶n lÝ c¸c thµnh viªn tham gia vµ ®iÒu khiÓn chÊt lîng cña viÖc ph©n phèi d÷ liÖu.
Víi viÖc sö dông mét giao thøc truyÒn th«ng thêi gian thùc cho
viÖc truyÒn, khi ®ã c¸c mÉu sÏ ®îc ®ãng gãi thµnh c¸c gãi tin.
C¸c gãi tin sÏ mang ®Çy ®ñ c¸c th«ng tin nh nh·n thêi gian, sè
thø tù cña gãi tin vµ c¸c th«ng tin kh¸c ®ñ dïng cho viÖc kh«i
phôc d÷ liÖu vµ ®ång bé c¸c dßng khi bªn nhËn tiÕn hµnh nhËn
9
Nghiên cứu và ứng dụng giao thức RTP.
vµ thÓ hiÖn néi dung cña video hay audio. Th«ng qua c¸c giao
thøc líp díi, c¸c gãi tin sÏ ®îc truyÒn ®i trong m«i trêng m¹ng.
Bíc 4 - NhËn vµ kh«i phôc d÷ liÖu vµ ®ång bé c¸c dßng:
§©y lµ qu¸ tr×nh ngîc víi bíc thø ba, ®îc thùc hiÖn ë bªn
nhËn khi d÷ liÖu díi d¹ng c¸c gãi tin ®îc truyÒn ®Õn. C¸c gãi tin
®îc truyÒn ®Õn cã thÓ lµ cña nhiÒu dßng t¬ng øng víi nhiÒu
nguån d÷ liÖu kh¸c nhau vµ còng cã thÓ thø tù c¸c gãi tin nhËn
®îc kh«ng gièng nh khi chóng ®îc göi ®i. Khi ®ã bªn nhËn ph¶i
c¨n cø vµo c¸c th«ng tin ®îc ghi trong tõng gãi tin ®Ó cã thÓ
x¸c ®Þnh ®îc vÞ trÝ vÒ mÆt kh«ng gian vµ thêi gian cña c¸c
mÉu d÷ liÖu mµ gãi tin mang theo. ViÖc x¸c ®Þnh ®îc vÞ trÝ
cña c¸c mÉu d÷ liÖu trong gãi tin gióp cho viÖc kh«i phôc l¹i néi
dung cña video hay audio mét c¸ch chÝnh x¸c nhÊt. Víi viÖc
truyÒn c¸c dßng ®¬n lÎ kh«ng cã quan hÖ víi nhau vÒ m¨th thêi
gian, th× néi dung cña audio hay video võa ®îc kh«i phôc cã thÓ
®uîc sö dông ®Ó tr×nh diÔn. Cßn trong trêng hîp cã nhiÒu dßng
kh¸c nhau cã cã quan hÖ víi nhau vÒ mÆt thêi gian thùc th× cÇn
ph¶i ®ång bé c¸c dßng vÒ mÆt thêi gian.
ViÖc ®ång bé c¸c dßng chØ cÇn thiÕt khi c¸c dßng cã quan
hÖ víi nhau vÒ mÆt thêi gian, ch¼ng h¹n nh viÖc ®ång bé h×nh
víi tiÕng khi truyÒn video, khi ®ã thêi gian thÓ hiÖn cña c¸c
dßng ph¶i ®îc tÝnh to¸n sao cho phï hîp víi nhau. ViÖc ®ång bé
lµ mét c«ng viÖc phøc t¹p, thêng ®îc thùc hiÖn tù ®éng bëi c¸c
giao thøc truyÒn th«ng thêi gian thùc nh RTP. Khi ®ã, mÆc dï
thø tù c¸c gãi tin nhËn ®îc cã thÓ kh«ng gièng nh thø tù khi ®îc
göi, thËm chÝ cã mét sè gãi tin bÞ mÊt nhng giao thøc vÉn ph¶i
10
Nghiên cứu và ứng dụng giao thức RTP.
®¶m b¶o tÝnh ®ång bé cho c¸c dßng khi ®îc thÓ hiÖn ë n¬i
nhËn
Bíc 5 - Gi¶i nÐn:
Bíc nµy sÏ tiÕn hµnh gi¶i nÐn dßng video/audio víi chuÈn nÐn
®îc sö dông khi nÐn. D÷ liÖu sau khi gi¶i nÐn cã thÓ ®îc thÓ
hiÖn ra c¸c thiÕt bÞ ra hay ®îc ghi ra file.
CHƯƠNG I: LỰA CHỌN CÁC GIAO THỨC PHÙ HỢP VỚI
CÁC ỨNG DỤNG THỜI GIAN THỰC
Trong chương trước chúng ta đã tìm hiểu qua khái niệm truyền
dòng và phần nào đã hiểu một số yêu cầu cơ bản của truyền dòng.
Chúng ta cũng đã đề cập đến việc sử dụng giao thức RTP cho việc
truyền dòng dữ liệu thời gian thực. Vậy tại sao ta lại có sự lựa
chọn đấy? Trong phần này chúng ta sẽ đi lý giải sâu hơn việc
chọn lựa này, thông qua việc tìm hiểu sơ bộ về các giao thức lớp
truyền tải: TCP, UDP cùng với khái niệm truyền đa điểm
multicast.
1.3. GIAO THỨC TCP: ( Transmision Control Protocol)
TCP là một giao thức kiểu có liên kết (Connection – Oriented), tức là phải có
giai đoạn thiết lập liên kết giữa một cặp thực thể TCP trước khi truyền dữ liệu.
Là một giao thức ở tầng giao vận TCP nhận thông tin từ các lớp trên chia nó
thành nhiều đoạn nếu cần thiết. Mỗi gói dữ liệu được chuyển tới giao thức lớp
mạng (thường là IP) để truyền và định tuyến. Bộ xử TCP của nó nhận thông báo
đã nhận từng gói, nếu nó nhận thành công, các gói dữ liệu không có thông báo sẽ
11
Nghiên cứu và ứng dụng giao thức RTP.
được truyền lại. TCP của nơi nhận lắp ráp lại thông tin và chuyển nó tới tầng cao
hơn khi nó nhận được toàn bộ.
Trước khi các gói dữ liệu được gửi tới máy đích nơi gửi và nơi nhận phải
thương lượng để thiết lập một kết nối logic tạm thời. Kết nối này về đặc trưng sẽ ở
trạng thái mở trong suốt phiên truyền.
1.1.1. Đặc điểm giao thức TCP:
Trong bộ giao thức TCP/IP TCP là giao thức được phát triển như là cách để kết
nối các mạng máy tính khác nhau về các phương pháp truyền dẫn và hệ điều hành.
TCP thiết lập kết nối hai đường giữa hai hệ thống cần trao đổi thông tin với nhau,
thông tin trao đổi giữa hai hệ thống được chia thành các gói. TCP có những đặc
điểm sau:
Sự bắt tay: Hai hệ thống cần kết nối với nhau cần phải thực hiện một
loạt các sự bắt tay để trao đổi những thông tin về việc chúng muốn kết
nối. Quá trình bắt tay đảm bảo ngăn trặn sự tràn và mất mát dữ liệu khi
truyền.
Xác nhận: Trong phiên truyền thông tin, hệ thống nhận dữ liệu cần phải
gửi các xác nhận cho hệ thống phát để xác nhận rằng nó đã nhận được
dữ liệu.
Trật tự: Các gói tin có thể đến đích không theo thứ tự sắp xếp của dòng
dữ liệu liên tục bởi các gói tin đi từ cùng một nguồn tin theo những
đường dẫn khác nhau để đi tới cùng một đích. Vì vậy thứ tự đúng của
các gói tin phải được đảm bảo sắp xếp lại tại hệ thống nhận.
Phát lại: Khi phát hiện gói tin bị lỗi thì nơi gửi chỉ phát lại những gói
tin bị lỗi nhằm để tránh loại bỏ toàn bộ dòng dữ liệu.
12
Nghiên cứu và ứng dụng giao thức RTP.
Sending
Receiving
Application
Application
Presentation
Presentation
TCP End to End Commmunication
Secssion
Secssion
TCP
Router
Router
TCP
IP
IP
IP
IP
Dadalink
Dadalink
Dadalink
Dadalink
Physical
Physical
Physical
Physical
Subnet
Subnet
Hình 1.1 :Hoạt động của giao thức TCP trong việc cung cấp kết nối.
1.1.2. Cấu trúc đơn vị truyền tải TCP:
Đơn vị dữ liệu sử dụng trong giao thức TCP được gọi là Segment. Khuôn
dạng của Segment được mô tả như hình sau:
Bit 0
15 16
Sourse Port
31
Destination Port
Sequence Number
Acknowledgment Number
Data Reserve U A P R S F
Offse
d
R C S S Y I
Window (16 bits)
t
(6 bits) G K H T N N
(4
bits)
Checksum
Urgent poier
Option
Padding
TCPdata
Hình 1.2: Khuôn dạng TCP Segment.
13
Nghiên cứu và ứng dụng giao thức RTP.
Các tham số của khuôn dạng trên có ý nghĩa như sau:
- Source Port (16 bits): Số hiệu của cổn
g nguồn.
- Destination Port (16 bits): Số hiệu cổng của trạm đích. Số hiệu này là địa
chỉ thâm nhập dịch vụ lớp giao vận (CCISAP Addess) cho biết dịch vụ mà
TCP cung cấp là dịch vụ gì. TCP có số lượng cổng trong khoảng 0216-1
tuy nhiên các cổng nằm trong khoảng từ 01023 là được biết nhiều nhất vì
nó được sử dụng cho việc truy cập các dịch vụ tiêu chuẩn, ví dụ 23 là dịch
vụ Telnet, 25 là dịch vụ mail . . . .
- Sequence Number (32 bits): Số hiệu của Byte đầu tiên của Segment trừ 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. Tham
số này có vai trò như tham số N(S) trong HDLC.
- Acknowledgment Number (32 bits): Số hiệu của Segment tiếp theo mà
trạm nguồn dang chờ để nhận. Ngầm ý báo đã nhận tốt các Segment mà
trạm trạm đích đã gửi cho trạm nguồn. Tham số này có vai trò như tham số
N(R) trong HDLC.
- Data offset (4bits): Số lượng từ 32 bit trong TCP header (Tham số này chỉ
ra vùng bắt đầu của vùng dữ liệu ).
- Reserved (6 bits): Dành để dùng trong tương lai.
- Control bits: Các bits điều khiển. Nếu tính từ trái sang phải:
URG : Vùng con trỏ khẩn có hiệu lực.
ACK : Vùng báo nhận (ACK number) có hiệu lực .
PSH: Chức năng PUSH.
RST: Khởi động lại (reset) liên kết.
SYN : Đồng bộ các số liệu tuần tự (sequence number).
14
Nghiên cứu và ứng dụng giao thức RTP.
FIN : Không còn dữ liệu từ trạm nguồn .
- Window (16bits): Cấp phát credit để kiểm soát luồng dữ liệu (cơ chế cửa
sổ). Đây chính là số lượng các Byte dữ liệu bắt đầu từ Byte được chỉ ra
trong vùng ACK number, mà trạm nguồn đã sẵn sàng để nhận.
- Checksum (16bits): Mã kiểm soát lỗi (theo phương pháp CRC) cho toàn bộ
Segment.
- Urgent Pointer (16 bits) : Con trỏ này trỏ tới số liệu tuần tự của Byte đi
theo sau dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu
khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập.
- Option (độ dài thay đổi): Khai báo các option của TCP, trong đó có độ dài
tối đa của vùng TCP data trong một Segment .
- Padding (độ dài thay đổi): Phần chèn thêm vào Header để bảo đảm phần
Header luôn kết thúc ở một mốc 32 bits. Phần thêm này gồm toàn số 0.
Việc kết hợp địa chỉ IP của một máy trạm và số cổng được sử dụng tạo thành
một Socket. Các máy gửi và nhận đều có Socket riêng. Số Socket là duy nhất trên
mạng.
1.1.3. Điều khiển luồng dữ liệu:
Trong việc điều khiển luồng dữ liệu phương pháp hay sử dụng là dùng phương
pháp cửa sổ trượt. Phương pháp này giúp cho việc nhận luồng dữ liệu hiệu quả
hơn.
Phương pháp cửa sổ trượt cho phép nới gửi (Sender) có thể gửi đi nhiều gói tin rồi
sau đó mới đợi tín hiệu báo nhận ACK (Acknowledgement) của nơi nhận
(Receiver).Với phương pháp cửa sổ trượt khi cần truyền các gói tin, giao thức sẽ
đặt một cửa sổ có kích cố định lên các gói tin. Những gói tin nào nằm trong vùng
cửa sổ ở một thời điểm nhất định sẽ được truyền đi.
1.1.4. Thiết lập và huỷ bỏ liên kết:
Như ta đã biết TCP là một giao thức kiểu có liên kết, tức là cần phải có giai
đoạn thiết lập một liên kết giữa một cặp thực TCP trước khi truyền dữ liệu và huỷ
bỏ liên kết khi không còn nhu cầu trao đổi dữ liệu nữa.
15
Nghiên cứu và ứng dụng giao thức RTP.
Thiết lập liên kết TCP:
Một liên kết có thể được thiết lập theo một trong hai cách chủ động (active) và
bị động (passive). Nếu liên kết được thiết lập theo cách bị động thì đầu tiên TCP
tại trạm muốn thiết lập liên kết sẽ nghe và chờ yêu cầu liên kết từ một trạm khác.
Tuỳ trường hợp của lời gọi hàm mà người sử dụng phải chỉ ra cổng yêu cầu kết
nối hoặc có thể kết nối với một cổng bất kỳ.
Với phương thức chủ động thì người sử dụng yêu cầu TCP thử thiết lập một
liên kết với một Socket nào đó với một mức ưu tiên và độ an toàn nhất định. Nếu
trạm ở xa kia đáp lại bằng một hàm Passive open tương hợp hoặc đã gửi một
active open tương hợp thì liên kết sẽ được thiết lập. Nếu liên kết được thiết lập
thành công thì thì hàm Open success primitive được dùng để thông báo cho người
sử dụng biết (cũng được sử dụng trong trường hợp Passive Open) còn nếu thất bại
thì hàm Open failure primitive được dùng để thông báo.
Huỷ bỏ một liên kết:
Khi không còn nhu cầu trao đổi dữ liệu nữa thì liên kết TCP có thể được huỷ bỏ.
Liên kết có thể được huỷ bỏ theo hai cách:
- Huỷ bỏ một cách bất thường.
- Huỷ bỏ một cách bình thường.
Liên kết được huỷ bỏ một cách bình thường khi toàn bộ dữ liệu đã được truyền
hết. Tức là hai bên không còn nhu cầu trao đổi dữ liệu nữa.
Liên kết có thể bị huỷ bỏ một cách bất thường vì một lý do nào đó(do người sử
dụng hoặc do TCP đóng liên kết do không thể duy trì được liên kết). Toàn bộ dữ
liệu đang truyền có thể bị mất.
1.1.5. Truyền và nhận dữ liệu:
Sau khi liên kết được thiết lập giữa một cặp thực thể TCP thì có thể tiến hành
việc truyền dữ liệu. Với liên kết TCP dữ liệu có thể được truyền theo cả hai hướng.
Khi nhận được một khối dữ liệu cần chuyển đi từ người sử dụng, TCP sẽ lưu
giữ nó tại bộ đệm gửi. Nếu cờ PUST được dựng thì toàn bộ dữ liệu trong bộ đệm
sẽ được gửi đi hết dưới dạng các TCP Sgment. Còn nếu cờ PUST không được
16
Nghiên cứu và ứng dụng giao thức RTP.
dựng thì toàn bộ dữ liệu vẫn được lưu giữ trong bộ đệm để chờ gửi đi khi có cơ
hội thích hợp.
Tại bên nhận, dữ liệu gửi đến sẽ được lưu giữ trong bộ đệm nhận. Nếu dữ liệu
đệm được đánh dấu bởi cờ PUST thì toàn bộ dữ liệu trong bộ đệm nhận sẽ được
gửi lên cho người sử dụng. Còn nếu dữ liệu không được đánh dấu với cờ PUST thì
chúng vẫn được lưu trong bộ đệm. Nếu dữ liệu khẩn cần phải chuyển gấp thì cờ
URGENT được dùng và đánh dấu dữ liệu bằng bit URG để báo rằng dữ liệu khẩn
cần được chuyển gấp.
1.2 GIAO THỨC UDP: (USER DATAGRAM PROTOCOL)
UDP (User Datagram Protocol) là một giao thức kiểu không kết nối, được sử
dụng trong một số yêu cầu ứng dụng thay thế cho TCP. Tương tự như giao thức IP,
UDP không thực hiện các giai đoạn thiết lập và huỷ bỏ liên kết, không có các cơ
chế báo nhận (Acknowledgement) như trong TCP. UDP cung cấp các dịch vụ giao
vận không đáng tin cậy. Dữ liệu có thể bị mất, bị lỗi hay bị truyền luẩn quẩn trên
mạng mà không hề có thông báo lỗi đến nơi gửi hoặc nơi nhận. Do thực hiện ít
chức năng hơn TCP nên UDP chạy nhanh hơn, nó thường được sử dụng trong các
dịch vụ không đòi hỏi độ tin vậy cao. Đơn vị dữ liệu dùng trong giao thúc UDP là
UDP Datagram. Khuôn dạng của một UDP Datagrram gồm hai phần : Phần tiêu đề
(Header) chứa các thông tin điều khiển và phần Data chứa dữ liệu
Khuôn dạng của UDP Datagram cụ thể như hình 2.5.
UDP Source Port
UDP Message Length
UDP Destination Port
UDP Checksum
Data
... ...
Hình 1.3: Khuôn dạng UDP Datagram
Trong đó ý nghĩa của các trườnglà:
- UDP Source Port (16 bits) : Cho biết địa chỉ cổng của trạm nguồn. Nếu nó
không được chỉ ra thì trường này được thiết lập là 0.
17
Nghiên cứu và ứng dụng giao thức RTP.
- UDP Destination Port (16 bits) : Cho biết địa chỉ cổng của trạm đích.
- UDP Message Length (16 bits): Cho biết kích thước của một UDP
Datagram (kể cả phần Header). Kích thước tối thiểu của một UDP
Datagram là 8 Bytes (chỉ có phần Header, không có phần dữ liệu).
- UDP Checksum (16 bits): Là mã kiểm soát lỗi theo phương pháp CRC .
Lớp UDP được đặt trên lớp IP, tức là UDP Datagram khi chuyển xuống tầng
dưới sẽ được đặt vào IP Datagram để truyền trên liên mạng. IP Datagram này được
ghép vào một khung tin rồi được gửi tới liên mạng đến trạm đích. Tại trạm đích
các PDU được gửi từ dưới lên trên, qua mỗi tầng phần Header của PDU được gỡ
bỏ và cuối cùng chỉ còn lại phần dữ liệu như ban đầu được chuyển cho người sử
dụng.
1.3. ĐỊNH TUYẾN MULTICAST:
IP Multicast là một kỹ thuật duy trì dải thông bằng cách làm giảm lưu lượng
thông qua việc phân phát đồng thời một luồng dữ liệu tới hang ngàn người bên
nhận. Các ứng dụng sử dụng ưu điểm của Multicast như là hội nghị video, truyền
thông theo nhóm, lớp học từ xa, hoặc là để phân phối các phần mềm, các chỉ số
chứng khoán và tin tức.
18
Nghiên cứu và ứng dụng giao thức RTP.
Hình 1.4: Truyền Multicast
IP Multicast thực hiện phân phối nguồn thông tin tới rất nhiều các bên nhận mà
không cần them bất thông tin gì vào trong nguồn hay các bên nhận trong khi chỉ
sử dụng một mức dải thông tối thiểu. Các gói multicast được tái tạo lại bên trong
các Router mà đã kích hoạt khả năng PIM (Protocol Independent Multicast) và các
giao thức hỗ trợ multicast khác đưa đến kết quả là nó tạo ra khả năng phát chuyển
dữ liệu tới nhiều thành viên một cách hiệu quả nhất. Tất cả mọi con đường đều
yêu cầu nguồn phải gửi nhiều hơn một bản copy của dữ liệu. Một vài cách thì yêu
cầu nguồn gửi cho mỗi một bên nhận một bản copy độc lập. Nếu như có hang
ngàn bên nhận, việc sử dụng IP Multicast là rất có lợi. Với các ứng dụng yêu cầu
băng thông cao như là MPEG video, thì nó có thể yêu cầu một phần lớn dải thông
đường truyền cho một luồng đơn. Trong những ứng dụng này, cách duy nhất để
gửi dữ liệu tới hang ngàn đích một cách đồng thời là sử dụng IP Multicast. Hình
dưới đây sẽ cho chúng ta biết làm thế nào mà một nguồn gửi dữ liệu tới nhiều đích
sử dụng IP Multicast.
Khái niệm nhóm Multicast:
Multicast dựa trên khái niệm của nhóm. Một nhóm tuỳ ý của các bên nhận biểu
diễn một sự quan tâm đến việc nhận một luồng dữ liệu. Nhóm này không có bất cứ
một ranh giới rõ rang về mặt vật lý hay địa lý. Các thành viên (hosts) của nhóm
này có thể nằm ở bất cứ nơi nào trên Internet. Các thành viên này có cùng sở thích
là nhận một luồng dữ liệu phát tới một nhóm đơn mà để nhận được luồng thông tin
này thì buộc phải tham gia vào nhóm sử dụng giao thức IGMP. Các máy này phải
là thành viên của nhóm thì mới nhận được luồng dữ liệu mà họ quan tâm.
Địa chỉ Multicast:
19
Nghiên cứu và ứng dụng giao thức RTP.
Địa chỉ Multicast chỉ rõ một nhóm tuỳ ý các máy trạm theo IP mà các máy đó
tham gia vào nhóm này để nhận dữ liệu gửi tới nhóm.
Trong IP multicast thì địa chỉ multicast là địa chỉ nhóm D, có cấu trúc:
Hình1.5: địa chỉ multicast.
Bốn bít đầu tiên chứa 1110 và xác định đây là địa chỉ multicast. Phần còn lại,
28 bit, xác định nhóm multicast cụ thể. Không còn cấu trúc nào nữa trong nhóm
các bit. Cụ thể, vùng group không được phân chia thành các bit để xác định nguồn
gốc hay đơn vị sở hữu của nhóm, nó cũng không chứa thông tin quản trị như là các
thành viên của nhóm có ở trên một mạng vật lý không.
1.4 GIAO THỨC NÀO CÓ THỂ ĐÁP ỨNG ĐƯỢC YÊU CẦU THỜI
GIAN THỰC?
Trong những ứng dụng truyền thông đa phương tiện, yêu cầu đảm bảo khắt
khe về thời gian thực (không cho phép có thời gian trễ lớn, jitter). Việc các gói
tin đến không liên tục, đều đặn làm cho chất lượng hình ảnh, hoặc âm thanh thu
được thấp. Rất có thể gây ra vấp hình, méo tiếng. Để đáp ứng được những yêu cầu
này, một giao thức thời gian thực cần có các yếu tố:
- Hộ trợ việc định tuyến muticast: Với các ứng dụng tryền thông đa phương
tiện đòi hỏi thời gian thực, có sự phân phối giống dữ liệu từ một nguồn tới
nhiều đầu cuối nhận dữ liệu thì việc hỗ trợ multicast là rất cần thiết. Đây là
một yêu cầu rất quan trọng. Khi đó, sẽ tồn tại 1 nguồn phát và rất nhiều
nguồn thu, một máy chủ xuất luồng dữ liệu thời gian thực đến rất nhiều máy
khách. Nếu ta sử dụng truyền unicast, tải trọng tác động lên máy chủ rất lớn.
Trong khi đó, nếu mạng có hỗ trợ truyền multicast, ta chỉ việc xuất một luồng
duy nhất từ máy chủ tới một địa chỉ multicast. Sau đó tại các nút mạng, luồng
dữ liệu sẽ được nhân lên và chuyển tiếp tới những địa chỉ đích.
20
- Xem thêm -