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

Bài tập lớn lập trình mạng đề tài xây ứng dụng chat client – server trong mạng lan

24 3,7K 36

Đ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 682,31 KB

Nội dung

Bài tập lớn lập trình mạng đề tài xây ứng dụng chat client – server trong mạng lan

Trang 1

Bài Tập Lớn Lập Trình Mạng

ĐỀ TÀI Xây ứng dụng Chat Client – Server trong mạng Lan

Giáo viên hướng dẫn: Ths Nguyễn Tuấn Dũng

Nhóm SV thực hiện:

Trang 2

Mục Lục

PHẦN I: GIAO THỨC TCP / IP 2

1.1 Tổng quan 2

1.2 Các tầng của mô hình tham chiếu TCP/IP 2

1.3 Họ giao thức TCP/IP 4

1.4 Định danh trên Internet và quan hệ với các tầng 5

1.5 Khuôn dạng gói tin 6

PHẦN II Giới thiệu mô hình Client – Server 9

2.1 Mô hình Client – Server và một số khả năng ứng dụng 10

2.2 Socket 11

2.3 Giới thiệu Multicast……… 13

Phần III Thiết kế chương trình Chat 14

3.1 Các chứ năng trong chương trình 14

3.2 Cài đặt và kiểm thử 19

Trang 3

PHẦN I: GIAO THỨC TCP / IP1.1 Tổng quan

Giao thức TCP/IP được phát triển từ mạng ARPANET và Internet vàđược dùng như giao thức mạng và giao vận trên tầng mạng Internet TCP(Transmission Control Protocol) là giao thức thuộc tầng giao vận và IP (InternetProtocol) là giao thức thuộc tầng mạng của mô hình OSI Họ giao thức TCP/IPhiện nay là giao thức được sử dụng rộng rãi nhất để liên kết các máy tính và cácmạng

Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thức TCP/IP

để liên kết với nhau thông qua hệ thống mạng với kỹ thuật khác nhau Giao thứcTCP/IP thực chất là một họ giao thức cho phép các hệ thống mạng cùng làmviệc với nhau thông qua việc cung cấp các phương tiện truyền thông liên mạng

1.2 Các tầng của mô hình tham chiếu TCP/IP

Bộ quốc phòng Mỹ gọi tắt là DoD (Department of Defense) đã tạo ra môhình tham chiếu TCP/IP vì muốn một mạng có thể tồn tại trong bất cứ điều kiệnnào DoD muốn các gói dữ liệu xuyên suốt mạng vào mọi lúc, dưới bất cứ điềukiện nào, từ bất cứ một điểm đến một điểm khác Đây là một bài toán thiết kếcực kỳ khó khăn mà từ đó đã làm nảy sinh mô hình TCP/IP, vì vậy đã trở thànhchuẩn Internet để phát triển

Trang 4

Tầng ứng dụng

Các nhà thiết kế TCP/IP cảm thấy rằng các giao thức mức cao nên baogồm các tầng trình bày và tầng phiên Để đơn giản, họ tạo ra một tầng ứng dụngkiểm soát các giao thức mức cao, các vấn đề của tầng Trình diễn, mã hóa vàđiều khiển hội thoại TCP/IP tập hợp tất cả các vấn đề liên quan đến ứng dụngvào trong một tầng, và đảm bảo dữ liệu được đóng gói một cách thích hợp chotầng kế tiếp

Tầng giao vận

Tầng vận chuyển đề cập đến các vấn đề chất lượng dịch vụ như độ tincậy, điều khiển luồng và sửa lỗi Một trong các giao thức của nó là TCP, TCPcung cấp các phương thức linh hoạt và hiệu quả để thực hiện các hoạt độngtruyền dữ liệu tin cậy, hiệu suất cao và ít lỗi TCP là giao thức có tạo cầu nối(connection – oriented) Nó tiến hành hội thoại giữa nguồn và đích trong khibọc thông tin tầng ứng dụng thành các đơn vị gọi là segment Tạo cầu nối không

có nghĩa là tồn tại một mạch thực giữa hai máy tính, thay vì vậy nó có nghĩa làcác segment của tầng 4 di chuyển tới và lui giữa hai host để công nhận kết nốitồn tại một cách luận lý trong một khoảng thời gian nào đó Điều này coi nhưchuyển mạch gói (packet switching)

Tầng Internet

Trang 5

Mục tiêu của tầng Internet là truyển các gói tin bắt nguồn từ bất kỳ mạngnào trên liên mạng và đến được đích trong điều kiện độc lập với đường dẫn vàcác mạng mà chúng đã trải qua Giao thức đặc trưng khống chế tầng này đượcgọi là IP Công việc xác định đường dẫn tốt nhất và hoạt động chuyển mạch góidiễn ra tại tầng này.

Tầng truy xuất mạng

Tên của tầng này có nghĩa khá rộng Nó cũng được gọi là tầng host – to –network Nó là tầng liên quan đến tất cả các vấn đề mà một gói tin IP yêu cầu đểtạo một liên kết vật lý thực sự, và sau đó tạo một liên kết vật lý khác Nó baogồm các chi tiết kỹ thuật LAN và WAN, và tất cả các chi tiết trong tầng liên kết

dữ liệu cũng như tầng vật lý của mô hình OSI

Mô hình OSI hướng đến tối đã độ linh hoạt tại tầng ứng dụng cho ngườiphát triển phần mềm Tầng vận chuyển liên quan đến hai giao thức TCP vàUDP (User Datagram Protocol) Tầng cuối cùng, tầng truy xuất mạng liên kếtcác kỹ thuật LAN hay WAN đang được sử dụng

Trong mô hình TCP/IP không cần quan tâm đến ứng dụng nào yêu cầucác dịch vụ mạng, và không cần quan tâm đến giao thức vận chuyển nào đangđược dùng, chỉ có một giao thức mạng IP Đây là một quyết định thiết kế đượccân nhắc rất kỹ IP phục vụ như một giao thức đa năng cho phép bất kỳ máytính nào, ở bất cứ đâu, truyền dữ liệu vào bất cứ thời điểm nào

1.3 Họ giao thức TCP/IP

Bao gồm hai phần chính:

Trang 6

Tầng liên mạng (Internet)

thống truyền dẫn Internet

khác nhau; như: Ethernet, Token Ring, X25 v.v dựa trên địa chỉ IP

Tầng giao vận (Transport)

Trang 7

1.4 Định danh trên Internet và quan hệ với các tầng

Địa chỉ dùng trong tầng liên kết dữ liệu:

o Sử dụng trong tầng liên kết dữ liệu

o Cố định trên NIC

o Sử dụng để địa chỉ hóa máy tính trong các mạng quảng bá

Địa chỉ dùng trên Internet

o 133.113.215.10 (IPv4)

o 2001:200:0:8803::53 (IPv6)

Trang 8

Địa chỉ sử dụng trong tầng giao vận

1.5 Khuôn dạng gói tin

Phần đầu gói tin IP

o Phiên bản giao thức (4 bits)

o DS (Differentiated Service: 8 bits)

o Độ dài toàn bộ, tính cả phần đầu (16 bits)

o ID – Số hiệu gói tin

o Flag – Cờ

o Fragmentation offset – vị trí gói tin phân mảnh trong gói tin banđầu

o TTL, 8 bits – Thời gian sống

Trang 9

 Max: 255

o Protocol – Giao thức tầng trên

o Checksum – kiểm tra lỗi

o Địa chỉ IP nguồn

o Địa chỉ IP đích

Khuôn dạng bức tin (với giao thức UDP)

o Source port – 16 bits

o Dest port – 16 bits

o Độ dài toàn bộ bức tin (tính theo bytes) – 16 bits

o Checksum: kiểm soát lỗi – 16 bits

Trang 10

Phần đầu gói tin IP

o Source port – 16 bits

o Dest port – 16 bits

o Sequence number – 4 bytes

o ACK – 4 bytes

Trang 11

PHẦN II Giới thiệu mô hình Client – Server

2.1 Mô hình Client – Server và một số khả năng ứng dụng.

Mô hình chuẩn cho các ứng dụng trên mạng là mô hình client-server Trong môhình này máy tính đóng vai trò là một client là máy tính có nhu cầu cần phục vụdịch vụ và máy tính đóng vai trò là một server là máy tính có thể đáp ứng đượccác yêu cầu về dịch vụ đó từ các client Khái niệm client-server chỉ mang tínhtương đối, điều này có nghĩa là một máy có thể lúc này đóng vai trò là client vàlúc khác lại đóng vai trò là server Nhìn chung, client là một máy tính cá nhân,còn các Server là các máy tính có cấu hình mạnh có chứa các cơ sở dữ liệu vàcác chương tŕnh ứng dụng để phục vụ một dịch vụ nào đấy từ các yêu cầu củaclient

Trang 12

Cách thức hoạt động của mô hình client-server như sau: một tiến tŕnh trênserver khởi tạo luôn ở trạng thái chờ yêu cầu từ các tiến trình client tiến trình tạiclient được khởi tạo có thể trên cùng hệ thống hoặc trên các hệ thống khác đượckết nối thông qua mạng, tiến trình client thường được khởi tạo bởi các lệnh từngười dùng Tiến trình client ra yêu cầu và gửi chúng qua mạng tới server đểyêu cầu được phục vụ các dịch vụ Tiến tŕnh trên server thực hiện việc xác địnhyêu cầu hợp lệ từ client sau đó phục vụ và trả kết quả tới client và tiếp tục chờđợi các yêu cầu khác Một số kiểu dịch vụ mà server có thể cung cấp như: dịch

vụ về thời gian (trả yêu cầu thông tin về thời gian tới client), dịch vụ in ấn (phục

vụ yêu cầu in tại client), dịch vụ file (gửi, nhận và các thao tác về file choclient), thi hành các lệnh từ client trên server Dịch vụ web là một dịch vụ cơbản trên mạng Internet hoạt động theo mô hình client-server Tŕnh duyệt Web(Internet Explorer, Netscape ) trên các máy client sử dụng giao thức TCP/IP đểđưa ra các yêu cầu HTTP tới máy server Tŕnh duyệt có thể đưa ra các yêu cầumột trang web cụ thể hay yêu cầu thông tin trong các cơ sở dữ liệu Máy server

sử dụng phần mềm của nó phân tích các yêu cầu từ các gói tin nhận được kiểmtra tính hợp lệ của client và thực hiện phục vụ các yêu cầu đó cụ thể là gửi trảlại client một trang web cụ thể hay các thông tin trên cơ sở dữ liệu dưới dạngmột trang web Server là nơi lưu trữ nội dung thông tin các website, phần mềmtrên server cho phép server xác định được trang cần yêu cầu và gửi tới client

Cơ sở dữ liệu và các ứng dụng tương tự khác trên máy chủ được khai thác và

server nhận được yêu cầu về tra cứu trong cơ sở dữ liệu , nó chuyển yêu cầu tới server có chứa cơ sở dữ liệu hoặc ứng dụng để xử lư qua CGI.

2.2 Socket

Một kết nối được định nghĩa như là một liên kết truyền thông giữa các tiếntrình, như vậy để xác định một kết nối cần phải xác định các thành phần sau:{Protocol, local addr, local-process, remote-addr, remote-process}

Trang 13

Trong đó local-addr và remote-addr là địa chỉ của các máy địa phương và máy

từ xa local-process, remote-process để xác định vị trí tiến trình trên mỗi hệthống Chúng ta định nghĩa một nửa kết nối là {Protocol, local-addr, local-process} và {Protocol, remote-addr, remote-process} hay còn gọi là một socket

Chúng ta đă biết để xác đinh một máy ta dựa vào địa chỉ IP của nó, nhưng trênmột máy có vô số các tiến tŕnh ứng dụng đang chạy, để xác định vị trí các tiếntrình ứng dụng này người ta định danh cho mỗi tiến trình một số hiệu cổng, giaothức TCP sử dụng 16 bit cho việc định danh các cổng tiến trình và qui ước sốhiệu cổng từ 1-1023 được sử dụng cho các tiến tŕnh chuẩn (như FTP qui ước sửdụng cổng 21, dịch vụ WEB qui ước cổng 80, dịch vụ gửi thư SMTP cổng 25 )

số hiệu cổng từ 1024- 65535 dành cho các ứng dụng của người dùng Như vậymột cổng kết hợp với một địa chỉ IP tạo thành một socket duy nhất trong liênmạng Một kết nối TCP được cung cấp nhờ một liên kết logic giữa một cặpsocket Một socket có thể tham gia nhiều liên kết với các socket ở xa khác nhau.Trước khi truyền dữ liệu giữa hai trạm cần phải thiết lập một liên kết TCP giữachúng và khi kết thúc phiên truyền dữ liệu th́ liên kết đó sẽ được giải phóng

Trang 14

Quá tŕnh thiết lập một socket với các lời gọi hệ thống được mô tả như sau:server thiết lập một socket với các thông số đặc tả các thủ tục truyền thông như(TCP, UDP, XNS ) và các kiểu truyền thông (SOCK_STREAM,SOCK_DGRAM ), sau đó liên kết tới socket này các thông số về địa chỉ như

IP và các cổng TCP/UDP sau đó server ở chế độ chờ và chấp nhận kết nối đến

từ client

2.3 Giới thiệu Multicast

Multicast: gửi một gói tin tới một nhóm địa chỉ một cách đồng thời.

Root multicast: một thành viên đóng vai trò là root phát tán thông tin tới các

lá, root truyền thông tin đồng thời tới các lá, lá chỉ truyền thông tin về root màkhông thể truyền thông tin sang lá khác

Non root multicast: tất cả các thành viên là các lá, lá truyền thông tin

tới tất cả các lá khác

Trang 15

Multicast group: là một địa chỉ, tương tự như địa chỉ của một Host, nhận diện

như địa chỉ máy đích một cách logic, hoặc một nhóm Các hosts (thuộc haykhông thuộc nhóm) có thể gửi dữ liệu cho nhóm, tham gia hay rời bỏ nhóm

Địa chỉ Multicast:

- Miêu tả trong RFC 1112

- sử dụng IGMP(Internet Group Multicasting Protocol)

- sử dụng lớp D của địa chỉ IP: từ 224.0.0.0 đến239.255.255.255 Mỗi địa chỉ IP trong khoảng này đại diệncho một nhóm multicast

- một địa chỉ IP trong nhóm multicast được sử dụng chungcho tất cả các thành viên của nhóm để gửi và nhận dữ liệu

Phần III Thiết kế chương trình Chat3.1 Các chứ năng trong chương trình

a) các chức năng bên client

Client

Trang 16

b) Các chức năng bên Server

c) Các quá trình gửi tin nhắn giữa Client và Server

Thoát chương trình

Server

gửi gói tin đăng nhập gửi phản hồi gói tin đăng nhập (Ýes / No) gửi gói tin dữ liệu

Trang 17

Gói tin đăng nhập (client gửi tới Server)

Nội dung gói tin:

“DANGNHAP” tên gói tin

“NICK” tên máy khách

“ PASS ” mật khẩu

Gói tin thông báo client 1 đã đăng nhập cho các client trong mạng (Server gửi tới các client)

Nội dung gói tin:

“NICK” tên client vừa đăng nhập

“Status” trạng thái của client

Gói tin phản hồi đăng nhập (Server gửi phản hồi cho client)

Nội dung gói tin:

“PHANHOI” : tên gói tin

“STATUS”: trạng thái client

Client 2 Client 1 Client 3 Client … Client n

gửi gói tin client 1

đã đăng nhập

gửi gói tin client 1

đã đăng nhập

gửi gói tin client 1

đã đăng nhập

gửi gói tin client 1

đã đăng nhập

Trang 18

c2) Quá trình gửi tin nhắn

Client gửi gói tin chat đến Server

”CHAT”: Tên gói tin

”SENDNICK”: tên client gửi tin nhắn tới Server

“RECVNICK”: tên client nhận tin nhắn từ Server

“TEXT”: nội dung chat client gửi tin nhắn

c3) Quá trình thoát

Nội dung gói tin thoát (client gửi tới Server)

“EXIT”: tên gói tin

”NICK”: tên client cần thoát

Nội dung gói tin phản hồi thooát (Server gửi cho các client trong mạng)

Trang 19

“NICK” tên client vừa thoát

“Status” trạng thái của client

c4) Lập trình Multicast.

Các bước:

- tạo UDP socket

- tham gia một nhóm multicast chỉ ra bởi một địa chỉ IP lớp D

- nhận các gói tin gửi đến cho nhóm đó

- gửi các gói tin đến các máy trong nhóm thông qua địa chỉ IPcủa nhóm

Client 2 Client 1 Client 3 Client … Client n

gửi gói tin client

1 đã thoát

gửi gói tin client 1

đã thoát

gửi gói tin client 1

đã thoát

gửi gói tin client 1

đã thoát gửi gói tin thoát Server

Trang 20

- rời bỏ khỏi nhóm multicast

- đóng socketLập trình multicast với winsock:

- winsock hỗ trợ lập trình Multicast trên hai phiên bản giaothức IGMP2, IGMP3

- sử dụng socket với kiểu SOCK_DGRAM

- sử dụng cấu trúc ip_mreq để định địa chỉ nhóm

- sử dụng hàm setsockpt để tác động lên socket.

3.2 Cài đặt và kiểm thử

a) Server

Trang 21

b) Client khi cần đăng nhập

c) Client đăng nhập thành công

Trang 22

d)Chat giữa 2 client

Trang 23

e) Gửi tin nhắn cho nhóm

huyanh gửi tin nhắn cho nhóm

Ngày đăng: 23/10/2014, 16:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w