Xem mẫu
- ĐỒ ÁN TỐT NGHIỆP
Đề tài “Xây dựng chương trình kiểm soát lưu lượng
thông tin trao đổi qua hệ thống mạng”
1
Trần Ngọc Việt – CNT46 ĐH
- MỤC LỤC
CHƯƠNG I. CƠ SỞ LÝ THUYẾT MẠNG MÁY TÍNH ............................... 6
1 Tổng Quan Hệ Thống Mạng TCP/IP Ethernet ....................................... 6
1.1 Khái niệm mạng máy tính ................................................................... 6
1.2 Kiến trúc phân tầng ............................................................................. 7
1.3 Mô hình OSI ....................................................................................... 10
1.3.1 Khái niệm ...................................................................................... 10
1.3.2 Mục đích ....................................................................................... 11
1.4 Phương thức hoạt động...................................................................... 12
1.4.1 Có kết nối (Connection Oriented) ................................................. 12
1.4.2 Không kết nối (Connectionless) .................................................... 13
1.5 Bộ giao thức TCP/IP .......................................................................... 13
1.5.1 Khái niệm ...................................................................................... 14
1.5.2 Mục đích và nguồn gốc ................................................................. 14
1.5.3 Đặc điểm ....................................................................................... 16
1.6 So sánh TCP/IP và OSI ...................................................................... 16
2 Bộ giao thức TCP/IP – Các giao thức và khuôn dạng dữ liệu chính.... 18
2.1 Cấu trúc phân tầng của TCP/IP ........................................................ 18
2.2 Đóng gói dữ liệu trong TCP/IP .......................................................... 18
2.3 Sơ lược chức năng các tầng ............................................................... 19
2.3.1 Tầng ứng dụng (Application Layer) ............................................. 19
2.3.2 Tầng giao vận (Transport Layer) .................................................. 20
2.3.3 Tầng Internet (Internet Layer) ..................................................... 20
2.3.4 Tầng liên kết (Link Layer) ............................................................ 20
2.4 Các giao thức chính và khuôn dạng dữ liệu tương ứng ................... 21
2.4.1 Ethernet......................................................................................... 21
2.4.2 ARP (address resolution protocol) ................................................ 23
2.4.3 RARP (reserve address resolution protocol) ................................. 25
2.4.4 IP (internet protocol) ..................................................................... 25
2.4.5 ICMP (internet control message protocol) .................................... 28
2.4.6 TCP (Transmission Control Protocol) .......................................... 30
2.4.7 UDP (User Datagram Protocol) .................................................... 32
2.4.8 HTTP (Hypertext Transfer Protocol) ............................................ 33
2.4.9 DNS (Domain Name System)........................................................ 34
CHƯƠNG II. KỸ THUẬT CHẶN BẮT ....................................................... 36
1 Tổng Quan Về Chặn Bắt Gói Tin (Sniffer) ........................................... 36
1.1 Các khái niệm liên quan .................................................................... 36
1.2 Ứng dụng của sniffer.......................................................................... 37
1.2.1 Khả năng ....................................................................................... 37
1.2.2 Mục đích ....................................................................................... 37
2
Trần Ngọc Việt – CNT46 ĐH
- 1.3 Các chương trình sniffer hiện có ....................................................... 38
2 Cách Thức Hoạt Động ............................................................................ 38
2.1 Theo dõi Network Traffic .................................................................. 38
2.2 Phân tích Network Traffic ................................................................. 39
2.3 Các thành phần của một chương trình sniffer ................................. 42
2.4 Phòng chống sniffer ........................................................................... 43
2.4.1 Phát hiện sniffer trong mạng ........................................................ 43
2.4.2 Ngăn chặn sniffer ......................................................................... 44
2.4.3 Một số chương trình phát hiện sniffer .......................................... 45
3 Các Phương Pháp Xây Dựng ................................................................. 45
3.1 Raw Socket – mức hệ điều hành........................................................ 45
3.2 Pcap – mức network adapter............................................................. 47
3.3 So sánh Raw Socket và Pcap ............................................................. 48
CHƯƠNG III. PHÂN TÍCH, LỰA CHỌN VÀ THIẾT KẾ GIẢI THUẬT 50
1 Chi Tiết Các Phương Pháp .................................................................... 50
1.1 Winsock .............................................................................................. 50
1.1.1 Khái niệm ...................................................................................... 50
1.1.2 Các sự kiện của Winsock .............................................................. 51
1.1.3 Loại Socket trong Winsock............................................................ 51
1.1.4 Làm việc với Socket trong Winsock .............................................. 52
1.2 .NET Socket ........................................................................................ 53
1.2.1 Khái niệm ...................................................................................... 53
1.2.2 Làm việc với .NET Socket ............................................................. 54
1.2.3 Demo ............................................................................................. 55
1.3 Winpcap .............................................................................................. 55
1.3.1 Khái niệm ...................................................................................... 55
1.3.2 Làm việc với Winpcap ................................................................. 57
2 Hướng Thực Hiện Chương Trình .......................................................... 58
2.1 Bắt gói tin ........................................................................................... 59
2.2 Tách phần header .............................................................................. 59
2.3 Phân tích, tổng hợp header ................................................................ 60
2.4 Đưa vào cơ sở dữ liệu ......................................................................... 60
2.5 Hiển thị, thống kê và báo cáo ............................................................ 61
3 Lựa chọn giải thuật ................................................................................ 61
CHƯƠNG IV. XÂY DỰNG CHƯƠNG TRÌNH ........................................... 64
1 Các Chức Năng Chính ........................................................................... 64
2 Phân Tích Xây Dựng Các Chức Năng Chính ....................................... 67
2.1 Hoạt động tổng quát .......................................................................... 67
2.2 Chức năng đo lưu lượng. ................................................................... 68
3
Trần Ngọc Việt – CNT46 ĐH
- 2.2.1 Đo lưu lượng vào/ra trên máy cài đặt chương trình .................. 68
2.2.2 Báo cáo thông tin lưu lượng ........................................................ 68
2.3 Bắt gói tin ........................................................................................... 69
2.4 Các thao tác với File........................................................................... 71
2.5 Giao diện (View) ................................................................................. 72
2.6 Thống kê (Statistics) ........................................................................... 73
2.6.1 Thống kê tích lũy (Cumulative) .................................................... 73
2.6.2 Thống kê liên tục (Continous) ...................................................... 73
2.7 Quản lý mạng ..................................................................................... 73
2.7.1 Khóa mạng theo một luật mà người dùng lựa chọn ..................... 73
3 Giới Thiệu Chương Trình ...................................................................... 74
3.1 Khởi động chương trình .................................................................... 74
3.2 Chức năng báo cáo ............................................................................. 75
3.3 Chức năng bắt gói tin ......................................................................... 76
3.4 Các thao tác với file ............................................................................ 81
3.5 Chức năng di chuyển trên bảng dư liệu ............................................ 82
3.6 Chức năng thống kê ........................................................................... 82
3.6.1 Thống kê tích lũy (Cumulative Statistics) ..................................... 83
3.6.2 Thống kê liên tục (Continous Statistics) ....................................... 84
3.7 Ngăn chặn thông tin ........................................................................... 86
3.8 Một số tính năng phụ ......................................................................... 87
4 Nhược điểm và hướng phát triển........................................................... 88
4.1 Nhược điểm ........................................................................................ 88
4.2 Hướng phát triển................................................................................ 89
Kết Luận ......................................................................................................... 90
TÀI LIỆU THAM KHẢO .............................................................................. 91
4
Trần Ngọc Việt – CNT46 ĐH
- LỜI MỞ ĐẦU
Ngày nay, mạng máy tính đã trở nên quen thuộc với mọi người trong xã
hội. Cùng với sự phát triển của công nghệ thông tin và nhu cầu của con người,
mạng máy tính cũng càng ngày càng mở rộng và trở thành một phần không
thể thiếu của đời sống.
Tuy nhiên, cùng với sự phát triển của mạng máy tính, rất nhiều vấn đề liên
quan cũng được đặt ra đối với người sử dụng như lỗi đường truyền, virus, sự
tấn công của hacker.... Để góp phần giải quyết những vấn đề này thì việc
kiểm soát lượng thông tin vào ra mang một ý nghĩa khá quan trọng. Chính vì
vậy em lựa chọn thực hiện đồ án tốt nghiệp là “Xây dựng chương trình kiểm
soát lưu lượng thông tin trao đổi qua hệ thống mạng” nhằm mục đích cung
cấp một công cụ hữu ích cho việc kiểm soát và học tập về mạng máy tính.
Trong thời gian thực tập em xin chân thành cảm ơn các thầy cô giáo trong
khoa Công nghệ thông tin trường Đại học Hàng Hải Việt Nam cùng các bạn
trong tập thể lớp CNT46-ĐH và đặc biệt thầy Ngô Quốc Vinh đã giúp đỡ em
trong quá trình thực hiện đồ án này.
Hải Phòng tháng 12 năm 2009
Sinh viên: Trần Ngọc
Việt
5
Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
CHƯƠNG I. CƠ SỞ LÝ THUYẾT MẠNG MÁY TÍNH
Để xây dựng một chương trình quản lý, thống kê, kiểm soát lưu lượng
thông tin, ta cần thực hiện chặn bắt các gói tin vào ra hệ thống mạng cũng như
phân tích các gói tin thu được. (Packet Capture và Packet Analysis). Chương
trình như vậy thường được gọi là Sniffer (Packet Analyzer). Để xây dựng
được sniffer, ta cần có được hiểu biết cơ bản về mạng máy tính và các giao
thức liên quan. Trong phạm vi của đề tài sẽ được thực hiện trên hệ điều hành
Window và sử dụng bộ giao thức TCP/IP Ethernet nên trong phần này sẽ trình
bày những vấn đề cơ bản nhất của mạng Ethernet.
1 Tổng Quan Hệ Thống Mạng TCP/IP Ethernet
1.1 Khái niệm mạng máy tính
Từ những năm 1960 đã xuất hiện các mạng nối các máy tính và các Terminal
để sử dụng chung nguồn tài nguyên, giảm chi phí khi muốn thông tin trao đổi
số liệu và sử dụng trong công tác văn phòng một cách tiện lợi.
Với việc tăng nhanh các máy tính mini và các máy tính cá nhân làm tăng yêu
cầu truyền số liệu giưã các máy tính, giữa các terminal, và giữa các terminal
với máy tính là một trong những động lực thúc đẩy sự ra đời và phát triển
ngày càng mạnh mẽ các mạng máy tính.Quá trình hình thành mạng máy tính
có thể tóm tắt qua các giai đoạn sau:
Giai đoạn các terminal nối trực tiếp với máy tính:
Đây là giai đoạn đầu tiên của mạng máy tính, để tận dụng công suất của máy
tính người ta ghép nối các terminal vào một máy tính được gọi là các máy
tính trung tâm.
Giai đoạn các bộ tiền xử lý (Prontal)
Ở giai đoạn 1 máy tính trung tâm quản lý truyền tin tới các terminal, ở giai
đoạn 2 máy tính trung tâm quản lý truyền tin tới các bộ tập trung qua các bộ
ghép nối điều khiển đường truyền. Ta có thể thay thế bộ ghép nối đường
truyền bằng các máy tính nini gọi là prontal, đó chính là bộ tiền xử lý.
6 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Giai đoạn mạng máy tính:
Vào những năm 1970 người ta bắt đầu xây dựng mạng truyền thông trong đó
các thành phần chính của nó là các nút mạng gọi là bộ chuyển mạch dùng để
hướng thông tin tới đích.
Các mạng được nối với nhau bằng đường truyền còn các máy tính xử lý thông
tin của người dùng hoặc các trạm cuối được nối trực tiếp vào các nút mạng để
khi cần thì trao đổi thông tin qua mạng. Các nút mạng thương là máy tính nên
đồng thời đóng vai trò của người sử dụng.
Chức năng của nút mạng:
Quản lý truyền tin, quản lý mạng
Như vậy các máy tính ghép nối với nhau hình thành mạng máy tính, ở đây ta
thấy mạng truyền thông cũng ghép nối các máy tính với nhau nên khái niệm
mạng maý tính và mạng truyền thông có thể không phân biệt.
Việc hình thành mạng máy tính nhằm đạt các mục đích sau:
Tận dụng và làm tăng giá trị của tài nguyên
Chinh phục khoảng cách
Tăng chất lượng và hiệu quả khai thác và xử lý thông tin
Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra sự cố
đối với một máy tính nào đó.
Như vậy: Mạng máy tính là tập hợp các máy tính được ghép với nhau bởi các
đường truyền vật lý theo một kiến trúc nào đó.
1.2 Kiến trúc phân tầng
Để giảm độ phức tạp trong thiết kế và cài đặt mạng, các mạng máy tính được
tổ chức thiết kế theo kiểu phân tầng (layering). Trong hệ thống thành phần
của mạng được tổ chức thành một cấu trúc đa tầng, mỗi tầng được xây dựng
trên tầng trước đó; mỗi tầng sẽ cung cấp một số dịch vụ cho tầng cao hơn. Số
lượng các tầng cũng như chức năng của mỗi tầng là tuỳ thuộc vào nhà thiết
7 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
kế. Ví dụ cấu trúc phân tầng của mạng SNA của IBM, mạng DECnet của
Digital, mạng ARPANET. .. là có sự khác nhau. Nguyên tắc cấu trúc của
mạng phân tầng là: mỗi hệ thống trong một mạng đều có cấu trúc phân tầng
(Số lượng tầng, chức năng của mỗi tầng là như nhau). Mục đích của mỗi tầng
là để cung cấp một số dịch vụ nhất định cho tầng cao hơn.
Tầng i của hệ thống A sẽ hội thoại với tầng i của hệ thống B, các quy tắc và
quy ước dùng trong hội thoại gọi là giao thức mức I
Giữa hai tầng kề nhau tồn tại một giao diện (interface) xác định các thao tác
nguyên thuỷ của tầng dưới cung cấp lên tầng trên.
Trong thực tế dữ liệu không truyền trực tiếp từ tầng i của hệ thống này sang
tầng i của hệ thống khác ( trừ tầng thấp nhất trực tiếp sử dụng đường truyền
vật lý để truyền các xâu bít (0.1) từ hệ thống này sang hệ thống khác ).Dữ liệu
được truyền từ hệ thống gửi (sender) sang hệ thống nhận (receiver) bằng
đường truyền vật lý và cứ như vậy dữ liệu lại đi ngược lên các tầng trên. Như
vậy khi hai hệ thống liên kết với nhau, chỉ tầng thấp nhất mới có liên kết vật
lý còn ở tầng cao hơn chỉ có liên kết logic (liên kết ảo ) được đưa vào để hình
thức hoá các hoạt động của mạng thuận tiện cho việc thiết kế và cài đặt các
phần mềm truyền thông. Như vậy để viết chương trình cho tầng N, phải biết
tầng N+1 cần gì và tầng N -1 có thể làm được gì.
8 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Minh họa kiến trúc phân tầng tổng quát
Nguyên tắc để xây dựng kiến trúc phân tầng như sau:
Để đơn giản cần hạn chế số lượng các tầng.
Tạo ranh giới các tầng sao cho các tương tác và mô tả các dịch vụ là tối
thiểu.
Chia các tầng sao cho các chức năng khác nhau được tách biệt với
nhau, và các tầng sử dụng các loại công nghệ khác nhau cũng được tách
biệt.
Các chức năng giống nhau được đặt vào cùng một tầng.
Chọn ranh giới các tầng theo kinh nghiệm đã được chứng tỏ là thành
công.
Các chức năng được định vị sao cho có thể thiết kế lại tầng mà ảnh
hưởng ít nhất đến các tầng kế nó.
9 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Tạo ranh giới giữa các tầng sao cho có thể chuẩn hóa giao diện tương
ứng.
Tạo một tầng khi dữ liệu được xử lý một cách khác biệt.
Cho phép thay đổi chức năng hoặc giao thức trong một tầng không làm
ảnh hưởng đến các tầng khác.
Mỗi tầng chỉ có các ranh giới (giao diện) với các tầng kề trên và kề
dưới nó.
Có thể chia một tầng thành các tầng con khi cần thiết.
Tạo tầng con để cho phép giao diện với các tầng kế cận.
Cho phép hủy bỏ các tầng con nếu thấy không cần thiết.
1.3 Mô hình OSI
1.3.1 Khái niệm
Do các nhà thiết kế tự do lựa chọn kiến trúc mạng riêng của mình. Từ đó dẫn
đến tình trạng không tương thích giữa các mạng về: Phương pháp truy nhập
đường truyền khác nhau, họ giao thức khác nhau. ..sự không tương thích đó
làm trở ngại cho quá trình tương tác giữa người dùng ở các mạng khác nhau.
Nhu cầu trao đổi thông tin càng lớn thì trở ngại đó càng không thể chấp nhận
được với người sử dụng. Với lý do đó tổ chức chuẩn hoá quốc tế ISO đã
thành lập một tiểu ban nhằm xây dựng một khung chuẩn về kiến trúc mạng để
làm căn cứ cho các nhà thiết kế và chế tạo các sản phẩm mạng. Kết quả là
năm 1984 ISO đã đưa ra mô hình tham chiếu cho việc kết nối các hệ thống
mở ( Reference Model for Open System Inter - connection) hay gọn hơn là
OSI Reference model. Mô hình này được dùng làm cơ sở để kết nối các hệ
thống mở.
10 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Mô hình OSI
1.3.2 Mục đích
Mô hình OSI phân chia chức năng của một giao thức ra thành một chuỗi các
tầng cấp. Mỗi một tầng cấp có một đặc tính là nó chỉ sử dụng chức năng của
tầng dưới nó, đồng thời chỉ cho phép tầng trên sử dụng các chức năng của
mình. Một hệ thống cài đặt các giao thức bao gồm một chuỗi các tầng nói trên
được gọi là "chồng giao thức" (protocol stack). Chồng giao thức có thể được
cài đặt trên phần cứng, hoặc phần mềm, hoặc là tổ hợp của cả hai. Thông
thường thì chỉ có những tầng thấp hơn là được cài đặt trong phần cứng, còn
những tầng khác được cài đặt trong phần mềm.
Mô hình OSI này chỉ được ngành công nghiệp mạng và công nghệ thông tin
tôn trọng một cách tương đối. Tính năng chính của nó là quy định về giao
diện giữa các tầng cấp, tức qui định đặc tả về phương pháp các tầng liên lạc
với nhau. Điều này có nghĩa là cho dù các tầng cấp được soạn thảo và thiết kế
bởi các nhà sản xuất, hoặc công ty, khác nhau nhưng khi được lắp ráp lại,
chúng sẽ làm việc một cách dung hòa (với giả thiết là các đặc tả được thấu
đáo một cách đúng đắn
11 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Thường thì những phần thực thi của giao thức sẽ được sắp xếp theo tầng cấp,
tương tự như đặc tả của giao thức đề ra, song bên cạnh đó, có những trường
hợp ngoại lệ, còn được gọi là "đường cắt ngắn" (fast path). Trong kiến tạo
"đường cắt ngắn", các giao dịch thông dụng nhất, mà hệ thống cho phép, được
cài đặt như một thành phần đơn, trong đó tính năng của nhiều tầng được gộp
lại làm một.
Việc phân chia hợp lý các chức năng của giao thức khiến việc suy xét về chức
năng và hoạt động của các chồng giao thức dễ dàng hơn, từ đó tạo điều kiện
cho việc thiết kế các chồng giao thức tỉ mỉ, chi tiết, song có độ tin cậy cao.
Mỗi tầng cấp thi hành và cung cấp các dịch vụ cho tầng ngay trên nó, đồng
thời đòi hỏi dịch vụ của tầng ngay dưới nó. Như đã nói ở trên, một thực thi
bao gồm nhiều tầng cấp trong mô hình OSI, thường được gọi là một "chồng
giao thức".
1.4 Phương thức hoạt động
Ở mỗi tầng mô hình trong tầng ISO, có hai phương thức hoạt động chính
được áp dụng đó là: phương thức hoạt động có liên kết (connection-oriented)
và không có liên kết (connectionless).
Với phương thức có liên kết, trước khi truyền dữ liệu cần thiết phải thiết lập
một liên kết logic giữa các thực thể cùng tầng. Còn với phương thức không
liên kết thì không cần lập liên kết logic và mỗi đơn vị dữ liệu được truyền là
độc lập với các đơn vị dữ liệu trước hoặc sau nó.
1.4.1 Có kết nối (Connection Oriented)
Với phương thức có kết nối, quá trình truyền dữ liệu phải trải qua ba giai đoạn
theo thứ tự thời gian.
Thiết lập kết nối: hai thực thể đồng mức ở hai hệ thống thương lượng
với nhau về tập các tham số sẽ được sử dụng trong giai đoạn sau.
Truyền dữ liệu: dữ liệu được truyền với các cơ chế kiểm soát và quản
lý.
12 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Huỷ bỏ kết nối (logic): giải phóng các tài nguyên hệ thống đã cấp phát
cho liên kết để dùng cho các liên kết khác.
Tương ứng với ba giai đoạn trao đổi, ba thủ tục cơ bản được sử dụng, chẳng
hạn đối với tầng N có: N-CONNECT ( thiết lập liên kết ), N-DATA(Truyền
dữ liệu ), và N-DISCONNECT (Huỷ bỏ kết nối). Ngoài ra còn một số thủ tục
phụ được sử dụng tuỳ theo đặc điểm, chức năng của mỗi tầng. Ví dụ:
Thủ tục N-RESTART được sử dụng để khởi động lại hệ thống ở tầng 3
Thủ tục T-EXPEDITED DATA cho việc truyền dữ liệu nhanh ở tầng 4
Thủ tục S-TOKEN GIVE để chuyển điều khiển ở tầng 5. ..
Mỗi thủ tục trên sẽ dùng các hàm nguyên thuỷ (Request, Indication,
Response, Confirm) để cấu thành các hàm cơ bản của giao thức ISO.
1.4.2 Không kết nối (Connectionless)
Đối với phương thức không kết nối thì chỉ có duy nhất một giai đoạn đó là:
truyền dữ liệu.
So sánh hai phương thức hoạt động trên chúng ta thấy rằng phương thức hoạt
động có kết nối cho phép truyền dữ liệu tin cậy, do đó có cơ chế kiểm soát và
quản lý chặt chẽ từng kết nối logic. Nhưng mặt khác nó phức tạp và khó cài
đặt. Ngược lại, phương thức không kết nối cho phép các PDU (Protocol Data
Unit) được truyền theo nhiều đường khác nhau để đi đến đích, thích nghi với
sự thay đổi trạng thái của mạng, song lại trả giá bởi sự khó khăn gặp phải khi
tập hợp các PDU để di chuyển tới người sử dụng.
Hai tầng kề nhau có thể không nhất thiết phải sử dụng cùng một phương thức
hoạt động mà có thể dùng hai phương thức khác nhau.
1.5 Bộ giao thức TCP/IP
Mô hình OSI là mô hình tham chiếu được tổ chức ISO xây dựng nhằm tạo
một chuẩn phục vụ việc nối kết các hệ thống mở. Tuy nhiên, do nhiều lý do
khác nhau mà OSI không được sử dụng trong thực tế mà thay vào đó được sử
13 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
dụng rộng rãi nhất là mô hình kiến trúc mạng (bộ giao thức) TCP/IP. Hầu như
tất cả các hệ điều hành hiện tại đều có cài đặt bộ giao thức TCP/IP. Trong
phần này sẽ giới thiệu sơ lược về mô hình TCP/IP.
1.5.1 Khái niệm
Bộ giao thức TCP/IP, ngắn gọn là TCP/IP (tiếng Anh: Internet protocol suite
hoặc IP suite hoặc TCP/IP protocol suite - bộ giao thức liên mạng), là một bộ
các giao thức truyền thông cài đặt chồng giao thức mà Internet và hầu hết các
mạng máy tính thương mại đang chạy trên đó. Bộ giao thức này được đặt tên
theo hai giao thức chính của nó là TCP (Giao thức Điều khiển Giao vận) và IP
(Giao thức Liên mạng). Chúng cũng là hai giao thức đầu tiên được định
nghĩa.
Như nhiều bộ giao thức khác, bộ giao thức TCP/IP có thể được coi là một tập
hợp các tầng, mỗi tầng giải quyết một tập các vấn đề có liên quan đến việc
truyền dữ liệu, và cung cấp cho các giao thức tầng cấp trên một dịch vụ được
định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn.
Về mặt lôgic, các tầng trên gần với người dùng hơn và làm việc với dữ liệu
trừu tượng hơn, chúng dựa vào các giao thức tầng cấp dưới để biến đổi dữ
liệu thành các dạng mà cuối cùng có thể được truyền đi một cách vật lý.
1.5.2 Mục đích và nguồn gốc
Giao tiếp thông tin đã trở thành nhu cầu không thể thiếu trong tất cả mọi lĩnh
vực hoạt động. Mạng máy tính tính ra đời phần nào đã đáp ứng được nhu cầu
đó. Phạm vi lúc đầu của các mạng bị hạn chế trong một nhóm làm việc, một
cơ quan, công ty... trong một khu vực. Tuy nhiên thực tế của của những nhu
cầu cần trao đổi thông tin trong nhiều lĩnh vực khác nhau, về nhiều chủ đề
khác nhau, giữa các tổ chức, các cơ quan. ..là không có giới hạn. Vì vậy nhu
cầu cần kết nối các mạng khác nhau của các tổ chức khác nhau để trao đổi
thông tin là thực sự cần thiết. Nhưng thật không may là hầu hết các mạng của
các công ty, các cơ quan... đều là các thực thể độc lập, được thiết lập để phục
vụ nhu cầu trao đổi thông tin của bản thân các tổ chức đó. Các mạng này có
14 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
thể được xây dựng từ những kĩ thuật phần cứng khác nhau để phù hợp với
những vấn đề giao tiếp thông tin của riêng họ. Điều này chính là một cản trở
cho việc xây dựng một mạng chung, bởi vì sẽ không có một kĩ thuật phần
cứng riêng nào đủ đáp ứng cho việc xây dựng một mạng chung thoả mãn nhu
cầu người sử dụng. Người sử dụng cần một mạng tốc độ cao để nối các máy,
nhưng những mạng như vậy không thể được mở rộng trên những khoảng cách
lớn. Nhu cầu về một kỹ thuật mới mà có thể kết nối được nhiều mạng vật lý
có cấu trúc khác hẳn nhau là thật sự cần thiết. Nhận thức được điều đó, trong
quá trình phát triển mạng ARPANET của mình, tổ chức ARPA ( Advanced
Research Projects Agency) đã tập trung nghiên cứu nhằm đưa ra một kỹ thuật
thoả mãn những yêu cầu trên. Kỹ thuật ARPA bao gồm một thiết lập của các
chuẩn mạng xác định rõ những chi tiết của việc làm thế nào để các máy tính
có thể truyền thông với nhau cũng như một sự thiết lập các quy ước cho kết
nối mạng, lưu thông và chọn đường. Kỹ thuật đó được phát triển đầy đủ và
được đưa ra với tên gọi chính xác là TCP/IP Iternet Protocol Suit và thường
được gọi tắt là TCP/IP. Dùng TCT/IP người ta có thể kết nối được tất cả các
mạng bên trong công ty của họ hoặc có thể kết nối giữa các mạng của các
công ty, các tổ chức khác nhau với nhau.
Bộ giao thức TCP/IP gồm nhiều giao thức được phần làm 4 tầng như sau:
Các tầng trong bộ giao thức TCP/IP
15 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
1.5.3 Đặc điểm
Là bộ giao thức chuẩn mở và sẵn có, vì: nó không thuộc sở hữu của bất
cứ một tổ chức nào; các đặc tả thì sẵn có và rộng rãi. Vì vậy bất kì ai
cũng có thể xây dựng phần mềm truyền thông qua mạng máy tính dựa
trên nó.
TCP/IP độc lập với phần cứng mạng vật lý, điều này cho phép TCP/IP
có thể được dùng để kết nối nhiều loại mạng có kiến trúc vật lý khác
nhau như: Ethernet, Tokenring, FDDI, X25, ATM...(Trong phạm vi đề
tài ta chỉ xét tới Ethernet).
TCP/IP dùng địa chỉ IP để định danh các host trên mạng tạo ra một
mạng ảo thống nhất khi kết nối mạng.
Các giao thức lớp cao được chuẩn hoá thích hợp và sẵn có với người
dùng.
1.6 So sánh TCP/IP và OSI
Do nhiều nguyên nhân như lịch sử, chi phí… nên bộ giao thức TCP/IP đã
được sử dụng rất lâu trước khi mô hình OSI ra đời. Cũng do vậy nên mô hình
OSI không được sử dung rộng rãi trong thực tế mà là mô hình học thuật dùng
để so sánh với mô hình thực tế là TCP/IP. Hai cái có liên quan ít nhiều, song
không phải là hoàn toàn giống nhau. Điểm khác biệt đầu tiên dễ thấy nhất là
số lượng của các tầng cấp. Trong khi bộ giao thức TCP/IP có 4 (hoặc 5 tầng)
thì mô hình OSI có tới 7 tầng với sự khác biệt là 2 tầng mới: tầng phiên và
tầng trình diễn. Nhiều so sánh đã gộp 2 tầng này vào tầng ứng dụng trong bộ
giao thức TCP/IP. Hình vẽ sau đây so sánh các tầng tương ứng lẫn nhau giữa
OSI và TCP/IP:
16 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Tương ứng các tầng giữa TCP/IP và OSI
Trong khi mô hình OSI nhấn mạnh độ tin cậy được cung cấp trong dịch
vụ chuyển dữ liệu thì đối với TCP/IP coi độ tin cậy nằm trong vấn đề
end to end.
Trong mô hình OSI tất cả mọi tầng đều có phát hiện và kiểm tra lỗi,
tầng giao vận chỉ làm nhiệm vụ kiểm tra độ tin cậy của source – to –
destination. Còn đối với bộ giao thức TCP/IP tầng giao vận làm mọi
nhiệm vụ kiểm tra phát hiện và sửa lỗi.
Mô hình OSI được xây dựng trước khi các giao thức của nó được xây
dựng, do vậy nó có tính tổng quát cao và có thể được dùng đẻ mô tả các
mô hình khác. Ngược lại, bộ giao thức TCP/IP chỉ là một mô hình để
nhóm và miêu tả những giao thức sẵn có trong thực tế. Vì vậy bộ giao
thức TCP/IP được sử dụng rộng rãi trong thực tế trong khi mô hình OSI
lại phù hợp với mục đích học tập và giảng dạy.
17 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
2 Bộ giao thức TCP/IP – Các giao thức và khuôn dạng dữ liệu chính
2.1 Cấu trúc phân tầng của TCP/IP
Như ta đã nói ở phần trên, TCP/IP là mô hình mở để kết nối mạng, Do vậy,
nó cũng được thiết kế theo kiến trúc phân tầng tương tự như mô hình OSI. Bộ
giao thức TCP/IP được thiết kế gồm 4 tầng được mô tả theo hình dưới:
Bộ giao thức TCP/IP
2.2 Đóng gói dữ liệu trong TCP/IP
Bộ giao thức TCP/IP dùng sự đóng gói dữ liệu nhằm trừu tượng hóa các giao
thức và dịch vụ, nói cách khác là các giao thức ở tầng cao hơn sử dụng các
giao thức ở tầng thấp hơn nhằm đạt được mục đích của mình bằng cách đóng
gói dữ liệu giống như ở ví dụ trong hình sau:
18 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
Những tầng trên đỉnh gần với người sử dụng hơn, những tầng thấp nhất gần
với thiết bị truyền thông hơn. Trong mỗi tầng là một nhóm nhiều giao thức,
trong đó có một giao thức để phục vụ tầng trên của nó và một giao thức sử
dụng dịch vụ của tầng dưới của nó (ngoại trừ tầng đỉnh và tầng đáy). Bảng
sau liệt kê một số giao thức của các tầng:
Tầng Giao Thức
DNS, TFTP, TLS/SSL, FTP, Gopher, HTTP, IMAP, IRC,
Application NNTP, POP3, SIP, SMTP,SMPP, SNMP, SSH, Telnet,
Echo, RTP, PNRP, rlogin, ENRP
Transport TCP, UDP, DCCP, SCTP, IL, RUDP, RSVP
Internet IP (IPv4, IPv6), ICMP, IGMP, ICMPv6
Link ARP, RARP, OSPF (IPv4/IPv6), IS-IS, NDP
Một số giao thức trên các tầng của TCP/IP
2.3 Sơ lược chức năng các tầng
2.3.1 Tầng ứng dụng (Application Layer)
Đây là tầng cao nhất trong cấu trúc phân lớp của TCP/IP. Tầng này bao gồm
tất cả các chuơng trình ứng dụng sử dụng các dịch vụ sẵn có thông qua một
chồng giao thức TCP/IP. Các chương trình ứng dụng tương tác với một trong
các giao thức của tầng giao vận để truyền hoặc nhận dữ liệu. Mỗi chương
19 Trần Ngọc Việt – CNT46 ĐH
- Chương I. Cơ sở lý thuyết mạng máy tính
trình ứng dụng lựa chọn một kiểu giao thức thích hợp cho công việc của nó.
Chương trình ứng dụng chuyển dữ liệu theo mẫu mà tầng giao vận yêu cầu.
2.3.2 Tầng giao vận (Transport Layer)
Nhiệm vụ trước tiên của tầng giao vận là cung cấp sự giao tiếp thông tin giữa
các chương trình ứng dụng. Mỗi sự giao tiếp được gọi là end-to-end. Tầng
giao vận cũng có thể điều chỉnh lưu lượng luồng thông tin. Nó cũng cung cấp
một sự vận chuyển tin cậy, đảm bảo rằng dữ liệu đến mà không bị lỗi. Để làm
như vậy, phần mềm giao thức hỗ trợ để bên nhận có thể gửi lại các thông báo
xác nhận về việc thu dữ liệu và bên gửi có thể truyền lại các gói tin bị mất
hoặc bị lỗi. Phần mềm giao thức chia dòng dữ liệu ra thành những đơn vị dữ
liệu nhỏ hơn (thường được gọi là các Packets) và chuyển mỗi packet cùng với
địa chỉ đích tới tầng tiếp theo để tiếp tục quá trình truyền dẫn.
2.3.3 Tầng Internet (Internet Layer)
Tầng mạng xử lý giao tiếp thông tin từ một máy này tới một máy khác. Nó
chấp nhận một yêu cầu để gửi một gói từ từ tầng giao vận cùng với một định
danh của máy đích mà gói tin sẽ được gửi tới. Ví dụ với giao thức TCP hay
UDP của tầng giao vận, nó sẽ bọc gói tin trong một IP Datagram, điền đầy
vào trong phần header, sử dụng giải thuật chọn đường để quyết định là giao
phát gói tin trực tiếp hay là gửi nó tới một Router, và chuyển datagram tới
giao diện phối ghép mạng thích hợp cho việc truyền dẫn.tầng mạng cũng xử
lý các Datagram đến, kiểm tra tính hợp lệ của chúng, và sử dụng giải thuật
chọn đường đẻ quyết định là datagram sẽ được xử lý cục bộ hay là sẽ được
chuyển đi tiếp. Đối với các datagrams có địa chỉ đích cục bộ, thì phần mềm
tầng mạng sẽ xoá phần header của các datagram đó, và chọn trong số các giao
thức tầng giao vận một giao thức thích hợp để xử lý packet.
2.3.4 Tầng liên kết (Link Layer)
Là tầng thấp nhất của bộ giao thức TCP/IP, chịu trách nhiệm về việc chấp
nhận các datagram của tầng trên (ví dụ IP datagram) và việc truyền phát
chúng trên một mạng xác định. Theo quan điểm hiện nay mô hình TCP/IP
20 Trần Ngọc Việt – CNT46 ĐH
nguon tai.lieu . vn