Các Khái Niệm Mạng Máy Tính Cơ Bản

Việc nắm vững các khái niệm Các Khái Niệm Mạng Máy Tính Cơ Bản này giống như việc bạn đang học cách "bản đồ hóa" toàn bộ Internet vậy. Chúng là những viên gạch nền móng giúp dữ liệu đi từ điểm A đến điểm B một cách chính xác.

Các Khái Niệm Mạng Máy Tính Cơ Bản

Hãy cùng đi vào chi tiết từng khái niệm nhé:


1. Mô hình OSI (7 tầng)

Mô hình OSI là một khung lý thuyết giúp chúng ta hiểu cách các giao thức mạng tương tác với nhau.

TầngTên (Tiếng Anh)Chức năng chính
7ApplicationGiao diện người dùng (HTTP, FTP, SMTP).
6PresentationMã hóa, nén và định dạng dữ liệu (SSL/TLS, JPEG).
5SessionThiết lập và duy trì phiên kết nối.
4TransportTruyền tải dữ liệu giữa các đầu cuối (TCP, UDP).
3NetworkĐịnh tuyến dữ liệu dựa trên địa chỉ IP.
2Data LinkTruyền dữ liệu giữa các nút mạng kề nhau (Địa chỉ MAC).
1PhysicalTruyền dẫn vật lý (Cáp quang, sóng Wifi, điện tín).

2. Mô hình TCP/IP (4 tầng)

Đây là mô hình thực tế đang vận hành Internet hiện nay. Nó tinh gọn hơn OSI:

  1. Application (Ứng dụng): Gộp tầng 5, 6, 7 của OSI.

  2. Transport (Giao vận): Giống tầng 4 OSI.

  3. Internet: Giống tầng 3 OSI (Xử lý gói tin IP).

  4. Network Access (Truy cập mạng): Gộp tầng 1 và 2 của OSI.


3. Địa chỉ IP và MAC (Định danh thiết bị)

Hai loại địa chỉ này luôn đi đôi nhưng đóng vai trò khác nhau:

  • Địa chỉ MAC (Media Access Control): Là địa chỉ vật lý duy nhất được ghi vào phần cứng (Card mạng) bởi nhà sản xuất. Nó giúp các thiết bị nhận diện nhau trong một mạng nội bộ (LAN).

    • Ví dụ: 00-B0-D0-63-C2-26

  • Địa chỉ IP (Internet Protocol): Là địa chỉ logic dùng để định danh thiết bị trên toàn mạng lưới (như địa chỉ nhà).

    • IPv4: 32-bit (Ví dụ: 192.168.1.1).

    • IPv6: 128-bit, ra đời để thay thế IPv4 đang dần cạn kiệt.


4. DNS (Hệ thống phân giải tên miền)

DNS đóng vai trò như một "danh bạ điện thoại" của Internet.

Con người thích nhớ tên (https://www.google.com/search?q=google.com), nhưng máy tính chỉ hiểu số (IP: 142.250.190.46). Khi bạn gõ một URL, DNS sẽ dịch tên đó sang địa chỉ IP tương ứng để trình duyệt có thể truy cập.


5. DHCP (Giao thức cấu hình động)

Thử tưởng tượng mỗi khi bạn vào quán cafe, bạn phải tự tay nhập địa chỉ IP vào điện thoại để dùng Wifi? Rất phiền phức!

DHCP sinh ra để giải quyết việc đó. Khi thiết bị kết nối vào mạng, nó sẽ gửi yêu cầu và máy chủ DHCP sẽ tự động cấp phát một địa chỉ IP tạm thời (Lease) cho thiết bị đó.


Tóm tắt sự kết nối:

Khi bạn truy cập một trang web:

  1. DHCP cấp cho bạn một IP để vào mạng.

  2. DNS tìm địa chỉ IP của trang web bạn muốn.

  3. TCP/IP chia nhỏ yêu cầu của bạn thành các gói tin.

  4. IP Address định hướng gói tin đi qua các Router.

  5. MAC Address giúp gói tin tìm đúng máy tính của bạn trong mạng nội bộ.


TCP 3-way handshake

  • TCP 3-way handshake: Đây chính là "thủ tục chào hỏi" quan trọng nhất trong thế giới mạng để đảm bảo hai thiết bị có thể nói chuyện với nhau một cách tin cậy.
  • TCP 3-way handshake (Bắt tay 3 bước) là quá trình thiết lập một kết nối TCP giữa Client (máy khách) và Server (máy chủ) trước khi dữ liệu thực sự được truyền đi. Nó đảm bảo rằng cả hai bên đều sẵn sàng và có thể gửi/nhận dữ liệu.


Quy trình 3 bước diễn ra như sau:

  1. Bước 1: SYN (Synchronize)

    • Client gửi một gói tin có cờ SYN được bật lên tới Server.

    • Mục đích: Client muốn thiết lập kết nối và thông báo một số thứ tự (Sequence Number) khởi đầu.

  2. Bước 2: SYN-ACK (Synchronize-Acknowledgment)

    • Server nhận được gói SYN và phản hồi bằng gói tin có cả hai cờ SYNACK được bật.

    • Mục đích: Server xác nhận đã nhận yêu cầu của Client (ACK) và cũng muốn thiết lập kết nối ngược lại từ phía mình (SYN).

  3. Bước 3: ACK (Acknowledgment)

    • Client nhận được gói SYN-ACK và gửi lại một gói tin có cờ ACK.

    • Mục đích: Client xác nhận đã nhận được phản hồi của Server.

Kết quả: Một "đường ống" kết nối đã được thiết lập thành công. Bây giờ dữ liệu có thể bắt đầu chảy qua lại.


Tại sao cần tới 3 bước mà không phải 2?

Hãy tưởng tượng một cuộc hội thoại qua bộ đàm:

  • Bước 1 (Client): "A nghe rõ trả lời, tôi muốn nói chuyện!"

  • Bước 2 (Server): "Nghe rõ A! Tôi cũng sẵn sàng nói, anh nghe thấy tôi không?"

  • Bước 3 (Client): "Nghe rõ! Bắt đầu thôi."

Nếu chỉ có 2 bước, Server sẽ không bao giờ biết được liệu Client có thực sự nghe thấy phản hồi của mình ở bước 2 hay không. Điều này giúp ngăn chặn các kết nối "treo" gây lãng phí tài nguyên máy chủ.

Các thông số quan trọng (Cần lưu ý):

Trong quá trình này, các biến số toán học sau được trao đổi:

  • ISN (Initial Sequence Number): Mỗi bên chọn một số ngẫu nhiên làm số thứ tự bắt đầu.

  • Nếu Client gửi gói tin với Seq = x, thì Server sẽ phản hồi Ack = x + 1.

TCP 4-way handshake

  • Nếu 3-way handshake là lời chào hỏi để bắt đầu câu chuyện, thì TCP 4-way handshake chính là quy trình "tạm biệt" lịch sự để đóng kết nối.
  • Sở dĩ việc ngắt kết nối cần tới 4 bước (nhiều hơn lúc bắt đầu 1 bước) là vì TCP là giao thức song công toàn phần (Full-duplex). Điều này có nghĩa là tại một thời điểm, Client có thể xong việc nhưng Server vẫn còn dữ liệu đang gửi dở, vì vậy mỗi chiều phải được đóng độc lập.


Quy trình 4 bước diễn ra như sau:

  1. Bước 1: FIN (Finish) từ Client

    • Khi Client không còn dữ liệu để gửi, nó gửi một gói tin với cờ FIN được bật.

    • Trạng thái: Client chuyển sang chế độ "chờ xác nhận đóng".

  2. Bước 2: ACK (Acknowledgment) từ Server

    • Server nhận được gói FIN và gửi lại gói ACK để xác nhận.

    • Lưu ý: Lúc này, Server thông báo: "Tôi đã biết bạn muốn dừng, nhưng đợi tôi một chút nếu tôi còn dữ liệu chưa gửi xong."

    • Trạng thái: Kết nối ở trạng thái Half-close (Client không gửi nữa nhưng vẫn có thể nhận).

  3. Bước 3: FIN từ Server

    • Sau khi Server đã gửi hết dữ liệu còn lại, nó sẽ gửi một gói FIN của riêng mình tới Client để báo hiệu: "Tôi cũng xong rồi, đóng kết nối nhé."

  4. Bước 4: ACK cuối cùng từ Client

    • Client nhận gói FIN và gửi lại gói ACK cuối cùng để xác nhận Server có thể đóng hoàn toàn.

    • Trạng thái: Client đợi một khoảng thời gian ngắn (gọi là Time-Wait) để đảm bảo gói ACK cuối này đã đến tay Server trước khi thực sự biến mất.


Tại sao cần bước "Time-Wait"?

Client không đóng ngay lập tức sau bước 4 mà thường đợi khoảng 2 MSL (Maximum Segment Lifetime). Lý do là:

  • Đảm bảo độ tin cậy: Nếu gói ACK cuối cùng bị thất lạc, Server sẽ gửi lại gói FIN. Nếu Client đóng máy ngay, Server sẽ bị lỗi vì không ai nhận lại gói FIN đó.

  • Tránh nhầm lẫn: Đảm bảo các gói tin cũ của kết nối này biến mất hoàn toàn khỏi mạng trước khi một kết nối mới (có cùng địa chỉ IP và Port) được thiết lập.


Bảng so sánh nhanh

Đặc điểm3-way Handshake4-way Handshake
Mục đíchThiết lập kết nốiNgắt kết nối
Cờ chínhSYN, SYN-ACK, ACKFIN, ACK, FIN, ACK
Trạng thái cuốiESTABLISHED (Đã kết nối)CLOSED (Đã đóng)

Nhận xét