2.5 Một số đặc điểm của giao thức Diameter
2.5.6 Cơ chế truyền thay thế và xử lý lỗi
Cú 2 kiểu lỗi cú thể xảy ra: lỗi giao thức và lỗi ứng dụng. Lỗi giao thức là lỗi tại mức cơ bản của giao thức bao gồm vấn đề định tuyến. Lỗi ứng dụng là vấn đề với chức năng cụ thể trong ứng dụng Diameter.
Khi việc vận chuyển lỗi được phỏt hiện tại một nỳt, bản tin đang chờ xử lý sẽ được gửi tới nỳt thay thế và bit T trong trường cờ sẽ được đặt. Đõy là cơ chế truyền thay thế của Diameter.
Để một nỳt Diameter thực hiện thủ tục truyền thay thế, đú là điều cần thiết cho nỳt duy trỡ hàng đợi bản tin đang chờ xử lý. Khi bản tin trả lời được nhận, bản tin yờu cầu tương ứng trong hàng đợi sẽ bị xúa bỏ khỏi hàng đợi. Trường định dạng từng chặng hop-by-hop được sử dụng để khớp bản tin trả lời với yờu cầu hàng đợi (RFC 3588).
Để hỗ trợ việc phỏt hiện lỗi, giao thức Diameter định nghĩa bản tin Device- Dogwatch-Request. Khi 2 nỳt Diameter khụng thể trao đổi bản tin trong một khoảng thời gian dài, bản tin này được gửi từ một trong số cỏc nỳt này để phỏt hiện cỏc vấn đề cú thể xảy ra trong mạng. Đối với cỏc lỗi khỏc nhau, giỏ trị Result-Code AVP cho biết rằng yờu cầu cú được gửi thành cụng hoặc xảy ra lỗi. Mỗi bản tin Diameter trả lời cú 1 Result-Code AVP.
Giỏ trị Result-Code AVP được sử dụng để bỏo cỏo lỗi giao thức được đưa ra trong bản tin trả lời với bit E được đặt. Khi 1 bản tin yờu cầu được nhận mà nguyờn nhõn là do lỗi giao thức, 1 bản tin trả lời được gửi trả lại với bit E được đặt, và Result-Code AVP được đặt tương ứng với giỏ trị lỗi giao thức. Khi bản tin trả lời được gửi trở lại bờn gửi bản tin yờu cầu, mỗi thực thể Proxy hoặc Relay cú thể tỏc động lờn bản tin.
Hỡnh 2.16 Vớ dụ về lỗi giao thức và bản tin trả lời
Hỡnh 2.16 đưa ra 1 vớ dụ về bản tin chuyển đi bởi Diameter Relay. Khi bản tin được nhận bởi Relay2, và nú phỏt hiện ra nú khụng thể gửi bản tin yờu cầu tới server mạng nhà, 1 bản tin trả lời được gửi trả lại với bit E được đặt và Result-Code AVP đặt thành DIAMETER_UNABLE_TO_DELIVER. Đưa ra trường hợp lỗi giao thức, Relay1 cú tỏc động đặt biệt, với lỗi đưa ra, nú cố gắng định tuyến bản tin thụng qua Relay3 thay thế.
Hỡnh 2.17 Vớ dụ về lỗi ứng dụng bản tin trả lời
Hỡnh 2.17 đưa ra 1 vớ dụ về bản tin Diameter mà nguyờn nhõn là do lỗi ứng dụng. Khi lỗi ứng dụng xảy ra, bit R trong trường cờ sẽ được xúa và thờm vào Result-Code AVP giỏ trị phự hợp. Ứng dụng lỗi khụng liờn quan tới bất kỡ proxy hay relay, và do đú bản tin sẽ gửi ngược trở lại tới bờn gửi bản tin yờu cầu.