MẠNG MÁY TÍNH
Nhu cầu phát triển máy tính
Ngày nay, với sự bùng nổ thông tin, nhu cầu xử lý thông tin ngày càng tăng cao Mạng máy tính đã trở nên quen thuộc trong nhiều lĩnh vực như khoa học, quân sự, quốc phòng, thương mại, dịch vụ và giáo dục Ở nhiều nơi, mạng đã trở thành một nhu cầu thiết yếu, mang lại cho chúng ta những khả năng mới to lớn thông qua việc kết nối các máy tính.
Sử dụng tài nguyên chung trong mạng cho phép tất cả các thành viên truy cập vào thiết bị, chương trình và dữ liệu mà không cần lo lắng về vị trí của những tài nguyên đó.
Tăng cường độ tin cậy cho hệ thống là điều quan trọng, cho phép dễ dàng bảo trì máy móc và thực hiện sao lưu dữ liệu Khi xảy ra sự cố, việc khôi phục dữ liệu diễn ra nhanh chóng, và nếu một trạm làm việc gặp trục trặc, người dùng có thể sử dụng các trạm khác để thay thế.
Nâng cao chất lượng và hiệu quả khai thác thông tin giúp người sử dụng có khả năng tổ chức lại công việc một cách linh hoạt hơn Khi thông tin được chia sẻ và sử dụng chung, nó mang lại những thay đổi tích cực về chất lượng công việc.
Đáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại
Cung cấp sự thống nhất giữa các dữ liệu
Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán
Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thế giới
1.3.1 Mạng cục bộ LAN (Local Area Network)
Mạng LAN là tập hợp các máy tính và thiết bị truyền thông được kết nối trong một khu vực hạn chế như tòa nhà, khuôn viên trường đại học hoặc khu giải trí.
Các mạng LAN thường có các đặc điểm sau đây:
Băng thông lớn có khả năng chạy các ứng dụng trực tuyến như xem phim, hội thảo qua mạng
Kích thước mạng bị giới hạn bởi các thiết bị
Chi phí các thiết bị mạng LAN tương đối rẻ
Hình 1.2 Mô hình mạng cục bộ LAN
1.3.2 Mạng diện rộng WAN (Wide Area Network)
Mạng WAN (Wide Area Network) là loại mạng bao phủ diện tích rộng lớn, có thể trải dài qua một quốc gia, một lục địa hoặc toàn cầu Thường thấy ở các công ty đa quốc gia, mạng WAN điển hình là mạng Internet Với quy mô lớn, mạng WAN thường kết hợp nhiều mạng LAN và MAN thông qua các phương tiện như vệ tinh, sóng viba, cáp quang và cáp điện thoại Những đặc điểm nổi bật của mạng WAN bao gồm khả năng kết nối các khu vực địa lý rộng và tốc độ truyền tải thông tin cao.
Băng thông thấp, dễ mất kết nối thường chỉ phù hợp với các ứng dụng online như e-mail, web, ftp…
Phạm vi hoạt động rộng lớn không giới hạn
Mạng toàn cầu, với sự kết nối của nhiều LAN và MAN, trở nên phức tạp và thường được quản lý bởi các tổ chức quốc tế.
Chi phí cho các thiết bị và các công nghệ mạng WAN rất đắt tiền
Hình 1.3 Mô hình mạng diện rộng (WAN)
Mạng Internet, một dạng đặc biệt của mạng WAN, cung cấp dịch vụ toàn cầu như Email, Web, Chat và FTP, phục vụ miễn phí cho người dùng trên toàn thế giới.
1.4 mô hình xử lý mạng
Cơ bản có 3 loại mô hình xử lý mạng bao gồm:
Mô hình xử lý mạng tập trung
Mô hình xử lý mạng phân phối
Mô hình xử lý mạng cộng tác
1.4.1 Mô hình xử lý mạng tập trung
Tất cả các tiến trình xử lý được thực hiện tại máy tính trung tâm, trong khi các máy trạm cuối (Terminals) chỉ đóng vai trò là thiết bị nhập xuất dữ liệu, cho phép người dùng xem thông tin trên màn hình và nhập liệu qua bàn phím mà không lưu trữ hay xử lý dữ liệu Mô hình này có thể được triển khai trên hệ thống phần cứng hoặc phần mềm cài đặt trên Server Ƣu điểm của mô hình này là bảo mật dữ liệu cao, dễ dàng sao lưu và diệt virus, đồng thời chi phí cho các thiết bị cũng thấp.
Khuyết điểm: khó đáp ứng được các yêu cầu của nhiều ứng dụng khác nhau, tốc độ truy xuất chậm
Hình 1.4 Mô hình xử lý mạng tập trung
1.4.2 Mô hình xử lý mạng phân phối
Các máy tính hiện đại có khả năng hoạt động độc lập, cho phép phân chia công việc và giao cho nhiều máy tính khác nhau, thay vì chỉ tập trung xử lý trên một máy trung tâm Dữ liệu được xử lý và lưu trữ tại các máy cục bộ, nhưng nhờ vào việc kết nối mạng, các máy tính này có thể trao đổi dữ liệu và dịch vụ với nhau Ưu điểm của hệ thống này là khả năng truy xuất nhanh chóng và tính linh hoạt trong việc sử dụng ứng dụng, không bị giới hạn.
Khuyết điểm: dữ liệu lưu trữ rời rạc khó đồng bộ, backup và rất dễ nhiễm virus
Hình 1.5 Mô hình xử lý mạng phân phối
1.4.3 Mô hình xử lý mạng cộng tác
Mô hình xử lý mạng cộng tác cho phép nhiều máy tính hợp tác thực hiện công việc bằng cách chia sẻ năng lực xử lý Một máy tính có thể tận dụng sức mạnh từ các máy khác trong mạng để chạy các chương trình Ưu điểm của mô hình này là tốc độ xử lý nhanh và khả năng thực hiện các ứng dụng với phép toán lớn một cách hiệu quả.
Khuyết điểm: các dữ liệu được lưu trữ trên các vị trí khác nhau nên rất khó đồng bộ và backup, khả năng nhiễm virus rất cao
Trong mô hình này, tất cả các máy tính đều có quyền ngang nhau, không có máy tính chuyên dụng nào đảm nhận việc cung cấp dịch vụ hay quản lý Mỗi máy tính tự bảo mật và quản lý tài nguyên của chính mình, đồng thời cũng tự chứng thực cho người dùng cục bộ.
Hình 1.6 Mô hình quản lý mạng Workgroup
Mô hình Domain khác với mô hình Workgroup ở chỗ quản lý và xác thực người dùng mạng được tập trung tại máy tính Primary Domain Controller Tài nguyên mạng cũng được quản lý một cách tập trung, cho phép cấp quyền hạn cho từng người dùng Trong hệ thống, có các máy tính chuyên dụng đảm nhận việc cung cấp dịch vụ và quản lý các máy trạm.
Hình 1.7 Mô hình quản lý mạng Workgroup
1.6.1 Mạng ngang hàng (Peer to peer)
Mạng ngang hàng (P2P) cho phép kết nối giữa các máy tính mà không cần máy chủ trung gian, với mỗi máy tính có thể hoạt động vừa như Client vừa như Server Trong mô hình này, người dùng tự quản lý và chia sẻ tài nguyên của máy tính của họ Tuy nhiên, mô hình này chỉ thích hợp cho các tổ chức nhỏ, thường dưới 10 người, và không yêu cầu cao về bảo mật.
Mạng ngang hàng thường sử dụng các hệ điều hành như Win95, Windows for Workgroup, WinNT Workstation, Win2000 Professional và OS/2 Ưu điểm của mô hình này là tính đơn giản, giúp dễ dàng trong việc cài đặt, tổ chức và quản trị, đồng thời chi phí thiết bị cũng thấp.
Giao thức mạng
1.8.1 Giao thức IP( Internet Protocol )
Giao thức IP có nhiệm vụ chính là kết nối các mạng con thành một liên kết mạng để truyền dữ liệu, đóng vai trò quan trọng như một giao thức tầng mạng trong mô hình OSI Đặc biệt, giao thức IP hoạt động theo kiểu không liên kết.
(connectionless) có nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu
Tổng quan về địa chỉ IP
- Là địa chỉ có cấu trúc, được chia làm hai hoặc ba phần là: Network_id & Host_id hoặc Network_id & Subnet_id & Host_id
Số 32 bit được chia thành bốn phần, mỗi phần có kích thước 8 bit, được gọi là octet hoặc byte.
- Có các cách trình bày sau:
Ký pháp thập phân có dấu chấm (dotted-decimal notation) Ví dụ: 172.16.30.56
Ký pháp nhị phân Ví dụ: 10101100 00010000 00011110 00111000
Ký pháp thập lục phân Ví dụ: AC 10 1E 38
Không gian địa chỉ IP gồm 232 địa chỉ được phân chia thành các lớp A, B, C, D và E để dễ quản lý Các lớp A, B và C được sử dụng để gán địa chỉ cho các host trên Internet, trong khi lớp D phục vụ cho các nhóm multicast và lớp E được dành cho mục đích nghiên cứu.
- Địa chỉ IP còn được gọi là địa chỉ logical, trong khi địa chỉ MAC còn gọi là địa chỉ vật lý (hay địa chỉ physical)
Địa chỉ host là địa chỉ IP dùng để xác định các giao diện của các host trong mạng Hai host trong cùng một mạng sẽ chia sẻ cùng một network_id nhưng có host_id khác nhau.
- Địa chỉ mạng (network address): là địa chỉ IP dùng để đặt cho các mạng
Phần host_id của địa chỉ chỉ chứa các bit 0 Địa chỉ này không thể dùng để đặt cho một Interface Ví dụ 172.29.0.0
Địa chỉ Broadcast là địa chỉ IP đại diện cho tất cả các host trong một mạng, với phần host ID chỉ chứa các bit 1 Địa chỉ này không thể được gán cho bất kỳ host nào Ví dụ về địa chỉ Broadcast là 172.29.255.255.
Bảng 1.1 Các phép toán làm việc trên bit
Ví dụ sau minh hoạ phép AND giữa địa chỉ 172.29.14.10 và mask 255.255.0.0
Mặt nạ mạng (Network Mask) là một chuỗi 32 bit giúp xác định địa chỉ mạng của một địa chỉ IP thông qua phép AND giữa địa chỉ IP và mặt nạ mạng, phục vụ cho việc định tuyến Nó cũng cho biết số bit trong phần host_id, được xây dựng bằng cách bật các bit tương ứng với phần network_id và tắt các bit tương ứng với phần host_id.
Bảng 1.2 Mặt nạ mặc định của các lớp không chia mạng con
Giới thiệu các lớp địa chỉ:
Dành một byte cho phần network_id và ba byte cho phần host_id
Địa chỉ lớp A được xác định khi bit đầu tiên của byte đầu tiên là 0, tức là byte này có dạng nhị phân 0XXXXXXX Do đó, các địa chỉ IP có byte đầu tiên nằm trong khoảng từ 0 (00000000) đến 127 (01111111) sẽ thuộc lớp A, ví dụ như địa chỉ IP 50.14.32.8.
Lớp A trong mạng máy tính được xác định bởi network_id, trong đó bit đầu tiên được sử dụng để nhận dạng lớp A, và 7 bit còn lại dùng để đánh thứ tự các mạng Điều này cho phép tạo ra 128 mạng lớp A khác nhau Tuy nhiên, khi loại trừ hai trường hợp đặc biệt là 0 và 127, số lượng địa chỉ mạng lớp A còn lại chỉ là 126, từ 1.0.0.0 đến 126.0.0.0.
Phần host_id trong mạng lớp A chiếm 24 bits, cho phép tối đa 16,777,216 địa chỉ host khác nhau Tuy nhiên, sau khi loại trừ địa chỉ mạng (toàn bộ bit 0) và địa chỉ Broadcast (toàn bộ bit 1), còn lại 16,777,214 địa chỉ host hợp lệ Ví dụ, trong mạng 10.0.0.0, các địa chỉ host hợp lệ nằm trong khoảng từ 10.0.0.1 đến 10.255.255.254.
Hình 1.14 Số host trong một mạng lớp B
Dành 2 bytes cho mỗi phần network_id và host_id
Địa chỉ lớp B được nhận dạng qua byte đầu tiên bắt đầu bằng hai bit 10, với định dạng nhị phân là 10XXXXXX Các địa chỉ trong khoảng từ 128 (10000000) đến 191 (10111111) thuộc về lớp B, ví dụ như địa chỉ 172.29.10.1.
Phần network_id chiếm 16 bits bỏ đi 2 bits làm ID cho lớp, còn lại 14 bits cho phép ta đánh thứ tự 16,384 (214) mạng khác nhau (128.0.0.0 d8ến 191.255.0.0)
Phần host_id trong mạng lớp B có độ dài 16 bits, cho phép 65536 giá trị khác nhau Sau khi loại trừ 2 trường hợp đặc biệt, còn lại 65534 địa chỉ host hợp lệ trong một mạng lớp B Ví dụ, trong mạng 172.29.0.0, các địa chỉ host hợp lệ nằm trong khoảng từ 172.29.0.1 đến 172.29.255.254.
Hình 1.16 Số host trong một mạng lớp B
Dành 3 bytes cho phần network_id và một byte cho phần host_id
Byte đầu tiên luôn bắt đầu bằng 3 bits 110 và dạng nhị phân của octet này là 110XXXXX Như vậy những địa chỉ nằm trong khoảng từ 192 (11000000) đến 223
(11011111) sẽ thuộc về lớp C Ví dụ: 203.162.41.235
Phần network_id dùng 3 byte hay 24 bit, trừ đi 3 bit làm ID của lớp, còn lại 21 bit hay 2,097,152 (2 21) địa chỉ mạng ( từ 192.0.0.0 đến 223.255.255.0)
Trong mạng lớp C, phần host_id dài 1 byte cho phép 256 giá trị khác nhau, nhưng chỉ còn 254 địa chỉ host hợp lệ sau khi loại trừ hai trường hợp đặc biệt Ví dụ, với mạng 203.162.41.0, các địa chỉ host hợp lệ nằm trong khoảng từ 203.162.41.1 đến 203.162.41.254.
Hình 1.18 Số host trong một mạng lớp B
Các địa chỉ có byte đầu tiên từ 224 đến 256 thuộc lớp D hoặc E, nhưng các lớp này không được sử dụng để đánh địa chỉ cho các host, vì vậy sẽ không được trình bày chi tiết ở đây.
1.8.1.2 Các giao thức trong mạng IP Để mạng với giao thức IP hoạt động được tốt người ta cần một số giao thức bổ sung, các giao thức này đều không phải là bộ phận của giao thức IP và giao thức
IP sẽ dùng đến chúng khi cần
Giao thức ARP (Address Resolution Protocol) đóng vai trò quan trọng trong việc ánh xạ giữa địa chỉ IP và địa chỉ vật lý (địa chỉ MAC) của các trạm trong mạng cục bộ như Ethernet hay Token Ring Trong mô hình OSI, địa chỉ IP được sử dụng để xác định các host và mạng ở tầng mạng, nhưng để hai trạm có thể giao tiếp, chúng cần biết địa chỉ vật lý của nhau ARP được thiết kế để tìm ra địa chỉ vật lý từ địa chỉ IP khi cần thiết, giúp đảm bảo việc truyền tải dữ liệu trong mạng cục bộ diễn ra suôn sẻ.
Giao thức RARP (Reverse Address Resolution Protocol)
Là giao thức ngược với giao thức ARP Giao thức RARP được dùng để tìm địa chỉ IP từ địa chỉ vật lý
Giao thức ICMP (Internet Control Message Protocol)
Các giao thức truy cập đường truyền trên mạng LAN
Để truyền dữ liệu qua mạng, cần có các quy trình hướng dẫn máy tính về cách và thời điểm truy cập vào đường dây cáp để gửi gói dữ liệu Chẳng hạn, trong các mạng bus và ring, chỉ có một đường truyền duy nhất kết nối các trạm, do đó cần quy tắc chung cho tất cả các trạm để đảm bảo việc truy cập và sử dụng đường truyền diễn ra hợp lý.
Có hai loại giao thức truy nhập đường truyền vật lý: giao thức truy nhập ngẫu nhiên và giao thức truy nhập có điều khiển.
1.9.1 Giao thức chuyển mạch (yêu cầu và chấp nhận)
Giao thức chuyển mạch cho phép một máy tính trong mạng phát tín hiệu để thâm nhập vào đường cáp Nếu đường cáp không bận, mạch điều khiển sẽ cho phép kết nối, nhưng nếu đường cáp đang được sử dụng bởi các trạm khác, việc thâm nhập sẽ bị từ chối.
1.9.2 Giao thức đường dây đa truy cập với cảm nhận va chạm
(Carrier Sense Multiple Access with Collision Detection hay CSMA/CD )
Giao thức đường dây đa truy cập cho phép nhiều trạm thâm nhập vào mạng cùng lúc, thường được sử dụng trong sơ đồ mạng dạng đường thẳng Các trạm có thể truy cập vào đường dây chung một cách ngẫu nhiên, dẫn đến khả năng xảy ra xung đột khi hai hoặc nhiều trạm đồng thời truyền dữ liệu Để tránh xung đột, mỗi trạm cần kiểm tra xem đường truyền có rảnh hay không trước khi gửi gói dữ liệu Nếu đường truyền đang bận, trạm phải chờ đợi cho đến khi đường truyền trở nên rảnh Khi có hai trạm cùng sử dụng đường truyền, giao thức sẽ phát hiện và yêu cầu các trạm ngưng thâm nhập, chờ đợi với các khoảng thời gian ngẫu nhiên khác nhau.
Khi đường cáp đang bận trạm phải chờ đợi theo một trong ba phương thức sau:
Trạm tạm chờ đợi một thời gian ngẫu nhiên nào đó rồi lại bắt đầu kiểm tra đường truyền
Trạm tiếp tục kiểm tra đường truyền đến khi đường truyền rảnh thì truyền dữ liệu đi
Trạm tiếp tục kiểm tra đường truyềnđến khi đường truyền rảnh thì truyền dữ liệu đi với xác suất p xác định trước (0 < p < 1)
Phương thức 1 hiệu quả trong việc tránh xung đột, vì khi đường truyền bận, hai trạm sẽ cùng rút lui và chờ đợi trong các khoảng thời gian ngẫu nhiên khác nhau Trong khi đó, phương thức 2 cố gắng giảm thời gian trống của đường truyền bằng cách cho phép trạm truyền ngay sau khi một cuộc truyền kết thúc, tuy nhiên, điều này làm tăng khả năng xung đột nếu có thêm trạm khác đang chờ Cuối cùng, phương thức 3, với giá trị p được lựa chọn hợp lý, có thể tối thiểu hóa khả năng xung đột và thời gian trống của đường truyền.
Khi lưu lượng gói dữ liệu trên mạng tăng cao, hiện tượng đụng độ có thể xảy ra, dẫn đến tắc nghẽn đường truyền và làm chậm tốc độ truyền tin của hệ thống.
1.9.3 Giao thức dùng thẻ bài vòng (Token ring) Đây là giao thức truy nhập có điều khiển chủ yếu dùng kỹ thuật chuyển thẻ bài (token) để cấp phát quyền truy nhập đường truyền tức là quyền được truyền dữ liệu đi Thẻ bài ở đay là một đơn vị dữ liệu đặc biệt, có kích thưóc và nội dung (gồm các thông tin điều khiển) được quy định riêng cho mỗi giao thức Theo giao thức dùng thẻ bài vòng trong đường cáp liên tục có một thẻ bài chạy quanh trong mạng Thẻ bài là một đơn vị dữ liệu đặc biệt trong đó có một bit biểu diễn trạng thái sử dụng của nó (bận hoặc rỗi) Một trạm muốn truyền dữ liệu thì phải đợi đến khi nhận được một thẻ bài rảnh Khi đó trạm sẽ đổi bit trạng thái của thẻ bài thành bận, nép gói dữ liệu có kèm theo địa chỉ nơi nhận vào thẻ bài và truyền đi theo chiều của vòng
Vì thẻ bài chỉ chạy vòng quanh trong mạng kín và chỉ có một thẻ duy nhất, nên việc xung đột dữ liệu không thể xảy ra, điều này giúp duy trì hiệu suất truyền dữ liệu của mạng ổn định.
Trong các giao thức, cần giải quyết hai vấn đề quan trọng có thể gây ra sự cố cho hệ thống Thứ nhất, việc mất thẻ bài sẽ dẫn đến tình trạng không còn thẻ bài lưu chuyển trên vòng Thứ hai, một thẻ bài bận lưu chuyển không dừng lại trên vòng cũng cần được khắc phục.
1.9.4 Giao thức dùng thẻ bài cho dạng đường thẳng (Token bus) Đây là giao thức truy nhập có điều khiển trong để cấp phát quyền truy nhập đường truyền cho các trạm đang có nhu cầu truyền dữ liệu, một thẻ bài được lưu chuyển trên một vòng logic thiết lập bởi các trạm đó Khi một trạm có thẻ bài thì nó có quyền sử dụng đường truyền trong một thời gian xác định trước Khi đã hết dữ liệu hoặc hết thời đoạn cho phép, trạm chuyển thẻ bài đến trạm tiếp theo trong vòng logic
Trong mạng, cần thiết lập một vòng logic (hay vòng ảo) bao gồm các trạm hoạt động, được xác định theo một chuỗi thứ tự, trong đó trạm cuối cùng sẽ nối tiếp trạm đầu tiên Mỗi trạm biết địa chỉ của các trạm kề trước và sau, và thứ tự của các trạm trên vòng logic có thể khác với thứ tự vật lý Đồng thời, giao thức phải liên tục theo dõi sự thay đổi trạng thái thực tế của mạng.
PHƯƠNG PHÁP LẬP TRÌNH SOCKET
Socket
2.2 Phương thức khởi tạo của lớp TCPClient 37
2.3 Một số thuộc tính lớp TCPClient 37
2.4 Một số phương thức khác của lớp TcpClient 38
2.5 Phương thức khởi tạo của lớp TCPListener 38
2.6 Các phương thức khác của lớp TcpListener 39
2.7 Phương thức khởi tạo của lớp UDPClient 39
2.8 Phương thức khác của lớp UdpClient 40
2.9 Một số phương pháp thường dùng trong Thread 41
2.10 Một số thuộc tính thường dùng trong Thread 41
Trong những năm gần đây, mạng máy tính đã trở nên phổ biến, mang lại nhiều lợi ích cho công việc, học tập, nghiên cứu và giải trí Việc kết nối các máy tính và mạng giúp chúng ta dễ dàng chia sẻ tài nguyên như file server, máy in và máy fax Hơn nữa, môi trường mạng còn cung cấp thông tin nhanh chóng và tiện lợi thông qua các phương thức truyền thông như email và website.
Sự phát triển của mạng máy tính đã dẫn đến sự gia tăng đáng kể số lượng máy tính trong các tổ chức, doanh nghiệp và trường học, với cấu hình cao và công nghệ hiện đại Việc trao đổi thông tin giữa các máy tính trong mạng trở nên dễ dàng hơn, nhưng đồng thời cũng đặt ra nhiều thách thức trong việc quản lý, đặc biệt là quản lý cấu hình máy tính trong các phòng ban và trường học.
Em đã chọn đề tài “Xây dựng hệ thống quản lý cấu hình máy tính trong mạng LAN” cho đồ án tốt nghiệp, với mục tiêu hệ thống lại kiến thức về mạng cơ bản và nghiên cứu lập trình socket cùng mô hình Client-Server để các máy tính trong mạng LAN có thể trao đổi dữ liệu Đồ án cũng nhằm xây dựng hệ thống quản lý cấu hình máy tính, giúp người quản lý nắm bắt thông tin về cấu hình máy và những thay đổi liên quan, cụ thể là quản lý cấu hình máy tính trong phòng máy của trường ĐHDL Hải Phòng Nội dung đồ án được trình bày theo 3 chương.
Chương 2: Phương pháp lập trình socket
Chương 3: Phân tích và thiết kế hệ thống
Nghiên cứu lý thuyết và phát triển phần mềm là quá trình tốn nhiều thời gian Do thời gian hạn chế, bài luận văn của em không thể tránh khỏi những thiếu sót Em rất mong nhận được sự hướng dẫn từ thầy cô và các bạn.
Em xin chân thành cảm ơn!
Với sự tiến bộ nhanh chóng của khoa học và công nghệ, mạng máy tính hiện nay ngày càng đa dạng về quy mô, hệ điều hành và ứng dụng, dẫn đến sự phức tạp trong nghiên cứu Tuy nhiên, các mạng máy tính vẫn có những điểm chung, giúp chúng ta đánh giá và phân loại chúng một cách hiệu quả.
Mạng máy tính là một hệ thống gồm nhiều máy tính được kết nối với nhau qua các đường truyền, cho phép chúng trao đổi thông tin một cách hiệu quả.
Hình 1.1 Mô hình liên kết các máy tính trong mạng LAN
1.2 Nhu cầu phát triển máy tính
Ngày nay, với sự bùng nổ thông tin, nhu cầu xử lý dữ liệu ngày càng gia tăng Mạng máy tính đã trở nên quen thuộc trong nhiều lĩnh vực như khoa học, quân sự, quốc phòng, thương mại, dịch vụ và giáo dục Hiện tại, mạng đã trở thành một nhu cầu thiết yếu, mang lại cho chúng ta những khả năng mới mẻ và to lớn thông qua việc kết nối các máy tính.
Sử dụng tài nguyên chung trong mạng cho phép tất cả các thành viên truy cập vào thiết bị, chương trình và dữ liệu mà không cần biết vị trí cụ thể của chúng Điều này tạo ra sự tiện lợi và hiệu quả trong việc chia sẻ tài nguyên giữa các người dùng.
Tăng cường độ tin cậy cho hệ thống bằng cách dễ dàng bảo trì máy móc và thực hiện sao lưu dữ liệu Khi xảy ra sự cố, dữ liệu có thể được khôi phục nhanh chóng Ngoài ra, nếu một trạm làm việc gặp trục trặc, người dùng có thể sử dụng các trạm khác để thay thế, đảm bảo hoạt động liên tục.
Nâng cao chất lượng và hiệu quả trong việc khai thác thông tin là rất quan trọng Khi thông tin được chia sẻ và sử dụng chung, người dùng có khả năng tổ chức lại công việc một cách hiệu quả hơn, dẫn đến những thay đổi tích cực về chất lượng công việc.
Đáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại
Cung cấp sự thống nhất giữa các dữ liệu
Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán
Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thế giới
1.3.1 Mạng cục bộ LAN (Local Area Network)
Mạng LAN là tập hợp các máy tính và thiết bị truyền thông được kết nối trong một khu vực nhỏ, chẳng hạn như tòa nhà, khuôn viên trường đại học hoặc khu giải trí.
Các mạng LAN thường có các đặc điểm sau đây:
Băng thông lớn có khả năng chạy các ứng dụng trực tuyến như xem phim, hội thảo qua mạng
Kích thước mạng bị giới hạn bởi các thiết bị
Chi phí các thiết bị mạng LAN tương đối rẻ
Hình 1.2 Mô hình mạng cục bộ LAN
1.3.2 Mạng diện rộng WAN (Wide Area Network)
Mạng WAN (Wide Area Network) bao phủ một vùng địa lý rộng lớn, có thể là một quốc gia, lục địa hoặc toàn cầu, thường được sử dụng bởi các công ty đa quốc gia hoặc mạng Internet Với phạm vi rộng lớn, mạng WAN thường là sự kết hợp của nhiều mạng LAN (Local Area Network) và MAN (Metropolitan Area Network), được kết nối với nhau qua các phương tiện như vệ tinh, sóng vi ba, cáp quang và cáp điện thoại Những đặc điểm nổi bật của mạng WAN bao gồm khả năng kết nối các mạng khác nhau trên diện rộng và cung cấp dịch vụ truyền thông hiệu quả.
Băng thông thấp, dễ mất kết nối thường chỉ phù hợp với các ứng dụng online như e-mail, web, ftp…
Phạm vi hoạt động rộng lớn không giới hạn
Mạng toàn cầu rất phức tạp do sự kết nối của nhiều mạng LAN và MAN, vì vậy thường có các tổ chức quốc tế đảm nhiệm việc quy định và quản lý.
Chi phí cho các thiết bị và các công nghệ mạng WAN rất đắt tiền
Hình 1.3 Mô hình mạng diện rộng (WAN)
Mạng Internet, một dạng đặc biệt của mạng WAN, cung cấp các dịch vụ toàn cầu như Mail, Web, Chat và FTP, phục vụ miễn phí cho người dùng.
1.4 mô hình xử lý mạng
Cơ bản có 3 loại mô hình xử lý mạng bao gồm:
Mô hình xử lý mạng tập trung
Mô hình xử lý mạng phân phối
Mô hình xử lý mạng cộng tác
1.4.1 Mô hình xử lý mạng tập trung
Tất cả các tiến trình xử lý diễn ra tại máy tính trung tâm, trong khi các máy trạm cuối (Terminals) chỉ hoạt động như thiết bị nhập xuất dữ liệu, cho phép người dùng nhập liệu và xem thông tin trên màn hình Các máy trạm này không lưu trữ hay xử lý dữ liệu Mô hình xử lý mạng này có thể triển khai trên hệ thống phần cứng hoặc phần mềm trên Server Ưu điểm của mô hình này bao gồm bảo mật dữ liệu an toàn, dễ dàng sao lưu và diệt virus, cùng với chi phí thiết bị thấp.
Khuyết điểm: khó đáp ứng được các yêu cầu của nhiều ứng dụng khác nhau, tốc độ truy xuất chậm
Hình 1.4 Mô hình xử lý mạng tập trung
1.4.2 Mô hình xử lý mạng phân phối
Lập trình Socket
2.2.1 Giới thiệu về NameSpace System.Net và System.Net.Sockets
- Cung cấp một giao diện lập trình đơn giản cho rất nhiều các giao thức mạng
- Có rất nhiều lớp để lập trình: IPAdress, IPEndPoint, DNS, …
Một số Field cần chú ý:
- Any: Cung cấp một địa chỉ IP để chỉ ra rằng Server phải lắng nghe trên tất cả các Card mạng
- Broadcast: Cung cấp một địa chỉ IP quảng bá
- Loopback: Trả về một địa chỉ IP lặp
- AddressFamily: Trả về họ địa chỉ của IP hiện hành
Một số phương thức cần chú ý:
- IsLoopback: Cho biết địa chỉ có phải địa chỉ lặp không
- Parse: Chuyển IP dạng xâu về IP chuẩn
- ToString: Trả địa chỉ IP về dạng xâu
- TryParse: Kiểm tra IP ở dạng xâu có hợp lệ không?
Một số phương thức cần chú ý:
- Create: Tạo một EndPoint từ một địa chỉ Socket
- ToString : Trả về địa chỉ IP và số hiệu cổng theo khuôn dạng địa chỉ:cổng
Một số thành phần của lớp :
- HostName: Cho biết tên của máy được phân giải
- GetHostAddress: Trả về tất cả IP của một trạm
- GetHostEntry: Giải đáp tên hoặc địa chỉ truyền vào và trả về đối tượng IPHostEntry
- GetHostName: Lấy về tên của máy tính cục bộ
Một số lớp hay dùng: TcpClient, UdpClient, TcpListener, Socket, NetworkStream, … Để tạo ra Socket
Bảng 2.1 Socket (AddressFamily af, SocketType st, ProtocolType pt)
Stream Tcp Connection-oriented communication
Raw Icmp Internet Control Message
Raw Raw Plain IP packet communication
Ví dụ : Viết chương trình cho phía máy chủ
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket newsock
SocketType.Stream, ProtocolType.Tcp); newsock.Bind(ipep); newsock.Listen(10);
//Gửi nhận dữ liệu theo giao thức đã thiết kế
2.2.2 Sử dụng các lớp hỗ trợ đƣợc xây dựng từ lớp Socket
Lớp UDPClient được sử dụng để lập trình với giao thức UDP, cho phép gửi dữ liệu mà không cần thiết lập kết nối trước, nhưng độ tin cậy không cao Để tăng cường độ tin cậy trong các ứng dụng mạng, giao thức có kết nối TCP (Transport Control Protocol) thường được sử dụng, như trong các ứng dụng Telnet, HTTP, SMTP, và POP3 Để lập trình theo giao thức TCP, MS.NET cung cấp hai lớp là TCPClient và TCPListener.
Các thành phần của lớp TcpClient
Bảng 2.2 Phương thức khởi tạo của lớp TcpClient
TcpClient () Tạo một đối tượng TcpClient Chưa đặt thông số gì
Tạo một TcpClient và gán cho nó một EndPoint cục bộ bằng cách chỉ định địa chỉ máy cục bộ và số hiệu cổng, điều này sẽ giúp bạn thiết lập kết nối để trao đổi thông tin sau này.
TcpClient (RemoteHost: String, Int32) Tạo một đối tượng TcpClient và kết nối đến một máy có địa chỉ và số hiệu cổng được truyền
Bảng 2.3 Một số thuộc tính lớp TcpClient
Available Cho biết số byte đã nhận về từ mạng và có sẵn để đọc
Client Trả về Socket ứng với TCPClient hiện hành
Connected Trạng thái cho biết đã kết nối được đến
Bảng 2.4 Một số phương thức khác lớp TcpClient
Close Giải phóng đối tượng TcpClient nhưng không đóng kết nối
Kết nối đến một máy TCP khác có Tên và số hiệu cổng
GetStream Trả về NetworkStream để từ đó giúp ta gửi hay nhận dữ liệu(Thường làm tham số khi tạo StreamReader và
Khi sử dụng StreamReader và StreamWriter, người dùng có thể gửi và nhận dữ liệu một cách dễ dàng thông qua các phương thức Readln và WriteLine của các lớp này.
TCPListerner là một lớp giúp lập trình viên xây dựng các ứng dụng Server như SMTP, FTP, DNS, POP3 và các server tùy chỉnh Điểm khác biệt giữa ứng dụng Server và ứng dụng Client là server luôn lắng nghe và chấp nhận các kết nối từ Client.
Các thành phần của lớp TcpListener:
Bảng 2.5 Phương thức khởi tạo của lớp TcpListener
TcpListener (Port: Int32) Tạo một TcpListener và lắng nghe tại cổng chỉ định
TcpListener Tạo một TcpListener với giá trị
Tạo một TcpListener và lắng nghe các kết nối đến tại địa chỉ IP và cổng chỉ định
Bảng 2.6 Các phương thức khác của lớp TcpListener
AcceptSocket Chấp nhận một yêu cầu kết nối đang chờ
AcceptTcpClient Chấp nhận một yêu cầu kết nối đang chờ (Ứng dụng sẽ dừng tại lệnh này cho đến khi nào có một kết nối đến)
Pending Cho biết liệu có kết nối nào đang chờ đợi không ?
Start Bắt đầu lắng nghe các yêu cầu kết nối
Giao thức UDP (User Datagram Protocol) là một giao thức phi kết nối, cho phép gửi dữ liệu mà không cần biết bên nhận đã sẵn sàng hay chưa Điều này có nghĩa là không cần thiết lập kết nối giữa hai bên trong quá trình trao đổi thông tin Mặc dù không đáng tin cậy như giao thức TCP, UDP lại có tốc độ nhanh và dễ cài đặt Thêm vào đó, giao thức UDP còn hỗ trợ gửi các gói tin quảng bá (broadcast) đến nhiều máy cùng lúc.
Trong NET, lớp UDPClient (nằm trong System.Net.Socket) đóng gói các chức năng của giao thức UDP
Bảng 2.7 Phương thức khởi tạo của lớp UdpClient
UdpClient () Tạo một đối tượng (thể hiện ) mới của lớp
UdpClient (AddressFamily) Tạo một đối tượng (thể hiện ) mới của lớp
UdpClient.Thuộc một dòng địa chỉ (AddressFamily) được chỉ định
UdbClient (Int32) Tạo một UdpClient và gắn (bind) một cổng cho nó
UdpClient (IPEndPoint) Tạo một UdpClient và gắn (bind) một
IPEndPoint(gán địa chỉ IP và cổng)cho nó
UdpClient (Int32, AddressFamily) Tạo một UdpClient và gán số hiệu cổng,
AddressFamily UdpClient (String, Int32) Tạo một UdpClient và thiết lập với một trạm từ xa mặc định
Bảng 2.8 Các phương thức khác của lớp UdpClient
BeginReceive Nhận dữ liệu không đồng bộ từ máy ở xa.
BeginSend Gửi không đồng bộ tới máy ở xa
Connect Thiết lập một Default remote host
EndReceive Kết thúc nhận dữ liệu không đồng bộ ở trên.
Nhận dữ liệu (đồng bộ) từ máy ở xa yêu cầu rằng các lệnh ngay sau lệnh Receive chỉ được thực thi khi Receive đã nhận đủ dữ liệu Nếu Receive chưa nhận được bất kỳ dữ liệu nào, quá trình sẽ vẫn chờ (blocking) cho đến khi có dữ liệu được gửi về.
Send Gửi dữ liệu đồng bộ cho máy ở xa.
2.2.3 Sử dụng Thread trong các ứng dụng mạng
- Đa nhiệm (Multitasking): Là khả năng hệ điêu hành làm nhiều công việc tại một thời điểm
Khi một ứng dụng được khởi chạy, hệ điều hành sẽ cấp phát bộ nhớ và tài nguyên riêng biệt cho ứng dụng đó, tạo thành một tiến trình Các tài nguyên và bộ nhớ của tiến trình chỉ có thể được truy cập bởi chính tiến trình đó.
Trong hệ thống, một tiến trình có thể chứa nhiều chuỗi thực hiện độc lập, cho phép chúng chạy đồng thời, được gọi là tuyến (Thread) Trong mỗi ứng dụng, tuyến khởi tạo đầu tiên được gọi là Thread sơ cấp hay Thread chính.
Sử dụng Thread trong chương trình Net Để sử dụng Thread trong Net ta sử dụng NameSpace System.Threading
Bảng 2.9 Một số phương thức thường dùng trong Thread
Hàm Join() yêu cầu chương trình chờ cho đến khi thread kết thúc (Block) trước khi thực hiện các câu lệnh tiếp theo Trong khi đó, hàm Resume() cho phép tiếp tục chạy một thread đã bị tạm ngưng (suspended).
Sleep() Static method : Tạm dừng thread trong một khoảng thời gian
Start() Bắt đầu chạy (khởi động) một thread Sau khi gọi phương thức này, trạng thái của thread chuyển từ trạng thái hiện hành sang Running
Bảng 2.10 Một số thuộc tính thường dùng trong Thread Public Property Mô tả
CurrentThread This static property: Trả về thread hiện hành đang chạy
IsAlive Trả về giá trị cho biết trạng thái thực thi của thread hiện hành
IsBackground Sets or gets giá trị cho biết là thread là background hay foreground thread
IsThreadPoolThread Gets a value indicating whether a thread is part of a thread pool
Priority Sets or gets giá trị để chỉ định độ ưu tiên (dành nhiều hay ít CPU cho thread) Cao nhất là 4, thấp nhất là 0
ThreadState Lấy về trạng thái của Thread (đang dừng hay đang chạy)…
Thread newThread=newThread(new ThreadStart(newMethod));
Sử dụng Thread trong các chương trình Server
- Đa tuyến hay được ứng dụng trong các chương trình Server, các chương trình đòi hỏi tại một thời điểm chấp nhận nhiều kết nối đến từ các Client
- Để các chương trình Server có thể xử lý nhiều Client tại một thời điểm ta có mô hình ứng dụng đa tuyến như sau:
Hình 2.5 Mô hình ứng dụng đa tuyến
Sử dụng Thread để gửi/nhận dữ liệu
Hình 2.5 Mô hình sử dụng Thread để gửi nhận dữ liệu.