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
101 trang |
Chia sẻ: vietpd | Lượt xem: 1881 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Luận văn Tìm hiểu về mạng máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luận văn tốt nghiệp Nguyễn Nhật Bình
1
Ch−ơng I. Mạng máy tính
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) ................................. 7
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
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 ............................................................... 13
II.2.1. Tầng vật lý (Physical layer)...................................................... 13
II.2.2. Tầng liên kết dữ liệu (Data link layer)...................................... 13
II.2.3. Tầng mạng (Network layer) ..................................................... 14
II.2.4. Tầng giao vận (Transport layer) ............................................... 14
II.2.5. Tầng phiên (Session layer) ....................................................... 15
II.2.6. Tầng trình diễn (Presentation layer) ......................................... 15
II.2.7. Tầng ứng dụng (Application layer) .......................................... 15
II.3. Những vấn đề về OSI ....................................................................... 16
III. Kiến trúc giao thức IPX/SPX................................................................. 16
III.1. Kiến trúc giao thức IPX/SPX.......................................................... 16
III.2. Gói tin IPX ..................................................................................... 17
III.3. Cơ chế hoạt động của Novell Netware ........................................... 18
Ch−ơng III. Bộ Giao thức TCP/IP
I. Bộ giao thức TCP/IP................................................................................. 19
II. Kiến trúc của bộ giao thức TCP/IP ......................................................... 20
II.1. Kiến trúc phân tầng của TCP/IP ...................................................... 20
Luận văn tốt nghiệp Nguyễn Nhật Bình
2
II.2. Cơ chế địa chỉ Internet..................................................................... 23
II.2.1. Địa chỉ lớp A............................................................................. 24
II.2.2. Địa chỉ lớp B ............................................................................. 25
II.2.3. Địa chỉ lớp C............................................................................. 25
II.3. Mạng con và Subnet mask ............................................................... 25
III. Tầng mạng (Network Layer) ................................................................. 27
IV. Tầng Internet (Internet Layer) ............................................................. 28
IV.1. Gói tin IP ........................................................................................ 29
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) .................................................................................................. 32
IV.2.1. Chuyển giao trực tiếp .............................................................. 32
IV.2.2. Chuyển giao địa chỉ động ....................................................... 32
IV.2.3. Gói tin ARP............................................................................. 33
IV.3. Giao thức điều khiển truyền tin (Internet Control Message Protocol
- ICMP).................................................................................................... 35
IV.3.1. Gói tin ICMP........................................................................... 35
IV.3.2. Điều khiển dòng dữ liệu.......................................................... 36
IV.3.3. Thông báo lỗi .......................................................................... 36
IV.3.4. Định h−ớng lại ........................................................................ 36
IV.3.5. Kiểm tra trạm làm việc............................................................ 37
IV.4. Thuật toán dẫn đ−ờng..................................................................... 37
V. tầng giao vận........................................................................................... 41
V.1. Giao thức không kết nối (User Datagram Protocol - UDP)............. 41
V.1.1. Gói thông tin UDP.................................................................... 41
V.1.2. Phân kênh, hợp kênh và Ports................................................... 42
V.2. Giao thức điều khiển truyền tin (Transmission Control Protocol -
TCP)......................................................................................................... 44
V.2.1. Gói tin TCP............................................................................... 46
V.2.2. Cổng, kết nối và điểm kết nối................................................... 47
VI. Tầng ứng dụng của TCP/IP ................................................................... 49
VI.1. Dịch vụ tên miền (Domain Name Service - DNS) ......................... 49
VI.2. Đăng nhập từ xa (Telnet) ............................................................... 51
VI.3. Th− điện tử (Electronic Mail) ........................................................ 52
VI.4. Giao thức truyền tệp (File Transfer Protocol - FTP)...................... 54
VI.5. Nhóm tin (News groups)................................................................ 55
VI.6. Tìm kiếm tệp (Archie).................................................................... 55
VI.7. Tra cứu thông tin theo thực đơn (Gopher) ..................................... 55
VI.8. Tìm kiếm thông tin theo chỉ số (WAIS)......................................... 55
VI.9. Siêu văn bản (WWW) .................................................................... 56
Luận văn tốt nghiệp Nguyễn Nhật Bình
3
Ch−ơng IV. Xây dựng ch−ơng trình truyền tệp
I. Giao diện lập trình.................................................................................... 57
I.1. Giao diện lập trình ............................................................................ 57
I.2. Network I/O và file I/O..................................................................... 58
I.3. Làm việc với Socket .......................................................................... 59
I.3.1. Socket ......................................................................................... 59
I.3.2. Địa chỉ Socket ............................................................................ 60
I.3.3. Một số lời gọi tạo lập socket...................................................... 62
I.3.4. Một số lời gọi gửi dữ liệu qua socket......................................... 66
I.3.5. Một số lời gọi nhận dữ liệu từ socket......................................... 67
II. Mô hình Client-Server ............................................................................ 68
II.1. Mô hình Client-Server sử dụng dịch vụ không kết nối.................... 69
II.2. Mô hình Client-Server sử dụng dịch vụ h−ớng kết nối.................... 70
III. Xây dựng ch−ơng trình truyền tệp......................................................... 71
III.1. Thiết kế và cài đặt ch−ơng trình ..................................................... 71
III.1.1. Giao thức ứng dụng đ−ợc xây dựng và sử dụng trong ch−ơng
trình ..................................................................................................... 71
III.1.2. Cài đặt ch−ơng trình ................................................................ 73
III.2. Một số vấn đề nảy sinh trong quá trình thực hiện và cách giải quyết76
III.2.1. Vấn đề chuyển đổi tệp giữa hai hệ điều hành. ........................ 76
III.2.2. Vấn đề về một số lệnh t−ơng tác ............................................. 78
Phụ lục a. Một số mạng cục bộ
I. Mạng Ethernet và IEEE 802.3 ................................................................. 81
II. Mạng Token-Pasing Rings (IEEE 802.5)............................................... 81
III. Mạng Token-Passing Busses (IEEE 802.4)........................................... 82
Phụ lục B. Một số kỹ thuật chọn đ−ờng đi ngắn nhất
I. Giải thuật Dijkstra cho việc chọn đ−ờng tập trung .................................. 84
II. Giải thuật Ford& Fulkerson cho việc chọn đ−ờng phân tán .................. 85
Phụ lục C. Văn bản ch−ơng trình (Phần client)
I. Ch−ơng trình chính (main.c) .................................................................... 87
II. Th− viện sử dụng (Socket.c) ................................................................... 93
Luận văn tốt nghiệp Nguyễn Nhật Bình
4
Luận văn tốt nghiệp Nguyễn Nhật Bình
5
Ch−ơng I . Mạng máy tí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
Luận văn tốt nghiệp Nguyễn Nhật Bình
6
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 l−u 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à l−u
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.
Star Tree Ring
SatelliteBus Ring
Luận văn tốt nghiệp Nguyễn Nhật Bình
7
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 nh−ng
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)
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)
Luận văn tốt nghiệp Nguyễn Nhật Bình
8
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.
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
Luận văn tốt nghiệp Nguyễn Nhật Bình
9
để 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 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.
Luận văn tốt nghiệp Nguyễn Nhật Bình
10
• 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.
Luận văn tốt nghiệp Nguyễn Nhật Bình
11
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