Giáo trình lập trình mạng căn bản
lượt xem 31
download
Ngày nay, cho dù là hệ thống mạng nhỏ, cỡ vừa và lớn thì mỗi máy tính đều sử dụng địa chỉ IP động được cấp phát từ dịch vụ DHCP server. Mạng nhỏ thì DHCP cấp IP động cho các máy trạm (làm việc trong môi trường Workgroup) nằm ở các thiết bị mạng (Switch, Modem, Router, AP ...).
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình lập trình mạng căn bản
- Lập Trình Mạng Căn Bản
- Lập Trình Mạng Căn Bản 2 MỞ ĐẦU Ngày nay, cho dù là hệ thống mạng nhỏ, cỡ vừa và lớn thì mỗi máy tính đều sử dụng địa chỉ IP động được cấp phát từ dịch vụ DHCP server. Mạng nhỏ thì DHCP cấp IP động cho các máy trạm (làm việc trong môi trường Workgroup) nằm ở các thiết bị mạng (Switch, Modem, Router, AP ...). Còn các mạng lớn (mô hình mạng sẽ phức tạp hơn), các máy trạm nằm trong môi trường Domain. Khi đó các nhà quản trị mạng họ dùng ngay dịch vụ DHCP server có sẵn trên Windows Server 2003, 2008 để cấp phát IP động cho các máy trạm trong hệ thống mạng thay vì sử dụng DHCP server tích hợp sẵn trong các thiết bị mạng phần cứng. Vậy DHCP là gì? Nó có ưu điểm gì? Dynamic Host Configuration Protocol (DHCP - giao thức cấu hình động máy chủ) là một giao thức cấu hình tự động địa chỉ IP. Máy tính được cấu hình một cách tự động vì thế sẽ giảm việc can thiệp vào hệ thống mạng. Nó cung cấp một database trung tâm để theo dõi tất cả các máy tính trong hệ thống mạng. Mục đích quan trọng nhất là tránh trường hợp hai máy tính khác nhau lại có cùng địa chỉ IP. Nếu không có DHCP, các máy có thể cấu hình IP thủ công. Ngoài việc cung cấp địa chỉ IP, DHCP còn cung cấp thông tin cấu hình khác, cụ thể như DNS. Hiện nay DHCP có 2 version: cho IPv4 và IPv6. Nói một cách tổng quan hơn DHCP là dich vụ mang đến cho chúng ta nhiều lợi điểm trong công tác quản trị và duy trì một mạng TCP/IP như: + Tập chung quản trị thông tin về cấu hình IP. + Cấu hình động các máy. + Cấu hình IP cho các máy một cách liền mạch + Sự linh hoạt + Khả năng mở rộng. Nhiệm vụ của từng thành viên trong nhóm: 1. Nguyễn Xuân Toàn 09520312 - Xây dựng DHCP Server 2. Nguyễn Anh Vũ 09520358 - Xây dựng DHCP Server 3. Phạm Xuân Mạnh 09520422 - Xây dựng DHCP Client và thiết kế giao diện. Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 3 MỤC LỤC Trang Mở đầu ................................................................................................................... 1 Chương 1: Khảo sát bài toán ............................................................................... 4 1.1.DHCP là gì ? .................................................................................................... 4 1.2.DHCP làm việc như thế nào ? ........................................................................ 4 1.3.Lợi ích của việc sử dụng DHCP ...................................................................... 4 1.3.1. Quản lý TCP/IP tập trung ........................................................................... 5 1.3.2. Giảm gánh nặng cho các nhà quản trị hệ thống......................................... 5 1.3.3. Giúp hệ thống mạng luôn được duy trì ổn định ......................................... 5 1.3.4. Linh hoạt và khả năng mở rộng.................................................................. 5 Chương 2: Cơ sở lý thuyết .................................................................................... 6 2.1. Địa chỉ IP động ............................................................................................... 6 2.1.1. Địa chỉ IP động đặc biệt là gì ? ................................................................... 6 2.1.2. Cách thức cấp phát địa chỉ IP động ............................................................ 6 2.2. Cấu hình phạm vi cấp phát của dịch vụ DHCP ............................................ 6 2.2.1. Phạm vi cấp phát DHCP là gì ? .................................................................. 6 2.2.2. Tại sao phải sử dụng phạm vi cấp phát DHCP ? ....................................... 6 2.3. Cấu hình địa chỉ DHCP giành sẵn (Reservations) và các tùy chọn của DHCP ..................................................................................................................... 6 2.3.1. Địa chỉ DHCP giành sẵn là gì ? ................................................................... 6 2.3.2. Các thông tin của một địa chỉ DHCP giành sẵn ......................................... 6 2.3.3. Tùy chọn DHCP là gì ? ................................................................................ 6 2.3.4. Tại sao phải sử dụng tùy chọn DHCP ?...................................................... 7 2.3.5. Một số tùy chọn chung của DHCP .............................................................. 7 2.4. Cấu hình DHCP - DHCP Relay Agent .......................................................... 7 2.4.1. DHCP relay agent là gì ? ............................................................................. 7 2.4.2. Tại sao phải sử dụng DHCP relay agent ?.................................................. 7 2.5. Phương thức hoạt động của dịch vụ DHCP .................................................. 7 Chương 3: Phân tích thiết kế chương trình ......................................................... 11 3.1. Mô hình thực nghiệm của chương trình mô phỏng chương trình DHCP ..................................................................................................................... 11 3.2. Thiết kế chương trình về mặt chức năng ...................................................... 12 3.3. Thiết kế về mặt lập trình ................................................................................ Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 4 Chương 4: Kết luận .............................................................................................. 17 4.1. Các chức năng đã đạt được của chương trình ............................................. 17 4.2. Các vấn đề còn tồn tại ................................................................................... 17 Phụ lục I: Các hình ảnh sử dụng trong bài .......................................................... 18 Phụ lục II: Tài liệu tham khảo .............................................................................. 19 Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 5 Chương I: KHẢO SÁT BÀI TOÁN 1.1. DHCP là gì? DHCP là viết tắt của Dynamic Host Configuration Protocol, là giao thức Cấu hình Host Động được thiết kế làm giảm thời gian chỉnh cấu hình cho mạng TCP/IP bằng cách tự động gán các địa chỉ IP cho khách hàng khi họ vào mạng. Dich vụ DHCP là một thuận lới rất lớn đối với người điều hành mạng. Nó làm yên tâm về các vấn đề cố hữu phát sinh khi phải khai báo cấu hình thủ công. Nó bao gồm DHCP Server và DHCP Client. Hình 1.1. Mô hình DHCP DHCP server là một máy chủ có cài đặt dịch vụ DHCP server. Nó có chức năng quản lý sự cấp phát địa chỉ IP động và các dữ liệu cấu hình TCP/IP. Ngoài ra còn có nhiệm vụ trả lời khi DHCP Client có yêu cầu về hợp đồng thuê bao. DHCP client là dịch vụ nằm cục bộ trên máy tính (kể cả máy trạm và server). Nó dùng để đăng ký, cập nhật thông tin về địa chỉ IP và các bản ghi DNS cho chính bản thân nó. DHCP client sẽ gửi yêu cầu đến DHCP server khi nó cần đến 1 địa chỉ IP và các tham số TCP/IP cần thiết để làm việc trong mạng nội bộ và trên Internet. 1.2. DHCP làm việc như thế nào? DHCP tự động quản lý các địa chỉ IP và loại bỏ được các lỗi có thể làm mất liên lạc. Nó tự động gán lại các địa chỉ chưa được sử dụng và cho thuê địa chỉ trong một khoảng thời gian. Trình tự thuê Địa chỉ IP DHCP là một giao thức Internet có nguồn gốc ở BOOTP (bootstrap protocol), được dùng để cấu hình các trạm không đĩa. DHCP khai thác ưu điểm của giao thức truyền tin và các kỹ thuật khai báo cấu hình được định nghĩa trong BOOTP, trong đó có khả năng gán địa chỉ. Sự tương tự này cũng cho phép các bộ định tuyến hiện nay chuyển tiếp các thông điệp BOOTP giữa các mạng con cũng có thể chuyển tiếp các thông điệp DHCP. Vì thế, máy chủ DHCP có thể đánh địa chỉ IP cho nhiều mạng con. 1.3. Lợi ích của việc sử dụng DHCP Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 6 1.3.1. Quản lý TCP/IP tập trung Thay vì phải quản lý địa chỉ IP và các tham số TCP/IP khác vào một cuốn sổ nào đó (đây là việc mà quản trị mạng phải làm khi cấu hình TCP/IP bằng tay) thì DHCP server sẽ quản lý tập trung trên giao diện của nó. Giúp các nhà quản trị vừa dễ quản lý, cấu hình, khắc phục khi có lỗi xảy ra trên các máy trạm. 1.3.2. Giảm gánh nặng cho các nhà quản trị hệ thống Thứ nhất, trước đây các nhà quản trị mạng thường phải đánh cấu hình IP bằng tay (gọi là IP tĩnh) nhưng nay nhờ có DHCP server nó sẽ cấp IP một cách tự động cho các máy trạm. Nhất là trong môi trường mạng lớn thì sự cần thiết và hữu ích của dịch vụ mạng này mới thấy rõ ràng nhất. Thứ hai, trước đây với kiểu cấu hình bằng tay thì người dùng họ có thể thay đổi IP. Có người thay đổi lung tung DNS server sau đó quên không nhớ IP của DNS server là gì để đặt lại cho đúng lại với quản trị mạng, có người đặt IP làm trùng với IP của người khác, người khác lại đặt IP trùng với Defaul Gateway ... làm cho quản trị mạng khốn khổ vì phải chỉnh sửa. Nhưng vấn đề này không có ở IP động. Chỉ có người quản trị DHCP server họ mới có quyền làm những việc trên. 1.3.3. Giúp hệ thống mạng luôn được duy trì ổn định Địa chỉ IP cấp phát động cho các máy trạm lấy từ dải IP cấu hình sẵn trên DHCP server. Các tham số (DG, DNS server ...) cũng cấp cho tất cả các máy trạm là chính xác. Sự trùng lặp IP không bao giờ xảy ra. Các máy trạm luôn luôn có một cấu hình TCP/IP chuẩn. Làm cho hệ thống hoạt động liên tục, vừa giảm gánh nặng cho người quản trị vừa tăng hiệu quả làm việc cho user nói riêng và doanh nghiệp nói chung. 1.3.4. Linh hoạt và khả năng mở rộng Người quản trị có thể thay đổi cấu hình IP một cách dễ dàng khi cơ sở hạ tầng mạng thay đổi. Do đó làm tăng sự linh hoạt cho người quản trị mạng. Ngoài ra DHCP phù hợp từ mạng nhỏ đến mạng lớn. Nó có thể phục vụ 10 máy khách cho đến hàng ngàn máy khách. Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 7 Chương II: CƠ SỞ LÝ THUYẾT 2.1. Địa chỉ IP động 2.1.1. Địa chỉ IP động đặc biệt là gì ? Địa chỉ IP động đặc biệt (Automatic private IP Addressing) hay APIPA là một dặc trưng của hệ điều hành Microsoft windows cho phép gán một dải địa chỉ IP tự động trên các máy Client dải địa chỉ này có giá trị trong khoảng từ: 169.254.0.0 đến 169.254.255.255. khi mà dịch vụ DHCP server không được phép cấp phát IP cho các máy Client. 2.1.2. Cách thức cấp phát địa chỉ IP động Dịch vụ DHCP sẽ thiết lập Hợp đồng thuê địa chỉ IP và ra gạn hợp đồng cho thuê địa chỉ IP nhằm cấp phát địa chỉ IP động cho các máy Client. 2.2. Cấu hình phạm vi cấp phát của dịch vụ DHCP 2.2.1. Phạm vi cấp phát DHCP là gì ? Phạm vi cấp phát là dải địa chỉ IP hợp lệ được dùng để thuê hoặc gán cho các máy Client trên cùng một Subnet. Ta cấu hình một pham vi cấp phát trên DHCP Server để xác định dải địa chỉ IP mà các Server có thể gán cho các máy Client. 2.2.2. Tại sao phải sử dụng phạm vi cấp phát DHCP ? Phạm vi cấp phát sẽ xác định xem những địa chỉ IP nào sẽ được phép cấp phát cho các máy client. 2.3. Cấu hình địa chỉ DHCP giành sẵn (Reservations) và các tùy chọn của DHCP 2.3.1. Địa chỉ DHCP giành sẵn là gì ? Địa chỉ IP dành sẵn là một dải địa chỉ IP được gán cố định. Nó là dải địa chỉ IP được tạo ra trong một phạm vi (scope) dành riêng, dải địa chỉ IP dành riêng này được dùng để gàn cho các máy Client (Chúng là các địa chỉ IP tĩnh trong mạng được gán cho các máy client). 2.3.2. Các thông tin của một địa chỉ DHCP giành sẵn Reservation Name :Là tên được gán bởi nhà quản trị. IP Address : Là phạm vi dải địa chỉ IP được gán cho các máy Client. MAC Address: Là địa chỉ MAC của mỗi thiết bị mà bạn muốn dành sẵn một địa chỉ IP cho nó. Description: Những mô tả do nhà quản trị đưa ra. Supported Type:Kiểu hỗ trợ này có thế là: DHCP dành sẵn, BOOTP dành sẵn, hoặc cả hai. 2.3.3. Tùy chọn DHCP là gì ? Các tùy chọn DHCP là các tham số cấu hình máy khách bổ sung mà một máy chủ DHCP có thể gán khi phục vụ các máy khách DHCP. 2.3.4. Tại sao phải sử dụng tùy chọn DHCP ? Các tùy chọn DHCP được cấu hình sử dụng bảng điều khiển DHCP và có thể được áp dụng cho nhiều phạm vi và sự dành sẵn.Một tùy chọn Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 8 DHCP sẽ làm tăng thêm các chức năng cho hệ thống mạng. Các tùy chọn DHCP cho phép bạn thêm dữ liệu cấu hình IP các client. 2.3.5. Một số tùy chọn chung của DHCP Router (Default Gateway): Địa chỉ của bất cứ cổng ra mặc định (default gateway) hay bộ định tuyến (router) nào. DNS Domain Name: Tên miền DNS xác định miền mà máy khách sẽ phụ thuộc. Máy khách có thể sử dụng thông tin này dể cập nhật thông tin lên máy chủ DNS để các máy tính khác có thể tìm thấy nó. DNS Servers: Địa chỉ của bất cứ máy chủ DNS nào mà máy khách có thể sử dụng trong quá trình truyền thông. WINS Servers: Địa chỉ của bất cứ máy chủ WINS nào mà máy khách có thể sử dụng trong quá trình truyền thông. WINS Node Type: Là một kiểu phương thức phân giải tên NetBIOS mà các máy khách (Client) có thế sử dụng. 2.4. Cấu hình DHCP - DHCP Relay Agent 2.4.1. DHCP relay agent là gì ? DHCP relay agent là một máy tính hoặc một Router được cấu hình để lắng nghe các thông điệp quảng bá DHCP/BOOTP từ DHCP client, chuyển tiếp các thông điệp quảng bá từ một giao tiếp này đến giao tiếp khác. và hướng chúng tới một hoặc nhiều máy chủ DHCP cụ thể. 2.4.2. Tại sao phải sử dụng DHCP relay agent ? DHCP clients sử dụng một địa chỉ quảng bá (broadcast) để bảo mật việc thuê một địa chỉ IP từ DFHCP server. Một Router thong thường không thể thông qua một broadcast trừ khi nó được cấu hình riêng biệt. Tiết kiệm được số địa chỉ IP thật ( Public IP) Phù hợp với các máy tính thường xuyên di chuyển giữa các lớp mạng. Kết hợp với hệ thống mạng không dây ( Wireless) cung cấp tại các điểm. Hotspot như: nhà ga, sân bay, khách sạn, trường học. Thuận tiện cho việc bổ xung các thiết bị mới vào lớp mạng. 2.5. Phương thức hoạt động của dịch vụ DHCP Bước 1: Khi máy Client khởi động, máy sẽ gửi broadcast gói tin DHCP DISCOVER, yêu cầu một Server phục vụ mình. Gói tin này cũng chứa địa chỉ MAC của client. Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 9 Hình 2.5.1. Mô phỏng quá trình Client gửi DHCP Discover cho Server Nếu client không liên lạc được với DHCP Server thì sau 4 lần truy vấn không thành công nó sẽ tự động phát sinh ra 1 địa chỉ IP riêng cho chính mình nằm trong dãy 169.254.0.0 đến 169.254.255.255 dùng để liên lạc tạm thời. Và client vẫn duy trì việc phát tín hiệu Broad cast sau mỗi 5 phút để xin cấp IP từ DHCP Server. Bước 2: Các máy Server trên mạng khi nhận được yêu cầu đó. Nếu còn khả năng cung cấp địa chỉ IP, đều gửi lại cho máy Client một gói tin DHCP OFFER, đề nghị cho thuê một địa chỉ IP trong một khoảng thời gian nhất định, kèm theo là một Subnet Mask và địa chỉ của Server. Hình 2.5.2. Mô phỏng quá trình Server gửi lại DHCPOFFER cho client Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 10 Server sẽ không cấp phát đia chỉ IP vừa đề nghị cho client thuê trong suốt thời gian thương thuyết. Bươc 3:Máy Client sẽ lựa chọn một trong những lời đề nghị (DHCPOFFER) Hình 2.5.3. Mô phỏng quá trình Client lựa chọn Server và gửi broadcast lại gói tin DHCPREQUEST và chấp nhận lời đề nghị đó. Hình 2.5.4. Mô phỏng quá trình Client gửi DHCPREQUEST cho Server Điều này cho phép các lời đề nghị không được chấp nhận sẽ được các Server rút lại và dùng để cấp phát cho các Client khác. Bước 4: Máy Server được Client chấp nhận sẽ gửi ngược lại một gói tin DHCP ACK như một lời xác nhận, cho biết địa chỉ IP đó, Subnet Mask đó và thời hạn cho sử dụng đó sẽ chính thức được áp dụng. Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 11 Hình 2.5.5. Mô phỏng quá trình Server gửi DHCPACK cho client Ngoài ra server còn gửi kèm những thông tin bổ sung như địa chỉ Gateway mặc định, địa chỉ DNS Server... Hình 2.5.6. Mô phỏng quá trình Client nhận được IP mới từ Server (Nhưng cũng có thể Server sẽ gửi gói tin DHCP NAK (Negative Acknowledgment) nếu lời đề nghị lúc đầu không chính xác nữa hoặc thông Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 12 số IP đó đã có máy tính khác sử dụng. Và lúc này Client lại phải bắt đầu lại quy trình xin cấp IP từ đầu) CHƯƠNG III: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 3.1. Mô hình thực nghiệm của chương trình mô phỏng chương trình DHCP - Hình dưới đây mô tả 3 client kết nối tới DHCP server Client 1 Server DHCP Client 2 Client 3 Hình 3.1.1. Mô hình thực nghiệm của chương trình mô phỏng Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 13 3.2. Thiết kế chương trình về mặt chức năng DHCP Client 1. Gửi broadcast 2. Lựa chọn một trong 3. Nhận gói tin gói tin những lời đề nghị DHCP ACK từ DHCPDISCOVER (DHCP OFFER) và Server, chính thức tới Server. Gói tin gửi broadcast lại gói dùng IP, Subnet này cũng chứa địa tin DHCPREQUEST Mac… do Server chỉ MAC của cho biết nó chấp nhận đó cung cấp. client. DHCPOFFER nào. Hình 3.2.1. Mô tả các chức năng của DHCP Client DHCP Server 1. Sau khi nhận được gói tin 2. Máy Server được Client chấp DHCP DISCOVER từ Client sẽ nhận sẽ gửi ngược lại một gói tin gửi một gói tin DHCP OFFER DHCP ACK như một lời xác nhận, đến Client, đề nghị cho thuê một cho biết địa chỉ IP đó, Subnet địa chỉ IP trong một khoảng thời Mask đó và thời hạn cho sử dụng gian nhất định, kèm theo là một đó sẽ chính thức được áp dụng. Subnet Mask và địa chỉ của Ngoài ra server còn gửi kèm Server những thông tin bổ sung như địa chỉ Gateway mặc định, địa chỉ DNS Server... Hình 3.2.2. Mô tả các chức năng của DHCP Server Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 14 3.3. Thiết kế về mặt lập trình - Đầu tiên bên Server DHCP sẽ bắt đầu lắng nghe khi click vào button Listen: private void btnlisten_Click(object sender, EventArgs e) { DHCPServer mainServer = new DHCPServer(IPAddress.Any); DHCPServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged); mainServer.StartListening(); btnlisten.Text = "Listening"; lblStatus.Text = "B t đ u l ng nghe k t n i t phía Client..."; } - Sau đó bên Client DHCP sẽ kết nối tới Server DHCP để bắt đầu gửi và nhận dữ liệu khi click vào button Connect private void btnConnect_Click(object sender, EventArgs e) { if (Connected == false) { InitializeConnection(); } else { CloseConnection("Disconnected at user's request."); } } - Nó sẽ gọi hàm InitializeConnection() để kết nối tới Server, bắt đầu nhận thông tin, gửi Hostname và Mac Address đến cho Server private void InitializeConnection() { tcpServer = new TcpClient(); tcpServer.Connect(IPAddress.Parse("192.168.1.33"), 8080); Connected = true; btnConnect.Text = "Disconnect"; swSender = new StreamWriter(tcpServer.GetStream()); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); PhysicalAddress mac = nics[0].GetPhysicalAddress(); UserName = Dns.GetHostName(); swSender.WriteLine(UserName); swSender.WriteLine(mac); swSender.Flush(); ReceiveMessages(); } - Server khởi tạo hàm DHCPDISCOVER để chứa thông tin từ Client: public static void DHCPdiscover(TcpClient tcpUser, string strUsername, string Message) { DHCPServer.htUsers.Add(strUsername, tcpUser); Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 15 DHCPServer.htConnections.Add(tcpUser, strUsername); DHCPoffer(htConnections[tcpUser] + Message); } - Server gửi cho Clien gói tin DHCPOFFER chứa thông tin về IP Address, Subnet Mask cho Client: (IP Adress sẽ được cho trong khoảng từ 192.168.1.2 cho đến 192.168.1.255, Subnet Mask mặc định sẽ là 255.255.255.0) public static void DHCPoffer(string Message) { StreamWriter swSenderSender; TcpClient[] tcpClients = new TcpClient[DHCPServer.htUsers.Count]; DHCPServer.htUsers.Values.CopyTo(tcpClients, 0); Random r = new Random(); byte[] b = new Byte[4]; b[0] = 192; b[1] = 168; b[2] = 1; b[3] = Byte.Parse((r.Next(2, 255)).ToString()); IPAddress ip = new IPAddress(b); byte[] d = new Byte[4]; d[0] = 255; d[1] = 255; d[2] = 255; d[3] = 0; IPAddress dg = new IPAddress(d); e = new StatusChangedEventArgs(ip + " "); OnStatusChanged(e); e = new StatusChangedEventArgs(dg+ " "); OnStatusChanged(e); for (int i = 0; i < tcpClients.Length; i++) { try { if (Message.Trim() == "" || tcpClients[i] == null) { continue; } swSenderSender = new StreamWriter(tcpClients[i].GetStream()); swSenderSender.WriteLine("DHCPoffer:"); swSenderSender.WriteLine(ip); swSenderSender.WriteLine(dg); swSenderSender.Flush(); swSenderSender = null; } catch { RemoveUser(tcpClients[i]); } } } Sau đó bên Client sẽ tiếp nhận gói tin DHCPOFFER: public static void DHCPoffer(string Message) { StreamWriter swSenderSender; TcpClient[] tcpClients = new TcpClient[DHCPServer.htUsers.Count]; DHCPServer.htUsers.Values.CopyTo(tcpClients, 0); Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 16 Random r = new Random(); byte[] b = new Byte[4]; b[0] = 192; b[1] = 168; b[2] = 1; b[3] = Byte.Parse((r.Next(2, 255)).ToString()); IPAddress ip = new IPAddress(b); byte[] d = new Byte[4]; d[0] = 255; d[1] = 255; d[2] = 255; d[3] = 0; IPAddress dg = new IPAddress(d); e = new StatusChangedEventArgs(ip + " "); OnStatusChanged(e); e = new StatusChangedEventArgs(dg+ " "); OnStatusChanged(e); for (int i = 0; i < tcpClients.Length; i++) { try { if (Message.Trim() == "" || tcpClients[i] == null) { continue; } swSenderSender = new StreamWriter(tcpClients[i].GetStream()); swSenderSender.WriteLine("DHCPoffer:"); swSenderSender.WriteLine(ip); swSenderSender.WriteLine(dg); swSenderSender.Flush(); swSenderSender = null; } catch { RemoveUser(tcpClients[i]); } } } - Server gửi cho Client gói tin DHCPACK và Client nhận về gói tin này, sau đó gán IP nhận được vào: public void ganiptinh() { string chuoiganip = ("netsh interface ip set address name=\"Local Area Connection\" static " + ip + " " + sm + " " + dg); ProcessStartInfo p = new ProcessStartInfo("cmd.exe", "/c" + chuoiganip); p.RedirectStandardOutput = true; p.UseShellExecute = false; p.CreateNoWindow = true; Process pro = new Process(); pro.StartInfo = p; pro.Start(); } Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 17 - Khi tắt kết nối, Client sẽ gán lại IP động (trường hợp thử nghiệm trên máy có nối mạng, sau khi tắt kết nối tới DHCP Server, sẽ tự động gán IP động sẵn có của máy) public void ganipdong() { string chuoiganip = ("netsh interface ip set address name=\"Local Area Connection\" dhcp"); ProcessStartInfo p = new ProcessStartInfo("cmd.exe", "/c" + chuoiganip); p.RedirectStandardOutput = true; p.UseShellExecute = false; p.CreateNoWindow = true; Process pro = new Process(); pro.StartInfo = p; pro.Start(); } - Client đóng kết nối: private void CloseConnection(string Reason) { Connected = false; lblStatus.Text = "Đã ng t k t n i t i Server DHCP!"; listView1.Items.Clear(); btnConnect.Text = "Connect"; swSender.Close(); srReceiver.Close(); tcpServer.Close(); ganipdong(); \ } Trên đây chỉ là một số đoạn code trong chương trình lấy ra để minh họa một số quá trình mô phỏng chương trình DHCP. Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 18 CHƯƠNG IV: KẾT LUẬN 4.1. Các chức năng đã đạt được của chương trình Trong thời gian qua, chúng em đã cố gắng tìm hiểu về các yêu cầu của đề tài. Những phần chúng em đã làm được bao gồm việc xây dựng các hàm tạo kết nối giữa Client và Server, cho phép Client và Server gửi và nhận thông tin qua lại với nhau. Client có thể gửi thông tin về Hostname, Mac Address trong gói DHCP REQUEST cho Server, và nhận về gói DHCP ACK bao gồm các thông tin về IP Address, Subnet Mask, Defaul Gateway từ Server sau đó gán những thông tin đó cho Client. Server nhận được Hostname, Mac Address từ Client, sau đó gửi cho Client gói DHCP ACK bao gồm các thông tin Server cấp cho Client như: IP Address, Subnet Mask, Defaul Gateway. 4.2. Các vấn đề còn tồn tại Bên cạnh những điều đạt được thì vẫn còn những tồn tại: o Chưa quản lí được thời gian cho thuê IP của Server giành cho Client. o Chưa khắc phục được lỗi thử nghiệm trên một số máy sau khi Client nhận được gói tin DHCP ACK thì nó không được gán vào cho Client. o Chưa broadcast được gói tin DHCP REQUEST từ Client cho nhiều Server….. Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 19 PHỤ LỤC 1 CÁC HÌNH ẢNH SỬ DỤNG TRONG BÀI Hình 1.1. Mô hình DHCP................................................................................................. Hình 2.5.1. Mô phỏng quá trình Client gửi DHCP Discover cho Server ..................... Hình 2.5.2. Mô phỏng quá trình Server gửi lại DHCPOFFER cho client.................... Hình 2.5.3. Mô phỏng quá trình Client lựa chọn Server................................................ Hình 2.5.4. Mô phỏng quá trình Client gửi DHCPREQUEST cho Server ................... Hình 2.5.5. Mô phỏng quá trình Server gửi DHCPACK cho client .............................. Hình 2.5.6. Mô phỏng quá trình Client nhận được IP mới từ Server............................ Hình 3.1.1. Mô hình thực nghiệm của chương trình mô phỏng ..................................... Hình 3.2.1. Mô tả các chức năng của DHCP Client ............................................................. Hình 3.2.2. Mô tả các chức năng của DHCP Server ............................................................ Chương Trình Mô Phỏng DHCP
- Lập Trình Mạng Căn Bản 20 PHỤ LỤC 2 TÀI LIỆU THAM KHẢO 1. Tài liệu học môn lập trình mạng do thầy Nhiệm cung cấp. 2. http://tools.ietf.org/html/rfc2131 3. http://vi.wikipedia.org/wiki/DHCP 4. http://www.java2s.com/Code/CSharp/CatalogCSharp.htm 5. http://social.msdn.microsoft.com/Forums/en- AU/wsk/thread/836c2150-583c-43a6-93b3-0e3202c2e2f5 6. http://support.microsoft.com/kb/169289/vi-vn#mtDisclaimer 7. http://forum.duytan.edu.vn/sites/index.aspx?p=forum_thread&foru m=688&thread=2119#p0 8. http://yinyangit.wordpress.com/2011/06/22/socket-communication- with-tcp-client-server/ 9. http://yinyangit.wordpress.com/2011/07/24/csharp-simple- example-multiconnection-tcp-server/# 10. http://baomathethong.blogspot.com/2010/07/dhcp-va-su-huu-ich- danh-cho-quan-tri.html 11. http://125.234.239.108/~phuocnt/TKQL%20MANG%20LAN/Bai Giang/CH03_BOOTROM/mo%20hinh%20DHCP.swf Chương Trình Mô Phỏng DHCP
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Baì 3: Cài đặt và thiết lập mạng ngang hàng
12 p | 1096 | 294
-
Căn bản về TCP/IP TCP/IP
4 p | 471 | 201
-
Căn bản về TCP/IP T CP/IP (Transmission Control Protocol/Internet Protocol) là một bộ
7 p | 423 | 156
-
Một số TD lập trình C cho PIC với CCS C
6 p | 308 | 101
-
Lập Trình Cơ Sở Dữ Liệu Với CSharp- P2
10 p | 149 | 61
-
Bài giảng lập trình java - Bài 10
15 p | 120 | 28
-
Tổng quan về mạng
7 p | 107 | 24
-
Lập trình C-Bài
10 p | 121 | 24
-
Lập trình căn bản-Chương VIII: Chuỗi ký tự
7 p | 68 | 11
-
Kỹ thuật lập trình - Chapter 3
15 p | 70 | 11
-
Đón Noel cho máy tính của bạn
3 p | 81 | 6
-
Giáo trình hình thành hệ thống ứng dụng nguyên lý nhận thông điệp định tuyến và báo lỗi DHCP p1
10 p | 68 | 4
-
Giáo trình phân tích phương pháp ứng dụng lập trình tối ưu hệ thống 2
5 p | 36 | 4
-
Giáo trình phân tích quy trình định dạng cấu hình color management spooling của máy in p1
5 p | 59 | 3
-
Giáo trình hướng dẫn 5 cách khóa an toàn địa chỉ email của bạn khi có dấu hiệu bị xâm nhập p5
5 p | 87 | 3
-
Bài giảng Lập trình mạng với Java - Chương 4: Lập trình đa tuyến đoạn
18 p | 52 | 3
-
Giáo trình hướng dẫn sử dụng fillet và chamfer trong quá trình vẽ đối tượng phân khúc p9
5 p | 48 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn