Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,05 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN CƠ SỞ NGÀNH MẠNG Đề tài Xây dựng DNS Server phân giải tên miền cho trước Tìm hiểu xây dựng chương trình quản lý nhớ máy tính Giảng viên hướng dẫn: Lê Trần Đức Sinh viên thực hiện: Đoàn Quốc Bảo MSSV: 102170137 Lớp: 17T3 Đà Nẵng, 12/2020 LỜI MỞ ĐẦU Đồ án sở ngành mạng đồ án quan trọng ngành Công Nghệ Thông Tin Thông qua đồ án này, chúng em - sinh viên trường đại học Bách Khoa Đà Nẵng đạt kiến thức tảng có hội nghiên cứu chun sâu mơn Lập trình mạng Nguyên lí hệ điều hành Trong đồ án này, phần Nguyên lí hệ điều hành, em nghiên cứu tìm hiểu để xây dựng chương trình quản lí nhớ máy tính, cịn phần Lập trình mạng, đề tài chọn xây dựng DNS Server phân giải tên miền cho trước Với đồng hành hỗ trợ nhiệt tình thầy mơn ngành Mạng nỗ lực cố gắng thân, báo cáo Đồ án sở ngành mạng hoàn thành với thời hạn giao Đặc biệt em xin trân trọng cảm ơn thầy TS Lê Trần Đức hướng dẫn bảo tận tình trình nghiên cứu đồ án Sinh viên thực Đoàn Quốc Bảo MỤC LỤC MỞ ĐẦU MỤC LỤC PHẦN 1: LẬP TRÌNH MẠNG I CỞ SỞ LÝ THUYẾT II PHÂN TÍCH VÀ THIẾT KẾ III TRIỂN KHAI VÀ ĐÁNH GIÁ 10 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 13 PHẦN 2: NGUYÊN LÝ HỆ ĐIỀU HÀNH 14 I CƠ SỞ LÝ THUYẾT 14 II PHÂN TÍCH THIẾT KẾ HỆ THỐNG 16 III TRIỂN KHAI VÀ ĐÁNH GIÁ 20 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21 KẾT LUẬN CHUNG 22 TÀI LIỆU THAM KHẢO 23 PHẦN 1: LẬP TRÌNH MẠNG Đề tài: Xây dựng DNS Server phân giải tên miền cho trước Yêu cầu đề tài: Xây dựng chương trình nhập domain trả địa IP cho người dùng Chương trình có danh sách domain nhập Có chức xóa domain nhập Xây dựng giao diện thân thiện với người dùng I CƠ SỞ LÝ THUYẾT Tên miền (Domain) Mục đích tên miền để cung cấp hình thức đại diện, hay nói cách khác, dùng tên dễ nhận biết, thay cho tài nguyên Internet mà đa số đánh địa số Cách nhìn trừu tượng cho phép tài nguyên (ở website) di chuyển đến địa vật lý khác cấu trúc liên kết địa mạng, toàn cầu cục mạng intranet, mà thực tế làm thay đổi địa IP Việc dịch từ tên miền sang địa IP (và ngược lại) hệ thống DNS toàn cầu thực Địa IP Địa IP (Internet Protocol - giao thức Internet) địa đơn mà thiết bị điện tử sử dụng để nhận diện liên lạc với mạng máy tính cách sử dụng giao thức Internet Có loại địa IP IPv4 IPv6: Địa IPv4 sử dụng 32 bit để mã hố liệu (Ví dụ: 192.168.24.10) Địa IPv6 sử dụng 128 bit để mã hố liệu, cho phép sử dụng nhiều địa so với IPv4 DNS Server DNS Server (hay viết tắt DNS tên tiếng Anh Domain Name System) hệ thống cho phép thiết lập tương ứng địa IP tên miền Internet Hệ thống phân giải tên miền (DNS) hệ thống giúp cho việc chuyển đổi tên miền mà người dễ ghi nhớ (dạng ký tự, ví dụ www.example.com) sang địa IP vật lý (dạng số, ví dụ 123.11.5.19) tương ứng tên miền DNS giúp liên kết với trang thiết bị mạng cho mục đích định vị địa hóa thiết bị Internet Mỗi website có tên (là tên miền hay đường dẫn URL: Uniform Resource Locator) địa IP Địa IP gồm nhóm số cách dấu chấm(IPv4) Khi mở trình duyệt Web nhập tên website, trình duyệt đến thẳng website mà khơng cần phải thông qua việc nhập địa IP trang web Quá trình "dịch" tên miền thành địa IP trình duyệt hiểu truy cập vào website công việc DNS server Các DNS trợ giúp qua lại với để dịch địa "IP" thành "tên" ngược lại Người sử dụng cần nhớ "tên", không cần phải nhớ địa IP (địa IP số khó nhớ) Hình Tên miền địa IP Giao thức TCP/IP TCP – TCP viết tắt Transmission Control Protocol TCP thường sử dụng qua giao thức Internet (Internet Protocol), gọi TCP/IP Giao thức cho phép giao tiếp tin cậy hai ứng dụng Socket cung cấp chế truyền thông hai máy tính sử dụng TCP Socket cho phép thiết lập kênh giao tiếp mà hai đầu kênh đánh dấu hai cổng (port) Thông qua cổng q trình nhận gởi liệu với trình khác Một máy khách (client) tạo socket để kết nối đến với máy chủ (server) Khi chạy, server cần xác định rõ địa IP “lắng nghe” port cụ thể Server nằm trạng thái client gửi đến yêu cầu kết nối Sau server chấp nhận, connection hình thành cho phép server client giao tiếp với Trong đồ án này, trọng tâm để giao tiếp client server thơng qua Socket TCP, mơ tả thơng qua mơ hình Hình Sơ đồ trình trao đổi liệu Client Server thông qua TCP Các bước thiết lập kết nối TCP hai máy tính sử dụng socket: Máy chủ khởi tạo đối tượng ServerSocket với cổng giao tiếp (port) Máy chủ gọi phương thức accept() lớp ServerSocket Phương pháp đợi máy khách kết nối đến máy chủ cổng cho Trong máy chủ chờ đợi, máy khách khởi tạo đối tượng Socket, xác định tên máy chủ (IP domain) số cổng để kết nối Đối tượng socket máy khách cố gắng kết nối máy khách tới máy chủ định số cổng Nếu truyền thông thiết lập, máy khách có đối tượng socket có khả giao tiếp với máy chủ Ở phía máy chủ, phương thức accept() trả tham chiếu đến socket máy chủ kết nối với socket máy khách II PHÂN TÍCH VÀ THIẾT KẾ Mô tả Xây dựng trang web để người dùng truy cập, trả địa IPv4 tên miền nhận yêu cầu truy xuất từ người dùng Chương trình chia làm phần: Giao diện Client thiết kế Python Tkinter, đồng thời tiếp nhận, xử lý gửi request từ phía người dùng cho phía Server Server viết ngơn ngữ lập trình Python, tạo cổng kết nối thông qua giao thức TCP/IP để tiếp nhận request từ phía Client, đồng thời truy vấn sở liệu để trả kết cho phía Client Database sử dụng MySQL để chứa liệu cần thiết Sơ đồ hoạt động chương trình Chương trình có vật thể Client, Server, API Cơ sở liệu Hình Sơ đồ hoạt động chương trình Các chức chương trình Chức nhận địa IP trả Khi server nhận kết Domain từ phía client, tiến hành request api từ trang https://ip-api.com/ để nhận địa IP trả về, địa IP Domain không hợp lệ trả kết “Domain is not valid!” Hình Chức nhận địa IP trả Chức truy vấn sở liệu Ta tiến hành tạo sở liệu MySQL với liệu bao gồm địa IP bắt đầu (ip from), địa IP kết thúc (ip to), mã quốc gia (country code), tên quốc gia (country name), tên khu vực (region name), tên thành phố (city name), nhà cung cấp mạng (isp), tên miền nhà cung cấp mạng (domain), mục đích sử dụng (usage type), mã định danh cơng ty (asn) tên định danh công ty (ass) lấy từ trang https://lite.ip2location.com/ Hình Cơ sở liệu MySQL Tiếp theo, ta kết nối tới sở liệu tiến hành lấy sở liệu country code, country name, region name, isp từ địa IP ta nhận Hình Chức truy vấn sở liệu Chức hiển thị danh sách tên miền nhập Tiến hành lưu tên miền nhập vào sở liệu, hiển thị chúng bảng danh sách Hình Chức hiển thị danh sách tên miền nhập Chức xóa tên miền danh sách Hình Chức xóa tên miền danh sách TRIỂN KHAI VÀ ĐÁNH GIÁ BI Môi trường làm việc - Hệ điều hành Windows Ngơn ngữ lập trình Python Cơ sở liệu MySQL Công cụ Visual Studio Code 10 Thực chương trình Tiến hành biên dịch khởi chạy trang web command line dùng IDE, dùng IDE Visual Studio Code để thuận tiện cho việc thao tác viết mã, debug Khởi chạy Server Hình Màn hình khởi chạy Server Khởi chạy Client, ta có giao diện phía Client Hình 10 Màn hình khởi chạy Client 11 Nhập tên miền bất kỳ, trả kết danh sách List Domain Hình 11 Màn hình trả kết nhập tên miền Đánh giá Ưu điểm - Chương trình đáp ứng yêu cầu - Chương trình trả kết nhanh xác Nhược điểm - Giao diện chưa đẹp mắt - Cần kết nối tới mạng để trả địa IP 12 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Qua đồ án lập trình mạng này, em học nhiều kiến thức, phần quan trọng kể là: Cách thức vận hành mơ hình TCP/IP thực hành truyền nhận liệu Client, Server thông qua TCP Kỹ phân tích, thiết kế xây dựng ứng dụng Rèn luyện kỹ lập trình với ngơn ngữ Python Kỹ triển khai ứng dụng vận hành ứng dụng Hướng phát triển Dự định tới em việc mở rộng dự án là: - Xây dựng lại giao diện thân thiện với người dùng - Xây dựng thêm chức nâng cao xử lý yêu cầu phức tạp - Xây dựng ứng dụng di động 13 PHẦN 2: NGUYÊN LÝ HỆ ĐIỀU HÀNH Đề tài: Tìm hiểu xây dựng chương trình quản lý nhớ máy tính u cầu đề tài: Xây dựng chương trình hiển thị nhớ máy tính Chức hiển thị nhớ tiêu tốn ứng dụng Chức dừng chạy ứng dụng Xây dựng giao diện thân thiện với người dùng I CƠ SỞ LÝ THUYẾT Bộ nhớ lưu trữ tạm thời (RAM) gì? RAM (Random Access Memory) loại nhớ khả biến cho phép truy xuất đọc-ghi ngẫu nhiên đến vị trí nhớ dựa theo địa nhớ Thông tin lưu RAM tạm thời, chúng mất nguồn điện cung cấp RAM nhớ máy tính hệ thống điều khiển, để lưu trữ thông tin thay đổi sử dụng Các hệ thống điều khiển sử dụng SRAM làm thiết bị lưu trữ thứ cấp Khi cần thiết bố trí pin nhỏ làm nguồn điện phụ để trì liệu RAM RAM có đặc tính thời gian thực thao tác đọc ghi ô nhớ nhau, cho dù vị trí nhớ Mỗi nhớ RAM có địa Thông thường, ô nhớ byte (8 bit); nhiên hệ thống lại đọc hay ghi vào nhiều byte (2, 4, byte) lúc RAM khác biệt với thiết bị nhớ chẳng hạn băng từ, CD-RW, DVD-RW, ổ đĩa cứng, bắt buộc phải tìm đến sector đọc/ghi khối liệu để truy xuất RAM thuật ngữ phân biệt tương đối theo ý nghĩa sử dụng, với chip nhớ truy xuất ngẫu nhiên EEPROM (read-only memory) cấm hạn chế chiều ghi, nhớ flash phép đọc/ghi 14 Hình 12 Thanh RAM máy tính RAM có cấu tạo nào? Thanh RAM cấu tạo từ nhiều chi tiết nhỏ khác nhau, gồm có: điện trở, phần bao quanh chip nhớ (resistor); tụ điện (capacitor) Dãy điện trở tụ điện thường thiết kế nằm cạnh tham RAM để cung cấp điện áp cách ổn định xác cho chip nhớ Chi tiết mạch in RAM (PCB) gồm nhiều lớp đồng khác nhau, thường gồm từ – lớp đồng Các lớp đồng liên kết chặt chẽ với quy trình sản xuất mạch in phức tạp Nếu nhìn từ xuống bạn thấy lớp nối tiếp nhau: lớp tín hiệu thứ nhất, lớp nối mát, tiếp đến lớp tín hiệu thứ hai, lớp nối mát, tương tự đến lớp nối mát lớp tín hiệu thứ ba, tư, lớp cuối Cơng dụng lớp nối mát tạo điểm có điện áp để hạn chế trường hợp nhiễu mạch điện Các chân cắm RAM thường mạ vàng để làm giảm tối đa trường hợp bị oxy hóa Nhờ giúp RAM truyền dẫn tín hiệu tốt Q trình làm việc RAM? Khi CPU chuyển liệu từ ổ cứng vào RAM để lưu trữ tạm thời, vùng nhớ RAM bị chiếm dụng trước trả lại người dùng tắt ứng dụng, tắt máy tính Bộ nhớ RAM đủ lớn để lưu trữ lúc nhiều liệu khác nhau, nhiên có giới hạn RAM chia làm hai loại SRAM DRAM: SRAM (Static RAM): RAM tĩnh không bị nội dung sau nạp trừ từ lúc khởi động máy tính Các nội dung ứng dụng vào lưu trữ liệu khởi động - 15 DRAM (Dynamic RAM): RAM động – Đây phần lưu trữ liệu tạm thời chạy ứng dụng Khi ứng dụng đóng lại hay người dùng tắt máy vùng nhớ bị chiếm để lưu trữ liệu trả lại - Dung lượng RAM Dung lượng RAM tính đơn vị MB GB Các RAM thông thường thiết kế với dung lượng từ 256mb, 512mb,1gb, 2gb, 3gb, 4gb, 8gb… Dung lượng RAM lớn có nhiều khơng gian lưu trữ thơng tin hơn, điều có nhiều lợi ích cho bạn sử dụng Tuy nhiên hệ thống phần cứng CPU hỗ trợ loại RAM với dung lượng lớn BUS RAM Có hai loại BUS BUS speed BUS width: - BUS Speed (BUS tốc độ): tốc độ xử lý liệu vòng thời gian giây BUS Width (BUS chiều rộng): chiều rộng nhớ Với loại RAM thông thường DDR, DDR2, DDR3, DDR4 có BUS Width cố định 64 - AI PHÂN TÍCH VÀ THIẾT KẾ Mơ tả Viết chương trình nhằm hiển thị ứng dụng, nhớ RAM tiêu tốn ứng dụng, đồng thời có thêm nút dừng chạy chương trình Chương trình viết ngôn ngữ Python, sử dụng Tkinter để tạo giao diện người dùng Sử dụng Matplotlib để vẽ biểu đồ cho ứng dụng 16 Sơ đồ hoạt động chương trình Chương trình gồm thực thể Người dùng, Task Manager, Memory Details Hình 13 Sơ đồ hoạt động chương trình 17 Các chức Chức lấy thơng tin nhớ Tiến hành lấy thông tin tổng số nhớ máy tính, tổng số nhớ tiêu tốn, số nhớ lại, phần trăm số nhớ chiếm dụng nhờ thư viện Psutil có ngơn ngữ lập trình Python Hình 14 Chức lấy thơng tin nhớ Chức lấy thông tin nhớ cho ứng dụng Tiến hành lấy thông tin nhớ ứng dụng chạy nhờ thư viện Psutil có Python, ta lấy thơng tin nhớ xếp theo thứ tự giảm dần trả danh sách 30 ứng dụng ngốn nhớ Hình 15 Chức lấy thông tin nhớ cho ứng dụng 18 Chức vẽ biểu đồ nhớ Từ thông số nhớ trên, ta tiến hành vẽ biểu đồ nhờ thư viện Matplotlib với hàng dọc phần trăm số nhớ tiêu tốn, hàng ngang thời gian thực chương trình Hình 16 Chức vẽ biểu đồ nhớ Chức dừng chạy chương trình Từ danh sách ứng dụng tiêu tốn nhớ máy tính trên, ta tiến hành dừng chạy chương trình Hình 17 Chức dừng chạy chương trình 19 TRIỂN KHAI VÀ ĐÁNH GIÁ BI Môi trường làm việc - Hệ điều hành Windows Ngơn ngữ lập trình Python Cơng cụ Visual Studio Code Triển khai Màn hình khởi chạy chương trình Hình 18 Màn hình khởi chạy chương trình Màn hình chi tiết quản lý nhớ máy tính Hình 19 Màn hình chi tiết quản lý nhớ 20 Đánh giá Ưu điểm - Chương trình đáp ứng yêu cầu đề tài - Chương trình trả kết xác hệ thống Nhược điểm - Giao diện chưa đẹp mắt KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Qua đồ án lập trình mạng này, em học nhiều kiến thức, phần quan trọng kể là: Cách thức vận hành nhớ máy tính Kỹ phân tích, thiết kế xây dựng ứng dụng Rèn luyện kỹ lập trình với ngơn ngữ Python Kỹ triển khai ứng dụng vận hành ứng dụng Hướng phát triển Dự định tới em việc mở rộng dự án là: - Xây dựng lại giao diện thân thiện với người dùng - Xây dựng thêm chức nâng cao xử lý yêu cầu phức tạp - Xây dựng ứng dụng di động 21 KẾT LUẬN CHUNG Qua đồ án sở ngành mạng bọn em học rút nhiều kiến thức bổ ích Hiểu sâu môn Nguyên lý hệ điều hành Lập trình mạng Vận dụng kiến thức học vào việc tạo sản phẩm, thơng qua kiến thức củng cố tốt Về tiến độ công việc giao, em hoàn thiện theo yêu cầu Một lần em xin gửi lời cảm ơn chân thành đến thầy TS Lê Trần Đức hướng dẫn tận tình em hồn thiện đồ án Xin chân thành cảm ơn Đoàn Quốc Bảo 22 TÀI LIỆU THAM KHẢO [1] Phạm Minh Tuấn, Mai Văn Hà, Đặng Duy Thắng, Giáo trình giảng dạy mơn Lập trình mạng, Khoa Cơng nghệ thơng tin, Đại học Bách Khoa, Đại học Đà Nẵng [2] Bài Giảng Nguyên Lý Hệ Điều Hành, Khoa Công nghệ thông tin, Đại học Bách Khoa, Đại học Đà Nẵng [3] Tài liệu tkinter: https://docs.python.org/3/library/tkinter.html/ [4] Tài liệu Psutil: https://pypi.org/project/psutil/ [5] Tài liệu Matplotlib: https://matplotlib.org/ [6] Tài liệu Python Socket: https://realpython.com/python-socket/ 23 ... xử lý yêu cầu phức tạp - Xây dựng ứng dụng di động 13 PHẦN 2: NGUYÊN LÝ HỆ ĐIỀU HÀNH Đề tài: Tìm hiểu xây dựng chương trình quản lý nhớ máy tính u cầu đề tài: Xây dựng chương trình hiển thị nhớ. .. Lập trình mạng Ngun lí hệ điều hành Trong đồ án này, phần Nguyên lí hệ điều hành, em nghiên cứu tìm hiểu để xây dựng chương trình quản lí nhớ máy tính, cịn phần Lập trình mạng, đề tài chọn xây dựng. .. Server phân giải tên miền cho trước Yêu cầu đề tài: Xây dựng chương trình nhập domain trả địa IP cho người dùng Chương trình có danh sách domain nhập Có chức xóa domain nhập Xây dựng giao diện