THÔNG TIN HỌC THUẬT VÀ MÔ TẢ NỘI DUNG GIÁO TRÌNH MÔ ĐUN: LẬP TRÌNH MẠNG

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

Giáo trình mô đun Lập trình mạng (Mã số mô đun: 35) là tài liệu đào tạo chuyên môn nghề được ban hành theo Quyết định số 285/QĐ-CĐNHN ngày 21 tháng 07 năm 2017 của Hiệu trưởng Trường Cao đẳng nghề Hà Nam, do tác giả Phạm Tất Thành biên soạn.

  • Vị trí trong chương trình đào tạo: Mô đun được bố trí giảng dạy vào học kỳ II của năm thứ 3 trong khung chương trình đào tạo trình độ Cao đẳng, thuộc ngành Quản trị mạng máy tính. Đây là mô đun chuyên ngành mang tính tự chọn chuyên môn nghề, giữ vai trò trang bị các kỹ năng phát triển phần mềm phục vụ trực tiếp công tác quản trị, giám sát và bảo mật hệ thống mạng.
  • Mục tiêu học tập (Learning Outcomes):
    • Về kiến thức: Người học trình bày được nguyên lý lập trình mạng, cơ chế hoạt động của chương trình thông qua các giao thức và hàm truy xuất hệ thống; mô tả chính xác mô hình mạng và cơ chế truy cập; nắm vững hệ thống câu lệnh, từ khóa, cú pháp, đối tượng và sự kiện để xây dựng ứng dụng mạng.
    • Về kỹ năng: Sử dụng thành thạo các công cụ lập trình của Microsoft (C#, VB.NET) hoặc Java; có khả năng phân tích, thiết kế và lập trình các ứng dụng mạng dạng Dịch vụ (Windows Service), ứng dụng Web, hoặc ứng dụng hệ thống (System Network) để bảo vệ, giám sát và truy vấn dữ liệu mạng.
    • Về năng lực tự chủ và trách nhiệm: Thực hiện độc lập hoặc làm việc theo nhóm để hoàn thành các bài tập thực hành, bài tập lớn về giao thức và socket; có năng lực hướng dẫn, giám sát công việc chuyên môn và chịu trách nhiệm cá nhân đối với kết quả dự án.
  • Cấu trúc và cách tiếp cận: Giáo trình gồm 8 bài học được thiết kế từ căn bản đến chuyên sâu. Nội dung kết hợp giữa việc tiếp thu các chuẩn giao thức quốc tế (IETF RFC, W3C) với việc lập trình ứng dụng thực tế trên nền tảng Microsoft .NET Framework và ngôn ngữ C#.
  • Điểm đặc sắc của giáo trình: Tài liệu kết hợp chặt chẽ giữa kỹ thuật lập trình phần mềm với yêu cầu vận hành thực tế của ngành Quản trị mạng, cung cấp đầy đủ mã nguồn mẫu, lược đồ quy trình kết nối và các bài tập tình huống thực tế tại phòng thực hành.

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

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

Cấu trúc nội dung giáo trình được triển khai theo tiến trình logic từ kiến trúc nền tảng, lập trình truyền thông mức vận chuyển đến lập trình ứng dụng mức dịch vụ mạng:

  • Bài 1: Tổng quan về lập trình mạng:
    • Key concepts: Lịch sử phát triển lập trình mạng; Mô hình phân tầng mạng (so sánh mô hình OSI 7 lớp truyền thống với mô hình 4 lớp hiện đại: Packet layer, Stream layer, Messaging layer, Structured Information layer); Cấu trúc địa chỉ IPv4 (phân lớp A, B, C; dải địa chỉ Private IP: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16; địa chỉ Loopback 127.0.0.1; cơ chế DHCP, NAT, định tuyến, địa chỉ MAC và giao thức ARP; giới thiệu giải pháp IPv6); Hệ thống số hiệu cổng (Port) và phân loại theo chuẩn IANA (0–1023 cho hệ thống, 1024–49151 cho người lập trình, 49152–65535 dự trữ); Các tổ chức chuẩn hóa Internet (IETF với các tài liệu RFC, W3C với chuẩn HTML, XML, CSS).
    • Nền tảng .NET và Visual Studio 2008: Cấu trúc .NET Framework gồm Common Language Runtime (CLR) và .NET Framework Class Library (FCL); Các đặc tính CTS (Common Type System), MSDC (Metadata and Self-Describing Components), CLI (Cross-Language Interoperability), Assemblies, Application Domains, Runtime Hosts; Các phiên bản Visual Studio 2008 (Express, Standard, Professional, Team System); Các loại dự án C# (Windows Forms, Console, Windows Service, Class Library, Control Library, Crystal Reports, SQL Server Project, Smart Device cho PDA/Mobile).
  • Bài 2: Làm việc với Sockets:
    • Key concepts: Lịch sử và khái niệm giao diện lập trình Socket từ ấn bản UNIX-BSD 4.x với các hàm hệ thống nguyên thủy (socket(), bind(), connect(), send(), receive(), read(), write(), close()); Phân loại Socket kiểu AF_UNIX (nội bộ máy tính) và AF_INET (mạng phân tán); So sánh chi tiết hai chế độ giao tiếp tầng vận chuyển: giao tiếp có nối kết (TCP - tin cậy, kiểm tra lỗi, bảo đảm thứ tự gói tin) và giao tiếp không nối kết (UDP - không kiểm tra lỗi, tốc độ cao, phù hợp truyền âm thanh/hình ảnh).
    • Thực thi Socket trong .NET: Sử dụng không gian tên System.Net và System.Net.Sockets; Lập trình ứng dụng UDP Client/Server bằng lớp UdpClient, kết hợp đa luồng (System.Threading.Thread); Lập trình kết nối TCP qua 4 giai đoạn chuẩn (Server khởi tạo socket/bind/listen -> Client gửi connect/Server accept kênh ảo -> Trao đổi dữ liệu read/write theo giao thức -> Đóng socket); Kỹ thuật bắt lỗi try/catch, sử dụng lớp System.Diagnostics.Trace và lệnh hệ thống netstat để gỡ rối cổng kết nối; Lập trình giao tiếp Socket mức cơ bản với lớp Socket, IPAddress, IPEndPoint, IPHostEntry, Dns.
  • Bài 3: Kết nối với Web Servers:
    • Key concepts: Khái niệm giao thức HTTP (RFC 2616), cổng mặc định 80; Khái niệm Data Mining (tự động tải và trích xuất dữ liệu từ mã nguồn HTML); Cấu trúc bản tin HTTP Request (các phương thức GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE; các header chuẩn: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Authorization, Host, If-Modified-Since, Proxy-Authorization, Range, Referer, TE, User-Agent, Content-Type, Content-Length).
    • Cấu trúc bản tin HTTP Response: Mã trạng thái phản hồi (100–199 Thông tin, 200–299 Thành công, 300–399 Chuyển hướng, 400–499 Lỗi Client, 500–599 Lỗi Server); Các trường header đáp ứng (ETag, Location, Server, WWW-Authenticate, Content-Type, Content-Length, Set-Cookie); Kiểu dữ liệu MIME Multipart; Lập trình thu nhận nội dung web qua lớp HttpWebRequest và HttpWebResponse, xử lý dòng dữ liệu Stream theo từng khối đệm 256 byte; Kỹ thuật truyền dữ liệu bằng phương thức POST lên tệp máy chủ Web (postTest.aspx); Bản chất phi trạng thái (Stateless) của HTTP và cơ chế quản lý Cookie.
  • Bài 4: Làm việc với SMTP và POP3 – Kết nối với Email Server:
    • Key concepts: Nguyên lý gửi thư điện tử qua giao thức SMTP (cổng 25) và nhận thư điện tử qua giao thức POP3 (cổng 110); Xử lý thông điệp và kết nối máy chủ Mail Server thông qua các lớp chuyên dụng trong không gian tên System.Net.Mail; Thiết kế giao diện và xây dựng ứng dụng gửi/nhận email hoàn chỉnh.

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

  1. Lý thuyết mạng máy tính chuẩn hóa: Xây dựng hệ thống kiến thức chuẩn xác về cấu trúc địa chỉ mạng (IPv4, MAC, Port), cơ chế chuyển tiếp gói tin, định tuyến, phân giải địa chỉ (ARP, DNS) và kiến trúc phân tầng giao thức theo tiêu chuẩn của các tổ chức IETF và W3C.
  2. Nguyên lý kiến trúc phân tán Client-Server: Trang bị bản chất của mô hình giao tiếp phân tán, cơ chế thiết lập kênh ảo, quản lý luồng dữ liệu hai chiều và nguyên tắc xây dựng giao thức ứng dụng tùy biến.
  3. Khung lập trình hướng đối tượng .NET: Cung cấp nền tảng vững chắc về cơ chế quản lý mã an toàn (Managed Code), máy ảo CLR, hệ thống kiểu dữ liệu CTS, tổ chức thư viện FCL và cơ chế đa luồng trong xử lý sự kiện mạng.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thành thạo kỹ thuật khai báo cấu hình mạng (IPAddress, IPEndPoint), lập trình Socket TCP/UDP, xử lý luồng nhập/xuất dữ liệu (Stream, StreamReader, StreamWriter, mảng Byte[]), mã hóa chuỗi ký tự (Encoding.ASCII), và xây dựng ứng dụng HTTP Client.
  • Kỹ năng phân tích (Analytical skills): Năng lực phân tích và lựa chọn giao thức tầng vận chuyển (TCP hoặc UDP) phù hợp với yêu cầu thực tế; kỹ năng phân tích tiêu đề gói tin (HTTP headers, IP/Port); kỹ năng định vị và chẩn đoán lỗi xung đột cổng mạng hoặc nghẽn kết nối bằng các công cụ gỡ rối và lệnh netstat.
  • Năng lực thực tiễn (Practical competencies): Xây dựng độc lập các công cụ phần mềm mạng hoàn chỉnh trên môi trường Windows Forms: ứng dụng truyền nhận tệp tin qua mạng LAN, hệ thống Chat đa luồng Client-Server, công cụ truy vấn DNS, ứng dụng cào dữ liệu Web và công cụ gửi nhận Email.

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

Giáo trình định hướng phương pháp tiếp cận sư phạm tích hợp giữa giảng giải nguyên lý lý thuyết chuẩn hóa và tổ chức thực hành trực quan từng bước (Step-by-step) trên máy tính.

  • Phương pháp sư phạm (Pedagogical Approach): Tiến trình bài học được cấu trúc chặt chẽ: Khái quát hóa lý thuyết giao thức mạng -> Phân tích cú pháp lớp và thư viện lập trình tương ứng -> Minh họa mã nguồn mẫu chi tiết -> Tổ chức thực hành viết mã, biên dịch và chạy kiểm thử trên môi trường mạng thực tế.
  • Hệ thống bài tập và Case Studies:
    • Bài tập truyền tệp tin qua TCP: Thực hiện thiết kế ứng dụng "TCP Simple Client" và "TCP Simple Server", đọc dữ liệu tệp vào bộ đệm và chuyển tiếp an toàn qua mạng, lưu trữ tệp tại thư mục quy định (c:\my documents\upload.txt). Thời lượng quy chuẩn: 04 giờ.
    • Bài tập Chat Client-Server đa luồng: Xây dựng ứng dụng Chat qua cả hai phương thức UDP và TCP. Ứng dụng triển khai kỹ thuật đa luồng (Thread), sử dụng cơ chế ủy quyền (Delegate, InvokeRequired, UpdateLogCallback) để cập nhật giao diện Windows Forms an toàn từ luồng phụ.
    • Hệ thống bài tập tình huống mở rộng: Xây dựng Server giải đáp tên miền (DNS mini); Phần mềm tra cứu từ điển chuyên ngành Anh - Việt UDP (với tập dữ liệu mẫu: Computer, RAM, HDD); Ứng dụng điều khiển con trỏ chuột từ xa; Ứng dụng gửi lệnh tắt máy (Shutdown) hoặc khởi động lại (Restart) qua mạng Client-Server.
    • Bài tập HTTP Data Capture: Xây dựng giao diện trích xuất nội dung HTML từ URL chỉ định và truyền dữ liệu biểu mẫu qua phương thức POST đến trang xử lý postTest.aspx.
  • Phương pháp kiểm tra, đánh giá (Assessment Methods):
    • Đánh giá kết quả thực hành trực tiếp tại phòng máy dựa trên mức độ hoàn thiện của sản phẩm phần mềm và độ chính xác của chức năng mạng.
    • Quy định kiểm soát thời gian nghiêm ngặt: Sinh viên thực hiện bài tập vượt quá 5% thời gian cho phép sẽ không được đánh giá.
    • Đánh giá ý thức tuân thủ an toàn lao động và nội quy phòng thực tập (vi phạm quy định an toàn máy tính sẽ bị đình chỉ kiểm tra).
    • Đánh giá lý thuyết thông qua hệ thống câu hỏi ôn tập tổng hợp cuối mỗi bài (nắm vững bản chất các lớp Socket, UdpClient, TcpClient, TcpListener, mã trạng thái HTTP, quy định Port).
  • Hướng dẫn tự học (Self-study Guidelines): Khai thác trực tiếp tài liệu kỹ thuật từ Microsoft Developer Center tích hợp trên thanh Menu của Visual Studio; Tra cứu các chuẩn giao thức Internet chính thức tại website của tổ chức IETF (ietf.org) và W3C (w3c.org); Rèn luyện kỹ năng làm việc nhóm thông qua các đề tài bài tập lớn.

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

  • Chuyển dịch sang mô hình lập trình mạng hướng đối tượng hiện đại: Giáo trình hệ thống hóa sự phát triển từ các hàm API Socket mức thấp của hệ điều hành UNIX BSD (vốn phức tạp và phụ thuộc ngôn ngữ C) sang các lớp đối tượng bậc cao, an toàn và dễ tiếp cận trong môi trường quản trị mã (Managed Code) của .NET Framework.
  • Tích hợp môi trường phát triển đồng nhất: Sử dụng môi trường Visual Studio 2008 làm IDE tích hợp dùng chung cho nhiều ngôn ngữ lập trình (.NET), thay thế hoàn toàn cấu trúc rời rạc của các phiên bản cũ như Visual Studio 6.0 hay Visual Studio InterDev.
  • Gắn kết chặt chẽ với bài toán quản trị mạng: Toàn bộ các ví dụ và bài tập không thuần túy mang tính học thuật lập trình mà bám sát nghiệp vụ quản trị hệ thống: kiểm tra trạng thái cổng kết nối (netstat), xây dựng dịch vụ chạy ngầm (Windows Service), bảo mật giao tiếp, và tự động hóa truy vấn dịch vụ mạng.
  • Căn cứ kỹ thuật chuẩn xác theo tiêu chuẩn quốc tế: Nội dung giảng dạy bám sát các định dạng giao thức chuẩn hóa được công bố trong các tài liệu RFC của IETF (như RFC 2616, RFC 2617 cho giao thức HTTP và xác thực) cùng các tiêu chuẩn định dạng dữ liệu của W3C.

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

  • Sinh viên chuyên ngành: Sinh viên năm thứ 3 (học kỳ II) theo học trình độ Cao đẳng nghề, ngành Quản trị mạng máy tính tại các cơ sở giáo dục nghề nghiệp.
  • Điều kiện tiên quyết (Prerequisites):
    • Đã hoàn thành các học phần lập trình căn bản (nắm được cú pháp ngôn ngữ C# hoặc VB.NET, kiến thức lập trình hướng đối tượng cơ bản về Class, Object, Method, Event).
    • Nắm vững kiến thức nền tảng về mạng máy tính: cấu trúc địa chỉ IPv4, chia mạng con (Subnetting), mô hình tham chiếu OSI và bộ giao thức TCP/IP.
  • Giảng viên chuyên ngành: Sử dụng giáo trình làm tài liệu chuẩn để xây dựng đề cương bài giảng, kế hoạch bài dạy, hướng dẫn thực hành phòng Lab, đồng thời làm căn cứ biên soạn ngân hàng câu hỏi kiểm tra và đề thi tay nghề.
  • Cán bộ kỹ thuật và người tự học: Dùng làm tài liệu tham khảo kỹ thuật cho kỹ thuật viên quản trị hệ thống, quản trị viên mạng cần xây dựng các công cụ phần mềm tự động hóa tác vụ mạng, giám sát lưu lượng và khai thác dịch vụ web.

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

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

Giáo trình được biên soạn chuyên biệt cho sinh viên năm thứ 3 ngành Quản trị mạng máy tính bậc Cao đẳng nghề. Ngoài ra, tài liệu phù hợp cho các lập trình viên hoặc kỹ thuật viên hệ thống muốn nắm vững kỹ thuật lập trình truyền thông mạng trên nền tảng Microsoft .NET Framework.

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

Người học cần trang bị trước hai khối kiến thức: Kiến thức cơ bản về lập trình (cú pháp C#, biến, hàm, lập trình hướng đối tượng) và Kiến thức cơ bản về mạng máy tính (mô hình mạng OSI/TCP-IP, địa chỉ IP, Default Gateway, Port, cơ chế hoạt động của DNS và DHCP).

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

Giáo trình tiếp cận lập trình mạng dưới góc nhìn hỗ trợ chuyên môn Quản trị mạng máy tính. Nội dung tập trung khai thác các thư viện cấp cao của .NET Framework (System.Net, System.Net.Sockets), hướng dẫn xử lý đồng bộ giao diện đa luồng và cung cấp kỹ năng gỡ lỗi cổng mạng thực tế bằng công cụ hệ thống (netstat, Trace).

4. Làm sao để tự học và thực hành hiệu quả theo giáo trình?

Người học cần cài đặt môi trường Microsoft Visual Studio 2008 (hoặc các phiên bản Visual C# Express) trên hệ điều hành Windows; chủ động gõ và biên dịch từng đoạn mã nguồn mẫu; thiết lập mô hình mạng thử nghiệm gồm 2 máy tính nối mạng LAN để kiểm tra trực tiếp các ứng dụng truyền file, Chat đa luồng UDP/TCP.

5. Có tài liệu bổ trợ nào đi kèm giáo trình không?

Giáo trình cung cấp các chỉ dẫn tham khảo trực tiếp đến hệ thống tài liệu tiêu chuẩn Internet RFC của IETF (RFC 2616, RFC 2617), cổng thông tin lập trình viên Microsoft Developer Center trên Visual Studio, và tài liệu chuyên sâu về cơ chế thu gom rác (Garbage Collector) trong tài liệu Lập trình hướng đối tượng của cùng tác giả.


Kết luận

Giáo trình mô đun Lập trình mạng (Mã số: 35) của Trường Cao đẳng nghề Hà Nam cung cấp hệ thống kiến thức và kỹ năng hoàn chỉnh về lập trình ứng dụng phân tán trên nền tảng Microsoft .NET Framework. Tài liệu xác lập lộ trình học tập logic từ việc hiểu rõ hạ tầng mạng cơ sở (IP, Port, .NET Architecture), thành thạo lập trình tầng vận chuyển Socket (TCP/UDP, Đa luồng), đến việc làm chủ các giao thức tầng ứng dụng phổ biến (HTTP, SMTP, POP3).

Với cấu trúc bài học chi tiết, mã nguồn mẫu rõ ràng và hệ thống bài tập thực hành gắn liền với yêu cầu quản trị hệ thống, giáo trình là tài liệu học tập và tra cứu kỹ thuật chuẩn mực cho học sinh, sinh viên và cán bộ kỹ thuật trong lĩnh vực công nghệ thông tin và quản trị mạng máy tính.