MỤC LỤC LỜI NÓI ĐẦU 3 PHẦN I: CƠ SỞ LÝ THUYẾT 4 1. Hệ phân tán (Distributed System): 4 a. Giới thiệu: 4 b. Mục tiêu của hệ phân tán: 5 c. Nguyên tắc xây dựng hệ phân tán: 5 2. Các mô hình hệ phân tán và ứng dụng mạng: 6 2.1 Các lớp phần mềm: 6 2.2 Kiến trúc hệ thống: 6 a. Mô hình ClientServer: 6 b. Mạng máy tính phân tán 8 2.3 Mô hình tương tác trong hệ phân tán: 9 2.4 Nguyên lý hoạt động của giao thức TCPIP 9 a. Mô hình tổng quát của mạng Internet 10 b. Quá trình truyền dữ liệu qua mạng Internet 10 c. Hệ thống địa chỉ và cơ chế truyền dữ liệu trong mạng Internet 12 3. Giới thiệu về lập trình socket – java: 12 a) Định nghĩa: 12 b) Lập trình Socket với TCP 13 c) Lập trình socket với UDP: 14 PHẦN 2: BÀI TOÁN ỨNG DỤNG 16 1. Yêu cầu bài toán: 16 2. Hướng giải quyết bài toán 16 KẾT LUẬN 29 1. Kết quả đạt được: 29 2. Hạn chế và hướng nghiên cứu tiếp theo 29 TÀI LIỆU THAM KHẢO 30 LỜI NÓI ĐẦU Trong những năm qua, cùng với sự phát triển như vũ bão của khoa học kỹ thuật, ngành công nghệ thông tin cũng biến đổi không ngừng để đáp ứng với mọi nhu cầu mới của con người. Trong số những phát minh vĩ đại nhất của thế kỷ trước, mạng máy tính là một hệ thống đem lại nhiều lợi ích to lớn nhất cho nhân loại. Mạng máy tính ngày nay cho phép hàng tỷ máy tính trên trái đất đã và đang kết nối và làm việc với nhau với tốc độ cao. Điều kỳ diệu trên đã trở thành hiện thực và ngày càng phát triển mạnh mẽ hơn nữa chỉ khi có một nhân tố quan trọng làm nền tảng cơ sở lý thuyết cho chúng đã được nghiên cứu. Đó chính là những lý thuyết nghiên cứu liên quan đến hệ phân tán. Nhờ có lý thuyết hệ phân tán, mà các vi xử lý đơn lẻ nằm trên các máy tính đơn lẻ (kèm theo các thiết bị ngoại vi và các thiết bị đầu cuối làm việc từ xa) – mà chúng vẫn thường được gọi là các hệ thống tập trung đã được kết nối lại, làm việc trên nhiều giao thức, nhiều kiểu kết nối và trên nhiều lãnh thổ khác nhau. Và khi các hệ thống tập trung đó đã được kết nối lại theo nhiều nhóm, nhiều cách thức khác nhau và làm việc dựa trên những nguyên lý cơ bản của hệ phân tán thì chúng sẽ được gọi là các hệ thống phân tán, điển hình nhất của các hệ phân tán chính là mạng máy tính mà chúng ta đang sử dụng ngày nay. Sau khi được học hai môn “Hệ tin học phân tán” và môn “Lập trình mạng máy tính” dưới sự giảng dạy nhiệt tình của Thầy PGS.TS Lê Văn Sơn chúng tôi đã tiếp thu được các kiến thức của hai môn học này. Thực hiện sự phân công của Thầy giáo, chúng tôi đã hoàn thành xây dựng tiểu luận “Mô phỏng quá trình phát và nhận thông điệp trong hệ phân tán của 3 server ngang hàng” Được sự hướng dẫn của Thầy giáo Lê Văn Sơn và sự giúp đỡ của các thành viên trong lớp, chúng tôi đã hoàn tất tiểu luận này. Tuy nhiên, với thời gian và kiến thức có hạn, bài tiểu luận chắc chắn sẽ không tránh khỏi những thiếu sót, chúng tôi rất mong nhận được góp ý chân thành của Thầy và các thành viên trong lớp để tiểu luận được hoàn chỉnh hơn.
Trang 1ĐẠI HỌC ĐÀ NẴNG
TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG
Đề tài: CHƯƠNG TRÌNH MÔ PHỎNG QUÁ TRÌNH PHÁT
VÀ NHẬN THÔNG ĐIỆP TRONG HỆ PHÂN TÁN GIỮA 3
SERVER NGANG HÀNG
GVHD : PGS TS Lê Văn Sơn
Nguyễn Thị Thu Hằng
Lớp : Khoa học máy tính
Khóa : 2009-2011
Đà Nẵng, 03/2010
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 3
PHẦN I: CƠ SỞ LÝ THUYẾT 4
1 Hệ phân tán (Distributed System): 4
a Giới thiệu: 4
b Mục tiêu của hệ phân tán: 5
c Nguyên tắc xây dựng hệ phân tán: 5
2 Các mô hình hệ phân tán và ứng dụng mạng: 6
2.1 Các lớp phần mềm: 6
2.2 Kiến trúc hệ thống: 6
a Mô hình Client/Server: 6
b Mạng máy tính phân tán 8
2.3 Mô hình tương tác trong hệ phân tán: 9
2.4 Nguyên lý hoạt động của giao thức TCP/IP 9
a Mô hình tổng quát của mạng Internet 10
b Quá trình truyền dữ liệu qua mạng Internet 10
c Hệ thống địa chỉ và cơ chế truyền dữ liệu trong mạng Internet 12
3 Giới thiệu về lập trình socket – java: 12
a) Định nghĩa: 12
b) Lập trình Socket với TCP 13
c) Lập trình socket với UDP: 14
PHẦN 2: BÀI TOÁN ỨNG DỤNG 16
1 Yêu cầu bài toán: 16
2 Hướng giải quyết bài toán 16
KẾT LUẬN 29
1 Kết quả đạt được: 29
2 Hạn chế và hướng nghiên cứu tiếp theo 29
TÀI LIỆU THAM KHẢO 30
Trang 3LỜI NÓI ĐẦU
Trong những năm qua, cùng với sự phát triển như vũ bão của khoa học kỹ thuật,ngành công nghệ thông tin cũng biến đổi không ngừng để đáp ứng với mọi nhu cầumới của con người Trong số những phát minh vĩ đại nhất của thế kỷ trước, mạng máytính là một hệ thống đem lại nhiều lợi ích to lớn nhất cho nhân loại Mạng máy tínhngày nay cho phép hàng tỷ máy tính trên trái đất đã và đang kết nối và làm việc vớinhau với tốc độ cao
Điều kỳ diệu trên đã trở thành hiện thực và ngày càng phát triển mạnh mẽ hơnnữa chỉ khi có một nhân tố quan trọng làm nền tảng cơ sở lý thuyết cho chúng đã đượcnghiên cứu Đó chính là những lý thuyết nghiên cứu liên quan đến hệ phân tán Nhờ có
lý thuyết hệ phân tán, mà các vi xử lý đơn lẻ - nằm trên các máy tính đơn lẻ (kèm theocác thiết bị ngoại vi và các thiết bị đầu cuối làm việc từ xa) – mà chúng vẫn thườngđược gọi là các hệ thống tập trung đã được kết nối lại, làm việc trên nhiều giao thức,nhiều kiểu kết nối và trên nhiều lãnh thổ khác nhau Và khi các hệ thống tập trung đó
đã được kết nối lại theo nhiều nhóm, nhiều cách thức khác nhau và làm việc dựa trênnhững nguyên lý cơ bản của hệ phân tán thì chúng sẽ được gọi là các hệ thống phântán, điển hình nhất của các hệ phân tán chính là mạng máy tính mà chúng ta đang sửdụng ngày nay
Sau khi được học hai môn “Hệ tin học phân tán” và môn “Lập trình mạng
máy tính” dưới sự giảng dạy nhiệt tình của Thầy PGS.TS Lê Văn Sơn chúng tôi đã
tiếp thu được các kiến thức của hai môn học này Thực hiện sự phân công của Thầy
giáo, chúng tôi đã hoàn thành xây dựng tiểu luận “Mô phỏng quá trình phát và nhận
thông điệp trong hệ phân tán của 3 server ngang hàng”
Được sự hướng dẫn của Thầy giáo Lê Văn Sơn và sự giúp đỡ của các thànhviên trong lớp, chúng tôi đã hoàn tất tiểu luận này Tuy nhiên, với thời gian và kiếnthức có hạn, bài tiểu luận chắc chắn sẽ không tránh khỏi những thiếu sót, chúng tôi rấtmong nhận được góp ý chân thành của Thầy và các thành viên trong lớp để tiểu luậnđược hoàn chỉnh hơn
Trang 4Hình 1: Các lĩnh vực có hệ thống phân tán
Hay hệ phân tán là một tập hợp các máy tính độc lập mà xuất hiện đối với cácngười sử dụng như một máy tính đơn Với các đặc điểm:
Nhiều bộ phận
Kết nối thông qua mạng truyền thông
Chia xẻ các tài nguyên (Theo Andrew Tanenbanum)
Hình 2: Một phần của mạng Internet
Nói chung, một định nghĩa phổ biến và khá đầy đủ về hệ phân tán được trình bàytrong tài liệu [1] như sau:
Trang 5“Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là hệthống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm các tại các vị tríkhác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điềukhiển thống nhất của một hệ điều hành.”
b Mục tiêu của hệ phân tán:
Tăng tốc độ bình quân trong tính toán, xử lý
Cải thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên
Tăng độ an toàn cho dữ liệu
Đa dạng hóa các loại hình dịch vụ tin học
Đảm bảo tính toàn vẹn của thông tin
c Nguyên tắc xây dựng hệ phân tán:
1 Chia sẻ tài nguyên Thực tế phát triển mạng máy tính đặt ra một vấn đề
lớn là cần phải dùng chung tài nguyên Một tiến trìnhtrên một trạm nào đó có thể cung cấp tài nguyên dùngchung ở một trạm khác
2 Liên lạc Khi các hệ thống đã được mắc nối với nhau, các thực
thể trong hệ có thể trao đổi thông tin với nhau
3 Tin cậy Một trạm trong hệ bị sự cố không làm cho toàn hệ
ảnh hưởng, mà ngược lại, công việc đó được phâncho các trạm khác đảm nhận Ngoài ra, trạm bị sự cố
có thể tự động phục hồi lại trạng thái ban đầu trướckhi có sự cố hay trạng thái ban đầu của nó
4 Tăng tốc Đây là khái niệm mới về phân tán tải Một tính toán
lớn nào đó, nếu chỉ sử dụng một trạm thì thời giancho kết quả lâu Tính toán này được chia nhỏ và thựchiện song song trên các trạm Điều này cũng cần thiếtđối với các trạm quá tải
Một trong những tư tưởng lớn của các hệ phân tán là phân tán hoá các quá trình
xử lý thông tin và thực hiện các công việc đó trên các trạm xa nhau
Trang 62 Các mô hình hệ phân tán và ứng dụng mạng:
2.1 Các lớp phần mềm:
Kiến trúc phần mềm: cấu trúc của phần mềm như là các lớp và các module trong
các thuật ngữ của các dịch vụ đưa ra và yêu cầu giữa các tiến trình trên cùng hoặc trêncác máy tính khác nhau
Platform (hệ nền): phần cứng mức thấp nhất và các lớp phần mềm (hệ điều hành) Middleware: một lớp của phần mềm mà mục đích của nó là đánh dấu
heterogeneity và để cung cấp một mô hình lập trình cho các ứng dụng, như: CORBA,RMI (Remote Method Invocation), DCOM (Distributed Component Object Model),
2.2 Kiến trúc hệ thống:
a Mô hình Client/Server:
Hình 3: Mô hình Client/Server
Giới thiệu
Mô hình Client/Server là mô hình tổ chức trao đổi thông tin trong đó mô tả cách
mà các máy tính có thể giao tiếp với nhau theo một phương thức nhất định Phươngthức này là một chiến lược tổ chức phân cấp mà trong đó có một máy tính đặc biệtphục vụ các yêu cầu về lưu trữ, xử lý, tính toán tất cả các máy trên mạng Kiểu tổ chứctổng quát của mô hình này là một mạng LAN được thiết lập từ nhiều máy tính khác
Trang 7nhau, trong đó một máy tính gọi là Server Một chương trình client chạy từ bất kỳ máytính nào trong mạng cũng có thể gởi yêu cầu của mình đến Server, khi server nhậnđược các yêu cầu này thì nó sẽ thực hiện và gởi kết quả về cho Client.
Client process
4.Client handles
reponse
Resource Server
process
2.Server handles request
3.Server sends response
1.Client sends request
Hình 4: Trao đổi thông điệp giữa Client & Server
Có nhiều mô hình được sử dụng trong các chương trình mạng nhưng mô hìnhClient/Server là mô hình chuẩn Một Server là một quá trình, quá trình này chờ sự liên
hệ từ một Client Một phiên làm việc điển hình của mô hình này như sau:
Phía Client gởi một yêu cầu thông qua mạng đến Server để yêu cầu một số dạngdịch vụ nào đó như lấy tên máy Server, lấy đồng hồ hệ thống, đăng ký cấp bằng
…
Phía Server được khởi động trước trên hệ thống máy tính Sau khi khởi động nó
sẽ chờ Client liên hệ nó để yêu cầu một số dịch vụ Quá trình của Server thànhchia ra 2 kiểu:
o Khi chỉ có một yêu cầu của Client được Server phục vụ tại một thời điểm thìgọi đó là Server lặp
o Khi Server có thể phục vụ đồng thời nhiều yêu cầu từ Client gởi đến gọi đó
là Server đồng thời
Client/Server là mô hình tổng quát nhất, trên thực tế thì một Server có thể đượcnối tới nhiều Server khác nhằm làm việc hiệu quả hơn Khi nhận được một yêu cầu từClient, Server này có thể gửi tiếp yêu cầu vừa nhận được cho Server khác ví dụ nhưDatabase Server vì bản thân nó không thể xử lý yêu cầu này được Máy Server có thểthi hành các nhiệm vụ đơn giản hoặc phức tạp
Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy Clientyêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn doServer định ra, nếu yêu cầu được chấp nhận thì máy Server sẽ trả về thông tin màClient yêu cầu Có rất nhiều các dịch vụ Server trên mạng nhưng nó đều hoạt độngtheo nguyên lý là nhận các yêu cầu từ Client sau đó xử lý và trả kết quả cho client yêucầu Thông thường chương trình Server và Client được thi hành trên hai máy khácnhau Cho dù lúc nào Server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ Clientnhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa Client và Server lạibắt đầu ở phía Client, khi mà Client gửi tín hiệu yêu cầu tới Server Các chương trìnhServer thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng)
Sự thuận lợi của phương pháp này là nó có thể làm việc trên bất cứ một mạngmáy tính nào có hỗ trợ giao thức truyền thông chuẩn cụ thể ở đây là giao thức TCP/IP.Với các giao thức chuẩn này cũng giúp cho các nhà sản xuất có thể tích hợp nhiều sảnphẩm khác nhau của họ lên mạng mà không gặp phải khó khăn gì Với các chuẩn nàythì các chương trình Server cho một dịch vụ nào đấy có thể thi hành trên một hệ thốngchia sẻ thời gian (timesharing system) với nhiều chương trình và dịch vụ khác hoặc nó
Trang 8có thể chạy trên chính một máy tính cá nhân bình thường Có thể có nhiều Server cùnglàm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính.
Client
Trong mô hình Client/Server, người ta còn định nghĩa cụ thể cho một máy Client
là một máy trạm mà chỉ được sử dụng bởi một người dùng để muốn thể hiện tính độclập cho nó Máy Client có thể sử dụng các hệ điều hành bình thường như Win9x, DOS,OS/2
Bản thân mỗi một Client cũng đã được tích hợp nhiều chức năng trên hệ điềuhành mà nó chạy, nhưng khi được nối vào một mạng LAN, WAN theo mô hình Client/Server thì nó còn có thể sử dụng thêm các chức năng do hệ điều hành mạng cung cấpvới nhiều dịch vụ khác nhau (cụ thể là các dịch vụ do các Server trên mạng này cungcấp), ví dụ như nó có thể yêu cầu lấy dữ liệu từ một Server hay gửi dữ liệu lên Serverđó Thực tế trong các ứng dụng của mô hình Client/Server, các chức năng hoạt độngchính là sự kết hợp giữa Client và Server với sự chia sẻ tài nguyên, dữ liệu trên cả haimáy
Trong mô hình Client/Server, Client được coi như là người sử dụng các dịch vụtrên mạng do một hoặc nhiều máy chủ cung cấp và Server được coi như là người cungcấp dịch vụ để trả lời các yêu cầu của các Clients Điều quan trọng là phải hiểu đượcvai trò hoạt động của nó trong một mô hình cụ thể, một máy Client trong mô hình nàylại có thể là Server trong một mô hình khác Ví dụ cụ thể như một máy trạm làm việcnhư một Client bình thường trong mạng LAN nhưng đồng thời nó có thể đóng vai trònhư một máy in chủ (printer server) cung cấp dịch vụ in ấn từ xa cho nhiều người khác(Clients) sử dụng Client được hiểu như là bề nổi của các dịch vụ trên mạng, nếu cóthông tin vào hoặc ra thì chúng sẽ được hiển thị trên máy Client
Các ứng dụng chạy trên Server phải được tách rời nhau để một lỗi của ứng dụngnày không làm hỏng ứng dụng khác Tính đa nhiệm đảm bảo một tiến trình không sửdụng toàn bộ tài nguyên hệ thống Server như là một nhà cung cấp dịch vụ cho cácClients yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền file, hệ thống Các ứng dụng Server cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho các hoạtđộng trên các máy Clients có hiệu quả hơn
b Mạng máy tính phân tán
Hệ thống tính toán phân tán đã tạo được bước ngoặc vĩ đại so với các hệ tậptrung và hệ khách chủ (Client/Server) Việc tính toán phân tán về cơ bản cũng giốngnhư việc tính toán của hệ khách chủ trên phạm vi rộng lớn Dữ liệu được chứa trênnhiều máy chủ ở tại nhiều vị trí địa lý khác nhau kết nối nhau thông qua mạng diệnrộng WAN hình thành các nơi làm việc, các phòng ban, các chi nhánh của một cơquan
Trang 9Tính toán phân tán hình thành từ tính toán tập trung và chient/server Các mạngđược xây dựng dựa trên kỹ thuật Web (ví dụ như: Internet; intranet…) là các mạngphân tán Hệ thống cơ sở dữ liệu back-end có thể được nối kết với các server Web đểlấy được các thông tin động Kỹ thuật Web nầy đã mở ra hướng mới cho hệ phân tán.Các trình duyệt Web giúp cho khách hàng trên toàn cầu kết nối với hệ thống Web chủ,
mà không bị khống chế bởi bất kỳ hệ điều hành nào đang chạy trong máy của kháchhàng nầy Một xu hướng mới khi xây dựng các intranet là dữ liệu phải được tập trunghóa tại một nhóm các máy chủ để có khả năng đáp ứng cùng một lúc cho nhiều ngườidùng Giờ đây các hệ thống mainframe đã thật sự trở lại vì tính năng xử lý mạnh mẽ
Xu hướng nầy có lẽ trái ngược với việc tính toán phân tán nhưng trong thực tế chúngcùng tồn tại bên nhau
2.3 Mô hình tương tác trong hệ phân tán:
a Thực hiện truyền thông:
Băng thông (bandwidth): Tổng số thông tin có thể được truyền đi trong một
thời gian đã cho
Sự biến đống tạp (Jitter): thời gian khác nhau giữa các sự trì hoãn ảnh hưởng
bởi các thông điệp khác nhau
b Đồng hồ và thứ tự các sự kiện:
Không có khái niệm toàn cục của thời gian
Nhịp độ đồng hồ trôi: nhịp độ tương đối ở một đồng hồ máy tính trôi dạt ra khỏi
từ một đồng hồ tham chiếu hoàn hảo
Đồng bộ hóa đồng hồ:
o Hệ thống định vị toàn cầu (GPS): một ít máy tính có thể sử dụng máy thu
radio để nhận thời gian đọc từ GPS với độ chính xác là 1 micro-giây Chúng
có thể gửi các thông điệp thời gian đến các máy tính khác trong mạng tươngứng của chúng
o Các đồng hồ logic: mỗi thông điệp là thời gian đóng dấu lên với một số nối
tiếp mà phản chiếu thứ tự lôgic của chúng
Trang 102.4 Nguyên lý hoạt động của giao thức TCP/IP
Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngànhtruyền thông Trên thế giới, ban đầu chỉ có vài mạng máy tính được đưa vào sử dụng ởcác viện nghiên cứu và phục vụ cho quốc phòng Cùng với thời gian, khoa học pháttriển, giá máy giảm, mạng máy tính đã có mặt ở khắp nơi, từ trường học, nhà máy đếncác học viện Đặc biệt sự bùng nổ của mạng thông tin toàn cầu Internet đã đưa khảnăng sử dụng mạng đến từng người dân Hàng ngày bạn dạo chơi trên Internet, lướttrên các trang Web, có bao giờ bạn tự hỏi làm thế nào mà con người có được khả năngtruy cập thông tin mạnh mẽ và tiện lợi đến như vậy?
a Mô hình tổng quát của mạng Internet
Như trong Hình 1 dưới đây, kết cấu vật lý của mạng Internet gồm có mạng chínhchứa các server cung cấp dịch vụ cho mạng, mạng nhánh bao gồm các trạm làm việc
sử dụng dịch vụ do Internet cung cấp "Đám mây Internet" hàm chứa vô vàn mạngchính, mạng nhánh và bao phủ toàn thế giới Để một hệ thống phức tạp như vậy hoạtđộng trơn tru và hiệu quả thì điều kiện tiên quyết là mọi máy tính trong mạng, dù khácnhau về kiến trúc, đều phải giao tiếp với mạng theo cùng một quy luật Đó là giao thứcTCP/IP
b Quá trình truyền dữ liệu qua mạng Internet
Một chương trình hoàn chỉnh được tạo nên từ nhiều module với các chức năng
và nhiệm vụ khác nhau nhưng lại liên kết chặt chẽ với nhau Quá trình truyền dữ liệucũng như vậy Để có thể truyền qua mạng Internet, dữ liệu phải được xử lý qua nhiềutầng Một mạng intranet theo chuẩn OSI thường có bảy tầng nhưng Internet chỉ có bốntầng xử lý dữ liệu là:
Tầng application
Tầng transport còn gọi là tầng TCP (Transmission Control Protocol)
Trang 11 Tầng network còn gọi là tầng IP (Internet Protocol)
Tầng Datalink/Physical
Giả sử người dùng đang ở máy A và muốn gửi một thông điệp tới máy B Ngườidùng sử dụng một trình soạn thảo văn bản để soạn thư, sau đó nhấn nút Send Tính từthời điểm đó dữ liệu được xử lý lần lượt như trong hình sau đây:
Hình 5: Đường đi của dữ liệu qua mạng Internet
Đầu tiên, dữ liệu được xử lý bởi tầng application Tầng này có nhiệm vụ tổ chức
dữ liệu theo khuôn dạng và trật tự nhất định để tầng application ở máy B có thể hiểuđược Điều này giống như khi bạn viết một chương trình thì các câu lệnh phải tuântheo thứ tự và cú pháp nhất định thì chương trình mới chạy được Tầng application gửi
dữ liệu xuống tầng dưới theo dòng byte nối byte Cùng với dữ liệu, tầng applicationcũng gửi xuống các thông tin điều khiển khác giúp xác định địa chỉ đến, đi của dữ liệu.Khi xuống tới tầng TCP, dòng dữ liệu sẽ được đóng thành các gói có kích thướckhông nhất thiết bằng nhau nhưng phải nhỏ hơn 64 KB Cấu trúc của gói dữ liệu TCPgồm một phần header chứa thông tin điều khiển và sau đó là dữ liệu Sau khi đóng góixong ở tầng TCP, dữ liệu được chuyển xuống cho tầng IP
Gói dữ liệu xuống tới tầng IP sẽ tiếp tục bị đóng gói lại thành các gói dữ liệu IPnhỏ hơn sao cho có kích thước phù hợp với mạng chuyển mạch gói mà nó dùng đểtruyền dữ liệu Trong khi đóng gói, IP cũng chèn thêm phần header của nó vào gói dữliệu rồi chuyển xuống cho tầng Datalink/Physical
Khi các gói dữ liệu IP tới tầng Datalink sẽ được gắn thêm một header khác vàchuyển tới tầng physical đi vào mạng Gói dữ liệu lúc này gọi là frame Kích thước củamột frame hoàn toàn phụ thuộc vào mạng mà máy A kết nối
Trong khi được truyền trên mạng Internet, frame được các router chỉ dẫn để cóthể tới đúng đích cần tới Router thực ra là một module chỉ có hai tầng là Network vàDatalink/Physical Các frame tới router sẽ được tầng Datalink/Physical lọc bỏ header
Trang 12mà tầng này thêm vào và chuyển lên tầng Network (IP) Tầng IP dựa vào các thông tinđiều khiển trong header mà nó thêm vào để quyết định đường đi tiếp theo cho gói IP.Sau đó gói IP này lại được chuyển xuống tầng Datalink/Physical để đi vào mạng Quátrình cứ thế tiếp tục cho đến khi dữ liệu tới đích là máy B.
Khi tới máy B các gói dữ liệu được xử lý theo quy trình ngược lại với máy A.Theo chiều mũi tên, đầu tiên dữ liệu qua tầng datalink/physical Tại đây frame bị bỏ điphần header và chuyển lên tầng IP Tại tầng IP, dữ liệu được bung gói IP, sau đó lêntầng TCP và cuối cùng lên tầng application để hiển thị ra màn hình
c Hệ thống địa chỉ và cơ chế truyền dữ liệu trong mạng Internet
Để một gói dữ liệu có thể đi từ nguồn tới đích, mạng Internet đã dùng một hệthống đánh địa chỉ tất cả các máy tính nối vào mạng như hình sau:
Hình 6: Hệ thống tên và địa chỉ của mạng Internet trong mối liên hệ với các tầng
Những tên và địa chỉ này được gửi cho máy tính nhận dữ liệu
3 Giới thiệu về lập trình socket – java:
a) Định nghĩa:
Socket là giao diện (cửa) do ứng dụng tạo ra trên máy trạm, quản lý bởi OS qua
đó các ứng dụng có thể gửi và nhận thông điệp đến từ các ứng dụng khác
Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chươngtrình yêu cầu dịch vụ (client) và một chương trình cung cấp dịch vụ (server) trên mạngLAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong máytính Mỗi socket có thể được xem như một điểm cuối trong một kết nối Một socket
Trang 13trên máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một socket trên máycung cấp dịch vụ Một khi socket đã được thiết lập phù hợp, hai máy tính có thể traođổi dịch vụ và dữ liệu.
Để tạo một ứng dụng sử dụng socket thì cần phải có server và client.Server và client sẽ gửi và nhận dữ liệu thông qua socket cụ thể:Client sẽ gửi yêu cầu có các tham số đến server, server nhận được các tham số và sẽ
xử lý ở server rồi truyền trả lại cho client kết quả
Có hai dạng socket:
Truyền gói tin, không tin cậy
Truyền dòng bytes, tin cậy
- Clietn phải gửi yêu cầu tới server:
Tiến trình máy chủ phải đang được thực hiện
Máy chủ phải mở socket (cổng) để nhận yêu cầu từ client
- Client yêu cầu server bằng cách:
Tạo một socket TCP trên máy
Chỉ rõ địa chỉ IP và số hiệu cổng của tiến trình máy chủ
Khi client tạo socket: client TCP tạo liên kết tới server TCP
Khi được client liên lạc, server TCP tạo socket mới để tiến trình máy chủ giao tiếp với client
o cho phép nói chuyện với nhiều clients
o phân biệt client bằng số hiệu cổng
- Tương tác giữa client/server qua socket TCP :
Trang 14c) Lập trình socket với UDP:
UDP cung cấp dịch vụ truyền dữ liệu không tin cậy giữa client và server
- UDP: không có liên kết giữa client và server
Không có giai đoạn bắt tay
Bên gửi chỉ rõ địa chỉ IP và số hiệu cổng của phía nhận trên mỗi gói tin
Server sẽ tìm địa chỉ IP và số hiệu cổng tương ứng bên trong gói tin
- UDP: các gói tin có thể bị mất hoặc đến không theo thứ tự
- Tương tác client/server qua UDP socket: