Tổng quan về giáo trình

Giáo trình thuộc lĩnh vực Mạng máy tính và Truyền thông dữ liệu, được thiết kế cho chương trình đào tạo đại học chuyên ngành Công nghệ thông tin, Khoa học máy tính và Kỹ thuật mạng. Trong cấu trúc tổng thể của môn học, nội dung về Tầng giao vận (Transport Layer - Chương 3) giữ vị trí trung tâm trong kiến trúc phân tầng, đóng vai trò cầu nối trung gian giữa Tầng ứng dụng (Application Layer - Chương 2) và Tầng mạng (Network Layer - Chương 4).

Mục tiêu học tập của tài liệu tập trung vào việc trang bị cho người học bản chất của dịch vụ truyền thông logic giữa các tiến trình ứng dụng (process-to-process communication) chạy trên các thiết bị đầu cuối khác nhau, phân biệt rõ với dịch vụ truyền thông giữa các máy tính (host-to-host) của tầng mạng. Người học được yêu cầu nắm vững các nguyên tắc cốt lõi về dồn kênh/phân kênh, truyền dữ liệu tin cậy (reliable data transfer), kiểm soát lưu lượng (flow control), quản lý trạng thái kết nối và kiểm soát tắc nghẽn (congestion control).

Giáo trình sử dụng cách tiếp cận sư phạm đi từ trừu tượng đến cụ thể: thiết lập các mô hình nguyên lý tổng quát trước, sau đó phân tích việc hiện thực hóa các nguyên lý này thông qua hai giao thức Internet tiêu chuẩn là UDP (User Datagram Protocol) và TCP (Transmission Control Protocol). Điểm đặc thù trong phương pháp trình bày của tài liệu là sự kết hợp giữa mô hình hóa bằng máy trạng thái hữu hạn (Finite State Machine - FSM), phân tích toán học về hiệu suất đường truyền, các ví dụ tương quan trực quan (như mô hình gửi thư của Ann và Bill) cùng hệ thống đối chiếu trực tiếp với các tiêu chuẩn RFC.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

  • Chương 2: Tầng ứng dụng: Cung cấp ngữ cảnh về các dịch vụ mạng (HTTP, FTP, Telnet, DNS, SMTP), kiến trúc khách/chủ (client/server), lập trình socket và định dạng thông điệp ứng dụng.
  • Chương 3: Tầng giao vận: Trọng tâm phân tích dịch vụ truyền thông logic, cơ chế dồn kênh/phân kênh bằng số hiệu cổng, giao thức không hướng nối UDP (RFC 768), mô hình truyền dữ liệu tin cậy $rdt\ 1.0 \rightarrow rdt\ 3.0$, kỹ thuật đường ống (Go-Back-N và Selective Repeat), cấu trúc TCP segment, kiểm soát lưu lượng và thuật toán kiểm soát tắc nghẽn.
  • Chương 4: Tầng mạng: Phân tích giao thức IP với mô hình dịch vụ cố gắng tối đa (best-effort delivery), cơ chế chuyển tiếp gói tin (IP datagram) và giao thức định tuyến RIP.
  • Chương 5: Tầng liên kết dữ liệu: Khảo sát các kỹ thuật phát hiện và sửa lỗi bit ở tầng vật lý/liên kết.
  • Chương 6: Mạng đa phương tiện và thời gian thực: Ứng dụng truyền thông âm thanh/hình ảnh, điện thoại Internet và hội thảo từ xa.
  • Chương 7: An ninh mạng: Cơ chế mã hóa và bảo mật thông điệp ở tầng giao vận.
  • Chương 8: Quản trị mạng: Giao thức quản trị mạng SNMP chạy trên nền UDP.

Progression logic của tài liệu được tổ chức theo cấu trúc từ trên xuống (top-down), dẫn dắt từ nhu cầu của ứng dụng người dùng, phân tích cơ chế điều phối của tầng giao vận, sau đó mới đi sâu vào hạ tầng chuyển mạch mạng và truyền dẫn bên dưới.

Kiến thức nền tảng được xây dựng

  • Dồn kênh và Phân kênh (Multiplexing / Demultiplexing): Mở rộng dịch vụ IP (truyền giữa các máy chủ) thành dịch vụ truyền giữa các tiến trình thông qua cấu trúc tiêu đề 4-PDU. Trường định danh gồm số hiệu cổng nguồn (Source Port) và số hiệu cổng đích (Destination Port) độ dài 16-bit (từ 0 đến 65535, trong đó dải 0–1023 là các cổng dành riêng theo RFC 1700 như Port 21 cho FTP, Port 23 cho Telnet, Port 80 cho HTTP). Phân kênh tại máy chủ kết hợp bộ ba: IP nguồn, Port nguồn, Port đích.
  • Giao thức UDP (RFC 768): Giao thức không hướng nối (connectionless), không duy trì trạng thái kết nối, độ dài tiêu đề cố định 8 bytes gồm 4 trường: Source Port (2 bytes), Destination Port (2 bytes), Length (2 bytes), Checksum (2 bytes). Thuật toán Checksum tính bù một của tổng các từ 16-bit (RFC 1071).
  • Mô hình truyền dữ liệu tin cậy (Principles of Reliable Data Transfer - RDT):
    • $rdt\ 1.0$: Kênh truyền tin cậy hoàn toàn, FSM 1 trạng thái.
    • $rdt\ 2.0$: Xử lý lỗi bit bằng Checksum, phản hồi tích cực (ACK), phản hồi tiêu cực (NAK) và cơ chế truyền lại (ARQ - Stop-and-Wait).
    • $rdt\ 2.1$: Xử lý lỗi trên gói ACK/NAK bằng cách thêm số thứ tự (Sequence Number) 0 và 1 (1-bit sequence).
    • $rdt\ 2.2$: Loại bỏ NAK, sử dụng biên nhận ACK trùng lặp (Duplicate ACK).
    • $rdt\ 3.0$: Xử lý mất gói bằng bộ định thời đếm ngược (Countdown Timer), tạo nên giao thức luân chuyển bit (Alternate Bit Protocol).
  • Kỹ thuật đường ống (Pipelining):
    • Go-Back-N (GBN): Cơ chế cửa sổ trượt kích thước $N$, sử dụng số thứ tự cơ sở (base), số thứ tự tiếp theo (nextseqnum), biên nhận tích lũy (Cumulative ACK), và 1 bộ định thời cho gói tin chưa được ACK lâu nhất. Bên nhận loại bỏ các gói tin đến sai thứ tự.
    • Lặp lại có lựa chọn (Selective Repeat - SR): Bên nhận có bộ đệm lưu trữ các gói tin đến sai thứ tự và gửi ACK riêng lẻ cho từng gói. Bên gửi duy trì timer độc lập cho từng gói tin. Quy tắc kích thước cửa sổ: $N \le 2^{k-1}$ với không gian số thứ tự $2^k$ bit.
  • Giao thức TCP:
    • Đánh số thứ tự theo từng byte trong dòng dữ liệu (byte stream); xác định Sequence Number theo byte đầu tiên của segment; giá trị biên nhận Acknowledgment Number chỉ ra số thứ tự của byte tiếp theo đang chờ nhận.
    • Cơ chế biên nhận ghép đuôi (Piggybacking) như phân tích trong phiên Telnet (RFC 854).
    • Cơ chế truyền lại nhanh (Fast Retransmit - RFC 258) khi nhận 3 ACK trùng lặp liên tiếp.
    • Kiểm soát lưu lượng (Flow Control): Giới hạn lượng dữ liệu chưa được ACK qua biến cửa sổ nhận $RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead]$. Điều kiện gửi: $LastByteSent - LastByteAcked \le RcvWindow$. Xử lý trường hợp $RcvWindow = 0$ bằng segment thăm dò 1 byte.
    • Quản lý kết nối: Bắt tay 3 bước (3-way handshake) thiết lập kết nối (SYN, SYNACK, ACK) với số thứ tự khởi tạo ngẫu nhiên (ISN) theo Sunshine (1978); giải phóng kết nối qua 4 bước (FIN, ACK, FIN, ACK); chuyển đổi qua các trạng thái TCP: CLOSED, SYN_SENT, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT.
    • Kiểm soát tắc nghẽn (Congestion Control): Duy trì biến cửa sổ tắc nghẽn $CongWin$ và ngưỡng $Threshold$. Giới hạn gửi: $LastByteSent - LastByteAcked \le \min{CongWin, RcvWin}$. Thuật toán gồm 2 pha: Khởi đầu chậm (Slow Start - tăng cấp số nhân) và Tránh tắc nghẽn (Congestion Avoidance - tăng tuyến tính).

Kỹ năng phát triển

  • Phân tích cấu trúc tiêu đề gói tin (Header format) của các tầng giao thức, bóc tách trường dữ liệu (PDU).
  • Thiết kế và mô phỏng giao thức mạng bằng mô hình máy trạng thái hữu hạn mở rộng (Extended FSM).
  • Tính toán định lượng hiệu suất mạng ($U_{sender}$) và phân tích ảnh hưởng của độ trễ truyền lan ($P_{prop}$), thời gian phát gói ($T_{trans}$) đối với giao thức Stop-and-Wait và Pipeline.
  • Lập luận, lựa chọn giao thức giao vận (TCP vs UDP) tương thích với yêu cầu cụ thể của ứng dụng mạng.

Phương pháp giảng dạy và học tập

Giáo trình triển khai phương pháp giảng dạy kết hợp giữa mô hình hóa hình thức và giải quyết bài toán kỹ thuật thực tế:

  • Mô hình hóa sư phạm: Xây dựng tiến trình phát triển giao thức thông qua FSM. Mỗi bước chuyển trạng thái đều được định nghĩa rõ ràng bởi cặp Sự kiện kích hoạt / Hành động thực thi.
  • Bài tập và Case Studies thực tế:
    • Phân tích sự suy giảm hiệu suất của giao thức Stop-and-Wait trên đường truyền xuyên quốc gia bờ Đông – bờ Tây nước Mỹ ($C = 1\text{ Gbps}, P_{prop} \approx 15\text{ ms}, SP = 1\text{ KB}$ cho ra $U_{sender} \approx 0.00015$, tương đương thông lượng thực tế chỉ đạt $33\text{ KB/s}$).
    • Khảo sát phiên tương tác Telnet (RFC 854) để làm rõ cơ chế "echo back" và biên nhận piggybacking khi gửi một ký tự 'C'.
    • Phân tích bài toán phân kênh tại máy chủ Web khi tiếp nhận đồng thời nhiều phiên kết nối từ các máy trạm có cùng số hiệu cổng nguồn.
  • Thực hành và bài tập tính toán:
    • Thực hành thuật toán tính bù 1 (1s complement) cho trường Checksum 16-bit theo RFC 1071.
    • Mô phỏng thuật toán xử lý sự kiện của bên gửi TCP qua mã giả (pseudocode switch-case: nhận dữ liệu tầng trên, timeout ngắt timer, nhận ACK).
    • Lần vết trạng thái (State Tracing) của máy trạm và máy chủ qua sơ đồ trạng thái kết nối TCP (SYN_SENT $\rightarrow$ ESTABLISHED $\rightarrow$ FIN_WAIT $\rightarrow$ TIME_WAIT).
  • Phương pháp đánh giá: Đánh giá thông qua các câu hỏi trắc nghiệm kiến trúc, bài tập tính toán thông lượng/cửa sổ trượt, bài toán thiết kế FSM cho kênh truyền có mất mát gói tin và bài tập phân tích log truyền segment.

Điểm nổi bật và cập nhật

Tài liệu tích hợp hệ thống tiêu chuẩn kỹ thuật Internet (RFC) và các nghiên cứu chuyên ngành:

  • Tiêu chuẩn RFC được tích hợp:
    • RFC 768: Đặc tả giao thức UDP.
    • RFC 854: Giao thức Telnet.
    • RFC 1071: Phương thức tính toán Internet Checksum.
    • RFC 1700: Danh mục gán số hiệu cổng chuẩn (Assigned Numbers).
    • RFC 258: Cơ chế truyền lại nhanh (Fast Retransmit) và kiểm soát tắc nghẽn TCP.
    • RFC 2018: Đề xuất mở rộng biên nhận có lựa chọn (SACK - Selective Acknowledgment) cho TCP.
  • Tài liệu nghiên cứu trích dẫn:
    • Sunshine (1978): Nghiên cứu về khởi tạo số thứ tự ngẫu nhiên trong TCP để tránh xung đột gói tin cũ.
    • Stevens (1994): Khảo sát chi tiết về kiến trúc TCP/IP và cài đặt bộ đệm segment không đúng thứ tự.
    • Fall & Mathis (1996), Mathis (1996): Nghiên cứu mở rộng cơ chế biên nhận có lựa chọn cho TCP.
    • Mahdavi (1997): Đề xuất cơ chế kiểm soát lưu lượng thích nghi cho các ứng dụng chạy trên nền UDP.
    • Stone (1998, 2000): Nghiên cứu thực nghiệm về hiệu quả phát hiện lỗi của Checksum trên dữ liệu thực tế.
    • Rhee (1998): Cơ chế đánh số thứ tự và truyền lại trực tiếp tại tầng ứng dụng đối với phần mềm đa phương tiện.
  • Gắn kết thực tiễn: Phân tích sự đánh đổi kỹ thuật trong các hệ thống thực tế: lý do DNS lựa chọn UDP để giảm độ trễ thiết lập kết nối; HTTP sử dụng TCP để bảo toàn tính toàn vẹn dữ liệu Web; sự cố tràn hàng đợi bộ đệm router khi ứng dụng đa phương tiện/truyền hình trực tuyến không kiểm soát tắc nghẽn.

Đối tượng sử dụng giáo trình

  • Sinh viên chuyên ngành: Dành cho sinh viên năm thứ hai hoặc năm thứ ba ngành Công nghệ thông tin, Hệ thống thông tin, Khoa học máy tính, Mạng máy tính và Truyền thông dữ liệu trong học phần Mạng máy tính cơ sở hoặc Mạng máy tính nâng cao.
  • Điều kiện tiên quyết (Prerequisites):
    • Kiến thức toán nhị phân, phép toán logic (XOR, AND, đảo bit, phép cộng bù 1, số học modulo $2^k$).
    • Kiến thức cơ bản về lập trình (cấu trúc điều khiển, mảng, biến, hàng đợi/buffer, hàm, xử lý sự kiện/ngắt).
    • Đã hoàn thành học phần hoặc chương học về Tầng ứng dụng (kiến trúc Client/Server, mô hình Socket API, định dạng thông điệp).
  • Giảng viên: Sử dụng khung nội dung, sơ đồ FSM và mã giả để biên soạn bài giảng lý thuyết, xây dựng đề thi và thiết kế bài tập lớn môn học.
  • Tự học và Tham khảo: Kỹ sư phần mềm mạng, kỹ sư quản trị hệ thống sử dụng để tra cứu cấu trúc gói tin, cơ chế timeout, bắt tay 3 bước và nguyên lý điều khiển luồng dữ liệu TCP/UDP.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu được biên soạn cho sinh viên bậc đại học thuộc khối ngành kỹ thuật công nghệ thông tin, viễn thông và các kỹ sư phần mềm muốn nắm vững nguyên lý hoạt động nội tại của các giao thức mạng.

2. Cần kiến thức nền nào để học?

Người học cần có kiến thức nền tảng về cấu trúc dữ liệu, nguyên lý lập trình cơ bản, các phép toán nhị phân/logic và kiến thức tổng quan về tầng ứng dụng (mô hình client-server, socket).

3. Điểm khác biệt giữa cách tiếp cận của giáo trình này với các tài liệu mạng khác là gì?

Giáo trình phân tách rõ ràng giữa "nguyên lý lý thuyết tổng quát" (thông qua việc xây dựng từng bước các mô hình $rdt\ 1.0$ đến $rdt\ 3.0$, GBN, SR bằng FSM) và "cài đặt thực tế" (phân tích giao thức UDP và TCP trong bộ giao thức TCP/IP).

4. Làm sao để tự học hiệu quả?

Người học nên lần vết (trace) các trạng thái của mô hình FSM bằng giấy bút theo từng tình huống biên nhận ACK/NAK/Timeout, tính toán các bài tập về hiệu suất đường truyền ($U_{sender}$) và đối chiếu mã giả của TCP với các lược đồ trạng thái.

5. Có những tài liệu bổ trợ nào được tham chiếu trong tài liệu?

Tài liệu cung cấp các chỉ dẫn trực tiếp tới các bản tin kỹ thuật RFC (RFC 768, RFC 854, RFC 1071, RFC 1700, RFC 258, RFC 2018) cùng các công trình nghiên cứu chuyên sâu của Stevens (1994), Stone (1998, 2000), Mahdavi (1997), Rhee (1998).


Kết luận

Chương 3 - Tầng giao vận cung cấp khung kiến thức chuẩn mực về cơ chế truyền thông tiến trình logic, làm sáng tỏ nguyên lý biến đổi một kênh truyền tầng mạng không tin cậy thành một dịch vụ giao vận tin cậy, có kiểm soát luồng và chống tắc nghẽn.

Lộ trình học tập tiếp theo được định hướng chuyển tiếp sang Chương 4: Tầng mạng để khảo sát chi tiết giao thức IP, cấu trúc gói tin IP Datagram, thuật toán định tuyến RIP và cơ chế chuyển tiếp của Router. Người học được khuyến nghị nghiên cứu song song các bản đặc tả RFC tương ứng để củng cố nền tảng kỹ thuật thực nghiệm.