Networks Business Online Việt Nam & International VH2

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 – Tài liệu text

Đăng ngày 07 November, 2022 bởi admin

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (610.8 KB, 25 trang )

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

kiệ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ành
chuẩn Internet để phát triển.
3
Ứng dụng Chat Client-Server trong mạng Lan
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 bao
gồ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ụng
kiể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ụng
và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 cho
tầ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ư độ tin
cậ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, TCP
cung cấp các phương thức linh hoạt và hiệu quả để thực hiện các hoạt động
truyề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 khi
bọ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ối
tồ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
4
Ứng dụng Chat Client-Server trong mạng Lan
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ạng
nà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 được
gọ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ói

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)

• UDP là giao thức không hướng liên kết (connectionless)
6
Ứng dụng Chat Client-Server trong mạng Lan
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:
• Địa chỉ vật lý / địa chị MAC
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
• Địa chỉ IP
• Dùng trong giao thức IP (tầng mạng)
• Giá trị phụ thuộc từng mạng, mỗi card được gán một địa chỉ IP
• Sử dụng để định danh một máy tính trong một mạng IP, ví dụ:
o 133.113.215.10 (IPv4)
o 2001:200:0:8803::53 (IPv6)
Địa chỉ sử dụng trong tầng giao vận
7
Ứng dụng Chat Client-Server trong mạng Lan
• Số hiệu cổng
o Một chỉ số phụ, dùng kèm theo địa chỉ IP
o Các ứng dụng được định danh bởi một địa chỉ IP và một số hiệu
cổng
• Ví dụ: HTTP cổng 80, FTP cổng 20, 21…
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)
 IPv4
 IPv6
o Độ dài phần đầu (4 bits)

 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

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
9
Ứng dụng Chat Client-Server trong mạng Lan
• Phần đầu gói tin IP
o Source port – 16 bits
o Dest port – 16 bits
o Sequence number – 4 bytes
 Được sử dụng để truyền dữ liệu tin cậy
o ACK – 4 bytes
 Được sử dụng để truyền dữ liệu tin cậy
10
Ứng dụng Chat Client-Server trong mạng Lan
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 được
các yêu cầu về dịch vụ đó từ các client. Khái niệm client-server chỉ mang tính
tươ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ủa
client.
11
Ứng dụng Chat Client-Server trong mạng Lan
Cách thức hoạt động của mô hình client-server như sau: một tiến tŕnh trên
server 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ại

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ệ

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ên
mộ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ến
trì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, giao
thứ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ậy
mộ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ên
mạ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ặp
socket. 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ữa
chú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.
13
Ứng dụng Chat Client-Server trong mạng Lan
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.

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

Tự động lấy
dữ liệu
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
Ứng dụng Chat Client-Server trong mạng Lan
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
17
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
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

– 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ỉ IP
của nhóm
19
gửi gói tin thoát
Server
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
Client nClient …Client 3Client 2Client 1
Ứng dụng Chat Client-Server trong mạng Lan
– rời bỏ khỏi nhóm multicast
– đóng socket
Lập trình multicast với winsock:
– winsock hỗ trợ lập trình Multicast trên hai phiên bản giao
thứ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
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
kiện nào, từ bất kỳ 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 vất vả mà từ đó đã làm phát sinh quy mô TCP / IP, thế cho nên đã trở thànhchuẩn Internet để tăng trưởng. Ứng dụng Chat Client-Server trong mạng LanTầng ứng dụngCác nhà phong cách thiết kế TCP / IP cảm thấy rằng những giao thức mức cao nên baogồm những tầng trình diễn và tầng phiên. Để đơn thuần, họ tạo ra một tầng ứng dụngkiểm soát những giao thức mức cao, những yếu tố 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ổng thể những yếu tố tương quan đến ứng dụngvào trong một tầng, và bảo vệ tài liệu được đóng gói một cách thích hợp chotầng sau đó. Tầng giao vậnTầng luân chuyển đề cập đến những yếu tố chất lượng dịch vụ như độ tincậy, điều khiển và tinh chỉnh luồng và sửa lỗi. Một trong những giao thức của nó là TCP, TCPcung cấp những phương pháp linh động và hiệu suất cao để triển khai những hoạt độngtruyền tài liệu an toàn và đáng 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ó thực thi hội thoại giữa nguồn và đích trong khibọc thông tin tầng ứng dụng thành những đơn vị chức năng gọi là segment. Tạo cầu nối khôngcó nghĩa là sống sót 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 vận động và 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 chừng thời hạn nào đó. Điều này coi nhưchuyển mạch gói ( packet switching ). Tầng InternetỨng dụng Chat Client-Server trong mạng LanMục tiêu của tầng Internet là truyển những 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 kèm theo độ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 lập đường dẫn tốt nhất và hoạt động giải trí chuyển mạch góidiễn ra tại tầng này. Tầng truy xuất mạngTê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 tương quan đến toàn bộ những yếu tố mà một gói tin IP nhu yếu đểtạo một link vật lý thực sự, và sau đó tạo một link vật lý khác. Nó baogồm những chi tiết cụ thể kỹ thuật LAN và WAN, và toàn bộ những cụ thể trong tầng liên kếtdữ liệu cũng như tầng vật lý của quy mô OSI.Mô hình OSI hướng đến tối đã độ linh động tại tầng ứng dụng cho ngườiphát triển ứng dụng. Tầng luân chuyển tương quan đến hai giao thức TCP và UDP ( User Datagram Protocol ). Tầng ở đầu cuối, tầng truy xuất mạng link những kỹthuật LAN hay WAN đang được sử dụng. Trong quy mô TCP / IP không cần chăm sóc đến ứng dụng nào yêu cầucác dịch vụ mạng, và không cần chăm sóc đến giao thức luâ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 hành động phong cách thiết kế đượccân nhắc rất kỹ. IP Giao hàng như một giao thức đa năng được cho phép bất kể máy tínhnào, ở bất kể đâu, truyền tài liệu vào bất kỳ thời gian nào. 1.3 Họ giao thức TCP / IPBao gồm hai phần chính : • Các giao thức tạo thành mạng lưới hệ thống truyền dẫn. • Các giao thức tương hỗ ứng dụng. Ứng dụng Chat Client-Server trong mạng LanTầng liên mạng ( Internet ) • Sử dụng giao thức connectionless – IP, là hạt nhân hoạt động giải trí 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 liên kết một cách mềm dẻo và linh động những 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 link ( connection – oriented ) • UDP là giao thức không hướng link ( connectionless ) Ứng dụng Chat Client-Server trong mạng Lan1. 4 Định danh trên Internet và quan hệ với những tầngĐịa chỉ dùng trong tầng link tài liệu : • Địa chỉ vật lý / địa chị MACo Sử dụng trong tầng link dữ liệuo Cố định trên NICo Sử dụng để địa chỉ hóa máy tính trong những mạng quảng báĐịa chỉ dùng trên Internet • Địa chỉ IP • Dùng trong giao thức IP ( tầng mạng ) • Giá trị nhờ vào từng mạng, mỗi card được gán một địa chỉ IP • Sử dụng để định danh một máy tính trong một mạng IP, ví dụ : o 133.113.215.10 ( IPv4 ) o 2001 : 200 : 0 : 8803 :: 53 ( IPv6 ) Địa chỉ sử dụng trong tầng giao vậnỨng dụng Chat Client-Server trong mạng Lan • Số hiệu cổngo Một chỉ số phụ, dùng kèm theo địa chỉ IPo Các ứng dụng được định danh bởi một địa chỉ IP và một số ít hiệucổng • Ví dụ : HTTP cổng 80, FTP cổng 20, 21 … 1.5 Khuôn dạng gói tin • Phần đầu gói tin IPo Phiên bản giao thức ( 4 bits )  IPv4  IPv6o Độ dài phần đầu ( 4 bits )  Tính theo từ ( 4 bytes )  Min : 5  Max : 60 o DS ( Differentiated Service : 8 bits )  Được sử dụng trong quản trị QoSo Độ dài hàng loạt, 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 lập chuỗi những gói tin bị phân mảnho Flag – Cờo Fragmentation offset – vị trí gói tin phân mảnh trong gói tin banđầuo TTL, 8 bits – Thời gian sống  Độ dài đường đi gói tin hoàn toàn có thể đi qua  Max : 255  Router giảm TTL đi 1 đơn vị chức năng khi giải quyết và 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ỗio Địa chỉ IP nguồn  32 bit, địa chỉ của trạm gửio Địa chỉ IP đích  32 bit, địa chỉ của trạm đíchỨ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 bitso Dest port – 16 bitso Độ dài hàng loạt bức tin ( tính theo bytes ) – 16 bitso Checksum : trấn áp lỗi – 16 bitsỨng dụng Chat Client-Server trong mạng Lan • Phần đầu gói tin IPo Source port – 16 bitso Dest port – 16 bitso Sequence number – 4 bytes  Được sử dụng để truyền tài liệu tin cậyo ACK – 4 bytes  Được sử dụng để truyền tài liệu tin cậy10Ứng dụng Chat Client-Server trong mạng LanPHẦN II Giớithiệu quy mô Client – Server2. 1 Mô hình Client – Server và một số ít năng lực ứng dụng. Mô hình chuẩn cho những ứng dụng trên mạng là quy mô 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 yế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 hoàn toàn có thể phân phối đượccác nhu yếu về dịch vụ đó từ những 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 hoàn toàn 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á thể, còn những Server là những máy tính có thông số kỹ thuật mạnh có chứa những cơ sở tài liệu vàcác chương tŕnh ứng dụng để ship hàng một dịch vụ nào đấy từ những nhu yếu củaclient. 11 Ứng dụng Chat Client-Server trong mạng LanCách thức hoạt động giải trí của quy mô client-server như sau : một tiến tŕnh trênserver khởi tạo luôn ở trạng thái chờ nhu yếu từ những tiến trình client tiến trình tạiclient được khởi tạo hoàn toàn có thể trên cùng mạng lưới hệ thống hoặc trên những mạng lưới hệ thống khác đượckết nối trải qua mạng, tiến trình client thường được khởi tạo bởi những lệnh từngười dùng. Tiến trình client ra nhu yếu và gửi chúng qua mạng tới server đểyêu cầu được Giao hàng những dịch vụ. Tiến tŕnh trên server thực thi việc xác địnhyêu cầu hợp lệ từ client sau đó ship hàng và trả tác dụng tới client và liên tục chờđợi những nhu yếu khác. Một số kiểu dịch vụ mà server hoàn toàn có thể phân phối như : dịchvụ về thời hạn ( trả nhu yếu thông tin về thời hạn tới client ), dịch vụ in ấn ( phụcvụ nhu yếu in tại client ), dịch vụ file ( gửi, nhận và những thao tác về file choclient ), thi hành những lệnh từ client trên server Dịch Vụ Thương Mại web là một dịch vụ cơbản trên mạng Internet hoạt động giải trí theo quy mô client-server. Tŕnh duyệt Web ( Internet Explorer, Netscape ) trên những máy client sử dụng giao thức TCP / IP đểđưa ra những nhu yếu HTTP tới máy server. Tŕnh duyệt hoàn toàn có thể đưa ra những yêu cầumột website đơn cử hay nhu yếu thông tin trong những cơ sở tài liệu. Máy serversử dụng ứng dụng của nó nghiên cứu và phân tích những nhu yếu từ những gói tin nhận được kiểmtra tính hợp lệ của client và triển khai Giao hàng những nhu yếu đó đơn cử là gửi trảlại client một website đơn cử hay những thông tin trên cơ sở tài liệu dưới dạngmột website. Server là nơi tàng trữ nội dung thông tin những website, phần mềmtrên server được cho phép server xác lập được trang cần nhu yếu và gửi tới client. Cơ sở tài liệu và những ứng dụng tựa như khác trên sever được khai thác vàkết nối qua những chương tŕnh như CGI ( Common Gateway Interface ), khi những máyserver nhận được nhu yếu về tra cứu trong cơ sở tài liệu, nó chuyển nhu yếu tớiserver có chứa cơ sở tài liệu hoặc ứng dụng để xử lư qua CGI. 2.2 SocketMột liên kết được định nghĩa như thể một link truyền thông online giữa những tiếntrình, như vậy để xác lập một liên kết cần phải xác lập những thành phần sau : { Protocol, local addr, local-process, remote-addr, remote-process }. 12 Ứng dụng Chat Client-Server trong mạng LanTrong đó local-addr và remote-addr là địa chỉ của những máy địa phương và máytừ xa. local-process, remote-process để xác lập vị trí tiến trình trên mỗi hệthống. Chúng ta định nghĩa 50% liên kết 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ố những tiến tŕnh ứng dụng đang chạy, để xác lập vị trí những 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 những cổng tiến trình và quy ước sốhiệu cổng từ 1-1023 được sử dụng cho những tiến tŕnh chuẩn ( như FTP quy ước sửdụng cổng 21, dịch vụ WEB quy ướ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 những ứng dụng của người dùng. Như vậymột cổng tích 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 liên kết TCP được cung ứng nhờ một link logic giữa một cặpsocket. Một socket hoàn toàn có thể tham gia nhiều link với những socket ở xa khác nhau. Trước khi truyền tài liệu giữa hai trạm cần phải thiết lập một link TCP giữachúng và khi kết thúc phiên truyền tài liệu th ́ link đó sẽ được giải phóng. 13 Ứng dụng Chat Client-Server trong mạng LanQuá tŕnh thiết lập một socket với những lời gọi mạng lưới hệ thống được diễn đạt như sau : server thiết lập một socket với những thông số kỹ thuật đặc tả những thủ tục tiếp thị quảng cáo như ( TCP, UDP, XNS ) và những kiểu tiếp thị quảng cáo ( SOCK_STREAM, SOCK_DGRAM ), sau đó link tới socket này những thông số kỹ thuật về địa chỉ nhưIP và những cổng TCP / UDP sau đó server ở chính sách chờ và gật đầu liên kết đếntừ client. 2.3 Giới thiệu MulticastMulticast : 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áclá, root truyền thông tin đồng thời tới những lá, lá chỉ truyền thông tin về root màkhông thể truyền thông tin sang lá khácNon root multicast : toàn bộ những thành viên là những lá, lá truyền thông online tintới toàn bộ những lá khác. 14 Ứng dụng Chat Client-Server trong mạng LanMulticast group : là một địa chỉ, tương tự như như địa chỉ của một Host, nhận diệnnhư đị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 ) hoàn toàn có thể gửi tài 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 chừng này đại diệncho một nhóm multicast. – một địa chỉ IP trong nhóm multicast được sử dụng chung chotất cả những thành viên của nhóm để gửi và nhận tài liệu. Phần III Thiết kế chương trình Chat3. 1 Các chứ năng trong chương trìnha ) những công dụng bên client15ClientỨng dụng Chat Client-Server trong mạng Lanb ) Các tính năng bên Serverc ) Các quy trình gửi tin nhắn giữa Client và Serverc1 ) Quá trình đăng nhập16Đăng nhậpGửi tin nhắnThoát chương trìnhServerTự động phản hồi tinnhắnThoát chương trìnhTự động lấydữ liệuServergửi gói tin đăng nhậpgửi phản hồi gói tin đăng nhập ( Ýes / No ) gửi gói tin dữ liệuỨng dụng Chat Client-Server trong mạng LanGó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 tin client 1 đã đăng nhập cho những client trong mạng ( Server gửitới những client ) Nội dung gói tin : “ NICK ” tên client vừa đăng nhập “ Status ” trạng thái của clientGó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 client17gửi gói tinclient 1 đãđăng nhậpgửi gói tinclient 1 đãđăng nhậpgửi gói tinclient 1 đãđăng nhậpgửi gói tinclient 1 đãđăng nhậpClient nClient … Client 3C lient 2C lient 1 Ứng dụng Chat Client-Server trong mạng Lanc2 ) Quá trình gửi tin nhắnClient 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ắnc3 ) Quá trình thoátNộ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átNội dung gói tin phản hồi thooát ( Server gửi cho những client trong mạng ) 18 gửi tin nhắn Chat ( gửicho client 2 ) nhận tin nhắn Chat ( nhậntừ serverServerClient 2C lient 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 clientc4 ) 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 những gói tin gửi đến cho nhóm đó – gửi những gói tin đến những máy trong nhóm trải qua địa chỉ IPcủa nhóm19gửi gói tin thoátServergửi góitin client1 đãthoátgửi gói tinclient 1 đãthoátgửi gói tinclient 1 đãthoátgửi gói tinclient 1 đãthoátClient nClient … Client 3C lient 2C lient 1 Ứng dụng Chat Client-Server trong mạng Lan – rời bỏ khỏi nhóm multicast – đóng socketLập trình multicast với winsock : – winsock tương hỗ 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 để ảnh hưởng tác động lên socket. 3.2 Cài đặt và kiểm thửa ) Server20Ứng dụng Chat Client-Server trong mạng Lanb ) Client khi cần đăng nhậpc ) Client đăng nhập thành công21Ứng dụng Chat Client-Server trong mạng Land ) Chat giữa 2 client22Ứng dụng Chat Client-Server trong mạng Lane ) Gửi tin nhắn cho nhómhuyanh gửi tin nhắn cho nhóm23Ứng dụng Chat Client-Server trong mạng Lan24Ứng dụng Chat Client-Server trong mạng Lan25

Source: https://vh2.com.vn
Category : Tin Học