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

Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)

55 539 5
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 đề Xây Dựng Ứng Dụng Chat Và Truyền Tệp Tin Qua Mạng Theo Mô Hình Khách/Chủ (Client Server)
Tác giả Nguyễn Thị Cao Bằng
Người hướng dẫn Thầy Lê Hồng Trang
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2010
Thành phố Vinh
Định dạng
Số trang 55
Dung lượng 474 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mọi chơng trình hay phần mềm của ngời dùng sẽ đợc lu trữ trên máy Server và cũng sẽ đợc thi hành bởi CPU của máy Server.Ưu điểm của công nghệ này nằm ở các điểm sau : Đối với ngời dùng T

Trang 1

Lời cảm ơn

Em xin chân thành cảm ơn đến các thầy giáo, cô giáo đã giảng dạy, trang bị cho em những kiến thức nền tảng trong thời gian qua Em xin chân

thành cảm ơn thầy Lê Hồng Trang đã hớng dẫn em thực hiện đồ án này.

Nhân đây con cũng xin cảm ơn bố mẹ và gia đình đã nuôi dạy con nên ngời, và luôn là chỗ dựa tinh thần vững chắc giúp con vợt qua mọi khó khăn thử thách trong cuộc sống

Em xin chân thành cảm ơn các anh chị thân hữu và các bạn đã tận tình

đóng góp ý kiến và giúp đỡ để mình có thể thực hiện tốt đồ án này

Vinh, tháng 5 năm 2010

Trang 2

Lời nói đầu

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hoá đợc xem

là một trong những yếu tố mang tính quyết định trong hoạt động của các tổ chức nhà nớc, cũng nh các công ty cổ phần Nó đóng vai trò hết sức quan trọng và có thể tạo ra những bớc phát triển mạnh mẽ Nhu cầu trao đổi thông tin của con ngời cũng rất lớn và thông qua nhiều hình thức khác nhau nh trao

đổi với nhau bằng th từ, điện thoại, mạng máy tính Với tốc độ phát triển của công nghệ thông tin hiện nay có nhiều phần mềm trao đổi thông tin trên mạng Internet đã ra đời và đợc sử dụng rộng rãi nh: Google Talk, Yahoo! Messenger, Skype, …

Bên cạnh đó, mạng LAN đã có nhiều tiến bộ vợt bậc và ngày càng phổ biến hơn trong đời sống sinh hoạt Điều này làm cho nhu cầu liên lạc và trao

đổi thông tin qua mạng LAN ngày càng lớn hơn Chính vì vậy chơng trình chat và truyền tệp tin qua mạng LAN đợc xây dựng để đáp ứng phần nào những nhu cầu cấp thiết đó

Nội dung đồ án đợc chia thành 7 chơng:

Chơng 1: Mở đầu giới thiệu về lý do, mục đích chọn đề tài, đối tợng và

Chơng 5: Giới thiệu các vấn đề liên quan tới th viện Net, đa ra các

ph-ơng thức, thuộc tính của các lớp cơ bản đợc sử dụng hỗ trợ lập trình

Trang 3

Chơng 6: Chơng trình ứng dụng Chat và truyền tệp tin Đa ra một số

hàm và giao diện khi thực hiện một số bớc của chơng trình

Chơng 7: Kết luận Tóm tắt chức năng đã xây dựng và đề ra hớng phát

triển cho tơng lai

Về nội dung và hình thức của bài toán không thể tránh khỏi những thiếu sót, em mong nhận đợc sự đóng góp ý kiến của thầy cô và các bạn Em xin chân thành cảm ơn

Trang 4

Chơng 1: Mở đầu 1.1 Lý do chọn đề tài

Hiện nay, mạng LAN đã có nhiều tiến bộ vợt bậc và ngày càng phổ biến hơn trong đời sống sinh hoạt Điều này làm cho nhu cầu liên lạc và trao

đổi thông tin qua mạng LAN ngày càng lớn hơn Chính vì vậy chơng trình chat và truyền tệp tin qua mạng LAN đợc xây dựng để đáp ứng phần nào những nhu cầu cấp thiết đó

1.2 Mục đích của đề tài

Xây dựng chơng trình chat và truyền tệp tin qua mạng LAN theo mô hình Client/ Server

1.3 Đối tợng và phạm vi nghiên cứu

1.3.1 Đối tợng nghiên cứu

Tìm hiểu cơ chế hoạt động của Socket trong NetFramwork từ đó viết ứng dụng chat và truyền tệp tin

1.3.2 Phạm vi nghiên cứu

Chơng trình chat và truyền tệp tin đợc xây dựng với khả năng chat bằng văn bản và truyền tệp tin giữa các user

Trang 5

Chơng 2 Mô Hình Khách/ Chủ (Client/ Server)

2.1 Mô hình

Mô hình đợc phổ biến nhất và đợc chấp nhận rộng rãi trong các hệ thống phân tán là mô hình Client/Server Trong mô hình này sẽ có một tập các tiến trình mà mỗi tiến trình đóng vai trò nh là một trình quản lý tài nguyên cho một tập hợp các tài nguyên cho trớc và một tập hợp các tiến trình client trong đó mỗi tiến trình thực hiện một tác vụ nào đó cần truy xuất tới tài nguyên phần cứng hoặc phần mềm dùng chung Bản thân các trình quản lý tài nguyên cần phải truy xuất tới các tài nguyên dùng chung đợc quản lý bởi một tiến trình khác, vì vậy một số tiến trình vừa là tiến trình client vừa là tiến trình Server Các tiến trình phát ra các yêu cầu tới các Server bất kỳ khi nào chúng cần truy xuất tới một trong các tài nguyên của các Server Nếu yêu cầu là

đúng đắn thì Server sẽ thực hiện hành động đợc yêu cầu và gửi một đáp ứng trả lời tới tiến trình Client

Mô hình Client/ Server cung cấp một cách tiếp cận tổng quát để chia sẻ tài nguyên trong các hệ thống phân tán Mô hình này có thể đợc cài đặt bằng rất nhiều môi trờng phần cứng và phần mềm khác nhau Các máy tính đợc sử dụng để chạy các tiến trình Client/ Server có nhiều kiểu khác nhau và không cần thiết phải phân biệt giữa chúng; cả tiến trình Client và tiến trình Server

đều có thể chạy trên cùng một máy tính Một tiến trình Server có thể sử dụng dịch vụ của một Server khác

Mô hình truyền tin Client/ Server hớng tới việc cung cấp dịch vụ Quá trình trao đổi dữ liệu bao gồm:

1 Truyền một yêu cầu từ tiến trình Client tới tiến trình Server

2 Yêu cầu đợc Server xử lý

3 Truyền đáp ứng cho Client

Trang 6

Mô hình truyền tin này liên quan đến việc truyền hai thông điệp và một dạng đồng bộ hóa cụ thể giữa Client và Server Tiến trình Server phải nhận thức đợc thông điệp đợc yêu cầu ở bớc một ngay khi nó đến và hành động phát ra yêu cầu trong Client phải đợc tạm dừng (bị phong tỏa) và buộc tiến trình Client ở trạng thái chờ cho tới khi nó nhận đợc đáp ứng do Server gửi về

ở bớc ba

Mô hình Client/ Server thờng đợc cài đặt dựa trên các thao tác cơ bản là gửi (send) và nhận (receive)

Hình 1 : Mô hình truyền tin Client/ Server

Quá trình giao tiếp Client và Server có thể diễn ra theo một trong hai chế

độ: bị phong tỏa (blocked) và không bị phong tỏa (non-blocked)

+ Chế độ bị phong tỏa (blocked):

Trang 7

Trong chế độ bị phong tỏa, khi tiến trình Client hoặc Server phát ra lệnh gửi dữ liệu (send), việc thực thi của tiến trình sẽ bị tạm ngừng cho tới khi tiến trình nhận phát ra lệnh nhận dữ liệu (receive).

Tơng tự đối với tiến trình nhận dữ liệu, nếu tiến trình nào đó (Client hoặc Server) phát ra lệnh nhận dữ liệu, mà tại thời điểm đó cha có dữ liệu gửi tới thì việc thực thi của tiến trình cũng sẽ bị tạm ngừng cho tới khi có dữ liệu gửi tới

+ Chế độ không bị phong tỏa (non-blocked):

Trong chế độ này, khi tiến trình Client hay Server phát ra lệnh gửi dữ liệu thực sự, việc thực thi của tiến trình vẫn đợc tiến hành mà không quan tâm

đến việc có tiến trình nào phát ra lệnh nhận dữ liệu đó hay không

Tơng tự cho trờng hợp nhận dữ liệu, khi tiến trình phát ra lệnh nhận dữ liệu, nó sẽ nhận dữ liệu hiện có, việc thực thi của tiến trình vẫn đợc tiến hành

mà không quan tâm đến việc có tiến trình nào phát ra lệnh gửi dữ liệu tiếp theo hay không

2.2 Các kiến trúc Client/ Server

2.2.1 Client/ Server hai tầng:

Kiến trúc Client/ Server đơn giản nhất là kiến trúc hai tầng Trong thực

tế hầu hết các kiến trúc Client/ Server là kiến trúc hai tầng Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng này truyền tin với tầng lu trữ dữ liệu tập trung Tầng trình diễn thông thờng là Client, và tầng lu trữ dữ liệu là Server

Hầu hết các ứng dụng Internet nh là Email, Telnet, FPT thậm chí là cả Web là các ứng dụng hai tầng Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng Client/ Server có xu thế sử dụng kiến trúc này.Trong bài tập của chúng ta cũng có thể sử dụng mô hình này trong quá trình truyền với một số chọn lọc phù hợp với ứng dụng của chúng ta

Trang 8

Trong ứng dụng hai tầng truyền thống, khối lợng công việc xử lý đợc dành cho phía Client trong khi Server chỉ đơn giản đóng vai trò nh là chơng trình kiểm soát luồng vào ra giữa ứng dụng và dữ liệu Kết quả là không chỉ hiệu năng của ứng dụng bị giảm đi do tài nguyên hạn chế của PC, mà khối l-ợng dữ liệu truyền đi trên mạng cũng tăng theo Khi toàn bộ ứng dụng đợc xử

lý trên một PC, ứng dụng bắt buộc phải yêu cầu nhiều dữ liệu trớc khi đa ra bất kỳ kết quả xử lý nào cho ngời dùng Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng Một vấn đề thờng gặp khác đối với ứng dụng hai tầng là vấn đề bảo trì Chỉ cần một thay đổi nhỏ đối với ứng dụng cũng cần phải thay

đổi lại toàn bộ ứng dụng Client và Server

Hình 2 : Mô hình Client/ Server hai tầng

2.2.2 Client/ Server ba tầng:

Ta có thể tránh đợc các vấn đề của kiến trúc Client/ Server hai tầng bằng cách mở rộng các kiến trúc ba tầng Một kiến trúc ba tầng có thêm một tầng mới tách biệt việc xử lý dữ liệu ở vị trí trung tâm

Trang 9

Hình 3 : Mô hình Client/ Server ba tầng

Theo kiến trúc ba tầng, một ứng dụng đợc chia thành ba tầng tách biệt nhau về mặt logic Tầng đầu tiên là tầng trình diễn thờng bao gồm các giao diện đồ họa Tầng thứ hai, còn đợc gọi là tầng trung gian hay tầng tác nghiệp Tầng thứ ba chứa dữ liệu cần cho ứng dụng Tầng thứ ba về cơ bản là chơng trình thực hiện các lời gọi hàm để tìm kiếm dữ liệu cần thiết Tầng trình diễn nhận dữ liệu và định dạng nó để hiển thị Sự tách biệt giữa chức năng xử lý với giao diện đã tạo nên sự linh hoạt cho việc thiết kế ứng dụng Nhiều giao diện ngời dùng đợc xây dựng và triển khai mà không làm thay đổi logic ứng dụng

Tầng thứ ba chứa dữ liệu cần thiết cho ứng dụng Dữ liệu này có thể bao gồm bất kỳ nguồn thông tin nào, bao gồm cơ sở dữ liệu nh Oracale, SQL Server hoặc tài liệu XML

2.2.3 Client/ Server n tầng

Kiến trúc n-tầng đợc chia thành các tầng nh sau:

+ Tầng giao diện ngời dùng: quản lý tơng tác của ngời dùng với ứng dụng

+ Tầng logic trình diễn: Xác định cách thức hiển thị giao diện ngời dùng

và các yêu cầu của ngời dùng đợc quản lý nh thế nào

+ Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác nghiệp,

+ Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứng dụng nh các thành phần (truyền thông điệp, hỗ trợ giao tác)

Trang 10

2.3 Tiến trình xử lý

Trong mô hình khách chủ, ngoài hệ thống mạng máy tính phải có còn

đòi hỏi việc tổ chức các xử lý bên dới sao cho hiệu quả, đảm bảo các yêu cầu (request) từ các máy trạm phải đợc máy chủ phúc đáp (response) một cách nhanh chóng, không làm tắc nghẽn hệ thống Khi thiết kế các ứng dụng theo mô hình khách chủ, ngời ta chia các xử lý ra làm hai nhánh: nhánh máy trạm

và nhánh máy chủ

2.3.1 Nhánh máy trạm (Client side)

Các ứng dụng sẽ thực hiện các công việc đọc và hiển thị dữ liệu hiện có bên trong cơ sở dữ liệu, tính toán dữ liệu đang hiển thị trên các màn hình ứng dụng, in dữ liệu ra

Các ngôn ngữ dùng để xây dựng ứng dụng là Delphi, Visual Basic, C++, C# Các ứng dụng này còn cho phép ng… ời dùng có thể thực hiện các thao tác xóa, thêm, sửa dữ liệu hiện có bên trong cơ sở dữ liệu bên nhánh máy chủ

Các ứng dụng khi xây dựng nên tránh việc đọc toàn bộ dữ liệu của bảng (Table) khi truy xuất dữ liệu từ máy chủ mà chỉ nên lấy về đúng các thong tin cần thiết cho các xử lý Việc này làm giảm đi lợng thông tin lu thông trên mạng

2.3.2 Nhánh máy chủ (Server side)

Các xử lý đợc thực hiện trực tiếp trên máy chủ Để đảm bảo việc bảo mật (security), những ngời dùng trên mạng phải đợc cấp phát quyền truy cập thì mới có thể truy xuất đợc các dữ liệu dùng chung

Việc cập nhật dữ liệu cho phép đồng thời cùng lúc giữa những ngời dùng hiện hành trên mạng, ví dụ nh máy chủ cho phép cùng lúc cả hai ngời dùng có thể cập nhật thông tin của khách hàng trong bảng khách hàng

Việc sao lu dữ liệu (backup data) đợc tự động để đảm bảo dữ liệu không bị mất trong các trờng hợp xấu xảy ra

Trang 11

2.4 Ưu điểm của mô hình Client/ Server:

2.4.1 Phát triển để giảm chi phí

Trong môi trờng cạnh tranh mạnh mẽ nh ngày nay, giảm chi phí đầu t nhng đảm bảo đợc hiệu quả công việc là một trong những yếu tố quan tâm hàng đầu của các nhà kinh doanh Mặt khác, đầu t cho một môi trờng công nghệ thông tin (cả phần mềm lẫn phần cứng) là không thể thiếu đối với mọi doanh nghiệp ngày nay, đặc biệt là các doanh nghiệp có quy mô từ trung bình

đến lớn

Về vấn đề này, các nhà quản lý doanh nghiệp luôn phải đối diện với một mâu thuẫn Để đảm bảo hiệu quả, mọi nhân viên của công ty (hay phần lớn nhân viên) phải đợc trang bị một máy tính riêng của mình Các máy tính này phải

đủ mạnh và tơng đối đồng bộ với nhau về phần cứng lẫn phần mềm Tuy nhiên, việc trang bị cho mỗi nhân viên một máy tính với cấu hình (phần cứng lẫn phần mềm) đồng bộ đòi hỏi một chi phí đầu t khá lớn Đó là cha kể đến vấn đề bảo trì Bảo trì một hệ thống máy tính đợc nối mạng thờng phức tạp và tốn rất nhiều thời gian và tiền bạc (thông thờng, các doanh nghiệp phải duy trì một đội ngũ bảo trì hoạt động thờng xuyên)

2.4.2 Mô hình Thin/ Client

Ngày nay, các doanh nghiệp thờng sử dụng rộng rãi mô hình Client/ Server Trong mô hình này, tất cả máy tính để bàn của các nhân viên (gọi là máy Client) sẽ đợc kết nối vào một máy tính trung tâm (máy Server) Máy Server sẽ đóng vai trò nh một kho tài nguyên phục vụ cho tất cả các máy Client nối vào nó Các tài nguyên này thờng là dữ liệu, các thiết bị phần cứng

Trang 12

cũng đều thấy mỗi máy tính của các nhân viên đều có cài đặt Microsoft Windows, Microsoft Word, Microsoft Excel, các chơng trình nghe nhạc, xem phim, …

Để cài đặt toàn bộ hệ thống gồm có 100 máy tính của một công ty Những nhân viên phụ trách (ở Việt Nam thờng gọi là admin) phải cài đặt 100 lần giống hệt nhau ở mỗi máy tính Và để bảo trì, họ cũng phải tiến hành bảo trì từng máy tính một Bạn thử nghĩ xem, nếu 100 máy tính này đặt ở nhiều phòng ban khác nhau, thậm chí ở những tầng khác nhau của một tòa nhà thì công tác cập nhật sẽ khó khăn đến mức nào? Đa số các nhân viên đều không phải là ngời thành thạo máy tính, nên đối với họ, việc cài đặt hoặc xử lý các hỏng hóc của máy tính là việc rất khó khăn Một trong những phản ứng tự nhiên của các nhân viên là “xin lỗi, cho phép tôi gặp quản trị!” Và điều này

đã làm cho công tác quản trị đối với các doanh nghiệp và đặc biệt là các thành viên quản trị

Để giải quyết vấn đề “phân tán” này Ngời ta đã nghĩ ra một giải pháp tơng đối đơn giản Đó là đặt tất cả các tập tin chơng trình lẫn dữ liệu của phần mềm lên máy Server Khi muốn sử dụng phần mềm thì máy Client sẽ tải ch-

ơng trình (và dữ liệu) xuống máy Client và sau đó, chơng trình (hoặc dữ liệu) này sẽ đợc thi hành bằng CPU của máy Client

Tuy nhiên, giải pháp này sẽ ảnh hởng đến sở thích cá nhân của mỗi nhân viên Các nhân viên thờng muốn mỗi phần mềm có một bề ngoài riêng (nh các Wall-Paper hoặc Screen Saver trên môi trờng Windows, hoặc các skin của WinAmp, ).…

Nh vậy, làm sao có thể quản trị tập trung hệ thống máy tính mà vẫn

đảm bảo đợc tính riêng t của từng dùng?

Đến đây, ngời ta đã đa ra công nghệ Thin-Client Thin-Client có nghĩa

là “máy tính của ngời dùng có cấu hình tối thiểu” Công nghệ Thin-Client

t-ơng tự nh công nghệ Client/ Server, điểm khác duy nhất và cũng quan trọng nhất là tất cả

Trang 13

năng lực xử lý lẫn lu trữ của toàn bộ mạng máy tính đều tập trung vào máy Server Mọi máy Client đều chỉ còn một màn hình, bàn phím và chuột Mọi chơng trình hay phần mềm của ngời dùng sẽ đợc lu trữ trên máy Server và cũng sẽ đợc thi hành bởi CPU của máy Server.

Ưu điểm của công nghệ này nằm ở các điểm sau :

Đối với ngời dùng

Thực hiện: cắm máy tính của mình vào mạng, mở màn hình lên, tiến

hành một số thủ tục đơn giản để đăng ký cấu hình cho “máy tính” của mình (thông thờng là thao tác chọn một dòng trong một danh sách) Môi trờng Windows cùng với các phần mềm Office quen thuộc sẽ ngay lập tức xuất hiện trên màn hình sẵn sàng chờ lệnh chúng ta mà không cần phải trải qua hàng giờ liền ngồi cài đặt máy tính

Tính bảo mật cao hơn (vì toàn bộ thao tác đều đợc kiểm soát chặt chẽ bởi Server) Những kẻ xâm nhập trái phép sẽ hầu nh không có cơ hội tìm kiếm các thông tin quan trọng đợc lu trữ trên các máy ngời dùng nh trớc kia Bây giờ, những kẻ xâm nhập muốn tìm kiếm thông tin đều phải đối diện với một khó khăn cực lớn là xâm nhập vào các máy Server - vốn đã đợc bảo vệ cực kỳ nghiêm ngặt so với các máy tính của ngời dùng Nguy cơ bị nhiễm virus vào các “máy tính” Client gần nh là không có

Đối với chủ doanh nghiệp

Chi phí thấp hơn: vì chỉ cần mua một máy chủ mà thay vì phải mua

100 máy con Cho phép sử dụng một đội ngũ quản trị với ít ngời hơn Hơn nữa, việc tiêu thụ điện sẽ thấp hơn rất nhiều Ngời ta ớc tính rằng công nghệ này có khả năng giúp doanh nghiệp tiết kiệm đến 80% chi phí đầu t cho CNTT

Dễ dàng quản trị: chỉ cần cài đặt phần mềm một lần, hơn nữa chi phí

mua phần mềm cũng rẻ hơn (mua 100 phần mềm riêng lẻ sẽ mắc hơn rất nhiều khi mua một phần mềm cho 100 ngời dùng) Việc bảo trì thiết bị và xử

lý sự cố cũng đơn giản hơn (vì chỉ cần bảo trì máy Server thay vì phải bảo trì

100 máy con!)

Trang 14

Rất tiện lợi khi nâng cấp: chỉ cần nâng cấp một máy Server thay vì

phải nâng cấp riêng từng máy

Tiết kiệm đợc không gian lu trữ: thay vì mỗi máy tính phải lu trữ một

bản sao của phần mềm thì chỉ cần lu một bản sao duy nhất trên Server

Bảo vệ trớc sự xâm nhập của virus: mọi hoạt động của mạng đều có thể đợc theo dõi và giám sát tập trung để ngăn chặn ngay từ đầu nguy cơ bị phá hoại bởi các loại virus (thay vì trớc kia phải khuyến cáo mỗi ngời dùng phải tự cài

đặt các phần mềm chống virus và có trách nhiệm đối với việc bảo vệ máy tính của mình) Ngời dùng không có quyền tự ý download và cài đặt những phần mềm nguy hiểm

Cho đến nay, vị trí của công nghệ Thin-Client gần nh đã đợc khẳng định Với một chi phí đầu t thấp hơn rất nhiều, công nghệ Thin-Client có thể hoàn toàn thay thế đợc cho mô hình truyền thống mà vẫn đảm bảo đợc năng lực lẫn tính hiệu quả của hệ thống

Tơng lai của thin client:

Vai trò của Thin-Client đối với môi trờng doanh nghiệp đã rõ ràng Liệu trong tơng lai, Thin-Client có thể là công nghệ chủ lực đối với việc truy cập từ xa hay không?

Khi ngời dùng bắt đầu làm việc với công nghệ “Thin”, họ đã nhanh chóng cảm nhận đợc sự tiện lợi của nó Cho dù ngời dùng đang ở bất kỳ đâu, trong văn phòng làm việc của công ty, trong một đại lý ở xa của công ty hoặc thậm chí ở cả phi trờng, chỉ cần một sử dụng phần mềm giả lập của Thin-Client chạy trên một máy tính xách tay, toàn bộ môi trờng quen thuộc và ổn định của mạng LAN sẽ xuất hiện trở ngay trớc mắt ngời dùng cho phép họ truy xuất vào toàn bộ kho dữ liệu, sử dụng các ứng dụng, kết nối Internet tốc độ cao với

đầy đủ dịch vụ (e-mail, www, ).…

2.4.3 Tốc độ nhanh

Giảm việc tắc nghẽn thông tin trong hệ thống mạng do phân chia các

xử lý ra thành 2 nhánh Các xử lý nào phức tạp tác động nhiều lên cơ sở dữ liệu sẽ đợc lu

Trang 15

trữ ngay trên máy chủ, các xử lý đơn giản sẽ đợc thực hiện ngay trong ứng dụng trên máy trạm Chính vì thế hệ thống vận hành sẽ hiệu quả hơn.

2.4.4 Tính tơng thích cao

Việc chọn lực các phần mềm để phát triển ứng dụng có thể hòan toàn

độc lập từ ngôn ngữ lập trình đến hệ cơ sở dữ liệu quan hệ và các thiết bị phần cứng Bạn có thể chọn các thành phần tối u nhất khi xây dựng một hệ thống ứng dụng

2.5 Mô hình truyền tin Socket

Đây mô hình và cũng là các bớc ta cần đặc biệt quan tâm trong quá trình tạo ứng dụng của chúng ta Nó cung cấp cho ta quá trình trao đổi thông tin và dữ liệu giữa các thành phần trong mô hình Client/ Server Mô hình này cung cấp cho ta các thực thể và trình tự để ta có thẻ xây dựng ứng dụng Khi lập trình ta có thể tuân theo trình tự sau đây để tạo ứng dụng

Hình 4: Mô hình truyền tin Socket

Khi lập trình ngời ta thờng quan tâm đến chế độ bị phong toả vì nó có thể dẫn đến tình huống một tiến trình nào đó sẽ rơi vào vòng lặp vô hạn của quá trình gửi hoặc nhận

Trang 16

2.5.1 Giới thiệu và khái niệm

Socket là giao diện lập trình ứng dụng(API-Application Programming

Interface), đợc giới thiệu lần đầu tiên trong ấn bản UNIX-BSD 4.2 dới dạng các hàm hệ thống theo cú pháp ngôn ngữ C (socket(), bind(), connect(), send(), receive(), read(), write(), close(), ).…

Ngày nay, socket hỗ trợ hầu hết các hệ điều hành nh MS Windows, Linux và

đợc sử dụng trong nhiều ngôn ngữ lập trình khác nhau nh: C, C#, C++, Java, visual basic, Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh…

đợc đánh dấu bởi hai cổng(port), thông qua các cổng này một quá trình có thể nhận và gửi dữ liệu với các quá trình khác nhau

2.5.2 Nguyên lý hoạt động

Trớc hết chúng ta hãy xem làm thế nào các socket có thể xác định đựợc nhau

Khi một chơng trình tạo ra một socket, một định danh dạng số sẽ đợc gán cho socket, định danh này chính là cổng mà chúng ta đã tìm hiểu ở trên Việc gán số cổng này cho socket có thể đợc thực hiện bởi chơng trình hoặc bởi hệ điều hành tùy theo cách socket đợc sử dụng nh thế nào Trong mỗi gói tin mà socket gửi đi có chứa hai thông tin để xác định đích đến của gói tin:+ Một địa chỉ mạng để xác định hệ thống sẽ nhận gói tin

+ Một số định danh cổng để nói cho hệ thống đích biết socket nào trên nó

sẽ nhận dữ liệu

Nhờ hai thông tin này mà gói tin có thể đến đợc đúng máy tính chứa socket mà nó cần đến (nhờ địa chỉ mạng) và đợc phân phối đến đúng socket

đích ( nhờ địa chỉ cổng của socket đích)

Bởi dới góc độ lập trình các socket thờng làm việc theo cặp, một socket

đóng vai trò làm Client còn các socket khác đóng vai trò nh một Server Socket phía Server xác định một cổng cho giao tiếp mạng, sau đó chờ nghe dữ liệu mà Client gửi tới nó bằng Client socket Do đó các cổng cho Server socket phải đợc biết bởi các chơng trình Client Ví dụ Server FTP sử dụng một socket để nghe tại cổng 21 do đó nếu một chơng trình Client muốn giao tiếp với Server FTP nó cần phải kết nối đến socket đang nghe tại cổng 21

Trang 17

Nh vậy cổng của socket phía Server đợc xác định bởi chơng trình, ngợc lại cổng cho Client socket đợc xác định bởi hệ điều hành Khi một socket phía client gửi một gói tin tới socket phía Server thì trong gói tin đã có chứa thông tin về địa chỉ của hệ thống Client và cổng của socket phía Client nên Server hoàn toàn có thể gửi thông tin phản hồi cho Client

Chúng ta có thể khái quát quá trình trao đổi dữ liệu thông qua các socket nh sau:

1 Chơng trình phía Server tạo ra một socket, socket này đợc chơng trình gắn với một cổng trên Server Sau khi đựợc tạo ra socket này ( mà từ nay ta sẽ gọi là socket phía Server) sẽ chờ nghe yêu cầu từ phía Client

2 Khi chơng trình phía Client cần kết nối với một Server, nó cũng tạo ra một socket, socket này cũng đợc hệ điều hành gắn với một cổng Chơng trình Client sẽ cung cấp cho socket của nó ( mà từ nay ta sẽ gọi là socket phía Client) điạ chỉ mạng và cổng của socket phía Server và yêu cầu thực hiện kết nối ( nếu chơng trình định sử dụng giao thức hớng kết nối) hoặc truyền dữ liệu ( nếu chơng trình sử dụng giao thức không hớng kết nối)

3 Chơng trình phía Server và chơng trình phía Client trao đổi dữ liệu với nhau bằng cách đọc từ socket hoặc ghi vào socket của minh Các socket ở hai phía nhận dữ liệu từ ứng dụng và đóng gói để gửi đi hoặc nhận các dữ liệu đợc gửi đến và chuyển cho chơng trình ứng dụng bởi socket ở cả hai phía đều biết

đợc địa chỉ mạng và điạ chỉ cổng của nhau

Bớc thứ hai chúng ta thấy chơng trình ứng dụng phải lựa chọn giao thức mà nó

Phía Server: Khi một ứng dụng trên Server hoạt động nó sẽ tạo ra một

socket và đăng ký với Server một cổng ứng dụng và chờ đợi yêu cầu kết nối từ

Trang 18

phía Client qua cổng này.

Hình 5 : Client gửi yêu cầu đến Server

Phía client: Nó biết địa chỉ của máy trên đó Server đang chạy và cổng

và Server đang chờ nghe yêu cầu Do đó khi muốn kết nối đến Server, nó cũng tạo ra một socket chứa địa chỉ máy Client và cổng của ứng dụng trên máy Client đồng thời Client sẽ cung cấp cho socket của nó địa chỉ và cổng của Server mà nó cần kết nối và yêu cầu socket thực hiện kết nối

Khi Server nhận đợc yêu cầu kết nối từ Client, nếu nó chấp nhận thì Server sẽ sinh ra một socket mới đợc gắn với một cổng khác với cổng mà nó đang nghe yêu cầu Sở dĩ Server làm nh vậy bởi nó cần cổng cũ để tiếp tục nghe yêu cầu

từ phía Client trong khi vẫn cần một kết nối với Client

Hình 6: Server chấp nhận yêu cầu và tạo một socket để phục vụ Client

Sau đó chơng trình ứng dụng phía Server sẽ gửi thông báo chấp nhận kết nối cho Client cùng thông tin về địa chỉ cổng mới của socket mà nó dành cho Client

Quay lại phía Client, nếu kết nối đợc chấp nhận nghĩa là socket của nó đã đợc tạo ra thành công và nó có thể sử dụng socket để giao tiếp với Server bằng cách viết và ghi tới socket theo cách giao tiếp với một tài nguyên trên máy tính thông thờng

Trang 19

2.5.4 Một số hàm và thuộc tính trong Socket.

• Accept(): Chấp nhận một kết nối vào socket

• Bind(): Gán tên định danh cho socket

• Close(): Đóng một kết nối socket

• Connect(): Khởi tạo một kết nối tới một socket

• Listen(): Mở một socket trên cổng để đợi một kết nối tới

• Create(): Tạo một socket (đầu cuối cho giao tiếp)

• GetSocketoption(): Đa các tuỳ chọn cho socket

• Receive(): Nhận dữ liệu từ một kết nối socket

• Recvfrom: Nhận dữ liệu từ một socket có định hớng không

• Send(): Gửi dữ liệu từ một kết nối socket

• SendTo(): Gửi tin nhắn tới một socket thông báo nó đã kết nối

đ-ợc hay cha

2.6 Các cổng hớng kết nối

Port có thể gọi là một cổng kết nối cho mạng thông tin, mạng Internet

Cổng kết nối có thể là một cổng thực, vật lý, ví dụ nh là trong máy tính

có cổng kết nối dây chuyền (serial port) COM1, cổng kết nối song song (parallel port) LPT1 cho máy in, cổng USB, cổng qua card mạng, Tuy nhiên trong lý thuyết mạng, cổng kết nối có thể là khái niệm trừu tợng, đánh

số từ 0 đến 65535, đợc dùng trong các lớp phần mềm (không vật lý), ví dụ cổng kết nối 8080 cho Web Browser, cổng kết nối 80 cho Web Server, Lý…

do ngời ta phát minh ra cái khái niệm trừu tợng này là vì có thể có nhiều ứng dụng cùng dùng chung một cổng vật lý, ví dụ có nhiều ứng dụng dùng cổng card mạng: email, browser, Để tránh nhầm lẫn với nhau, mỗi ứng dụng…phải dùng riêng ổ kết nối (socket), dùng riêng giao thức (protocol)

Một Client có thể chạy nhiều dịch vụ trên mạng với giao thức TCP/IP

sẽ liên kết với các port( cổng) ở lớp vận chuyển với một ứng dụng tơng ứng

Số thứ tự của port đợc sử dụng để phân biệt giữa nhiều cuộc kết nối với nhau

Trang 20

tại cùng một thời điểm trên mạng Chỉ số port đặc biệt cần thiết khi host thực hiện liên lạc với một Server chạy nhiều dịch vụ đồng thời

Số port đợc phân ra thành 3 phần nh sau:

+ Chỉ số port dới 255 dành cho các ứng dụng công cộng

+ Chỉ số port từ 255 đến 1023 cung cấp cho các ứng dụng đợc mua bán trên thị trờng của các công ty

Ví dụ: Để dễ hiểu ta có thể liên tởng hai máy tính đợc kết nối với nhau nh hai

thí sinh trong phòng thi, A và B đang thi lại môn chế tạo bom chẳng hạn Tất nhiên là B không biết khoản này nên sẽ tìm cách kết nối với A để hỏi bài Khi

đó có thể coi B nh là chơng trình bên phía Client và A chạy bên phía Server

Cụ thể B (Client) khi

bí câu nào sẽ gửi thông điệp (bằng cách đa cho mảnh giấy chẳng hạn) đến A (Server) A sau khi nghiên cứu sẽ chép câu trả lời vào giấy và chuyển cho B

Trong mạng máy tính khi hai máy tính kết nối với nhau theo giao thức TCP, chúng sẽ giao tiếp với nhau bằng cách gửi và nhận thông tin qua socket

Nh trong ví dụ trên thì socket chính là mảnh giấy, Client và Server giao tiếp với nhau bằng cách ghi và đọc với mảnh giấy

Tiếp tục với ví dụ trên, trớc khi chuyển bài chắc chắn B và A sẽ phải quy ớc với nhau là sẽ chuyển giấy xuống dới chân cho khỏi bị phát hiện Và

Trang 21

A sẽ luôn phải chờ B chuyển giấy (giả sử là A làm xong bài rồi) Sau khi đọc yêu cầu, A sẽ phải tìm tờ giấy ghi bài làm vào rồi chuyển cho B.

Trong mạng máy tính cũng vậy, thông thờng mỗi socket gắn với một cổng (port) nhất định và phía Server luôn lắng nghe (listen) và đợi đến khi socket từ phía Client gửi đến Sau khi nhận, Sever sẽ tạo mới socket và gửi về Client Và dĩ nhiên là thông tin đợc đọc và ghi lên socket

Chơng 3: Giao thức TCP/IP 3.1 Địa chỉ IP

Trang 22

Mỗi địa chỉ IP có độ dài 32 bits (đối với IP4) đợc tách thành 4 vùng, mỗi vùng 1byte, có thể đợc biểu thị dới dạng thập phân, thập lục phân hoặc nhị phân Cách viết phổ biến thất là dùng kí pháp thập phân có dấu chấm để tách giữa các vùng Địa chỉ IP là để định danh duy nhất cho một host bất kì trên mạng.

3.2 Định tuyến IP

Có hai loại định tuyến :

+ Định tuyến trực tiếp : Là việc xác định đờng nối giữa hai trạm làm việc trong cùng một mạng vật lý

+ Định tuyến không trực tiếp: Là việc xác định đờng nối giữa hai trạm làm việc không cùng nằm trong cùng một mạng vật lý do

đó việc truyền tin giữa chúng phải thông qua các trạm trung gian

là các cổng ra vào (Gateway)

Để kiểm tra xem trạm đích có nằm trên cùng mạng với mạng nguồn hay không, ngời gửi phải tách lấy phần địa chỉ mạng trong phần địa chỉ IP Nếu hai địa chỉ này có địa chỉ mạng giống nhau thì gói thông tin (Datagram)

sẽ đợc truyền đi trực tiếp, ngợc lại phải xác định một cổng ra vào này chuyển tiếp gói dữ liệu

+ Nếu địa chỉ IP đích là địa chỉ của một trạm nằm trên cùng một mạng IP với trạm nguồn thì các gói dữ liệu sẽ đợc chuyển thẳng tới đích

+ Nếu địa chỉ IP đích không nằm trên cùng một mạng với máy nguồn thì các gói dữ liệu sẽ đợc gửi đến một máy trung chuyển, IP gateway để chuyển tiếp IP gateway là một thiết bị mạng IP đảm nhận việc lu chuyển các gói dữ liệu IP giữa hai mạng có IP khác nhau

3.3 Giao thức TCP/ IP

TCP(Transmission Control Protocol) là giao thức có liên kết (connection oriented) nghĩa là cần thiết lập liên kết logic, giữa một cặp thực thể TCP trớc khi chúng trao đổi giữ liệu với nhau

Trang 23

TCP cung cấp khả năng truyền dữ liệu một cách an toàn trong các máy của một hệ thống mạng Nó cung cấp thêm các chức năng nhằm kiểm tra tính chính xác của dữ liệu khi đến và bao gồm cả việc gửi lại dữ liệu khi có lỗi xảy ra.

TCP cung cấp các chức năng chính sau:

+ Thiết lập, duy trì, kết thúc liên kết giữa hai quá trình

+ Phân phát gói tin một cách tin cậy

+ Đánh số thứ tự các gói dữ liệu nhằm truyền dữ liệu một cách tin cậy

+ Cho phép điều khiển lỗi

+ Cung cấp khả năng đa kết nối với các quá trình khác nhau giữa trạm nguồn và trạm đích nhất định thông qua việc sử dụng cổng.+ Truyền dữ liệu sử dụng cơ chế song công( full- duplex)

IP "chấp nhận" các gói dữ liệu từ các giao thức TCP và UDP, nó "cộng " thêm các "thông tin tiêu đề (header) của riêng nó và "chuyển giao" thông tin cho bộ phần truyền dữ liệu

TCP là giao thức hớng kết nối, nó cung cấp một đờng truyền dữ liệu tin cậy giữa hai máy tính.Tính tin cậy thể hiện ở việc đảm bảo dữ liệu đợc gửi sẽ

đến đợc đích và theo đúng thứ tự nh khi đợc gửi

Tính tin cậy của đờng truyền đợc thể hiện ở hai đặc điểm sau:

Mọi gói tin cần gửi sẽ đến đợc đích Để làm điều này thì mỗi lần phía gửi gửi xong một gói tin nó sẽ chờ nhận một xác nhận từ bên nhận rằng đã nhận đợc gói tin Nếu sau một khoảng thời gian mà phía gửi không nhận đợc thông tin xác nhận phản hồi thì nó sẽ phát lại gói tin.Việc phát lại sẽ đợc tiến hành cho đến khi việc truyền tin thành công, tuy nhiên sau một số lần phát lại mã nào đó mà vẫn cha thành công thì phía gửi có thể suy ra là không thể truyền tin đợc và sẽ dừng việc phát tin

Các gói tin sẽ đợc trình ứng dụng nhận đợc theo đúng thứ tự nh chúng

đợc gửi Bởi các gói tin có thể đợc dẫn đi trên mạng theo nhiều con đờng khác

Trang 24

nhau trớc khi tới đích nên thứ tự khi tới đích của chúng có thể không giống nh khi chúng đợc phát Do đó để đảm bảo có thể sắp xếp lại các gói tin ở phía nhận theo đúng thứ tự nh khi chúng đợc gửi, giao thức TCP sẽ gắn vào mỗi gói tin một thông tin cho biết thứ tự của chúng trong cả khối tin chung đợc phát nhờ vậy bên nhận có thể sắp xếp lại các gói tin theo đúng thứ tự của chúng.

Nh vậy có thể thấy TCP cung cấp cho chúng ta một kênh truyền thông điểm -

điểm phục vụ cho các ứng dụng đòi hỏi giao tiếp tin cậy nh HTTP ( HyperText Tranfer Protocol), FTP ( File Tranfer Protocol), Telnet Các…ứng dụng này đòi hỏi một kênh giao tiếp tin cậy bởi thứ tự của dữ liệu đợc gửi và nhận là yếu tố quyết định đến sự thành công hay thất bại của chúng Hãy lấy ví dụng khi HTTP đợc sử dụng để đọc thông tin từ một điạ chỉ URL, dữ liệu phải đợc nhận theo đúng thứ tự mà chúng đợc gửi nếu không thứ mà bạn nhận đợc có thể là một trang HTML với nội dung lộn xộn hoặc một file zip bị lỗi và không thể giải nén

3.4 Thiết lập và kết nối TCP/IP

Mô hình kết nối Tcp Client và Server nh sau:

Trang 26

trình trạm trong trờng hợp số tuần tự thu để báo rằng thực thể dịch vụ đã nhận đợc giá trị ISN của tiến trình trạm.

• Bớc 3:

Tiến trình trạm trả lời lại gói SYN của thực thể dịch vụ bằng một thông báo ACK cuối cùng Bằng cách này các thực thể TCP trao đổi một cách tin cậy các giá trị ISN của nhau và có thể bắt đầu trao đổi dữ liệu Không có thông

điệp nào trong ba bớc trên chứa bất kì dữ liệu gì, tất cả thông tin trao đổi đều nằm trong phần tiêu đề của thông điệp TCP

• Kết thúc nối:

Khi có nhu cầu kết thúc nối thực thể TCP ta thực hiện nh ví dụ sau:

A gửi yêu cầu kết thúc kết nối với FIN=1 Vì kết nối TCP là song công nên mặc dù nhận đợc yêu cầu kết thúc kết nối của A (A thông báo hết số liệu gửi) thực thể B vẫn có thể truyền số liệu cho đến khi B không còn số liệu để gửi và thông báo cho A bằng yêu cầu kết thúc kết nối với FIN=1 của mình Khi thực thể TCP đã nhận đợc thông điệp FIN và sau khi đã gửi thông điệp FIN của chính mình, kết nối TCP thực sự kết thúc

Trang 27

Chơng 4: Giao Thức FTP

4.1 Giới thiệu

File Transfer thờng đợc dùng để trao đổi tập tin qua mạng lới truyền

thông dùng giao thức TCP/IP (chẳng hạn nh Internet - mạng ngoại bộ - hoặc

Vì giao thức FTP là một giao thức chuẩn công khai, cho nên bất cứ một

công ty phần mềm nào, hay một lập trình viên nào cũng có thể viết trình chủ FTP hoặc trình khách FTP

Hầu nh bất cứ một nền tảng hệ điều hành máy tính nào cũng hỗ trợ giao thức FTP Điều này cho phép tất cả các máy tính kết nối với một mạng lới có nền TCP/IP, xử lý tập tin trên một máy tính khác trên cùng một mạng lới với mình, bất kể máy tính ấy dùng hệ điều hành nào (nếu các máy tính ấy đều cho phép sự truy cập của các máy tính khác, dùng giao thức FTP)

4.3 Cơ chế hoạt động

Ngày đăng: 27/12/2013, 20:42

HÌNH ẢNH LIÊN QUAN

Hình 1 : Mô hình truyền tin Client/ Server - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 1 Mô hình truyền tin Client/ Server (Trang 6)
Hình 2 : . Mô hình Client/ Server hai tầng - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 2 . Mô hình Client/ Server hai tầng (Trang 8)
Hình 3 : . Mô hình Client/ Server ba tầng - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 3 . Mô hình Client/ Server ba tầng (Trang 9)
Hình 4: Mô hình truyền tin Socket - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 4 Mô hình truyền tin Socket (Trang 15)
Hình 5 : Client gửi yêu cầu đến Server - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 5 Client gửi yêu cầu đến Server (Trang 18)
Hình 6: Server chấp nhận yêu cầu và tạo một socket để phục vụ Client - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 6 Server chấp nhận yêu cầu và tạo một socket để phục vụ Client (Trang 18)
Hình 7: Mô hình địa chỉ IP và Port - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 7 Mô hình địa chỉ IP và Port (Trang 31)
Hình 7: Sơ đồ tổng quát chơng trình dùng giao thức TCP/IP - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 7 Sơ đồ tổng quát chơng trình dùng giao thức TCP/IP (Trang 46)
Hình 8: Sơ đồ chi tiết thứ tự quá trình kết nối và truyền tệp tin - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 8 Sơ đồ chi tiết thứ tự quá trình kết nối và truyền tệp tin (Trang 47)
Hình 9: Mô hình Server khi cha có Client nào kết nối tới - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 9 Mô hình Server khi cha có Client nào kết nối tới (Trang 48)
Hình 10: Mô hình Server khi có Client tham gia kết nối - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 10 Mô hình Server khi có Client tham gia kết nối (Trang 50)
Hình 13: Mô hình gửi tệp tin - Xây dựng ứng dụng chat và truyền tệp tin qua mạng theo mô hình kháchchủ (client server)
Hình 13 Mô hình gửi tệp tin (Trang 53)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w