GIÁO TRÌNH LẬP TRÌNH MẠNG (MÃ MÔ ĐUN: MĐ35) – TRƯỜNG CAO ĐẲNG NGHỀ CÔNG NGHIỆP HÀ NỘI

Tổng quan về giáo trình (250-300 từ)

Giáo trình Lập trình Mạng (Mã mô đun: MĐ35) do các tác giả Bùi Quang Ngọc và Lê Văn Úy biên soạn, được Trường Cao đẳng nghề Công nghiệp Hà Nội phát hành nội bộ vào năm 2011. Trong chương trình đào tạo chuyên ngành Công nghệ thông tin và Quản trị mạng, mô đun này được bố trí giảng dạy vào học kỳ II của năm thứ 3 với tính chất là môn học chuyên môn nghề tự chọn.

Mục tiêu đào tạo của giáo trình hướng tới việc trang bị cho người học kiến thức và năng lực thực hành toàn diện:

  • Trình bày 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ả mô hình mạng và giao thức truyền thông thông qua các ứng dụng cài đặt thực tế.
  • Sử dụng thành thạo các công cụ phát triển phần mềm trên nền tảng Microsoft .NET Framework (ngôn ngữ C#) hoặc Java.
  • Xây dựng các ứng dụng mạng hoàn chỉnh (dịch vụ, hệ thống, dữ liệu) nhằm phục vụ các tác vụ quản trị mạng, bảo vệ hệ thống, giám sát luồng dữ liệu và truy vấn từ xa.
  • Rèn luyện phương pháp làm việc khoa học, tuân thủ nghiêm ngặt các quy định về an toàn cho người và thiết bị thực hành.

Giáo trình có tổng thời lượng 90 giờ, trong đó lý thuyết chiếm 30 giờ, thực hành chiếm 56 giờ và thời gian kiểm tra định kỳ là 4 giờ. Cấu trúc nội dung tiếp cận từ các khái niệm hạ tầng mạng cơ bản, kỹ thuật vào/ra dữ liệu (I/O), cơ chế lập trình Socket ở tầng vận chuyển, đến các giao thức tầng ứng dụng phổ biến và các giải pháp an ninh mạng doanh nghiệp.


Nội dung kiến thức cốt lõi (500-600 từ)

                     MÔ HÌNH PHÂN TẦNG VÀ LỘ TRÌNH KIẾN THỨC
                     
  [Bài 1] Tổng quan Lập trình Mạng & Môi trường Microsoft .NET Framework
                                     │
                                     ▼
  [Bài 2] Xử lý Vào/Ra Dữ liệu (I/O Streams) & Tuần tự hóa (Serialization)
                                     │
                                     ▼
  [Bài 3] Lập trình Socket Tầng Vận chuyển (Giao thức TCP & UDP)
                                     │
         ┌───────────────────────────┼───────────────────────────┐
         ▼                           ▼                           ▼
  [Bài 4] Web Server          [Bài 5] Mail Server         [Bài 6] File Server
  (Giao thức HTTP)            (Giao thức SMTP/POP)        (Giao thức FTP)
         └───────────────────────────┬───────────────────────────┘
                                     │
                                     ▼
  [Bài 7] An ninh Mạng (Firewalls, Proxy Servers, Routers & Tunneling)

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

Giáo trình gồm 7 bài học chuyên đề được thiết kế theo tiến trình phát triển từ tầng thấp đến tầng ứng dụng:

  1. Bài 1: Tổng quan về lập trình mạng (10 giờ: 5 LT - 5 TH): Cung cấp nền tảng về địa chỉ IP (IPv4 các lớp A, B, C; địa chỉ private/public; cơ chế DHCP; giới thiệu IPv6), địa chỉ vật lý MAC và giao thức ARP. Phân tích mô hình ngăn xếp mạng OSI (7 lớp) so sánh với mô hình mạng hiện đại (4 lớp: Packet, Stream, Messaging, Structured Information). Giới thiệu cơ chế cấp phát cổng (Port 0–1023 cho hệ thống, 1024–49151 cho người lập trình, 49152–65535 dự trữ) và các tổ chức chuẩn hóa (IETF với các tài liệu RFC, W3C). Giới thiệu kiến trúc .NET Framework (CLR, FCL, CTS, Assemblies, Application Domains) và môi trường phát triển Visual Studio .NET 2008.
  2. Bài 2: Vấn đề I/O trong .NET (10 giờ: 4 LT - 5 TH - 1 KT): Trình bày cơ chế luồng dữ liệu (Streams) gồm NetworkStreamFileStream. Phân tích hai cơ chế đọc/ghi dữ liệu: đồng bộ (Synchronous) và bất đồng bộ (Asynchronous sử dụng AsyncCallback, IAsyncResult). Hướng dẫn kỹ thuật tuần tự hóa đối tượng (Serialization/Deserialization) thông qua SoapFormatter, BinaryFormatterXmlSerializer.
  3. Bài 3: Làm việc với Sockets (17 giờ: 5 LT - 12 TH): Phân tích kiến trúc Socket API (xuất phát từ UNIX BSD 4.x), phân biệt AF_UNIXAF_INET. So sánh chi tiết hai chế độ truyền thông: có nối kết (TCP) và không nối kết (UDP). Hướng dẫn quy trình 4 giai đoạn thiết lập TCP Client-Server (socket, bind, listen, connect, accept, read, write, close) và kỹ thuật truyền thông qua lớp UdpClient, Socket. Trình bày phương pháp gỡ lỗi mạng bằng lệnh netstat và lớp System.Diagnostics.Trace.
  4. Bài 4: Kết nối với Web Server (13 giờ: 4 LT - 8 TH - 1 KT): Khảo sát giao thức HTTP, cấu trúc yêu cầu (Request) và phản hồi (Response), kỹ thuật chuyển dữ liệu (Posting data), quản lý Cookies, lập trình máy chủ Web và kết nối với trình duyệt di động qua không gian tên System.Net.
  5. Bài 5: Truyền thông với Email Servers (16 giờ: 6 LT - 10 TH): Khảo sát phương thức gửi/nhận thư điện tử qua các giao thức SMTP (cổng 25), POP (cổng 110) và xây dựng ứng dụng gửi nhận mail sử dụng các lớp trong System.Net.Mail / System.Web.Mail.
  6. Bài 6: Truyền thông với File Server (13 giờ: 4 LT - 8 TH - 1 KT): Tổng quan về máy chủ truyền tệp, so sánh cơ chế chia sẻ tệp của Microsoft và NetWare. Phân tích nguyên lý cổng và quá trình bắt tay truyền tệp của FTP (cổng 21), tập lệnh chuẩn của FTP và các công cụ lập trình FTP trên nền tảng .NET.
  7. Bài 7: An ninh mạng (11 giờ: 2 LT - 8 TH - 1 KT): Tổng quan các giải pháp bảo vệ hệ thống: tường lửa (Firewalls), máy chủ ủy quyền (Proxy Servers), thiết bị định tuyến (Routers), kỹ thuật phân vùng mạng, kỹ thuật đường hầm (Tunneling) trong mạng doanh nghiệp và các biện pháp phòng tránh cạm bẫy mạng.

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

  • Mô hình lý thuyết mạng: Đối chiếu chi tiết giữa mô hình chuẩn OSI 7 lớp (Physical, Data-Link, Network, Transport, Session, Presentation, Application) và mô hình mạng thực tế 4 tầng (IP, TCP, HTTP, SOAP).
  • Cơ chế định danh và định tuyến: Phân loại dải địa chỉ IPv4 (Lớp A: 10.0.0.0/8, Lớp B: 172.16.0.0/12, Lớp C: 192.168.0.0/16; địa chỉ loopback 127.0.0.1); nguyên lý phân giải địa chỉ MAC qua ARP; cơ chế chuyển đổi địa chỉ mạng (NAT) và chuyển tiếp cổng (Port Forwarding).
  • Kiến trúc hạ tầng Microsoft .NET: Nguyên lý hoạt động của Common Language Runtime (CLR) với bộ thu gom rác tự động (Garbage Collector), trình biên dịch JIT (Just-In-Time), hệ thống kiểu chung Common Type System (CTS), Assembly và cơ chế cách ly bộ nhớ Application Domains.
                    KIẾN TRÚC MICROSOFT .NET FRAMEWORK
 ┌────────────────────────────────────────────────────────────────────────┐
 │                      Ngôn ngữ: C#, VB.NET, C++, J#                    │
 ├────────────────────────────────────────────────────────────────────────┤
 │         FCL (Framework Class Library) - System, System.IO,             │
 │                  System.Net, System.Net.Sockets,...                    │
 ├────────────────────────────────────────────────────────────────────────┤
 │                    CTS (Common Type System) / MSDC                     │
 ├────────────────────────────────────────────────────────────────────────┤
 │            CLR (Common Language Runtime) - JIT, Garbage Collector      │
 ├────────────────────────────────────────────────────────────────────────┤
 │                        Hệ điều hành (Windows)                          │
 └────────────────────────────────────────────────────────────────────────┘

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt và cấu hình Visual Studio .NET 2008; lập trình hướng đối tượng với ngôn ngữ C#; khởi tạo và xử lý luồng (Threading); xây dựng các dạng ứng dụng đa dạng (Windows Forms, Console Application, Windows Service, Class Library DLL).
  • Kỹ năng phân tích (Analytical skills): Phân tích trạng thái kết nối và cổng dịch vụ thông qua công cụ dòng lệnh netstat, ipconfig, winipcfg; kiểm tra lỗi truyền thông đa luồng bằng cấu trúc bắt lỗi try/catch và công cụ phân tích gói tin (Trace Plus).
  • Năng lực thực hành chuyên môn (Practical competencies): Xây dựng ứng dụng truyền tải tệp nhị phân qua giao thức TCP; phát triển phần mềm trò chuyện mạng (Chat Client-Server) thời gian thực sử dụng kỹ thuật đa luồng và đồng bộ giao diện người dùng qua DelegateInvokeRequired.

Phương pháp giảng dạy và học tập (300-350 từ)

Giáo trình áp dụng mô hình giảng dạy tích hợp giữa lý thuyết và thực hành công nghệ, trong đó thời lượng thực hành tại phòng máy tính chiếm hơn 62% tổng quỹ thời gian (56/90 giờ). Cách tiếp cận này giúp người học chuyển hóa các khái niệm trừu tượng của giao thức mạng thành các đoạn mã lệnh thực thi cụ thể.

                  PHÂN BỔ THỜI LƯỢNG MÔ ĐUN MĐ35 (90 GIỜ)
  ┌───────────────────────────────┬────────────┬─────────────┬───────────┐
  │ Tên bài học                   │ Lý thuyết  │ Thực hành   │ Kiểm tra  │
  ├───────────────────────────────┼────────────┼─────────────┼───────────┤
  │ Bài 1: Tổng quan LT mạng      │ 5 giờ      │ 5 giờ       │ 0 giờ     │
  │ Bài 2: Vấn đề I/O trong .NET  │ 4 giờ      │ 5 giờ       │ 1 giờ     │
  │ Bài 3: Làm việc với Sockets   │ 5 giờ      │ 12 giờ      │ 0 giờ     │
  │ Bài 4: Kết nối Web Server     │ 4 giờ      │ 8 giờ       │ 1 giờ     │
  │ Bài 5: Truyền thông Mail      │ 6 giờ      │ 10 giờ      │ 0 giờ     │
  │ Bài 6: Truyền thông File      │ 4 giờ      │ 8 giờ       │ 1 giờ     │
  │ Bài 7: An ninh mạng           │ 2 giờ      │ 8 giờ       │ 1 giờ     │
  ├───────────────────────────────┼────────────┼─────────────┼───────────┤
  │ TỔNG CỘNG                     │ 30 giờ     │ 56 giờ      │ 4 giờ     │
  └───────────────────────────────┴────────────┴─────────────┴───────────┘

Hệ thống bài tập và nghiên cứu tình huống được xây dựng gắn liền với các bài toán thực tế:

  • Xử lý tệp và luồng dữ liệu: Viết ứng dụng quản lý tệp theo giao diện Norton Commander (NC) và chương trình soạn thảo văn bản mô phỏng Notepad; xây dựng mô-đun đọc tệp văn bản bằng StreamReader và ghi tệp nhị phân bằng BinaryWriter.
  • Ứng dụng UDP: Thiết kế chương trình UDP Client gửi thông điệp dạng mảng byte (Encoding.ASCII.GetBytes) và UDP Server lắng nghe đa luồng trên cổng 8080 bằng phương thức UdpClient.Receive().
  • Ứng dụng TCP: Phát triển ứng dụng TCP Simple Client/Server truyền tệp qua mạng, nạp dữ liệu vào bộ đệm và lưu trữ tại đường dẫn máy chủ (c:\my documents\upload.txt); xây dựng hệ thống phần mềm trò chuyện hai máy tính (Chat application) hỗ trợ chuyển đổi chuỗi ký tự qua mảng byte và xử lý đa tiểu trình.

Hoạt động đánh giá kết quả học tập gồm 4 bài kiểm tra định kỳ (thời lượng 1 giờ/bài) bố trí sau các Bài 2, 4, 6 và 7. Quy chế đánh giá thực hành áp dụng tiêu chí nghiêm ngặt: học viên thực hiện bài tập vượt quá 5% thời gian quy định sẽ không được đánh giá, đồng thời bắt buộc tuân thủ tuyệt đối các quy định an toàn lao động tại xưởng thực tập. Về tự học, sinh viên được giao bài tập nhóm nghiên cứu tài liệu RFC từ tổ chức IETF, chuẩn hóa W3C và viết báo cáo chuyên đề về tính năng ngôn ngữ lập trình C#.


Điểm nổi bật và cập nhật (250-300 từ)

Giáo trình Lập trình Mạng thể hiện bước chuyển dịch công nghệ lập trình ứng dụng phân tán trên hệ điều hành Windows:

                            TIẾN TRÌNH CẬP NHẬT CÔNG NGHỆ
  ┌─────────────────────────────────────┐     ┌─────────────────────────────────────┐
  │       Kỷ nguyên Visual Studio 6.0   │     │    Môi trường Visual Studio 2008    │
  ├─────────────────────────────────────┤     ├─────────────────────────────────────┤
  │ - Mỗi ngôn ngữ có một IDE riêng biệt│     │ - Một IDE duy nhất tích hợp đa      │
  │   (C++, VB, J++, FoxPro).           │     │   ngôn ngữ (C#, VB.NET, C++, J#).   │
  │ - Phát triển ASP dùng Visual        │ ──► │ - Quản lý giải pháp chung Solution. │
  │   InterDev riêng.                   │     │ - Tích hợp bộ khung MSF, TFS,       │
  │ - Khó khăn khi chia sẻ DLL giữa các │     │   Team Suite phục vụ làm việc nhóm. │
  │   ngôn ngữ khác nhau (cơ chế COM).  │     │ - Quản lý mã tự động với CLR & FCL. │
  └─────────────────────────────────────┘     └─────────────────────────────────────┘
  • Môi trường phát triển tích hợp đồng nhất: So với thế hệ Visual Studio 6.0 (khi mỗi ngôn ngữ như Visual Basic, C++, FoxPro sử dụng một IDE riêng và lập trình Web phải dùng Visual InterDev), phiên bản Visual Studio .NET 2008 tích hợp toàn bộ các ngôn ngữ C#, VB.NET, C++, J# trong cùng một IDE và quản lý chung dưới cấu trúc Solution.
  • Hệ thống hóa các ấn bản phát triển phần mềm: Giáo trình phân loại chi tiết 5 ấn bản Visual Studio 2008 (Express, Standard, Professional, Tools for Office, Team System). Trong đó, bộ công cụ Visual Studio Team System được giới thiệu chuyên sâu với khung giải pháp Microsoft Solutions Framework (MSF), Team Foundation Server (TFS) và các công cụ chuyên trách cho Software Architects, Developers, Testers, cùng công cụ kiểm thử tải Team Test Load Agent.
  • Tích hợp các tiêu chuẩn Internet hiện đại: Tài liệu cập nhật các kiến trúc truyền thông dựa trên cấu trúc thông điệp SOAP, dữ liệu XML, kỹ thuật tuần tự hóa đa định dạng (SOAP/Binary/XML Formatter) và giới thiệu định hướng dịch chuyển từ địa chỉ IPv4 sang không gian địa chỉ IPv6.
  • Gắn kết công tác quản trị và an ninh mạng: Các bài tập thực hành được xây dựng trực tiếp phục vụ công tác quản trị hệ thống mạng doanh nghiệp, bao gồm giám sát luồng dữ liệu, điều khiển dịch vụ ngầm Windows Service, cơ chế truyền tệp qua tường lửa, cấu hình máy chủ ủy quyền và kỹ thuật thiết lập đường hầm bảo mật.

Đối tượng sử dụng giáo trình (200-250 từ)

  • Sinh viên chuyên ngành: Giáo trình được biên soạn chuyên biệt cho sinh viên năm thứ 3 (học kỳ II) theo học chương trình Cao đẳng nghề hoặc Đại học chuyên ngành Công nghệ thông tin, Quản trị mạng máy tính và Kỹ thuật phần mềm.
  • Kiến thức tiên quyết (Prerequisites): Người học cần hoàn thành các học phần cơ sở bao gồm: Kiến thức cơ bản về mạng máy tính (mô hình OSI, giao thức TCP/IP, định tuyến, phân dải địa chỉ), Kỹ thuật lập trình cơ bản và học phần Lập trình hướng đối tượng (OOP).
  • Giảng viên chuyên ngành: Tài liệu đóng vai trò là khung chương trình chuẩn (Syllabus) để giảng viên thiết kế kế hoạch bài giảng chi tiết 90 giờ, chuẩn bị giáo án lý thuyết, phân bổ hệ thống bài tập thực hành lab tại xưởng và xây dựng đề kiểm tra định kỳ theo barem thời gian chuẩn.
  • Kỹ sư và học viên tự học: Tài liệu là tài liệu tham khảo kỹ thuật hữu ích cho các lập trình viên muốn nghiên cứu chuyên sâu về giao tiếp Socket mức thấp, lập trình mạng đa luồng và xây dựng các dịch vụ hệ thống phân tán trên nền tảng Microsoft .NET C#.

Câu hỏi thường gặp (250-300 từ)

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

Tài liệu phù hợp cho sinh viên năm thứ 3 ngành Công nghệ thông tin, Quản trị mạng và các kỹ thuật viên cần nắm vững kỹ thuật lập trình truyền thông mức socket, dịch vụ mạng trên hệ điều hành Windows.

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

Người học cần nắm vững kiến thức căn bản về mạng máy tính (địa chỉ IP, cổng, giao thức TCP/UDP), nguyên lý lập trình hướng đối tượng (OOP) và cú pháp lập trình cơ bản của ngôn ngữ C# hoặc các ngôn ngữ họ C.

3. Điểm khác biệt với giáo trình khác?

Giáo trình phân bổ thời lượng thực hành vượt trội (56 giờ thực hành trên tổng số 90 giờ). Nội dung kết hợp trực tiếp giữa lý thuyết giao thức mạng với mã nguồn C# thực thi trên Visual Studio 2008, bao quát từ tầng Socket cơ bản đến các giao thức HTTP, SMTP, POP, FTP và an ninh mạng.

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

Người học cần cài đặt môi trường Visual Studio .NET 2008, thực hành tuần tự các ví dụ mẫu từ Bài 1 đến Bài 7, sử dụng công cụ hệ thống netstat để quan sát trạng thái cổng và hoàn thành đầy đủ các bài tập lập trình truyền tệp, ứng dụng chat đa luồng.

5. Có tài liệu bổ trợ nào kèm theo?

Tài liệu tham chiếu các văn bản tiêu chuẩn RFC của tổ chức IETF (công bố tại www.ietf.org), các đặc tả chuẩn web của W3C, tài liệu hệ thống thư viện lớp FCL của Microsoft và giáo trình Lập trình hướng đối tượng phát hành cùng hệ thống đào tạo.


Kết luận (150 từ)

Giáo trình Lập trình Mạng (Mã mô đun: MĐ35) của Trường Cao đẳng nghề Công nghiệp Hà Nội là tài liệu học thuật có tính sư phạm và giá trị ứng dụng kỹ thuật cao. Tài liệu đã chuẩn hóa toàn bộ tiến trình đào tạo kỹ năng lập trình mạng thông qua sự kết hợp chặt chẽ giữa lý thuyết giao thức truyền thông và kỹ thuật lập trình thực tế trên nền tảng Microsoft .NET Framework 2008.

Lộ trình học tập 7 bài học tạo nên một cấu trúc phát triển kỹ năng mạch lạc: từ làm quen môi trường và xử lý vào/ra luồng dữ liệu (Bài 1, 2), làm chủ kỹ thuật Socket TCP/UDP tầng thấp (Bài 3), xây dựng các ứng dụng trên giao thức chuẩn Web, Mail, File (Bài 4, 5, 6), đến làm chủ kiến trúc an ninh và bảo vệ hệ thống mạng doanh nghiệp (Bài 7). Để mở rộng và hoàn thiện kỹ năng, người học được định hướng nghiên cứu bổ sung các tài liệu tiêu chuẩn quốc tế RFC từ IETF, các đặc tả kỹ thuật của W3C và hệ thống tài liệu thư viện lớp .NET Framework Class Library (FCL).