Tải bản đầy đủ (.doc) (36 trang)

Lập trình giao tiếp mạng với winshock

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

CHƯƠNG 1: SƠ LƯỢC VỀ MẠNG MÁY TÍNH
1.1 Định nghĩa và lợi ích của mạng máy tính
1.1.1 Định nghĩa
Mạng máy tính là sự kết hợp các máy tính lại với nhau thông qua các thiết bị nối kết
mạng và phương tiện truyền thông (giao thức mạng, môi trường truyền dẫn) theo một cấu
trúc nào đó và các máy tính này trao đổi thông tin qua lại với nhau.
Hình 1.1.1: Mô hình liên kết các máy tính trong mạng
1.1.2 Những ích lợi kết nối thành mạng máy tính
− Nhiều người có thể dùng chung một phần mềm tiện ích.
− Một nhóm người cùng thực hiện một đề án nếu nối mạng họ sẽ dùng chung dữ
liệu của đề án, dùng chung tập tin chính (master file) của đề án, họ trao đổi thông tin với
nhau dễ dàng.
− Dữ liệu được quản lý tập trung nên bảo mật an toàn, trao đổi giữa những người sử
dụng thuận lợi, nhanh chóng, backup dữ liệu tốt hơn.
− Sử dụng chung các thiết bị máy in, máy scaner, đĩa cứng và các thiết bị khác.
− Người sử dụng và trao đổi thông tin với nhau dễ dàng thông qua dịch vụ thư điện
tử (Email), dịch vụ Chat, dịch vụ truyền file (FTP), dịch vụ Web, ...
− Xóa bỏ rào cản về khoảng cách địa lý giữa các máy tính trong hệ thống mạng
muốn chia sẻ và trao đổi dữ liệu với nhau.
− Một số người sử dụng không cần phải trang bị máy tính đắt tiền (chi phí thấp mà
chức năng lại mạnh).
− Cho phép người lập trình ở một trung tâm máy tính này có thể sử dụng các
chương trình tiện ích, vùng nhớ của một trung tâm máy tính khác đang rỗi để làm tăng hiệu
quả kinh tế của hệ thống.
− An toàn cho dữ liệu và phần mềm vì nó quản lý quyền truy cập của các tài khoản
người dùng (phụ thuộc vào các chuyên gia quản trị mạng).
1.2 Phân loại mạng máy tính.
Có nhiều cách phân loại mạng khác nhau tuỳ thuộc vào yếu tố chính được chọn
dùng để làm chỉ tiêu phân loại, thông thường người ta phân loại mạng theo các tiêu chí như
sau
- Khoảng cách địa lý của mạng


- Kỹ thuật chuyển mạch mà mạng áp dụng
- Kiến trúc mạng
- Hệ điều hành mạng sử dụng ...
Tuy nhiên trong thực tế nguời ta thường chỉ phân loại theo hai tiêu chí đầu tiên
1.2.1 Phân loại mạng theo khoảng cách địa lý :
Nếu lấy khoảng cách địa lý làm yếu tố phân loại mạng thì ta có mạng cục bộ, mạng
đô thị, mạng diện rộng, mạng toàn cầu.
Mạng cục bộ ( LAN - Local Area Network ) : là mạng được cài đặt trong phạm vi
tương đối nhỏ hẹp như trong một toà nhà, một xí nghiệp...với khoảng cách lớn nhất giữa
các máy tính trên mạng trong vòng vài km trở lại.
Mạng đô thị ( MAN - Metropolitan Area Network ) : là mạng được cài đặt trong
phạm vi một đô thị, một trung tâm văn hoá xã hội, có bán kính tối đa khoảng 100 km trở
lại.
Mạng diện rộng ( WAN - Wide Area Network ) : là mạng có diện tích bao phủ rộng
lớn, phạm vi của mạng có thể vượt biên giới quốc gia thậm chí cả lục địa.
Mạng toàn cầu ( GAN - Global Area Network ) : là mạng có phạm vi trải rộng toàn cầu.
1.2.2 Phân loại theo kỹ thuật chuyển mạch:
Nếu lấy kỹ thuật chuyển mạch làm yếu tố chính để phân loại sẽ có: mạng chuyển
mạch kênh, mạng chuyển mạch thông báo và mạng chuyển mạch gói.
Mạng chuyển mạch kênh (Circuit Switching Network): Khi có hai trạm cần trao đổi
thông tin với nhau thì giữa chúng sẽ được thiết lập một “kênh” cố định và được duy trì cho
đến khi một trong hai bên ngắt kết nối. Dữ liệu chđược truyền theo con đường cố định này.
Kỹ thuật chuyển mạch kênh được sử dụng trong các kết nối ATM (Asynchronous Transfer
Mode) và Dial-up ISDN (Integrate Services Digital Networks). Ví dụ về mạng chuyển
mạch kênh là mạng điện thoại.
Ưu điểm:
-Kênh truyền được dành riêng trong suốt quá trình giao tiếp do đó tốc độ truyền dữ
liệu được bảo đảm. Điều này là đặc biệt quan trọng đối với các ứng dụn
thời gian thực như audio và video.
Phương pháp chuyển mạch kênh có hai nhược điểm chính:

− Phải tốn thời gian để thiết lập đường truyền cố định giữa hai trạm.
− Hiệu suất sử dụng đường truyền không cao, vì có lúc trên kênh không có dữ liệu
truyền của hai trạm kết nối, nhưng các trạm khác không được sử dụng kênh
truyền này.
Mạng chuyển mạch thông báo (Message Switching Network): Không giống chuyển
mạch kênh, chuyển mạch thông báo không thiết lập liên kết dành riêng giữa hai trạm giao
tiếp mà thay vào đó mỗi thông báo được xem như một khối độc lập bao gồm cả địa chỉ
nguồn và địa chỉ đích. Mỗi thông báo sẽ được truyền
qua các trạm trong mạng cho đến khi nó đến được địa chỉ đích, mỗi trạm trung gian sẽ nhận
và lưu trữ thông báo cho đến khi trạm trung gian kế tiếp sẵn sàng để nhận thông báo sau đó
nó chuyển tiếp thông báo đến trạm kế tiếp, chính vì lý do này mà mạng chuyển mạch thông
báo còn có thể được gọi là mạng lưu và chuyển tiếp (Store and Forward Network). Một ví
dụ điển hình về kỹ thuật này là dịch vụ thư điện tử (e-mail), nó được chuyển tiếp qua các
trạm cho đến khi tới được đích cần đến.
Các ưu điểm của phương pháp:
− Cung cấp một sự quản lý hiệu quả hơn đối với sự lưu thông của mạng. Bằng cách
gán các thứ tự ưu tiên cho các thông báo và đảm bảo các thông báo có độ ưu tiên cao hơn
sẽ được lưu chuyển thay vì bị trễ do quá trình lưu thông trên mạng.
− Giảm sự tắc nghẽn trên mạng. Các trạm trung gian có thể lưu giữ các thông báo
cho đến khi kênh truyền rảnh mới gửi thông báo đi.
− Tăng hiệu quả sử dụng kênh truyền, với kỹ thuật này các trạm có thể dùng
chung kênh truyền.
Hai nhược điểm chính:
− Nhược điểm của kỹ thuật này là độ trễ do việc lưu trữ và chuyển tiếp thông báo là
không phù hợp với các ứng dụng thời gian thực.
− Các trạm trung gian phải có dung lượng bộ nhớ rất lớn để lưu giữ các thông báo
trước khi chuyển tiếp nó tới một trạm trung gian khác (kích thước của các thông báo không
bị hạn chế).
1.3 Một số Topology mạng thông dụng
Topology của mạng là cấu trúc hình học không gian mà thực chất là cách bố trí phần

tử của mạng cũng như cách nối giữa chúng với nhau. Thông thường mạng có 3 dạng cấu
trúc là: Mạng dạng hình sao (Star Topology), mạng dạng vòng (Ring Topology) và mạng
dạng tuyến (Linear Bus Topology). Ngoài 3 dạng cấu hình kể trên còn có một số dạng khác
biến tướng từ 3 dạng này như mạng phân cấp, mạng full mesh, mạng partial mesh…
Hình 1.3 Các dạng topology
Mạng dạng hình sao (Star topology)
Mạng dạng hình sao bao gồm một trung tâm và các nút thông tin. Các nút thông tin là các
trạm đầu cuối, các máy tính và các thiết bị khác của mạng. Trung tâm của mạng điều phối
mọi hoạt động trong mạng với các chức nǎng cơ bản là:
-Xác định cặp địa chỉ gửi và nhận được phép chiếm tuyến thông tin và liên lạc với nhau.
-Cho phép theo dõi và sử lý sai trong quá trình trao đổi thông tin.
-Thông báo các trạng thái của mạng...
Các ưu điểm của topo mạng hình sao:
-Hoạt động theo nguyên lý nối song song nên nếu có một thiết bị nào đó ở một nút
thông tin bị hỏng thì mạng vẫn hoạt động bình thường.
-Cấu trúc mạng đơn giản và các thuật toán điều khiển ổn định.
-Mạng có thể mở rộng hoặc thu hẹp tuỳ theo yêu cầu của người sử dụng.
Nhược điểm:
-Khả nǎng mở rộng mạng hoàn toàn phụ thuộc vào khả nǎng của trung tâm . Khi trung
tâm có sự cố thì toàn mạng ngừng hoạt động.
-Mạng yêu cầu nối độc lập riêng rẽ từng thiết bị ở các nút thông tin đến trung tâm.
Khoảng cách từ máy đến trung tâm rất hạn chế (100 m).
Nhìn chung, mạng dạng hình sao cho phép nối các máy tính vào một bộ tập trung (HUB
hay Switch) bằng cáp xoắn, giải pháp này cho phép nối trực tiếp máy tính với HUB/Switch
không cần thông qua trục BUS, tránh được các yếu tố gây ngưng trệ mạng. Gần đây, cùng
với sự phát triển switching hub, mô hình này ngày càng trở nên phổ biến và chiếm đa số các
mạng mới lắp.
Mạng hình tuyến (Bus Topology)
Theo cách bố trí hành lang các đường như hình vẽ thì máy chủ (host) cũng như tất cả các
máy tính khác (workstation) hoặc các nút (node) đều được nối về với nhau trên một trục

đường dây cáp chính để chuyển tải tín hiệu.
Tất cả các nút đều sử dụng chung đường dây cáp chính này. Phía hai đầu dây cáp được bịt
bởi một thiết bị gọi là terminator. Các tín hiệu và gói dữ liệu (packet) khi di chuyển lên
hoặc xuống trong dây cáp đều mang theo điạ chỉ của nơi đến.
Ưu điểm của topomạng bus:
- Dùng dây cáp ít, dễ lắp đạt
- Không giới hạn độ dài cáp
Nhược điểm:
- Sẽ gây ra nghẽn mạng khi chuyển lưu lượng dữ liệu lớn
- Khi một trạm trên đường truyền bị hỏng thì các trạm khác cũng phải ngừng hoạt động
Mạng dạng vòng (Ring Topology)
Mạng dạng này, bố trí theo dạng xoay vòng, đường dây cáp được thiết kế làm thành một
vòng khép kín, tín hiệu chạy quanh theo một chiều nào đó. Các nút truyền tín hiệu cho nhau
mỗi thời điểm chỉ được một nút mà thôi. Dữ liệu truyền đi phải có kèm theo địa chỉ cụ thể
của mỗi trạm tiếp nhận.
Ưu điểm của topo mạng Ring:
-Mạng dạng vòng có thuận lợi là có thể nới rộng ra xa, tổng đường dây cần thiết ít hơn so
với hai kiểu trên.
Nhược điểm:
-Đường dây phải khép kín, nếu bị ngắt ở một nơi nào đó thì toàn bộ hệ thống cũng bị
ngừng.
Mạng dạng kết hợp
Kết hợp hình sao và tuyến ( star/Bus Topology )
Cấu hình mạng dạng này có bộ phận tách tín hiệu (spitter) giữ vai trò thiết bị trung tâm, hệ
thống dây cáp mạng có thể chọn hoặc Ring Topology hoặc Linear Bus Topology.
Ưu điểm của cấu hình này là mạng có thể gồm nhiều nhóm làm việc ở cách xa nhau,
ARCNET là mạng dạng kết hợp Star/Bus Topology. Cấu hình dạng này đưa lại sự uyển
chuyển trong việc bố trí đường dây tương thích dễ dàng đối với bất cứ toà nhà n
Kết hợp hình sao và vòng (Star/Ring Topology)
Cấu hình dạng kết hợp Star/Ring Topology, có một "thẻ bài" liên lạc (Token) được chuyển

vòng quanh một cái HUB trung tâm. Mỗi trạm làm việc (workstation) được nối với HUB -
là cầu nối giữa các trạm làm việc và để tǎng khoảng cách cần thiết.
Mạng full mesh
Topo này cho phép các thiết bị kết nối trực tiếp với các thiết bị khác mà không cần phải qua
bộ tập trung như Hub hay Switch.
Ưu điểm:
- Các thiết bị hoạt động độc lập, khi thiết bị này hỏng vẫn không ảnh hưởng đến thiết bị
khác
Nhược điểm:
- Tiêu tốn tài nguyên về memory, về xử lý của các máy trạm
- Quản lý phức tạp
Mạng phân cấp (Hierarchical)
Mô hình này cho phép quản lý thiết bị tập chung, các máy trạm được đặt theo từng lớp tùy
thuộc vào chức năng của từng lớp, ưu điểm rõ ràng nhất của topo dạng này là khả năng
quản lý, bảo mật hệ thống,nhưng nhược điểm của nó là việc phải dùng nhiều bộ tập trung
dẫn đến chi phí nhiều.
1.4 Giao thức mạng
Việc trao đổi thông tin dù là đơn giản nhất cũng phải tuân theo những nguyên tắc
nhất định. Đơn giản như hai người nói chuyện với nhau, muốn cho cuộc nói chuyện đạt kết
quả thì ít nhất cả hai người phải ngầm tuân thủ quy ước : khi một người nói thì người kia
phải biết lắng nghe và ngược lại. Việc truyền thông trên mạng cũng vậy. Cần có quy tắc,
quy ước truyền thông về nhiều mặt : khuôn dạng cú pháp của dữ liệu, các thủ tục gởi, nhận
dữ liệu, kiểm soát hiệu quả nhất chất lượng truyền thông tin. Tập hợp những quy tắc, quy
ước truyền thông đó được gọi là giao thức của mạng (protocol).
Một tập hợp tiêu chuẩn để trao đổi thông tin giữa hai hệ thống máy tính hoặc hai
thiết bị máy tính với nhau được gọi là giao thức. Các giao thức này còn được gọi là các
nghi thức hoặc định ước của máy tính.
1.4.1 Giao thức TCP/IP
Giao thức TCP/IP được phát triển từ mạng ARPANET và Internet và được dùng
như giao thức mạng và vận chuyển trên mạng Internet. TCP (Transmission Control

Protocol) là giao thức thuộc tầng vận chuyển và IP (Internet Prorocol) là giao thức thuộc
tầng mạng của mô hình OSI. Họ giao thức TCP/IP hiện nay là giao thức được sử dụng rộng
rãi nhất để liên kết các máy tính và các mạng.
Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thức TCP/IP để
liên kết với nhau thông qua nhiều hệ thống mạng với kỹ thuật khác nhau. Giao thức TCP/IP
thực chất là một họ giao thức cho phép các hệ thống mạng cùng làm việc với nhau thông
qua việc cung cấp phương tiện truyền thông liên mạng.
a. Giao thức IP
Nhiệm vụ chính của giao thức IP là cung cấp khả năng kết nối các mạng con thành
liên kết mạng để truyền dữ liệu, vai trò của IP là vai trò của giao thức tầng mạng trong mô
hình OSI. Giao thức IP là một giao thức kiểu không hướng kết nối (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.
Để định danh các trạm (host) trong liên mạng được người ta sử dụng địa chỉ IP có
độ dài 32 bits. Mỗi giao diện trong một máy có hỗ trợ giao thức IP đều được gán một địa
chỉ IP (một máy tính có thể gắn với nhiều mạng do vậy có thể có nhiều địa chỉ IP). Địa chỉ
IP gồm 3 phần: bit định danh lớp mạng, địa chỉ mạng (netID) và địa chỉ máy (hostID). Mỗi
địa chỉ IP được phân thành 4 vùng (mỗi vùng 1 byte), có thể biểu thị dưới dạng thập phân,
bát phân, thập lục phân hay nhị phân. Cách viết phổ biến nhất là dùng ký pháp thập phân có
dấu chấm (dotted decimal notation) để tách các vùng. Mục đích của địa chỉ IP là để định
danh duy nhất cho một máy tính bất kỳ trên liên mạng.
Do tổ chức và độ lớn của mạng con (subnet) của liên mạng có thể khác nhau, người
ta chia các địa chỉ IP thành 5 lớp, ký hiệu là A, B, C, D, và E. Trong lớp A, B, C chứa địa
chỉ có thể gán được. Lớp D dành riêng cho lớp kỹ thuật multicasting. Lớp E được dành cho
những ứng dụng trong tương lai.
Hình 1.5. Cấu trúc của các lớp địa chỉ IP
NetID dùng để nhận dạng từng mạng riêng biệt. Các mạng liên kết phải có địa chỉ
mạng (netID) riêng cho mỗi mạng. Ở đây các bit đầu tiên của byte đầu tiên được dùng để
định danh lớp địa chỉ (0 - lớp A, 10 - lớp B, 110 - lớp C, 1110 - lớp D và 11110 - lớp E).
Ở đây ta xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, B, C.
Phân lớp của địa chỉ IP như sau:

- Mạng lớp A: địa chỉ mạng (netID) là 1 byte và địa chỉ host (hostID) là 3 byte. Lớp A cho
phép định dạng tới 126 mạng, tối đa hơn 16 triệu host trên mỗi mạng. Lớp này được dùng
cho các mạng có số trạm cực lớn.
- Mạng lớp B: địa chỉ mạng (netID) là 2 byte và địa chỉ host (hostID) là 2 byte. Lớp B cho
phép định danh tới 16382 mạng, với tối đa 65534 host trên mỗi mạng.
- Mạng lớp C: địa chỉ mạng (netID) là 3 byte và địa chỉ host (hostID) là 1 byte. Lớp C cho
phép định danh tới 2 triệu mạng, với tối đa 254 host trên mỗi mạng. Lớp này được dùng
cho các mạng có ít trạm.
Hình 1.6. Bảng phân lớp địa chỉ IP
Một số địa chỉ có tính chất đặc biệt: một địa chỉ có hostID = 0 được dùng để hướng
tới mạng định danh bởi vùng netID. Ngược lại, một địa chỉ có vùng hostID gồm toàn số 1
dùng để hướng tới tất cả các host nối vào mạng netID, và nếu vùng netID cũng gồm toàn số
1 thì nó hướng tới tất cả các host liên mạng.
Cần lưu ý rằng địa chỉ IP được dùng để định danh các host và mạng ở tầng OSI, và
chúng không phải là các địa chỉ vật lý (hay địa chỉ MAC) của các trạm trên đó một mạng
cục bộ (Ethernet, Token Ring).
Trong nhiều trường hợp, một mạng có thể được chia làm nhiều mạng con (subnet),
lúc đó có thể đưa thêm các vùng subnetid để định danh các mạng con. Vùng subnetid được
lấy từ vùng hostID, cụ thể đối với lớp A, B, C như ví dụ sau:
Hình 1.7. Ví dụ địa chỉ IP khi bổ sung subnetid
b. Giao thức TCP
TCP là một giao thức hướng kết nối, có 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 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 sau khi
gửi xong một gói tin nó sẽ chờ nhận một biên nhận từ bên nhận rằng đã nhận được đúng
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 max nào đó mà vẫn chưa 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

đ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 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 một cách đúng đắn như ở phía gửi, giao thức
TCP sẽ đánh số thứ tự cho từng gói tin 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ự ban đầu 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), FPT (File Tranfer Protocol),… Các ứng dụng này đỏi hỏi một kênh giao tiếp tin
cậy bởi thứ tự 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.
1.4.2 Giao thức UDP
UDP (User Datagram Protocol) là giao thức không hướng kết nối, được sử dụng thay thế
cho TCP theo yêu cầu của từng ứng dụng. Khác với TCP, UDP không có các chức năng
thiết lập và kết thúc kết nối. Tương tự như IP, nó cũng không cung cấp cơ chế báo nhận
(acknowledgment), không sắp xếp tuần tự các gói tin (datagram) đến và có thể dẫn đến tình
trạng mất hoặc trùng dữ liệu mà không có cơ chế thông báo lỗi cho người gửi. Qua đó ta
thấy UDP cung cấp các dịch vụ vận chuyển không tin cậy như trong TCP.
Khuôn dạng UDP datagram được mô tả với các vùng tham số đơn giản hơn nhiều so
với TCP segment.
Hình 1.4.2 Khuôn dạng của gói tin UDP
1.5 . Các mô hình hoạt động của mạng máy tính
Mô hình hoạt động của mạng máy tính có hai loại:
- Mô hình mạng hoạt động theo dạng peer to peer (Ngang hàng)
- Mô hình mạng hoạt động theo dạng clients/server
1.5.1 Mô hình mạng hoạt động theo dạng peer to peer
Không tồn tại bất kỳ máy chuyên dụng hoặc cấu trúc phân cấp giữa các máy tính, mọi
máy tính đều bình đẳng và có vai trò như nhau. Thông thường mỗi máy tính hoạt động với
cả vai trò máy khách và máy phục vụ, vì vậy không có máy nào được chỉ định quản lý toàn
mạng. Người dùng ở từng máy tự quyết định dữ liệu nào trên máy của mình sẽ được chia sẻ
để dùng chung trên mạng.

Hình 1.5.1 Mô hình mạng hoạt động theo dạng peer to peer
Ưu điểm
- Các peer tham gia vào mạng có thể đóng góp tài nguyên chia sẻ với nhau, tài
nguyên có thể riêng lẻ và có thể truy cập tài nguyên ở bất các các nodes nào trong mạng.
- Các peer đóng vai tròn như cả Client khi truy vấn thông tin và Server khi cung cấp
thông tin.
- Không cần Server riêng, khi hệ thống càng mở rộng thì khả năng hoạt động càng
tốt.
- Chi phí thấp, dễ cài đặt và bảo trì
- Nhược điểm
- Liên quan đến văn hóa trong chia sẻ về các tài nguyên có bản quyền.
- Không đáng tin cậy và không tốt cho các ứng dụng cơ sở dữ liệu cần bảo mật cao.
1.5.2 Mô hình mạng hoạt động theo dạng clients/ server
Những mô hình LAN trong thời kỳ đầu (tập trung và máy phục vụ tệp) được xây
dựng chủ yếu dựa trên phương thức chia xẻ tài nguyên dùng chung: chia xẻ sử dụng đường
truyền theo thời gian, chia xẻ các tài nguyên vật lý khác và dùng chung tài nguyên thông tin
là dữ liệu và các chương trình xử lý chúng trên một hoặc nhiều máy phục vụ (Server) của
mạng.
Hình 1.5.2.1 Mô hình Client/Server
Mô hình phần mềm Client/Server là mô hình giải pháp phần mềm cho việc khắc
phục tình trạng quá tải trên mạng và vượt qua những ngăn cách về sự khác nhau trong cấu
trúc vật lý cũng như hệ điều hành của các hệ thống máy tính khác nhau trên mạng.
Mỗi phần mềm xây dựng theo mô hình Client/Server sẽ được chia làm hai phần:
phần hoạt động trên máy phục vụ gọi là phần phía Server và phần hoạt động trên trạm làm
việc gọi là phần phía Client. Với mô hình này các trạm làm việc cũng được gọi là các
Client (hay máy Client) còn các máy phục vụ gọi là các Server. Nhiệm vụ của mỗi phần
được quy định như sau:
• Phần phía Server quản lý các giao tiếp môi trường bên ngoài tại Server và với các
Client, tiếp nhận các yêu cầu dưới dạng các xâu ký tự (query string), phân tích các
query string, xử lý dữ liệu và gửi kết quả trả lời về phía các Client.

• Phần phía Client tổ chức giao tiếp với người dùng, với môi trường bên ngoài tại
trạm làm việc và với phía Server, tiếp nhận yêu cầu của người dùng, thành lập các
query string gửi về phía Server, tiếp nhận kết quả và tổ chức trình diễn chúng.
Hình 1.5.2.2 Mô hình phần mềm Client/Server
Đặc điểm của mô hình Client/Server:
Máy phục vụ và máy khách thông minh (máy phục vụ trong mô hình này không phải
chỉ đơn thuần là phục vụ tệp mà gồm cả xử lý dữ liệu)
• Các máy chia sẻ chung đường truyền thông tốc độ cao (hàng nghìn Kbps)
• Mỗi phần mềm ứng dụng được xây dựng thành 2 phần: chương trình phục vụ và
chương trình khách
• Lưu trữ dữ liệu tập trung tại máy phục vụ
• Xử lý dữ liệu phân tán trên các máy khách
• Thông tin trên đường truyền là các xâu truy vấn và trả lời
Hình 1.2.2.3 Ví dụ về một số chương trình quản lý xây dựng trên mô hình Client/Server
Ưu điểm:
• Với mô hình này, dung lượng thông tin trên đường truyền được giảm đi đáng kể,
đường truyền tốc độ thấp có thể sử dụng được vì:
o Từ phía Server, không phải toàn bộ dữ liệu được gửi đi trên đường truyền mà
chỉ là một số thành phần của chúng sau khi đã được xử lý qua các lọc thông
tin phía Server.
o Không còn các chương trình phải gửi đi trên đường truyền từ các máy phục
vụ tới các trạm làm việc.
o Từ phía các trạm làm việc, không còn phải cập nhật toàn bộ dữ liệu sau khi
đã sử lý về máy phục vụ.
• Với mô hình này dễ dàng tổ chức vượt qua sự khác biệt về cấu trúc vật lý và hệ điều
hành giữa các hệ thống máy tính khác nhau vì giao tiếp thông tin giữa chúng là các
dữ liệu dạng ASCII text.
• Tăng hiệu suất hoạt động của hệ thống
Nhược điểm:
• Ưu thế của phần mềm Client/Server được thực hiện qua chính các đặc điểm ở

trên. Nếu một phần mềm được xây dựng từ hai phía Client và Server nhưng lại thực
hiện việc gửi các chương trình tính toán hay gửi dữ liệu dạng nguyên gốc từ phía
Server về Client thì ý nghĩa hiệu quả của Client/Server không còn nữa.
• Mô hình Client/ Server cũng bộc lộ những nhược điểm do những khó khăn
trong việc xây dựng và phát triển các phần mềm theo mô hình của nó. Người lập
trình phải tổ chức quản lý được các giao tiếp giữa hai phần của chương trình và giao
tiếp với môi trường bên ngoài tại cả hai phía Server và phía Client. Công tác bảo trì
và phát triển phải được thực hiện cả từ hai phía. Vấn đề cũng trở nên phức tạp hơn
đối với mạng có nhiều Client phân bố trên diện rộng.
1.6 Kết luận
CHƯƠNG II LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINSHOCK
WinSock API (Windows Sockets Application Programming Interface) là thư viện các hàm
giao diện lập trình mạng cho Microsoft Windows. WinSock tương thích với họ nghi thức
mạng TCP/IP.
2.1 Giới thiệu về socket
2.1.1 Giới thiệu
Socket là một giao diện lập trình ứng dụng (API-Application Programming
Interface). Nó đượ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 được hỗ trợ trong 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++, Java, Visual Basic, Visual C++, . . .
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.
Mô hình socket
Hai loại Socket :
Stream Socket :
Dựa trên nghi thức TCP ( Tranmission Control Protocol ), việc truyền dữ liệu chỉ thực hiện
giữa hai quá trình đã thiết lập kết nối. Dữ liệu được truyền tin cậy, đúng trình tự và không

lập lại.
Dữ liệu được truyền như dòng liên tục các byte không phân biệt ranh giới các record
Datagram Socket :
Dựa trên nghi thức UDP ( User Datagram Protocol ), việc truyền dữ liệu không yêu cầu có
sự thiết lập kết nối giữa hai quá trình. Dữ liệu truyền không tin cậy, có thể không đúng
trình tự hoặc lập lại.
Dữ liệu được truyền như dòng các record.
2.1.2 Số hiệu cổng (Port Number) của socket
Để có thể thực hiện các cuộc giao tiếp, một trong hai quá trình phải công bố số hiệu
cổng của socket mà mình sử dụng. Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong
hệ thống. Khi quá trình được gán một số hiệu cổng, nó có thể nhận dữ liệu gởi đến cổng
này từ các quá trình khác. Quá trình còn lại cũng được yêu cầu tạo ra một socket.
Ngoài số hiệu cổng, hai bên giao tiếp còn phải biết địa chỉ IP của nhau. Địa chỉ IP
giúp phân biệt máy tính này với máy tính kia trên mạng TCP/IP. Trong khi số hiệu cổng
dùng để phân biệt các quá trình khác nhau trên cùng một máy tính.

×