3 CHƯƠNG II I: CÁC GIAO THỨC QUAN TRỌNG
3.3.1 SIP liên hệ với HTTP như thế nào
Như đã nói ở trên, SIP kế thừa các đặc tính quan trọng của HTTP. Nó chia sẻ nhiều đặc điểm quan trọng với HTTP và cũng chính vì vậy nhiều người thường thắc mắc liệu SIP có sử dụng HTTP như một giao thức nền? Câu trả lời là không. SIP là một giao thức hoạt động ở cùng một tầng với HTTP, điều đó có nghĩa là nó hoạt động ở tầng ứng dụng và sử dụng các giao thức TCP,
UDP, SCTP như là các giao thức nền của lớp dưới. Tuy nhiên SIP có rất nhiều điểm giống với HTTP. Ví dụ, tương tự như HTTP, SIP cũng là một giao thức dựa trên văn bản (text-based) và người dùng có khả năng đọc được. Cũng giống như HTTP, SIP sử dụng cơ chế yêu cầu – đáp ứng (request – response mechanism) với các phương thức đặc trưng, mã đáp ứng và các trường điều khiển. Tuy nhiên, một điểm khác biệt quan trọng giữa HTTP và SIP là cơ chế yêu cầu – đáp ứng trong SIP là không đồng bộ -- một yêu cầu không nhất thiết theo sau nó là một đáp ứng tương ứng. Thực tế, yêu cầu SIP thường có thể gây ra một vài yêu cầu khác được tạo ra.
SIP là một giao thức ngang hàng (peer-to-peer protocol). Điều này có nghĩa là người dùng cuối (User Agent) có thể hoạt động như một Server cũng như có thể hoạt động như một Client. Đây là một điểm khác biệt giữa SIP và HTTP. Trong HTTP, máy client thì sẽ luôn luôn là máy client, máy chủ sẽ luôn luôn là máy chủ.
SIP hỗ trợ các phương thức yêu cầu và mã đáp ứng sau:
• REGISTER: sử dụng bởi client để đăng ký địa chỉ với máy chủ ứng dụng.
• INVITE: chỉ ra rằng người dùng hay dịch vụ đang được mời tham gia vào một phiên. Phần thân của bản tin này bao gồm một mô tả phiên mà người dùng dịch vụ đang được mời.
• ACK: xác nhận rằng client nhận được đáp ứng cuối cùng của một bản tin invite. Phương thức này chỉ được sử dụng với yêu cầu invite.
• CANCEL: sử dụng để bỏ qua một yêu cầu đang chờ xử lý.
• BYE: gửi một user client agent để chỉ định với máy chủ là nó muốn kết thuc cuộc gọi.
Mã hồi đáp:
• 1xx: thăm dò. Một ACK chỉ định một hành động đã được nhận thành công, được hiểu và được chấp nhận.
• 3xx: chuyển hướng. Yêu cầu thêm các hành động khác để xử lý yêu cầu.
• 4xx: lỗi client. Yêu cầu có chứa cú pháp sai và không thể hoàn thành ở máy chủ.
• 5xx: lỗi máy chủ. Máy chủ thất bại trong việc hoàn thành một yêu cầu hợp lệ.
• 6xx: lỗi toàn cục. Yêu cầu không thể hoàn thành ở bất cứ máy chủ nào.
Giao thức mô tả phiên (SDP) là một định dạng cho việc mô tả định dạng media và loại media được dùng trong một phiên. SIP sử dụng SDP như là một phần tải trong bản tin của nó để thực hiện chức năng trao đổi khả năng giữa các người dùng. Ví dụ, nội dung của SDP có thể chỉ ra loại mã hóa hỗ trợ bởi user agent và giao thức sử dụng trao đổi thời gian thực (RTP).