Phiên giao dịch (Transaction)

Một phần của tài liệu Phát triển một số dịch vụ giá trị gia tăng sử dụng công nghệ IMS1 (Trang 59 - 61)

Mặc dù nói các bản tin SIP được gửi đi một cách độc lập qua mạng nhưng thực tế chúng thường được sắp xếp vào các transaction (giao dịch) bởi các user agent và một số kiểu proxy server nào đó. Do đó có thể nói giao thức SIP là một giao thức hỗ trợ transaction.

Một transaction là một luồng các bản tin SIP được truyền đi một cách tuần tự

giữa các phần tử mạng. Một transaction là một luồng bản tin SIP được truyền đi một cách tuần tự giữa các phần tử mạng. Một transaction chứa thông tin yêu cầu và tất

59 cả các thông tin phản hồi cho thông tin yêu cầu đó hoặc thậm chí nhiều hơn các thông tin phản hồi cuối (final response).

Nếu một transaction được khởi tạo bởi bản tin yêu cầu INVITE thì transaction đó cũng bao gồm cả bản tin ACK nếu như phản hồi cuối không phải là kiểu 2xx. Nếu như phản hồi cuối là kiểu 2xx thì bản tin ACK sẽ không được xem là một thành phần trong transaction.

Nếu như vậy chúng ta có thể thấy rằng ở đây có sự cư sử không được công bằng – ACK được coi là một thành phần trong transaction với một lời từ chối ở

phản hồi cuối, trong khi nó lại không phải là một thành phần transaction khi được chấp nhận ở phản hồi cuối. Lý do cho sự phân biệt này là sự quan trọng của tất cả

các bản tin 200 OK. Không những nó thiết lập một phiên mà bản tin 200 OK còn

được sinh ra bởi các thực thể khi một proxy server chuyển hướng yêu cầu và tất cả

các proxy server đó phải chuyển bản tin 200 OK về đến user agent. Do đó, trong trường hợp này user agent phải lãnh trách nhiệm và truyền lại bản tin 200 OK cho

đến khi chúng nhận được bản tin ACK. Một lưu ý khác nữa là chỉ có bản tin INVITE là được truyền lại.

Các thực thể SIP có khái niệm về transaction được gọi là stateful. Các thực thể này tạo một trạng thái kết nối với một transaction được lưu trong bộ nhớ trong suốt khoảng thời gian diễn ra transaction. Khi có thông tin yêu cầu hay phản hồi

đến, một thực thể stateful sẽ cố gắng kết nối yêu cầu (hoặc phản hồi) đó tới một transaction đã tồn tại sẵn. Để có khả năng làm được điều đó, nó phải lấy thông tin xác định tính duy nhất của transaction (gọi là identifier) trong bản tin đó và so sánh với tất cả các identifier trong transaction mà nó lưu trữ. Nếu như một transaction tồn tại thì trạng thái của nó sẽđược cập nhật từ bản tin đó.

60

Hình 3-7: Transaction

Một phần của tài liệu Phát triển một số dịch vụ giá trị gia tăng sử dụng công nghệ IMS1 (Trang 59 - 61)

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

(120 trang)