TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
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:
Nguyễn Huy Anh Toán tin 1K53 Mssv: 2008 6310
Khúc Tuấn Vũ Toán tin 1K53 Msss: 2008 3196
Lê Hồng Nhật Toán tin 1K53 Mssv: 2008 1928
Ứng dụng Chat Client-Server trong mạng Lan
Mục Lục
2
Ứng dụng Chat Client-Server trong mạng Lan
PHẦN I: GIAO THỨC TCP / IP
1.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 (Internet
Protocol) là giao thức thuộc tầng mạng của mô hình OSI. Họ giao thức TCP/IP
hiệ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ác
mạ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ức
TCP/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àm
việ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ện
nà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ều
diễ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ó bao
gồ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ười
phá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ết cá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ầu
cá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ế được
câ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áy tí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:
• Các giao thức tạo thành hệ thống truyền dẫn.
• Các giao thức hỗ trợ ứng dụng.
5
Ứng dụng Chat Client-Server trong mạng Lan
Tầng liên mạng (Internet)
• Sử dụng giao thức connectionless – IP, là hạt nhân hoạt động của hệ
thống truyền dẫn Internet.
• Các thuật toán định tuyến RIP, OSFD, BGP
• Cho phép kết nối một cách mềm dẻo và linh hoạt các loại mạng “vật lý”
khác nhau; như: Ethernet, Token Ring, X25 v.v. dựa trên địa chỉ IP.
Tầng giao vận (Transport)
• TCP là giao thức hướng liên kết (connection – oriented)
Tính theo từ (4 bytes)
Min: 5
Max: 60
o DS (Differentiated Service: 8 bits)
Được sử dụng trong quản lý QoS
o Độ dài toàn bộ, tính cả phần đầu (16 bits)
Tính theo bytes
Max: 65536
o ID – Số hiệu gói tin
Dùng để xác định chuỗi các gói tin bị phân mảnh
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
Độ dài đường đi gói tin có thể đi qua
Max: 255
Router giảm TTL đi 1 đơn vị khi xử lý
Gói tin bị hủy nếu TTL = 0
o Protocol – Giao thức tầng trên
Giao thức tầng giao vận (TCP, UDP,…)
Các giao thức tầng mạng khác (ICMP, IGMP, OSPF)
o Checksum – kiểm tra lỗi
o Địa chỉ IP nguồn
32 bit, địa chỉ của trạm gửi
o Địa chỉ IP đích
32 bit, địa chỉ của trạm đích
8
Ứng dụng Chat Client-Server trong mạng Lan
• Khuôn dạng bức tin (với giao thức UDP)
o Source port – 16 bits
client đượ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 được
kế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 định
yê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 cho
client), 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ầu
mộ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ểm
tra 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ạng
một trang web. Server là nơi lưu trữ nội dung thông tin các website, phần mềm
trê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à
kết nối qua các chương tŕnh như CGI (Common Gateway Interface), khi các máy
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ến
trì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}.
12
Ứng dụng Chat Client-Server trong mạng Lan
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ệ
14
Ứng dụng Chat Client-Server trong mạng Lan
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 hay
khô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 đến
239.255.255.255. Mỗi địa chỉ IP trong khoảng này đại diện
cho một nhóm multicast.
- một địa chỉ IP trong nhóm multicast được sử dụng chung cho
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 Chat
3.1 Các chứ năng trong chương trình
a) các chức năng bên client
15
Client
Ứng dụng Chat Client-Server trong mạng Lan
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
c1) Quá trình đăng nhập
16
Đăng nhập
Gửi tin nhắn
Thoát chương trình
Server
Tự động phản hồi tin
nhắn
Thoát chương trình
đăng nhập
gửi gói tin
client 1 đã
đăng nhập
Client nClient …Client 3Client 2Client 1
Ứng dụng Chat Client-Server trong mạng Lan
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)
18
gửi tin nhắn Chat (gửi
cho client 2)
nhận tin nhắn Chat (nhận
từ server
Server
Client 2Client 1
Ứng dụng Chat Client-Server trong mạng Lan
“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
3.2 Cài đặt và kiểm thử
a) Server
20
Ứng dụng Chat Client-Server trong mạng Lan
b) Client khi cần đăng nhập
c) Client đăng nhập thành công
21
Ứng dụng Chat Client-Server trong mạng Lan
d)Chat giữa 2 client
22
Ứng dụng Chat Client-Server trong mạng Lan
e) Gửi tin nhắn cho nhóm
huyanh gửi tin nhắn cho nhóm
23
Ứng dụng Chat Client-Server trong mạng Lan
24
Ứng dụng Chat Client-Server trong mạng Lan
25