Thời đại công nghệ số và chuyển đổi số đang ở giai đoạn phát triển thịnh vượng cùng với sự lớn mạnh của Internet là phương thức kết nối nhân loại trên toàn cầu. Mô hình TCP/IP, một giao thức được sử dụng phổ biến đối với Internet ngày nay. Qua bài viết này, Thảo Nguyên của Phòng kỹ thuật VnPro sẽ chia sẻ cho các bạn cách thức hoạt động của mô hình TCP/IP nói chung và nhiệm vụ của giao thức HTTP trong TCP/IP nói riêng.
I. Tổng quan hoạt động của mô hình tcp/ip
Mô hình TCP/IP tham chiếu và định nghĩa cho một tập hợp lớn các giao thức cho phép các máy tính giao tiếp với nhau. Chúng ta có thể sử dụng trình duyệt để kết nối trang web sử dụng cho hầu hết mọi ứng dụng và tất cả đều hoạt động bởi TCP/IP. TCP/IP tạo ra một bộ quy tắc cho phép chúng kết nối máy tính hay thiết bị di động, cắm loại cáp phù hợp, kết nối và sử dụng mạng. Hệ điều hành trên máy tính đã thực hiện các phần của mô hình TCP/IP. Mô hình TCP/IP đã tham chiếu một số tiêu chuẩn mạng LAN cho việc tích hợp chuẩn Ethernet hoặc mạng LAN không dây. Để giúp mọi người hiểu rõ hơn về mô hình mạng, hình dưới đây mô tả các tầng của TCP/IP.
Hình 1. Mô hình TCP/IP
Mô hình TCP/IP tiêu chuẩn tồn tại trong RFC bao gồm 4 lớp được chồng lên nhau, tầng cao nhất là Tầng ứng dụng (Application) à Tầng giao vận (Transport) à Tầng mạng (Internet) à Tầng liên kết (Link).
Nhưng cho mục đích của mạng thực và cho CCNA ngày nay chúng ta hãy sưc mô hình 5 lớp như hình trên. Hoạt động của mô hình 5 lớp như sau:
Lớp dưới cùng tập trung vào cách truyền các bit qua từng liên kết riêng lẻ. Lớp liên kết dữ liệu tập trung vào việc gửi dữ liệu qua một loại liên kết vật lý. Ví dụ: mạng sử dụng các giao thức liên kết dữ liệu khác nhau cho mạng LAN Ethernet so với mạng LAN không dây. Lớp network tập trung vào việc cung cấp dữ liệu trên toàn bộ đường dẫn từ máy tính gửi ban đầu đến máy tính đích cuối cùng. Và hai lớp trên cùng tập trung nhiều hơn vào các ứng dụng cần gửi và nhận dữ liệu.
Một số giao thức TCP/IP sử dụng trong cách tầng được liệt kê qua bảng sau:
Tầng ứng dụng sử dụng giao thức cung cấp dịch vụ cho phần mềm ứng dụng đang chạy trên máy tính. Lớp ứng dụng cung cấp một giao diện giữa phần mềm chạy trên máy tính và hạ tầng mạng. Ví dụ giao thức ứng dụng HTTP xác định cách trình duyệt web có thể lấy nội dung của trang web từ máy chủ web. Có thể cho rằng, ứng dụng TCP / IP phổ biến nhất hiện nay là trình duyệt web. Tiếp theo bài viết sẽ chia sẻ cho các bạn tổng quan về cơ chế giao thức HTTP.
II. CƠ CHẾ GIAO THỨC HTTP (HYPERTEXT TRANSFER PROTOCOL)
Xem xét ví dụ sau, cách các ứng dụng trình duyệt web và ứng dụng máy chủ web sử dụng giao thức lớp ứng dụng TCP / IP. Để thực hiện yêu cầu một trang web và trả lại nội dung của trang web, các ứng dụng sử dụng Giao thức truyền siêu văn bản (HTTP).
Hình 2. HTTP GET Request, HTTP Reply và One Data-Only Message
Để lấy trang web từ Larry, ở bước 1, Bob gửi một tin nhắn có tiêu đề HTTP.
Nói chung, các giao thức sử dụng tiêu đề như một nơi để đưa thông tin được sử dụng bởi giao thức đó. Tiêu đề HTTP này bao gồm yêu cầu "lấy" (GET) một tệp. Yêu cầu thường chứa tên của tệp (trong trường hợp này là home.htm) hoặc nếu không có tên tệp nào được đề cập, máy chủ web sẽ giả định rằng Bob muốn có trang web mặc định.
Bước 2 trong Hình 2 cho thấy phản hồi từ máy chủ web Larry. Thông báo bắt đầu bằng tiêu đề HTTP, với mã trả về (200), có nghĩa là một cái gì đó đơn giản như “OK” được trả lại trong tiêu đề. HTTP cũng xác định các mã trả lại khác để máy chủ có thể cho trình duyệt biết liệu yêu cầu có hoạt động hay không. Tin nhắn thứ hai cũng bao gồm phần đầu tiên của tệp được yêu cầu.
Bước 3 trong Hình 2 cho thấy một thông báo khác từ máy chủ web Larry tới trình duyệt web Bob, nhưng lần này không có tiêu đề HTTP. HTTP truyền dữ liệu bằng cách gửi nhiều tin nhắn, mỗi tin nhắn chứa một phần của tệp. Thay vì lãng phí dung lượng bằng cách gửi HTTP lặp đi lặp lại liệt kê cùng một thông tin, các thông báo bổ sung này chỉ đơn giản là bỏ qua tiêu đề.
Làm thế nào để một giao thức lớp truyền tải (Transport) cung cấp một dịch vụ cho một
giao thức lớp cao hơn? Phần tiếp giới thiệu khái niệm chung đó bằng cách tập trung vào một dịch vụ do TCP cung cấp: khôi phục lỗi.
III. QUÁ TRÌNH KHÔI PHỤC LỖI TRONG HTTP
Ví dụ, trong hình 3, Bob và Larry đã sử dụng HTTP để chuyển trang chủ từ máy chủ web Larry sang trình duyệt web của Bob. Nhưng điều gì sẽ xảy ra nếu yêu cầu HTTP GET của Bob bị mất khi truyền qua mạng TCP / IP? Hoặc, điều gì sẽ xảy ra nếu phản hồi của Larry, bao gồm nội dung của trang chủ, bị mất? Vâng, như bạn có thể mong đợi, trong cả hai trường hợp, trang sẽ không hiển thị trong trình duyệt của Bob.
TCP / IP cần một cơ chế để đảm bảo cung cấp dữ liệu qua mạng. Bởi vì nhiều giao thức lớp ứng dụng có thể muốn một cách để đảm bảo việc phân phối dữ liệu trên một mạng lưới, những người tạo ra TCP đã đưa vào một tính năng khôi phục lỗi. Để khôi phục lỗi, TCP sử dụng khái niệm xác nhận. Hình 3 phác thảo ý tưởng cơ bản đằng sau cách TCP thông báo dữ liệu bị mất và yêu cầu người gửi thử lại.
Hình 3. Qúa trình khôi phục lỗi cung cấp đến HTTP.
Hình 3 cho thấy máy chủ web Larry đang gửi một trang web tới trình duyệt web Bob, sử dụng ba thông báo tỷ lệ riêng. Lưu ý rằng hình này cho thấy các tiêu đề HTTP giống như Hình 2, nhưng nó cũng hiển thị một tiêu đề TCP. Tiêu đề TCP hiển thị số thứ tự (SEQ) với mỗi thư. Trong ví dụ này, mạng có sự cố và mạng không gửi được thông điệp TCP (được gọi là phân đoạn) với số thứ tự 2. Khi Bob nhận được thông báo có trình tự số 1 và số 3, nhưng không nhận được tin nhắn có số thứ tự 2, Bob nhận ra rằng tin nhắn 2 đã bị mất. Việc nhận ra bằng logic TCP của Bob khiến Bob gửi một phân đoạn TCP quay lại Larry, yêu cầu Larry gửi lại tin nhắn 2.
I. Tổng quan hoạt động của mô hình tcp/ip
Mô hình TCP/IP tham chiếu và định nghĩa cho một tập hợp lớn các giao thức cho phép các máy tính giao tiếp với nhau. Chúng ta có thể sử dụng trình duyệt để kết nối trang web sử dụng cho hầu hết mọi ứng dụng và tất cả đều hoạt động bởi TCP/IP. TCP/IP tạo ra một bộ quy tắc cho phép chúng kết nối máy tính hay thiết bị di động, cắm loại cáp phù hợp, kết nối và sử dụng mạng. Hệ điều hành trên máy tính đã thực hiện các phần của mô hình TCP/IP. Mô hình TCP/IP đã tham chiếu một số tiêu chuẩn mạng LAN cho việc tích hợp chuẩn Ethernet hoặc mạng LAN không dây. Để giúp mọi người hiểu rõ hơn về mô hình mạng, hình dưới đây mô tả các tầng của TCP/IP.
Hình 1. Mô hình TCP/IP
Mô hình TCP/IP tiêu chuẩn tồn tại trong RFC bao gồm 4 lớp được chồng lên nhau, tầng cao nhất là Tầng ứng dụng (Application) à Tầng giao vận (Transport) à Tầng mạng (Internet) à Tầng liên kết (Link).
Nhưng cho mục đích của mạng thực và cho CCNA ngày nay chúng ta hãy sưc mô hình 5 lớp như hình trên. Hoạt động của mô hình 5 lớp như sau:
Lớp dưới cùng tập trung vào cách truyền các bit qua từng liên kết riêng lẻ. Lớp liên kết dữ liệu tập trung vào việc gửi dữ liệu qua một loại liên kết vật lý. Ví dụ: mạng sử dụng các giao thức liên kết dữ liệu khác nhau cho mạng LAN Ethernet so với mạng LAN không dây. Lớp network tập trung vào việc cung cấp dữ liệu trên toàn bộ đường dẫn từ máy tính gửi ban đầu đến máy tính đích cuối cùng. Và hai lớp trên cùng tập trung nhiều hơn vào các ứng dụng cần gửi và nhận dữ liệu.
Một số giao thức TCP/IP sử dụng trong cách tầng được liệt kê qua bảng sau:
Các tầng trong mô hình TCP/IP | Giao thức được sử dụng |
Application | HTTP, POP3, STMP |
Transport | TCP, UDP |
Internet | IP, ICMP |
Data Link và Physical | Ethernet, 802.11 (Wi-Fi) |
II. CƠ CHẾ GIAO THỨC HTTP (HYPERTEXT TRANSFER PROTOCOL)
Xem xét ví dụ sau, cách các ứng dụng trình duyệt web và ứng dụng máy chủ web sử dụng giao thức lớp ứng dụng TCP / IP. Để thực hiện yêu cầu một trang web và trả lại nội dung của trang web, các ứng dụng sử dụng Giao thức truyền siêu văn bản (HTTP).
Hình 2. HTTP GET Request, HTTP Reply và One Data-Only Message
Để lấy trang web từ Larry, ở bước 1, Bob gửi một tin nhắn có tiêu đề HTTP.
Nói chung, các giao thức sử dụng tiêu đề như một nơi để đưa thông tin được sử dụng bởi giao thức đó. Tiêu đề HTTP này bao gồm yêu cầu "lấy" (GET) một tệp. Yêu cầu thường chứa tên của tệp (trong trường hợp này là home.htm) hoặc nếu không có tên tệp nào được đề cập, máy chủ web sẽ giả định rằng Bob muốn có trang web mặc định.
Bước 2 trong Hình 2 cho thấy phản hồi từ máy chủ web Larry. Thông báo bắt đầu bằng tiêu đề HTTP, với mã trả về (200), có nghĩa là một cái gì đó đơn giản như “OK” được trả lại trong tiêu đề. HTTP cũng xác định các mã trả lại khác để máy chủ có thể cho trình duyệt biết liệu yêu cầu có hoạt động hay không. Tin nhắn thứ hai cũng bao gồm phần đầu tiên của tệp được yêu cầu.
Bước 3 trong Hình 2 cho thấy một thông báo khác từ máy chủ web Larry tới trình duyệt web Bob, nhưng lần này không có tiêu đề HTTP. HTTP truyền dữ liệu bằng cách gửi nhiều tin nhắn, mỗi tin nhắn chứa một phần của tệp. Thay vì lãng phí dung lượng bằng cách gửi HTTP lặp đi lặp lại liệt kê cùng một thông tin, các thông báo bổ sung này chỉ đơn giản là bỏ qua tiêu đề.
Làm thế nào để một giao thức lớp truyền tải (Transport) cung cấp một dịch vụ cho một
giao thức lớp cao hơn? Phần tiếp giới thiệu khái niệm chung đó bằng cách tập trung vào một dịch vụ do TCP cung cấp: khôi phục lỗi.
III. QUÁ TRÌNH KHÔI PHỤC LỖI TRONG HTTP
Ví dụ, trong hình 3, Bob và Larry đã sử dụng HTTP để chuyển trang chủ từ máy chủ web Larry sang trình duyệt web của Bob. Nhưng điều gì sẽ xảy ra nếu yêu cầu HTTP GET của Bob bị mất khi truyền qua mạng TCP / IP? Hoặc, điều gì sẽ xảy ra nếu phản hồi của Larry, bao gồm nội dung của trang chủ, bị mất? Vâng, như bạn có thể mong đợi, trong cả hai trường hợp, trang sẽ không hiển thị trong trình duyệt của Bob.
TCP / IP cần một cơ chế để đảm bảo cung cấp dữ liệu qua mạng. Bởi vì nhiều giao thức lớp ứng dụng có thể muốn một cách để đảm bảo việc phân phối dữ liệu trên một mạng lưới, những người tạo ra TCP đã đưa vào một tính năng khôi phục lỗi. Để khôi phục lỗi, TCP sử dụng khái niệm xác nhận. Hình 3 phác thảo ý tưởng cơ bản đằng sau cách TCP thông báo dữ liệu bị mất và yêu cầu người gửi thử lại.
Hình 3. Qúa trình khôi phục lỗi cung cấp đến HTTP.
Hình 3 cho thấy máy chủ web Larry đang gửi một trang web tới trình duyệt web Bob, sử dụng ba thông báo tỷ lệ riêng. Lưu ý rằng hình này cho thấy các tiêu đề HTTP giống như Hình 2, nhưng nó cũng hiển thị một tiêu đề TCP. Tiêu đề TCP hiển thị số thứ tự (SEQ) với mỗi thư. Trong ví dụ này, mạng có sự cố và mạng không gửi được thông điệp TCP (được gọi là phân đoạn) với số thứ tự 2. Khi Bob nhận được thông báo có trình tự số 1 và số 3, nhưng không nhận được tin nhắn có số thứ tự 2, Bob nhận ra rằng tin nhắn 2 đã bị mất. Việc nhận ra bằng logic TCP của Bob khiến Bob gửi một phân đoạn TCP quay lại Larry, yêu cầu Larry gửi lại tin nhắn 2.
Trần Thảo Nguyên _ Phòng Kỹ thuật VnPro.