Ở bài trước, chúng ta đã tìm hiểu về khái niệm Internet là gì cùng những thành phần cấu tạo nên Internet. Trong bài tiếp theo của Series Nhập môn mạng máy tính chúng ta sẽ tìm hiểu tiếp về tổng quan về dịch vụ của Internet và vai trò của các dịch vụ này trong Internet là gì, sau đó là khái niệm về API và cuối cùng là tìm hiểu về các giao thức của Internet. Hãy cùng nhau bắt đầu nhé!
Tổng quan về dịch vụ của Internet
Như đã trình bày ở bài trước, Internet được hình thành từ rất nhiều thành phần khác nhau. Tuy nhiên, nhìn ở góc độ khác, Internet là cơ sở hạ tầng nhằm cung cấp các dịch vụ cho ứng dụng mạng. Các ứng dụng này bao gồm:
- Thư điện tử (Email)
- Trình duyệt Web (Web Browser)
- Các ứng dụng nhắn tin tức thời (Instant Messaging) như: Skype, Messenger, Viper, Zalo,…
- Voice-over-IP (VoIP) – Xem thêm về VoIP: https://en.wikipedia.org/wiki/Voice_over_IP
- Các ứng dụng đa phương tiện như: xem video, nghe mp3, xem TV, chơi game,…
- Truy cập từ xa như: Remote Desktop, Team Viewer,…
Các ứng dụng này được gọi là các ứng dụng phân tán (Distributed Applications), vì chúng chạy trên nhiều thiết bị đầu cuối khác nhau nhằm trao đổi thông tin với nhau.
Lưu ý: Các ứng dụng trên Internet chạy trên các thiết bị đầu cuối, chứ không chạy trên các bộ chuyển gói tin trên mạng lõi.
API (Application Programing Interface)
Internet còn là cơ sở hạ tầng nhằm cung cấp các dịch vụ cho ứng dụng. Vì ứng dụng chạy trên các thiết bị đầu cuối, ta cần viết các phần mềm chạy trên các thiết bị đầu cuối. Giả sử chung ta cần làm cho các phần mềm đang chạy trên các thiết bị đầu cuối khác nhau cần gửi dữ liệu cho nhau thì phải cần một qui chuẩn giúp cho một thành phần của ứng dụng, đang chạy trên một thiết bị đầu cuối, có thể giao tiếp đến một thành phần ứng dụng khác (đang chạy trên một thiết bị đầu cuối khác).
Các thiết bị đầu cuối được nối vào Internet đều cung cấp một giao diện lập trình ứng dụng (Application Programing Interface, viết tắt là API). API này quy định cách thức một phần mềm đang chạy trên một thiết bị đầu cuối, yêu cầu hạ tầng Internet chuyển dữ liệu đến một phần mềm khác – đang chạy trên một thiết bị đầu cuối khác. Như vậy, Internet API chính là một tập các quy tắc mà phần mềm bên gửi phải tuân thủ để Internet có thể chuyển dữ liệu đến phần mềm bên nhận.
Ở đây, chúng ta sẽ xem xét một tình huống tương tự. Giả sử là An muốn gửi một lá thư cho Bình nhờ dịch vụ bưu chính. Dĩ nhiên là An không thể viết lá thư rồi ném lá thư qua cửa sổ nhà cậu ấy. Thay vào đó, dịch vụ bưu chính đòi hỏi rằng An phải để lá thư vào trong một phong bì; viết tên người nhận (Bình); ghi rõ địa chỉ người nhận; dán niêm phong; dán tem ở góc trên bên phải của phong bì; và cuối cùng là bỏ phong bì thư vào hộp thư của bưu điện.
Điều này nghĩa là, dịch vụ bưu chính phải có một “API cho dịch vụ bưu chính”, chính là một tập các quy tắc mà An phải tuân thủ, để có thể yêu cầu dịch vụ bưu chính chuyển thư của cậu ấy cho Bình. Theo cách tương tự như thế, Internet có một API mà phần mềm bên gửi dữ liệu phải tuân thủ, để có thể yêu cầu Internet chuyển dữ liệu cho phần mềm bên nhận.
Ngoài ra các dịch vụ khác trong bưu chính, chẳng hạn như phát chuyển nhanh, xác nhận nhận được từ bên nhận, gửi thường, và nhiều dịch vụ khác. Thì đối với Internet cũng cung cấp nhiều dịch vụ cho các ứng dụng của nó. Khi phát triển một ứng dụng Internet, ta phải chọn các dịch vụ Internet phù hợp.
Các giao thức của Internet
Giờ đây chúng ta đã có một chút cảm nhận về Internet là gì. Hãy xem xét một từ khá thông dụng và quan trọng trong mạng máy tính: giao thức. Vậy thì giao thức là gì? Giao thức làm những gì?
Cách dễ nhất để hiểu được giao thức trong mạng máy tính là xem xét sự tương tự trong thế giới con người, do bởi con người chúng ta cũng thường xuyên thực hiện giao thức.
Ví dụ những gì bạn làm khi muốn hỏi giờ. Một trao đổi qua lại điển hình sẽ diễn ra như hình dưới đây.
Quy tắc giao tiếp thông thường bắt đầu như sau:
- Một người trước tiên phải chào người kia (“Chào Anh”) để bắt đầu quá trình trao đổi thông tin với người đó.
- Lời đáp “Chào Chị” để đáp lại như một sự ngụ ý rằng người kia có thể tiếp tục hỏi (giờ).
- Một lời đáp khác có thế là “Xin lỗi, tôi đang bận” để thể hiện một thái độ không muốn tiếp tục trao đổi. Trong trường hợp này, người khơi chuyện không nên hỏi tiếp. Đôi khi người khơi chuyện không nhận được một lời đáp nào, trường hợp này người ta đành phải từ bỏ việc hỏi giờ.
Nếu con người cư xử theo giao thức khác nhau (chẳng hạn, một người thì kiểu cách, một người thì cẩu thả), thì sẽ không hợp tác được với nhau và không có một kết quả dự kiến tốt đẹp nào được tựu thành. Điều này cũng đúng cho việc truyền thông mạng – cần hai (hay nhiều) thực thể truyền thông chạy cùng một giao thức để hoàn tất một tác vụ.
Giao thức của Internet cũng tương tự như giao tiếp con người, ngoại trừ là các thực thể trao đổi thông điệp và thực hiện các hành động là các thành phần phần cứng và phần mềm (ví dụ máy tính, PDA, điện thoại di động, bộ định tuyến, và các thiết bị có khả năng nổi mạng khác).
Các giao thức được cài đặt sao cho phần cứng chịu trách nhiệm kiếm soát dòng bit trên “dây” nối giữa hai card mạng; tại các thiết bị đầu cuối, giao thức kiểm soát tắc nghẽn chịu trách nhiệm kiếm soát tốc độ truyền gói tin giữa bên truyền và bên nhận; trong bộ định tuyến, giao thức định tuyến chịu trách nhiệm xác định đường đi từ nguồn đến đích cho gói tin. Các giao thức xuất hiện khắp nơi trên Internet, và do đó một phần lớn của Series này là bàn về các giao thức.
Một ví dụ về một giao thức mạng máy tính mà có thế bạn khá quen thuộc, đó là khi bạn nhập vào trình duyệt Web một địa chỉ URL của một trang Web. Kịch bản này được minh họa ở hình bên phải của hình trên.
Trước tiên, máy tính của bạn sẽ gửi một yêu cầu thiết lập kết nối đến máy chủ Web và chờ đợi trả lời. Máy chủ Web sẽ nhận được thông điệp yêu cầu kết nối và trả lời bằng một thông điệp chấp nhận. Sau đó, máy tính có thể gửi thông điệp GET để yêu cầu thông tin từ máy chủ Web. Cuối cùng, máy chủ Web sẽ trả lại trang Web cho máy tính của bạn.
Giao thức định nghĩa khuôn dạng và thứ tự các thông điệp được trao đổi giữa hai hay nhiều thực thể truyền thông, cũng như những hành động cần được thực hiện khi truyền, hoặc nhận thông điệp, hoặc khi có một sự kiện khác xảy ra.
Tổng kết
Như vậy, qua bài này chúng ta thấy được rằng Internet như là một hạ tầng nhằm cung cấp các dịch vụ cho ứng dụng phân tán. Những tiến bộ của các thành phần cấu thành Internet là do sự định hướng xuất phát từ nhu cầu của các ứng dụng mới. Do đó, điều quan trọng cần nhớ là Internet là một cơ sở hạ tầng mà ở đó các ứng dụng mới không ngừng được phát minh và khai thác.
Internet, và mạng máy tính nói chung, làm bùng nổ việc sử dụng các giao thức. Qua Series này, bạn sẽ thấy rằng có một số giao thức rất đơn giản, trong khi đó thì có một số giao thức khác lại rất phức tạp và tinh vi. Ở bài sau chúng ta sẽ tiếp tục tìm hiểu về các thành phần mạng biên của Internet.