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

Thử nghiệm truyền file trên máy tính dùng giao thức TCPIP

69 439 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 đề Thử nghiệm truyền file trên máy tính dùng giao thức TCPIP
Tác giả Nguyễn Thị Hồng Cả
Người hướng dẫn ThS. Nguyễn Quang Ninh
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 Khóa luận tốt nghiệp
Năm xuất bản 2005
Thành phố Vinh
Định dạng
Số trang 69
Dung lượng 1,11 MB

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

Nội dung

Sự kết hợp giữa các máy tính đơn lẻ với nhau đã tạo nênmột môi trờng làm việc mới, trong đó có rất nhiều ngời sử dụng máy tính phântán trên những vị trí địa lý khác nhau có thể cùng khai

Trang 1

Lời nói đầu

Hiện nay, ngành công nghệ thông tin phát triển nhanh với công nghệ ngày càng tiên tiến và hiện đại Một trong những thành tựu lớn nhất mà ngành công nghệ thông tin đã mang lại cho con ngời là mạng máy tính Đây là một mạng máy tính liên kết con ngời trên toàn cầu lại với nhau Việc trao đổi thông tin bây giờ đã trở nên nhanh chóng tiện lợi hơn bao giờ hết Con ngời

có thể trao đổi, thu thập thông tin qua th từ, sách báo, đài, ti vi Ngày nay, con ngời ta có thể chủ động hơn qua mạng điện thoại, Internet

Do nhu cầu trao đổi thông tin trong xã hội phát triển ngày càng cao nên việc kết nối các máy tính lại với nhau đã trở thành một vấn đề đợc quan tâm đặc biệt Mục tiêu đề ra là để những ngời sử dụng các máy khác nhau có thể trao đổi thông tin với nhau một cách dễ dàng và hiệu quả.

Việc trao đổi thông tin cho dù là đơn giản nhất cũng phải tuân theo một giao thức nhất định ở giới hạn đề tài này, tôi sử dụng giao thức TCP/IP để thực hiện công việc sau:

“Thử nghiệm truyền file trên máy tính dùng giao thức TCP/IP“.

Mục đích là để áp dụng lý thuyết giao thức truyền tin TCP/IP và ứng mô hình Client - Server rồi từ đó viết chơng trình truyền nhận file giữa các máy tính qua card LAN để mô phỏng cho lý thuyết này Ngôn ngữ lựa chọn để viết đề tài này là ngôn ngữ Visual Basic, đây là một ngôn ngữ đợc sử dụng rộng rãi trong các dự án trong và ngoài nớc Visual Basic cung cấp công cụ Winsock để xây dựng ứng dụng Client - Server cho phép dùng giao thức TCP/IP để trao đổi thông tin Ngoài ra, Visual Basic có rất nhiều u điểm nổi bật nh tiết kiệm đợc thời gian và công sức so với một số ngôn ngữ lập trình có cấu trúc khác, dễ chỉnh sửa, tạo giao diện đẹp

Trang 2

Mặc dù đã nghiên cứu, học hỏi rất nhiều nhng tài liệu về lý thuyết này còn rất ít Tôi đã cố gắng tổng hợp các tài liệu bằng Tiếng Anh và Tiếng Việt

có liên quan đến đề tài, bằng việc tham khảo ý kiến của những ngời có kinh nghiệm, đặc biệt là sự hớng dẫn tận tình của thầy giáo ThS Nguyễn Quang Ninh, tôi đã viết nên đề tài này Tuy nhiên, trong khuôn khổ đề tài này, vì mới tiếp cận cho nên tôi còn cha thể tận dụng và khai thác hết toàn bộ chơng trình.

Đề tài đợc hoàn thành ngoài sự cố gắng nổ lực của bản thân, còn có sự

giúp đỡ rất lớn của thầy giáo ThS Nguyễn Quang Ninh, của các thầy cô giáo

trong khoa Công nghệ thông tin, cùng sự động viên, đóng góp ý kiến quý báu của các bạn đồng nghiệp Tuy nhiên, do thời gian và kinh nghiệm còn hạn chế do đó nội dung của đề tài này còn nhiều thiếu sót Rất mong đợc sự đánh giá, bổ sung của quý thầy cô và các bạn để chơng trình đợc hoàn thiện hơn.

Tôi xin chân thành cảm ơn.

Vinh, 10 tháng 5 năm 2005

Sinh viên thực hiện

Nguyễn Thị Hồng Cả

Trang 3

CHơNG I Tổng quan về mạng máy tính

I Giới thiệu chung về mạng

1 Lịch sử hình thành và phát triển

Sự kết hợp giữa hai máy tính và các hệ thống truyền thông đặc biệt làviễn thông đã tạo nên một bớc chuyển mới trong vấn đề khai thác và sử dụngcác hệ thống máy tính Sự kết hợp giữa các máy tính đơn lẻ với nhau đã tạo nênmột môi trờng làm việc mới, trong đó có rất nhiều ngời sử dụng máy tính phântán trên những vị trí địa lý khác nhau có thể cùng khai thác tài nguyên của hệthống Các hệ thống máy tính nh thế đợc gọi là mạng máy tính (ComputerNetwork)

- Trong những năm 60 đã xuất hiện các mạng, trong đó các trạm cuối(Terminal) thụ động đợc nối vào một máy xử lý trung tâm Máy xử lý trung tâm

là một máy tính Mini có cấu trúc đơn giản nhng tốc độ xử lý thông tin cao và cókhả năng làm việc phân tán, nó có nhiệm vụ quản lý và điều khiển toàn bộ sựhoạt động của hệ thống nh: thủ tục truyền dữ liệu, sự đồng bộ ở các trạm cuối

ở một số hệ thống khác, để giảm bớt nhiệm vụ của các máy xử lý trung tâm,hay giảm bớt số trạm cuối nối trực tiếp vào nó, ngời ta thêm vào các bộ tiền xử

lý (Preprocessor hay còn gọi là Frontal) để tạo thành một mạng truyền tin, hệthống này còn có các thiết bị tập trung (Concentrator) và dồn kênh(Multiplexor) Bộ dồn kênh có nhiệm vụ cung cấp song song các thông tin docác trạm cuối gửi tới Bộ tập trung dùng bộ nhớ đệm (Buffer) để lu trữ tạm thờicác thông tin

- Từ đầu những năm 70, các mạng máy tính đã đợc nối vào với nhau trựctiếp để tạo thành một mạng máy tính nhằm phân tán tải của hệ thống và tăng độ

Trang 4

tin cậy Cũng trong những năm 70, bắt đấu xuất hiện mạng truyền thông(Communication Network), trong đó thành phần chính là các nút mạng, đợc gọi

là bộ chuyển mạch (Switching Unit) dùng để hớng thông tin tới đích của nó.Các nút mạng đợc nối với nhau bằng đờng truyền (Tranmission Line) còn cácmáy tính xử lý thông tin của ngời sử dụng (Host) hoặc các trạm cuối (Terminal)

đợc nối trực tiếp vào các nút mạng để khi cần thì trao đổi thông tin qua mạng.Bản thân các nút mạng thờng là máy tính nên có thể đồng thời đóng vai trò máycủa ngời sử dụng

- Sự kết hợp của máy tính với các hệ thống truyền thông tạo ra sự bùng nổtrong vấn đề tổ chức và khai thác mạng máy tính mà đến nay ngời ta đã thực sựthấy đợc tính u việt thực sự của mạng máy tính

Cho đến năm 1980 mạng máy tính mới thực sự phát triển và nó liên tục pháttriển cho đến ngày nay, điển hình nhất là sự phát triển không ngừng của mạngINTERNET/INTRANET

Yêu cầu thực tế cho thấy có những bài toán, yêu cầu xử lý không thể giải

đợc trên chỉ máy đơn lẻ với mô hình xử lý tập trung: qui mô xử lý, thông tin đến

từ nhiều nguồn không thể tập trung tại một mối nhập dữ liệu, yêu cầu mở rộng

bộ nhớ (đĩa cứng) ngày càng tăng tới giới hạn không thể cứ việc lắp thêm đĩacứng mới vào là đợc

Khả năng đáp ứng của giải pháp lập mạng máy tính trớc yêu cầu pháttriển của thực tế Năng lực của mạng máy tính hơn hẳn tổng năng lực của từng

Trang 5

máy đơn lẻ cộng lại do tính tổ chức của mạng, dễ dàng tăng cờng khả năng củamạng (chỉ đơn giản là mua thêm máy tính lẻ rồi hoà vào mạng, )

Sự ra đời của mạng máy tính đã tác động trở lại đối với sự phát triển củaTin học Các mô hình xử lý không thể nghĩ đến khi chỉ có các máy đơn lẻ: môhình xử lý song song, mô hình xử lý phân tán, tiến hành sử dụng chung tàinguyên để tiết kiệm và tăng hiệu quả công việc, các ngôn ngữ phát triển chomôi trờng mạng,

Tóm lại, các máy tính đợc kết nối thành mạng máy tính nhằm đạt tới mụctiêu sau đây:

+ Làm cho tài nguyên có giá trị cao (thiết bị, chơng trình, dữ liệu, ) trởnên khả dụng đối với bất kỳ ngời sử dụng nào trên mạng

+ Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra sự cố

đối với một máy tính nào đó quan trọng với các ứng dụng thời gian thực

b Khái niệm mạng máy tính

Mạng máy tính là một tập hợp các thiết bị máy tính nối với nhau để chia

sẻ thông tin và các tài nguyên (Resource) nh các thiết bị, các chơng trình hệthống, chơng trình ứng dụng, cơ sở dữ liệu, Mạng máy tính có thể chỉ là haimáy tính nối với nhau nhằm chia sẻ các thiết bị ngoại vi, và cũng có thể lên tớihàng ngàn máy tính nằm trên khắp mọi miền thế giới để chia sẻ thông tin

Các máy tính trên mạng có hai loại chính :

- Máy chủ (Server) là máy điều khiển và cung cấp tài nguyên trên mạng

- Máy trạm (Workstation hay Client ) là các máy khai thác tài nguyêntrên mạng, mỗi trạm làm việc đợc gọi là nút (Node) của mạng

Bất kỳ một sự kết nối vật lý nào đó mà các máy tính không thể dùngchung tài nguyên của nhau thì không phải là mạng máy tính

Trang 6

c Các yếu tố cần thiết trớc khi quyết định triển khai mạng máy tính

Có ba yếu tố cần phải có để có thể nghĩ đến việc xác lập một mạng máytính:

1 Có hơn một máy tính và giữa chúng có nhu cầu chia sẻ tài nguyên (bao gồmcả thông tin và dịch vụ)

2 Có phơng tiện để kết nối với nhau (đờng truyền)

3 Có phơng thức để hiểu thông tin của nhau

II Các phân loại mạng thông dụng

Có nhiều cách để phân loại mạng máy tính Theo những quan điểm phânloại khác nhau, ta cũng phân đợc các lớp mạng máy tính khác nhau Thôngthờng hiện nay ngời ta phân loại mạng máy tính theo một trong ba quan

điểm dới đây, mà trong đó thông dụng nhất là phân loại theo địa lý cho tacác loại mạng LAN, WAN

1 Phân loại theo cách sử dụng tài nguyên trên mạng

a Mạng Peer to Peer (bình đẳng) :

Các máy tính trên mạng có vài trò ngang nhau Các máy trên mạng có

thể vừa là máy Server vừa là Workstation Ví dụ các mạng máy tính màtrong các máy tính dùng hệ điều hành Window for Workgroup hay Windows

95 là mạng Peer to Peer

b Mạng Server Based (mạng dựa trên một máy chủ) :

Trong mạng Server Based có ít nhất một máy Server, trên đó có cài đặt hệ

điều hành mạng (Network Operating System) có chức năng điều khiển và

Trang 7

cung cấp tài nguyên trên mạng Ví dụ điển hình là các mạng dùng hệ điềuhành Novell 3.x,4.x là các mạng Server Based.

c Mạng kết hợp giữa Peer to Peer và Server Based

2 Phân loại theo kiến trúc (topologies) của mạng.

a Kiến trúc tuyến (Bus)

Mạng có kiến trúc tuyến bao gồm một đờng cáp chính, đợc kết thúc ở hai

đầu (bằng Teminator) Các Node đợc nối trực tiếp vào đờng cáp chung này Tínhiệu từ một thiết bị đợc truyền đi theo cả hai hớng của cáp Tất cả các thiết bị đ-

ợc nối vào đờng cáp chung không đòi hỏi phải có bộ tập trung (Hub) Tuy nhiên

do kiểu chạy đờng cáp là không có cấu trúc, có nghĩa không có một điểm tậptrung, nên thờng khó khăn trong việc phát hiện lỗi

Kiến trúc tuyến có u điểm là đơn giản, kinh tế nhng lại không thích hợpvới địa hình phức tạp, khó bảo hành, khi sự cố xảy ra trên một nút sẽ gây lỗitrên toàn hệ thống

Trang 8

b Kiến trúc hình sao (Star)

Theo topology này, mỗi Node đợc nối vào một “Hub” trung tâm củamạng Trong trờng hợp một Node bị hỏng nó sẽ không gây ảnh hởng trực tiếp

đến các điểm còn lại Tất cả thông tin đều phải đi qua một điểm trung tâm(Hub), vì vậy Hub trở thành điểm đảm bảo thông tin trong mạng Một số Hubcòn có các phần mềm quản lý làm đơn giản hoá công việc xử lý lỗi

Kiến trúc hình sao đơn giản thích hợp với địa hình phức tạp, dễ bảo hànhkhi có sự cố nhng đòi hỏi thêm nhiều thiết bị mạng khác

c Kiến trúc vòng (Ring)

Kiến trúc vòng thực chất là kiến trúc Bus nhng hai nút đầu và cuối trùngnhau tạo thành vòng khép kín Đây là kiến trúc mạng đặc trng của hãng IBM.Các gói tin luân chuyển trên mạng theo một hớng trên vòng khép kín đó Mỗithiết bị trong mạng đóng vai trò nh một bộ Repeater làm nhiệm vụ khuếch đạitín hiệu

Trang 9

Kiến trúc này có u điểm là tốc độ truyền dữ liệu nhanh, độ an toàn cao.Nhng nói chung thiết bị cho kiến trúc mạng này đắt, không kinh tế.

d Kiến trúc hỗn hợp

Kiến trúc này thờng đợc dùng trong thực tế Tuỳ theo điều kiện địa hình,khả năng đầu t mà ngời ta kết hợp các kiểu kiến trúc với nhau gọi là kiến trúchỗn hợp

3 Phân loại theo qui mô địa lý của mạng

a Mạng cục bộ (LAN - Local Area Networks):

Là mạng máy tính có phạm vi cục bộ, đợc cài đặt trong một phạm vi tơng

đối nhỏ (nh trong một văn phòng hay một cơ quan, ) các thiết bị kết nối sửdụng thờng là đồng nhất Khoảng cách từ Server đến các máy trạm(Workstation) thờng không vợt quá 500 m

b Mạng đô thị (MAN - Metropolitan Area Networks):

Phơng tiện kết nối đa dạng, qui mô thông thờng là bao phủ một thànhphố, thị trấn,

c Mạng diện rộng (WAN - Wide Area Networks):

Phát triển trên diện rộng, thậm chí có thể vợt ra khỏi biên giới, phơngtiện phong phú, tổ chức phức tạp Thông thờng, WAN là kết quả tích hợp lại củamột số mạng LAN với nhau thông qua các thiết bị viễn thông nh brigde,getway, modem

Trang 10

4 Phân loại theo kỹ thuật chuyển mạch

a Mạng chuyển mạch kênh (circuit - switched networks)

Khi có hai thực thể cần trao đổi thông tin với nhau thì giữa chúng sẽ đợcthiết lập một “kênh” cố định với nhau và đợc duy trì cho đến khi một trong haibên ngắt liên lạc Các dữ liệu chỉ đợc truyền trên một đờng cố định đó

Phơng pháp chuyển mạch kênh có hai nhợc điểm chính :

- Phải tiêu tốn thời gian để thiết lập con đờng cố định giữa hai thực thể

- Hiệu suất sử dụng đờng truyền không cao vì sẽ có lúc kênh bị bỏ không

do cả hai bên đều hết thông tin cần truyền trong khi các thực thể khác không

đ-ợc phép sử dụng kênh truyền này

b Mạng chuyển mạch thông báo (message - switched networks)

Thông báo (message) là một đơn vị thông tin của ngời sử dụng có khuôndạng đợc qui định trớc Mỗi thông báo đều chứa trong vùng thông tin điều khiểntrong đó chỉ định rõ đích của thông báo Căn cứ thông tin này mà mỗi nút trunggian có thể chuyển thông báo tới nút kế tiếp theo đờng dẫn tới đích của nó Nhvậy mỗi nút cần phải lu trữ tạm thời để “đọc” thông tin điều khiển trên thôngbáo rồi sau đó chuyển tiếp thông báo đi Tuỳ thuộc vào điều kiện của mạng màcác thông báo đợc gửi đi trên các con đờng khác nhau

Phơng pháp chuyển mạch thông báo có nhiều u điểm so với phơng phápchuyển mạch kênh, cụ thể là:

- Hiệu suất sử dụng đờng truyền cao vì không chiếm dụng độc quyền mà

đợc phân chia giữa nhiều thực thể

- Mỗi nút mạng có thể lu trữ thông báo cho đến khi kênh truyền rỗi mớigửi thông báo đi, do đó giảm đợc tình trạng tắc nghẽn (congestion) của mạng

- Có thể điều khiển việc truyền tin bằng các sắp xếp độ u tiên cho cácthông báo

Trang 11

- Có thể tăng hiệu suất sử dụng giải thông mạch bằng cách gán địa chỉquảng bá (broadcast addressing) để gửi đồng thời đến nhiều đích.

Nhợc điểm chủ yếu của phơng pháp chuyển mạch thông báo là khônghạn chế kích thớc của các thông báo, có thể dẫn đến phí tổn lu trữ tạm thời cao

và ảnh hởng đến thời gian đáp (response time), chất lợng truyền đi Rõ ràng làmạng chuyển mạch thông báo thích hợp với các dịch vụ thông tin kiểu th điện tử(electronic mail) hơn là đối với các áp dụng có tính chất thời gian thực vì tồn tại

độ trễ và xử lý thông tin tại mỗi nút

c Mạng chuyển mạch gói (packet - switched networks)

Mỗi thông báo đợc chia thành nhiều phần nhỏ hơn gọi là các gói tin(packet) có khuôn dạng quy định trớc Mỗi gói tin cũng chứa các thông tin điềukhiển trong đó có địa chỉ nguồn (ngời gửi) và đích (ngời nhận) Các gói tinthuộc về một thông báo nào đó có thể đợc gửi qua mạng để tới đích bằng nhiềucon đờng khác nhau

Phơng pháp chuyển mạch thông báo và phơng pháp chuyển mạch gói gầngiống nhau Điểm khác biệt là chỗ các gói tin có kích thớc tối đa sao cho cácnút mạng (nút chuyển mạch) có thể xử lý toàn bộ gói tin trong bộ nhớ mà khôngcần lu trữ tạm thời trên đĩa Bởi thế mạng chuyển mạch gói truyền các gói tinqua mạng nhanh hơn và hiệu quả hơn so với mạng chuyển mạch thông báo

Vấn đề khó khăn nhất của mạng loại này là việc tập hợp các gói tin để tạolại thông báo ban đầu của ngời sử dụng, đặc biệt là trong trờng hợp các gói đợctruyền đi theo nhiều đờng khác nhau Cần phải cài đặt cơ chế “đánh dấu” gói tin

và phục hồi các gói tin bị thất lạc hoặc truyền bị lỗi cho các nút mạng

Do u điểm mềm dẻo và hiệu suất cao hơn nên hiện nay mạng chuyểnmạch gói đợc dùng phổ biến hơn các mạng chuyển mạch thông báo Việc tíchhợp hai kỹ thuật chuyển mạch (kênh và gói) trong một mạng thống nhất (đợc

Trang 12

gäi lµ m¹ng dÞch vô tÝch hîp sè - Integrated Services Digital Networks - ISDN)

®ang lµ mét trong nh÷ng xu híng ph¸p triÓn m¹ng ngµy nay

Trang 13

CHơNG II Tìm hiểu giao thức tcp/ip

I Tìm hiểu chung về giao thức giao tiếp

1 Khái niệm

Giao thức giao tiếp (protocols) là những quy tắc, luật lệ mà các quá trình

truyền nhận thông tin trên mạng phải tuân theo một cách triệt để Các cấp giaothức này đợc chia thành nhiều cấp (layer), mối cấp giao thức giải quyết mộtnhiệm vụ cụ thể trong quá trình truyền, nhận thông tin

2 Những vấn đề khi thiết kế các lớp

Mỗi lớp phải có cơ chế để thiết lập và đóng cầu nối, có cơ chế định địachỉ một cách hợp lý

- Cầu nối là đờng đi đợc thiết lập giữa 2 quá trình (2 host) để có thể chuyển dữliệu lẫn nhau

- Khả năng truyền dữ liệu:

+ Simplex: 1 chiều

+ Half dupflex: 2 chiều luân phiên

+ Full dupflex: 2 chiều đồng thời

- Error control: Phát hiện và sửa lỗi (Error detection & Error correction)

- Sắp xếp thứ tự các công việc (Message Sequencing)

- Điều khiển tốc độ của các dòng dữ liệu cho phù hợp giữa 2 bên (Flow control)

- Quản lý chiều dài thông điệp cho phù hợp với đờng truyền

- Khả năng Multiplex và Demultiplex phải đợc thực hiện tự động

- Vấn đề tìm đờng (Routing)

II Mô hình TCP/IP

1 Căn bản về TCP/IP

Trang 14

TCP/TP ( Transmission Control Protocol ) / IP ( Internet Protocol ) là tênchung cho một tập hợp hơn 100 protocols đợc sử dụng để kết nối các máy tínhvào mạng, để tổ chức các máy tính và các thiết bị viễn thông trên một mạng.

TCP/IP là một bộ giao thức (protocols) đợc thiết kế để đạt hai mục tiêuchính:

 Cho phép truyền thông qua các đờng dây của mạng rộng (Wide AreaNetwork - WAN)

 Cho phép truyền thông giữa các môi trờng đa dạng

Do đó, hiểu đợc cái gốc của các protocols này giúp ta hiểu đợc sự quantrọng của chúng trong các mạng ngày nay

2 Mô hình TCP/IP

Do đặc tính của mô hình OSI là một mô hình tham chiếu, việc áp dụngmô hình OSI vào thực tế là rất là khó có thể thực hiện (hiệu suất kém vì dữ liệukhi truyền từ máy này sang máy kia trong mạng thì phải qua tất cả các lớp củamô hình OSI ở cả hai máy), nó chỉ là một tiêu chuẩn để các nhà phát triển dựatheo đó mà phát triển các mô hình khác tối u hơn Có rất nhiều các mô hìnhkhác nhau Tuy nhiên, hiện nay trên thế giới cùng với sự phát triển nh vũ bãocủa mạng Internet, mô hình TCP/IP đợc sử dụng phổ biến nhất

Mạng dùng giao thức TCP/IP (Internet và Intranet), dữ liệu đợc chiathành những gói nhỏ gọi là những gói tin (packet) Khi ta gửi đi một thông điệp,TCP sẽ chia những thông điệp này thành các packet, mỗi packet đợc đánh dấubởi một số thứ tự và địa chỉ của ngời nhận, thêm vào đó là một số thông tinkiểm soát lỗi Các packet này đợc gửi lên mạng và công việc của IP là truyền tảichúng tới Host từ xa kia Tại nơi nhận, TCP nhận các packet và kiểm tra lỗi, gửitrả lại nếu gói không đúng, với những gói đúng, TCP sử dụng số thứ tự để tạo lạithông điệp ban đầu Tóm lại, công việc của IP là chuyển dữ liệu thô các packet

Trang 15

từ nơi này đến nơi khác Công việc của TCP là quản lý dòng chảy và đảm bảorằng dữ liệu là đúng.

TCP/IP có những đặc điểm sau làm cho nó rất phát triển và phổ dụng:

 Độc lập với cách nối mạng

 Độc lập với phần cứng của mạng

 Các nghi thức theo tiêu chuẩn của hệ mở

 Cách đánh địa chỉ phổ dụng (Universal Addressing)

 Cung cấp một số dịch vụ mạng đợc sử dụng rộng rãi nh E-mail,FTP,Telnet,

 Là cơ sở để xây dựng các ứng dụng theo mô hình Client/Server

Bộ protocol TCP/IP bao gồm:

 TCP (Transmission Control Protocol): Một protocol có cầu nối(Connection-oriented) cung cấp khả năng truyền dòng dữ liệu không lỗi, 2 chiều(full duplex) cho các quá trình của ngời sử dụng

 UDP (User Datagram Protocol): Một protocol không thiết lập cầu nối(connectionless) cho các quá trình của ngời sử dụng (không giống nh TCP, nókhông đảm bảo rằng dữ liệu khi truyền đi đến nơi có chính xác không)

 ICMP (Internet Control Message Protocol): Protocol xử lý lỗi và điềukhiển thông tin giữa các gateway và các host

 IP (Internet Protocol): IP là Protocol cung cấp dịch vụ phân phối cho cácpacket TCP, UDP và ICMP

 ARP (Address Resolution Protocol): Protocol ánh xạ một địa chỉ Internetvào trong một địa chỉ phần cứng

 RARP (Reverse Address Resolution Protocol): Protocol ánh xạ một địachỉ phần cứng vào trong một địa chỉ Internet

Trang 16

Mô hình TCP/IP đợc phân thành 4 tầng, trong đó có 2 tầng dới (1 và 2)của mô hình OSI đợc gộp lại thành một tầng gọi là lớp Host-to-network, 2 lớpPhiên (session) và Trình diễn (presentation) của OSI không có trong mô hìnhgiao thức TCP/IP.

Các ứng dụng và dịch vụ Các ứng dụng và dịch vụ

Tầng ứng dụng Tầng trình diễn Tầng phiên

2 máy giao tiếp với nhau thông qua một protocol; giữa tầng này với tầng kia củamột máy giao tiếp trực tiếp với nhau gọi là Interface (giao diện) Tầng bên dớicung cấp các dịch vụ cho tầng bên trên

Chức năng của các tầng là:

1 Tầng Host-to-network:

Trang 17

Kết nối host với network sao cho chúng có thể chuyển các thông báo tớicác địa chỉ IP.

2 Tầng mạng:

Đây là lớp thực hiện một hệ thống mạng có khả năng chuyển mạch cácgói dữ liệu dựa trên một lớp mạng Nhiệm vụ của lớp này là đảm bảo cho cáchost chuyển các packet của chúng vào mạng bất kỳ và chuyển chúng đến đích

mà không phụ thuộc vào vị trí của đích đến

Địa chỉ IP nằm ở tầng này

3 Tầng giao vận:

Tầng Giao vận đợc thiết kế cho các phần tử ngang cấp ở lớp host có thể

đối thoại đợc với nhau

16 bits để có thể đặc tả nên một số hiệu cổng

Nh vậy để 2 tiến trình của 2 máy bất kỳ trong mạng có thể giao tiếp

đ-ợc với nhau thì mỗi đơn vị dữ liệu (frame) ở tầng Mạng có IP gồm:

+ Protocol (TCP/UDP)

+ Địa chỉ IP của máy nguồn

+ Số hiệu cổng của tiến trình ở máy nguồn

+ Địa chỉ IP của máy đích

Trang 18

+ Số hiệu cổng của tiến trình ở máy đích.

Thí dụ: {Tcp, 172.28.11.83, 6000, 172.28.11.241, 7000};

4 Tầng ứng dụng:

Chứa các dich vụ nh trong các tầng Phiên, tầng Trình diễn, tầng ứngdụng của mô hình OSI Thí dụ: Telnet là 1 trạm cuối ảo (virtual terminal) chophép ngời sử dụng xâm nhập vào một host ở xa và làm việc ở đó nh đang làmviệc trên một máy cục bộ (local), FTP là một công cụ hữu hiệu để chuyển file từmáy này sang máy kia trên mạng, SMTP (Simple Mail Transfer Protocol) cũng

là một dạng của FTP nhng đợc phát triển theo các đặc điểm riêng, DNS(Domain Name Service) dùng để biến đổi (ánh xạ) các tên host thành các địachỉ IP của nó,

3 Phân biệt TCP, IP và UDP

a IP - Giao thức liên mạng

Mục đích chính của IP là cung cấp khả năng kết nối các mạng con thànhliên mạng để truyền dữ liệu Vai trò của IP tơng tự với vai trò của giao thức tầngMạng trong mô hình OSI

IP là một giao thức kiểu “không liên kết” (connectionless) có nghĩa làkhông cần có giai đoạn thiết lập liên kết trớc khi truyền dữ liệu Đơn vị dữ liệudùng trong IP đợc gọi là datagram, có khuôn dạng ở hình sau:

bit 0 3 4 7 8 15 16 31

Trang 19

Khuôn dạng của IP datagram

+ Địa chỉ IP dùng để định danh các Host ở tầng Mạng của mô hình OSI, chúngkhông phải là các địa chỉ vật lý của các trạm đó trên một mạng cục bộ(Ethernet, Token Ring,…) Trên một mạng cục bộ nh vậy, 2 trạm chỉ có thể liênlạc với nhau nếu chúng biết địa chỉ vật lý của nhau Nh vậy vấn đề đặt ra là phảithực hiện ánh xạ giữa địa chỉ IP (32 bits) sang địa chỉ vật lý (48 bits) của mộttrạm

Vấn đề về địa chỉ IP sẽ đợc trình bày ở phần sau

b TCP - Giao thức điều khiển truyền tin

TCP là một thành phần của tầng Giao vận (Transport layer) trong bộ giaothức TCP/IP của Internet Nó nằm trên giao thức IP (Internet protocol) trongngăn xếp giao thức và cung cấp dịch vụ truyền dữ liệu tin cậy qua các kết nối.Giả sử bạn đang viết một ví dụ mạng đòi hỏi trao đổi các bản tin và dữ liệu vớicác môi trờng ở mạng khác nhau Chơng trình của bạn phải có khả năng tạo yêucầu từ các giao thức tầng thấp hơn để có thể trình dữ liệu Đồng thời, bạn khôngcần viết các thủ tục để kiểm tra dữ liệu đã nhận đợc hay cha Đây là công màcác giao thức nh TCP thực hiện

TCP sau đó dùng IP để giữ truyền tải qua mạng IP là giao thức mạng phikết nối không đảm bảo trình dữ liệu một cách tin cậy Các bản tin và dữ liệuTCP đợc bao bọc trong các datagram IP và đợc chuyển qua mạng

VER IHL Type of Service Total Length

Indetification Flags Fragment Offset Time to live Protocol Header Checksum

Source Address Destination Address Options + Padding Data (max: 65.535 bytes)

Trang 20

Trong thời gian đó UDP đợc hình thành để cung cấp giao diện ứng dụngcho IP cả TCP và UDP dùng IP Trong khi UDP đang nằm trong tầng Giao vận,

nó không có chức năng tin cậy nào cả về TCP Nó có các trờng trong tiêu đề đểxác định đợc nguồn và đích Nh vậy, một ứng dụng có thể kết nối với một ứngdụng khác trong hệ thống khác mà không cần các chức năng tin cậy trong TCP.TCP ban đầu đợc phát triển để kết nối nhiều loại môi trờng khác nhau trong cácviện nghiên cứu, trờng đại học và các tổ chức chính phủ Phơng pháp bao bọc đ-

ợc cài đặt vì những nhà thiết kế không muốn ngời chủ mạng phải thay đổi sơ đồmạng của họ để liên kết với các mạng khác Ngời ta giả sử rằng mạng phải cài

đặt kỹ thuật truyền thông riêng Các bộ phận đinh tuyến (trớc đây gọi làgateway) cung cấp dịch vụ bao bọc này

* Các chức năng của TCP:

Có lẽ chức năng quan trọng nhất của TCP là nó thiết đặt các kết nối end

-to - end giữa 2 môi trờng cần trao đổi dữ liệu Kết nối end - -to - end là ảo vì nó

đợc tạo trong phần mềm và mở rộng các liên kết nối point - to - point Để ý rằngkết nối point - to - point là giữa 2 hệ thống vật lý, chẳng hạn nh máy chủ đến bộ

định tuyến, hoặc bộ định tuyến đến bộ định tuyến khác Trong khi kết nối end

-to - end là giữa các hệ thống đầu cuối kết nối end - -to - end không đơn thuần kếtthúc tại giao diện của mạng, nó thực sự mở rộng vào tầng ứng dụng đối với mộtquá trình cụ thể đang chạy trên máy tính Mỗi môi trờng tạo ra một socket vàcác đầu cuối đính kèm socket nh là máy điện thoại ở hai đầu, cổng nh là số điệnthoại Cổng có địa chỉ đã quen thuộc ví dụ qua web server có địa chỉ quen thuộc

là 80, vì thế khách web luôn luôn kết nối với cổng này khi truy cập web server.Khách và chủ web thiết lập kết kết nối end - to - end tạm thời ở cổng này để trao

đổi dữ liệu Địa chỉ IP của web server có dạng x.x.x.x:80, nhng thờng không cầnthiết lập nhập số cổng

Trang 21

- TCP thiết lập kết nối end - to - end trên các mạng nối nhau bởi bộ định tuyến.Một kết nối trớc hết phải đợc yêu cầu bởi ngời gửi và đảm bảo bởi ngời nhận.

Điều này cung cấp mức đầu tiên của độ tin cậy bằng cách đảm bảo rằng ngờinhận sẵn sàng nhận dữ liệu Nó cũng chỉ ra cách TCP quản lý truyền dữ liệu

Nếu một ứng dụng phải truyền dữ liệu trực tiếp đến IP, IP sẽ bắt đầu gửicác gói dữ liệu đến đích Nhng nếu đích không làm việc (off - line) hoặc bậnrộn, những gói này loại bỏ và bản thân IP không có cách nào để thông báo choứng dụng đó rằng các gói dữ liệu cha đợc gửi đi TCP quản lý điều này bằngcách gửi một yêu cầu kết nối đơn giản và IP sẽ chuyển đi Khi ngời nhận phảnứng, TCP bắt đầu chuyển nhiều thông tin đến IP, đảm bảo IP không bị mất điềukhiển Về mặt này, có thể TCP nh là một ngời điều khiển giao thông cho IP

- Các kết nối TCP là full - duplex là các kênh ảo hai chiều cho phép các đầucuối gửi dữ liệu bất cứ lúc nào Nh vậy kết nối này giống nh kênh truyền vànhận riêng biệt Các vùng đệm đợc dùng để gửi dữ liệu đến và đi để cho hoạt

offset Reserved UK

G

A C K

P S H

R S T

S Y N

F I N

Window

TCP data

Khuôn dạng của TCP segment

Ngời nhận có thể báo đã nhận (acknowledge) các datagram cho ngời gửi

Điều khiển luồng (flow control) là cách để hai thông tin hợp tác tích cựcvới nhau trong truyền dữ liệu để tránh quá tải và mất mát các datagram do ngời

Trang 22

gửi nhanh Chức năng này cho phép các hệ thống truyền thích nghi với sức tảitrên mạng và kích thớc vùng đệm ở ngời nhận.

Tuần tự là kỹ thuật để đánh số các datagram để ngời nhận có thể đặtchúng theo thứ tự đúng và xác định những datagram nào bị mất

Chức năng kiểm tra tổng (checksum) đợc dùng để đảm bảo tính toàn vẹncủa các gói dữ liệu

là không chứa dữ liệu để cung cấp thông tin về kết nối, nh báo đã nhận(acknowledge)

Cổng nguồn và đích: Chứa số hiệu cổng của các socket ở nguồn và đích

- Số hiệu chuỗi: trờng này chứa các thông tin cho ngời nhận, dùng để xác địnhdữ liệu trong phân đoạn và nó nằm ở đâu trong dòng dữ liệu đã gửi Ngời nhận

có thể dùng giá trị này để sắp xếp lại các gói tin đã đến không có thứ tự Nócũng có thể chỉ ra rằng phân đoạn bị mất

- Số hiệu báo đã nhận: Trờng này đợc ngời nhận dùng để thông báo cho ngờigửi biết rằng gói dữ liệu đi đã đợc nhận Số hiệu trờng này thực chất là số hiệuchuỗi cho phân đoạn tiếp theo Số này đợc tính bằng cách tăng giá trị trong tr-ờng số hiệu chuỗi

- Độ dài tiêu đề: Trờng này xác định chiều dài của tiêu đề

Mã trờng này chứa các mã bit nh sau, dùng làm cờ để chỉ ra các điều kiệnnhất định

+ URG (Urgent) Bit này là 1 nếu có thông tin trong trờng Urgent Pointer củatiêu đề

Trang 23

+ ACK (Acknowledgement) Nếu ACK là 1, điều này có nghĩa là phân đoạnmột phần của hội thoại đang diễn ra và số trong trờng Acknowledment Number

la hợp lệ Nếu ACK là 0; SYN là 0, phân đoạn này là yêu cầu thiết lập kết nối.+ PSH (Push): Bit này để ngời gửi yêu cầu nguời nhận gửi dữ liệu trực tiếp đếnứng dụng, không cần vùng đệm

+ RST (Reset): Nếu có giá trị bằng 1, kết nối là không hợp lệ vì nhiều lý do

nh-ng phải tái thiết (reset)

+ SYN (Synchronize): đợc dùng cùng với ACK để yêu cầu kết nối hoặc chấpnhận kết nối SYN = 1 và ACK = 0 là một yêu cầu kết nối SYN = 1 và ACK = 1

là chấp nhận kết nối SYN = 0 và ACK = 1 là báo đã nhận

+ FIN (Finish): Bit này chỉ ra kết nối phải đợc kết thúc

- Kích thớc của Sliding - window: Trờng thông tin về kích thớc không giandùng đợc trong vùng đệm của ngời nhận Trờng này đợc ngời nhận dùng đểthông báo cho ngời gửi làm chậm lại việc truyền vì ngời gửi đang gửi dữ liệunhanh hơn so với tốc độ xử lý của ngời nhận Nếu ngời nhận muốn gửi kết thúcviệc gửi, nó sẽ gửi một phân đoạn trong đó trờng này có giá trị 0 Sau đó khi cóthể nhận lại dữ liệu, nó gửi lại phân đoạn này trong đó trờng này có giá trị khác

0, cùng với giá trị thích hợp trong trờng acknowledgement number

- Checksum: cung cấp giá trị kiểm tra lỗi để đảm bảo tính toàn vẹn của phân

đoạn

- Urgent pointer: Trờng này đợc ngời gửi dùng để chỉ ra vị trí của dữ liệu khẩncấp

- Options: Chứa các tuỳ chọn đặc biệt

- Data: Trờng này có độ dài thay đổi, chứa bản tin hoặc dữ liệu từ các ứng dụngkhác

* Thiết lập kết nối:

Trang 24

Tầng Giao vận thiết lập kết nối trên đó dữ liệu đợc truyền một cách tincậy trong quá trình kết nối Trớc hết, kết nối đợc thiết lập, dữ liệu đợc truyền đi

và kết nối kết thúc

Việc thiết lập kết nối chỉ là vấn đề gửi yêu cầu kết nối đến máy đích Nếu

đợc, nó gửi thông báo đã nhận đợc yêu cầu kết nối (connectionacknowledgement message) Hệ thống sau đó có thể thoả thuận về tham số củalần làm việc hiện hành (hoặc các tham số trong trờng option của phân đoạn) Vídụ: Trong thông báo của một trạm có thể nói rằng nó không thể xử lý sức tảiquá 1.000 byte Sau đó, giá trị thấp hơn đợc thoả thuận Có nhiều tham số khác

đợc thoả thuận để cải tiến hiệu suất truyền

Kết nối đợc thiết lập bằng cách dùng cơ chế bắt tay 3 chiều (three-wayhandshake) đợc thực hiện nh sau:

1 Máy A (ngời gửi) gửi một phân đoạn TCP đến máy B (ngời nhận) với cờ SYN

là 1 và ACK là 0 Một số hiệu chuỗi ban đầu đợc chèn vào trờng SequenceNumber của tiêu đề Đây là số hiệu chuỗi mà máy A sẽ dùng để gửi các phân

đoạn đến máy B

2 Máy B sẽ lu trữ số hiệu chuỗi và trả một phân đoạn đến máy A trong đó cảhai cờ SYN và ACK là 1 Để báo rằng nó đã nhận số hiệu vào trờng Sequencenumber Đây là số hiệu chuỗi mà máy B sẽ dùng để gửi các phân đoạn đến máyA

3 Máy A bây giờ có thể báo cho máy B rằng nó đã nhận thông báo nhận củamáy B Nó gửi một phân đoạn trong đó cờ ACK =1 và SYN = 0 Nó cũng tăng

số hiệu chuỗi nhận đợc từ máy B lên 1 và chèn vào trờng Acknowledgement đểcho thấy rằng nó chấp nhận cách đánh số hiệu chuỗi của máy B

Sau khi dữ liệu đợc truyền, lần làm việc kết thúc Máy A gửi lá cờ FIN =

1 đến máy B Sau đó máy B phản hồi bằng ACK = 1 và FIN = 1 và máy A phảnhồi lại bằng ACK = 1 TCP có thể xử lý các tham số kết nối trong qúa trình kết

đặt kết nối Một trong những tham số này là tham số trì hoãn đờng truyền Giả

Trang 25

sử máy A gửi một phân đoạn đến máy B và máy B trả lại thông báo nhận, nhngvì lý do nào đó thông báo này không đến đợc máy A đúng lúc Máy A phải giả

sử rằng máy B không nhận tín hiệu truyền, vì thế nó gửi lại phân đoạn Cùng lúc

đó, thông báo nhận “đã mất” cuối cùng tìm đợc đờng đến máy A và phân đoạn

đợc gửi lại cũng đến máy B, và bây giờ máy B có hai phân đoạn nh nhau

Lợng thời gian mà ngời gửi chờ để nhận thông báo nhận không thể là giátrị cố định vì một số liên kết, nh vệ tinh, có thời gian trì hoãn lâu hơn các liênkết khác TCP có thể thoả thuận giá trị này bằng cách đo thời gian nhận phảnhồi Sau đó nó dự tính giá trị trì hoãn 2 chiều và dùng giá trị này để định thờigian truyền và thông báo nhận cho một kết nối

Có nhiều tham số truyền thông khác mà TCP phải xử lý để cung cấp cácdịch vụ tin cậy

c UDP (User Datagram Protocol)

Khi viết các ứng dụng trên mạng TCP/ IP, có thể truy cập đến các tàinguyên mạng thông qua 2 giao diện: TCP hoặc UDP Cả hai giao thức này nằmtrong tầng Giao vận giữa các ứng dụng và IP (Internet protocol) trong tầngMạng

Trong khi TCP là dịch vụ truyền hớng kết nối với nhiều đặc điểm để đạt

độ tin cậy cao trong khi truyền dữ liệu, UDP lại là dịch vụ truyền phi kết nốikhông cần độ tin cậy nh TCP Nh đã nói các ứng dụng cần một giao diện với IP.UDP đáp ứng dợc nhu cầu đó và đồng thời cung cấp khả năng nói chuyện vớiqúa trình đang chạy trên máy chủ thông qua số hiệu cổng mà không cần thiếtlập một phiên kết nối Trong nhiều trờng hợp, điều này làm cho việc liên lạc dễdàng hơn bởi vì toàn bộ dữ liệu truyền có thể gửi đi trong 1 hoặc 2 gói UDP.Việc thiết lập kết nối TCP sẽ tốn nhiều thời gian mặc dù chỉ gửi một lợng dữliệu nhỏ

Trang 26

Cổng là địa chỉ mà một ứng dụng có thể dùng đợc trên máy chủ Các góidữ liệu đợc gửi đi sẽ tìm đờng đến máy chủ thông qua địa chỉ IP, nhng khi đếnmáy chủ rồi, cần phải có một cổng để lấy nội dung của gói dữ liệu cho ứng dụng

đang chạy trên máy chủ Nếu máy chủ là Server, có thể có nhiều quá trình chạy

đồng thời nh HTTP (cổng 80), FTP (cổng 21) và Gopher (cổng 70) Với UDP,một ứng dụng có thể gửi gói dữ liệu đến một dịch vụ mà không cần thiết lập cầunối, với TCP thì điều này là cần thiết

Đơn vị dữ liệu sử dụng trong UDP là datagram, có khuôn dạng nh sau: bit 0 15 16 31

DATA

Khuôn dạng của UDP datagram

Tiêu đề của UDP minh hoạ việc đánh địa chỉ cổng là chức năng hàng đầucủa UDP Tiêu đề thờng là các trờng địa chỉ cổng Kiểm tra checksum đợc dùng

để dò tìm lỗi đờng truyền dữ liệu, nhng nếu tìm thấy lỗi, dữ liệu đợc bỏ qua vàkhông thực hiện động tác nào khác Nếu một ứng dụng đòi hỏi các dịch vụ tincậy cao, sử dụng TCP sẽ tốt hơn

Các ứng dụng Multicast Internet Mbone (real - time transport protocol)

và các giao thức khác dùng UDP nh là một cơ chế chuyển giao dữ liệu UDP

đ-ợc thiết kế để chuyển giao dữ liệu thời gian thực nh âm thanh và video trực tiếp

từ điểm này đến điểm khác trên Internet và Intranet Vì nội dung dữ liệu là trựctiếp, các dịch vụ TCP (chẳng hạn nh chấp nhận và truyền lại) là không cần thiết

và tốn nhiều phí phát sinh Nếu mất một gói âm thanh hoặc video, việc truyềnlại là không thực tế vì thông tin truyền lại không đồng bộ với âm thanh hoặcvideo hiện hành

4 Cấu trúc địa chỉ IP

Trang 27

* Bit nhận dạng lớp (Class bit)

* Địa chỉ của mạng (Net ID)

* Địa chỉ của máy chủ (Host ID)

Ghi chú: Tên là Địa chỉ của máy chủ nhng thực tế không chi có máy chủ mà

tất cả các máy con (Workstation), các cổng truy nhập, v.v đều cần có địa chỉ.

Bit nhận dạng lớp (Class bit) là để phân biệt địa chỉ ở lớp nào

1 Địa chỉ Internet biểu hiện ở dạng nhị phân:

x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y

x, y = 0 hoặc 1

Ví dụ:

0 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 Bit nhận

2 Địa chỉ Internet biểu hiện ở dạng thập phân:

xxx.xxx.xxx.xxx

x là số thập phân từ 0 đến 9

Ví dụ: 146 123 110 224

Trang 28

Dạng viết đầy đủ của địa chỉ IP là 3 con số trong từng Octet Ví dụ: địachỉ IP thờng thấy trên thực tế có thể là: 53.143.10.2 nhng dạng đầy đủ là:053.143.010.002.

b Các lớp địa chỉ IP

Địa chỉ IP chia ra 5 lớp A,B,C,D,E Hiện tại đã dùng hết lớp A,B và gầnhết lớp C, còn lớp D và E Tổ chức Internet đang để dành cho mục đích khác,nên chúng ta chỉ nghiên cứu 3 lớp đầu

Qua cấu trúc các lớp địa chỉ IP chúng ta có nhận xét sau:

Trang 29

 Bit nhận dạng là những bit đầu tiên: của lớp A là 0, của lớp B là 10, củalớp C là 110.

 Lớp D có 4 bit đầu tiên để nhận dạng là 1110, còn lớp E có 5 bit đầu tiên

để nhận dạng là 11110

 Địa chỉ lớp A: Địa chỉ mạng ít và địa chỉ máy chủ trên từng mạng nhiều

 Địa chỉ lớp B: Địa chỉ mạng vừa phải và địa chỉ máy chủ trên từng mạngvừa phải

 Địa chỉ lớp C: Địa chỉ mạng nhiều và địa chỉ máy chủ trên từng mạng ít

Địa chỉ lớp Vùng địa chỉ lý thuyết Số mạng tối đa sử dụng Số máy chủ tối đa trên từng mạng

Ghi chú: Địa chỉ thực tế không phân trong trờng hợp tất cả các bit trong một

hay nhiều Octet sử dụng cho địa chỉ mạng hay địa chỉ máy chủ đều bằng 0 hay đều bằng 1 Điều này đúng cho tất cả các lớp địa chỉ.

Trang 30

CHơNG III Mô hình Client - ServerMô hình Client - Server (khách - chủ) là một mô hình tổ chức trao đổithông tin trong đó mô tả cách mà các máy tính có thể giao tiếp với nhau theomột phơng thức nhất định Phơng thứ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ệt phục vụ các yêu cầu về lu trữ, xử lý, tính toán

Trang 31

của tất cả các máy trong mạng Kiểu tổ chức tổng quát của mô hình này là mộtmạng LAN đợc thiết lập từ nhiều máy tính khác nhau, trong đó có một máy tínhgọi là máy chủ (Server) Một chơng trình Client chạy từ bất kỳ máy nào trongmạng cũng có thể gửi các yêu cầu của mình đến Server, khi Server nhận đợc cácyêu cầu này thì nó sẽ thực hiện và sẽ gửi trả kết quả về cho máy khách (Client).

Mô hình Client - Server

Mô hình chuẩn của các chơng trình ứng dụng mạng là mô hình Client Server Một Server là một quá trình, quá trình này chờ sự liên hệ từ một quátrình Client Một phiên làm việc điển hình của mô hình này nh sau:

Quá trình Server đợc khởi động lên trên hệ thống máy tính Sau khi khởi

động xong thì nó sẽ chờ 1 quá trình Client liên hệ nó để yêu cầu một số dịch vụ

- Quá trình Client gửi một yêu cầu thông qua mạng đến Server để yêu cầumột số dạng dịch vụ nào đó Một số thí dụ về kiểu các dịch vụ mà 1 Server cóthể cung cấp:

+ Trả về giờ trong ngày (time-of-day) cho Client

+ In một file trên một máy in cho Client

+ Đọc hay ghi một file trên hệ thống của Server cho Client

Client

Trang 32

+ Cho phép Client login vào hệ thống của Server.

+ Thực thi một công việc cho Client trên hệ thống Server

- Sau khi quá trình Server đã hoàn tất việc cung cấp dịch vụ cho Client,Server quay về trạng thái “nghỉ” (sleep) để chờ yêu cầu của Client kế tiếp.Chúng ta có thể chia hơn nữa các quá trình Server thành 2 kiểu:

+ Khi chỉ có một yêu cầu của Client đợc Server phục vụ tại 1 thời điểm thìngời ta gọi đó là Server “tơng tác” (Interative Servers) Loại Server này do chỉthực hiện tại một thời điểm 1 yêu cầu của Client cho nên không hiệu quả (khi cónhiều yêu cầu đợi Server phục vụ)

+ Khi Server có thể phục vụ đồng thời nhiều yêu cầu từ phía Client gửi

đến thì ta gọi đó là Server “đồng thời” (Concurrent Servers) Trong trờng hợpnày, hệ điều hành phải cho phép chạy nhiều quá trình một lúc; 1 Server “đồngthời” yêu cầu các quá trình khác (bản sao tạo ra từ Server) xử lý mỗi yêu cầu

đến từ Client, và nh vậy thì quá trình Server nguyên thuỷ có thể quay trở lại chế

độ “nghỉ” để chờ yêu cầu từ các Client kế tiếp

I Những giải thuật trong thiết kế phần mềm Client

Phần mềm Client có thể dùng một trong các phơng pháp sau đây để tìm

địa chỉ IP của Server và Port:

- Dùng địa chỉ Server và Port là hằng số trong chơng trình

- Yêu cầu ngời sử dụng nhập khi chạy chơng trình

- Lấy thông tin về Server từ file

- Truyền thông điệp Broadcast hoặc tìm Multicast để tìm Server

Dùng địa chỉ Server nh hằng số làm cho phần mềm Client nhanh hơn và ítphụ thuộc vào môi trờng tính toán cục bộ Tuy nhiên, nó cũng có nghĩa là Clientphải đợc biên dịch lại khi Server bị di chuyển Quan trọng hơn là nó không thểdùng với Server khác thậm chí để kiểm tra

Trang 33

Lu địa chỉ Server trong file làm cho Client mềm dẻo hơn nhng khi đó

ch-ơng trình Client không thể thực thi nếu không có file đó Do đó phần mềmClient không thể mang máy tính khác dễ dàng

Dùng Protocol broadcast để tìm Server làm việc tốt trong môi trờng cục bộnhỏ nhng không phù hợp trong môi trờng mạng lớn Hơn nữa, dùng cơ chế tìmkiếm động làm tăng độ phức tạp cho cả Server và Client và làm tăng lu thôngtrên mạng

Để giảm độ phức tạp và sự phụ thuộc vào môi trờng cục bộ, phần lớnClient giải quyết vấn đề bằng cách cho ngời sử dụng nhập đối số chỉ định Servervào khi chạy chơng trình Client Phơng pháp dùng đối số để chỉ định địa chỉServer là phơng pháp mềm dẻo nhất Một chơng trình chấp nhận đối số địa chỉ

có thể đợc kết hợp với những chơng trình khác lấy địa chỉ Server từ đĩa, tìm địachỉ dùng tên máy chủ (nameserver) từ xa, hoặc tìm bằng một Protocolbroadcast

1 Giải thuật tạo kết nối với Server và giao tiếp với nó

- Tìm địa chỉ IP và port của Server muốn liên lạc

- Cấp phát socket

- Kết nối (connect) socket với Server

- Giao tiếp với Server dùng Protocol cấp ứng dụng

- Đóng kết nối

Vì để chọn địa chỉ IP cục bộ đúng đòi hỏi ứng dụng phải tơng tác vớiphần mềm tìm đờng đi của cấp IP nên phần mềm Client TCP thờng không điền

địa chỉ đầu cuối cục bộ và cho phép phần mềm TCP/IP chọn địa chỉ IP cục bộ

và một port cha sử dụng một cách tự động

Hàm hệ thống connect cho phép Client TCP khởi tạo kết nối theo chiến

l-ợc bắt tay 3 lần Hàm connect không trả về cho đến khi kết nối TCP đã đl-ợc thiết

Trang 34

lập hoặc bị vợt quá thời gian (timeout) và bỏ cuộc Connect thực hiện 4 côngviệc Trớc tiên, nó kiểm tra để đảm bảo socket là hợp lệ và cha đợc kết nối Bớcthứ hai, nó dùng đối số thứ hai để điền vào địa chỉ đầu cuối của máy ở xa Bớcthứ ba, nó chọn địa chỉ đầu cuối của máy cục bộ để kết nối Bớc thứ t, nó khởitạo kết nối TCP và trả về giá trị cho đối tợng gọi (caller) biết kết nối thành cônghay không.

Khi một ứng dụng hoàn tất việc dùng cầu nối, nó có thể đóng cầu nối vàgiải phóng socket Tuy nhiên đóng cầu nối thờng không đơn giản vì TCP chophép giao tiếp 2 chiều Do đó đóng một cầu nối thờng đòi hỏi phải đồng bộ ởClient và Server

Cơ chế đóng một phần cầu nối loại bỏ sự mơ hồ cho những Protocol ứngdụng truyền một lợng thông tin bất kỳ khi đáp ứng một yêu cầu Trong nhữngtrờng hợp nh vậy, Client phát ra lệnh đóng một phần sau khi phát ra yêu cầucuối cùng, sau đó Server sẽ đóng cầu nối sau đáp ứng cuối cùng

2 Giải thuật lập trình cho TCP Client

- Tìm địa chỉ và port của Server muốn liên lạc

- Cấp phát socket (gọi hàm socket( ) tạo socket)

- Gọi hàm connect kết nối đến Server

- Giao tiếp với Server dùng Protocol cấp ứng dụng

Ngày đăng: 19/12/2013, 09:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[6]. Hyper link:http://pclt.cis.yale.edu/pclt/comm/tcpip.htm Link
[1]. Nguyễn Thúc Hải - Mạng máy tính và các hệ thống mở, NXB Giáo Dôc, 1999 Khác
[2]. Nguyễn Thị Ngọc Mai - Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu, NXB Lao Động - Xã Hội, 1999 Khác
[3]. Tim Parker - Teach Yourself TCP/IP in 14 Days, Second Edition, Sams Publishing, 1996 Khác
[4]. Grace Buechlein - Acquisitions Editor, Sams Publishing, 1994 Khác
[5]. Dean Miller - Publishing Team Leader, Sams Publishing, 1996 Khác

HÌNH ẢNH LIÊN QUAN

Hình vẽ cho thấy cách những tiến trình tơng tác với những file descriptor và một socket descriptor - Thử nghiệm truyền file trên máy tính dùng giao thức TCPIP
Hình v ẽ cho thấy cách những tiến trình tơng tác với những file descriptor và một socket descriptor (Trang 44)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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