Luận văn tốt nghiệp Nguyễn Nhật Bình
Chơng I. Mạng máy tính
Chơng I . Mạng máy tính ..................................................................................4
.I Mạng máy tính ..........................................................................................5
.II Phân loại mạng máy tính..........................................................................5
.II.1. Phân loại theo kiến trúc (topology) của mạng................................5
.II.1.1. Mạng điểm-điểm (point-to-point network)..............................6
.II.1.2. Mạng quảng bá (broadcast network)........................................6
.II.2. Phân loại theo phơng thức chuyển mạch (Swiched Method).........7
.II.2.1. Chuyển mạch kênh (Circuit Swiched Network)......................7
.II.2.2. Chuyển mạch tin báo (Message Swiched Network)................7
.II.2.3. Chuyển mạch gói (Packed Swiched Network).........................7
.II.3. Phân loại theo phạm vi hoạt động...................................................7
.II.3.1. Mạng LAN (Local Area Network)...........................................7
.II.3.2. Mạng MAN (Metropolian Area Network)...............................8
.II.3.3. Mạng WAN (Wide Area Network)..........................................8
.II.3.4. Liên mạng (internet).................................................................8
Chơng II . Giao thức truyền thông và Các mô hình tham chiếu ......................11
.I Giao thức truyền thông............................................................................11
.II Mô hình tham chiếu OSI........................................................................11
.II.1. Giới thiệu mô hình OSI..................................................................11
.II.2. Các tầng của mô hình OSI.............................................................14
.II.2.1. Tầng vật lý (Physical layer)....................................................14
.II.2.2. Tầng liên kết dữ liệu (Data link layer)...................................14
.II.2.3. Tầng mạng (Network layer)...................................................14
.II.2.4. Tầng giao vận (Transport layer).............................................15
.II.2.5. Tầng phiên (Session layer).....................................................15
.II.2.6. Tầng trình diễn (Presentation layer).......................................16
.II.2.7. Tầng ứng dụng (Application layer)........................................16
.II.3. Những vấn đề về OSI.....................................................................16
.III Kiến trúc giao thức IPX/SPX................................................................17
.IV.4. Thuật toán dẫn đờng ....................................................................39
.V tầng giao vận..........................................................................................44
.V.1. Giao thức không kết nối (User Datagram Protocol - UDP).........44
.V.1.1. Gói thông tin UDP..................................................................44
.V.1.2. Phân kênh, hợp kênh và Ports................................................45
.V.2. Giao thức điều khiển truyền tin (Transmission Control Protocol -
TCP) ...........................................................................................................47
.V.2.1. Gói tin TCP ............................................................................50
.V.2.2. Cổng, kết nối và điểm kết nối................................................51
.VI Tầng ứng dụng của TCP/IP...................................................................52
.VI.1. Dịch vụ tên miền (Domain Name Service - DNS).......................53
.VI.2. Đăng nhập từ xa (Telnet)..............................................................55
.VI.3. Th điện tử (Electronic Mail).........................................................56
.VI.4. Giao thức truyền tệp (File Transfer Protocol - FTP)...................58
.VI.5. Nhóm tin (News groups)..............................................................59
.VI.6. Tìm kiếm tệp (Archie)..................................................................59
.VI.7. Tra cứu thông tin theo thực đơn (Gopher)...................................59
.VI.8. Tìm kiếm thông tin theo chỉ số (WAIS)......................................59
.VI.9. Siêu văn bản (WWW)..................................................................60
Chơng IV. Xây dựng ứng dụng truyền tệp........................................................61
.I Giao diện lập trình...................................................................................61
.I.1. Giao diện lập trình...........................................................................61
.I.2. Network I/O và file I/O...................................................................62
.I.3. Làm việc với Socket........................................................................63
.I.3.1. Socket........................................................................................63
.I.3.2. Địa chỉ Socket...........................................................................64
.I.3.3. Một số lời gọi tạo lập socket....................................................66
.I.3.4. Một số lời gọi gửi dữ liệu qua socket......................................70
.I.3.5. Một số lời gọi nhận dữ liệu từ socket......................................71
2
Ch¬ng I . M¹ng m¸y tÝnh
4
Luận văn tốt nghiệp Nguyễn Nhật Bình
.I Mạng máy tính
Mạng máy tính là hệ thống các máy tính độc lập (autonomous) đợc kết
nối với nhau. Khái niệm độc lập ở đây có nghĩa là chúng không có mối
quan hệ chủ/tớ (master/slave) rõ ràng. Hai máy tính đợc gọi là đợc kết
nối với nhau nếu chúng có khả năng trao đổi thông tin. Sự kết nối có
thể thông qua dây dẫn, tia laser, sóng điện từ hay vệ tinh viễn thông...
Việc kết nối các máy tính có những u điểm sau
Sử dụng chung tài nguyên (resource sharing): Chơng trình, dữ liệu,
thiết bị có thể đợc dùng chung bởi ngời dùng từ các máy tính trên
mạng.
Tăng độ tin cậy của hệ thống thông tin (reliability): Nếu một máy
tính hay một đơn vị dữ liệu nào đó bị hỏng thì luôn có thể sử dụng
một máy tính khác hay một bản sao khác của dữ liệu, nhờ đó, khả
năng mạng bị ngừng sử dụng đợc giảm thiểu.
Tạo ra môi trờng truyền thông mạnh giữa nhiều ngời sử dụng
Luận văn tốt nghiệp Nguyễn Nhật Bình
.II.2. Phân loại theo phơng thức chuyển mạch (Swiched
Method)
.II.2.1. Chuyển mạch kênh (Circuit Swiched Network)
Thông tin truyền qua một kênh vật lý cố định, tốc độ và độ tin cậy cao
nhng lãng phí đờng truyền do không sử dụng hết.
.II.2.2. Chuyển mạch tin báo (Message Swiched Network)
Liên lạc đợc thiết lập khi có thông tin cần truyền, thông tin đợc định
dạng gồm header và data và có độ dài không cố định: Mối liên lạc đợc
thiết lập và chỉ giải phóng khi truyền xong dữ liệu do đó không quản lý
đợc thời gian chiếm đờng truyền
.II.2.3. Chuyển mạch gói (Packed Swiched Network)
Thông tin đợc cắt ra thành các gói có độ dài quy định Ví dụ Erthenet
IEEE 802.3 chia message thành các gói 1500 bytes. Mỗi gói đều có
header và data. Các gói của các message khác nhau có thể truyền xen
kẽ trên đờng truyền do đó thời gian chờ đợi chung của hệ thống giảm.
.II.3. Phân loại theo phạm vi hoạt động
Theo phạm vi hoạt động, ngời ta chia mạng máy tính thành những loại
sau
.II.3.1. Mạng LAN (Local Area Network)
Thờng là mạng đợc sử dụng cho một công ty, trờng học hay trong một
toà nhà, khoảng cách tơng đối nhỏ (cỡ vài trăm m tới vài Km) tốc độ
truyền lớn, độ trễ nhỏ.
(Phụ lục A trình bày một số mạng cục bộ thờng đợc sử dụng)
7
Luận văn tốt nghiệp Nguyễn Nhật Bình
.II.3.2. Mạng MAN (Metropolian Area Network)
Mạng đợc cài đặt trong phạm vi một đô thị hay trung tâm kinh tế - xã
hội (có bán kính khoảng 100 Km)
.II.3.3. Mạng WAN (Wide Area Network)
thay đổi, những địa chỉ mới luôn luôn đợc cập nhật từng giây chúng ta
có thể truy nhập địa chỉ Web site của tổ chức Network Wizards
/>để biết những số liệu mới nhất
Thời gian Số lợng máy
Tháng 1 năm 1996 14,252,000
Tháng 1 năm 1997 21,819,000
Tháng 1 năm 1998 29,670,000
Những máy chủ (host) mạnh thờng sử dụng những hệ điều hành đa
nhiệm, ví dụ nh UNIX, để ngời sử dụng kết nối vào, nh thế có nghĩa là
số máy của ngời sử dụng mạng nhiều hơn những con số trên. Những
máy chủ đợc định vị tại các điểm nh th viện, các trờng đại học, các tổ
chức chính phủ, các đại lý, các công ty, các trờng trung học, tiểu học
trên toàn thế giới. Những máy chủ này đợc kết nối với nhau qua đờng
điện thoại và chỉ mất khoảng 640/1000 giây để bắt đầu nhận thông báo
từ Bắc Mỹ tới Nam cực.
Các dịch vụ mà Internet cung cấp
Phần lớn ngời sử dụng Internet không cần biết đến của công nghệ sử
dụng trên Internet, đối với họ Internet chỉ đơn giản là một bộ chơng trình
phần mềm mang lại cho họ những khả năng truyền thông có ích. Chính
điều này mang lại cho Internet số ngời dùng đông đảo tới nh vậy.
Các dịch vụ mức ứng dụng ban đầu trên Internet
Th điện tử (Electronic mail) Cho phép ngời dùng ngồi trớc máy tính
tại nhà mình gửi E-mail tới bất cứ ai ở đâu trên thế giới nếu họ có địa
9
Luận văn tốt nghiệp Nguyễn Nhật Bình
chỉ E-mail. Họ có thể tham gia các nhóm thảo luận (discussion
group) về những đề tài khác nhau hay bắt đầu một nhóm mới về
những chủ đề mà họ a thích.
Truyền file (File Transfer) Nếu cần một chơng trình phần mềm mới
nh các tiện ích nén file, các chơng trình diệt virus, một phần mềm trò
truyền nhận thông tin giữa các máy tính trên mạng.
Các mạng máy tính hiện đại đợc thiết kế bằng cách phân chia cấu trúc
ở mức độ cao nhằm làm giảm sự phức tạp khi thiết kế. Các giao thức
mạng thờng đợc chia làm các tầng (layer), mỗi tầng đợc xây để dựng
dựa trên dịch vụ của tầng dới nó và cung cấp dịch vụ cho tầng cao hơn.
.II Mô hình tham chiếu OSI
.II.1. Giới thiệu mô hình OSI
Mô hình mạng máy tính do tổ chức tiêu chuẩn hoá quốc tế
(International Standard Organization - ISO) đa ra năm 1983 đợc gọi là
mô hình tham chiếu các hệ thống mở (Open Systems Interconect
referent model - OSI). Các điều khoản mô tả trong mô hình đợc sử
dụng rộng rãi trong lý thuyết truyền thông, do đó, trong thực tế khó có
thể nói về truyền thông mà không sử dụng thuật ngữ của OSI.
11
Luận văn tốt nghiệp Nguyễn Nhật Bình
Mô hình tham chiếu OSI chứa 7 tầng mô tả chức năng của giao thức
truyền thông. Mỗi tầng của mô hình OSI miêu tả một chức năng đợc
thực hiện khi dữ liệu di chuyển giữa các ứng dụng giữa các mạng.
Tầng ứng dụng bao gồm các trình ứng dụng sử dụng mạng.
Tầng trình diễn tiêu chuẩn hoá dữ liệu cung cấp cho tầng ứng dụng.
Tầng phiên quản trị các phiên làm việc giữa các ứng dụng.
Tầng giao vận cung cấp kết nối trạm-trạm, xử lý lỗi.
Tầng mạng quản trị việc kết nối qua mạng cho các tầng trên.
Tầng liên kết dữ liệu cung cấp phân phát dữ liệu tin cậy qua đờng
truyền vật lý.
Tầng vật lý định rõ các đặc thù của thiết bị mạng.
Các lớp giao thức đợc xếp chồng lớp nọ trên lớp kia. Chính sự xuất hiện
của nó, cấu trúc thờng đợc gọi là stack hoặc giao thức xếp chồng.
Việc phân tầng của OSI tuân theo một số nguyên tắc sau
Một lớp đợc tạo ra khi cần đến mức trừu tợng hoá tơng ứng.
thấp hơn để chuyển dữ liệu qua mạng phía dới. Dữ liệu chuyển xuống
ngăn xếp từ tầng này xuống tầng thấp hơn cho tới khi đợc truyền qua
mạng nhờ giao thức của tầng vật lý. ở đầu nhận, dữ liệu đi lên ngăn xếp
tới ứng dụng nhận. Những tầng riêng lẻ không cần biết các tầng trên và
dới nó xử lý ra sao, nó chỉ cần biết cách chuyển nhận thông tin từ các
tầng đó. Sự cô lập các hàm truyền thông trên các tầng khác nhau giảm
thiểu sự tích hợp công nghệ của đầu vào mỗi bộ giao thức. Các ứng
dụng mới có thể thêm vào mà không cần thay đổi tầng vật lý của mạng,
13
Luận văn tốt nghiệp Nguyễn Nhật Bình
phần cứng có thể đợc bổ sung mà không cần viết lại các phần mềm
ứng dụng.
.II.2. Các tầng của mô hình OSI
.II.2.1. Tầng vật lý (Physical layer)
Tầng vật lý liên quan tới việc truyền dòng bit giữa các máy bằng
kênh truyền thông vật lý, ở đây, cấu trúc của dữ liệu không đợc quan
tâm đến.
Việc thiết kế tầng vật lý cần quan tâm đến các vấn đề về ghép nối
cơ khí, điện tử, thủ tục và môi trờng truyền tin bên dới nó ví dụ mức
điện áp tơng ứng với bit 0 - 1, thời gian tồn tại của xung...
.II.2.2. Tầng liên kết dữ liệu (Data link layer)
Liên kết, thiết lập, duy trì, huỷ bỏ các liên kết dữ liệu là nhiệm vụ của
tầng data link.
Ngoài ra tầng data link còn kiểm soát lỗi đờng truyền, thông lợng.
Tầng này thực hiện việc đóng gói thông tin gửi thành các frame, gửi các
frame một cách tuần tự đi trên mạng, xử lý các thông báo xác nhận
(Acknowledgement frame) do bên nhận gửi về. Xác định ranh giới giữa
các frame bằng cách ghi một số byte đặc biệt vào đầu và cuối frame.
Giải quyết vấn đề thông lợng truyền giữa bên gửi và bên nhận (Vấn đề
này có thể đợc giải quyết bởi một số lớp trên).
số dịch vụ hữu ích cho ngời sử dụng nh cho phép ngời dùng logon
vào hệ thống chia sẻ thời gian, truyền tệp giữa các máy tính.
15
Luận văn tốt nghiệp Nguyễn Nhật Bình
Quản lý token: cơ chế thẻ bài đợc tầng phiên cung cấp để tránh hiện
tợng tranh chấp đờng truyền trên mạng.
Thực hiện đồng bộ (Synchronization): thực hiện đối với những dữ liệu
lớn bằng cách thêm vào các thông tin kiểm tra, sửa lỗi.
.II.2.6. Tầng trình diễn (Presentation layer)
Giải quyết vấn đề liên quan tới cú pháp và ngữ nghĩa của thông tin
nh chuyển đổi thông tin theo một chuẩn nào đó đợc cả hai bên sử
dụng (mã ASCII - EDBCDIC).
Nén/giãn dữ liệu để giảm số lợng bit truyền trên mạng.
Mã hoá dữ liệu để thực hiện quyền truy cập.
.II.2.7. Tầng ứng dụng (Application layer)
Tầng ứng dụng cung cấp giao diện sử dụng cho ngời dùng và môi tr-
ờng truyền tin.
Thực hiện chức năng chuyển file trong đó có giải quyết vấn đề
không tơng thích nh cách đặt tên file hay các mã điều khiển trong
một tệp văn bản...
Cung cấp các dịch vụ Electronic mail, Remote login, Directory
lookup...
.II.3. Những vấn đề về OSI
Bản thân OSI không phải là một kiến trúc mạng bởi vì nó không chỉ ra
chính xác các dịch vụ và các nghi thức đợc sử dụng trong mỗi tầng. Mô
hình này chỉ ra mỗi tầng cần thực hiện nhiệm vụ gì. ISO đã đa ra các
tiêu chuẩn cho từng tầng, nhng các tiêu chuẩn này không phải là một
bộ phận của mô hình tham chiếu.
Mô hình OSI ra đời sau khi các giao thức TCP/IP (TCP/IP sẽ đợc trình
bày ở phần sau) đã đợc sử dụng rộng rãi, nhiều công ty đã đa ra các
Netware ra đời trớc OSI và không dựa trên mô hình này.
17
Luận văn tốt nghiệp Nguyễn Nhật Bình
Tầng vật lý và tầng Data link có thể đợc chọn trong số nhiều chuẩn
công nghiệp khác nhau bao gồm Ethernet, IBM token ring và
ARCnet.
Tầng mạng không định hớng nối kết, không bảo đảm (unreliable
connectionless) có tên là IPX (Internet Packet eXchange). Nó
chuyển các packet từ nguồn tới đích một cách trong suốt với ngời
dùng ngay cả khi nguồn và đích nằm ở các mạng khác nhau. IPX sử
dụng địa chỉ 12 byte.
Tầng giao vận:
Giao thức NCP (Network Core Protocol) cung cấp nhiều dịch
vụ khác ngoài việc vận chuyển dữ liệu của ngời sử dụng, nó
chính là trái tim của Novell Netware.
Giao thức thứ hai của tầng này là SPX (Sequenced Packet
eXchange). Nó chỉ thực hiện việc vận chuyển.
Các ứng dụng có thể lựa chọn sử dụng một trong các giao thức của
tầng này ví dụ hệ thống file sử dụng NCP, Lotus Note sử dụng SPX.
Tầng Application nằm trên cùng, có nhiều giao thức khác nhau cung
cấp cho ngời sử dụng các dịch vụ nh đã trình bày ở trên.
.III.2. Gói tin IPX
Điểm mấu chốt của kiến trúc IPX/SPX là gói tin IPX có cấu trúc nh sau
Offset Field Length (byte)
0 Checksum 2
2 Packet length 2
4 Transport control 1
5 Packet type 1
6 Destination Address 12
18 Source Address 12
Vào cuối những năm 1960 và đầu 1970, Trung tâm nghiên cứu cấp cao
(Advanced Research Projects Agency - ARPA) thuộc bộ quốc phòng
Mĩ (Department of Defense - DoD) đợc giao trách nhiệm phát triển
mạng ARPANET. Mạng ARPANET bao gồm mạng của những tổ chức
quân đội, các trờng đại học và các tổ chức nghiên cứu và đợc dùng để
hỗ trợ cho những dự án nghiên cứu khoa học và quân đội (Ngày nay,
ARPA đợc gọi là DARPA). Năm 1984, DoD chia ARPANET ra thành 2
phần: ARPANET sử dụng cho nghiên cứu khoa học và MILNET sử
dụng cho quân đội. Đầu những năm 1980, một bộ giao thức mới đợc đa
ra làm giao thức chuẩn cho mạng ARPANET và các mạng của DoD
mang tên DARPA Internet protocol suit, thờng đợc gọi là bộ giao thức
TCP/IP hay còn gọi tắt là TCP/IP.
Năm 1987 tổ chức nghiên cứu quốc gia Hoa Kỳ (National Science
Foundation - NSF) tài trợ cho việc kết nối 6 trung tâm siêu tính trên toàn
liên bang lại với nhau thành một mạng với tên gọi NSFNET. Về mặt vật
lý, mạng này kết nối 13 điểm làm việc bằng đờng điện thoại cao tốc đợc
gọi là NSFNET backbone. Khoảng 8 đờng backbone đã đợc xây dựng.
NSFNET đợc mở rộng với hàng chục mạng địa phơng kết nối vào nó và
kết nối vào mạng Internet của DARPA. Cả NSFNET và các mạng con
của nó đều sử dụng bộ giao thức TCP/IP.
TCP/IP có một số u điểm nh sau:
Giao thức chuẩn mở sẵn sàng phát triển độc lập với phần cứng và
hệ điều hành. TCP/IP là giao thức lý tởng cho việc hợp nhất phần
cứng và phần mềm khác nhau, ngay cả khi truyền thông trên
Internet. Sự độc lập rành mạch với phần cứng vật lý của mạng cho
20
User Datagram
Protocol
Luận văn tốt nghiệp Nguyễn Nhật Bình
phép TCP/IP hợp nhất các mạng khác nhau. TCP/IP có thể chạy
Luận văn tốt nghiệp Nguyễn Nhật Bình
Có nhiều giao thức trong bộ giao thức truyền thông TCP/IP, nhng hai
giao thức quan trọng nhất đợc lấy tên đặt cho bộ giao thức này là TCP
(Transmission Control Protocol) và IP (Internet Protocol).
Bộ giao thức TCP/IP đợc phân làm 4 tầng
Tầng mạng (Network Layer)
Tầng Internet (Internet Layer)
Tầng giao vận (Transport Layer)
Tầng ứng dụng (Application Layer)
FTP (File transfer Protocol): Giao thức truyền tệp cho phép ngời
dùng lấy hoặc gửi tệp tới một máy khác.
Telnet: Chơng trình mô phỏng thiết bị đầu cuối cho phép ngời dùng
login vào một máy chủ từ một máy tính nào đó trên mạng.
SMTP (Simple Mail Transfer Protocol): Một giao thức th tín điện tử.
22
Application
Layer
Transport Layer
(Host Layer)
Internet Layer
(Getway Layer)
Network
Interface Layer
RIP
SNMP
SMTP
Transsmission Control
Protocol
User Datagram
Protocol
Application
Transport
Internet
Network Interface
Identical
Datagram
Identical
Frame
Identical
Packet
Identical
Message
Physical Net
Host BHost A
Luận văn tốt nghiệp Nguyễn Nhật Bình
Cũng giống nh trong mô hình tham chiếu OSI, dữ liệu gửi từ tầng
Application đi xuống ngăn xếp, mỗi tầng có những định nghĩa riêng về
dữ liệu mà nó sử dụng. Tại nơi gửi, mỗi tầng coi gói tin của tầng trên gửi
xuống là dữ liệu của nó và thêm vào gói tin các thông tin điều khiển của
mình sau đó chuyển tiếp xuống tầng dới. Tại nơi nhận, quá trình diễn ra
ngợc lại, mỗi tầng lại tách thông tin điều khiển của mình ra và chuyển
dữ liệu lên tầng trên.
Application
Data
Transport
TCP
Header
Data
Internet
IP
0 Netid Hostid
Class B
1 0 Netid Hostid
Class C
1 1 0 Netid Hostid
Class D
1 1 1 0 Multicast address
Class E
1 1 1 1 0 Reverved for future use
Sau đây chúng ta sẽ nghiên cứu về 3 lớp địa chỉ chính của TCP/IP đó
là các lớp A,B,C là các lớp đợc sử dụng rộng rãi trên mạng Internet.
.II.2.1. Địa chỉ lớp A
Lớp A sử dụng byte đầu tiên của 4 byte để đánh địa chỉ mạng. Nh hình
trên, nó đợc nhận ra bởi bit đầu tiên trong byte đầu tiên của địa chỉ có
giá trị 0. 3 bytes còn lại đợc sử dụng để đánh địa chỉ máy trong mạng.
Có 126 địa chỉ lớp A (đợc đánh địa chỉ trong byte thứ nhất) với số máy
tính trong mạng là 256
3
- 2 = 16.777.214 máy cho mỗi một địa chỉ lớp A
(do sử dụng 3 bytes để đánh địa chỉ máy). Địa chỉ lớp A thờng đợc cấp
cho những tổ chức có số lợng máy tính lớn.
Nguyên nhân chỉ có 126 networks trong khi dùng 8 bit vì bit đầu tiên
mang giá trị 0 dùng để định nghĩa lớp A vậy con lại 7 bit đánh số từ 0-
127 tuy nhiên ngời ta không sử dụng một địa chỉ chứa toàn các con số
1 hoặc 0 do vậy, chỉ còn lại 126 mạng lớp A đợc sử dụng. Do vậy giá trị
byte đầu tiên của địa chỉ lớp A sẽ luôn luôn nằm trong khoảng từ 1 tới
126, mỗi một byte trong 3 bytes còn lại sẽ có giá trị trong khoảng 1 đến
254.
25