Tài liệu Đề tài Nghiên cứu về: TCP/IP: LỜI MỞ ĐẦU
Hiện nay đang diễn ra một cuộc cách mạng công nghệ trên mạng điện thoại công cộng. Cuộc cách mạng về công nghệ này bắt đầu từ mong ước dùng một máy tính cá nhân để truyền các gói chứa tiếng nói đi qua một mạng chuyển mạch gói (Packet Switching Network). Đây là một ý tưởng đột phá dẫn đến truyền thoại qua giao thức Internet (IP) được gọi là Voice over IP (VoIP). Ý tưởng thì đã rõ nhưng thực hiện như thế nào? Việc chuyển từ các dịch vụ thoại chất lượng toll của PSTN sang VoIP quả là điều không tầm thường. Tuy nhiên, sức hấp dẫn của VoIP khiến cho nó được hiện thực qua từng bước phát triển vượt bậc của công nghệ và chỉ trong một vài năm gần đây.
Chúng ta chưa thể thay thế hoàn toàn mạng điện thoại chuyển mạch công cộng (PSTN) bằng công nghệ VoIP bởi còn nhiều điều khá phức tạp bên trong thế giới của các giao thức mới lấy IP làm nền tảng. Tuy nhiên, gần đây các giao thức cho báo hiệu cuộc gọi và điều khiển thiết bị đang được chuẩn hóa, chúng ta đang gần đạt đến một môi trường ...
105 trang |
Chia sẻ: hunglv | Lượt xem: 1349 | Lượt tải: 3
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Nghiên cứu về: TCP/IP, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LỜI MỞ ĐẦU
Hiện nay đang diễn ra một cuộc cách mạng công nghệ trên mạng điện thoại công cộng. Cuộc cách mạng về công nghệ này bắt đầu từ mong ước dùng một máy tính cá nhân để truyền các gói chứa tiếng nói đi qua một mạng chuyển mạch gói (Packet Switching Network). Đây là một ý tưởng đột phá dẫn đến truyền thoại qua giao thức Internet (IP) được gọi là Voice over IP (VoIP). Ý tưởng thì đã rõ nhưng thực hiện như thế nào? Việc chuyển từ các dịch vụ thoại chất lượng toll của PSTN sang VoIP quả là điều không tầm thường. Tuy nhiên, sức hấp dẫn của VoIP khiến cho nó được hiện thực qua từng bước phát triển vượt bậc của công nghệ và chỉ trong một vài năm gần đây.
Chúng ta chưa thể thay thế hoàn toàn mạng điện thoại chuyển mạch công cộng (PSTN) bằng công nghệ VoIP bởi còn nhiều điều khá phức tạp bên trong thế giới của các giao thức mới lấy IP làm nền tảng. Tuy nhiên, gần đây các giao thức cho báo hiệu cuộc gọi và điều khiển thiết bị đang được chuẩn hóa, chúng ta đang gần đạt đến một môi trường có tính liên kết hoạt động cao. Giao thức điều khiển cổng truyền thông MGCP và Megaco hiện nay đã là các tiêu chuẩn chính thức, trong khi đó các cải tiến được thừa nhận gần đây trong phiên bản 4 của H.323 đã tạo điều kiện thuận lợi khi kết hợp với các giao thức khác để tạo ra các giải pháp cho hệ thống truyền thoại hoàn chỉnh và đặc tính kết nối ngang cấp cho các mạng gói. Giao thức khởi tạo phiên (SIP) đang được xem như giao thức báo hiệu chính trong cơ cấu chuyển mạch mềm (softswitch), điều khiển gọi trong một miền (domain) và điều khiển gọi xuyên qua các ranh giới miền.
Trong luận văn này, chúng em tập trung nghiên cứu về: TCP/IP, công nghệ VoIP, giao thức H.323, giao thức SIP và ứng dụng của hệ thống IVR vào tra cứu điểm SV.
CHƯƠNG 1: GIỚI THIỆU TCP/IP
1.1 Giới thiệu về TCP/IP
Mạng đã trở thành nền tảng, nếu không muốn nói là phần quan trọng nhất trong hệ thống thông tin hiện nay. Chúng tạo nên cốt lõi trong việc chia sẻ thông tin trong các doanh nghiệp, chính phủ và các nhóm nghiên cứu khoa học. Thông tin đó có thể tồn tại dưới nhiều hình thức. Nó có thể được biểu hiện dưới dạng tài liệu, dữ liệu được xử lý bởi máy tính khác, những tập tin và thậm chí những dạng dữ liệu khác.
Đầu những năm 70, một nhóm những nhà nghiên cứu đã đưa ra một khái niệm mới: Internetworking. Những tổ chức chính phủ khác đã quan tâm đến vấn đề này như là mạng được kết nối lẫn nhau, chẳng hạn như ITU-T (tiền thân là CCITT) và ISO. Tất cả đều cố gắng định nghĩa một tập giao thức, được phân lớp trong một chuỗi được định nghĩa rõ ràng sao cho những ứng dụng có thể làm việc với những ứng dụng khác mà không cần biết đến kỹ thuật mạng hiện có và các hệ điều hành mà các ứng dụng này đang chạy trên đó.
Các giao thức mạng máy tính là những quy luật hoạt động chính thức điều khiển truyền thông mạng. Giao thức điều khiển việc truyền (TCP) và giao thức Internet (IP) chỉ là hai giao thức truyền dữ liệu trong chuỗi giao thức Internet. Chuỗi giao thức này thường được gọi là TCP/IP vì TCP và IP là hai giao thức quan trọng nhất trong chuỗi các giao thức này. TCP/IP chứa một tập các tiêu chuẩn đặc tả các máy tính trong mạng giao tiếp như thế nào và dữ liệu được định tuyến thông qua những máy tính đã được kết nối với nhau như thế nào.
TCP/IP cung cấp cho người lập trình ứng dụng hai dịch vụ chính: phân phối các gói không định hướng kết nối và vận chuyển dòng tin cậy. TCP/IP có một số các đặc điểm đặc trưng mà làm cho nó trở nên phổ biến, bao gồm:
Không phụ thuộc dạng hình học của mạng: TCP/IP được sử dụng trên các mạng bus, vòng và các mạng hình sao, trong các mạng cục bộ (LAN) cũng như các mạng diện rộng (WAN).
Không phụ thuộc phần cứng vật lý của mạng: TCP/IP có thể sử dụng Ethernet, TokenRing hay bất kỳ các thiết bị phần cứng nào.
Chuẩn giao thức mở: Các chuẩn của chuỗi giao thức TCP/IP luôn sẵn sàng thực hiện một cách độc lập trên bất kỳ hệ thống phần cứng nào của máy tính cũng như trên bất kỳ hệ điều hành nào. Sự chấp nhận rộng rãi của TCP/IP và thực tế TCP/IP luôn có sẵn trên các hệ thống từ những siêu máy tính đến những máy tính để bàn làm cho nó trở thành tập giao thức lý tưởng để thống nhất các phần cứng và phần mềm khác nhau.
Nguyên lý định địa chỉ tổng thể: Mỗi máy tính trên mạng TCP/IP có một địa chỉ xác định duy nhất nó sao cho bất kỳ thiết bị nào cho phép TCP/IP có thể giao tiếp với bất kỳ các thiết bị khác trong mạng. Mỗi gói dữ liệu được gửi qua mạng TCP/IP bao gồm một header chứa địa chỉ của máy tính đến cũng như địa chỉ của máy tính nguồn.
Sức mạnh của cơ cấu Client-Server: TCP/IP là cơ cấu cho những ứng dụng Client-Server đầy sức mạnh và bền vững hoạt động trong mạng cục bộ và mạng diện rộng.
Chuẩn giao thức ứng dụng: TCP/IP không chỉ cung cấp cho người lập trình một phương pháp để di chuyển dữ liệu quanh một mạng trong số những ứng dụng khách hàng, nó cũng cung cấp cho nhiều giao thức cấp ứng dụng thực hiện những chức năng chung như email và chuyển file.
Đối với hãng phát triển phần mềm BSD, những lập trình viên không đơn giản sử dụng TCP/IP, họ thêm một lớp trừu tượng được những người phát triển ứng dụng dùng gọi là socket. Socket tạo điều kiện thuận lợi cho những lập trình viên ứng dụng viết code cho mạng. Những lập trình viên BSD cũng thêm một vài công cụ đến hệ điều hành UNIX của họ được xây dựng trên những lệnh đã tồn tại trước trong những môi trường tính toán độc lập. Với sự phổ biến của BSD UNIX ở các trường đại học, phạm vi của Internet được kết nối ngày càng lớn mạnh. Ngày nay, Internet đã kết nối hơn hai triệu máy tính và bốn mươi triệu người trên toàn thế giới.
1.2 Khối giao thức TCP/IP
Bảy lớp trong mô hình OSI và cách mà chúng thể hiện như một khối mà lớp này xếp chồng lên lớp kia dẫn tới khái niệm khối giao thức hay đơn giản là khối. Khối giao thức chỉ đến một vài giao thức truyền thông mạng, có cả TCP/IP, bao gồm nhiều lớp phần mềm luận lý mà mỗi lớp liên kết trực tiếp với lớp trên và dưới nó. Trên cùng của khối này là lớp ứng dụng nơi mà những lập trình viên ứng dụng cung cấp. Đáy của khối thường là lớp giao tiếp với phần cứng mạng.
TCP/IP không tuân theo hoàn toàn như mô hình OSI. Mặc dù cả hai mô hình đều có mục đích là tạo điều kiện thuận lợi cho việc truyền thông giữa các mô hình và cấu tạo máy tính khác nhau, thậm chí khi những máy này chạy trên hệ điều hành khác nhau, mỗi mô hình mạng cũng tạo ra những sự thực hiện khác nhau. Trong khi mô hình OSI được điều chỉnh bởi một tổ chức định chuẩn lớn mà phải mất một thời gian dài để tạo ra và chấp nhận, TCP/IP được tạo ra bởi nhu cầu tức thời của chính phủ Mỹ. Sự phát triển của TCP/IP không quá cồng kềnh với những yêu cầu khắt khe như OSI. Đa số sự tiến triển của TCP/IP đều được thực hiện trên những nhóm nhỏ và những cá nhân qua sự bảo đảm của RFC. Quá trình tạo ra và chấp nhận cũng nhanh chóng hơn so với các thủ tục tương ứng của OSI. Điều này khiến nhiều người nghĩ rằng TCP/IP là một kiến trúc nghèo nàn. Nhưng trên thực tế, TCP/IP là một tập giao thức được sử dụng để kết nối các máy tính trên toàn thế giới nhiều hơn bất kỳ giao thức nào khác.
Mặc dù OSI và TCP/IP khác nhau, mô hình bảy lớp vẫn có ích để tham khảo khi nói về truyền dữ liệu. Kiến trúc TCP/IP chia làm 4 lớp tương đương với 7 lớp của mô hình OSI. Sự tương đương đó được thể hiện cụ thể như sau:
Hình 1.1: Sự tương đương của TCP/IP và mô hình OSI
1.2.1 Lớp ứng dụng (Application)
Lớp ứng dụng bao gồm các ứng dụng được sử dụng trong mạng. Lớp ứng dụng và lớp đại diện của mô hình OSI nằm trong lớp ứng dụng của kiến trúc TCP/IP. Ví dụ, nếu dữ liệu được truyền giữa hai chương trình ngang hàng được nén thì ứng dụng sẽ có trách nhiệm nén và giải nén. Thực ra lớp vận chuyển cũng có liên quan đến lớp ứng dụng chứ không tách ra thành một thực thể như trong mô hình OSI.
Các giao thức của ứng dụng là FTP, HTTP, SMTP, DNS, TFTP và SNMP. Giao diện giữa lớp ứng dụng và lớp vận chuyển được định nghĩa bởi số cổng và socket.
FTP (File Transfer Protocol): giao thức truyền file.
HTTP (Hypertext Trasnfer Protocol).
SMTP (Simple Mail Transfer Protocol): nghi thức truyền mail đơn giản.
DNS (Domain Name System): hệ thống tên miền.
TFTP (Trivial File Transfer Protocol): nghi thức truyền file đơn giản.
SNMP (Simple Netword Management Protocol): giao thức quản lý mạng.
1.2.2 Lớp vận chuyển (Transport)
Lớp vận chuyển cung cấp phân phối dữ liệu từ đầu cuối đến đầu cuối. Lớp vận chuyển và lớp phiên trong mô hình OSI nằm trong lớp vận chuyển của kiến trúc TCP/IP. Một socket TCP/IP là một đầu cuối của giao tiếp bao gồm một địa chỉ máy tính và một cổng đặc biệt cho máy tính đó. Nhiệm vụ của lớp vận chuyển là phân mảnh dữ liệu lớp ứng dụng để truyền đi (sender), tập hợp các segment (receiver), nó cung cấp truyền thông tin cậy, điều khiển dòng, và cơ chế truyền lại. Protocol sử dụng là TCP hoặc UDP.
TCP (Transmission Control Protocol): là protocol định hướng kết nối, thiết lập kênh truyền logic trước khi gửi dữ liệu.
UDP (User Datagram Protocol): là protocol không định hướng kết nối.
1.2.3 Lớp mạng (Internet)
Còn gọi là lớp Network hay Internetwork. Lớp này định nghĩa gói dữ liệu và xử lý định tuyến cho datagram. Datagram là một gói dữ liệu được điều khiển bởi giao thức IP. Một datdagram chứa một địa chỉ nguồn, địa chỉ đích, dữ liệu cũng như các trường điều khiển. Chức năng của lớp này tương đương với chức năng của lớp mạng trong mô hình OSI. Nó có trách nhiệm đóng gói vào mạng sẵn có từ những lớp trên cũng như xử lý địa chỉ và phân phát các datagram. IP không cung cấp tính tin cậy, điều khiển dòng và khắc phục lỗi. Những chức năng này phải được cung cấp ở lớp cao hơn. Những giao thức lớp Internet bao gồm:
IP (Internet Protocol): connectionless, tìm đường để chuyển datagram đến đích.
ICMP (Internet Control Message Protocol): cung cấp khả năng điều khiển, cung cấp một số thông điệp điều khiển để tìm lỗi trên mạng.
ARP (Address Resolution Protocol): xác định địa chỉ lớp datalink (địa chỉ MAC gồm 48 bit) cho địa chỉ IP đã biết.
RARP (Reverse Address Resolution Protocol): xác định địa chỉ mạng khi biết địa chỉ lớp datalink.
1.2.4 Lớp giao diện mạng (Network Interface)
TCP/IP không định nghĩa những kết nối vật lý cho mạng sẵn có. Thay vào đó, nó sử dụng những chuẩn đã tồn tại trước do các tổ chức ví dụ như IEEE định nghĩa RS232, Ethernet và các giao diện điện tử khác dùng trong truyền dữ liệu. Lớp này có thể hoặc không cung cấp phân phát tin cậy, có thể định hướng dòng hay định hướng gói. TCP/IP không đặc tả bất kỳ giao thức nào ở đây nhưng có thể sử dụng hầu hết các giao diện mạng có sẵn, thể hiện sự linh động của lớp IP.
Sự di chuyển dữ liệu giữa các lớp trong mạng TCP/IP được thể hiện trong hình:
Hình 1.2: Sự di chuyển dữ liệu giữa các lớp trong mô hình TCP/IP
Khi một gói được gửi, nó đến lớp vận chuyển và header của lớp vận chuyển được thêm vào. Sau đó, lớp Internet cũng thêm header của nó vào. Cuối cùng lớp Network Interface cũng thêm header của nó vào. Khi một gói dữ liệu nhận được, quá trình được tiến hành ngược lại để tạo ra dữ liệu ban đầu cho lớp ứng dụng.
1.3 Nguyên lý đánh địa chỉ IP
Một trong những đặc điểm đặc trưng của TCP/IP được miêu tả trước đây là khả năng đánh địa chỉ tổng thể. Mỗi máy tính trong mạng TCP/IP có một địa chỉ duy nhất xác định nó. Nguyên lý định địa chỉ tổng thể này mở rộng trên phạm vi Internet toàn cầu, kết nối hơn hai triệu máy tính và hàng ngàn mạng với nhau.
Trách nhiệm của IP là phải phân phát các datagram giữa các máy tính trong mạng TCP/IP, để sự phân phát đó có khả năng thực hiện, mỗi máy tính phải có một địa chỉ IP duy nhất là số gồm 32 bit. Địa chỉ IP chứa những thông tin quan trọng để phân biệt một mạng và một máy tinh cụ thể trong một mạng.
1.3.1 Các lớp mạng
Vì địa chỉ IP của máy tính xác định duy nhất không chỉ máy tính mà còn mạng chứa máy tính đó nên địa chỉ IP phải tách thành hai phần. Một phần xác định mạng (Net ID) và một phần xác định máy tính (Host ID). Sự tách biệt hai phần này không phải như nhau cho tất cả các địa chỉ IP. Lớp của địa chỉ sẽ quyết định bao nhiêu bit của địa chỉ dành cho phân biệt mạng và bao nhiêu bit dành cho phân biệt máy. Có 5 lớp địa chỉ IP mà chỉ có 3 lớp được sử dụng chính: lớp A, B, C cho các mục đích chung, lớp D và E cho các mục đích đặc biệt và dự trữ cho các mục đích sau này.
Hình sau chỉ ra định dạng của một địa chỉ IP:
Hình 1.3: Định dạng của địa chỉ IP
Không có một sự khác nhau rõ ràng nào trong các lớp địa chỉ A, B, C. Một máy tính có địa chỉ lớp A có thể giao tiếp với một máy tính có địa chỉ lớp C và một máy tính có địa chỉ lớp A có thể giao tiếp với máy tính khác cũng có địa chỉ lớp A. Bảng sau chỉ ra số mạng lớn nhất và số máy tính lớn nhất trong mạng đối với từng lớp địa chỉ.
Bảng 1.1: Định vị các lớp địa chỉ IP
Lớp mạng
Số mạng
Số các host trong một mạng
A
126
16777214
B
16382
65534
C
2097150
254
Lớp A:
Địa chỉ IP của lớp A được xác định bằng một bit 0 bậc cao nhất, 7 bit cao tiếp theo sẽ xác định mạng và 24 bit còn lại xác định máy tính.
Lớp B:
Địa chỉ IP của lớp B được xác định bằng 2 bit cao nhất là 10, 14 bit tiếp theo xác định mạng và 16 bit cuối cùng xác định máy tính.
Lớp C:
Địa chỉ IP của lớp C được xác định bằng 3 bit cao nhất là 110, 21 bit tiếp theo xác định mạng và 8 bit cuối cùng xác định máy tính.
Lớp D:
Các địa chỉ lớp D được dành cho multicasting (một loại của broadcasting nhưng trong một khu vực giới hạn và chỉ đến những máy sử dụng cùng địa chỉ lớp D).
Lớp E:
Các địa chỉ lớp E được dùng cho mục đích sử dụng sau này.
Hình 1.4: Các lớp địa chỉ IP
Không phải tất cả các định danh mạng và máy tính đều được sử dụng. Nếu so sánh bảng với sự miêu tả riêng cho từng lớp thì không phải tất cả các sự tổ hợp của các bit đều được chứa trong bảng. Chẳng hạn như đối với lớp A thì có tổng cộng 27 = 128, nhưng chỉ sử dụng 126 dùng để xác định mạng và 224 = 16777216 dùng để xác định máy tính nhưng đã bớt đi hai tổ hợp. Một vài địa chỉ đó được dùng cho những mục đích đặc biệt.
Các địa chỉ IP đặc biệt
Tất cả các phần của địa chỉ IP có tất cả các giá trị đều là 0 hay 1 đều có một ý nghĩa đặc biệt.
Tất cả các bit 0:
Nếu Host ID = 0 thì có nghĩa là máy này. Nếu Net ID = 0 thì có nghĩa là mạng này. Khi một máy muốn giao tiếp trên một mạng nhưng không biết địa chỉ IP của mạng, nó gửi một gói với Net ID = 0. Tất cả các máy khác trên mạng sẽ hiểu là mạng này. Đáp ứng của chúng sẽ chứa địa chỉ mạng được bổ sung đầy đủ mà người gửi sẽ lưu lại cho các mục đích sử dụng sau này.
Tất cả các bit 1:
Đại diện cho tất cả các mạng hay tất cả các máy tính. Ví dụ, địa chỉ sau đây có nghĩa là tất cả các máy trên mạng 128.2 (địa chỉ lớp B): 128.2.255.255. Địa chỉ này được gọi là một địa chỉ broadcast trực tiếp.
Loopback:
Mạng lớp A 127.0.0.0 được định nghĩa như mạng lặp vòng. Những địa chỉ từ mạng đó được đăng ký đến giao diện xử lý dữ liệu trong một hệ thống cục bộ và không bao giờ truy cập một mạng vật lý (giao diện lặp vòng).
Net ID
Host ID
Type of Address
Purpose
All 0
All 0
This computer
Bootstrap
Network
All 0
Network
Identify net
Network
All 1
Direted broadcast
Broadcast in specific net
All 1
All 1
Limited broadcast
broadcast inlocal net
127
Any
Loopback
Testing
Hình 1.5: Địa chỉ IP đặc biệt
1.3.2 Biểu diễn thập phân cách nhau bởi dấu chấm
Định dạng của một địa chỉ IP được miêu tả dường như rất khó khăn. Nhưng điều này sẽ được giải thoát bởi cách biểu diễn thập phân cách nhau bởi dấu chấm. Cách biểu diễn này gồm 4 số thập phân có giá trị trong khoảng từ 0 đến 255 cách nhau bởi dấu chấm. Mỗi giá trị đại diện 8 bit của địa chỉ IP. Bốn giá trị này tập hợp thành địa chỉ IP gồm 32 bit.
Địa chỉ IP được biểu diễn theo dạng thập phân như sau 166.78.4.139 được lấy làm ví dụ. Hình biểu diễn nhị phân của địa chỉ IP này.
Biểu diễn thập phân
166.78.4.139
Biểu diễn nhị phân tương ứng
10100110 01001110 00000100 10001011
Hình 1.6: Giải mã địa chỉ IP
Bit 31 là 1, vì vậy nó chỉ ra máy tính này có địa chỉ mạng lớp B hoặc C. Bit 30 là 0 chỉ ra rằng nó thuộc mạng lớp B. Miêu tả trước đây chỉ ra rằng địa chỉ mạng lớp B có 14 bit dành cho Net ID và 16 bit dành cho Host ID. Đường chia cách 2 phần nằm ở giữa hai bit 15 và 16. Có thể dịch địa chỉ này như sau: máy tính nằm trong mạng 166.78 và là host 4.139.
Những người thực hiện TCP/IP nhận ra rằng con người nên cần một phương pháp dễ hơn để truy cập những thông tin này. Vì vậy họ đưa ra một phương pháp mà một tên văn bản dễ nhớ sẽ đại diện cho địa chỉ IP. Sự thông dịch tên thành địa chỉ IP được hỗ trợ bởi một vài phương pháp mà cách đơn giản nhất là sử dụng một file ASCII với mỗi dòng của file có địa chỉ IP bên trái và tên bên phía phải. Tập tin này thường được gọi là host file.
Việc sử dụng host file chỉ được thực hiện trong một mạng nhỏ với số máy tính tương đối nhưng sự quản lý một file như vậy sẽ không thực hiện được và là không thể khi số lượng máy tính lên đến hàng ngàn như Internet hay các mạng của các tập đoàn lớn. Trong trường hợp này, một server định danh sẽ được sử dụng.
1.4 Các giao thức lớp Internet
Lớp Internet định nghĩa các datagram và xử lý định tuyến các datagram đó. IP là giao thức quan trọng nhất của chuỗi giao thức TCP/IP vì nó được sử dụng bởi tất cả các giao thức TCP/IP khác và tất cả dữ liệu phải đi qua nó. IP cũng đuợc xem là khối chính xây dựng nên Internet.
1.4.1 Giao thức IP
IP là một giao thức không định hướng kết nối, có nghĩa là không có một sự liên kết đầu cuối đến đầu cuối nào được thành lập trước khi dữ liệu được truyền. Điều này trái với giao thức định hướng kết nối trao đổi thông tin điều khiển giữa các host để thành lập kết nối trước khi dữ liệu được truyền. IP cũng không đảm bảo phân phát dữ liệu một cách tin cậy. Các gói dữ liệu có thể đến đích sai thứ tự, trùng dữ liệu hay các trường hợp khác. IP dựa trên những lớp khác như lớp vận chuyển TCP để cung cấp đặc tính tin cậy.
Đơn vị cơ bản xây dựng nên IP là các datagram. Mỗi datagram có địa chỉ nguồn và địa chỉ đích. Định tuyến dữ liệu được thực hiện ở mức datagram. Khi một datagram được định tuyến từ mạng này qua mạng khác, nó có thể chia gói dữ liệu thành nhiều phần nhỏ hơn. Quá trình này gọi là quá trình phân mảnh và cũng là nhiệm vụ của lớp IP. Phân mảnh được yêu cầu ở một số mạng vì các thành phần phần cứng tạo nên mạng có các kích thước gói lớn nhất khác nhau. Ở phía nhận, IP phải ghép các gói này lại sao cho host đích nhận được dữ liệu ban đầu.
Hình 1.7: Header của IP Datagram
IP-header gồm nhiều từ 32 bit ghép lại, tạo thành một cấu trúc nhiều trường (field) như sau:
Vers: dài 4 bit, chứa version của IP. Vùng này có giá trị mặc nhiên là 4.
HLEN (Header Length): dài 4 bit, cho biết chiều dài của header của IP Datagram tính bằng word.
Service Type: dài 8 bit, chứa các giá trị quy định mức độ ưu tiên của datagram, được gán bởi protocol lớp trên.
Total length: dài 16 bit, xác định chiều dài IP-datagram tính bằng word.
ID: dài 16 bit, dùng để đánh số các gói nhỏ (packet hay fragment) sau khi phân mảnh datagram. Nhờ ID, việc tái hợp datagram mới có thể thực hiện được.
Flag: cờ, gồm 3 trường nhỏ sau (bit đầu không sử dụng):
DF (Don’t Fragment): dài 1 bit, nếu có giá trị 1 thì datagram đó không được phép chia nhỏ
MF (More Fragment): dài 1 bit, nếu MF = 1 có nghĩa là còn có gói nhỏ đứng sau nó trong thao tác phân mảnh datagram, ngược lại MF = 0 có nghĩa rằng đây là gói cuối cùng trong một lọat các gói nhỏ được phân mảnh từ một datagram.
FO (Fragment Offset): dài 12 bit, chứa giá trị offset của gói đó trong datagram tính theo đơn vị 8 bit (1 octet). Ví dụ sau đây là việc phân mảnh datagram thành hai gói nhỏ (fragment) và cách tìm offset cho các fragment.
0
…
511
512
…
1000
Hình 1.8: Sau khi chia thành hai fragment
Fragment 0
0
…
511
FO = 0,
offset = 0*8
Fragment 1
512
…
1000
FO = 64,
offset = 64*8
Hình 1.9: Sự phân mảnh của datagram
TTL (Time To Live): dài 8 bit, là tuổi thọ của datagram do nơi gởi ấn định. Mỗi lần datagram đi qua một hop (thuật ngữ chuyên môn để chỉ thiết bị liên kết mạng như router, gateway,..) thì tuổi thọ giảm đi một đơn vị. Đến lúc nào đó TTL giảm đến zero thì router sẽ hủy bỏ.
Protocol: dài 8 bit, dùng để xác định giao thức nào đang hoạt động ở lớp Transport (TCP hay UDP).
Header checksum: Tổng kiểm tra cho vùng header.
Source IP Address: Địa chỉ IP 32 bit của host đã gửi datagram này.
Destination IP Address: Địa chỉ IP 32 bit của host đích cho datagram này.
IP Option: Các tùy chọn để kiểm tra, debug, an toàn mạng.
Nếu một datagram có kích thước 1500 byte từ mạng net 1 sang mạng net 3 thông qua mạng net 2 làm trung gian, trong đó mạng net 1 quy định kích thước gói (MTU) là 2000 byte, trong khi mạng net 2 có MTU = 512 và net 3 có MTU = 256. Như thế datagram bị phân mảnh hai lần trước khi truyền đến nơi nhận.
Padding: Nếu một tùy chọn được dùng, datagram sẽ được đệm với tất cả các byte 0 cho đến biên 32 bit cuối cùng, tức là thêm các bit 0 vào datagram để đủ số nguyên lần word.
Data: Dữ liệu chứa trong datagram được đưa đến giao thức lớp cao hơn như đã được miêu tả trong phần di chuyển dữ liệu.
1.4.2 Giao thức phân giải địa chỉ (ARP)
Hầu hết các phần cứng của mạng (các card Ethernet mà bạn cắm vào trong máy tính) không hiểu địa chỉ IP. ARP được sử dụng để ánh xạ địa chỉ IP logic và tên host mà người dùng thích sử dụng vào trong những địa chỉ vật lý mà chỉ có phần cứng của mạng sẵn có mới có thể điều khiển được. Giao thức này hoạt động bằng cách broadcast một thông điệp lên mạng cục bộ, hỏi rằng “Có máy tính nào có địa chỉ IP là xxx.xxx.xxx.xxx ở đó không?”. Nếu máy tính có địa chỉ IP được miêu tả đang theo dõi, nó gửi lại một thông điệp với địa chỉ vật lý phần cứng của nó đến nguồn. Bất kỳ máy tính khác nhận được thông điệp yêu cầu broadcast sẽ bỏ qua nó. Giao thức này chỉ hoạt động trên mạng cục bộ vì định dạng của địa chỉ mạng vật lý phụ thuộc vào phần cứng được sử dụng trong mạng. Ví dụ, nếu một mạng Ethernet được dùng, đáp ứng cho yêu cầu ARP sẽ là số 48 bit xác định duy nhất mọi thiết bị Ethernet đang tồn tại.
Định dạng của gói ARP:
Hardware address space: Đặc tả loại phần cứng, ví dụ Ethernet hay Packet Radio Net.
Protocol address space: Đặc tả loại giao thức.
Hardware address length: Đặc tả chiều dài của địa chỉ phần cứng theo byte trong gói này. Đối với IEEE 802.3 và IEEE 802.5 chiều dài này là 6.
Protocol address length: Đặc tả chiều dài của địa chỉ giao thức theo byte trong gói này. Trong IP nó là 4.
Mã hoạt động: Xét xem liệu rằng nó là một yêu cầu hay một đáp ứng ARP.
Source/target hardware address: Chứa địa chỉ phần cứng mạng vật lý. Đối với IEEE 802.3 chúng là địa chỉ 48 bit.
Source/target protocol address: Chứa địa chỉ giao thức. Đối với TCP/IP chúng là địa chỉ IP 32 bit.
Hình 1.10: Gói ARP yêu cầu/trả lời
1.5 Các giao thức lớp vận chuyển
IP có nhiệm vụ đưa các datagram từ máy này đến máy khác. Lớp vận chuyển có nhiệm vụ đưa dữ liệu đó đến chương trình hay quá trình thích hợp trên máy đích. Hai giao thức quan trọng nhất của lớp vận chuyển là UDP và TCP. UDP cung cấp phân phát datagram không định hướng kết nối. TCP cung cấp các dịch vụ định hướng dòng tin cậy với việc phát hiện và sửa lỗi đầu cuối đến đến đầu cuối.
Để dễ dàng phân phát dữ liệu đến chương trình thích hợp trên máy host, khái niệm về cổng và socket phải được sử dụng.
1.5.1 Cổng và Socket
1.5.1.1 Cổng
Mỗi quá trình muốn giao tiếp với một quá trình khác phải xác nhận chính nó với chuỗi giao thức TCP/IP bởi một hoặc nhiều cổng. Một cổng là một số 16 bit, được sử dụng bởi giao thức host-to-host để xác định giao thức lớp cao nào hay chương trình ứng dụng nào (quá trình) nó phải phân phát các thông điệp đến đó. Có hai loại cổng:
Cổng đã biết: các cổng này dành cho các Sever chuẩn, ví dụ như Telnet sử dụng cổng 23. Cổng đã biết được đánh số từ 1 đến 1023 (đến năm 1992, các cổng từ khoảng 255 đến 1023 được sử dụng cho các server dùng UNIX).
Cổng tạm thời: các client không cần các cổng đã biết vì chúng khởi tạo giao tiếp với những server và cổng mà chúng đang sử dụng được chứa trong datagram UDP được gửi đến server. Mỗi quá trình khách được xác định một cổng miễn là nó cần bởi host mà nó đang chạy trên đó. Cổng tạm thời có giá trị lớn hơn 1023, thường trong khoảng từ 1024 đến 65535.
1.5.1.2 Socket
Giao diện socket là một trong số các giao diện lập trình ứng dụng (API) để giao tiếp với những giao thức. Được thiết kế như một giao diện lập trình truyền thông, nó được giới thiệu lần đầu tiên bởi hệ thống 4.2 BSD UNIX.
Một sự kết hợp địa chỉ IP và cổng tạo nên sự kết nối mạng duy nhất trong một quá trình.
1.5.2 Giao thức gói người sử dụng (UDP)
UDP cho phép dữ liệu truyền qua mạng với thời gian tiền xử lý cực tiểu. Thời gian tiền xử lý của UDP rất thấp vì nó chỉ cung cấp phân phát dữ liệu không tin cậy. Không có phương pháp nào trong giao thức xác định rằng dữ liệu đã đến đích một cách chính xác như khi nó được gửi. Dữ liệu có thể bị mất, bị trùng hoặc bị sai thứ tự.
Tuy nhiên, những giới hạn này không làm cho UDP trở nên kém hiệu quả. Thời gian tiền xử lý ít trong truyền UDP (vì không phải thành lập một kết nối) và thiếu tính tin cậy đã làm cho UDP trở nên rất hiệu quả. UDP có thể được sử dụng khi người lập trình ứng dụng đặt việc xử lý lỗi vào trong ứng dụng. Ví dụ, giả sử rằng bạn có một mối quan hệ Client-Server đơn giản, client gửi một phần nhỏ đến server và mong đợi một đáp ứng dưới dạng một phần dữ liệu nhỏ sau hai giây. Nếu client không nhận được đáp ứng sau hai giây, có thể dữ liệu đã không được đưa đến server một cách thành công và vì vậy nó có thể truyền lại yêu cầu. Nếu client nhận được đáp ứng từ server, điều đó có thể được sử dụng như một sự chấp nhận rằng dữ liệu đã đến đích. Việc định nghĩa UDP là một giải pháp hay của nhóm đề án ARPA nhằm tiết kiệm thời gian truyền thông. Nếu dịch vụ nào đó chỉ cần gởi đi một gói là đủ, ví dụ DNS nếu dùng TCP thì tốn rất nhiếu thời gian. Đôi khi thời gian dành cho việc hand shaking còn lớn hơn thời gian truyền gói đó. Do vậy trong lập trình nếu thấy rằng dữ liệu có thể chia thành những gói độc lập nhau thì nên mở UDP port thay vì TCP port. Xét thông điệp UDP sau:
Hình 1.11: Datagram UDP
Datagram UDP có header 16 byte:
Source Port: chỉ ra cổng để gửi quá trình. Nó chính là cổng mà đáp ứng nên định địa chỉ đến đó.
Destination port: đặc tả cổng của quá trình đích trên máy đích.
Length: là chiều dài theo byte của datagram UDP có chứa cả header.
Checksum: chứa các thông tin sửa lỗi.
Các ứng dụng chuẩn sử dụng UDP bao gồm:
Giao thức chuyển tập tin thông thường (TFTP).
Server định danh dùng hệ thống tên miền (DNS).
Quá trình gọi từ xa (RPC), sử dụng bởi hệ thống file của mạng.
Giao thức quản lý mạng đơn giản (SNMP).
Giao thức truy cập thư mục thường (LDAP).
1.5.3 Giao thức điều khiển việc truyền (TCP)
TCP xác nhận rằng dữ liệu được truyền đến theo thứ tự và không bị ngắt. Cùng với ưu điểm này là khoảng thời gian tiền xử lý quá lâu của việc tạo ra và giữ các kết nối. TCP cung cấp truyền thông tin cậy, theo các dòng byte có định hướng kết nối. Tính tin cậy của TCP xuất phát từ việc chứa một checksum sửa lỗi trong mỗi gói dữ liệu được truyền. Ở phía nhận, một checksum được tạo ra và so sánh với checksum trong header của gói dữ liệu. Nếu các checksum không phù hợp thì bên nhận thông báo cho bên gửi và dữ liệu được truyền lại một cách tự động. Những người lập trình ứng dụng không quan tâm đến điều này vì các lớp dưới đã thực hiện điều đó. TCP được xem là có định hướng kết nối vì hai hệ thống cuối của quá trình giao tiếp trao đổi một cuộc hội thoại thương lượng trước khi việc truyền dữ liệu có thể bắt đầu. Việc bắt tay này bảo đảm với người gửi rằng người nhận đang rảnh và sẵng sàng nhận dữ liệu. Xét một thông điệp TCP:
Hình 1.12: Segment TCP
Các trường cấu trúc được mô tả như sau:
Source Port: cổng nguồn 16 bit, được sử dụng bởi nơi nhận để đáp lại.
Destination Port: cổng đến 16 bit.
Sequence number: chứa vị trí byte đầu tiên của segment trong luồng dữ liệu (segment đồng nghĩa với frame và packet).
ACK number: cho biết số lượng byte đã nhận được.
Data offset: khoảng cách bỏ qua tính từ segment đến bắt đầu dữ liệu (tính bằng đơn vị word), nó chỉ ra nơi nào dữ liệu bắt đầu.
Reset: không dùng.
Các vùng cờ (dài 1 bit):
SYN = 1 : nếu có yêu cầu thiết lập kết nối.
ACK = 1: nếu ACK number hợp lệ.
PSH = 1 : yêu cầu đưa tức thời dữ liệu lên lớp application.
RST = 1: thiết lập lại kết nối.
FIN = 1: không có dữ liệu nào từ phía gửi.
Window: lượng buffer cấp cho nút này.
Checksum: tổng kiểm tra.
TCP thích hợp cho các ứng dụng mà ở đó cần có sự kiểm soát hoạt động lẫn nhau giữa hai process ở hai đầu truyền tin .Cũng vì lẽ đó mà các dịch vụ Telnet, FTP, SMTP… cần phải dựa trên TCP trong khi DNS thì không cần đến TCP.
TCP là giao thức fullduplex, hoạt động theo kiểu hướng kết nối. Nó cung cấp các kết nối data giữa các application trên mạng và có trách nhiệm quản lý segment (gói dữ liệu) đến lớp IP (lớp Internetwork) giao cho IP tiếp tục truyền đi. Khi nhận, TCP nhận dữ liệu đến từ lớp IP, sau đó phân tích segment để biết dữ liệu được gửi cho application nào để chuyển giao cho đúng.
Chú ý ở mô hình OSI, lớp Transport không chuyển trực tiếp các segment cho Application như TCP mà chỉ chuyển giao cho lớp Session. Đến lượt lớp Session mới có trách nhiệm setup và quản lý các kết nối application to application. Trong khi đó thì TCP đảm nhiệm luôn kết nối. TCP cung cấp những thuận lợi sau cho những ứng dụng sử dụng nó:
Truyền dữ liệu dòng.
Tính tin cậy.
Điều khiển dòng.
Chồng kênh.
Kết nối luận lý.
Truyền song công.
1.6 Mô hình Client/Server
Các giao thức lớp ứng dụng sử dụng UDP hay TCP cho các cơ chế vận chuyển, cần lưu ý rằng UDP là giao thức không tin cậy và không cung cấp điều khiển dòng. Chính vì vậy trong trường hợp này ứng dụng phải cung cấp quá trình khắc phục lỗi và điều khiển dòng riêng cho nó. Thường dễ xây dựng các ứng dụng trên TCP hơn. TCP là một giao thức định hướng kết nối tin cậy. Đa số các giao thức ứng dụng sử dụng TCP nhưng cũng có các ứng dụng dùng UDP để cung cấp hiệu suất tốt hơn qua việc giảm thời gian tiền xử lý của giao thức. Hầu hết chúng đều sử dụng mô hình tương tác Client/Server.
Trong mô hình này, một server là một ứng dụng cung cấp dịch vụ đến những người sử dụng Internet, một client là một yêu cầu cho dịch vụ. Một ứng dụng bao gồm cả hai phần client và server có thể chạy trên cùng hệ điều hành hay khác. Người sử dụng thường đòi hỏi phần client của ứng dụng thiết lập một yêu cầu đến một dịch vụ đặc biệt và gửi đến phần server của ứng dụng, sử dụng TCP/IP như một phương tiện vận chuyển. Server là một chương trình nhận yêu cầu, thực hiện các dịch vụ được yêu cầu và gửi kết quả trong đáp ứng lại. Một server có thể làm việc với nhiều yêu cầu tại cùng một thời điểm.
Hình 1.13: Mô hình Client/Server của các ứng dụng
Một số server chờ các yêu cầu tại một cổng đã biết trước để cho các client biết socket IP nào chúng phải gửi trực tiếp yêu cầu đến đó. Client sử dụng một cổng tùy ý để giao tiếp. Client muốn giao tiếp với một server mà server đó không sử dụng cổng đã biết trước thì phải sử dụng một cơ chế khác để biết cổng nào mà chúng phải định địa chỉ để gửi yêu cầu đến đó. Cơ chế này có thể sử dụng dịch vụ đăng ký như Portmap, sử dụng một cổng đã biết.
CHƯƠNG 2: GIỚI THIỆU CÔNG NGHỆ VOIP
2.1 Tổng quan về VoIP
Trong những bước phát triển của ngành viễn thông những năm gần đây, điện thoại IP được đánh giá là một bước tiến quan trọng về công nghệ. Hiện nay điện thoại IP đang là một mối quan tâm lớn trong bối cảnh phát triển mạnh mẽ của ngành viễn thông.
Dịch vụ điện thoại IP được xây dựng trên công nghệ VoIP. Đây là một công nghệ rất mới nhưng thu hút được rất nhiều sự quan tâm của các nhà khai thác và nhà sản xuất. VoIP được đánh giá là một bước đột phá trong công nghệ, nó sẽ là cơ sở để xây dựng một mạng tích hợp thực sự giữa thoại và số liệu. Đây là một hướng phát triển tất yếu của mạng viễn thông.
Do các ưu điểm giá thành rẻ và có nhiều dịch vụ mở rộng, điện thoại IP đã và đang tạo ra một thị trường rộng lớn gồm mọi đối tượng sử dụng gồm các thuê bao, các doanh nghiệp, các tổ chức và cơ quan nhà nước.
Để hiểu vấn đề này, chúng ta xem xét hệ thống điện thoại truyền thống, điển hình là PSTN (Public Switching Telephone Network: Mạng thoại chuyển mạch công cộng). Đó là kiểu mạng chuyển mạch kênh SCN (Switching Circuit Network) và được phát triển lên từ mạng analog, nghĩa là để thiết lập một cuộc gọi, cần phải có một kênh truyền riêng và giữ kênh truyền cho đến chừng nào cuộc nói chuyện kết thúc. Kiểu truyền thông như vậy không tận dụng một cách có hiệu quả băng thông hiện có, công suất giới hạn là 64kbit/s/kênh và thực hiện 30 cuộc điện thoại trên một đường E1.
Hình 2.1: Lưu lượng thoại IP quốc tế
Vậy VoIP khác với hệ thống điện thoại truyền thống thế nào? Tiếng nói thay vì được truyền qua mạng chuyển mạch kênh, thì lại được truyền qua mạng chuyển mạch gói phát triển lên từ mạng số, điển hình là mạng IP. Tiếng nói được số hoá, đóng gói, rồi được truyền đi như là các gói tin thông thường được truyền trên mạng IP. Dung lượng truyền dẫn được tất cả các thông tin chia sẻ và bằng cách đó băng thông được sử dụng có hiệu quả hơn mà không cần phải cung cấp cho từng kênh riêng lẻ. Mỗi kênh hoặc mỗi đường trung kế cung cấp nhiều khả năng ứng dụng như số liệu, thoại, fax và hội nghị video. Dễ dàng thấy công nghệ thoại này ưu điểm hơn hẳn công nghệ thoại truyền thống ở chỗ nó tận dụng được triệt để tài nguyên hệ thống, dẫn đến một điều chắc chắn là chi phí cho cuộc gọi được giảm đáng kể, đặc biệt là những cuộc gọi ở khoảng cách địa lý rất xa hiện nay vẫn còn quá đắt đỏ trong mạng điện thoại chuyển mạch kênh.
Nhưng như vậy không phải là điều dễ dàng. Ta biết rằng thoại là một ứng dụng mang tính thời gian thực, nghĩa là yêu cầu dòng tiếng nói phải được truyền đi tới phía nhận một cách gần như tức thì. Trong mạng chuyển mạch kênh điều đó là đơn giản vì mỗi cuộc thoại không phải chia sẻ với các ứng dụng khác, đường truyền nói chung luôn được đảm bảo thông giữa hai đầu dây, hiếm khi xảy ra những trục trặc như tắc nghẽn hay bị mất thông tin. Còn với mạng chuyển mạch gói như IP thì sao? Mạng IP được xem như là mạng truyền số liệu, nghĩa là thông tin dữ liệu tới đích không có yêu cầu về mặt thời gian thực. Vả lại trên mạng IP, do đường truyền được chia sẻ bởi nhiều ứng dụng, hoặc bản thân các gói tin tiếng nói lại đi theo nhiều con đường khác nhau tới đích, tình trạng tắc nghẽn, trễ, mất dữ liệu thường xuyên xảy ra. Những điều đó nếu không được giải quyết tốt sẽ gây ảnh hưởng rất lớn đến chất lượng tiếng nói nhận được. Đây là vấn đề hết sức quan trọng trong công nghệ VoIP.
Ngoài ra mạng IP và mạng chuyển mạch kênh còn có thể giao tiếp với nhau thông qua Gateway, cho phép một đầu cuối ở mạng này có thể thoại với một đầu cuối của mạng kia (hình 2.2), mà vẫn trong suốt đối với người sử dụng, sự phát triển này đem lại khả năng tích hợp nhiều dịch vụ của hai loại mạng với nhau.
Hình 2.2: Các Terminal của mạng IP có thể giao tiếp với các Telephone trong mạng SCN thông qua Gateway.
2.2 Lợi ích của VoIP
Các lợi ích quan trọng nhất do VoIP mang lại là:
Giảm cước phí truyền thông. Đặc biệt là các cuộc gọi đường dài cũng như tận dụng hiệu quả hơn tài nguyên giải thông đường truyền. Đây là yếu tố quan trọng nhất thúc đẩy sự phát triển của công nghệ VoIP.
Hợp nhất hóa. Hệ thống mạng chuyển mạch kênh rất phức tạp, cần phải có một đội ngũ nhân viên vận hành và giám sát hoạt động của nó. Với một cơ sở hạ tầng tích hợp các phương thức truyền thông cho phép hệ thống được chuẩn hóa tốt hơn, hoạt động hiệu quả hơn và giảm tổng số thiết bị, nhân lực cần thiết. Điều này cũng làm giảm thiểu sai sót trên hệ thống hiện thời.
Sử dụng công nghệ thoại trên IP đem lại nhiều lợi ích thiết thực cho các nhà truyền tải:
Triệt và nén im lặng:
Được sử dụng khi có khoảng nghỉ ngơi trong cuộc nói chuyện. Khoảng nghỉ này có thể lên tới 50-60% một cuộc gọi. Vì thế, ta có thể tiết kiệm được giải thông tiêu tốn, nhất là với hội thoại nhiều người. Không giống như mạng chuyển mạch kênh, VoIP triệt im lặng qua các liên kết toàn cầu tại các điểm đầu cuối. Mạng IP thích hợp cho việc ghép kênh, giảm bớt giải thông tiêu thụ toàn mạng. Sự triệt im lặng và bù nén làm cũng tăng hiệu quả sử dụng mạng.
Chia sẻ thuận lợi:
Đặc trưng của mạng IP là chia sẻ tài nguyên mạng. Các kênh truyền thông không được tạo ra cố định và riêng biệt như trong mạng chuyển mạch kênh, mà nó được dùng chung cho nhiều ứng dụng khác.
Các dịch vụ tiên tiến:
Tạo thuận lợi cho việc triển khai và phát triển các dịch vụ mới trong môi trường mạng IP cho các ứng dụng truyền thống. Đây là ưu thế do công nghệ mới mang lại.
Tách biệt thoại và điều khiển luồng:
Trong thoại truyền thống, luồng báo hiệu truyền tải trên mạng tách biệt với luồng thông tin truyền. Ta phải duyệt tất cả các chuyển mạch trung gian để thiết lập kênh truyền. Trong khi đó, việc gửi gói tin trên mạng không yêu cầu thiết lập, điều khiển cuộc gọi. Ta có thể tập trung trên chức năng cuộc gọi.
2.3 Những thách thức cho VoIP
Các ưu thế của VoIP thật rõ ràng, việc phát triển chỉ là vấn đề thời gian. Tuy nhiên, công nghệ này cũng phải đối mặt với nhiều thách thức:
Thiếu sự bảo đảm về chất lượng dịch vụ (QoS).
Thiếu giao thức chuẩn.
Tính tương tác giữa công nghệ mới với công nghệ truyền thống và các dịch vụ.
Thiếu giải thông cho mạng.
Độ tin cậy mạng.
Với thoại ta phải đạt được những chỉ tiêu cần thiết bao gồm giảm thiểu các cuộc gọi bị từ chối, trễ trên mạng, mất gói, và đứt liên kết. Tuy nhiên, mạng IP không có cơ chế nào bảo đảm các vấn đề này. Đồng thời, ta cũng phải giải quyết tình trạng tắc nghẽn và quá nhiều người sử dụng cùng lúc đối với mạng IP.
Quá trình điều khiển cuộc gọi phải trong suốt đối với người sử dụng. Người dùng không cần biết kỹ thuật nào được sử dụng để thực hiện dịch vụ.
Cung cấp các cơ chế quản lý hệ thống, an toàn, địa chỉ hóa và thanh toán. Tốt nhất là ta hợp nhất được với các hệ thống hỗ trợ hoạt động PSTN.
Trong tương lai, truyền thông sẽ là sự kết hợp giữa kỹ thuật chuyển mạch kênh truyền thống với công nghệ chuyển mạch gói qua mạng IP. Sự hội tụ của hai kiến trúc mạng hoàn toàn khác biệt nhau này là điều tất yếu, sẽ diễn ra sớm hay muộn còn tùy thuộc vào nhiều nhân tố, nhưng có hai yếu tố quan trọng nhất là:
Giao thức chuẩn hóa.
Các chính sách liên mạng phù hợp.
Từ các yếu tố này, các tổ chức viễn thông, các nhà sản xuất phải thực sự thống nhất với nhau về các giao thức chuẩn, bao gồm chuẩn báo hiệu cuộc gọi, mã hoá, chuẩn truyền đa phương thức và tín hiệu. Sự chấp nhận các chuẩn này sẽ cho phép nhiều hãng có thể cùng chung sống và hoạt động được với nhau, đảm bảo tính tương thích giữa các sản phẩm. Hiện tại, đối với VoIP, một số giao thức chuẩn được các tổ chức quốc tế công nhận được mô tả ở bảng 2.1.
Bảng 2.1 Một số giao thức chuẩn
Chuẩn
Tham chiếu
H.323
Do ITU_T (International Telecommunications Union Telecommunications StandardizationSector) đề xuất, là chuẩn được chấp nhận về một hệ thống truyền thông đa phương thức dựa trên mạng chuyển mạch gói, trong đó nó định nghĩa H.225 cho chức năng báo hiệu cuộc gọi, H.245 cho thỏa thuận các thông số cần thiết để trao đổi như các bộ CODEC, kênh truyền.
SIP
SIP (Session Initiation Protocol) là giao thức báo hiệu khởi đầu, do IETF (Internet Engineering Task Force: Nhóm đặc trách về kỹ thuật Internet) đưa ra. SIP là chuẩn đề cử về một giao thức báo hiệu cuộc gọi.
MGCP
MGCP (Media Gateway Control Protocol) là giao thức điều khiển Gateway do IETF đề xuất. Đây là chuẩn đề cử cho việc điều khiển Gateway.
CHƯƠNG 3: GIAO THỨC H.323
3.1 Giới thiệu H.323
H.323 là một chuẩn quốc tế về hội thoại trên mạng được đưa ra bởi hiệp hội viễn thông quốc tế ITU (International Telecommunication Union). Chuẩn H.323 của ITU xác định các thành phần, các giao thức, các thủ tục cho phép cung cấp dịch vụ truyền dữ liệu đa phương tiện (multimedia) như audio, video, data thời gian thực qua mạng chuyển mạch gói (mạng IP) mà không quan tâm đến chất lượng dịch vụ. H.323 nằm trong bộ các khuyến nghị H.323 cung cấp các dịch vụ truyền dữ liệu đa phương tiện qua các loại mạng khác nhau. Một trong các ứng dụng của H.323 chính là dịch vụ điện thoại IP. Đến nay, H.323 đã phát triển thông qua bốn phiên bản. Phiên bản thứ nhất được thông qua vào năm 1996, phiên bản thứ hai được thông qua vào năm 1998, và các phần tử phiên bản thứ 3, phiên bản mới lấp các lỗ hổng liên quan đến sức mạnh của cấu trúc. Hiện nay hầu hết các hiện thực vẫn còn xoay quanh phiên bản thứ hai. Ứng dụng vào chuẩn này rất rộng bao gồm cả các thiết bị hoạt động độc lập cũng như ứng dụng truyền thông nhúng trong môi trường máy tính cá nhân, có thể áp dụng cho đàm thoại điểm - điểm cũng như cho truyền thông hội nghị. H.323 còn bao gồm cả chức năng điều khiển cuộc gọi, quản lí thông tin đa phương tiện và quản lí băng thông, đồng thời còn cung cấp giao diện giữa mạng LAN và các mạng khác.
3.2 Cấu hình mạng theo chuẩn H.323
Mạng H.323 dựa trên cơ sở mạng IP cung cấp các dịch vụ truyền dữ liệu đa phương tiện thời gian thực (trong đó có dịch vụ thoại IP), hoạt động theo chuẩn H.323. Cấu hình của mạng H.323 có thể bao gồm các thành phần cơ bản như trên hình 3.1
Hình 3.1: Các thành phần trong mạng H323
Giao thức báo hiệu H.225 phục vụ trong quá trình thiết lập và hủy bỏ cuộc gọi.
Giao thức H.225 RAS (Registration/Admision/Status) thực hiện các chức năng đăng kí, thu nhận... với gatekeeper.
Giao thức RTP/RCTP để truyền và kết hợp các gói tin audio, video...
Một đầu cuối H.323 cũng có thể được trang bị thêm các tính năng như:
Mã hoá và giải mã các tín hiệu audio, video.
Hỗ trợ giao thức T120 phục vụ cho việc trao đổi thông tin số liệu (data).
Tương thích với MCU để hỗ trợ các liên kết đa điểm
Hình 3.2: Các thiết bị đầu cuối H.323
3.2.1 Gatekeeper
Gatekeeper là một thành phần quan trọng trong mạng H.323, nó được xem như bộ não của mạng. Gatekeeper hoạt động như một bộ chuyển mạch ảo. Gatekeeper có các chức năng như đánh địa chỉ; cho phép và xác nhận các đầu cuối H323, các gateway; quản lí giải thông; tính cước cuộc gọi; ngoài ra nó còn có thể cung cấp khả năng định tuyến cuộc gọi. Gatekeeper quản lý giải thông nhờ khả năng cho phép hay không cho phép các cuộc gọi xảy ra. Khi số cuộc gọi đã vượt qua một ngưỡng nào đó thì nó sẽ từ chối tất cả các cuộc gọi khác. Ngoài ra gatekeeper còn có thể cung cấp khả năng định tuyến báo hiệu.
Các chức năng của một gatekeeper được phân biệt làm 2 loại là:
Các chức năng bắt buộc: Phiên dịch địa chỉ; điều khiển truy cập; điều khiển độ rộng băng tần; điều khiển vùng.
Các chức năng không bắt buộc: Điều khiển báo hiệu cuộc gọi; hạn chế truy cập; giám sát độ rộng băng tần; giám sát cuộc gọi.
3.2.2 Gateway
Nhiệm vụ của gateway là thực hiện việc kết nối gữa 2 mạng khác nhau. H.323 gateway cung cấp khả năng kết nối giữa 1 mạng H.323 và một mạng khác (không phải H.323). Ví dụ như một gateway có thể kết nối và cung cấp khả năng truyền tin giữa một đầu cuối H.323 và mạng chuyển mạch kênh (bao gồm tất cả các loại mạng chuyển mạch điện thoại chẳng hạn PSTN). Việc kết nối này được thực hiện nhờ chức năng chuyển đổi giao thức trong quá trình thiết lập, giải phóng cuộc gọi và chức năng biến đổi khuôn dạng dữ liệu giữa hai mạng khác nhau của gateway. Như vậy đối với kết nối giữa hai thiết bị đầu cuối H.323 thì không cần thiết phải có gateway, nhưng đối với cuộc gọi có sự tham gia của mạng chuyển mạch kênh thì gateway là bắt buộc phải có.
Hình 3.3: Các cấu hình cơ sở của Gateway
Gateway khi hoạt động sẽ có đặc điểm của một thiết bị đầu cuối H.323 hoặc một MCU trong mạng LAN và có đặc điểm của một thiết bị đầu cuối trong SCN hoặc một MCU trong SCN. Vì vậy ta có 4 cấu hình cơ sở của gateway được thể hiện trên hình 3.3. Mỗi gateway có thể có tổ hợp của các cấu hình cơ sở hoặc có thể gồm cả 4 cấu hình này.
MCU (Multipoint Control Unit)
MCU là một điểm cuối (Endpoint) trong mạng, nó cung cấp khả năng nhiều thiết bị đầu cuối, gateway cùng tham gia vào một liên kết đa điểm (multipoint conference). Nó bao gồm một MC (Multipoimt Controller) bắt buộc phải có và một MP (Multipoint Process) có thể có hoặc không. Nhiệm vụ của MC là điều tiết khả năng audio, video, data giữa các thiết bị đầu cuối theo giao thức H.245. Nó cũng điều khiển các tài nguyên của hội thoại bằng việc xác định dòng audio, video, data nào cần được gửi đến các đầu cuối. Tuy nhiên, MC không thao tác trực tiếp trên các dòng dữ liệu mà nhiệm vụ này được giao cho MP. MP sẽ thực hiện việc kết hợp, chuyển đổi, xử lí các bít dữ liệu.
Data
Điều khiển báo hiệu
Audio/Video
Đăng ký
T120
H225 Call Signalling
H.245
RTP/RTCP
H.225 RAS
TCP
UDP
Tầng mạng
Tầng liên kết dữ liệu
Tầng vật lý
Hình 3.4: Kiến trúc phân tầng giao thức H323
3.2.3 Giao thức H.225 RAS ( Registration/Admission/Status )
Các bản tin H.225 RAS được dùng để trao đổi giữa các điểm cuối (các đầu cuối, các gateway ) và gatekeeper cho các chức năng như: tìm gatekeeper, đăng kí, quản lí giải thông...
Tìm gatekeeper: Là quá trình điểm cuối tìm một gatekeeper để nó có thể đăng kí.
Đăng kí: Để tham gia vào một miền do gatekeeper quản lí, các điểm cuối phải đăng kí với gatekeeper và thông báo địa chỉ giao vận và các địa chỉ hình thức của nó (trong hệ thống có gatekeeper thì địa chỉ hình thức chính là số được quay).
Định vị các điểm cuối: Là tiến trình tìm địa chỉ giao vận cho một điểm cuối khi biết địa chỉ hình thức của nó (thông qua gatekeeper). Mỗi khi có cuộc gọi, gatekeeper nhận được địa chỉ hình thức của phía bị gọi, nó phải thực hiện thủ tục này để xác định được địa chỉ dùng để truyền tin của bị gọi.
Các điều khiển khác: Giao thức RAS còn được dùng trong các cơ chế điều khiển khác như điều khiển thu nhận để hạn chế số điểm cuối tham gia vào miền, điều khiển giải thông, điều khiển giải phóng khỏi gatekeeper. Các bản tin H.225 RAS được truyền trên kênh RAS không tin cậy vì vậy chúng được tải đi trong gói tin UDP.
3.2.4 Giao thức báo hiệu cuộc gọi H.225
Giao thức H.225 dùng để thiết lập liên kết giữa các điểm cuối H.323 (các đầu cuối, các Gateway), qua liên kết đó các dữ liệu thời gian thực sẽ được truyền đi. Báo hiệu cuộc gọi ở mạng H.323 là trao đổi các bản tin của giao thức H.225 qua một kênh báo hiệu tin cậy. Do yêu cầu tin cậy của báo hiệu nên các thông báo của H.225 sẽ được truyền đi trong gói tin TCP.
Quá trình báo hiệu của cuộc gọi được bắt đầu bởi bản tin SETUP được gửi đi trên kênh báo hiệu tin cậy H.225.0. Theo sau bản tin này sẽ là chuỗi các bản tin phục vụ cho quá trình thiết lập cuộc gọi với trình tự dựa trên khuyến nghị H.225 mà đầu tiên là bản tin yêu cầu giám sát bắt buộc. Yêu cầu này cùng với những bản tin sau đó liên quan đến quá trình khai báo/tìm kiếm giữa đầu cuối và gatekeeper sẽ được truyền đi trên kênh không tin cậy RAS (kênh truyền thông tin về khai báo, giám sát và trạng thái). Quá trình này kết thúc khi thiết bị đầu cuối nhận được trong bản tin CONNECT địa chỉ chuyển tải an toàn mà trên đó sẽ gửi đi các bản tin điều khiển H.245. Bản tin báo hiệu H.225.0 sẽ không bị phân đoạn khi đi qua các PDU (Protocol Datagram Unit), còn những bản tin được truyền đi trên kênh RAS là những bản tin không chuẩn hoá.
Khi không có gatekeeper trong mạng thì các bản tin H.225 sẽ được trao đổi trực tiếp giữa các điểm cuối. Nếu có gatekeeper trong mạng thì gatekeeper sẽ quyết định việc trao đổi các bản tin H.225 giữa các điểm cuối là trực tiếp hay phải thông qua gatekeeper.
Trong phần sau khi nghiên cứu về xử lí cuộc gọi sẽ nói rõ hơn về giao thức báo hiệu cuộc gọi H.225.
3.2.5 Giao thức điều khiển cuộc gọi H.245
Giao thức điều khiển H.245 dùng để thực hiện việc giám sát các hoạt động của các thực thể H.323 bao gồm: trao đổi khả năng các điểm cuối; đóng mở kênh logic; điều khiển luồng; quyết định chủ tớ; và các lệnh và chỉ thị khác. Kênh H.245 được thiết lập giữa hai điểm cuối, một điểm cuối với MC, hoặc một điểm cuối với gatekeeper. Các điểm cuối chỉ thiết lập một kênh H.245 duy nhất cho mỗi cuộc gọi mà nó tham gia.
Trao đổi khả năng: Trước khi tiến hành cuộc gọi đa phương tiện, mỗi đầu cuối phải biết được khả năng nhận và giải mã tín hiệu của đầu cuối kia. Biết được khả năng nhận của đầu cuối nhận, đầu cuối truyền sẽ giới hạn nội dung của thông tin mà nó truyền đi, ngược lại, thông báo khả năng truyền nó sẽ cho phép đầu cuối nhận lựa chọn chế độ thu phù hợp. Tập hợp các khả năng của đầu cuối cho nhiều luồng thông tin có thể được truyền đi đồng thời và đầu cuối có thể khai báo lại tập hợp các khả năng của nó bất kỳ lúc nào. Tập hợp các khả năng của mỗi đầu cuối được cung cấp trong bản tin H.245 TerminalCapabilitySet.
Báo hiệu kênh logic: Một kênh logic là một kênh mang thông tin từ điểm cuối này tới điểm cuối khác (trong trường hợp hội thoại điểm – điểm) hoặc đến nhiều điểm cuối khác (trong trường hợp hội thoại điểm - đa điểm). H.245 cung cấp các bản tin để đóng mở các kênh logic. Sau khi kênh logic được mở thông tin media mới được truyền đi trên các kênh này.
Xác định chủ tớ: Thủ tục này nhằm giải quyết vấn đề xung đột giữa hai điểm cuối đều có khả năng MC khi cùng tham gia vào một cuộc gọi hội nghị, hoặc giữa hai điểm cuối khi muốn mở một kênh thông tin một chiều.
3.2.6 Giao thức RTP (Real-time Transport Protocol)
Giao thức truyền thời gian thực (RTP) là một thủ tục dựa trên kỹ thuật IP tạo ra các hỗ trợ để truyền tải các dữ liệu yêu cầu thời gian thực, ví dụ như các dòng dữ liệu hình ảnh và âm thanh. Các dịch vụ cung cấp bởi RTP bao gồm các cơ chế khôi phục thời gian, phát hiện các lỗi, bảo an và xác định nội dung. RTP được thiết kế chủ yếu cho việc truyền đa đối tượng nhưng nó vẫn có thể được sử dụng để truyền cho một đối tượng. RTP có thể truyền tải một chiều như dịch vụ video theo yêu cầu cũng như các dịch vụ trao đổi qua lại như điện thoại Internet. Hoạt động của RTP được hỗ trợ bởi một thủ tục khác là RCTP để nhận các thông tin phản hồi về chất lượng truyền dẫn và các thông tin về thành phần tham dự các phiên hiện thời.
3.2.6.1 Hoạt động của giao thức
Các gói tin truyền trên mạng Internet có trễ và jitter không dự đoán được. Nhưng các ứng dụng đa phương tiện yêu cầu một thời gian thích hợp khi truyền các dữ liệu và phát lại. RTP cung cấp các cơ chế bảo đảm thời gian, số thứ tự và các cơ chế khác liên quan đến thời gian. Bằng các cơ chế này RTP cung cấp sự truyền tải dữ liệu thời gian thực giữa các đầu cuối qua mạng.
Tem thời gian (time-stamping) là thành phần thông tin quan trọng nhất trong các ứng dụng thời gian thực. Người gửi thiết lập các “tem thời gian” ngay thời điểm octet đầu tiên của gói được lấy mẫu. “Tem thời gian” tăng dần theo thời gian đối với mọi gói. Sau khi nhận được gói dữ liệu, bên thu sử dụng các “tem thời gian” này nhằm khôi phục thời gian gốc để chạy các dữ liệu này với tốc độ thích hợp. Ngoài ra, nó còn được sử dụng để đồng bộ các dòng dữ liệu khác nhau (chẳng hạn như giữa hình và tiếng). Tuy nhiên RTP không thực hiện đồng bộ mà các mức ứng dụng phía trên sẽ thực hiện sự đồng bộ này.
Bộ phận nhận dạng tải xác định kiểu định dạng của tải tin cũng như các phương cách mã hoá và nén. Từ các bộ phận định dạng này, các ứng dụng phía thu biết cách phân tích và chạy các dòng dữ liệu tải tin. Tại một thời điểm bất kỳ trong quá trình truyền tin, các bộ phát RTP chỉ có thể gửi một dạng của tải tin cho dù dạng của tải tin có thể thay đổi trong thời gian truyền (thay đổi để thích ứng với sự tắc nghẽn của mạng).
Một chức năng khác mà RTP có là xác định nguồn . Nó cho phép các ứng dụng thu biết được dữ liệu đến từ đâu.
IP header
UDP header
RTP header
RTP payload
Hình 3.5: Mã hóa gói tin RTP trong gói IP
Các cơ chế trên được thực hiện thông qua mào đầu của RTP. Cách mã hoá gói tin RTP trong gói tin IP được mô tả trên hình vẽ. RTP nằm ở phía trên UDP, sử dụng các chức năng ghép kênh và kiểm tra của UDP. UDP và TCP là hai giao thức được sử dụng chủ yếu trên Internet. TCP cung cấp các kết nối định hướng và các dòng thông tin với độ tin cậy cao trong khi UDP cung cấp các dịch vụ không liên kết và có độ tin cậy thấp giữa hai trạm chủ. Sở dĩ UDP được sử dụng làm thủ tục truyền tải cho RTP là bởi vì 2 lí do:
Thứ nhất, RTP được thiết kế chủ yếu cho việc truyền tin đa đối tượng, các kết nối có định hướng, có báo nhận không đáp ứng tốt điều này.
Thứ hai, đối với dữ liệu thời gian thực, độ tin cây không quan trọng bằng truyền đúng theo thời gian. Hơn nữa, sự tin cậy trong TCP là do cơ chế báo phát lại, không thích hợp cho RTP. Ví dụ khi mạng bị tắc nghẽn một số gói có thể mất, chất lượng dịch vụ dù thấp nhưng vẫn có thể chấp nhận được. Nếu thực hiện việc phát lại thì sẽ gây nên độ trễ rất lớn cho chất lượng thấp và gây ra sự tắc nghẽn của mạng.
Thực tế RTP được thực hiện chủ yếu trong các ứng dụng mà tại các mức ứng dụng này có các cơ chế khôi phục lại gói bị mất, điều khiển tắc nghẽn.
3.2.6.2 Giao thức RTCP (Real-time Transport Control Protocol)
RTCP (Real-time Transport Control Protocol) là giao thức hỗ trợ cho RTP cung cấp các thông tin phản hồi về chất lượng truyền dữ liệu. Các dịch vụ mà RTCP cung cấp là:
Giám sát chất lượng và điều khiển tắc nghẽn: Đây là chức năng cơ bản của RTCP. Nó cung cấp thông tin phản hồi tới một ứng dụng về chất lượng phân phối dữ liệu. Thông tin điều khiển này rất hữu ích cho các bộ phát, bộ thu và giám sát. Bộ phát có thể điều chỉnh cách thức truyền dữ liệu dựa trên các thông báo phản hồi của bộ thu. Bộ thu có thể xác định được tắc nghẽn là cục bộ, từng phần hay toàn bộ. Người quản lí mạng có thể đánh giá được hiệu suất mạng.
Xác định nguồn: Trong các gói RTP, các nguồn được xác định bởi các số ngẫu nhiên có độ dài 32bit. Các số này không thuận tiện đối với người sử dụng RTCP cung cấp thông tin nhận dạng nguồn cụ thể hơn ở dạng văn bản. Nó có thể bao gồm tên người sử dụng, số điện thoại, địa chỉ e-mail và các thông tin khác.
Đồng bộ môi trường: Các thông báo của bộ phát RTCP chứa thông tin để xác định thời gian và nhãn thời gian RTP tương ứng. Chúng có thể được sử dụng để đồng bộ giữa âm thanh với hình ảnh.
Điều chỉnh thông tin điều khiển: Các gói RTCP được gửi theo chu kỳ giữa những người tham dự. Khi số lượng người tham dự tăng lên, cần phải cân bằng giữa việc nhận thông tin điều khiển mới nhất và hạn chế lưu lượng điều khiển. Để hỗ trợ một nhóm người sử dụng lớn, RTCP phải cấm lưu lượng điều khiển rất lớn đến từ các tài nguyên khác của mạng. RTP chỉ cho phép tối đa 5% lưu lượng cho điều khiển toàn bộ lưu lượng của phiên làm việc. Điều này được thực hiện bằng cách điều chỉnh tốc độ phát của RTCP theo số lượng người tham dự.
3.2.6.3 Mã hoá/giải mã (CODEC) tín hiệu Audio
Ở bên phát, tín hiệu Audio từ microphone trước khi được truyền tiếp phải được mã hoá. Còn ở bên nhận, chúng phải được giải mã trước khi đưa đến speaker. CODEC là dịch vụ tối thiểu mà đầu cuối H.323 nào cũng phải có. Vì vậy một thiết bị đầu cuối H.323 phải được hỗ trợ tối thiểu là một chuẩn CODEC. Hiện nay đang tồn tại một số chuẩn mã hoá như sau: G.711 (mã hoá tốc độ 64kbps); G.722 (64,56,48 kbps); G.723.1 (5.3 và 6.3 kbps); G.728 (16 kbps); G.729 (8 kbps).
Bảng 3.1: So sánh các chuẩn CODEC
Voice CODEC
Tốc độ
Độ phức tạp
Chất lượng
Độ trễ
G.711
64
Thấp
Rất tốt
Cực thấp
G.726 ADPCM
40/32/24
Thấp
Tốt (40K)
Tồi (16K)
Rất thấp
G.729 CS-ACELP
8
Cao
Tốt
Thấp
G.729 A CA-ACELP
8
Vừa phải
Khá tốt
Thấp
G.723 MP-MLQ
6,4/5,3
Cao vừa phải
Tốt (6,4K)
Tồi (5,3K)
Cao
G.723.1 MP-MLQ
6,4/5,3
Cao vừa phải
Tốt (6,4K)
Tồi (5,3K)
Cao
G.728 LD-CELP
16
Rất cao
Tốt
Thấp
Việc lựa chọn thuật toán CODEC là một trong những yếu tố cơ bản để nâng cao chất lượng thoại Internet.
3.2.6.4 Mã hoá/giải mã (CODEC) tín hiệu Video
Video CODEC mã hoá tín hiệu hình ảnh từ camera để truyền dẫn và giải mã các tín hiệu video nhận được (đã được mã hoá) để hiển thị hình ảnh. Trong H.323, truyền hình ảnh có thể có hoặc không, vì vậy việc hỗ trợ video CODEC là tuỳ chọn. Tuy nhiên các đầu cuối cung cấp khả năng liên lạc hình ảnh phải được hỗ trợ giao thức mã hoá, giải mã tín hiệu video. Các giao thức hỗ trợ là H.261, H.263...
3.3 Xử lý cuộc gọi
3.3.1 Các thủ tục thực hiện trên kênh H.225 RAS
Kênh H225 RAS là một kênh logic không tin cậy được dùng để truyền tải các bản tin giữa gatekeeper và các phần tử khác trong mạng để thực hiện các thủ tục như: Tìm gatekeeper, đăng kí...
Bởi vì các bản tin RAS được truyền trên kênh không tin cậy nên các bản tin này phải được đặt một khoảng thời gian timeout và số lần phát lại khi không nhận được hồi âm. Một điểm cuối hoặc gatekeeper không thể đáp ứng lại một yêu cầu trong thời gian timeout thì nó phải trả lời bằng bản tin RIP (Request In Progress) để cho biết nó đang xử lí yêu cầu. Khi nhận được bản tin RIP, chúng phải khởi động lại timeout và số lần phát lại.
Các endpoint H.323 trong domain được điều khiển bởi một gatekeeper cần đăng ký sự hiện diện của chúng, chúng cũng phải nhận được sự cho phép khởi phát và chấp nhận các cuộc gọi vào, căn cứ theo từng cuộc gọi hay thông qua sự cấp phép trước bởi gatekeeper cho tất cả các cuộc gọi được thực hiện và nhận được trong suốt khoảng thời gian đăng ký của endpoint.
Các thông điệp RAS và các thủ tục của nó được mô tả trong khuyến nghị H.225.0 của ITU-T. Truyền thông RAS giữa các endpoint và gatekeeper được thực hiện thông qua UDP gửi đến địa chỉ IP cuar gatekeeper trên chỉ số port UDP nổi tiếng (1719). Trước khi một endpoint đăng ký với một gatekeeper, đầu tiên nó cần phải tìm gatekeeper nào mà nó đăng ký. Có nhiều phương pháp nhân công ( ví dụ một địa chỉ gatekeeper IP được cấu hình trước tại một endpoint) và các phương pháp tự động sử dụng IP multicast. Nếu gatekeeper đã được cấu hình trước trong một endpoint, thì sự đăng ký chỉ đơn giản là trao đổi các thông điệp GRQ (Gatekeeper Request) và GCF (Gatekeeper Confirm), nếu như gatekeeper đó tồn tại.
Một kịch bản hấp dẫn hơn là khi có nhiều gatekeeper đáp ứng và chỉ ra rằng chúng có thể đóng vai trò là một gatekeeper cua endpoint yêu cầu. Như vậy một quyết định phải được đưa ra bởi endpoint để đăng ký với gatekeeper nào và tác động như thế nào trong các tình huống hỏng hóc. Nếu không có đáp ứng nào, điều này đồng nghĩa với chẳng có gatekeeper nào đang hoạt động trong domain này, và các thủ tục báo hiệu trực tiếp được diễn ra tiếp teo cho thiết lập cuộc gọi và điều khiển kênh luận lý mà không cần dùng kênh RAS.
3.3.1.1 Tìm gatekeeper
Thủ tục này được thực hiện khi một điểm cuối muốn tìm cho nó một gatekeeper để đăng kí. Thủ tục này phải được thực hiện ngay khi điểm cuối đó hoạt động. Có hai phương thức tìm gatekeeper:
Trong cấu hình của điểm cuối có địa chỉ của gatekeeper (có thể đặt trong tệp khởi động).
Điểm cuối gửi bản tin GRQ theo địa chỉ multicast đến tất cả các gatekeeper (địa chỉ này được quy định trong khuyến nghị H.225). Nếu gatekeeper nào đó có thể quản lí được điểm cuối này thì có thể trả lời bằng bản tin GCF có chứa địa chỉ của kênh RAS (xem hình 3.6).
Hình 3.6: Tự động tìm gatekeeper
Với mục đích dự trữ, gatekeeper chỉ định các gatekeeper thay thế trong trường hợp xảy ra lỗi. Danh sách các gatekeeper thay thế này được lưu ở trường AlternateGatekeeper trong các bản tin GCF và RCF.
Nếu một điểm cuối nhận thấy sự đăng kí của nó không hợp lệ, nó phải thực hiện lại thủ tục tìm gatekeeper. Đăng kí là không hợp lệ khi điểm cuối nhận được bản tin RRJ trả lời cho bản tin RRQ hoặc không nhận được trả lời cho bản tin RRQ trong thời gian timeout.
3.3.1.2 Thủ tục đăng ký Gatekeeper
Để tham gia vào một miền do gatekeepet quản lí, các điểm cuối phải thực hiện thủ tục đăng kí. Đây là quá trình điểm cuối thông báo cho gatekeeper biết địa chỉ giao vận cũng như địa chỉ hình thức (alias address) của nó. Thủ tục đăng kí phải được thực hiện trước khi có các cuộc gọi xảy ra và sau khi đã thực hiện thủ tục tìm gatekeeper.
RRQ (địa chỉ multicast)
Gatekeeper
Endpoint
GRF/GRJ
Hình 3.7: Thủ tục đăng ký với gatekeeper
Điểm cuối gửi bản tin RRQ (Registration Request) đến gatekeeper trên kênh H.225 RAS. Kênh H.225 RAS được xác định trong thủ tục tìm gatekeeper. Gatekeeper có thể trả lời bằng bản tin RCF (Request Confirm) hoặc RRJ (Request Reject) (Hình 3.7). Một điểm cuối chỉ đăng kí với 1 gatekeeper.
Gatekeeper phải đảm bảo mỗi địa chỉ hình thức được chuyển đổi thành một địa chỉ giao vận. Tuy nhiên, điểm cuối có thể chỉ định một địa chỉ giao vận dự trữ hay thay thế nhờ cấu trúc alternateEndpoint trong bản tin RAS cho phép điểm cuối có một giao diện mạng thứ cấp. Gatekeeper sẽ từ chối đăng kí nếu xét thấy sự đăng kí đó là mập mờ, không đủ thông tin.
Nếu điểm cuối không xác định một địa chỉ hình thức trong bản tin RRQ thì gatekeeper sẽ cấp phát cho nó một địa chỉ hình thức và thông báo cho nó trong bản tin xác nhận RCF. Điểm cuối có thể huỷ bỏ sự đăng kí bằng cách gửi bản tin URQ (Unregistration Request) đến gatekeeper. Gatekeeper xác nhận bằng bản tin UCF (Unregistration Confirm). Điều này cho phép điểm cuối thay đổi địa chỉ hình thức liêt kết với địa chỉ giao vận hoặc ngược lại. Nếu nhận thấy điểm cuối chưa đăng kí, gatekeeper trả lời bằng bản tin URJ (Unregistration Reject).
Gatekeeper cũng có thể yêu cầu huỷ bỏ đăng kí của điểm cuối (dùng bản tin URQ), lúc đó điểm cuối phải trả lời bằng bản tin UCF. Sau khi huỷ bỏ đăng kí, điểm cuối phải đăng kí lại (có thể với một gatekeeper khác).
URQ (địa chỉ multicast)
Endpoint
Gatekeeper
UCF
URQ (địa chỉ multicast)
Gatekeeper
Endpoint
UCF hoặc URJ
Hình 3.8: Thủ tục hủy bỏ đăng ký với gatekeeper
Một điểm cuối nếu không đăng kí sẽ không chịu sự quản lí của gatekeeper.
3.3.1.3 Endpoint – Định vị điểm cuối
Theo các bước đăng ký, các endpoint sẵn sàng tạo ra và tiếp nhận cuộc gọi. Tiếp nhận các cuộc gọi và thực hiện các cuộc gọi đối với các endpoint khác trong cùng một domain là các thủ tục tương đối dễ, như chúng ta sẽ thấy trong các luồng gọi phía sau, nhưng thực hiện một cuộc gọi đến một endpoint mà không biết vị trí của nó (đó là danh định của endpoint không đủ để thực hiện cuộc gọi và cần đến một vài dạng thông dịch viên nào đó từ gatekeeper) yêu cầu endpoint thực hiện thủ tục dò tìm. Dò tìm vị trí endpoint chỉ có thể được hoàn tất nếu có một gatekeeper có thể nhận LRQ với thông tin về endpoint đích và phúc đáp một LCF khi sự thông dịch được thực hiện một cách thành công, hay một LRJ khi hoạt động này không thể thực thi được.
Thông tin về đích có thể là một danh sách các bí danh, một địa chỉ E.164, chuỗi các số được quay khác, hoặc một H.323 ID. Các giao thức mong muốn khác cũng được chỉ ra trong LRQ, cùng với địa chỉ mà nó gửi LCF này (hầu như luôn là địa chỉ báo hiệu RAS của nơi truyền) và thông tin về kênh, nêu cuộc gọi được định tuyến qua PSTN. Gatekeeper sẽ đáp ứng với RAS và báo hiệu ngọi, và hỗ trợ các địa chỉ của endpoint được định vị.
Lưu ý có vài yêu cầu cần thời gian dài để thực hiện so với thời gian được phép quy định bởi các bộ định thời, một thông điệp RIP (Requestion Progress) có thể gửi đi, nó sẽ chỉ ra bao nhiêu thời gian để nó tạo ra đáp ứng thực sự. Khi thông tin cho đáp ứng này là khả dụng, thông điệp này được gửi ngay. Một yêu cầu về vị trí có thể phát sinh loại đáp ứng trung gian này, tùy vào thời lượng cần để truy xuất cơ sở dữ liệu phục vụ cho sự thông dịch.
LRQ
RIP
delay
LCF
rasAddress, callSignalAddress, supporttedProtocol …
LRJ
Reason …
Cung cấp thông dịch địa chỉ cho đầu cuối yêu cầu và cung cấp báo hiệu TA cho đầu cuối gọi.
Hình 3.9: Thủ tục dò tìm vị trí H323 endpoint
3.3.1.4 Các thủ tục khác
Ngoài các thủ tục trên, kênh RAS còn dùng để truyền tải các bản tin điều khiển truy nhập, thay đổi băng thông, giám sát trạng thái và giải phóng. Chi tiết về các thủ tục này được trình bày ở phần sau.
Trong bản tin ARQ (Admission Request) yêu cầu truy nhập, điểm cuối xác định một giá trị băng thông để truyền và nhận thông tin. Giá trị này là giới hạn trên của tốc độ luồng tổng hợp audio, video truyền và nhận (không kể các header ở các lớp giao thức). Gatekeeper có thể giảm giá trị này xuống trong bản tin xác nhận ACF. Các điểm cuối chỉ được phép truyền thông tin với tốc độ nằm trong giới hạn này.
3.3.2 Cuộc gọi giữa hai điểm đầu cuối trong mạng H.323
Điểm cuối trong mạng H323 có thể là một thiết bị đầu cuối hoặc một gateway. Các thủ tục xử lí cuộc gọi giữa hai điểm cuối trong mạng H323 tuân theo các thủ tục trong khuyến nghị H.323, H225.0 và H.245. Đầu tiên, kênh báo hiệu được thiết lập (bên gọi phải biết địa chỉ tầng mạng (IP) và địa chỉ tầng giao vận (TCP) của bên bị gọi), sau đó địa chỉ của kênh điều khiển được xác định trong quá trình trao đổi các bản tin báo hiệu. Sau khi xác định được địa chỉ, kênh điều khiển được thiết lập và địa chỉ của kênh thông tin sẽ được xác định qua các bản tin trên kênh đIều khiển. Cuối cùng, kênh thông tin được thiết lập cho phép hai điểm cuối có thể trao đổi thông tin. Ngoài ra, H323 còn hỗ trợ thủ tục kết nối nhanh (không cần mở kênh H.245).
RTP - RTCP
Endpoint 2
Endpoint 1
Các bản tin
Kênh điều khiển
Các bản tin H245
Kênh báo hiệu
Kênh thông tin Media
Hình 3.10: Các kênh logic trong một cuộc gọi
3.3.2.1 Định tuyến kênh điều khiển và báo hiệu
Báo hiệu xử lí cuộc gọi giữa hai điểm cuối trong mạng H.323 liên quan đến ba kênh báo hiệu tồn tại độc lập với nhau là: kênh điều khiển H.245, kênh báo hiệu cuộc gọi và kênh báo hiệu RAS.
Trong mạng không có gatekeeper, các bản tin báo hiệu cuộc gọi được truyền trực tiếp giữa hai điểm cuối chủ gọi và bị gọi bằng cách truyền báo hiệu địa chỉ trực tiếp. Trong cấu hình mạng này thì phía chủ gọi phải biết địa chỉ báo hiệu của phía bị gọi trong mạng và vì vậy có thể giao tiếp một cách trực tiếp.
Nếu trong mạng có gatekeeper, trao đổi báo hiệu giữa chủ gọi và gatekeeper được thiết lập bằng cách sử dụng kênh RAS gatekeeper để truyền địa chỉ. Sau khi trao đổi bản tin báo hiệu đã được thiết lập, khi đó gatekeeper mới xác định truyền các bản tin trực tiếp giữa hai điểm cuối hay định tuyến chúng qua gatekeeper.
3.3.2.1.1 Định tuyến kênh báo hiệu cuộc gọi
Các bản tin báo hiệu cuộc gọi có thể được truyền theo một trong hai phương thức và việc lựa chọn giữa các phương thức này do gatekeeper quyết định:
Thứ nhất là các bản tin báo hiệu của cuộc gọi được truyền từ điểm cuối nọ tới điểm cuối kia thông qua gatekeeper giữa hai điểm cuối
Thứ hai là các bản tin báo hiệu của cuộc gọi được truyền trực tiếp giữa hai điểm cuối.
Cả hai phương thức này đều sử dụng các kết nối giống nhau với cùng mục đích, dạng bản tin được sử dụng cũng giống nhau, các bản tin thiết lập báo hiệu được trao đổi trên kênh RAS của gatekeeper, sau đó tới trao đổi bản tin báo hiệu cuộc gọi trên kênh báo hiệu cuộc gọi. Sau đó mới tới thiết lập kênh điều khiển H.245.
Trong phương thức gatekeeper định tuyến các bản tin thì nó có thể đóng kênh báo hiệu cuộc gọi khi việc thiết lập cuộc gọi hoàn thành hoặc vẫn duy trì kênh này để hỗ trợ các dịch vụ bổ xung. Chỉ có gatekeeper mới có thể đóng kênh báo hiệu cuộc gọi, nhưng khi Gateway tham gia vào cuộc gọi thì các kênh này không được phép đóng.
3.3.2.1.2 Định tuyến kênh điều khiển
Khi các bản tin báo hiệu cuộc gọi được gatekeeper định tuyến thì sau đó kênh điều khiển H.245 sẽ được định tuyến theo 2 cách:
Kênh điều khiển H.245 được thiết lập một cách trực tiếp giữa các điểm cuối. Khi đó chỉ cho phép kết nối trực tiếp 2 điểm cuối.
Kênh điều khiển H.245 được thiết lập từ điểm cuối này tới điểm cuối kia thông qua gatekeeper. Khi đó cho phép gatekeeper định tuyến lại kênh điều khiển H.245 tới một MC khi thực hiện dịch vụ hội nghị.
3.3.2.2 Các thủ tục báo hiệu và xử lý cuộc gọi
Người ta chia một cuộc gọi làm 5 giai đoạn gồm:
3.3.2.2.1 Thiết lập cuộc gọi
Trong giai đoạn này các phần tử trao đổi với nhau các bản tin được định nghĩa trong khuyến nghị H.225.0 theo một trong các thủ tục được trình bày sau đây.
Cuộc gọi cơ bản - Cả hai điểm cuối đều không đăng ký
Khi cả hai điểm cuối đều không đăng ký với gatekeeper, thì chúng sẽ trao đổi trực tiếp các bản tin với nhau như hình 3.11. Khi đó chủ gọi sẽ gửi bản tin thiết lập cuộc gọi trên kênh báo hiệu đã biết trước địa chỉ của bị gọi.
Hình 3.11: Cuộc gọi cơ bản không có gatekeeper
Các trường hợp về hai điểm endpoint đăng ký với gatekeeper:
Các endpoint đăng ký với một gatekeeper
Hình 3.13: Hai điểm đầu cuối đăng ký với một gatekeeper – báo hiệu qua gatekeeper
Hình 3.12: Hai điểm đầu cuối đăng ký với một gatekeeper – báo hiệu trực tiếp
Hình 3.14: Chỉ có chủ gọi đăng ký -báo hiệu trực tiếp
Hình 3.15: Chỉ có chủ gọi đăng ký -báo hiệu qua gatekeeper
Hình 3.16 Chỉ có phía bị gọi đăng ký -báo hiệu trực tiếp
Hình 3.17 Chỉ có phía bị gọi đăng ký –gatekeeper định tuyến báo hiệu
Các endpoint đăng ký với 2 gatekeeper
Hình 3.18: Hai thuê bao đều đăng ký với hai gatekeeper – Cả hai đều truyền báo hiệu trực tiếp giữa hai thuê bao
Hình 3.19: Hai thuê bao đều đăng ký với hai gatekeeper – Phía chủ gọi truyền trực tiếp còn phía bị gọi định tuyến báo hiệu qua gatekeeper 2
Hình 3.20: Hai thuê bao đều đăng ký với hai gatekeeper – Phía chủ gọi định tuyến báo hiệu qua gatekeeper 1 còn phía bị gọi truyền trực tiếp
Hình 3.21: Hai thuê bao đều đăng ký định tuyến gatekeeper
Báo hiệu kiểu Overlap
Các thành phần trong mạng H.323 có thể được hỗ trợ khả năng báo hiệu kiểu Overlap. Nếu trong mạng có gatekeeper thì thủ tục báo hiệu kiểu Overlap sẽ được dùng, các điểm cuối gửi đến gatekeeper bản tin ARQ mỗi khi có thêm thông tin về địa chỉ gọi. Địa chỉ này được lưu trong trường destinationInfo của bản tin ARQ. Nếu địa chỉ này là chưa đầy đủ (gatekeeper không thể xác định được đích) thì gatekeeper sẽ trả lời bằng bản tin ARJ với thành phần thông tin AddmissionRejectReason có giá trị là incompleteAddress (nếu có giá trị khác thì cuộc gọi coi như bị huỷ bỏ). Vì vậy, điểm cuối phải gửi tiếp các bản tin ARQ cho đến khi địa chỉ mà gatekeeper nhận được là đầy đủ. Nếu đã nhận đủ địa chỉ, gatekeeper trả lời bằng bản tin ACF.
Khi điểm cuối nhận được địa chỉ kênh báo hiệu đích destCallSignalAddress (có thể là của gatekeeper hoặc của đích tuỳ theo phương pháp định tuyến báo hiệu) từ gatekeeper, nó gửi đến địa chỉ này gói tin Setup với trường canOverlapSend chỉ định liệu phương pháp báo hiệu Overlap có được áp dụng hay không. Nếu phía nhận nhận được bản tin Setup với địa chỉ chưa đầy đủ và thành phần thông tin canOverlapSend có giá trị là TRUE thì nó sẽ khởi động thủ tục báo hiệu kiểu Overlap bằng cách trả lời bằng bản tin Setup Acknowledge. Các thông tin thêm về địa chỉ sẽ được phía chủ gọi gửi trong bản tin Information. Nếu địa chỉ nhận được là không đầy đủ và trường canOverlapSend có giá trị FALSE thì phía nhận trả lời bằng bản tin ReleaseComplete để huỷ bỏ cuộc gọi.
Thủ tục kết nối nhanh
Sau khi trao đổi các bản tin báo hiệu, kênh điều khiển được thiết lập, sau đó kênh thông tin mới được mở. Tuy nhiên, có thể bỏ qua giai đoạn thiết lập kênh điều khiển bằng cách dùng thủ tục kết nối nhanh trên kênh báo hiệu.
Phía chủ gọi khởi động thủ tục kết nối nhanh khi gửi bản tin Setup có kèm theo thành phần thông tin fastStart đến phí bị gọi. Thành phần thông tin fastSatrt này chứa một chuỗi cấu trúc OpenLogicalChanel mô tả đầy đủ các thông tin về kênh thông tin mà nó đề nghị thiết lập.
Phía bị gọi có thể từ chối thủ tục kết nối nhanh bằng cách không gửi thành phần thông tin fastStart trong bất cứ gói tin trả lời nào. Lúc đó, kênh điều khiển H245 phải được thiết lập. Ngược lại, nếu phía bị gọi chấp nhận, trong gói tin trả lời sẽ có chứa thành phần thông tin fastStart lựa chọn một cấu trúc Open LogicalChanel trong số các cấu trúc mà bên gọi đề nghị. Qua đó, kênh thông tin được thiết lập giống như thủ tục đóng mở kênh logic của kênh H245.
Phía bị gọi có thể bắt đầu truyền thông tin (media) ngay sau khi nhận được gói tin báo hiệu từ phía chủ gọi có chứa thành phần thông tin fastStart. Do đó phía chủ gọi phải chuẩn bị sẵn sàng để nhận bất cứ một kênh thông tin nào mà nó đã đưa ra trong bản tin Setup. Khi nhận được bản tin trả lời có chứa thành phần thông tin fastStart , phía chủ gọi có thể ngừng chuẩn bị nhận thông tin trên Các kênh không được chấp nhận. Phía chủ gọi có thể yêu cầu phía bị gọi chưa gửi thông tin trước khi trả lời bằng bản tin Connect. Nếu như trong bản tin Setup, thành phần thông tin mediaWaitForConnect được thiết lập là TRUE thì phía bị goi không được phép gửi dòng thông tin media cho đến khi đã gửi đi bản tin Connect.
Phía chủ gọi có thể bắt đầu truyền thông tin media ngay khi nhận được bản tin trả lời có thành phần thông tin fastStart.Vì vậy, bên bị gọi phải sẵn sàng nhận thông tin media trên kênh mà nó đã chấp nhận.
Chuyển sang kênh H.245
Sau khi thiết lập cuộc gọi sử dụng thủ tục kết nối nhanh, một trong hai bên có nhu cầu sử dụng các thủ tục chỉ có ở kênh H.245. Một trong hai bên có thể khởi động thủ tục thiết lập kênh H.245 trong bất kì thời điểm nào của cuộc gọi, sử dụng phương thức mã hoá gói tin H.245 trong gói tin H.225 hoặc sử dụng kết nối kênh H245 riêng. Khi sử dụng thủ tục kết nối nhanh, kênh báo hiệu phải được mở cho đến khi cuộc gọi kết thúc hoặc kênh H.245 được thiết lập.
Khi sử dụng kênh H.245 riêng, tất cả các thủ tục bắt buộc của H.245 phải được thực hiện trước khi khởi động các thủ tục khác. Kênh thông tin đã được thiết lập trong thủ tục kết nối nhanh sẽ được thừa kế và được xem như chúng đã được mở bởi thủ tục mở kênh thông tin của H.245.
Giải phóng cuộc gọi
Nếu kênh thông tin được thiết lập bằng thủ tục kết nối nhanh và không chuyển sang kênh H245, cuộc gọi được giải phóng khi một trong hai bên gửi đi gói tin báo hiệu ReleaseComplete.
3.3.2.2.2 Thiết lập kênh điều khiển
Sau khi trao đổi các bản tin thiết lập cuộc gọi, các điểm cuối sẽ thiết lập kênh điều khiển H.245 với địa chỉ được xác định trong bước 1. Kênh điều khiển này có thể do phía bị gọi thiết lập sau khi nó nhận được bản tin Setup hoặc do phía chủ gọi thiết lập khi nó nhận được bản tin Alerting hoặc Call Proceeding. Trong trường hợp không nhận được bản tin Connect hoặc một điểm cuối gửi Release Complete, thì kênh điều khiển H.245 sẽ bị đóng.
Đầu tiên các điểm cuối trao đổi các bản tin để trao đổi khả năng thu phát luồng thông tin media. Sau đó chúng sẽ thực hiện thủ tục để xác định chủ - tớ (master - slave). Trong trường hợp cả hai điểm cuối đều có khả năng của MC, thủ tục này sẽ xác định điểm cuối nào là active MC (active MC sẽ là chủ trong cuộc gọi hội nghị). Sau khi thực hiện xong các thủ tục này, cuộc gọi chuyển sang bước thứ 3 để thiết lập kênh thông tin.
Mã hoá bản tin H.245 trong bản tin báo hiệu H.225.0
Với mục đích duy trì tài nguyên, đồng bộ hoá giữa báo hiệu và điều khiển cuộc gọi, giảm thời gian thiết lập cuộc gọi, các bản tin H.245 sẽ được mã hoá trong bản tin báo hiệu H.225 truyền trên kênh báo hiệu thay vì thiết lập một kênh điều khiển H.245 riêng. Điểm cuối muốn sử dụng phương thức này sẽ thiết lập thành phần thông tin h245Tunneling lên giá trị TRUE trong bản tin Setup và các bản tin báo hiệu sau đó trong thời gian phương thức này vẫn được sử dụng. Nếu chấp nhận phương thức này, bên nhận sẽ thiết lập thành phần thông tin h245Tunneling lên giá trị TRUE trong bản tin trả lời cho bản tin Setup và trong các bản tin tiếp theo trong thời gian phương thức này vẫn được sử dụng.
Một hoặc nhiều bản tin H.245 có thể được mã hoá trong một bản tin H.225.0. Trong thời gian không cần truyền bản tin báo hiệu nào mà cần phải gửi bản tin điều khiển H.245 thì bản tin H.245 sẽ đươc gửi đi trong bản tin báo hiệu Facility trên kênh báo hiệu. Nếu trong bản tin Setup có mã hoá bán tin H.245 nhưng phía bị gọi lại không chấp nhận thì phía chủ gọi phải coi như phía bị gọi đã bỏ qua thành phần thông tin này. Phía chủ gọi không được phép sử dụng thành phần thông tin fastStart và gói tin H.245 được mã hoá trong cùng bản tin Setup, bởi vì như vậy thì thủ tục kết nối nhanh sẽ bị bỏ qua. Mặc dù vậy, cả hai bên vẫn có thể gửi thành phần thông tin fastStart và thiết lập giá trị h245Tunneling bằng TRUE trong cùng bản tin Setup. Trong trường hợp này, thủ tục kết nối nhanh sẽ được thực hiện và kết nối H.245 vẫn chưa được thiết lập. Khi khởi động thiết lập kênh H.245 hoặc các bản tin H.245 được mã hoá trong gói tin H.225.0 được truyền đi thì thủ tục kết nối nhanh được kết thúc. Khi sử dụng phương thức này, kênh báo hiệu phải được duy trì cho đến khi cuộc gọi kết thúc hoặc kênh H.245 được thiết lập.
Chuyển sang kết nối H245 riêng
Khi phương thức mã hoá bản tin H.245 trong bản tin báo hiệu hoặc thủ tục kết nối nhanh được sử dụng, một trong hai điểm cuối có thể khởi động chuyển sang sử dụng một kênh H.245 riêng. Để có thể chuyển sang kênh H.245 tại một thời điểm bất kì, các bản tin báo hiệu phải luôn chứa địa chỉ của kênh H.245. Nếu một điểm cuối muối chuyển sang sử dụng kênh H.245 riêng mà chưa nhận được địa chỉ của kênh H.245 trong bản tin báo hiệu thì nó sẽ gửi đi một bản tin FACILITY kèm theo địa chỉ của nó, đồng thời yêu cầu bên kia gửi trả lại địa chỉ của kênh H.245. Sau khi đã có địa chỉ chúng sẽ mở kết nối TCP để thiết lập kênh điều khiển. Bên khởi tạo kênh điều khiển không được phép gửi thêm bất cứ bản tin báo hiệu nào có chứa bản tin H.245, đồng thời các bản tin H.245 cũng chưa được phép truyền cho đến khi kết nối TCP được xác nhận. Bên xác nhận kết nối TCP sau khi đã xác nhận không được phép gửi thêm các bản tin báo hiệu có mã hoá bản tin điều khiển nữa.
Bởi vì có thể trong thời gian khởi tạo kênh H.245, các bản tin báo hiệu có mã hoá bản tin H245 vẫn có thể được truyền đi, nên các điểm cuối phải có khả năng xử lí các bản tin này cho đến khi nhận được bản tin báo hiệu có thành phần thông tin h245Tunneling là FALSE. Trả lời cho các bản tin này sẽ được truyền trên kênh điều khiển đã được thiết lập. Sau khi kênh H.245 được thiết lập thì không thể quay trở lại sử dụng phương thức mã hoá bản tin H.245 trong bản tin báo hiệu nữa.
3.3.2.2.3 Thiết lập kênh truyền thông thoại
Sau khi trao đổi khả năng (tốc độ nhận tối đa, phương thức mã hoá..) và xác định master-slave trong giao tiếp trong giai đoạn 2, thủ tục điều khiển kênh H.245 sẽ thực hiện việc mở kênh logic để truyền thông tin. Sau khi mở kênh logic để truyền tín hiệu là âm thanh và hình ảnh thì mỗi điểm cuối truyền tín hiệu sẽ truyền đi một bản tin h2250MaximumSkewIndication để xác định thông số truyền.
Thay đổi chế độ hoạt động
Trong giai đoạn này các điểm cuối có thể thực hiện thủ tục thay đổi cấu trúc kênh, thay đổi khả năng và chế độ truyền cũng như nhận.
Trao đổi các luồng tín hiệu video
Việc sử dụng chỉ thị videoIndicateReadyToActive được định nghĩa trong khuyến nghị H.245 là không bắt buộc, nhưng khi sử dụng thì thủ tục của nó như sau.
Đầu tiên phía chủ gọi sẽ không được phép truyền video cho đến khi phía bị gọi chỉ thị sẵn sàng để truyền video. Phía chủ gọi sẽ truyền bản tin videoIndicateReadyToActive sau khi kết thúc quá trình trao đổi khả năng, nhưng nó sẽ không truyuền tín hiệu video cho đến khi nhận được bản tin videoIndicateReadyToActive hoặc nhận được luồng tín hiệu video đến từ phía phía bị gọi.
Phân phối các địa chỉ luồng dữ liệu
Trong chế độ một địa chỉ, một điểm cuối sẽ mở một kênh logic tới MCU hoặc một điểm cuối khác. Địa chỉ của các kênh chứa trong bản tin openLogicalChannel và openLogicalChannelAck.
Trong chế độ địa chỉ nhóm, địa chỉ nhóm sẽ được xác định bởi MC và được truyền tới các điểm cuối trong bản tin communicationModeCommand. Một điểm cuối sẽ báo cho MC việc mở một kênh logic với địa chỉ nhóm thông qua bản tin openLogicalChannel và MC sẽ truyền bản tin đó tới tất cả các điểm cuối trong nhóm.
3.3.2.2.4 Dịch vụ
Lúc này, cuộc gọi đã được thiết lập, hai bên có thể trao đổi thông tin media. Các dịch vụ giám sát chất lượng hoạt động, thay đổi độ rộng băng tần, các dịch vụ bổ trợ khác cũng được tiến hành.
Thay đổi độ rộng băng tần
Độ rộng băng tần của một cuộc gọi được gatekeeper thiết lập trong khoảng thời gian thiết lập trao đổi. Một điểm cuối phải chắc chắn rằng tổng tất cả luồng truyền, nhận âm thanh và hình ảnh đều phải nằm trong độ rộng băng tần đã thiết lập.
Tại mọi thời điểm trong khi hội thoại, điểm cuối hoặc gatekeeper đều có thể yêu cầu tăng hoặc giảm độ rộng băng tần. Một điểm cuối có thể thay đổi tốc độ truyền trên một kênh logic mà không yêu cầu gatekeeper thay đổi độ rộng băng tần nếu như tổng tốc độ truyền và nhận không vượt quá độ rộng băng tần hiện tại. Trong trường hợp ngược lại thì điểm cuối phải yêu cầu gatekeeper mà nó đăng ký thay đổi độ rộng băng tần.
Giám sát trạng thái
Để giám sát trạng thái hoạt động của điểm cuối, gatekeeper liên tục trao đổi cặp bản tin IRQ/IRR với các điểm cuối do nó kiểm soát. Khoảng thời gian đều đặn giữa các lần trao đổi các bản tin có thể lớn hơn 10 giây và giá trị của nó do nhà sản xuất quyết định.
Gatekeeper có thể yêu cầu một điểm cuối gửi cho nó bản tin IRR một cách đều đặn nhờ giá trị của trường irrFrequency trong bản tin ACF gửi cho điểm cuối đó để xác định tốc độ truyền bản tin IRR. Khi xác định được giá trị của trường irrFrequency, điểm cuối sẽ gửi bản tin IRR với tốc độ đó trong suốt khoảng thời gian của cuộc gọi. Trong khi đó gatekeeper có thể vẫn gửi IRQ tới điểm cuối và yêu cầu trả lời theo cơ chế như đã trình bày ở trên.
Trong khoảng thời gian diễn ra cuộc gọi, một điểm cuối hoặc gatekeeper có thể đều đặn hỏi trạng thái từ điểm cuối bên kia bằng cách sử dụng bản tin Status Enquiry. Điểm cuối nhận được bản tin Status Enquiry sẽ trả lời bằng bản tin chỉ thị trạng thái hiện thời. Thủ tục hỏi đáp này có thể được gatekeeper sử dụng để kiểm tra một cách đều đặn xem cuộc gọi có còn đang hoạt động không. Có một lưu ý là các bản tin này là bản tin H.225.0 được truyền trên kênh báo hiệu cuộc gọi không ảnh hưởng đến các bản tin IRR được truyền trên kênh RAS.
3.3.2.2.5 Kết thúc cuộc gọi
Một điểm cuối có thể kết thúc cuộc gọi theo các bước của thủ tục sau:
Dừng truyền luồng tín hiệu video khi kết thúc truyền một ảnh, sau đó đóng tất cả các kênh logic phục vụ truyền video.
Dừng truyền dữ liệu và đóng tất cả các kênh logic dùng để truyền dữ liệu.
Dừng truyền audio sau đó đóng tất cả các kênh logic dùng để truyền audio.
Truyền bản tin H.245 endSessionCommand trên kênh điều khiển H.245 để báo cho thuê bao đầu kia biết nó muốn kết thúc cuộc gọi. Sau đó nó dừng truyền các bản tin H.245 và đóng kênh điều khiển H.245.
Nó sẽ chờ nhận bản tin endSessionCommand từ bên kia và sẽ đóng kênh điều khiển H.245.
Nếu kênh báo hiệu cuộc gọi đang mở, thì nó sẽ truyền đi bản tin Release Complete sau đó đóng kênh báo hiệu.
Chú ý: Kết thúc một cuộc gọi không có nghĩa là kết thúc một hội nghị (cuộc gọi có nhiều điểm cuối tham gia), một hội nghị sẽ chắc chắn kết thúc khi sử dụng bản tin H.245 dropConference. Khi đó các điểm cuối sẽ chờ MC kết thúc cuộc gọi theo thủ tục trên.
Trong một cuộc gọi không có sự tham gia của gatekeeper thì chỉ cần thực hiện các bước từ 1 đến 5.
Hình 3.22: Điểm kết thúc cuộc gọi có sự tham của gatekeeper
Nhưng trong cuộc gọi có sự tham gia của gatekeeper thì cần có hoạt động giải phóng băng tần, thủ tục này được thể hiện trên hình 3.22. Vì vậy sau khi thực hiện các bước từ 1 đến 5, mỗi điểm cuối sẽ truyền đi bản tin DRQ (3) tới gatekeeper để yêu cầu giải phóng khỏi gatekeeper. Sau đó gatekeeper sẽ trả lời bằng bản tin DCF (4). Sau khi gửi DRQ, thì điểm cuối sẽ không gửi bản tin IRR tới gatekeeper nữa và khi đó cuộc gọi kết thúc.
Trên đây là thủ tục kết thúc cuộc gọi có sự tham gia của gatekeeper do điểm cuối thực hiện. Thủ tục kết thúc cuộc gọi do gatekeeper thực hiện được thể hiện trên hình 3.23. Đầu tiên gatekeeper gửi bản tin DRQ tới điểm cuối, khi nhận được bản tin này điểm cuối sẽ lần lượt thực hiện các bước từ 1 đến 6 sau đó trả lời gatekeeper bằng bản tin DCF. Thuê bao đầu kia khi nhận được bản tin endSessionCommand sẽ thực hiện thủ tục giải phóng giống trường hợp điểm cuối chủ động kết thúc cuộc gọi (hình 3.23). Nếu cuộc gọi là một hội nghị thì gatekeeper sẽ gửi DRQ tới tất cả các điểm cuối tham gia hội nghị Cuộc gọi có sự tham gia của đầu cuối trong mạng SCN (Switched Circuit Network). Đối với cuộc gọi có sự tham gia của mạng SCN có thể xảy ra các trường hợp sau:
Hình 3.23: Kết thúc cuộc gọi bắt đầu từ gatekeeper
Cuộc gọi từ đầu cuối H323 đến đầu cuối SCN.
Cuộc gọi từ đầu cuối SCN đến đầu cuối H323.
Cuộc gọi giữa hai đầu cuối SCN qua mạng IP (H323).
Khi có sự tham gia của đầu cuối trong mạng SCN thì bắt buộc phải có gateway chuyển đổi giao thức giữa mạng SCN và mạng H323. Báo hiệu giữa gateway với đầu cuối hoặc một gateway khác tuân theo khuyến nghị H323 của ITU. Tuy nhiên không phải tất cả các thủ tục, bản tin của H323 đều được áp dụng cho VoIP, tiêu chuẩn kỹ thuật TS 101 322 và TS 101 471 của ESTI sẽ giới hạn các thủ tục của H323 áp dụng trong VoIP. Báo hiệu giữa đầu cuối SCN và gateway tuân theo giao thức của mạng SCN (có thể là báo hiệu R2, báo hiệu số 7..)
CHƯƠNG 4: GIAO THỨC SIP
4.1 Giới thiệu SIP
Giao thức khởi đầu phiên (Session Initiation Protocol) là giao thức báo hiệu được dùng để thiết lập, duy trì và kết thúc các cuộc gọi. Nó được đưa ra bởi IETF. Một cuộc gọi bao gồm một số thành viên tham gia hội thoại, trao đổi thông tin bằng hình thức đa phát đáp hoặc đơn phát đáp với phương thức truyền thông có thể là dữ liệu, tiếng nói hay hình ảnh. SIP là một giao thức điều khiển tầng ứng dụng, độc lập với với các giao thức khác. Đây là giao thức khả mở, hỗ trợ các dịch vụ ánh xạ tên và các dịch vụ gián tiếp một cách trong suốt. Vì thế nó cho phép thi hành một cách đầy đủ các dịch vụ trên ISDN, mạng thoại thông minh và hỗ trợ các cuộc gọi di động của người có địa chỉ không cố định.
SIP cung cấp các khả năng sau:
Định vị người dùng: cho phép xác định vị trí người dùng tiến hành hội thoại.
Xác định phương thức giao tiếp và các tham số tương ứng cho hội thoại.
Xác định những người sẵn sàng tham gia hội thoại.
Thiết lập các tham số cần thiết cho cuộc gọi, giống như Q.931.
Điều khiển cuộc gọi: bao gồm cả quá trình truyền và kết thúc cuộc gọi.
SIP là một phần trong bộ giao thức chuẩn cho truyền dòng tin đa phương thức do IETF đưa ra như RSVP (giao thức giữ trước tài nguyên), RTP, RTSP (phân phối dòng tin đa phương thức), SAP (giao thức thông báo phiên), SDP (giao thức mô tả phiên), nhưng nó hoạt động độc lập với các giao thức trên. Ta cũng có thể kết hợp SIP với các giao thức báo hiệu và thiết lập cuộc gọi khác.
Hiện tại ngoài SIP được phát triển bởi IETF còn có H.323 phát triển bởi ITU mang đầy đủ dáng vẻ của một giao thức báo hiệu. Cả SIP và H.323 đều định nghĩa các cơ chế chọn đường, báo hiệu cuộc gọi cũng như khả năng chuyển đổi, điều khiển và các dịch vụ bổ sung.
SIP là giao thức mới hứa hẹn tính khả mở, linh hoạt và dễ dàng. Sự linh hoạt của SIP cho phép máy phục vụ liên kết với các máy phục vụ khác bên ngoài để xác định người sử dụng hay chính sách chọn đường, vì thế nó không trói buộc chỉ những người trong cùng một vùng. Thêm vào đó, để duy trì tính khả mở, các máy phục vụ SIP có thể duy trì các thông tin trạng thái hoặc chuyển tiếp yêu cầu.
4.2 Kiến trúc SIP
Các thành phần chính trong một hệ thống SIP được mô tả bởi hình 4.1.
Hình 4.1: Kiến trúc SIP
Chức năng tóm tắt của từng thành phần được thể hiện ở bảng sau:
Bảng 4.1: Chức năng các thành phần của kiến trúc SIP
Thành phần
Chức năng
UAC (User Agent Client)
Người dùng tại các đầu cuối SIP, đưa yêu cầu SIP.
UAS (User Agent Server)
Nhận và đáp ứng yêu cầu SIP, chấp nhận, chuyển tiếp, hay từ chối cuộc gọi.
SIP terminal
Hỗ trợ truyền thông hai chiều thời gian thực với các thực thể SIP khác. Cũng giống như H.323 Terminal, chứa UAC.
PS (Proxy Server)
Liên lạc một hay nhiều client hay server kề với nó, chuyển yêu cầu cuộc gọi đi xa hơn. Chứa UAC và UAS .
RS (Redirect Server)
Trả về địa chỉ người dùng khi được yêu cầu.
LS (Location Server)
Cung cấp thông tin về địa chỉ có thể có của người gọi cho Redirect và Proxy Server. Nó có thể nằm chung với SIP Server.
SIP là một giao thức Client-Server có nghĩa là các yêu cầu tạo ra từ một thực thể gửi (như Client) và gửi đến một thực thể nhận (như Server) để xử lý chúng. SIP cho phép hệ thống đầu cuối bao gồm giao thức Client và Server (gọi chung là Server đại diện người sử dụng). Các Server đại diện người sử dụng nói chung trả lời các yêu cầu trên cơ sở trao đổi của con người hoặc một vài kiểu đầu vào khác. Hơn nữa SIP yêu cầu có thể duyệt qua nhiều Proxy Server, mỗi trong chúng nhận một yêu cầu và gửi nó theo bước nhảy đến Server tiếp theo, nó có thể là một Proxy Server khác hoặc Server đại diện người sử dụng cuối cùng. Một Server có thể đóng vai trò Server trung gian (Redirect Server), hoặc Client có thể liên lạc với nó trực tiếp. Chưa có giao thức phân biệt giữa Proxy Server và Redirect Server và Server đại diện người sử dụng; một Client hoặc Proxy Server không có cách nào để biết ai mà chúng đang truyền thông với. Sự phân biệt chỉ ở chức năng: một Proxy Server hoặc Redirect Server không được nhận hoặc không nhận một yêu cầu, nơi mà Server đại diện người sử dụng là có thể. Điều này giống với mô hình giao thức trao đổi siêu văn bản HTTP (Hypertext Transfer Protocol) của các Client, các Server gốc và Proxy Server. Một máy chủ có thể đóng vai trò cho Client và Server cho các yêu cầu giống nhau. Một kết nối được xây dựng bằng cách đưa ra một yêu cầu INVITE và loại bỏ bởi đưa ra một yêu cầu BYE.
4.3 Các bản tin SIP
SIP là giao thức dạng text sử dụng bộ ký tự ISO 10646 trong mã hóa UTF-8. Điều này tạo cho SIP tính linh hoạt và mở rộng, dễ dàng thi hành các ngôn ngữ lập trình cấp cao như Java, Tcl, Perl. Cú pháp của nó gần giống với giao thức HTTP, cho phép dùng lại mã và đơn giản hóa sự liên kết của các máy phục vụ SIP với các máy phục vụ Web.
Thông điệp SIP được chia làm hai loại:
SIP-message = Request | Response
4.3.1 Yêu cầu (Request)
Một tiêu đề yêu cầu SIP có cấu trúc :
Method
Request URI
SIP version
Trong đó, SIP định nghĩa 6 yêu cầu cơ bản:
Bảng 4.2: Các yêu cầu SIP
Mã trạng thái
Ý nghĩa
INVITE
Mời thành viên tham gia hội thoại.
ACK
Yêu cầu xác nhận đã nhận được đáp ứng chấp nhận (OK) cho yêu cầu INVITE.
OPTIONS
Hỏi khả năng của máy phục vụ SIP.
BYE
Yêu cầu giải phóng cuộc gọi.
CANCEL
Hủy bỏ yêu cầu sắp được thực hiện với cùng giá trị trong các trường Call-ID, To, From, CSeq của yêu cầu đó bằng cách ngừng quá trình tìm kiếm, báo hiệu.
REGISTER
Đăng ký danh sách địa chỉ liên hệ của người dùng với máy phục vụ.
Trường Request-URI có khuôn dạng theo SIP URL và có thể được ghi lại trong trường hợp máy phục vụ ủy quyền, trường SIP Version chỉ phiên bản SIP được sử dụng (hiện tại là bản SIP/2.0).
4.3.2 Đáp ứng (Response)
Đáp ứng bản tin SIP dựa trên sự chấp nhận và dịch các yêu cầu. Chúng dùng để chỉ thị cuộc gọi thành công hay thất bại, bao gồm cả trạng thái của server.
Các đáp ứng SIP có tiêu đề theo khuôn dạng sau:
SIP version
Status code
Reason phrase
Phiên bản SIP/2.0 đưa ra bảng mã mở rộng và chức năng tương ứng cho các đáp ứng được mô tả dưới đây:
Bảng 4.3: Các đáp ứng SIP
Mã trạng thái
Ý nghĩa
1xx
Tìm kiếm , báo hiệu, sắp hàng đợi.
2xx
Thành công.
3xx
Chuyển tiếp yêu cầu.
4xx
Lỗi phía người dùng
5xx
Lỗi phía máy phục vụ
6xx
Lỗi chung: đường đây đang bận, từ chối,…
Ngoài ra, thành phần tùy chọn Reason phrase chú thích mã trả về tương ứng là đáp ứng gì.
SIP định nghĩa 6 loại đáp ứng đối với các thông điệp mà chúng ta thấy trong phần trước. Mỗi loại đáp ứng dùng một mã trong một dải, như được liệt kê trong bảng mã đáp ứng (bảng 4.4 đến 4.9). Vài mã trả về yêu cầu sự phản ứng rõ ràng từ các server và endpoint, và vài mã khác dẫn đến một động thái nào đó của hệ thống.
Các đáp ứng nhất thời được phát ra để cho biết mơi thu đang tiến hành thực thi yêu cầu. Các mã hợp lệ được liệt kê trong bảng 4.4.
Bảng 4.4 Các mã thông báo của SIP
Mã
Ý nghĩa
100
Trying. Một đáp ứng tạm thời tương tự như Q.931 CALL PROCEEDING, và sẽ được trả về từ một proxy server hay SIP server trung gian khác trên đường báo hiệu của một cuộc gọi.
180
Ringing. Có ý nghĩa tương tự như Q.931 ALERTING. Có nghĩa là máy điện thoại đang rung chuông.
181
Call Forwarding. Nếu một proxy server trả về mã này, có thể nhận diện nơi mà nó đang chuyển cuộc gọi trong thân của thông điệp này.
182
Queued for Service. Hữu ích cho các ứng dụng có thể trì hoãn trả lời cuộc gọi cho đến khi chúng đã phục vụ cho các cuộc gọi đang xếp hàng. Các văn phòng phục vụ cho các tập đoàn lớn là các user chủ yếu của các dịch vụ này.
183
Session Progress. Một đáp ứng tạm thời tương tự như Q.931 CALL PROGRESS. Mã này được dùng để cung cấp sớm thông tin đặc tả phiên truyền thông từ các gateway trên đường dẫn đến nơi được gọi, như vậy một đường dẫn thoại có thể được chuyển mạch trước khi đổ chuông được áp đặt lên endpoint gọi. Ví dụ trường hợp sử dụng chúng là trong liên kết công tác SIP – PSTN, nhờ đó một mã Session Progress với SDP của PSTN gateway cho phép âm hiệu chuông được cấp bởi tổng đài kết nối. Các ứng dụng khác của đáp ứng này gồm thông báo hay mở nhạc khi gọi vào trong một domain, trước khi cuộc gọi được thiết lập.
189
Provisional response to a REFER method. Hữu ích trong việc cung cấp thông tin cề trạng thái của cuộc gọi đang được chuyển, trong khi đang đợi đáp ứng sau cùng chỉ thành công hay thất bại từ chi gọi đang được chuyển đến.
Mã Success (2xx) chỉ ra yêu cầu đã được phân tích thành công và được thực thi bởi đối tác được gọi. Xem bảng 4.5
Mã Redirection (3xx) cho biết cuộc gọi cần xử lý nhiều hơn trước khi có thể xác định nó được hoàn tất hay không. Xem bảng 4.6
Bảng 4.5: Mã thông báo thành công của SIP
Mã
Ý nghĩa
200
Yêu cầu được thực thi một cách thành công.
Bảng 4.6: Các mã định hướng lại của SIP
Mã
Ý nghĩa
300
Mục tiêu trong yêu cầu được phân giải thành nhiều chọn lựa. Nhiều chọn lựa được trả về và người gọi có thể lấy từ trong danh sách và định hướng lại cuộc gọi. Đây là một phương pháp khác của cái gọi là “ambiguous”, nheng sự phân giải tên mập mờ đưa đến mã lỗi của nó.
301
User được gọi đã di chuyển thường xuyên và nơi gọi sẽ thử vị trí mới, nó được trả về trong header của đáp ứng (trong “contact” field). Có thể có một danh sách các vị trí, và người gọi có thể chọn thứ tự mà nó sẽ quét qua danh sách để tạo cuộc gọi. Nếu server không tìm thấy bất kỳ thông tin nào về đối tác được gọi trong bộ nhớ của nó, nó trả lại một mã lỗi NOT FOUND.
302
User được gọi vừa di chuyển và có thể tìm thấy tại địa chỉ trả về. Điều này hữu dụng cho chuyển cuộc gọi bằng tay, bởi bản thân server không chuyển cuộc gọi (chỉ cung ứng sự định hướng lại). Tốt cho việc giải quyết vài nhu cầu di chuyển nào đó.
305
Không thể truy xuất User được gọi một cách trực tiếp, nhưng cuộc gọi phải được kiểm soát thông qua một proxy. Chỉ có agent gọi mới có thể truyền phúc đáp này.
380
Dịch vụ được yêu cầu không khả dụng, nhưng các dịch vụ khác là có thể. Đây là một thông điệp không chắc chắn. Sự không phù hợp về tham số SDP được khắc phục bằng mã khác.
Mã về yêu cầu của client không thành (4xx), loại mã này cho biết server không thể phân tích yêu cầu và không thể phục vụ. Yêu cầu này phải được sửa đổi trước khi tiến hành trở lại. Xem bảng 4.7
Bảng 4.7: Các mã chỉ yêu cầu không thành công của SIP
Mã
Ý nghĩa
400
Yêu cầu hỏng, do lỗi về cú pháp. Điều này có nghĩa là thông điệp dạng text không thể phân tích được bởi đầu xa. Bất kỳ lỗi cú pháp nào đều trả về mã này. Thái độ của hệ thống là thực thi rõ.
401
User yêu cầu xác thực trước khi thực hiện yêu cầu này. Các qui định đặc biệt được áp dụng vào định dạng thông điệp khi nhận được mã lỗi này. Ví dụ: không có dạng thông điệp chắc chắn SIP nào được phép.
402
User còn nợ tiền (sử dụng trong tương lai). Hữu dụng cho các công ty điện thoại. Các hoạt động không được chỉ rõ, nhưng một hoạt động có thể đoán được.
403
Cấm yêu cầu – không thực hiện lại. Thông điệp được phân tích, nhưng yêu cầu sẽ không được đón nhận. Nếu cố gắng gọi một số không được chấp nhận từ thuê bao của bạn, bạn có thể nhận được thông điệp này.
404
Không tìm thấy user. Thông điệp này được gửi khi user không hề tồn tại hay các record của user đã bị xóa bởi server này.
405
Phương thức được mã hóa trong thông điệp này không được phép cho user được gọi. Lý tưởng là cho phép tất cả các phương thức, nhưng đây là một quyết định thực hiện.
406
Endpoint được gọi sẽ phát ra các đáp ứng mà người gọi sẽ không hiểu được (mã không thể chấp nhận). Đáp ứng này tránh gia tăng hội chứng “Tower of Babel” giữa các endpoint nếu xử lý gọi liên tục.
407
Xác thực proxy trước khi xúc tiến.
408
Server không tạo ra đáp ứng trong khoảng thời gian được yêu cầu bởi chủ gọi trong header yêu cầu. Các server bận không thể phát ra đáp ứng này theo thời gian. Phản ứng của người gọi là thực hiện phụ thuộc.
409
Có một xung đột giữa yêu cầu hiện hành với các điều kiện khác trong server, có khả năng do các đăng ký hiện hữu. Đáp ứng này được tạo ra nếu một yêu cầu REGISTER từ một user đụng độ với các yêu cầu khác.
410
User được yêu cầu hay dịch vụ đã bị di chuyển khỏi server này và không có để lại địa chỉ nào.
411
Server yêu cầu người gọi ghi chiều dài toàn bộ thông điệp trong header. Thông điệp có tính xoi mói này, nhưng nó phải được lý giải bởi ứng dụng.
413
Kích thước yêu cầu là quá lớn server không thể kiểm soát. Không thể nào dự báo được những loại thông điệp SIP nào có thể gây ra đáp ứng này, ngoại trừ một hỏng hóc bởi quá trình sẽ tạo ra các thông điệp này trong agent gọi.
414
Server đang gặp khó khăn trong việc diễn dịch Request URI bởi kích thước của nó quá lớn. Khống chế URI ngắn hơn. Không có cách nào để ngăn chặn lỗi này.
415
Server không thể chấp nhận yêu cầu bởi mã hóa của nó. Server có thể chỉ ra phương pháp thích hợp hơn để mã hóa yêu cầu.
420
Server không hiểu sự mở rộng của giao thức SIP đang cố truy cập server từ người gọi. Làm thích nghi hơn là giải pháp thỏa đáng nhất cho vấn đề ở đây, nhưng có thể giảm xác suất dẫn đến tình huống nàybawfng cách dùng các header “Allow” và “Support”.
480
Nơi được gọi tạm thời không khả dụng. Nếu server nhận biết được tên nhưng không biết đối tác hiện đang ở đâu, nó có thể truyền thông điệp này.
481
Server nhận một CANCEL trong một yêu cầu không tồn tại hay một BYE cho một cuộc gọi không có thực. Loại bỏ.
482
Đã phát hiện thấy vòng lặp trong định tuyến thông điệp. Đây là trường hợp mà Via rất hữu dụng trong việc phát hiện ra các vòng lặp do sai sót của các giao thức vận chuyển và mạng. Nếu một server tự phát hiện trong Via field một thông điệp đến của cuộc gọi chưa hoàn tất cho đến thời điểm này, là một chứng cứ tốt để đoán rằng có một vòng lặp đâu đó trong mạng. Là thời điểm ngừng các phân tích.
483
Số hop cần thiết để đạt đến đối tác bị gọi vượt quá giới hạn cho phép. Điều này là một sự bảo vệ hiệu quả chống lại các tuyến quá dài và không ổn định, đặc biệt là trong mạng công cộng mới dựa vào IP.
484
Địa chỉ chưa đầy đủ. Có thể được dùng để tiến hành truyền từng phần một, như trường hợp của chuỗi quay số từ máy điện thoại, được softswitch xem như chưa đầy đủ.
485
Địa chỉ mập mờ về đối tác được gọi. Server có thể đề nghị các thay đổi với người gọi. Trường hợp này có nhiều chọn lựa được gửi về cho người gọi.
486
Đối tác được gọi đang bận hoặc không sẵn sàng nhận cuộc gọi. Có thể phúc đáp vào một thời điểm tốt hơn sau đó (phụ thuộc vào sự hiện thực).
Mã lỗi của server (5xx) cho biết yêu cầu có thể hợp lệ, nhưng server không thể thực thi chúng. Xem bảng 4.8
Bảng 4.8: Các mã lỗi server của SIP
Mã
Ý nghĩa
500
Lỗi server, có thể là lỗi phần cứng, phần mềm hay bất kỳ một lỗi nào bên trong.
501
Server không thể phục vụ yêu cầu bởi dịch vụ không được thực hiện.
502
Server nhận đáp ứng hỏng từ gateway hay server khác trên đường dẫn cuộc gọi. Đây có thể là một lỗi tiêu biểu trong các cuộc gọi trải dài qua nhiều segment và server mạng.
503
Dịch vụ tạm thời không khả dụng, có lẽ do quá tải xử lý hay cạn kiệt tài nguyên.
504
Server bị timeout khi truy cập gateway trên đường dẫn cuộc gọi đến endpoint. Cuộc gọi yêu cầu có lẽ vẫn còn lang thang đâu đó.
505
Phiên bản giao thức SIP này không được hỗ trợ. Thiết kế phù hợp hơn có thể tránh được lỗi này. Các server cũ hơn và các agent gọi có thể làm như vậy khi chúng nhận thấy một phiên bản mới hơn của SIP trong header của thông điệp.
506
Lỗi về điều kiện định trước (được dùng với COMET).
Các mã lỗi toàn cục (6xx) cho biết server không thể nào phục vụ được yêu cầu của user. Xem bảng 4.9
Bảng 4.9: Các mã lỗi toàn cục của SIP
Mã
Ý nghĩa
600
Đối tác được gọi đang bận. Có thể chỉ ra một thời điểm tốt hơn để gọi lại.
603
Người được gọi khước từ cuộc gọi.
604
User được gọi không tồn tại trong bất cứ nơi đâu.
606
User sẵn sàng chấp nhận cuộc gọi, nhưng có những điều k
Các file đính kèm theo tài liệu này:
- LUAN VAN.doc