CÁC ỨNG DỤNG MẠNG

Một phần của tài liệu Bài giảng mạng máy tính nâng cao it54 Đại học mở hà nội (Trang 58 - 137)

A. Mục tiêu

Sau khi học xong chương này, anh/ chị sẽ nắm được:

 Hiểu được nguyên lý của truyền thông đa phương tiện

 Một số giao thức truyền thông đa phương tiện và VoIP

 Hoạt động và ứng dụng của VPN

B. Nội dung

1 Các ứng dụng đa phương tiện ... 3 1.1 Thuộc tính của Video ... 3 1.2 Thuộc tính của âm thanh ... 4 1.3 Luồng video lưu trữ (Streaming Stored Video) ... 6 1.4 UDP Streaming ... 8 1.5 HTTP Streaming ... 9 1.6 Voice over IP ... 14

2 Giới hạn của các dịch vụ IP “hiệu quả nhất” (best-effort) ... 14 2.1 Tăng cường chống nhiễu với dữ liệu Audio ... 16 2.2 Khôi phục gói tin bị mất ... 20 2.3 Giao thức RTP (Real-Time Conversational Protocol) ... 24 2.4 Giao thức SIP ... 26

3 Mạng riêng ảo VPN ... 29 3.1 Giao thức IPSec ... 33 3.2 Giao thức PPTP ... 35 3.3 Giao thức L2TP ... 36 3.4 Giao thức SSTP ... 38

Mạng Truyền Thông – Bài 4 Trang 2

C. Tài liệu tham khảo

[1] TCP Illustrated – Volume 1, Kevin R. Fall, W. Richard Stevens, Pearson Education Inc,

2012

[2] Computer Networks, TanenBaum, Wetherall, Peason Education Inc, 2011

[3] Computer Networking A top-down approach, Kurose, Ross, 2017

[4] Privacy preservation using spherical chord, Doyal Tapan Mukherjee, Master Thesis, Misouri University, 2014.

[5] A brief introduction and analysis of the Gnutella protocol, Gayatri Tribhuvan, University of Freiburg

Mạng Truyền Thông – Bài 4 Trang 3

ỨNG DỤNG MẠNG

1 Các ứng dụng đa phương tiện

Các ứng dụng mạng đa phương tiện là tất cả ứng dụng mạng bất kỳ dùng để vận chuyển dữ liệu là âm thanh và video. Trong chương này chúng ta sẽ tìm hiểu các lớp ứng dụng và một số ứng dụng đa phương tiện cơ bản phổ biến hiện nay. Trước khi bắt đầu chúng ta sẽ tìm hiểu về các thuộc tính cơ bản của dữ liệu đa phương tiện, cách thức mã hóa âm thanh từ dữ liệu tương tự Analog sang dữ liệu số Digital.

1.1 Thuộc tính của Video

Đặc trưng quan trọng nhất của video là tỉ suất bit cao (high bit rate) của nó. Video được truyền qua Internet trải từ 100 kbps với video chất lượng thấp tới 3 Mpbs đối với các luồng phát phim điện ảnh chất lượng cao. Ví dụ sau cho thấy được

sự phụ thuộc vào băng thông của các ứng dụng video trên nền tảng Internet bởi 3 người dùng độc lập. Người thứ nhất Frank, liên tục đăng các ảnh lên trang Facebook của mình, giả sử cứ 10s Frank lại cập nhật một ảnh với với kích thước trung bình là

200 Kb. Người dùng thứ hai Martha, thường xuyên nghe nhạc trực tuyến trên điện thoại di động, sử giả Martha sử dụng các dịch vụ như Spotify và nghe nhạc định dạng MP3 được mã hóa ở tỉ suất 128 kbps. Người dùng thứ ba là Victor, xem phim trực tuyến với tỉ suất mã hóa tại 2 Mbps. Xem xét trong 67 phút với 3 người dùng sử dụng liên tục các ứng dụng như trên, kết quả dữ liệu thống kê cho ở bảng sau:

Người dùng / Ứng dụng Bit rate Tổng số bytes vận chuyển

Frank / Facebook 160 kbps 80 Mbytes

Martha / Music Spotify 128 kbps 64 Mbytes

Victor / Video 2 Mbps 1 Gbytes

Nhìn vào bảng thống kê trên, chúng ta nhận thấy khi thiết kế các ứng dụng video trực tuyến, điều đầu tiên chúng ta cần quan tâm đến tỉ suất bit của video. Theo

dự đoán của Cisco thì lưu lượng của dữ liệu luồng video có thể chiếm tới 80% tổng lưu lương truyền tin Internet toàn cầu.

Mạng Truyền Thông – Bài 4 Trang 4

Một đặc trưng khác của dữ liệu video là có thể nén, bằng cách đánh đổi chất lượng của video với tỉ lệ bit. Video là một chuỗi các ảnh liên tục được phát trên một

tỉ lệ hình ảnh không đổi, thông thường từ 24 đến 30 ảnh mỗi giây. Nếu không sử dụng nén, ảnh số sẽ bao gồm mỗi dãy các pixels, mỗi pixel được mã hóa bằng một

số lượng bit biểu diễn vùng sáng và màu sắc. Có hai loại video dự phòng, cả hai đều được khai thác trong các kỹ thuật nén video. Dự phòng thưa (Spatial redundancy) là

dự phòng bên trong của một ảnh. Một cách trực giác, một ảnh bao gồm phần lớn các khoảng trống có độ dự phòng cao và có thể nén một cách hiệu quá mà không ảnh hưởng nhiều đến chất lượng của hình ảnh. Dự phòng tạm thời (Temporal redundancy) phản ảnh sự lặp của các ảnh trong một chuỗi ảnh liên tiếp. Nếu một ảnh trong một chuỗi ảnh giống nhau gần như hoàn toàn, sẽ không cần thiết để mã hóa lại các ảnh giống nhau đấy; thay vào đó để tăng hiệu quả ta đưa ra chỉ dẫn rằng cách chuỗi ảnh tiếp theo vẫn được mã hóa y hệt như ảnh đầu tiên. Các giải thuật nén hiện đại đều có thể cho phép nén video sang bất kỳ chuẩn bit rate nào, chuẩn nén cho tỉ lệ bit cao sẽ cho chất lượng hình ảnh tốt và trải nghiệm người dùng tốt hơn.

Chúng ta sử dụng nén để tạo nhiều phiên bản của cùng một video, mỗi phiên bản có mức độ chất lượng khác nhau để đáp ứng theo nhu cầu của người dùng. Ví

dụ, cùng một video gốc, ta sử dụng chuẩn nén để tạo ra ba phiên bản với tỉ lệ truyền

là 300 kbps, 1 Mbps và 3 Mbps. Tùy thuộc vào thiết bị của người dùng, chức năng

và băng thông của người dùng mà họ lựa chọn loại video thích hợp.

1.2 Thuộc tính của âm thanh

Âm thanh số (bao gồm cả giọng nói và âm nhạc) có băng thông nhỏ hơn đáng

kể so với video. Âm thanh số có thuộc tính đặc trưng riêng trong thiết kế các ứng dụng đa phương tiện. Để nắm được các thuộc tính này, hãy xem cách thức để chuyển đổi âm thanh từ dạng tín hiệu tương tự sang tín hiệu số:

 Tín hiệu tương tự được lấy mẫu tại một tần số cố định, ví dụ 8,000 mẫu (samples) mỗi giây. Giá trị của mỗi mẫu là một số thực.

Mạng Truyền Thông – Bài 4 Trang 5

 Mỗi mẫu sau đó được làm tròn thành một giá trị hữu hạn. Thao tác này được gọi là “lượng tử hóa” (quantizaion). Con số hữu hạn đó được gọi là giá trị lượng tử (quantization values) thường là lũy thừa bậc 2 (32, 64, 128, 256..)

 Mỗi giá trị lượng tử được biểu diễn bằng một số bit cố định. Ví dụ, ta có giá trị lượng tử là 256, do vậy có thể biểu diễn bằng 1 byte. Biểu diễn bit của tất

cả các mẫu sau đó được ghép nối với nhau để tạo thành biểu diễn tín hiệu số.

Ví dụ, nếu tín hiệu tương tự lấy mẫu ở 8,000 mẫu/giây và mỗi lượng tử được biểu diễn bằng 8 bits, thì kết quả của tín hiệu số sẽ đạt là 64 kbps. Để phát âm thanh qua màng loa, tín hiệu số phải được chuyển đổi ngược lại, quá trình này được gọi là giải mã (decoded) từ tín hiệu số về tín hiệu tương tự. Tuy nhiên, quá trình giải mã tín hiệu tương tự chỉ mạng lại giá trị xấp xỉ so với tín hiệu gốc và chất lượng âm thanh có thể bị nhiễu. Bằng cách tăng tỉ lệ mẫu và tăng giá trị lượng tử quá trình giả mã tín hiệu sẽ cho chúng ta giá trị xấp xỉ tốt hơn,

bù lại chi phí đánh đổi giữa chất lượng với quá trình giải mã tín hiệu và chi phí lưu trữ tín hiệu số.

Kỹ thuật mã hóa cơ bản được đề cập đầu tiên được gọi là kỹ thuật điều chế xung mã (pulse code modulation – PCM). Giọng nói thường được mã hóa bởi kỹ thuật PCM, với tỉ lệ mẫu là 8,000 mẫu mỗi giây và 8 bit mỗi mẫu, kết quả cho ta tỉ

lệ truyền bit là 64 kpbs. Đĩa CD cũng sử dụng PCM với tỉ lệ mẫu là 44,100 mẫu mỗi giây với 16 bits mỗi mẫu và cho ta tỉ lệ bit truyền là 705.6 kbps đối với âm thanh đơn (mono) và 1.411 Mbps với âm thanh nổi (stereo)

Mã hóa PCM được sử dụng trong giọng nói và âm nhạc, tuy nhiên lại ít được

sử dụng trên nền tảng Internet. Thay vào đó cũng giống như video, người ta sử dụng các kỹ thuật nén để làm giảm tỉ lệ bit truyền trên luồng. Đối với giọng nói của con người có thể nén xuống nhỏ hơn 10 kbps và hơn nữa. Kỹ thuật nén phổ biến cho chất lượng âm thanh tương đương với chất lượng âm thanh nổi CD là MPEG 1 layer hay còn gọi là MP3. Bộ mã hóa MP3 có thể mã hóa sang nhiều tỉ lệ bit truyền khác nhau, phổ biến nhất là 128 kbps cho ta chất lượng âm thanh với lượng nhỏ suy hao.

Mạng Truyền Thông – Bài 4 Trang 6

Một chuẩn khác là Advance Audio Coding (ACC), được phổ biến bởi Apple. Cũng như video, có nhiều phiên bản âm thanh có chất lượng khác nhau được tạo trên luồng với tỉ lệ truyền khác nhau.

Mặc dù tỉ lệ bit truyền của âm thanh nhỏ hớn video, người dùng nói chung sẽ không cảm nhận được nhiều về nhiễu âm thanh hơn là nhiễu video. Ví dụ như, nếu một hội thoại trực tuyến qua Internet bị lỗi mấy vài giây, sẽ gây ra nhiều sự chờ đợi thất vọng của người dùng. Tuy nhiên nếu là tín hiệu âm thanh, người dùng hoàn toàn

có thể kết thúc phiên làm việc hoặc cố chờ đợi âm thanh tiếp theo được gửi tới.

1.3 Luồng video lưu trữ (Streaming Stored Video)

Đối với luồng ứng dụng video, video được thu trước rồi được đặt lên máy chủ

và người dùng gửi yêu cầu đến những máy chủ này để xem video theo yêu cầu. Người dùng có thể xem video từ lúc bắt đầu đến khi kết thúc mà không bị ngắt quãng, người dùng cũng có thể tạm dừng video hoặc kết thúc xem video bất kỳ lúc nào. Hệ thống luồng video này được gọi là luồng video lưu trữ và được phân ra làm

ba loại dựa trên giao thức truyền tin gồm: UDP streaming, HTTP streaming và Adaptive HTTP streaming.

Đặc điểm chung của ba dạng luồng video này là sử dụng bộ đệm mở rộng ở ứng dụng máy khách để giảm hiệu ứng trễ phát luồng và thay đổi linh hoạt băng thông giữa máy chủ và máy khách. Với các luồng video (cả luồng trực tiếp và luồng lưu trữ), người dùng thường chờ đợi một vài giây để khởi tạo luồng giữa máy khách

và máy chủ trước khi trình phát bắt đầu ở máy khách. Hệ quả là, khi video bắt đầu được gửi về máy khách, máy khách chưa thực hiện phát ngay lập tức, các dữ liệu video này được dùng để tạo thành bộ đệm ở ứng dụng máy khách rồi mới bắt đầu

phát. Có hai ưu điểm quan trọng của bộ đệm máy khách đem lại là:

 Thứ nhất, bộ đệm máy khách có thể hấp thu và làm giảm độ trễ từ máy chủ đến máy khách. Trên thực tế nếu các mảnh video bị trễ, miễn là chúng đến trước khi vùng đệm phát đã sử dụng hết để chuẩn bị cho vùng đệm tiếp theo, thì độ trễ này có thể nói là không đáng kể.

Mạng Truyền Thông – Bài 4 Trang 7

 Thứ hai, nếu băng thông từ máy chủ đến máy khác bị giảm xuống dưới cả tỉ lệ bit truyền, người cùng vẫn có thể xem được video phát liên tục tại bộ đệm nếu vùng đệm này chưa sử dụng hết. Các mảnh video có thể được phát lại sau khi băng thông ổn định hoặc phát lại với mảnh có tỉ lệ bit truyền thấp hơn để đảm bảo tính liên tục của video.

Hình sau đây mô tả vùng đệm của máy khách. Trong ví dụ này, giả sử rằng video được mã hóa tại tỉ lệ bit cố định, do vậy mỗi khối video bao gồm các khung video được phát trên cùng lượng thời gian cố định là Δ. Máy chủ truyền khối video đầu tiên tại thời điểm t0, khối tiếp theo tại t0 + Δ, khối thứ ba tại thời điểm t0 + 2Δ… Khi máy khách bắt đầu phát, mỗi khối sẽ trễ một đơn vị thời gian là Δ đơn vị sau khối trước đó để tái tạo lại thời gian đồng bộ với video gốc. Bởi vì có nhiều loại biến thể trễ của thiết bị đầu – cuối, các khối video khác nhau sẽ tạo ra các độ trễ khác nhau. Khối video đầu tiên đến máy khách tại thời điểm t1 và khối thứ hai về tại thời điểm t2. Độ trễ mạng đối với khối thứ i là khoảng cách nằm ngang giữa thời gian khối được truyền từ máy chủ và thời gian nó đến máy khách; chú ý rằng độ trễ mạng có nhiều loại khác nhau đối với mỗi khối truyền khác nhau. Trong ví dụ này, nếu máy trạm bắt đầu phát ngay khi khối đầu tiên đến tại t1, thì khối thứ hai sẽ không đến đúng thời điểm phát là t1 + Δ. Trong trường hợp này, bộ phát video sẽ phải chờ cho đến khi khối thứ hai đến hoặc bỏ qua khối thứ 2 này, cả hai cách xử lý đều được ưu tiên. Thay vào đó nếu máy khách trì hoãn phát cho đến thời điểm t3 khi các khối từ 1 đến 6 đến, bộ phát định kỳ có thể tiếp tục với tất cả các khối nhận được trước thời điểm phát của chúng.

Mạng Truyền Thông – Bài 4 Trang 8

1.4 UDP Streaming

Với luồng UDP, máy chủ truyền video tại tỉ lệ khớp với luồng nhận của máy khách bởi xung nhịp đồng hồ từ video chunk ổn định. Ví dụ, nếu bên nhận có thể xử

lý được ở tỉ lệ bit là 2 Mpbs, mỗi gói tin UDP sẽ vận chuyển 8,000 bits video, sau đó máy chủ sẽ đóng gói khối dữ liệu video này vào gói tin UDP và gửi lần lượt mỗi gói trong khoảng (8,000 bits)/(2 Mbps) = 4 ms. Luồng UDP thông thường sẽ sử dụng một bộ đệm nhỏ ở máy khách đế đảm bảo phát liên tục, kích thước bộ đểm đủ nhỏ

để giữ video nhỏ hơn một giây.

Trước khi chuyển các chunk sang UDP, máy chủ sẽ đóng gói các chunk này trong gói tin vận chuyển được thiết kế riêng cho các dữ liệu đa phương tiện, sử dụng giao thức Real-Time Transport Protocol (RTP) hoặc các giao thức tương tự.

Một thuộc tính riêng nữa của luồng UDP là thêm luồng video từ máy chủ đến máy khách, máy khách và máy chủ tiếp tục duy trì, song song hóa, phân tách các kết nối riêng biệt mà máy khách gửi các câu lệnh thay đổi trạng thái phiên (như tạm dừng, quay lại, di chuyển,…). Giao thức Real-Time Streaming Protocol (RTSP) là một giao thức mở phổ biế dùng để điều khiển kết nối.

Mạng Truyền Thông – Bài 4 Trang 9

Mặc dù luồng UDP đã được sử dụng trong nhiều hệ thống mở và sản phẩm độc quyền, nó vẫn tồn tại ba nhược điểm đáng kể.

Thứ nhất, bởi vì không thể dự đoán được lượng băng thông khác nhau giữa máy chủ và máy khách, tỉ lệ rằng truyền trên luồng UDP có thể lỗi để cung cấp khả năng phát tiên tục không ngắt quãng. Ví dụ xem xét kịch bản bên nhận có khả năng tiếp nhận tỉ lệ bit truyền là 1 Mbps và băng thông từ máy chủ đến máy khách thường xuyên lớn hơn 1 Mbps, nhưng đôi lúc băng thông bị giảm xuống dưới 1 Mbps trong một vài giây. Hệ thống luồng UDP sẽ truyền video ở tỉ lệ bit truyền là 1 Mbps qua giao thức RTP/UDP có thể cung cấp cho người dùng trải nghiệm kém với các khung hình bị đóng băng, lỗi khung khi băng thông bị giảm xuống dưới 1 Mbps.

Thứ hai, nhược điểm của luồng UDP là yêu cầu phải có máy chủ điều khiển đa phương tiên, như máy chủ RTSP, để xử lý tương tác yêu cầu khách – chủ nhằm theo vết trạng thái của máy khách ( các trạng thái như paused, played, stop…) đối với mỗi phiên của máy khách. Điều náy sẽ làm tăng chi phí và độ phức tạp của một

hệ thống video theo yêu cầu lớn.

Thứ ba, có nhiều tường lửa được cấu hình để chặn các lưu lượng của UDP nhằm ngăn chặn người dùng bên trong hệ thống nhận được các UDP video.

1.5 HTTP Streaming

Trong luồng HTTP, video được luu trữ trên máy chủ HTTP như là file gốc với một URL đặc biệt. Khi một người dùng muốn xem video, máy khách sẽ thiết lập kết nối TCP với máy chủ và yêu cầu một HTTP GET cho URL đó. Máy chủ sẽ gửi file video trong thông điệp HTTP Response ngay sau khi có thể (ngay sau khi xử lý các vấn đề điều khiển luồng, kiểm soát tắc nghẽ của TCP). Ở phía máy khách, các bytes

dữ liệu được thu thập ở bộ đêm ứng dụng trên máy khách. Khi số lượng các bytes trong bộ đệm vượt quá ngưỡng là một giá trị nào đó, ứng dụng trên máy khách sẽ tiến hành phát video, nó định kỳ thu thập các khung video từ bộ đệm ứng dụng trên máy khách, giải nén và hiển thị nội dung lên màn hình người dùng.

Mạng Truyền Thông – Bài 4 Trang 10

Sử dụng HTTP qua TCP cho phép video dễ dàng vượt qua tường lửa và NAT

(thường thiết kế để chặn các lưu lượng của UDP). Luồng phát qua HTTP cũng không yêu cầu một máy chủ kiểm soát đa phương tiện như RTSP, điều này làm giảm chi phí triển khai một hệ thống lớn trên Internet. Dựa vào các điểm tích cực này, phần lớn các ứng dụng phát luồng video ngày nay như YouTube và Netflix đều

sử dụng giao thức HTTP trên nền tảng TCP để phát luồng dữ liệu video.

a) Tìm nạp trước video

Như đã đề cập ở trên, bộ đệm của máy khách được sử dụng để làm giảm nhẹ hiệu ứng trễ từ thiêt bị đầu-cuối và sẵn sằng với các băng thông khác nhau. Trong ví

dụ trước đây, máy chủ gửi video tại một tỉ lệ bit mà video có thể phát được. Tuy nhiên, đối với các luồng video lưu trữ, máy khách có thể cố gắng tải về video với tỉ

lệ bit cao hơn tỉ lệ bit mà máy khách có thể xử lý được, bằng cách đó nạp trước các khung video mà sẽ được sử dụng tiếp theo. Quá trình nạp trước video này là lưu trữ

tự nhiên tại vùng đệm của máy khách. Tìm và nạp trước các khung video là cơ chế

tự nhiên để tránh các vấn đề tắc nghẽn của TCP.

Để hiểu rõ hơn việc nạp trước video, chúng ta xem xét ví dụ sau. Giả sử video bên máy khách được xử lý tại tỉ lệ 1 Mbps nhưng năng lực của mạng gửi từ máy chủ

về máy khách với một tỉ lệ không đổi là 1.5 Mbps. Khi đó máy khách có thể phát liên tục mà không có độ trễ, nhưng do không đủ năng lực xử lý 1.5 Mbps, nó sẽ sử dụng 500 Kbits này bằng cách đưa vào bộ đệm trong mỗi giây. Theo cách này, nếu trong thời điển khác dữ liệu nhận nhỏ hơn 1 Mbps trong một khoảng thời gian, máy khách sẽ không thể tiếp tục phát liên tục do vậy nó sẽ sử dụng dữ liệu trong bộ đệm. Nghiên cứu của [Wang 2008] đã chứng minh rằng khi thông lương trung bình của TCP gấp hai lần tỉ lệ bit truyền luồng đa phương tiện trên TCP kết quả sẽ cho ta tối thiểu hóa việc cạn bộ và thấp dữ liệu ở bộ đệm.

b) Bộ đêm ở ứng dụng khách và bộ đệm của TPC

Hình sau đây biểu diễn tương tác giữa máy khách và máy chủ đối với luồng HTTP. Tại phía máy chủ tỉ lệ của các tệp video trong vùng trắng sẵn sàng được gửi

Một phần của tài liệu Bài giảng mạng máy tính nâng cao it54 Đại học mở hà nội (Trang 58 - 137)

Tải bản đầy đủ (PDF)

(137 trang)