1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng DNS server phân giải tên miền cho trước tìm hiểu và xây dựng một chương trình quản lý bộ nhớ máy tính

24 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đồ án này, về phần Nguyên lí hệ điều hành, em nghiên cứu và tìmhiểu để xây dựng chương trình quản lí bộ nhớ máy tính, còn phần Lập trình mạng, đề tài được chọn là xây dựng DNS Serv

Trang 1

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

1 Xây dựng DNS Server phân giải tên miền cho trước

2 Tìm hiểu và xây dựng một chương trình quản lý bộ 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

Trang 2

LỜI MỞ ĐẦU

Đồ án cơ sở ngành mạng là một trong những đồ án quan trọng của ngành CôngNghệ Thông Tin Thông qua đồ án này, chúng em - là những sinh viên của trường đạihọc Bách Khoa Đà Nẵng sẽ đạt được những kiến thức nền tảng và có cơ hội đượcnghiên cứu chuyên sâu hơn về bộ môn Lập trình mạng và Nguyên lí hệ điều hành

Trong đồ án này, về phần Nguyên lí hệ điều hành, em nghiên cứu và tìmhiểu để xây dựng chương trình quản lí bộ nhớ máy tính, còn phần Lập trình mạng,

đề tài được chọn là xây dựng DNS Server phân giải tên miền cho trước Với sựđồng hành và hỗ trợ nhiệt tình của các thầy cô bộ môn ngành Mạng cùng sự nỗ lực

cố gắng của bản thân, bản báo cáo Đồ án cơ sở ngành mạng đã hoàn thành đúngvới thời hạn được giao

Đặc biệt em xin trân trọng cảm ơn thầy TS Lê Trần Đức đã hướng dẫn vàchỉ bảo tận tình trong quá trình nghiên cứu đồ án này

Sinh viên thực hiện

Đoàn Quốc Bảo

Trang 3

MỤC LỤC

MỞ ĐẦU 1

MỤC LỤC 2

PHẦN 1: LẬP TRÌNH MẠNG 3

I CỞ SỞ LÝ THUYẾT 3

II PHÂN TÍCH VÀ THIẾT KẾ 6

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

Trang 4

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 và trả về địa chỉ IP cho người dùng.

Chương trình có danh sách các domain từng nhập.

Có chức năng xóa các domain từng 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

1 Tên miền (Domain)

Mục đích chính của tên miền là để cung cấp một hình thức đại diện, hay nói cách khác, dùng những tên dễ nhận biết, thay cho những tài nguyên Internet mà đa

số được đánh địa chỉ bằng số Cách nhìn trừu tượng này cho phép bất kỳ tài

nguyên nào (ở đây là website) đều có thể được di chuyển đến một địa chỉ vật lý khác trong cấu trúc liên kết địa chỉ mạng, có thể là toàn cầu hoặc chỉ cục bộ trong một mạng intranet, mà trên thực tế là đang làm thay đổi địa chỉ IP Việc dịch từ tênmiền sang địa chỉ IP (và ngược lại) do hệ thống DNS trên toàn cầu thực hiện

2 Địa chỉ IP

Địa chỉ IP (Internet Protocol - giao thức Internet) là một địa chỉ đơn nhất mà những thiết bị điện tử hiện nay đang sử dụng để nhận diện và liên lạc với nhau trênmạng máy tính bằng cách sử dụng giao thức Internet

Có 2 loại địa chỉ IP là IPv4 và IPv6:

 Địa chỉ IPv4 sử dụng 32 bit để mã hoá dữ liệu (Ví dụ: 192.168.24.10)

 Địa chỉ IPv6 sử dụng 128 bit để mã hoá dữ liệu, nó cho phép sử dụng nhiều địa chỉ hơn so với IPv4

3 DNS Server

DNS Server (hay được viết tắt là DNS do tên tiếng Anh Domain Name System)

là một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền trên Internet.

Hệ thống phân giải tên miền (DNS) về căn bản là một hệ thống giúp cho việc

Trang 5

sang địa chỉ IP vật lý (dạng số, ví dụ 123.11.5.19) tương ứng của tên miền đó DNS giúp liên kết với các trang thiết bị mạng cho các mục đích định vị và địa chỉ hóa các thiết bị trên Internet.

Mỗi website có một tên (là tên miền hay đường dẫn URL: Uniform

Resource Locator) và một địa chỉ IP Địa chỉ IP gồm 4 nhóm số cách nhau bằng dấu chấm(IPv4) Khi mở một trình duyệt Web và nhập tên website, trình duyệt sẽ đến thẳng website mà không cần phải thông qua việc nhập địa chỉ IP của trang web Quá trình "dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cậpđược vào website là công việc của một DNS server Các DNS trợ giúp qua lại với nhau để dịch địa chỉ "IP" thành "tên" và ngược lại Người sử dụng chỉ cần nhớ

"tên", không cần phải nhớ địa chỉ IP (địa chỉ IP là những con số rất khó nhớ)

Hình 1 Tên miền và địa chỉ IP

4 Giao thức TCP/IP

TCP – TCP là viết tắt của Transmission Control Protocol TCP thường được

sử dụng qua giao thức Internet (Internet Protocol), được gọi là TCP/IP Giao thứcnày cho phép giao tiếp tin cậy giữa hai ứng dụng

Socket cung cấp cơ chế truyền thông giữa hai máy tính sử dụng TCP Socketcho phép thiết lập các kênh giao tiếp mà hai đầu kênh được đánh dấu bởi hai cổng(port) Thông qua các cổng này một quá trình có thể nhận và gởi dữ liệu với cácquá trình khác

Trang 6

Một máy khách (client) tạo ra socket để kết nối đến với máy chủ (server).Khi được chạy, server cần được xác định rõ địa chỉ IP và sẽ “lắng nghe” trên mộtport cụ thể Server sẽ nằm trong trạng thái này cho đến khi client gửi đến một yêucầu kết nối Sau khi được server chấp nhận, một connection sẽ hình thành cho phépserver và client giao tiếp với nhau.

Trong đồ án này, trọng tâm để giao tiếp giữa client và server là thông quaSocket TCP, và có thể mô tả thông qua mô hình dưới đây

Hình 2 Sơ đồ quá trình trao đổi dữ liệu giữa Client và Server thông qua TCP

Trang 7

Các bước thiết lập kết nối TCP giữa hai máy tính sử dụng socket:

1 Máy chủ khởi tạo một đối tượng ServerSocket với một cổng giao tiếp (port)

2 Máy chủ gọi phương thức accept() của lớp ServerSocket Phương pháp này đợi cho đến khi một máy khách kết nối đến máy chủ trên cổng đã cho

3 Trong khi máy chủ đang chờ đợi, một máy khách khởi tạo đối tượng Socket,xác định tên máy chủ (IP hoặc domain) và số cổng để kết nối

4 Đối tượng socket của máy khách cố gắng kết nối máy khách tới máy chủ đãchỉ định và số cổng Nếu truyền thông được thiết lập, máy khách bây giờ có mộtđối tượng socket có khả năng giao tiếp với máy chủ

5. Ở phía máy chủ, phương thức accept() trả về một tham chiếu đến một socketmới trên máy chủ được kết nối với socket của máy khách

II PHÂN TÍCH VÀ THIẾT KẾ

1 Mô tả

Xây dựng trang web để người dùng truy cập, trả về địa chỉ IPv4 của một tên

miền bất kỳ khi nhận được yêu cầu truy xuất từ người dùng

Chương trình chia làm 2 phần:

 Giao diện Client được thiết kế bằng Python Tkinter, đồng thời tiếp nhận, xử

lý và gửi các request từ phía người dùng cho phía Server

 Server được viết bằng 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 các request từ phía Client, đồng thời truy vấn cơ sở

dữ liệu để trả về kết quả cho phía Client

 Database sử dụng MySQL để chứa các dữ liệu cần thiết.

Trang 8

2 Sơ đồ hoạt động của chương trình

Chương trình có 4 vật thể chính đó là Client, Server, API và Cơ sở dữ liệu

Hình 3 Sơ đồ hoạt động của chương trình

Trang 9

3 Các chức năng chính của chương trình

Chức năng nhận địa chỉ IP trả về

Khi server nhận kết quả Domain từ phía client, sẽ tiến hành request api

từ trang https://ip-api.com/ để nhận địa chỉ IP trả về, nếu địa chỉ IP vàDomain không hợp lệ sẽ trả về kết quả “Domain is not valid!”

Hình 4 Chức năng nhận địa chỉ IP trả về

Chức năng truy vấn cơ sở dữ liệu

Ta tiến hành tạo cơ sở dữ liệu trên MySQL với dữ liệu bao gồm địa chỉ

IP bắt đầu (ip from), địa chỉ 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ố (cityname), nhà cung cấp mạng (isp), tên miền của nhà cung cấp mạng (domain),mục đích sử dụng (usage type), mã định danh công ty (asn) và tên định danhcông ty (ass) được lấy từ trang https://lite.ip2location.com/

Trang 10

Hình 5 Cơ sở dữ liệu MySQL

Tiếp theo, ta kết nối tới cơ sở dữ liệu và tiến hành lấy cơ sở dữ liệu như

country code, country name, region name, isp từ địa chỉ IP ta nhận được ở trên

Hình 6 Chức năng truy vấn cơ sở dữ liệu

Chức năng hiển thị danh sách các tên miền từng nhập

Tiến hành lưu các tên miền đã từng nhập vào cơ sở dữ liệu, hiển thị chúng trênmột bảng danh sách

Hình 7 Chức năng hiển thị danh sách các tên miền từng nhập

Trang 11

Chức năng xóa tên miền trong danh sách

Hình 8 Chức năng xóa tên miền trong danh sách

III TRIỂN KHAI VÀ ĐÁNH GIÁ

1 Môi trường làm việc

- Hệ điều hành Windows

- Ngôn ngữ lập trình Python

- Cơ sở dữ liệu MySQL

- Công cụ Visual Studio Code

Trang 12

2 Thực hiện chương trình

Tiến hành biên dịch và khởi chạy trang web bằng command line hoặc dùng IDE, ởđây sẽ dùng IDE Visual Studio Code để thuận tiện cho việc thao tác cũng như viết

mã, debug

Khởi chạy Server

Hình 9 Màn hình khởi chạy Server

Khởi chạy Client, ta có giao diện chính của phía Client

Hình 10 Màn hình khởi chạy Client

Trang 13

Nhập tên miền bất kỳ, trả về kết quả hiện ở danh sách List Domain

Hình 11 Màn hình trả về kết quả khi nhập tên miền bất kỳ

3 Đánh giá

- Chương trình đáp ứng được yêu cầu

- Chương trình trả về kết quả nhanh và chính 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ả về địa chỉ IP

Trang 14

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 được rất nhiều kiến thức, trong đó

những phần quan trọng nhất có thể kể ra dưới đây đó là:

1 Cách thức vận hành mô hình TCP/IP và thực hành truyền nhận dữ liệu giữa Client, Server thông qua TCP

2 Kỹ năng phân tích, thiết kế và xây dựng một ứng dụng

3 Rèn luyện kỹ năng lập trình với ngôn ngữ Python

4 Kỹ năng triển khai ứng dụng và vận hành ứng dụng

Hướng phát triển

Dự định sắp tới của em trong việc mở rộng dự án này đó 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 các chức năng nâng cao có thể xử lý các yêu cầu phức tạp

- Xây dựng ứng dụng trên di động

Trang 15

PHẦN 2: NGUYÊN LÝ HỆ ĐIỀU HÀNH

Đề tài: Tìm hiểu và xây dựng một chương trình quản lý bộ nhớ máy tính

Yêu cầu đề tài:

Xây dựng chương trình hiển thị bộ nhớ máy tính.

Chức năng hiển thị bộ nhớ tiêu tốn của từng ứng dụng.

Chức năng dừng chạy một ứ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

1 Bộ nhớ lưu trữ tạm thời (RAM) là gì?

RAM (Random Access Memory) là một loại bộ nhớ khả biến cho phép truy xuất đọc-ghi ngẫu nhiên đến bất kỳ vị trí nào trong bộ nhớ dựa theo địa chỉ bộ nhớ Thông tin lưu trên RAM chỉ là tạm thời, chúng sẽ mất đi khi mất nguồn điện cung cấp

RAM là bộ nhớ chính của máy tính và các hệ thống điều khiển, để lưu trữ các thông tin thay đổi đang sử dụng Các hệ thống điều khiển còn sử dụng SRAM như làm một thiết bị lưu trữ thứ cấp Khi cần thiết thì bố trí một pin nhỏ làm nguồnđiện phụ để duy trì dữ liệu trong RAM RAM có một đặc tính là thời gian thực hiện thao tác đọc hoặc ghi đối với mỗi ô nhớ là như nhau, cho dù đang ở bất kỳ vị trí nào trong bộ nhớ Mỗi ô nhớ của RAM đều có một địa chỉ Thông thường, mỗi

ô nhớ là một byte (8 bit); tuy nhiên hệ thống lại có thể đọc ra hay ghi vào nhiều byte (2, 4, 8 byte) một lúc

RAM khác biệt với các thiết bị bộ nhớ tuần tự chẳng hạn như các băng từ, CD-RW, DVD-RW, ổ đĩa cứng, trong đó bắt buộc phải tìm đến sector và đọc/ghi

cả khối dữ liệu ở đó để truy xuất RAM là thuật ngữ phân biệt tương đối theo ý

nghĩa sử dụng, với các chip nhớ truy xuất ngẫu nhiên là EEPROM (read-only

memory) cấm hoặc hạn chế chiều ghi, và bộ nhớ flash được phép đọc/ghi

Trang 16

Hình 12 Thanh RAM máy tính

2 RAM có cấu tạo như thế nào?

Thanh RAM được cấu tạo từ nhiều các chi tiết nhỏ khác nhau, gồm có: điện trở, là phần bao quanh các chip nhớ (resistor); tụ điện (capacitor) Dãy điện trở và tụ điện thường được thiết kế nằm cạnh tham RAM để cung cấp điện áp mộtcách ổn định và chính xác cho các chip nhớ

Chi tiết bản mạch in của RAM (PCB) gồm nhiều lớp đồng khác nhau,

thường gồm từ 6 – 8 lớp đồng Các lớp đồng được liên kết chặt chẽ với nhau

bằng quy trình sản xuất mạch in phức tạp

Nếu nhìn từ trên xuống các bạn có thể thấy được các lớp nối tiếp nhau: trên cùng là 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 các lớp nối mát và các lớp tín hiệu thứ ba, tư, lớp cuối cùng Công dụng của lớp nối mát chính là tạo ra các điểm có điện áp bằng 0 để hạn chế các trường hợp nhiễu trong mạch điện

Các chân cắm của thanh RAM thường được mạ vàng để làm giảm tối đa

trường hợp bị oxy hóa Nhờ đó giúp thanh RAM truyền dẫn tín hiệu tốt hơn

3 Quá trình làm việc của RAM?

Khi CPU chuyển các dữ liệu từ ổ cứng vào RAM để lưu trữ tại đó tạm

thời, vùng nhớ tại RAM đã bị chiếm dụng trước đó sẽ được trả lại khi người dùngtắt các ứng dụng, tắt máy tính Bộ nhớ của RAM đủ lớn để lưu trữ cùng lúc nhiều

dữ liệu khác nhau, tuy nhiên vẫn có giới hạn

RAM được chia làm hai loại chính là SRAM và DRAM:

- SRAM (Static RAM): RAM tĩnh không bị mất các nội dung sau khi nạp trừ từ lúc khởi động máy tính Các nội dung được ứng dụng vào lưu trữ dữ liệu khởi động

Trang 17

- DRAM (Dynamic RAM): RAM động – Đây là phần lưu trữ dữ liệu tạmthời khi chạy các ứng dụng Khi các ứng dụng được đóng lại hay người dùng tắtmáy thì các vùng nhớ bị chiếm dữ để lưu trữ dữ liệu sẽ được trả lại.

4 Dung lượng của RAM

Dung lượng của RAM được tính bằng đơn vị MB và GB Các RAM thông thường sẽ được thiết kế với dung lượng từ 256mb, 512mb,1gb, 2gb, 3gb, 4gb, 8gb… Dung lượng RAM lớn thì sẽ có nhiều không gian lưu trữ thông tin hơn, điều này có nhiều lợi ích cho bạn khi sử dụng Tuy nhiên không phải hệ thống phần cứng và CPU nào cũng hỗ trợ các loại RAM với dung lượng lớn

5 BUS của RAM

Có hai loại BUS cơ bản đó là BUS speed và BUS width:

- BUS Speed (BUS tốc độ): tốc độ xử lý các dữ liệu trong vòng thời gian 1giây

- BUS Width (BUS chiều rộng): chiều rộng của bộ nhớ Với các loại RAMthông thường như DDR, DDR2, DDR3, DDR4 đều có BUS Width cố định là 64

II PHÂN TÍCH VÀ THIẾT KẾ

Trang 18

2 Sơ đồ hoạt động của chương trình

Chương trình gồm 3 thực thể là Người dùng, Task Manager, Memory Details

Hình 13 Sơ đồ hoạt động của chương trình

Trang 19

3 Các chức năng chính

Chức năng lấy thông tin bộ nhớ

Tiến hành lấy thông tin bộ như tổng số bộ nhớ của máy tính, tổng số bộ nhớ đã tiêu tốn, số bộ nhớ còn lại, phần trăm số bộ nhớ chiếm dụng nhờ thư viện Psutil có trong ngôn ngữ lập trình Python

Hình 14 Chức năng lấy thông tin bộ nhớ

Chức năng lấy thông tin bộ nhớ cho từng ứng dụng

Tiến hành lấy thông tin bộ nhớ các ứng dụng đang chạy nhờ thư viện Psutil

có trong Python, ta sẽ lấy thông tin bộ nhớ sắp xếp theo thứ tự giảm dần vàtrả về danh sách 30 ứng dụng ngốn bộ nhớ nhất

Hình 15 Chức năng lấy thông tin bộ nhớ cho từng ứng dụng

Trang 20

Chức năng vẽ biểu đồ bộ nhớ

Từ các thông số bộ nhớ ở trên, ta tiến hành vẽ biểu đồ nhờ thư viện

Matplotlib với hàng dọc là phần trăm số bộ nhớ tiêu tốn, hàng ngang là

thời gian thực của chương trình

Hình 16 Chức năng vẽ biểu đồ bộ nhớ

Chức năng dừng chạy chương trình

Từ danh sách các ứng dụng tiêu tốn bộ nhớ máy tính ở trên, ta sẽ tiến

hành dừng chạy chương trình bất kỳ

Hình 17 Chức năng dừng chạy chương trình

Trang 21

III TRIỂN KHAI VÀ ĐÁNH GIÁ

1 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

2 Triển khai

Màn hình khởi chạy chương trình

Hình 18 Màn hình khi khởi chạy chương trình

Màn hình chi tiết quản lý bộ nhớ máy tính

Trang 22

3 Đánh giá

- Chương trình đáp ứng được yêu cầu của đề tài

- Chương trình trả về kết quả chính xác của 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 được rất nhiều kiến thức, trong đó

những phần quan trọng nhất có thể kể ra dưới đây đó là:

1 Cách thức vận hành của bộ nhớ máy tính

2 Kỹ năng phân tích, thiết kế và xây dựng một ứng dụng

3 Rèn luyện kỹ năng lập trình với ngôn ngữ Python

4 Kỹ năng triển khai ứng dụng và vận hành ứng dụng

Hướng phát triển

Dự định sắp tới của em trong việc mở rộng dự án này đó 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 các chức năng nâng cao có thể xử lý các yêu cầu phức tạp

- Xây dựng ứng dụng trên di động

Ngày đăng: 23/01/2022, 09:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[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 Sách, tạp chí
Tiêu đề: Giáo trình giảng dạy mônLập trình mạ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 Sách, tạp chí
Tiêu đề: Bài Giảng Nguyên Lý Hệ Điều Hành
[3] Tài liệu về tkinter: https://docs.python.org/3/library/tkinter.html/ Link
[4] Tài liệu về Psutil: https://pypi.org/project/psutil/ Link
[5] Tài liệu về Matplotlib: https://matplotlib.org/ Link
[6] Tài liệu về Python Socket: https://realpython.com/python-socket/ Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w