1. CÁCH ĐÓNG GÓI THÔNG TIN THOẠI:
Hình 5: Gói dữ liệu thoại trong mạng IP
Mỗi khi giọng nói đã được số hóa và được nén lại, nó phải được chia thành những phần nhỏ, để đặt vào gói IP, VoIP thì không hiệu quả cho những gói tin nhỏ, trong khi những gói tin lớn thì tạo ra nhiều độ trễ, do ảnh hưởng của các trường thêm vào để tạo ra gói tin truyền tải trên mạng IP mà kích thước của dữ liệu thoại (voice data) cũng sẽ ảnh hưởng. Ví dụ thông tin của IP, UDP, RTP là 40 byte, nếu gói tin thoại cũng chỉ khoảng 40 byte thì hoàn toàn không hiệu quả, kích thước gói tin lớn nhất có thể có trong môi trường Ethernet là 1.500 byte, dùng 40 byte cho header còn lại 1.460 byte có thể sử dụng cho phần dữ liệu thoại, tương đương với 1.460 mẫu (samples) không được nén hay thời gian để đặt phần dữ liệu vào gói tin. Nếu gói bị mất nhiều hay đến đích không đúng thứ tự sẽ làm cho cuộc thoại bị ngắt quãng.
Thông thường, cần khoảng 10 microsecond đến 30 microsecond (trung bình là 20 microsecond) để đặt dữ liệu thoại vào bên trong gói tin, ví dụ phần dữ liệu thoại (voice data) với kích thước 160 byte không nén cần khoảng 20 microsecond để đặt phần dữ liệu thoại vào bên trong gói tin. Số lượng dữ liệu thoại bên trong gói tin cần cân bằng giữa sự hiệu quả trong sử dụng băng thông và chất lượng của cuộc thoại.
Sự đóng gói cho quá trình vận chuyển gói thoại
Giới thiệu một số giao thức chính:
2. VOIP VÀ MÔ HÌNH OSI
Bảng 1: VoIP và mô hình OSI
Đế tích hợp thành công lưu lượng (traffic) thoại trong hệ thống hướng kết nối như PSTN vào hệ thống không hướng kết nối như mạng IP cần yêu cầu tính năng của rất nhiều cơ chế báo hiệu. Do đó người dùng có thể tạo mạng không hướng kết nối xuất hiện như mạng hướng kết nối.
Những ứng dụng như là Cisco IP Softphone và CiscoManager cung cấp giao diện cho người dùng để tạo giọng nói, chuyển đổi và nén giọng nói ở máy tính của họ trước khi được mang qua mạng.
Codec định nghĩa ra tiến trình nén dữ liệu thoại. Loại codec có thể được chọn bởi cấu hình của người dùng hay thông qua tính năng thỏa thuận của thiết bị.
Trong quá trình thực hiện hệ thống VoIP, thoại dùng RTP bên trong giao thức UDP để mang dữ liệu thoại qua mạng. Vì ở lớp 3 của mô hình OSI, dữ liệu thoại sẽ được đặt trong gói tin IP, mà gói tin IP có thể đến đích không đúng thứ tự và không đồng bộ, do đó những gói tin phải được sắp xếp và đồng bộ lại trước khi gửi gói tin thoại đến người dùng. Vì UDP không cung cấp dịch vụ như là số trình tự (sequence number) và thông số về thời gian, tuy nhiên RTP cung cấp chức năng xắp xếp thứ tự.
Có rất nhiều phương thức báo hiệu được dùng trong hệ thống VoIP, như H323 và SIP dùng trong định nghĩa phương thức báo hiệu cuộc gọi đầu cuối-đầu cuối, MGCP định nghĩa phương thức để tách biệt chức năng báo hiệu với chức năng cuộc gọi. MGCP dùng thiết bị quản lý cuộc gọi (call agent) để đại diện cho tính năng điều khiển báo hiệu cho những thiết bị đầu cuối. Thiết bị điều khiển trung tâm chỉ tham gia vào quá trình thiết lập cuộc gọi. Những luồng lưu lượng thoại vẫn được gửi trực tiếp từ đầu cuối - đầu cuối.
RTP và RTCP
RTP (Realtime Transport Protocol – Giao thức vận chuyển thông tin thời gian thực)
RTP cung cấp chức năng mạng vận chuyển đầu cuối - đầu cuối cho những ứng dụng truyền dữ liệu mà yêu cầu thời gian thực (real-time) như là âm thanh và video. Những chức năng đó bao gồm nhận diện loại dữ liệu, số trình tự, tham số thời gian và giám sát tiến trính gửi.
RTP là thành phần quan trọng của VoIP bởi vì nó cho phép thiết bị đích sắp xếp và điều chỉnh lại thời gian cho gói tin thoại trước khi được gửi đến người dùng. Một header RTP chứa tham số thời gian và số trình tự nhằm để cho thiết bị nhận lưu vào bộ nhớ đệm, khử các biến đổi về độ trễ (jitter) và góc trễ (lacency) bằng cách đồng bộ những gói tin để phát lại (playback) dòng âm thanh liên tục. RTP dùng số trình tự chỉ đế sắp xếp lại thứ tự gói tin. RTP không yêu cầu sự truyền lại nếu một gói tin bị mất.
Ví dụ: Như những gói thoại khi được gửi đến đích, chúng có thể đi trên những con đường khác nhau để đến đích, mội con đường có thể khác nhau về khoảng cách, tốc độ truyền, kết quà là gói tin đến đích không đúng thứ tự ban đầu. Khi ở nguồn tạo ra cuộc gọi, dữ liệu thoại sẽ được đóng gói lại, RTP sẽ gắn vào những gói tin với tham số thời gian và số trình tự và gửi đi. Ở đích đến, RTP sẽ sắp xếp những gói tin và gửi chúng đến bộ xử lý tín hiệu số (Digital Signal Processor - DSP) ở cùng tốc độ khi chúng được gửi đi ở nguồn gọi.
RTCP (Real-Time Transport Control Protocol – Giao thức điều khiển thông tin RTP)
RTCP giám sát chất lượng của quá trình phân phối dữ liệu và cung cấp tiến trình điều khiển thông tin. RTCP cung cấp thông tin phản hồi dựa theo điều kiện của mạng:
RTCP cung cấp cơ chế cho những thiết bị liên quan trọng phiên (session) RTP trao đổi thông tin về giám sát và điều khiển phiên. RTCP giám sát chất lượng của các yếu tố như là đếm gói (packet count), mất gói, độ trễ, các biến đổi trong giá trị trễ (jitter). RTCP truyền gói bằng 1% băng thông của phiên, nhưng ở một tốc độ xác định trong ít nhất mỗi 5 giây.
Tham số thời gian Network Time Protocol (NTP) dựa vào các xung được đồng bộ. Tham số thời gian RTP tương ứng thì được tạo ngẫu nhiên và dựa vào tiến trình lấy mẫy gói dữ liệu. Cả hai NTP và RTP đều được đặt trong gói RTCP bởi người gửi dữ liệu.
Ví dụ ứng dụng RTCP
Trong suốt mỗi cuộc gọi RTP, những gói thông báo được tạo ít nhất mỗi 5 giây. Trong điều kiện mạng có chất lượng kém, một cuộc gọi có thể bị ngưng kết nối do lượng lớn gói bị mất. Khi xem xét những gói tin qua hệ thống phân tích gói, người quản trị có thể kiểm tra thông tin trong header của RTCP bao gồm số lượng gói mất, các biết đổi trong giá trị trễ (jitter)….
Giảm kích thước header với CRTP
Hình 6: Nén header RTP.
Tương ứng với nhiều số lượng giao thức cần thiết để vận chuyển thoại qua một mạng IP, thì header của gói tin có thể lớn. Dùng CRTP (Compression RTP) trên từng liên kết để tiết kiệm băng thông.
Dùng CRTP nén header IP/UDP/RTP từ 40 byte xuống còn 2 byte nếu không có checksum và từ 40 byte xuống 4 byte nếu có checksum. Nén header RTP thì rất có ích trong trường hợp kích cỡ dữ liệu của RTP là nhỏ, ví dụ như dữ liệu âm thanh sẽ được nén trong khoảng 20 và 50 byte.
CRTP làm việc dựa vào giả thiết đó là hầu hết tất cả các trường trong header IP/UDP/RTP là không thay đổi hay sự thay đổi có thể nhận biết được. Những trường không thay đổi bao gồm địa chỉ nguồn-đích của IP và số cổng nguồn-đích của UDP, cũng như những trường khác trong tất cả 3 header.
Ví dụ về CRTP: Trong môi trường thoại dựa vào gói tin thì khi giọng nói lấy mẫu được đóng khung (framing) mỗi 20 ms, phần dữ liệu 20 byte được tạo. Không có CRTP, kích thuớc gói bao gồm những thành phần sau:
Kích thước header bổ sung để mang dữ liệu dài gấp hai lần kích thước của dữ liệu: IP/UDP/RTP (20 + 8 + 12 = 40 byte) trong khi phần dữ liệu là 20 byte. Khi tạo những gói tin mỗi 20 ms trên liên kết có tốc độ chậm, phần header chiếm phần lớn băng thông.
Lưu ý khi dùng CRTP để nén header
Hình 7: Lưu ý khi dùng nén.
Nên cấu hình RTCP trên những cổng giao tiếp có những điều kiện sau:
Nén hoạt động trên từng liên kết riêng biệt, kích hoạt nén trên cả hai đầu cuối của liên kết serial có băng thông thấp có thể tiết kiệm rất nhiều băng thông nếu như có lượng lớn lưu lượng RTP trên liên kết serial đó. Tuy nhiên, nén có thể yêu cầu phải xử lý nhiều sẽ gây ra tình trạng tiêu hao tài nguyên sẵn dùng trên các thiết bị.
Hình 5: Gói dữ liệu thoại trong mạng IP
Mỗi khi giọng nói đã được số hóa và được nén lại, nó phải được chia thành những phần nhỏ, để đặt vào gói IP, VoIP thì không hiệu quả cho những gói tin nhỏ, trong khi những gói tin lớn thì tạo ra nhiều độ trễ, do ảnh hưởng của các trường thêm vào để tạo ra gói tin truyền tải trên mạng IP mà kích thước của dữ liệu thoại (voice data) cũng sẽ ảnh hưởng. Ví dụ thông tin của IP, UDP, RTP là 40 byte, nếu gói tin thoại cũng chỉ khoảng 40 byte thì hoàn toàn không hiệu quả, kích thước gói tin lớn nhất có thể có trong môi trường Ethernet là 1.500 byte, dùng 40 byte cho header còn lại 1.460 byte có thể sử dụng cho phần dữ liệu thoại, tương đương với 1.460 mẫu (samples) không được nén hay thời gian để đặt phần dữ liệu vào gói tin. Nếu gói bị mất nhiều hay đến đích không đúng thứ tự sẽ làm cho cuộc thoại bị ngắt quãng.
Thông thường, cần khoảng 10 microsecond đến 30 microsecond (trung bình là 20 microsecond) để đặt dữ liệu thoại vào bên trong gói tin, ví dụ phần dữ liệu thoại (voice data) với kích thước 160 byte không nén cần khoảng 20 microsecond để đặt phần dữ liệu thoại vào bên trong gói tin. Số lượng dữ liệu thoại bên trong gói tin cần cân bằng giữa sự hiệu quả trong sử dụng băng thông và chất lượng của cuộc thoại.
Sự đóng gói cho quá trình vận chuyển gói thoại
Giới thiệu một số giao thức chính:
- H323: Đây là giao thức chuẩn của ITU. Giao thức này ban đầu được phát triển cho hệ thống đa phương tiện (multimedia) phương tiện trong môi trường không hướng kết nối (connectionless) như LAN. H323 là chuẩn định nghĩa tất cả tiến trình liên quan đến vấn đề đồng bộ cho thoại, video và truyền dữ liệu. H323 định nghĩa tín hiệu cuộc gọi đầu cuối – đầu cuối.
- MGCP (Media Gateway Control Protocol – giao thức điều khiển thiết bị chuyển tiếp): Chuẩn được phát triển điều khiển thiết bị chuyển tiếp (gateway) vào hệ thống PSTN. MGCP định nghĩa giao thức, hay qui tắc để điều khiển cho thiết bị chuyển tiếp của VoIP mà kết nối với thiết bị điều khiển cuộc gọi (call-control) bên ngoài, thường được gọi là tác nhân gọi (call agent), MGCP cung cấp tính năng báo hiệu cho những thiết bị rẻ tiền ở vị trí rìa đóng vai trò là thiết bị chuyển tiếp, đây là những thiết bị mà không có tính năng tạo đầy đủ tín hiệu cho thoại như là H323. Thực chất, bất kỳ lúc nào khi xảy ra sự kiện như quá trình nhấc ống nghe (off hook) tại cổng thoại (voice port) của thiết bị chuyển tiếp, cổng thoại sẽ thông báo sự kiện đến tác nhân gọi. Sau đó tác nhân gọi tạo tín hiệu đến thiết bị mà cung cấp dịch vụ, như là tín hiệu mời quay số.
- SIP (Session Initiation Protocol – Giao thức khởi tạo phiên): Đây là giao thức chi tiết mà xác định những chỉ thị và những đáp ứng, để thiết lập hay kết thúc cuộc gọi. SIP cũng mô tả chi tiết về các tính năng như bảo mật, sự ủy nhiệm (proxy), vận chuyển (transport). SIP định nghĩa ra cơ chế báo hiệu cuộc gọi đầu cuối – đầu cuối giữa các thiết bị. SIP là giao thức trao đổi thông điệp dùng thuần túy ký tự mà có nhiều tính năng tương tự HTTP, như là cùng mô hình yêu cầu (request) và đáp ứng (response).
- RTP (Real-time transport Protocol – Giao thức truyền tải dữ liệu thời gian thực): Giao thức chuẩn của IETF về truyền tải các dữ liệu có tính chất thời gian thực (media-stream). RTP mang dữ liệu thoại qua mạng. RTP cung cấp số trình tự và thông số thời gian (time stamp) để xử lý đúng thứ tự của gói tin thoại.
- RTCP (RTP Control Protocol – Giao thức điều khiển RTP): Cung cấp tính năng điều khiền thông tin trên kênh riêng (out-of-band) cho một luồng RTP. Mỗi luồng RTP có tương ứng luồng RTCP để thông báo những số liệu thống kê trên cuộc gọi. RTCP được dùng cho tính năng thông báo QoS.
2. VOIP VÀ MÔ HÌNH OSI
Bảng 1: VoIP và mô hình OSI
Đế tích hợp thành công lưu lượng (traffic) thoại trong hệ thống hướng kết nối như PSTN vào hệ thống không hướng kết nối như mạng IP cần yêu cầu tính năng của rất nhiều cơ chế báo hiệu. Do đó người dùng có thể tạo mạng không hướng kết nối xuất hiện như mạng hướng kết nối.
Những ứng dụng như là Cisco IP Softphone và CiscoManager cung cấp giao diện cho người dùng để tạo giọng nói, chuyển đổi và nén giọng nói ở máy tính của họ trước khi được mang qua mạng.
Codec định nghĩa ra tiến trình nén dữ liệu thoại. Loại codec có thể được chọn bởi cấu hình của người dùng hay thông qua tính năng thỏa thuận của thiết bị.
Trong quá trình thực hiện hệ thống VoIP, thoại dùng RTP bên trong giao thức UDP để mang dữ liệu thoại qua mạng. Vì ở lớp 3 của mô hình OSI, dữ liệu thoại sẽ được đặt trong gói tin IP, mà gói tin IP có thể đến đích không đúng thứ tự và không đồng bộ, do đó những gói tin phải được sắp xếp và đồng bộ lại trước khi gửi gói tin thoại đến người dùng. Vì UDP không cung cấp dịch vụ như là số trình tự (sequence number) và thông số về thời gian, tuy nhiên RTP cung cấp chức năng xắp xếp thứ tự.
Có rất nhiều phương thức báo hiệu được dùng trong hệ thống VoIP, như H323 và SIP dùng trong định nghĩa phương thức báo hiệu cuộc gọi đầu cuối-đầu cuối, MGCP định nghĩa phương thức để tách biệt chức năng báo hiệu với chức năng cuộc gọi. MGCP dùng thiết bị quản lý cuộc gọi (call agent) để đại diện cho tính năng điều khiển báo hiệu cho những thiết bị đầu cuối. Thiết bị điều khiển trung tâm chỉ tham gia vào quá trình thiết lập cuộc gọi. Những luồng lưu lượng thoại vẫn được gửi trực tiếp từ đầu cuối - đầu cuối.
RTP và RTCP
RTP (Realtime Transport Protocol – Giao thức vận chuyển thông tin thời gian thực)
RTP cung cấp chức năng mạng vận chuyển đầu cuối - đầu cuối cho những ứng dụng truyền dữ liệu mà yêu cầu thời gian thực (real-time) như là âm thanh và video. Những chức năng đó bao gồm nhận diện loại dữ liệu, số trình tự, tham số thời gian và giám sát tiến trính gửi.
RTP là thành phần quan trọng của VoIP bởi vì nó cho phép thiết bị đích sắp xếp và điều chỉnh lại thời gian cho gói tin thoại trước khi được gửi đến người dùng. Một header RTP chứa tham số thời gian và số trình tự nhằm để cho thiết bị nhận lưu vào bộ nhớ đệm, khử các biến đổi về độ trễ (jitter) và góc trễ (lacency) bằng cách đồng bộ những gói tin để phát lại (playback) dòng âm thanh liên tục. RTP dùng số trình tự chỉ đế sắp xếp lại thứ tự gói tin. RTP không yêu cầu sự truyền lại nếu một gói tin bị mất.
Ví dụ: Như những gói thoại khi được gửi đến đích, chúng có thể đi trên những con đường khác nhau để đến đích, mội con đường có thể khác nhau về khoảng cách, tốc độ truyền, kết quà là gói tin đến đích không đúng thứ tự ban đầu. Khi ở nguồn tạo ra cuộc gọi, dữ liệu thoại sẽ được đóng gói lại, RTP sẽ gắn vào những gói tin với tham số thời gian và số trình tự và gửi đi. Ở đích đến, RTP sẽ sắp xếp những gói tin và gửi chúng đến bộ xử lý tín hiệu số (Digital Signal Processor - DSP) ở cùng tốc độ khi chúng được gửi đi ở nguồn gọi.
RTCP (Real-Time Transport Control Protocol – Giao thức điều khiển thông tin RTP)
RTCP giám sát chất lượng của quá trình phân phối dữ liệu và cung cấp tiến trình điều khiển thông tin. RTCP cung cấp thông tin phản hồi dựa theo điều kiện của mạng:
RTCP cung cấp cơ chế cho những thiết bị liên quan trọng phiên (session) RTP trao đổi thông tin về giám sát và điều khiển phiên. RTCP giám sát chất lượng của các yếu tố như là đếm gói (packet count), mất gói, độ trễ, các biến đổi trong giá trị trễ (jitter). RTCP truyền gói bằng 1% băng thông của phiên, nhưng ở một tốc độ xác định trong ít nhất mỗi 5 giây.
Tham số thời gian Network Time Protocol (NTP) dựa vào các xung được đồng bộ. Tham số thời gian RTP tương ứng thì được tạo ngẫu nhiên và dựa vào tiến trình lấy mẫy gói dữ liệu. Cả hai NTP và RTP đều được đặt trong gói RTCP bởi người gửi dữ liệu.
Ví dụ ứng dụng RTCP
Trong suốt mỗi cuộc gọi RTP, những gói thông báo được tạo ít nhất mỗi 5 giây. Trong điều kiện mạng có chất lượng kém, một cuộc gọi có thể bị ngưng kết nối do lượng lớn gói bị mất. Khi xem xét những gói tin qua hệ thống phân tích gói, người quản trị có thể kiểm tra thông tin trong header của RTCP bao gồm số lượng gói mất, các biết đổi trong giá trị trễ (jitter)….
Giảm kích thước header với CRTP
Hình 6: Nén header RTP.
Tương ứng với nhiều số lượng giao thức cần thiết để vận chuyển thoại qua một mạng IP, thì header của gói tin có thể lớn. Dùng CRTP (Compression RTP) trên từng liên kết để tiết kiệm băng thông.
Dùng CRTP nén header IP/UDP/RTP từ 40 byte xuống còn 2 byte nếu không có checksum và từ 40 byte xuống 4 byte nếu có checksum. Nén header RTP thì rất có ích trong trường hợp kích cỡ dữ liệu của RTP là nhỏ, ví dụ như dữ liệu âm thanh sẽ được nén trong khoảng 20 và 50 byte.
CRTP làm việc dựa vào giả thiết đó là hầu hết tất cả các trường trong header IP/UDP/RTP là không thay đổi hay sự thay đổi có thể nhận biết được. Những trường không thay đổi bao gồm địa chỉ nguồn-đích của IP và số cổng nguồn-đích của UDP, cũng như những trường khác trong tất cả 3 header.
Ví dụ về CRTP: Trong môi trường thoại dựa vào gói tin thì khi giọng nói lấy mẫu được đóng khung (framing) mỗi 20 ms, phần dữ liệu 20 byte được tạo. Không có CRTP, kích thuớc gói bao gồm những thành phần sau:
- IP header (20 byte)
- UDP header (8 byte)
- RTP header (12 byte)
- Dữ liệu (20 byte)
Kích thước header bổ sung để mang dữ liệu dài gấp hai lần kích thước của dữ liệu: IP/UDP/RTP (20 + 8 + 12 = 40 byte) trong khi phần dữ liệu là 20 byte. Khi tạo những gói tin mỗi 20 ms trên liên kết có tốc độ chậm, phần header chiếm phần lớn băng thông.
Lưu ý khi dùng CRTP để nén header
Hình 7: Lưu ý khi dùng nén.
Nên cấu hình RTCP trên những cổng giao tiếp có những điều kiện sau:
- Trên những liên kết có băng tần hẹp;
- Liên kết tốc độ thấp (<2Mbps);
- Cần tiết kiệm băng thông trên những cổng giao tiếp WAN.
Nén hoạt động trên từng liên kết riêng biệt, kích hoạt nén trên cả hai đầu cuối của liên kết serial có băng thông thấp có thể tiết kiệm rất nhiều băng thông nếu như có lượng lớn lưu lượng RTP trên liên kết serial đó. Tuy nhiên, nén có thể yêu cầu phải xử lý nhiều sẽ gây ra tình trạng tiêu hao tài nguyên sẵn dùng trên các thiết bị.