Ngày nay TCP/IP là khung kiến trúc mạng được sử dụng rộng rãi nhất. Hầu hết máy tính, thiết bị cầm tay, đến các máy chủ đều hỗ trợ TCP/IP. Dù cho hệ thống mạng được sử dụng cho gia đình hay doanh nghiệp thì cũng đều được xây dựng dựa trên những công nghệ mạng giống nhau. Trong thế giới công nghệ thông tin, những hệ thống mạng được tạo ra bởi tổ chức, với mục đích cho phép nhân viên kết nối với nhau, được gọi là “enterprise network”. Những mạng nhỏ hơn giống như một gia đình, một căn hộ, nhưng được sử dụng để làm việc, thường được gọi là “small office / home office (SOHO) network". Người dùng có thể sử dụng PC, cắm dây cáp mạng vào ổ mạng trên tường để kết nối. Cũng có người dùng Laptop bắt sóng wifi để vào mạng.
Nhiều người dùng thậm chí không biết gì về các khái niệm của network. Họ chỉ cần thoải mái sử dụng các tiện ích mà hệ thống mạng mang lại như gửi thư, gọi điện, nhắn tin, lướt web, nghe nhạc mà không cần quan tâm đến sự vận hành của hệ thống mạng bên dưới như thế nào. Bài viết này sẽ thảo luận nhiều về kiến thức nền tảng nguyên lý hoạt động của network.
Kiến trúc TCP/IP Network
“Networking model”, hay còn được gọi là “networking architecture” là một hệ thống tài liệu toàn diện về hệ thống mạng, trong đó mỗi tài liệu sẽ mô tả một khía cạnh hoạt động nào đó. Một vài tài liệu sẽ mô tả giao thức (protocol) - là tập hợp các quy tắc mà tất cả thiết bị phải tuân thủ để có thể tham gia hệ thống mạng. Một số tài liệu khác có các đặc tả vật lý cho các thiết bị mạng…
Bạn có thể nghĩ kiến trúc mạng giống như bản thiết kế kiến trúc của một tòa nhà. Bạn có thể xây nhà mà không cần bản thiết kế. Tuy nhiên, bản thiết kế sẽ đảm bảo tòa nhà đã có đầy đủ công năng, giúp tòa nhà có kết cấu tốt, vững chãi và không bị sụp đổ. Việc có bản vẽ thiết kế cũng sẽ giúp các đội kỹ sư khác (điện, nước, truyền hình…) làm việc phối hợp, cộng tác dễ dàng hơn.
Mô hình TCP/IP định nghĩa một lượng lớn giao thức cho phép các máy tính giao tiếp. Để định nghĩa một giao thức, TCP/IP sử dụng những tài liệu gọi là RFC (requests for comments) (bạn có thể tìm các RFC trên bằng các công cụ tìm kiếm). Mô hình TCP/IP cũng tránh định nghĩa lại các khái niệm đã được định nghĩa trong các tài liệu khác. Ví dụ, Institute of Electrical and Electronic Engineers (IEEE) định nghĩa Ethernet LAN; thì TCP/IP sẽ không định nghĩa lại Ethernet LAN trong RFC của mình nữa mà tham chiếu tới IEEE Ethernet.
Mô hình TCP/IP tạo ra một tập các quy tắc cho phép chúng ta chỉ cần bật máy tính hay mobile lên, cắm dây mạng hoặc bắt wifi, là có thể kết nối với hệ thống mạng. Bạn có thể bật trình duyệt web lên để lướt web, sử dụng một ứng dụng… tất cả hoạt động tốt. Nhưng làm thế nào? Đó là bởi vì hệ điều hành máy tính đã cài đặt bộ giao thức TCP/IP. Thiết bị card mạng, hay card wifi cắm trong máy tính tuân thủ theo các tiêu chuẩn được quy định trong mô hình TCP/IP. Tóm lại, các nhà cung cấp phần cứng và phần mềm đều đã triển khai mô hình TCP/IP.
Để dễ hình dung hơn về “networking model”, mỗi mô hình mạng chia nhỏ các chức năng ra các nhóm nhỏ gọi là “lớp” (layer). Mỗi layer bao gồm các giao thức và tiêu chuẩn, chức năng được định nghĩa thuộc về “lớp” đó.
Ví dụ: TCP/IP model
Lớp Application của TCP/IP
Các giao thức lớp Application cung cấp dịch vụ cho các phần mềm, ứng dụng chạy trên máy tính. Lớp Application không tạo ra các ứng dụng, mà cung cấp các dịch vụ cho các ứng dụng cần sử dụng. Ví dụ, giao thức lớp ứng dụng HTTP định nghĩa cách thức trình duyệt lấy về nội dung của một trang web. Tóm lại, lớp ứng dụng cung cấp giao diện giữa các ứng dụng chạy trên máy tính với hệ thống mạng.
Thực ra hiện nay ứng dụng TCP/IP phổ biến nhất là trình duyệt web. Nhiều nhà cung cấp phần mềm đang chuyển đổi sang chạy trên nền web. Và việc sử dụng trình duyệt web thì thật đơn giản, bạn chỉ việc bật trình duyệt và đánh vào địa chỉ trang web bạn muốn tới.
Nhưng điều gì thực sự đã xảy ra để cho phép một trang web hiển thị trên cửa sổ trình duyệt của bạn? Trình duyệt máy trạm khởi tạo yêu cầu (request) tới máy chủ web, yêu cầu máy chủ gửi trang web về trình duyệt. Máy chủ web đã được cấu hình để biết trang web đang được yêu cầu nằm ở đâu, và gửi về cho máy trạm đã khởi tạo yêu cầu. Máy trạm nhận được trang web và hiển thị lên trình duyệt web. Đây cũng là nguyên lý hoạt động cơ bản của giao thức duyệt web HTTP (giao thức lớp ứng dụng).
Lớp Transport của TCP/IP
Mặc dù lớp Application có khá nhiều giao thức, lớp Transport của TCP/IP lại có rất ít giao thức. Hai giao thức lớp Transport được sử dụng rộng rãi nhất là Transmission Control Protocol (TCP) và User Datagram Protocol (UDP).
Các giao thức lớp Transport cung cấp dịch vụ cho các giao thức lớp Application ở ngay bên trên một lớp. Nhưng làm thế nào mà một giao thức lớp Transport có thể cung cấp dịch vụ cho một giao thức lớp trên? Dưới đây bài viết sẽ giới thiệu cụ thể cho một dịch vụ được cung cấp bởi TCP: phục hồi lỗi (error recovery).
Để biết các giao thức lớp Transport làm những gì, bạn cần phải nghĩ về lớp bên trên của nó, là lớp Application. Tại sao? Bởi vì mỗi lớp sẽ cung cấp các dịch vụ cho lớp ngay bên trên nó, như “dịch vụ” phục hồi lỗi (error recovery) được cung cấp bởi giao thức lớp transport TCP cho các giao thức lớp ứng dụng (Application).
Ví dụ: một máy chủ web sử dụng giao thức HTTP để chuyển một trang web từ web server về máy trạm. Nhưng điều gì sẽ xảy ra nếu quá trình vận chuyển dữ liệu bị lỗi một phần hoặc toàn bộ? Trong các trường hợp đó, trang web sẽ không thể hiện trên trình duyệt của máy trạm.
Vì thế, TCP/IP cần một cơ chế để bảo đảm việc chuyển nhận dữ liệu qua hệ thống mạng. Từ đó, giao thức TCP được thiết kế thêm tính năng phục hồi lỗi (error recovery). Nguyên lý là TCP thêm một trường thông tin gọi là acknowledgments. Trong header của gói tin lớp TCP có thêm một trường SEQ (sequence number), được gắn vào tất cả các gói tin TCP. Khi bên nhận thấy thiếu một gói tin với số SEQ nào đó, nó sẽ thông báo để bên gửi gửi lại gói tin với sequence number đó.
Lớp Network của TCP/IP
Lớp Application có nhiều giao thức. Lớp Transport có ít giao thức hơn, trong đó có hai giao thức chính là TCP và UDP. Còn lớp Network của mô hình TCP/IP cũng có một số giao thức hoạt động, trong đó giao thức chính là IP (Internet protocol). Thực ra, cái tên bộ mô hình TCP/IP chính là tên của hai giao thức được sử dụng nhiều nhất là TCP và IP.
IP cung cấp một vài tính năng, trong đó quan trọng nhất là đặt địa chỉ mạng và định tuyến. Tưởng tượng bạn viết hai lá thư và gửi tới hai người bạn khác nhau, một người ở cùng thành phố, và một người ở thành phố khác trong cùng quốc gia. Bạn viết địa chỉ vào phong bì, dán tem lên phong bì và bỏ vào hòm thư. Đối với bạn, là người sử dụng, có gì khác nhau trong việc gửi hai bức thư tới hai địa chỉ khác nhau đó không? Có vẻ không khác nhau lắm, bạn vẫn chỉ cần bỏ chúng vào cùng một hòm thư, và bưu cục sẽ xử lý các công việc sau đó cho bạn để hai lá thư tới đúng địa chỉ đích.
Tuy nhiên, về phía bưu cục thì cần phải xử lý cho hai lá thư một cách riêng biệt. Với lá thư gửi trong cùng thành phố, không cần phải gửi tới bưu cục khác, chỉ cần đưa thư lên đúng xe tải và vận chuyển thư tới đích. Nhưng với lá thư phải gửi tới thành phố khác, bưu cục địa phương cần phải xác định sẽ gửi thư tới bưu cục thành phố nào. Để toàn bộ hệ thống hoạt động, bưu cục cần có một loạt đường định tuyến cho các tuyến đường xe tải, máy bay, tàu biển… để có thể chuyển lá thư tới đúng đích. Bưu cục cần lựa chọn đúng con đường tốt nhất để gửi lá thư tới đích, đi đường bộ, đường bay, hay đường biển, và gửi thư tới bưu cục tiếp là bưu cục nào.
Tiếp tục về dịch vụ bưu chính, hãy xem sự khác biệt giữa người gửi thư và những công việc mà bưu cục phải xử lý. Người gửi thư thì mong muốn bưu cựu gửi lá thư tới đúng đích trong thời gian sớm nhất. Tuy nhiên, người gửi thư không cần phải chi tiết và chính xác lá thư sẽ đi qua những bưu cục nào để tới đích. Ngược lại, bưu cục không trực tiếp tạo ra lá thư, nhưng nó tiếp nhận lá thư từ người gửi. Bưu cục cần biết các thông tin như địa chỉ người gửi, địa chỉ người nhận…
Quay trở lại lớp Network của mô hình TCP/IP, giao thức Internet Protocol (IP) hoạt động rất giống với bưu cục. IP yêu cầu mỗi thiết bị phải có một địa chỉ IP khác nhau, giống như bưu cục đánh địa chỉ duy nhất cho mỗi căn hộ, mỗi ngôi nhà. Và giao thức IP quy định các đường định tuyến, sao cho các thiết bị định tuyến (router) - làm việc như một bưu cục, chuyển tiếp các gói tin với đúng địa chỉ đích.
Lớp Data-Link và Physical của TCP/IP
Lớp Data-Link và Physical của mô hình TCP/IP định nghĩa các giao thức và đặc tả phần cứng để có thể giao nhận dữ liệu qua các thiết bị. Lớp Physical định nghĩa các tiêu chuẩn về dây dẫn, đường truyền, tín hiệu… Lớp Data-Link có rất nhiều giao thức, như Ethernet, Wireless LAN… Trong khi lớp Physical liên quan đến việc truyền dẫn tín hiệu trên đường truyền, thì lớp Data-Link có các giao thức quy tắc điều khiển việc truy cập trên đường truyền.
Như bạn đã thấy ở các giải thích trên, các giao thức HTTP, TCP, IP và Ethernet trước khi gửi dữ liệu đều sẽ gắn thêm header vào gói tin được cung cấp bởi lớp trên. Quá trình này được gọi là encapsulation - đóng gói.