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

báo cáo tìm hiểu về phương pháp truyền thông client server

25 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Phương pháp truyền thông Client-Server
Tác giả Nguyễn Ngọc Tuấn Anh
Trường học Trường Đại học Thăng Long
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 1,52 MB

Nội dung

Ngoài ra, mô hình client-server còn có những ưu điểm khác như:Dễ dàng quản lý: Mô hình này giúp dễ dàng quản lý ứng dụng, bởi vì tất cả các tài nguyên và dịch vụ đều được tập trung trên

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC THĂNG LONG

BÁO CÁO

TÌM HIỂU VỀ PHƯƠNG PHÁP

TRUYỀN THÔNG CLIENT-SERVER

SINH VIÊN THỰC HIỆN: NGUYỄN NGỌC TUẤN ANH

HÀ NỘI – 2022

Trang 2

GIỚI THIỆU CHUNG

Client – Server là mô hình được áp dụng nhiều trên hệ thống mạng máy tính hiện nay,giúp các máy tính giao tiếp truyền tải dữ liệu cho nhau Mô hình này phân vùng cácnhiệm vụ giữa các nhà cung cấp Bởi những tính năng nổi bật như dễ dàng triển khai,quản lý , tính bảo mật, tính phân tán, … Client-server được sử dụng rộng rãi trước nhiều

mô hình truyền thông nổi trội khác như peer-to-peer (P2P), hybrid,… Sau đây chúng ta sẽtìm hiểu về phương pháp truyền thông Client-server, 1 phương pháp được sử dụng tronghầu hết các chương trình ứng dụng trong đời sống như world wide web, email, game,….Trong đó phổ biến nhất là trong mạng máy tính

1

Trang 3

MỤC LỤC

CHƯƠNG 1 KHÁI QUÁT VỀ CLIENT SERVER 3

1.1 Mô Hình Client-Server là gì ? 3

1.2 Ưu điểm của mô hình Client-Server 3

1.3 Ứng dụng 4

CHƯƠNG 2 BÀI TOÁN TRUYỀN THÔNG GIỮA CLIENT-SV 5

2.1 TCP/IP 5

2.1.1 TCP/IP là gì ? 5

2.1.2 Cách Hoạt Động 6

2.1.3 Các Tầng Trong Mô Hình TCP/IP 6

2.2 Quy Trình Truyền Thông Client-Server qua TCP/IP 8

2.2.1 Bắt tay 3 bước( Trình tự bắt tay TCP) 8

2.2.2 Gửi và Nhận dữ liệu 18

2.2.3 Kết thúc một kết nối 21

2.3 Vì sao giao thức TCP/IP được sử dụng rộng rãi? 22

2.3.1 Ứng dụng của giao thức TCP/IP 23

2.3.2 Ưu nhược điểm của giao thức TCP/IP 23

2

Trang 4

CHƯƠNG 1 KHÁI QUÁT VỀ CLIENT SERVER

1.1.Mô Hình Client-Server là gì ?

Mô hình client-server, hay kiến trúc client-server, là một khung ứng dụng phân tánchia nhiệm vụ giữa máy chủ và máy khách, có thể nằm trên cùng một hệ thống hoặc liênlạc thông qua mạng máy tính hoặc Internet Máy khách dựa vào việc gửi yêu cầu đến mộtchương trình khác để truy cập một dịch vụ được cung cấp bởi máy chủ Máy chủ, lầnlượt, chạy một hoặc nhiều chương trình để chia sẻ tài nguyên và phân phối công việcgiữa các máy khách

Ảnh 1.1 Mô Hình Client-Server

Giao tiếp giữa máy khách và máy chủ tuân theo mô hình truyền thông theo mẫuyêu cầu-phản hồi và phải tuân theo một giao thức truyền thông chung Giao thức nàychính thức xác định các quy tắc, ngôn ngữ và mẫu đối thoại sẽ được sử dụng Thôngthường, giao thức client-server tuân theo bộ giao thức TCP/IP

1.2.Ưu điểm của mô hình Client-Server

Mô hình client-server có những ưu điểm sau:

Tính hiệu quả: Mô hình này phân chia công việc giữa client và server, giúptăng hiệu quả sử dụng tài nguyên và nâng cao hiệu suất của ứng dụng

Ví dụ, khi bạn truy cập một trang web, máy tính của bạn (client) chỉ cần gửiyêu cầu đến máy chủ web (server) Máy chủ web sẽ xử lý yêu cầu và trả lạinội dung trang web cho máy tính của bạn Điều này giúp giảm tải cho máytính của bạn và cải thiện hiệu suất của trang web

Tính linh hoạt: Mô hình này có thể dễ dàng mở rộng quy mô để đáp ứngnhu cầu của người dùng

3

Trang 5

Khi số lượng người dùng tăng lên, bạn có thể dễ dàng thêm máy chủ mới

để đáp ứng nhu cầu Điều này giúp đảm bảo rằng ứng dụng vẫn hoạt độngtốt ngay cả khi số lượng người dùng tăng lên

Tính bảo mật: Mô hình này giúp bảo vệ dữ liệu của người dùng khỏi bị truycập trái phép.Dữ liệu được lưu trữ trên máy chủ, nơi có thể được bảo vệbằng các biện pháp bảo mật như tường lửa, mã hóa, Điều này giúp ngănchặn những kẻ tấn công truy cập trái phép vào dữ liệu của người dùng.Ngoài ra, mô hình client-server còn có những ưu điểm khác như:

Dễ dàng quản lý: Mô hình này giúp dễ dàng quản lý ứng dụng, bởi vì tất cảcác tài nguyên và dịch vụ đều được tập trung trên máy chủ

Tương thích: Mô hình này có thể tương thích với nhiều hệ điều hành vàthiết bị khác nhau

Tính ổn định: Mô hình này giúp ứng dụng ổn định hơn, bởi vì các lỗi phầnmềm chỉ cần được sửa chữa trên máy chủ

1.3.Ứng dụng

Mô hình client-server được sử dụng trong nhiều ứng dụng khác nhau, bao gồm:Web: Các trang web sử dụng mô hình client-server để cung cấp nội dung vàdịch vụ cho người dùng

Dữ liệu: Các ứng dụng quản lý dữ liệu sử dụng mô hình client-server để lưutrữ và truy cập dữ liệu

Ứng dụng doanh nghiệp: Các ứng dụng doanh nghiệp như CRM, ERP, sửdụng mô hình client-server để quản lý các hoạt động kinh doanh

Giải trí: Các ứng dụng giải trí như trò chơi trực tuyến, video streaming, sửdụng mô hình client-server để cung cấp nội dung và dịch vụ cho ngườidùng

4

Trang 6

CHƯƠNG 2 BÀI TOÁN TRUYỀN THÔNG GIỮA

CLIENT-SV

Sau khi hiểu sơ lược về Client-Server vậy giữa Client và Server giao tiếp bằngcách nào? vì sao có thể gửi được dữ liệu qua lại giữa Client-Server? Dựa vào đâu màphương pháp truyền thông đó lại được sử dụng rộng dãi trong hầu hết các ứng dụng? ,…

Để tìm câu trả lời đó trước tiên chúng ta cần tìm hiểu về phương pháp truyềnthông giữa client và Server hay gọi là giao thức mạng Cụ thể giao thức mạng ở đây làTCP/IP, 1 trong những giao thức được sử dụng phổ biến nhất trong việc truyền thôngclient-server

2.1.TCP/IP

2.1.1 TCP/IP là gì ?

-TCP (Transmission Control Protocol) là một giao thức mạng quan trọng được sửdụng trong việc truyền dữ liệu qua một mạng nào đó Một giao thức trong phạm vi mạng

là một tập hợp các quy tắc và trình tự kiểm soát việc thực hiện truyền dữ liệu sao cho tất

cả mọi người trên thế giới bất kể vị trí địa lý, bất kể ứng dụng, phần mềm họ đang sửdụng đều có thể thao tác theo cùng một phương thức giống nhau được gọi là TCP.-IP là viết tắt tiếng Anh của Internet Protocol - giao thức Internet Những thiết bịđiện tử hiện nay nhận diện và liên lạc với nhau trên mạng máy tính bằng cách sử dụnggiao thức Internet Chính vì vậy, mỗi thiết bị đều có IP riêng để tiện liên lạc, kết nốitương tự như địa chỉ nhà hay địa chỉ doanh nghiê yp vâ yy

Ảnh 2.2 Cấu Trúc Địa Chỉ IP

5

Trang 7

2.1.2 Cách Hoạt Động

Khi một thiết bị muốn gửi dữ liệu đến một thiết bị khác, thiết bị đó sẽ sử dụnggiao thức IP để định tuyến dữ liệu đến mạng của thiết bị nhận Sau đó, thiết bị nhận sẽ sửdụng giao thức TCP để thiết lập kết nối với thiết bị gửi

Sau khi kết nối được thiết lập, thiết bị gửi sẽ chia dữ liệu thành các segment Mỗisegment sẽ được đóng gói thành một gói dữ liệu và được gửi đến thiết bị nhận

Thiết bị nhận sẽ nhận được gói dữ liệu và sử dụng giao thức TCP để kiểm tra lỗi

và đảm bảo rằng dữ liệu được truyền theo thứ tự Nếu có lỗi, thiết bị nhận sẽ yêu cầu thiết

bị gửi gửi lại dữ liệu

Khi tất cả các segment đã được nhận, thiết bị nhận sẽ sử dụng giao thức TCP để giải nén dữ liệu và trả về phản hồi cho thiết bị gửi

Ảnh 2.3 Sơ đồ minh họa cách thức hoạt động của TCP/IP:

2.1.3 Các Tầng Trong Mô Hình TCP/IP

Mô hình TCP/IP tiêu chuẩn được chia thành 4 tầng (Layer) chồng lên nhau baogồm: Tầng vật lý (Physical) → Tầng mạng (Network) → Tầng giao vận (Transport) vàcuối cùng là Tầng ứng dụng (Application) Mỗi tầng đều có giao thức cụ thể khác nhau

6

Trang 8

Dữ liệu trong tầng này là dữ liệu ứng dụng thực tế.

Tầng 3 – Tầng Giao Vận (Transport) là tầng chính trong quá trình truyền thông

client-server

Chịu trách nhiệm duy trì thông tin liên tạc end-to-end trên toàn mạng TCP xử lýthông tin liên lạc giữa các máy chủ và cung cấp khả năng kiểm soát luồng, ghépkênh và độ tin cậy

Trong tầng này bao gồm 2 giao thức cốt lõi là TCP và UDP TCP giúp đảm bảochất lượng gói tin và UDP giúp tốc độ truyền tải nhanh hơn

Các giao thức truyền dữ liệu: Ethernet (cho mạng LAN) và ARP

7

Trang 9

2.2.Quy Trình Truyền Thông Client-Server qua

TCP/IP

2.2.1 Bắt tay 3 bước( Trình tự bắt tay TCP)

Trước khi dữ liệu có thể được truyền, thiết bị gửi và thiết bị nhận phải thiết lập kếtnối với nhau Quá trình này được gọi là trình tự bắt tay TCP và gồm có 3 bước chính:

BƯỚC 1: Gửi yêu cầu kết nối:

Thiết bị gửi gửi gói TCP (gói tin SYN) có cờ SYN được bật tới server

Ảnh 2.5 cấu trúc của 1 gói TCP

Cờ SYN cho biết rằng thiết bị gửi đang yêu cầu bắt đầu kết nối Gói này chứa địachỉ IP của Server nhằm xác định vị trí cũng như chứa số thứ tự ngẫu nhiên màthiết bị gửi sẽ sử dụng để đánh dấu các byte dữ liệu sẽ được truyền trong kết nối

8

Trang 10

Ảnh 2.6 Gói thông tin TCP (header TCP)

Cụ thể hơn, gói TCP trên có những thông tin cơ bản như:

Source Port = 1037: Cổng nguồn của gói TCP, được sử dụng để xác địnhứng dụng hoặc dịch vụ trên máy khách đã tạo ra gói tin

Destination Port = 139 (NBT Session): Cổng đích của gói TCP, được sửdụng để xác định ứng dụng hoặc dịch vụ trên máy chủ mà gói tin được gửiđến Cổng 139 thường được sử dụng cho dịch vụ NetBIOS Session Service.Flags = 0x02 ( S.): Cờ SYN được bật, cho biết rằng đây là gói TCP bắtđầu kết nối

Sequence Number = 8221822: Số thứ tự của gói TCP, được sử dụng để đảmbảo rằng các gói tin được nhận theo đúng thứ tự

Acknowledgement Number = 0: Số thứ tự xác nhận, được sử dụng để xácnhận việc nhận các gói tin trước đó Trong trường hợp này, số thứ tự xácnhận là 0 vì đây là gói TCP đầu tiên trong kết nối

Trang 11

Window = 8192: Kích thước cửa sổ, cho biết số lượng byte dữ liệu mà máykhách có thể nhận được mà không cần xác nhận.

Phần thông tin biểu diễn dạng máy ,…

Gói TCP sẽ được gửi bằng cách sử dụng Socket TCP gửi phần thông tin dưới dạngmáy (nơi cung cấp cách để giao tiếp giữa các ứng dụng) thông qua tầng giao vận(Transport Layer) của mô hình TCP/IP ,tầng giao vận chịu trách nhiệm đảm bảo rằng dữliệu được truyền đi một cách chính xác và tin cậy, tầng giao vận sử dụng các phươngpháp như kiểm soát lỗi, quản lý luồng dữ liệu, và quản lý kết nối để đảm bảo rằng dữ liệuđược truyền đi một cách chính xác và tin cậy Khi bắt đầu quá trình, Socket TCP sẽ đượctạo bằng cách sử dụng 1 hàm “socket()” trong API mạng

Ảnh 2.7 Hàm socket() trong thư viện Winsock

Nếu không có lỗi xảy ra, “socket()” sẽ trả về một bộ mô tả tham chiếu đến Socketmới Nếu không, giá trị INVALID_SOCKET sẽ được trả về Sau khi socket TCP đượctạo, ứng dụng có thể sử dụng nó để gửi và nhận các gói TCP Việc gửi gói cho client, ứngdụng sử dụng hàm “send()” với các tham số Socket: Socket được sử dụng để gửi góiTCP; Buffer: Vùng bộ nhớ chứa dữ liệu để gửi; Length: Số byte dữ liệu cần gửi; Flags:Các cờ tùy chọn

Ảnh 2.8 Hàm send() trong thư viện Winsock

Gần giống như hàm “socket()” ,nếu không xảy ra lỗi hàm “send()" trả về tổng số byte đãgửi, có thể nhỏ hơn số byte được yêu cầu gửi trong tham số len Nếu không, giá trịSOCKET_ERROR sẽ được trả về

Ví dụ, nếu ứng dụng muốn gửi 10 byte dữ liệu, thì hàm send() trả về 10 có nghĩa

là tất cả dữ liệu đã được gửi thành công Nếu hàm send() trả về một số nhỏ hơn 10, thì

10

Trang 12

ứng dụng biết rằng không phải tất cả dữ liệu đã được gửi thành công Trong trường hợpnày, ứng dụng có thể thực hiện các hành động thích hợp, chẳng hạn như thử gửi lại dữliệu bị lỗi.

Như vậy bằng cách sử dụng socket TCP client có thể gửi cho máy chủ gói thôngtin SYN, tại đó có cờ SYN được bật thể hiện đây là gói yêu cầu kết nối

Bảng 2.1 cấu trúc trường cờ TCP(Biểu diễn dưới dạng bit 0-1)Trong đó:

URG: Cờ URG được bật nếu dữ liệu trong gói TCP là dữ liệu khẩn cấp

ACK: Cờ ACK được bật nếu gói TCP là gói xác nhận

PSH: Cờ PSH được bật nếu gói TCP được sử dụng để đẩy dữ liệu lên ngăn xếp ứng dụngcủa máy nhận

RST: Cờ RST được bật nếu gói TCP được sử dụng để đặt lại kết nối TCP

SYN: Cờ SYN được bật nếu gói TCP là gói yêu cầu kết nối

FIN: Cờ FIN được bật nếu gói TCP là gói thông báo kết thúc kết nối

BƯỚC 2: Server nhận gói yêu cầu kết nối từ client và phản hồi bằng gói xác nhận Sau khi client gửi yêu cầu kết nối, Server nhận được các yêu cầu kết nối thông quacác cổng lắng nghe

11

Trang 13

Ảnh 2.9 Thông tin của cổng nguồn và cổng đích trong gói thông tin TCP (gói SYN)

Trong đó:

-Các cổng có số từ 0–1023 được gọi là cổng hệ thống hoặc cổng có sẵn; cổng có

số từ 1024-49151 được gọi là cổng người dùng hoặc cổng đã đăng ký, và cổng có số từ49152-65535 được gọi là cổng động, riêng tư hoặc cổng ngắn hạn

Ví dụ:

Một máy chủ web sẽ tạo một cổng lắng nghe trên cổng 80

Một máy chủ FTP sẽ tạo một cổng lắng nghe trên cổng 21

Một máy chủ SMTP sẽ tạo một cổng lắng nghe trên cổng 25

-Cổng lắng nghe được thực hiện bằng cách sử dụng một tiến trình gọi là serversocket Server socket là một đối tượng trong hệ điều hành chịu trách nhiệm lắng nghe cácyêu cầu kết nối từ các máy khách Khi một server muốn cung cấp một dịch vụ cho cácclient, Server sẽ tạo một server socket cho dịch vụ đó

-Tại đây Server sẽ tạo 1 đối tượng Server socket bằng cách gọi hàm “socket()”.Khi một socket được tạo ra, nó sẽ không được gắn với bất kỳ địa chỉ IP hoặc cổng nào.Điều này có nghĩa là socket đó không thể được sử dụng để giao tiếp với các máy tínhkhác bởi vậy hàm “bind()” sẽ được gọi nhằm mục đích gắn socket với một địa chỉ vàcổng Hàm bind() chuyển đổi địa chỉ IP và cổng sang định dạng struct sockaddr, cấu trúcstruct sockaddr là một cấu trúc dữ liệu được sử dụng để lưu trữ địa chỉ IP và cổng củamột máy tính Hàm “bind()” yêu cầu hệ điều hành liên kết socket với địa chỉ IP và cổng

cụ thể Hệ điều hành sẽ kiểm tra xem địa chỉ IP và cổng có đang được sử dụng bởi mộtsocket khác hay không Nếu không, hệ điều hành sẽ chấp nhận yêu cầu và liên kết socket

12

Trang 14

với địa chỉ IP và cổng cụ thể Ngược lại, hệ điều hành sẽ từ chối yêu cầu và trả về giá trịâm.

Sau khi hàm “socket()” tạo một đối tượng server socket mới Đối tượng này gồm haitham số:

+family: Loại địa chỉ IP mà server socket sẽ sử dụng Có thể là AF_INET choIPv4 hoặc AF_INET6 cho IPv6

+type: Loại socket mà server socket sẽ tạo Có thể là SOCK_STREAM cho giaothức TCP hoặc SOCK_DGRAM cho giao thức UDP

Ảnh 2.10 Hàm “bind()” trong thư viện Winsock

Bảng 2.2 sơ đồ tất cả trạng thái cổng socket

Sau khi Server socket mới gọi hàm “listen()” để đặt socket ở trạng thái listen , sẵn sàngnghe các yêu cầu từ máy khách và lưu trữ các yêu cầu kết nối trong một hàng đợi

13

Trang 15

Ảnh 2.11 Thuật toán “listen()”

Tiếp theo gọi hàm “accept()” để chấp nhận yêu cầu kết nối của máy khách, hàm này trả

về một đối tượng socket mới, gọi là socket kết nối (connected socket) Socket kết nối này

sẽ được sử dụng để giao tiếp trực tiếp giữa máy chủ và máy khách đó

Ảnh 2.12 Thuật toán của “accept()”

Cuối cùng, Server sẽ sử dụng các hàm “read()” và “write()” để đọc và ghi dữ liệu quasocket đã được tạo kết nối từ hàm “accept()” trên

Tùy vào hệ thống, Tầng TCP phía nhận sẽ phân tích header của gói tin TCP bằngcách kiểm tra trường Protocol trong header IP( Thông tin về trường Protocol trong headIP: https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers ) Nếu giá trị của trườngnày là giá trị của một giao thức vận chuyển mà tầng TCP hỗ trợ, thì tầng TCP sẽ tiếp tụcphân tích header của giao thức đó thông qua các bước:

① Đọc các byte của header TCP: Tầng TCP sẽ sử dụng các hàm đọc dữ liệu từ bộnhớ để đọc các byte của header TCP

② Kiểm tra giá trị của các byte: Tầng TCP sẽ kiểm tra giá trị của các byte trongheader TCP để xác định các thông tin quan trọng, chẳng hạn như cổng nguồn,cổng đích, số thứ tự, v.v

14

Trang 16

③ Xử lý các thông tin: Tầng TCP sẽ xử lý các thông tin được xác định từ headerTCP Ví dụ, nếu tầng TCP xác định rằng cờ SYN được bật, thì nó sẽ biết rằng đây

là một yêu cầu kết nối TCP mới

Qua đó tầng TCP xác định máy tính nguồn và máy tính đích, chịu trách nhiệm cho việckiểm tra cờ bên nhận và đặt lại cờ bên gửi đảm bảo rằng bắt tay 3 bước được thực hiệnmột cách chính xác và đáng tin cậy

Tiếp theo, Server kiểm tra cờ(flag) trong trường Flags của header TCP, byte thứnhất chứa các cờ điều khiển Máy chủ sẽ kiểm tra bit thứ hai của byte này Nếu bit nàyđược bật (có giá trị là 1), thì đó là cờ SYN (nếu cờ SYN không được bật, thì máy chủ sẽ

bỏ qua gói này) và server sẽ gửi lại 1 gói xác nhận về cho máy khách thông qua tầng giaovận như ở trên

Ảnh 2.13 Thông tin cổng đích và cổng nguồn trong gói xác nhận từ Server

Cụ thể, trong gói xác nhận sẽ chứa các trường:

15

Vị trí thông tin cờ

Ngày đăng: 02/05/2024, 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