Trong kỹ thuật mạng máy tính, các tài liệu RFC (Request For Comments - RFC) là 1 loạt các bản ghi nhớ chứa những nghiên cứu mới, những phương pháp luận ứng dụng cho công nghệ internet.
Thông qua Hội đồng Internet (Internet Society) các kỹ sư và các nhà khoa học máy tính có thể công bố luận văn dưới hình thức là một bản ghi nhớ RFC để cho những đồng nghiệp khác phê bình hoặc chỉ đơn thuần là để thông báo những tin tức hoặc quan điểm mới về mặt kỹ thuật. Tổ chức chuyên trách kỹ thuật liên mạng (IETF – Internet
Engineering Task Force) chấp nhận những lý thuyết đã được công bố trong các RFC và đã được ứng dụng thực tế như là những tiêu chuẩn cho Internet.
Mỗi một bản RFC chỉ có duy nhất một số đăng ký,một khi số đăng ký đã được công bố thì nó sẽ không bao giờ được sữa chữa hay bị hủy bỏ. Nếu cần được chỉnh sửa thì tác giả của nó sẽ công bố các bản chỉnh sữa vì vậy các bản RFC bị lỗi thời bởi những bản mới hơn của chính nó. Hàng loạt các RFC đã đăng ký hình thành nên lịch sử tiến triển của tiêu chuẩn Internet .
Tiến trình kiến tạo RFC không giống với những tiến trình tiêu chuẩn hóa do những tổ chức chính quy về tiêu chuẩn như ANSI thường làm. Những chuyêng gia về kỹ thuật mạng và truyền thông có thể tự đề bạt một bản dự thảo Internet (Internet Draft) mà không cần sự hỗ trợ từ những cơ quan bên ngoài. Những bản RFC được công nhận thường được công bố với sự phê chuẩn của IETF và đa số là do những chuyên gia tham dự trong các nhóm điều hành của IETF thi hành. Khi mới bắt đầu chúng chỉ là những bản dự thảo Internet, cách xắp xếp này cho phép những bản dự thảo này được thông qua những vòng thăm dò ý kiến ban đầu từ những đồng nghiệp trước khi tài liệu được hoàn thành và thanh lọc để trở thành những bản RFC.
Truyền thống của RFC là dựa vào tính thực dụng, kinh nghjệm từng trải, quyền tiêu chuẩn hóa những bản thảo thông qua thực tế đạt được bởi các cá nhân hoặc một nhóm cộng tác nhỏ. Điều này có ưu điểm đó là hơn rất nhiều so với quy trình chính quy do hội đồng điều khiển mà chúng ta thường thấy ở ANSI hoặc ISO.
Các bản RFC đã từng nổi tiếng vì chất lượng của chúng. Trong các bản RFC chúng ta vừa không gặp những sự nhập nhằng,khó hiểu là một vấn đề phổ biến trong các bản thiết kế dự thảo, vừa không có những chức năng ngoài dự kiến do sai lầm của hội đồng gây ra đó là những điều ám ảnh đối với các tiêu chuẩn chính quy. Và chúng đang mở đường cho một mạng lưới đang phát triển tới tầm cỡ toàn cầu.
Hình thức RFC được khởi đầu vào năm 1969, khi nó là một phần trong hội thảo của dự án ARPANET. Hiện nay, nó là kênh công bố chính thức của IETF, của Ủy Ban Kiến Trúc Mạng ( Internet Architecture Board – IAB) và ở mức độ nào đó là của cộng đồng những kỹ sư nghiên cứu về mạng lưới truyền thông máy tính toàn cầu.
Những bản RFC đầu tiên được tác giả của chúng đánh bằng máy đánh chữ và truyền tay các bản in giữa nhóm những kỹ sư nghiên cứu tại ARPA. Tháng 12 năm 1969, các kỹ sư nghiên cứu phân phát các bản RFC mới thông qua mạng lưới truyền thông ARPANET. Bản RFC đầu tiên với đề tài Phần Mềm Dành Cho Máy Chủ (Host Software), được Steve Crocker, một sinh viên của trường đại học California, Los Angeles ( UCLA) viết và được
công bố vào ngày 07 tháng 04 năm 1969. Trong phiên bản RFC số 3, Steve Crocker đã đặt các bản RFC dưới quyền của “Nhóm Điều Hành Mạng – Network Working Group“, nhóm này chưa bao giờ tồn tại chính thức mà chỉ được định nghĩa là “nhóm người này” nhưng sự ủy quyền của “họ” vẫn tồn tại trong các RFC cho đến nay. Trường đại học UCLA tiếp tục cho ra đời nhiều bản RFC trong những năm 1970 không những vì chất lượng của chúng cao mà còn vì UCLA là một trong những điểm kết nối mạng đầu tiên của ARPANET.
Từ năm 1969 đến 1998, ông Jon Postel làm chủ biên tập RFC. Sau khi hết hạn hợp đồng tài trợ của chính phủ Mỹ, hội đồng Internet (thay mặt cho IETF) ký hợp đồng với chi nhánh điều hành mạng (Networking Division) của trường đại học Nam California (USC) đứng ra làm quyền biên tập và chịu trách nhiệm về việc xuất bản.
Mọi người đều có thể tiếp cận bất kỳ một bản RFC nào tại website chính thức của chủ biên RFC : http://www.rfc-editor.org/rfc.html .
Hầu hết các bản RFC đều hiện hiện hữu ở dạng ASCII, đồng thời cũng có ở một số định dạng khác. Từ năm 2006 trở đi bất kỳ một đặc tả tiêu chuẩn internet nào cũng đều ở dưới dạng ASCII. Không phải bất kỳ bản RFC nào cũng là tiêu chuẩn, chỉ có nhóm IETF đại diện cho nhóm chỉ đạo kỹ thuật kết nối mạng ( Internet Engineering Stearing Group – IESG) là có quyền chuẩn y các bản RFC có thể trở thành tiêu chuẩn. Cấp bậc của các RFC bao gồm : Đề nghị (Proposed – PS), dự thảo (Draft – DS), bảng đầy đủ (Full) – Tiêu chuẩn Internet (Internet Standart – STD). Mỗi một biên tập phụ, thuộc một tiêu chuẩn STD nào đó đều có một mã số riêng. Kể từ năm 2006 thì tiêu chuẩn số 1 là RFC3700. Một số các STD tạo thành nhiều nhóm nhỏ, gồm những RFC có liên quan với nhau. Một bản RFC thử nghiệm có thể là một tài liệu của IETF, hoặc một bản đệ trình cá nhân lên chủ biên RFC. Trên lý thuyết, thực trạng các bản tài liệu như cái tên của nó ám chỉ - chỉ là những “ đề nghị duyệt thảo và bình luận “ ( Request For Comments ). Trên thực tế ,một số bản tài liệu không được nâng lên mức tiêu chuẩn vì không có người tình nguyện thực hành những chi tiết
cụ thể trong thủ tục. Một số tài liệu quan trọng cũng chỉ tồn tại như một “Bản Thảo Internet”, trong khi có những bản RFC chính quy lại trở nên lỗi thời .
Một bản RFC tin tức (news) có thể là bất cứ thứ gì, từ những bản RFC hài hước ( những bản này được công bố vào ngày 1-4 – Ngày nói đùa ) về những giao thức sở hữu cho đến những bản RFC chủ chốt được nhiều người biết đến như RFC 1591. Một số bản RFC tin tức được nhóm lại thành một loạt các bài “ tin tức đáng chú ý” (For Your Information – FYI). Tuy nhiên hiện nay ít ai đăng thêm, một số FYI cũ vẫn còn rất thú vị như FYI 18 hay còn gọi là RFC 1983 bản “ từ vựng dành cho người dùng Internet” (Internet User’s Glossary)
Một bản RFC tồn kho (historic) là một bản lỗi thời và đã có bản RFC khác thay thế nó. Những bản này nói về một giao thức đã không còn được để ý trong hoàn cảnh Internet hiện tại hoặc đã bị đưa ra khỏi mức tiêu chuẩn hóa vì một lý do nào đó. Một số các RFC lỗi thời còn không được liệt kê trong danh sách các bản tồn kho, vì “ tiến trình tiêu chuẩn hóa “ (Internet Standards Process) thường không cho phép những tham chiếu có tính quy chuẩn (normative references) đối với một RFC đang được tiêu chuẩn hóa, từ một bản RFC có cấp độ thấp hơn. Đồng thời ít người chú ý đến việc giải quyết những chi tiết thủ tục yêu cầu, để những bản RFC được phân loại là tồn kho, và những thay đổi được đánh dấu vào tất cả các RFC phụ thuộc vào nó.
Dạng vô danh thường được đặt cho những bản RFC quá cũ không rõ cấp bậc là gì nếu phải công bố. Trong một vài trường hợp những RFC đó còn hoàn toàn không được công bố. Những RFC cũ thường chỉ là những bản “ yêu cầu duyệt thảo và bình luận “, không chú trọng việc đặc tả một giao thức, một chu trình quản lý hoặc bất cứ một thứ gì khác mà các RFC hiện nay đang được dùng để thực hiện.
2. Tổng quan về SIP :
Giao thức SIP (Secssion Initiation Protocol ) là giao thức báo hiệu điều khiển lớp ứng dụng được dùng để thiết lập , duy trì , kết thúc các phiên truyền thông đa phương tiện ( multimedia ) có một hoặc nhiều người tham gia . Các phiên multimedia bao gồm thoại internet , hội nghị và các ứng dụng tương tự có liên quan đến các phương tiện truyền đạt ( media ) như âm thanh , hình ảnh và dữ liệu . SIP sử dụng các bản tin mời ( INVITE ) để thiết lập các phiên và để mang các thông tin mô tả phiên truyền dẫn . SIP hỗ trợ các
phiên đơn bá ( unicast ) và quảng bá ( multicast ) tương ứng các cuộc gọi điểm tới điểm và cuộc gọi đa điểm .
SIP là một giao thức để thiết lập các phiên truyền thông . Các phiên SIP bao gồm
− Hội họp đa phương tiện qua internet .
− Các cuộc gọi điện thoại qua internet .
− Các phiên video qua internet .
− Phân phối đa phuong tiên .
Các phần tử của SIP có thể liên lạc thông qua :
− Liên lạc cá nhân .
− Phát quảng bá .
− Thông qua tổ hợp của các quan hệ liên lạc cá nhân hoặc một tổ hợp của tất cả những phương tiên trên .
Trong các môi trường IPv4 và IPv6 thông qua :
− UDP
− TCP
− SCTP hoặc TLS trên nền TCP SIP là một giao thức mở rộng đơn giản
− Các phương tiên ( Methods ) – Định nghĩa về phiên truyền thông .
− Phần mào đầu ( Headers ) – Mô tả về phiên truyền thông .
− Phần thông tin báo hay còn gọi là phần thân ( Message Body ) – SDP , ký tự , XML .
3. Nguồn gốc sự phát triển của giao thức SIP :
Đầu tiên SIP chỉ đơn thuần là một giao thức dùng để thiết lập phiên quảng bá cho Internet ( từ giữa đến cuối thập kỉ 90 ) . SIP được phát triển bởi SIP Working Group trong IETF. Phiên bản đầu tiên được ban hành vào tháng 3 năm 1999 trong tài liệu RFC 2543 : nó là 1 giao thức dựa trên ý tưởng và cấu trúc của HTTP (HyperText Transfer Protocol) là giao thức trao đổi thông tin của World Wide Web (WWW) và là 1 phần trong kiến trúc
hiện nay được ban hành trong IETF RFC 3261. RFC 3261 hoàn toàn tương thích ngược với RFC 2543, do đó các hệ thống thực thi theo RFC 2543 hoàn toàn có thể sử dụng với các hệ thống theo RFC 3261. Các giao thức có liên quan đến SIP bao gồm :
- Giao thức đặt trước tài nguyên RSVP ( Resource Reservation Protocol ) - Giao thức truyền vận thời gian thực RTTP ( Real Time Transfer Protocol ) - Giao thức cảnh báo phiên SAP ( Session Announcement Protocol )
- Giao thức miêu tả phiên SDP ( Session Description Protocol )
Các chức năng của SIP là độc lập và không phụ thuộc vào bất kỳ giao thức nào thuộc các giao thức trên. Mặt khác SIP có thể hoạt động hỗ trợ với các giao thức báo hiệu khác như H.323 . SIP là một giao thức theo thiết kế mở do đó nó có thể mở rộng thêm các chức năng mới. Sự linh hoạt của bản tin SIP cũng cho phép đáp ứng các dịch vụ thoại tiên tiến bao gồm cả các dịch vụ di động.
Một bản tin SIP có hai phần, phần mào đầu ( Headers ) và phần thân ( Message Body ). Phần thân cho phép phục vụ các ứng dụng khác nhau một cách linh hoạt. Ban đầu phần thân chỉ dùng để chuyển tải các tham số miêu tả phiên SDP như codec, địa chỉ IP đầu cuối, ... Phần thân được sử dụng để mở rộng các ứng dụng của khác nhau của SIP ví dụ như SIP-T cho liên vận PSTN-SIP-PSTN hoặc MSCML (Media Server Control Markup
Language) cho dịch vụ hội nghị.
Sự phổ cập của SIP đã dẫn tới việc một loạt nhóm làm việc liên quan đến SIP được thành lập. Nhóm SIPPING ( Session Initiation Protocol Project Investigation working group) được thành lập với mục đích nghiên cứu các ứng dụng và phát triển các yêu cầu mở rộng cho SIP. Nhóm SIMPLE (SIP for Instant Messaging and Presence Leveraging
Extensions) có nhiệm vụ chuẩn hoá các giao thức cho các ứng dụng nhắn tin tức thời. Các nhóm làm việc khác là PINT (PSTN and Internet Inter-networking), SPIRITS (PSTN/IN requesting Internet Services).
4. Các thành phần bên trong mạng SIP :
Thành phần của SIP : bao gồm SIP User Agent ( UA ) và SIP server .
4.1. SIP User Agent:
SIP UA hoặc thiết bị đầu cuối là điểm cuối của dialog : SIP UA gửi - nhận các yêu cầu và trả lời của SIP , nó là điểm cuối của luồng đa phương – bao gồm ứng dụng trong thiết bị đầu cuối hoặc ứng dụng phần cứng chuyên dụng . UA gồm hai phần :
− User Agent Client ( UAC ) : ứng dụng của người gọi – khởi tạo yêu cầu (request )
− User Agent Server ( UAS ) : chấp nhận , gửi lại , từ chối yêu cầu ( request ) và gửi trả lời cho request đến thay mặt cho người gọi.
UA là thực thể SIP mà tương tác với người sử dụng bằng giao diện.
4.2. SIP Server :
SIP server : Cần phân biệt SIP Server và UA server cũng như mô hình client-server . Ở đây , SIP server là một thực thể luận lý , một SIP server có thể có chức năng của nhiều loại server hay nói cách khác một SIP Server có thể hoạt động như các server khác nhau trong các trường hợp khác nhau . Trong SIP Server có các thành phần quan trọng như : Proxy Server , Redirect Server , Location Server , Registrar Server …
Proxy Sever :
Có thể xem các Proxy Server như các router thiết bị đầu cuối SIP làm nhiệm vụ chuyển tiếp các request tới thực thể khác trong mạng, như vậy chức năng chính của nó trong mạng là định tuyến cho các bản tin đến đích. Tuy nhiên các Proxy SIP sử dụng nguyên tắc định tuyến phức tạp hơn là chỉ tự động chuyển tiếp bản tin dựa vào bảng định tuyến. Các Proxy Server cũng cung cấp các chức năng khác như : xác định tính hợp lệ của bản tin, xác thực người sử dụng, phân nhánh các request, phân giải địa chỉ, hủy bỏ các cuộc gọi đang chờ. Một Proxy có thể lưu (stateful) hoặc không lưu trạng thái (stateless) của bản tin trước đó, thông thường thì Proxy có lưu trạng thái và chúng duy trì trạng thái đó trong suốt Transaction (khoảng 32 giây). Sự linh hoạt của các proxy SIP cho phép các nhà khai thác và quản trị mạng sử dụng các proxy cho các mục đích khác nhau và trong các vị trí khác nhau trong mạng (chẳng hạn như Proxy biên, Proxy lõi, và Proxy của các doanh nghiệp).
Redirect Server :
Truy nhập dữ liệu và dịch vụ định vị để tìm địa chỉ của user và gửi trả về bản tin lớp 300 để thông báo thiết bị là chuyển hướng bản tin tới địa chỉ khác – tự liên lạc thông qua địa chỉ trả về .
Là sever nhận bản tin SIP REGISTER yêu cầu và cập nhật thông tin từ bản tin request vào “ location database “ nằm trong Location Sever .
Location Sever :
Lưu thông tin trạng thái hiện tại của người dùng trong mạng SIP .
4.3. Mối liên hệ giữa các thành phần trong mạng SIP
Trong ví dụ thứ nhất, cho ta có một cái nhìn khái quát về chức năng của Proxy Server, Redirect Server, SIP Phone trong mạng. Giả sử thuê bao có tên user1 trong miền dịch vụ do here.com muốn thực hiện một cuộc gọi thoại tới thuê bao có thể là user2 ( thuộc there.com)
Chức năng của Proxy, Redirect Server trong mạng SIP
1. Khi User 1 muốn gọi tới User 2, trước hết nó sẽ gửi bản tin INVITE 1 đến Proxy Server 1. Proxy Server 1 chuyển tiếp bản tin tới Redirect Server.
2. Redirect Server này xử lý và trả về mã 3xx thông báo cho Proxy Server tự thực hiện kết nối.
3. Proxy Server 1 gửi bản tin INVITE 2 tới đích trả về bởi Redirect Server ( chính là Stateless Proxy Server 1). Vì đây là Stateful Proxy nên thực chất bản tin INVITE được gửi bởi Stateful Proxy là khác so với bản tin nhận được từ User1(ban đầu). 4. Stateless Proxy Server chuyển tiếp bản tin INVITE tới SIP Statefull Proxy 2.
Do là Stateless Proxy nên công việc của nó đơn giản là chuyển tiếp bản tin. 5. SIP Statefull Proxy 2 chuyển tiếp bản tin INVITE tới user2.
6. Khi user2 nhấc máy thì nó sẽ gửi bản tin 200 OK theo chiều ngược lại.
8. Luồng RTP trực tiếp giữa hai thuê bao được thiết lập. Và cuộc gọi được thực hiện.
Trong ví dụ thứ hai sẽ mô tả quá trình một SIP Phone đăng kí với với Registrar Server quản lý nó,hoạt động của Location Server, Proxy Server.
Chức năng của Location, Registrar Server trong mạng SIP
Khi một SIP Phone được kết nối với mạng. Nó liên tục gửi bản tin REGISTER tới Registrar Server để thông báo vị trí hiện tại của nó. Giả sử trong miền dịch vụ có