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
.III.1. Kiến trúc giao thức IPX/SPX........................................................17
.III.2. Gói tin IPX ...................................................................................18
.III.3. Cơ chế hoạt động của Novell Netware.........................................19
Chơng III. Giao thức TCP/IP.............................................................................20
.I Giao thức TCP/IP ....................................................................................20
.II Kiến trúc của bộ giao thức TCP/IP .......................................................21
.II.1. Kiến trúc phân tầng của TCP/IP ...................................................21
.II.2. Cơ chế địa chỉ Internet ..................................................................24
.II.2.1. Địa chỉ lớp A ..........................................................................25
.II.2.2. Địa chỉ lớp B ..........................................................................26
.II.2.3. Địa chỉ lớp C...........................................................................26
.II.3. Mạng con và Subnet mask.............................................................27
.III Tầng mạng (Network Layer)................................................................29
1
Luận văn tốt nghiệp Nguyễn Nhật Bình
.IV Tầng Internet (Internet Layer).............................................................30
.IV.1. Gói tin IP.......................................................................................31
.IV.2. Giao thức chuyển địa chỉ ARP (Address Resolution Protocol) và
cơ giao thức chuyển ngợc địa chỉ RARP (Reverse Address Resolution
Protocol).....................................................................................................34
.IV.2.1. Chuyển giao trực tiếp............................................................34
.IV.2.2. Chuyển giao địa chỉ động.....................................................34
.IV.2.3. Gói tin ARP...........................................................................35
.IV.3. Giao thức điều khiển truyền tin (Internet Control Message
Protocol - ICMP)........................................................................................37
.IV.3.1. Gói tin ICMP.........................................................................37
.IV.3.2. Điều khiển dòng dữ liệu .......................................................38
.IV.3.3. Thông báo lỗi .......................................................................38
.IV.3.4. Định hớng lại.........................................................................38
.IV.3.5. Kiểm tra trạm làm việc..........................................................39
.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
Luận văn tốt nghiệp Nguyễn Nhật Bình
.II Mô hình Client-Server............................................................................72
.II.1. Mô hình Client-Server sử dụng dịch vụ không kết nối ................73
.II.2. Mô hình Client-Server sử dụng dịch vụ hớng kết nối ..................75
.III Xây dựng chơng trình truyền tệp..........................................................76
.III.1. Thiết kế và cài đặt chơng trình.....................................................76
.III.1.1. Giao thức ứng dụng đợc xây dựng và sử dụng trong chơng
trình.........................................................................................................76
.III.1.2. Cài đặt chơng trình ...............................................................78
.III.2. Một số vấn đề nảy sinh trong quá trình thực hiện và cách giải
quyết...........................................................................................................81
.III.2.1. Vấn đề chuyển đổi tệp giữa hai hệ điều hành......................81
.III.2.2. Vấn đề về một số lệnh tơng tác.............................................83
K ết luận..............................................................................................................84
Tài liệu tham khảo..............................................................................................86
Phụ lục A Một số kỹ thuật mạng cục bộ.........................................................87
.I Mạng Ethernet và IEEE 802.3.................................................................87
.II Mạng Token-Pasing Rings (IEEE 802.5)..............................................88
.III Mạng Token-Passing Busses (IEEE 802.4).........................................89
Phụ lục B Một số kỹ thuật chọn đờng đi tối u...................................................91
.I Giải thuật Dijkstra cho việc chọn đờng tập trung...................................91
.II Giải thuật Ford& Fulkerson cho việc chọn đờng phân tán...................92
Phụ lục C Văn bản chơng trình (phần client)....................................................93
.I Chơng trình chính (main.c).....................................................................93
.II Th viện sử dụng (Socket.c)...................................................................100
3
LuËn v¨n tèt nghiÖp NguyÔn NhËt B×nh
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
trên phạm vi địa lý rộng: Mục tiêu này ngày càng trở nên quan
trọng nhất là khi mạng máy tính đã phát triển trên phạm vi toàn cầu
nh ngày nay.
Tiết kiệm chi phí: Do tài nguyên đợc dùng chung, hệ thống tin cậy
hơn nên chi phí thiết bị và bảo dỡng của mạng máy tính thấp hơn so
với trờng hợp máy tính riêng lẻ.
.II Phân loại mạng máy tính
.II.1. Phân loại theo kiến trúc (topology) của mạng
Phân loại theo kiến trúc là cách phân loại mạng máy tính theo cách kết
nối các máy tính trong mạng
5
Luận văn tốt nghiệp Nguyễn Nhật Bình
.II.1.1. Mạng điểm-điểm (point-to-point network)
Các đờng truyền nối các cặp nút với nhau, mỗi nút có trách nhiệm lu trữ
tạm thời sau đó chuyển tiếp dữ liệu tới đích. Cách làm việc này còn gọi
là lu và chuyển tiếp (store-and-forward). Mạng điểm-điểm cần sử dụng
lợng cáp nối lớn hoặc nhiều đờng điện thoại thuê riêng (leased
telephone lines), mỗi đờng nối một cặp điểm làm việc. Nếu 2 điểm làm
việc muốn gửi thông tin cho nhau mà không có đờng truyền trực tiếp, dữ
liệu của chúng cần đợc truyền qua một số nút khác do đó, thuật toán
dẫn đờng có vai trò rất quan trọng trong kiến trúc mạng điểm-điểm.
.II.1.2. Mạng quảng bá (broadcast network)
Tất cả các nút cùng dùng chung một đờng truyền vật lý. Dữ liệu đợc
tiếp nhận bởi tất cả các máy tính, nếu máy tính nào kiểm tra thấy gói tin
đợc gửi cho mình, nó sẽ giữ lại và xử lý. Các mạng quảng bá thờng cho
phép sử dụng địa chỉ broadcasting để gửi thông báo tới toàn mạng.
6
Star TreeRing
Satellite
Bus Ring
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)
Mạng diện rộng có thể bao trùm một vùng rộng lớn cỡ quốc gia hay lục
địa.
.II.3.4. Liên mạng (internet)
Phần lớn các mạng cục bộ đều độc lập với nhau về phần cứng cũng nh
phần mềm, chúng đợc thiết lập nhằm mục đích phục vụ những nhóm
ngời cụ thể nào đó. Trong mỗi mạng đó, ngời dùng tự lựa chọn một
công nghệ phần cứng phù hợp với công việc của họ. Một điều quan
trọng nữa là không thể xây dựng một mạng chung dựa trên một công
nghệ sử dụng trên một mạng đơn lẻ nào đó bởi vì không có công nghệ
mạng nào có thể thoả mãn nhu cầu cho tất cả mọi ngời. Một số ngời có
nhu cầu sử dụng đờng nối cao tốc để truyền dữ liệu của mình trong khi
các mạng LAN không thể mở rộng phạm vi hoạt động quá xa. Một số
mạng tốc độ chậm lại có thể kết nối máy tính tới hàng ngàn dặm...
Liên mạng máy tính (internetworking hay internet) là một công nghệ đ-
ợc đa ra nhằm kết nối các mạng thành một thể thống nhất. Công nghệ
internet che dấu đi kiến trúc vật lý của mạng và cho phép máy tính
truyền thông một cách độc lập với liên kết vật lý của mạng. Một liên
mạng đã khá quen thuộc với chúng ta là mạng Internet
Giới thiệu mạng Internet
Internet là một tổ hợp hàng triệu máy đợc kết nối với nhau thông qua
các thiết bị ghép nối thờng gọi là gateway để có thể chia sẻ thông tin
với nhau, trong đó có đủ loại máy tính, và chúng sử dụng nhiều hệ điều
hành khác nhau.
8
Luận văn tốt nghiệp Nguyễn Nhật Bình
Thông tin trên Internet gồm đủ loại từ th điệu tử, các file đồ hoạ đến
video và còn nhiều thứ khác đợc cung cấp bởi những ngời sử dụng
Internet bằng nhiều phơng thức, với nhiều t tởng khác nhau.
Quy mô của Internet
Có bao nhiêu máy đợc kết nối vào Internet? Con số cụ thể luôn luôn
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ò
chơi, hình ảnh hay âm thanh, ngời dùng có thể tải xuống bất cứ lúc
nào với File Transfer.
Truy nhập từ xa (Remote login) Có lẽ điều thú vị nhất trong các ứng
dụng của Internet là Remote login, nó cho phép ngời dùng kết nối
vào một máy tính ở xa nh một trạm cuối để sử dụng máy tính đó.
Dịch vụ mức mạng của Internet
Một lập trình viên viết chơng trình ứng dụng trên Internet cần có một cái
nhìn khác với ngời chỉ đơn giản sử dụng dịch vụ Internet. ở tầng mạng,
Internet cung cấp 2 kiểu dịch vụ mà các ứng dụng của Internet thờng
dùng đó là
Dịch vụ truyền không kết nối (Connectionless Paket Delivery
Service) là một phơng thức truyền dữ liệu mà các mạng chuyển
mạch gói cung cấp. Điều này chỉ đơn giản là mạng Internet chuyển
các gói tin từ máy này sang máy khác dựa vào thông tin địa chỉ của
gói đến đích của nó. Việc chia nhỏ gói tin truyền này có một lợi điểm
là nếu một đờng đi bị bận hoặc bị đứt, thì các gói có thể đợc truyền
theo một đờng khác.
Dịch vụ truyền tin cậy (Reliable Stream Transport Service) Phần lớn
các ứng dụng đòi hỏi nhiều dịch vụ hơn chỉ truyền thông không kết
nối bởi vì chúng cần tự động sửa lỗi, kiểm tra tính toàn vẹn của thông
tin truyền đi trên mạng. Reliable Stream Transport Service giải quyết
vấn đề này cho ta.
10
Luận văn tốt nghiệp Nguyễn Nhật Bình
Chơng II . Giao thức truyền thông và Các mô
hình tham chiếu
.I Giao thức truyền thông
Để các máy tính trên mạng có thể trao đổi thông tin với nhau, chúng
cần có một bộ những phần mềm cùng làm việc theo một chuẩn nào đó.
Giao thức truyền thông (protocol) là tập quy tắc quy định phơng thức
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.
Mỗi lớp cần thực hiện các chức năng đợc định nghĩa rõ ràng.
Việc chọn chức năng cho mỗi lớp cần chú ý tới việc định nghĩa
các quy tắc chuẩn hoá quốc tế.
Ranh giới các mức cần chọn sao cho thông tin đi qua là ít nhất
(tham số cho chơng trình con là ít).
Số mức phải đủ lớn để các chức năng tách biệt không nằm trong
cùng một lớp và đủ nhỏ để mô hình không quá phức tạp. Một mức có
thể đợc phân thành các lớp nhỏ nếu cần thiết. Các mức con có thể
lại bị loại bỏ.
12
Luận văn tốt nghiệp Nguyễn Nhật Bình
Hai hệ thống khác nhau có thể truyền thông với nhau nếu chúng bảo
đảm những nguyên tắc chung (cài đặt cùng một giao thức truyền
thông). Các chức năng đợc tổ chức thành một tập các tầng đồng mức
cung cấp chức năng nh nhau. Các tầng đồng mức phải sử dụng một
giao thức chung.
Một tầng không định nghĩa một giao thức đơn, nó định nghĩa một chức
năng truyền thông có thể đợc thi hành bởi một số giao thức. Do vậy,
mỗi tầng có thể chứa nhiều giao thức, mỗi giao thức cung cấp một dịch
vụ phù hợp cho chức năng của tầng. Ví dụ cả giao thức truyền file
(File Transfer Protocol - FTP) và giao thức th điện tử (Simple Mail
Transfer Protocol - SMTP) đều cung cấp dịch vụ cho ngời dùng và cả
hai đều thuộc tầng ứng dụng. Mỗi mức ngang hàng giao thức truyền
thông (sự bổ xung của các giao thức cùng mức tơng đơng trên hệ
thống khác). Mỗi mức phải đợc chuẩn hoá để giao tiếp với mức tơng đ-
ơng với nó. Trên lý thuyết, giao thức chỉ biết đến những gì liên quan tới
lớp của nó mà không quan tâm tới mức trên hoặc dới của nó. Tuy nhiên
phải có sự thoả thuận để chuyển dữ liệu giữa các tầng trên một máy
tính, bởi mỗi tầng lại liên quan tới việc gửi dữ liệu từ ứng dụng tới một
ứng dụng tơng đơng trên một máy khác. Tầng cao hơn dựa vào tầ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).
.II.2.3. Tầng mạng (Network layer)
Vấn đề chủ chốt của tầng mạng là dẫn đờng, định rõ các gói tin
(packet) đợc truyền theo những con đờng nào từ nguồn đến đích.
Các con đờng này có thể cố định, ít bị thay đổi, đợc thiết lập khi bắt
14
Luận văn tốt nghiệp Nguyễn Nhật Bình
đầu liên kết hay động (dynamic) thay đổi tuỳ theo trạng thái tải của
mạng.
Nếu có nhiều gói tin truyền trên mạng có thể xảy ra tình trạng tắc
nghẽn, tầng mạng phải giải quyết vấn đề này.
Thực hiện chức năng giao tiếp với các mạng bao gồm việc đánh lại
địa chỉ, cắt hợp gói tin cho phù hợp với các mạng.
Ngoài ra tầng mạng còn thực hiện một số chức năng kế toán, ví dụ, một
số Firewall (packet filtering) đợc cài đặt trên tầng này để thống kê số l-
ợng các gói tin truyền qua mạng hay ngăn cấm hoặc cho phép các gói
tin của giao thức nào đó.
.II.2.4. Tầng giao vận (Transport layer)
Kiểm soát việc truyền tin từ nút tới nut (end-to-end): Bắt đầu từ tầng
này, các thực thể đã có thể nói chuyện một cách logic với nhau.
Thực hiên việc ghép kênh và phân kênh: Mỗi ứng dụng có thể gửi dữ
liệu đi theo nhiều con đờng, một đờng truyền lại có thể đợc nhiều
ứng dụng sử dụng, phân kênh/hợp kênh giải quyết vấn đề phân chia
dữ liệu cho các ứng dụng.
Khắc phục sai sót trong quá trình truyền tin: Việc khắc phục sai sót
đợc thực hiện trên nhiều tầng khác nhau, nhng hiệu quả nhất là ở
các tầng cao, việc khắc phục sai sót làm ở tầng giao vận là hợp lý
nhất.
.II.2.5. Tầng phiên (Session layer)
Tầng này cho phép ngời sử dụng trên các máy khác nhau thiết lập,
duy trì, huỷ bỏ, đồng bộ phiên truyền thông giữa họ. Cung cấp một
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
16
Luận văn tốt nghiệp Nguyễn Nhật Bình
sản phẩm TCP/IP, vì vậy, mô hình OSI chỉ đợc sử dụng trong thực tế
nh một chuẩn về lý thuyết.
Trong mô hình OSI, một số chức năng nh điều khiển thông lợng, kiểm
tra lỗi xuất hiện lặp lại trong một số tầng. Điều này có nguyên nhân do
mô hình OSI đợc chia làm các tầng khác nhau, mỗi tầng tơng ứng với
một đối tợng độc lập (có dữ liệu và các phơng thức riêng của nó, độc
lập với các đối tợng khác).
Mô hình OSI không có các dịch vụ và giao thức không hớng kết nối
mặc dù hầu hết các mạng đều có sử dụng. Mô hình quá phức tạp cho
việc cài đặt làm cho OSI khó có thể ứng dụng rộng rãi trên thực tế.
.III Kiến trúc giao thức IPX/SPX
Một hệ thống mạng máy PC đợc sử dụng phổ biến nhất trên thế giới
trong thời gian vừa qua là mạng Novell Netware. Nó đợc thiết kế cho
các công ty, để chuyển từ việc sử dụng máy tính lớn (Mainframe) sang
sử dụng PC. Mỗi PC làm chức năng khách hàng (client), một số máy
mạnh hoạt động nh máy phục vụ (Server), chúng cung cấp các dịch vụ
file, các dịch vụ CSDL và các dịch vụ khác cho một nhóm khách hàng.
Nói cách khác, Novell Netware hoạt động theo mô hình file-server.
.III.1. Kiến trúc giao thức IPX/SPX
Application SAP File server
Transport NCP SPX
Network IPX
Datalink Ethernet Token ring ARCnet
Physical Ethernet Token ring ARCnet
Novell Netware sử dụng chồng giao thức IPX/SPX dựa trên một hệ
thống mạng cũ của hãng Xerox-XNS
TM
nhng có một số thay đổi. Novell
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
30 ?
18
Luận văn tốt nghiệp Nguyễn Nhật Bình
Checksum: ít khi sử dụng vì tầng Data link bên dới đã cung cấp
checksum
Packet length: chứa chiều dài của packet tính cả header và data
Packet type: đánh dấu các packet điều khiển khác nhau.
Destination Address: địa chỉ đích của gói tin.
Source Address: địa chỉ nguồn của gói tin.
Data: Chiếm phần cuối của gói, có độ dài phụ thuộc vào trờng paket
length trên.
.III.3. Cơ chế hoạt động của Novell Netware
Cứ khoảng mỗi phút một lần, mỗi server lại phát đi (broadcast) một
packet, cho biết địa chỉ của chính nó và các dịch vụ mà nó cung cấp.
Việc này sử dụng giao thức SAP (Service Advertising Protocol). Các
packet này đợc tiến trình dịch vụ (special agent process) chạy trên các
máy router nhận và thu thập. Các agent sử dụng thông tin chứa trong
đó để xây dựng CSDL về các server.
Khi một máy client khởi động, nó phát một request để hỏi xem server
gần nhất ở đâu. Agent trên máy router địa phơng tiếp nhận yêu cầu
này, kiểm tra CSDL về server, lựa chọn server phù hợp gửi lại thông tin
cho client. Từ thời điểm đó, Client có thể thiết lập kết nối NCP với
server và sử dụng các dịch vụ của server. Trong quá trình kết nối, client
và server thoả thuận với nhau về chiều dài cực đại của dữ liệu, trong
quá trình sử dụng, client có thể tra cứu CSDL của server để biết thông
tin của các server khác.
19
Luận văn tốt nghiệp Nguyễn Nhật Bình
Chơng III. Giao thức TCP/IP
.I Giao thức TCP/IP
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
trên mạng Ethernet, mạng Token ring, mạng quay số (Dial-up line),
mạng X.25, mạng ảo và mọi loại môi trờng vật lý truyền thông.
Một sơ đồ địa chỉ dùng chung cho phép mỗi thiết bị TCP/IP có duy
nhất một địa chỉ trên mạng ngay cả khi đó là mạng toàn cầu Internet.
Tiêu chuẩn hoá mức cao của giao thức phù hợp với ích lợi của dịch
vụ ngời dùng. Đợc tích hợp vào hệ điều hành UNIX, Hỗ trợ mô hình
client-server, mô hình mạng bình đẳng, Hỗ trợ kỹ thuật dẫn đờng
động.
DARPA hỗ trợ việc nghiên cứu kết nối nhiều loại mạng khác nhau lại
thành một mạng toàn cầu Internet. Ngoài việc sử dụng cho tất cả các
máy trên Internet, TCP/IP còn đợc sử dụng trong mạng nội bộ của một
số tổ chức chính phủ hoặc thơng mại, những mạng này gọi là Intranet.
TCP/IP vừa có thể kết nối một số lợng lớn các máy tính (150.000 máy
trên nớc Mĩ, Châu Âu, Châu á) lại có thể chỉ kết nối hai máy tính trong
phòng làm việc.
Dới đây, chúng ta xem xét một số nội dung về bộ giao thức truyền
thông TCP/IP.
.II Kiến trúc của bộ giao thức TCP/IP
.II.1. Kiến trúc phân tầng của TCP/IP
Application Layer
Presentation Layer Application Layer
Session Layer
Transport Layer Transport Layer
Network Layer Internet Layer
Data link Layer
Physical Layer Network access Layer
Các lớp tơng ứng giữa OSI và TCP/IP
21
User Datagram
Protocol
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
TELNET
FTP
Internet Protocol
ICMP
ARP
Token Ring
FiberToken Bus
Ethernet
DNS
Các tầng của bộ giao thức TCP/IP
Luận văn tốt nghiệp Nguyễn Nhật Bình
DNS (Domain Name server): Dịch vụ tên miền cho phép nhận ra
máy tính từ một tên miền thay cho chuỗi địa chỉ Internet khó nhớ.
SNMP (Simple Network Management Protocol): Giao thức quản trị
mạng cung cấp những công cụ quản trị mạng.
RIP (Routing Internet Protocol): Giao thức dẫn đờng động.
ICMP (Internet Control Message Protocol): Nghi thức thông báo lỗi.
UDP (User Datagram Protocol): Giao thức truyền không kết nối cung
cấp dịch vụ truyền không tin cậy nhng tiết kiệm chi phí truyền.
TCP (Transmission Control Protocol): Giao thức hớng kết nối cung
cấp dịch vụ truyền thông tin tởng.
IP (Internet Protocol): Giao thức Internet chuyển giao các gói tin qua
các máy tính đến đích.
ARP (Address Resolution Protocol): Cơ chế chuyển địa chỉ TCP/IP
thành địa chỉ vật lý của các thiết bị mạng.
23
Application
Transport
Internet
Network Interface
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
Header
TCP
Header
Data
Network
Ethernet
Header
IP
Header
TCP
Header
Data Ethernet
trailer
.II.2. Cơ chế địa chỉ Internet
Mạng Internet dùng hệ thống địa chỉ IP (32 bit) để "định vị" các máy
tính liên kết với nó. Có hai cách đánh địa chỉ phụ thuộc vào cách liên
kết của từng máy tính cụ thể:
Nếu các máy tính đợc kết nối trực tiếp với mạng Internet thì trung
tâm thông tin Internet (Network Information Centre-NIC) sẽ cấp cho
các máy tính đó một địa chỉ IP (IP Address).
24
Luận văn tốt nghiệp Nguyễn Nhật Bình
Nếu các máy tính không kết nối trực tiếp với mạng Internet mà thông
qua một mạng cục bộ thì ngời quản trị mạng sẽ cấp cho các máy
tính đó một địa chỉ IP (tuy nhiên cũng dới sự cho phép của NIC)
Hệ thống địa chỉ này đợc thiết kế mềm dẻo qua một sự phân lớp, có 5
lớp địa chỉ IP là : A, B, C, D, E. Sự khác nhau cơ bản giữa các lớp địa
chỉ này là ở khả năng tổ chức các cấu trúc con của nó.
0 1 2 3 4 8 16 24
Class A
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