1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn lập trình mạng mô phỏng quá trình làm việc của 2 tcp ip

20 341 3

Đ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 20
Dung lượng 817 KB

Nội dung

Thực hiện sự phân công của Thầy giáo, em đã hoàn thành xây dựng tiểu luận “Mô phỏng quá trình làm việc của 2 server ngang hàng trên mạng TCP/IP” Được sự hướng dẫn của Thầy giáo Lê Văn Sơ

Trang 1

BAN ĐÀO TẠO SAU ĐẠI HỌC

LẬP TRÌNH MẠNG

Đ

Ề TÀI : Mô phỏng quá trình làm việc của 2 server ngang hàng trên mạng TCP/IP

Giảng viên hướng dẫn : PGS.TS Lê Văn Sơn

Sinh viên thực hiện : Nguyễn Hải Minh

Lớp : Khoa học máy tính K24

Trang 3

LỜI NÓI ĐẦU

Ngày nay với sự phát triển mạnh mẽ của internet, các ứng dụng client-server đang ngày càng được sử dụng phổ biến Nhưng khi quy mô và mức độ của các ứng dụng tăng lên và yêu cầu về chất lượng, tốc độ xử lý và độ phức tạp cũng tăng theo thì trên thực tế, một xu hướng kỹ thuật mới ra đời – xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin Song để khai thác có hiệu quả toàn hệ, thì cần phải tính đến việc sử dụng một cách tối ưu hóa các tài nguyên với chiến lược khai thác hiệu quả

Để xây dựng và ứng dụng hệ tin học phân tán thì việc nghiên cứu xây dựng các phần mềm ứng dụng cho các hệ tin học phân tán là công việc hết sức quan trọng

Sau khi được học hai môn “Hệ tin học phân tán” và môn “Lập trình mạng

máy tính” dưới sự giảng dạy nhiệt tình của Thầy PGS.TS Lê Văn Sơn, em đã tiếp thu

được các kiến thức của hai môn học này Thực hiện sự phân công của Thầy giáo, em

đã hoàn thành xây dựng tiểu luận “Mô phỏng quá trình làm việc của 2 server ngang

hàng trên mạng TCP/IP”

Được sự hướng dẫn của Thầy giáo Lê Văn Sơn, em đã hoàn thành được những nhiệm vụ cơ bản đề ra Mặc dù đã cố gắng hết sức nhưng chắc chắn vẫn còn nhiều khiếm khuyết, em rất mong nhận được góp ý chân thành của Thầy giáo và các bạn

Em xin chân thành cảm ơn

Đà Nẵng ngày 15 tháng 5 năm 2012

SVTH : Nguyễn Hải Minh

Trang 4

MỤC LỤC

I Nguyên lý hoạt động của giao thức TCP/IP 1

II Yêu cầu của bài toán 5

III Mô tả hệ thống 6

IV Lựa chọn phần mềm để xây dựng chương trình 6

IV.1 Giới thiệu Winsock 6

IV.2 Lựa chọn giao thức 7

IV.3 Giới thiệu những lệnh cơ bản của điều khiển Winsock 7

V Thiết kế chương trình 9

V.1 Sơ đồ kết nối hệ thống 9

VI.2 Xây dựng cơ sở dữ liệu 9

VI Thiết kế giao diện chương trình 11

VI.1 Chương trình của Server1 11

VI.2 Chương trình của Server2 11

VII Mô tả hoạt động của chương trình của các Server 12

VIII Hướng dẫn cài đặt chương trình 12

VIII.1 Cài trên một máy tính 12

VIII.2 Cài trên hai máy tính 13

IX Ví dụ Database 13

TÀI LIỆU THAM KHẢO 16

Trang 5

I Nguyên lý hoạt động của giao thức TCP/IP

Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngành truyền thông Trên thế giới, ban đầu chỉ có vài mạng máy tính được đưa vào sử dụng ở các viện nghiên cứu và phục vụ cho quốc phòng Cùng với thời gian, khoa học phát triển, giá máy giảm, mạng máy tính đã có mặt ở khắp nơi, từ trường học, nhà máy đến các học viện Đặc biệt sự bùng nổ của mạng thông tin toàn cầu Internet đã đưa khả năng sử dụng mạng đến từng người dân Hàng ngày bạn dạo chơi trên Internet, lướt trên các trang Web, có bao giờ bạn tự hỏi làm thế nào mà con người có được khả năng truy cập thông tin mạnh mẽ và tiện lợi đến như vậy?

Mô hình tổng quát của mạng Internet

Như trong Hình 1, kết cấu vật lý của mạng Internet gồm có mạng chính chứa các server cung cấp dịch vụ cho mạng, mạng nhánh bao gồm các trạm làm việc sử dụng dịch vụ do Internet cung cấp "Đám mây Internet" hàm chứa vô vàn mạng chính, mạng nhánh và bao phủ toàn thế giới Để một hệ thống phức tạp như vậy hoạt động trơn tru

và hiệu quả thì điều kiện tiên quyết là mọi máy tính trong mạng, dù khác nhau về kiến trúc, đều phải giao tiếp với mạng theo cùng một quy luật Đó là giao thức TCP/IP

Trang 6

Quá trình truyền dữ liệu qua mạng Internet

Nếu đã từng lập trình, bạn hẳn biết rằng một chương trình hoàn chỉnh được tạo nên

từ nhiều module với các chức năng và nhiệm vụ khác nhau nhưng lại liên kết chặt chẽ với nhau Quá trình truyền dữ liệu cũng như vậy Để có thể truyền qua mạng Internet,

dữ liệu phải được xử lý qua nhiều tầng Một mạng intranet theo chuẩn OSI thường có bảy tầng nhưng Internet chỉ có bốn tầng xử lý dữ liệu là:

* Tầng application

* Tầng transport còn gọi là tầng TCP (Transmission Control Protocol)

* Tầng network còn gọi là tầng IP (Internet Protocol)

* Tầng Datalink/Physical

Giả sử bạn đang ở máy A và muốn gửi một thông điệp tới máy B Bạn dùng một trình soạn thảo văn bản để soạn thư, sau đó nhấn nút Send Tính từ thời điểm đó dữ liệu được xử lý lần lượt như trong hình 2

Đầu tiên, dữ liệu được xử lý bởi tầng application Tầng này có nhiệm vụ tổ chức dữ liệu theo khuôn dạng và trật tự nhất định để tầng application ở máy B có thể hiểu

Trang 7

được Điều này giống như khi bạn viết một chương trình thì các câu lệnh phải tuân theo thứ tự và cú pháp nhất định thì chương trình mới chạy được Tầng application gửi

dữ liệu xuống tầng dưới theo dòng byte nối byte Cùng với dữ liệu, tầng application cũng gửi xuống các thông tin điều khiển khác giúp xác định địa chỉ đến, đi của dữ liệu Khi xuống tới tầng TCP, dòng dữ liệu sẽ được đóng thành các gói có kích thước không nhất thiết bằng nhau nhưng phải nhỏ hơn 64 KB Cấu trúc của gói dữ liệu TCP gồm một phần header chứa thông tin điều khiển và sau đó là dữ liệu Sau khi đóng gói xong ở tầng TCP, dữ liệu được chuyển xuống cho tầng IP

Gói dữ liệu xuống tới tầng IP sẽ tiếp tục bị đóng gói lại thành các gói dữ liệu IP nhỏ hơn sao cho có kích thước phù hợp với mạng chuyển mạch gói mà nó dùng để truyền

dữ liệu Trong khi đóng gói, IP cũng chèn thêm phần header của nó vào gói dữ liệu rồi chuyển xuống cho tầng Datalink/Physical

Khi các gói dữ liệu IP tới tầng Datalink sẽ được gắn thêm một header khác và chuyển tới tầng physical đi vào mạng Gói dữ liệu lúc này gọi là frame Kích thước của một frame hoàn toàn phụ thuộc vào mạng mà máy A kết nối

Trong khi được truyền trên mạng Internet, frame được các router chỉ dẫn để có thể tới đúng đích cần tới Router thực ra là một module chỉ có hai tầng là Network và Datalink/Physical Các frame tới router sẽ được tầng Datalink/Physical lọc bỏ header

mà tầng này thêm vào và chuyển lên tầng Network (IP) Tầng IP dựa vào các thông tin điều khiển trong header mà nó thêm vào để quyết định đường đi tiếp theo cho gói IP Sau đó gói IP này lại được chuyển xuống tầng Datalink/Physical để đi vào mạng Quá trình cứ thế tiếp tục cho đến khi dữ liệu tới đích là máy B

Khi tới máy B các gói dữ liệu được xử lý theo quy trình ngược lại với máy A Theo chiều mũi tên, đầu tiên dữ liệu qua tầng datalink/physical Tại đây frame bị bỏ đi phần header và chuyển lên tầng IP Tại tầng IP, dữ liệu được bung gói IP, sau đó lên tầng TCP và cuối cùng lên tầng application để hiển thị ra màn hình

Trang 8

Hệ thống địa chỉ và cơ chế truyền dữ liệu trong mạng Internet

Để một gói dữ liệu có thể đi từ nguồn tới đích, mạng Internet đã dùng một hệ thống đánh địa chỉ tất cả các máy tính nối vào mạng như hình 3

Những tên và địa chỉ này được gửi cho máy tính nhận dữ liệu

Cơ chế kết nối giữa hai máy trong mạng Internet

Chặng cuối cùng trong hoạt động của mạng Internet là cơ chế kết nối giữa hai máy

Để toàn bộ các hoạt động truyền tin giữa hai máy trong mạng có thể diễn ra thì phải hình thành kênh liên lạc hay một kết nối giữa chúng Quá trình đó diễn ra như sau (hình 7):

Trang 9

1: ULP B giả sử là một chương trình mail server ở Mỹ Do là server nên lúc nào nó cũng chờ đợi sự kết nối

2: ULP A là chương trình nhận thư điện tử của bạn Để kết nối, bạn gửi yêu cầu kết nối xuống cho tầng TCP

3: TCP chuẩn bị một gói dữ liệu TCP với cờ SYN=1 yêu cầu có sự đồng bộ hoá, SEQ

có thể lấy bất kì giá trị nào, ở đây là =100 và gửi cho TCP B

4: Sau khi nhận gói dữ liệu có SYN=1, TCP B gửi trả lại một thông báo có SYN=1, ACK=101, SEQ có thể lấy bất kì giá trị nào, ở đây là =177

5: TCP A nhận được gói dữ liệu từ TCP B sẽ gửi tiếp một gói dữ liệu có ACK=178 6: TCP A chuyển chấp nhận kết nối lên chương trình A

7: Sau khi nhận nốt gói dữ liệu có ACK=178, TCP B chuyển chấp nhận kết nối lên chương trình B

Sự kết nối giữa 2 module TCP ở các bước 3, 4, 5 gọi là cơ chế bắt tay 3 bước (three way handshake)

Quá trình đóng một kết nối cũng thực hiện tương tự

II Yêu cầu của bài toán

Lập trình trên mạng LAN có hai Server

Không sử dụng các ứng dụng Client – Server có sẵn

Xây dựng hệ thống trao đổi thông điệp giữa hai Server

Trang 10

III Mô tả hệ thống

Mỗi Server có 1 địa chỉ IP

Các Server liên lạc với nhau bằng các thông điệp (Message)

Khi mỗi Server muốn thực hiện một công việc trên chính mình thì cũng phải gửi lên hệ thống một thông điệp

Các thông điệp được xác định trước (về nội dung) do người lập trình tạo

Mỗi Server sẽ gửi các thông điệp theo tuần tự quy ước trước Quy ước là mỗi lúc chỉ

có một thông điệp được gửi

Khi một Server gửi một thông điệp yêu cầu một hoặc nhiều Server thực hiện một công việc nào đó thì thông điệp này sẽ được gửi đến tất cả các Server trên hệ thống Mỗi

Server sẽ kiểm tra thông điệp, nếu Server phải thực hiện là mình thì sẽ thực hiện Tất cả các Server đều nhận được thông điệp, nhưng chỉ có Server nào có IP ở Server

phải thực hiện thì mới thực hiện nội dung thông điệp đó.

Trên mỗi Server có thể xem được (Monitoring) nội dung công việc đã thực hiện tại các Server khác, tức là xem được Task List của Server khác

Định dạng của thông điệp (Message):

idMessage Stt của thông điệp IP Server gửi IP Server phải thực hiện

Stt của thông điệp sẽ là Stt tiếp theo trong Message List

IV Lựa chọn phần mềm để xây dựng chương trình

Chọn phần mềm lập trình Microsoft Visual Basic 6.0 và phần mềm CSDL Microsoft Access 2003

IV.1 Giới thiệu Winsock

Điều khiển Winsock cho phép kết nối đến một máy tính từ xa và trao đổi dữ liệu sử dụng một trong hai giao thức UDP (User Datagram Protocol) hoặc TCP (Transmission Control Protocol)

Có thể được sử dụng để tạo các ứng dụng client và server

Trang 11

- Tạo ứng dụng client để lấy thông tin người dùng trước khi gửi chúng đến server trung tâm

- Tạo ứng dụng server mà các chức năng của nó như là một điểm trung tâm thu thập dữ liệu từ một số người dùng

- Tạo ứng dụng “chat”

IV.2 Lựa chọn giao thức

Khi sử dụng Winsock, điều quan tâm đầu tiên là chọn giao thức UDP hay TCP Điểm khác nhau chính giữa hai giao thức này nằm ở trạng thái (state) kết nối của chúng:

- TCP là giao thức dựa trên kết nối (connection-based), tương tự như điện thoại, người dùng phải thiết lập kết nối trước khi tiến trình trao đổi thông tin được thực hiện Khi một kết nối đã được tạo, giao thức TCP sẽ giữ kết nối và bảo đảm tính toàn vẹn của dữ liệu

TCP yêu cầu một kết nối rõ ràng trước khi gửi và nhận dữ liệu

- UDP là giao thức phi kết nối (connectionless) Sự giao tác giữa hai máy tính giống như qua một cái phiếu: một thông điệp được gửi từ một máy đến một máy khác mà không có một kết nối rõ ràng giữa chúng

Với bài toán này, ta chọn giao thức TCP là phù hợp.

IV.3 Giới thiệu những lệnh cơ bản của điều khiển Winsock

1 Trên Server 1

tcpServer1.RemoteHost =

“IP Addr”

Khai báo địa chỉ IP của Server 2 kết nối với Server 1

tcpServer1.RemotePort =

1001

Khai báo địa chỉ cổng của Server 2 kết nối với Server 1

tcpServer1.Connect Server 1 thực hiện kết nối vào mạng

tcpServer1.SendData Server 1 thực hiện gửi dữ liệu (lưu ở

Trang 12

tcpServer1.GetData strData Server 1 thực hiện nhận dữ liệu lưu vào

biến strData

tcpServer1.LocalIP Chứa địa chỉ IP của Server 1

2 Trên Server 2

tcpServer2.LocalPort =

1001

Khai báo địa chỉ cổng của Server 2 kết nối với Server 1

tcpServer2.Listen Server 2 thực hiện lắng nghe

tcpServer2.Accept

requestID

Server 2 thực hiện chấp nhận kết nối

tcpServer2.SendData

Message

Server 2 thực hiện gửi dữ liệu (lưu ở biến Message) lên mạng

tcpServer2.GetData strData Server 2 thực hiện nhận dữ liệu lưu vào

biến strData

Trang 13

V Thiết kế chương trình

V.1 Sơ đồ kết nối hệ thống

VI.2 Xây dựng cơ sở dữ liệu

Mỗi Server có một Database giống hệt nhau gồm các Table:

1 MessageStore lưu các dạng Message của hệ Các Server đều có cùng một số dạng thông điệp do người dùng định nghĩa

2 MessageList lưu tất cả các thông điệp của hệ do các Server trong hệ gửi lên, các thông điệp được lưu theo thứ tự gửi lên hệ thống

3 Một TaskList lưu các công việc chính nó và trạng thái của các công việc đó (đã thực hiện/ đang thực hiện)

Server #1 Server #2

Database

#1

Database

#2

10.149.49.1 10.149.49.2

- MessageStore

- MessageList

- TaskList

Mạng viễn thông

idMessage Mark IP of sent Server IP of execute Server

idMessage Content

- Message form

Trang 14

Cấu trúc của các Table

Table: MessageStore:

idMessage Nội dung

Table: MessageList:

idMessage Mark SentServer ExecuteServer

Mark là dấu do hệ thống cấp (mô phỏng bằng auto number)

Table: TaskList:

idMessage Đã thực hiện Thời gian hoàn thành

Sơ đồ thực thể quan hệ

VI Thiết kế giao diện chương trình

Trang 15

VI.1 Chương trình của Server1

Nút lệnh “Start”: Để bắt đầu thực hiện gửi các thông điệp đến Server2.

Nút lệnh “Monitor”:

Gửi thông điệp yêu cầu giám sát đến Server2

Hiển thị nội dung thực hiện công việc của Server1 và Server2

Nút lệnh “Clear my task list” : Thực hiện xóa nội dung các công việc đã thực hiện

của Server1

Nút lệnh “Exit”: Để thoát chương trình.

VI.2 Chương trình của Server2

Nút lệnh “Start”: Để bắt đầu thực hiện gửi các thông điệp đến Server1.

Nút lệnh “Monitor”:

Gửi thông điệp yêu cầu giám sát đến Server1

Hiển thị nội dung thực hiện công việc của Server1 và Server2

Nút lệnh “Clear my task list” : Thực hiện xóa nội dung các công việc đã thực hiện

của Server2

Nút lệnh “Exit”: Để thoát chương trình.

Trang 16

VII Mô tả hoạt động của chương trình của các Server

- Kết nối vào mạng, gửi thông điệp đồng bộ lên mạng

- Gửi các công việc ở hàng đợi vào (MessageStore) lên mạng

- Nhận thông điệp gửi đến và lưu vào hàng đợi ra (MessageList)

- Thực hiện công việc của mình theo thứ tự ở hàng đợi ra (MessageList) nếu là công việc của mình

- Lưu công việc hoàn thành vào TaskList

- Nếu thông điệp yêu cầu giám sát (Monitoring) thì gửi toàn bộ TaskList của mình cho Server yêu cầu

- Nếu nhận được thông điệp là dạng TaskList mà các Server khác gửi đến sẽ thực hiện hiển thị nội dung thông điệp này và nội dung TaskList của mình lên màn hình giám sát

VIII Hướng dẫn cài đặt chương trình

VIII.1 Cài trên một máy tính

Khi khởi động chương trình, hai form đại diện cho hai giao diện của hai server hiển thị

+ Khi hai form hiển thị chương trình tự động thực hiện kết nối vào mạng

Trang 17

+ Click nút Start để thực hiện gửi thông điệp cho nhau.

+ Click nút Monitor để hiển thị tasklist của hai Server.

+ Click nút Clear my task list để xóa task list của server đó.

VIII.2 Cài trên hai máy tính

Thiết lập lại :

Trên Server 1:

+ chọn form start là frmServer1

+ tcpServer1.RemoteHost= Địa chỉ IP của Server2

+ tcpServer1.RemotePort= Cổng của Server2

Trên Server 2:

+ chọn form start là frmServer2

+ ExecuteServer= IP của Server1

IX Ví dụ Database

MessageStore

0Send All Tasks (sv1) 1Executing task 1 (sv1) 2Executing task 2 (sv1) 3Executing task 3 (sv1) 4Executing task 4 (sv1)

Trang 18

MessageList IdMessage Mark SentServer ExecuteServer

2 310.149.49.113 10.149.49.119

1 410.149.49.113 10.149.49.119

1 510.149.49.113 10.149.49.119

3 610.149.49.119 10.149.49.113

0 710.149.49.119 10.149.49.113

0 810.149.49.119 10.149.49.113

0 910.149.49.113 10.149.49.113

0 1010.149.49.113 10.149.49.113

0 1110.149.49.113 10.149.49.113

0 1210.149.49.113 10.149.49.113

0 1310.149.49.113 10.149.49.113

Ngày đăng: 31/01/2015, 22:52

HÌNH ẢNH LIÊN QUAN

V.1. Sơ đồ kết nối hệ thống - tiểu luận môn lập trình mạng mô phỏng quá trình làm việc của 2  tcp ip
1. Sơ đồ kết nối hệ thống (Trang 12)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w