Top Banner
MỤC LỤC CHƯƠNG I. CƠ SỞ LÝ THUYẾT MẠNG MÁY TÍNH............5 1 Tổng Quan Hệ Thống Mạng TCP/IP Ethernet........5 1.1 Khái niệm mạng máy tính..............................5 1.2 Kiến trúc phân tầng..................................6 1.3 Mô hình OSI..........................................9 1.3.1 Khái niệm..........................................9 1.3.2 Mục đích.......................................... 10 1.4 Phương thức hoạt động...............................11 1.4.1 Có kết nối (Connection Oriented)........................11 1.4.2 Không kết nối (Connectionless).........................12 1.5 Bộ giao thức TCP/IP.................................12 1.5.1 Khái niệm.........................................12 1.5.2 Mục đích và nguồn gốc...............................13 1.5.3 Đặc điểm.......................................... 14 1.6 So sánh TCP/IP và OSI...............................15 2 Bộ giao thức TCP/IP – Các giao thức và khuôn dạng dữ liệu chính................................16 2.1 Cấu trúc phân tầng của TCP/IP.......................16 2.2 Đóng gói dữ liệu trong TCP/IP.......................17 2.3 Sơ lược chức năng các tầng..........................18 2.3.1 Tầng ứng dụng (Application Layer)......................18 2.3.2 Tầng giao vận (Transport Layer)........................18 2.3.3 Tầng Internet (Internet Layer)..........................18 2.3.4 Tầng liên kết (Link Layer)..............................19 2.4 Các giao thức chính và khuôn dạng dữ liệu tương ứng. 19 2.4.1 Ethernet..........................................19 2.4.2 ARP (address resolution protocol).......................21 2.4.3 RARP (reserve address resolution protocol)................22 2.4.4 IP (internet protocol).................................23 2.4.5 ICMP (internet control message protocol).................26 2.4.6 TCP (Transmission Control Protocol).....................27 2.4.7 UDP (User Datagram Protocol).........................29 2.4.8 HTTP (Hypertext Transfer Protocol)......................30 2.4.9 DNS (Domain Name System)...........................31 CHƯƠNG II. KỸ THUẬT CHẶN BẮT......................33 1 Tổng Quan Về Chặn Bắt Gói Tin (Sniffer).......33 Trần Ngọc Việt – CNT46 ĐH 1
112

MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

May 25, 2018

Download

Documents

dinhcong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

MỤC LỤCCHƯƠNG I. CƠ SỞ LÝ THUYẾT MẠNG MÁY TÍNH.............................5

1 Tổng Quan Hệ Thống Mạng TCP/IP Ethernet.....................................51.1 Khái niệm mạng máy tính.....................................................................................51.2 Kiến trúc phân tầng...............................................................................................61.3 Mô hình OSI...........................................................................................................9

1.3.1 Khái niệm.........................................................................................................91.3.2 Mục đích........................................................................................................10

1.4 Phương thức hoạt động.......................................................................................111.4.1 Có kết nối (Connection Oriented).................................................................111.4.2 Không kết nối (Connectionless)....................................................................12

1.5 Bộ giao thức TCP/IP............................................................................................121.5.1 Khái niệm.......................................................................................................121.5.2 Mục đích và nguồn gốc.................................................................................131.5.3 Đặc điểm........................................................................................................14

1.6 So sánh TCP/IP và OSI.......................................................................................152 Bộ giao thức TCP/IP – Các giao thức và khuôn dạng dữ liệu chính 16

2.1 Cấu trúc phân tầng của TCP/IP.........................................................................162.2 Đóng gói dữ liệu trong TCP/IP...........................................................................172.3 Sơ lược chức năng các tầng.................................................................................18

2.3.1 Tầng ứng dụng (Application Layer).............................................................182.3.2 Tầng giao vận (Transport Layer)..................................................................182.3.3 Tầng Internet (Internet Layer).....................................................................182.3.4 Tầng liên kết (Link Layer)............................................................................19

2.4 Các giao thức chính và khuôn dạng dữ liệu tương ứng...................................192.4.1 Ethernet.........................................................................................................192.4.2 ARP (address resolution protocol)................................................................212.4.3 RARP (reserve address resolution protocol)................................................222.4.4 IP (internet protocol).....................................................................................232.4.5 ICMP (internet control message protocol)...................................................262.4.6 TCP (Transmission Control Protocol)..........................................................272.4.7 UDP (User Datagram Protocol)....................................................................292.4.8 HTTP (Hypertext Transfer Protocol)...........................................................302.4.9 DNS (Domain Name System)........................................................................31

CHƯƠNG II. KỸ THUẬT CHẶN BẮT.......................................................33

1 Tổng Quan Về Chặn Bắt Gói Tin (Sniffer).........................................331.1 Các khái niệm liên quan......................................................................................331.2 Ứng dụng của sniffer...........................................................................................34

1.2.1 Khả năng........................................................................................................341.2.2 Mục đích........................................................................................................34

1.3 Các chương trình sniffer hiện có........................................................................352 Cách Thức Hoạt Động..........................................................................35

2.1 Theo dõi Network Traffic....................................................................................352.2 Phân tích Network Traffic..................................................................................36

Trần Ngọc Việt – CNT46 ĐH1

Page 2: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

2.3 Các thành phần của một chương trình sniffer..................................................382.4 Phòng chống sniffer.............................................................................................39

2.4.1 Phát hiện sniffer trong mạng........................................................................392.4.2 Ngăn chặn sniffer..........................................................................................402.4.3 Một số chương trình phát hiện sniffer.........................................................40

3 Các Phương Pháp Xây Dựng...............................................................413.1 Raw Socket – mức hệ điều hành.........................................................................413.2 Pcap – mức network adapter..............................................................................423.3 So sánh Raw Socket và Pcap..............................................................................44

CHƯƠNG III. PHÂN TÍCH, LỰA CHỌN VÀ THIẾT KẾ GIẢI THUẬT 46

1 Chi Tiết Các Phương Pháp...................................................................461.1 Winsock................................................................................................................46

1.1.1 Khái niệm.......................................................................................................461.1.2 Các sự kiện của Winsock..............................................................................471.1.3 Loại Socket trong Winsock............................................................................471.1.4 Làm việc với Socket trong Winsock..............................................................47

1.2 .NET Socket..........................................................................................................491.2.1 Khái niệm.......................................................................................................491.2.2 Làm việc với .NET Socket.............................................................................491.2.3 Demo..............................................................................................................51

1.3 Winpcap................................................................................................................511.3.1 Khái niệm.......................................................................................................511.3.2 Làm việc với Winpcap.................................................................................52

2 Hướng Thực Hiện Chương Trình........................................................542.1 Bắt gói tin.............................................................................................................552.2 Tách phần header................................................................................................552.3 Phân tích, tổng hợp header.................................................................................552.4 Đưa vào cơ sở dữ liệu..........................................................................................562.5 Hiển thị, thống kê và báo cáo..............................................................................57

3 Lựa chọn giải thuật...............................................................................57

CHƯƠNG IV. XÂY DỰNG CHƯƠNG TRÌNH.........................................59

1 Các Chức Năng Chính..........................................................................59

2 Phân Tích Xây Dựng Các Chức Năng Chính.....................................622.1 Hoạt động tổng quát............................................................................................622.2 Chức năng đo lưu lượng......................................................................................63

2.2.1 Đo lưu lượng vào/ra trên máy cài đặt chương trình.................................632.2.2 Báo cáo thông tin lưu lượng........................................................................63

2.3 Bắt gói tin.............................................................................................................642.4 Các thao tác với File............................................................................................662.5 Giao diện (View)..................................................................................................672.6 Thống kê (Statistics)............................................................................................67

2.6.1 Thống kê tích lũy (Cumulative)....................................................................672.6.2 Thống kê liên tục (Continous)......................................................................68

2.7 Quản lý mạng.......................................................................................................68

Trần Ngọc Việt – CNT46 ĐH2

Page 3: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

2.7.1 Khóa mạng theo một luật mà người dùng lựa chọn....................................683 Giới Thiệu Chương Trình.....................................................................69

3.1 Khởi động chương trình......................................................................................693.2 Chức năng báo cáo..............................................................................................703.3 Chức năng bắt gói tin..........................................................................................703.4 Các thao tác với file.............................................................................................753.5 Chức năng di chuyển trên bảng dư liệu............................................................763.6 Chức năng thống kê.............................................................................................76

3.6.1 Thống kê tích lũy (Cumulative Statistics)....................................................773.6.2 Thống kê liên tục (Continous Statistics)......................................................78

3.7 Ngăn chặn thông tin............................................................................................793.8 Một số tính năng phụ...........................................................................................80

4 Nhược điểm và hướng phát triển.........................................................814.1 Nhược điểm..........................................................................................................814.2 Hướng phát triển.................................................................................................82

Kết Luận........................................................................................................84

TÀI LIỆU THAM KHẢO............................................................................85

Trần Ngọc Việt – CNT46 ĐH3

Page 4: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

LỜI MỞ ĐẦUNgà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

Trần Ngọc Việt – CNT46 ĐH4

Page 5: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

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ý.

Giai đoạn mạng máy tính:

Trần Ngọc Việt – CNT46 ĐH5

Page 6: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết 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 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ư

Trần Ngọc Việt – CNT46 ĐH6

Page 7: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tí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ì.

Minh họa kiến trúc phân tầng tổng quát

Trần Ngọc Việt – CNT46 ĐH7

Page 8: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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ó.

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ử

Trần Ngọc Việt – CNT46 ĐH8

Page 9: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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ở.

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

Trần Ngọc Việt – CNT46 ĐH9

Page 10: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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

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ý.

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.

Trần Ngọc Việt – CNT46 ĐH10

Page 11: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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, Con-

firm) để 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ử 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.

Trần Ngọc Việt – CNT46 ĐH11

Page 12: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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ó 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

Trần Ngọc Việt – CNT46 ĐH12

Page 13: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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

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ư: Eth-

ernet, Tokenring, FDDI, X25, ATM...(Trong phạm vi đề tài ta chỉ xét tới

Ethernet).

Trần Ngọc Việt – CNT46 ĐH13

Page 14: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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:

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.

Trần Ngọc Việt – CNT46 ĐH14

Page 15: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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.

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

Trần Ngọc Việt – CNT46 ĐH15

Page 16: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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:

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

ApplicationDNS, TFTP, TLS/SSL, FTP, Gopher, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP,SMPP, SNMP, SSH, Telnet, Echo, RTP, PNRP, rlogin, ENRP

Transport TCP, UDP, DCCP, SCTP, IL, RUDP, RSVPInternet IP (IPv4, IPv6), ICMP, IGMP, ICMPv6Link 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 trình ứng dụng lựa chọn

Trần Ngọc Việt – CNT46 ĐH16

Page 17: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

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 không còn bao gồm các

đặc tả vật lý, nói cách khác tầng liên kết cũng không còn bao gồm vấn đề về phần

cứng hay việc truyền tín hiệu vật lý nữa.

Trần Ngọc Việt – CNT46 ĐH17

Page 18: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

2.4 Các giao thức chính và khuôn dạng dữ liệu tương ứng

Trong phần này ta sẽ xem xét các giao thức cũng như khuôn dạng dữ liệu chính của

bộ giao thức TCP/IP. Để dễ phân biệt ta sẽ xem xét đối với từng tầng của TCP/IP

theo thứ tự từ dưới lên trên.

2.4.1 Ethernet

Là giao thức nằm trong tầng liên kết hay là một chuẩn công nghệ dành cho mạng

cục bộ (LAN) được quy định trong IEEE 802.3. Nó là một giao thức nằm trong tầng

liên kết của bộ giao thức TCP/IP hay tương ứng là tầng liên kết dữ liệu trong mô

hình OSI. Hiện nay nó đang được sử dụng rất rộng rãi so với các giao thức khác

như FDDI, Token Ring…Ethernet được dùng để gửi những khối dữ liệu giữa điểm

nguồn và điểm đích được xác định dựa vào địa chỉ MAC (Media Access Control).

Đặc điểm của giao thức Ethernet

Cấu trúc của một đơn vị dữ liệu trong giao thức Ethernet (gọi là Ethernet frame) có cấu

trúc như sau: (đơn vị tính theo byte).

PRE SOF DA SA Length/Type Data Payload FCS

7 1 6 6 2 46-1500 4

Ethernet frame

Header

o Preamble (PRE): Phần mở đầu gồm 7 byte và không được tính

vào kích thước của Ethernet. Tất cả các byte trong phần mở

đầu này đều có giá trị 10101010 và nó được dùng để đồng bộ

đồng hồ giữa nơi nhận và gửi frame.

o SOF (Start frame delimiter) gồm 1 byte và không được tính

vào kích thước của Ethernet. Byte này có giá trị 101010111 và

được sử dụng để đánh dấu bắt đầu của một frame. Đối với

những hệ thống Ethernet hiện nay hoạt động ở tốc độ 100

Mbps hoặc 1000Mbps không còn cần tới PRE và SOF.

o DA (Destination Address) có độ dài 6 byte là địa chỉ nơi MAC

của Ethernet card nơi đến. Ở chế độ hoạt động bình thường

Trần Ngọc Việt – CNT46 ĐH18

Page 19: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Ethernet chỉ tiếp nhấn những frame có địa chỉ nơi đến trùng

với địa chỉ (duy nhất) của nó hoặc địa chỉ nơi đến thể hiện một

thông điệp quảng bá. Tuy nhiên hầu hết các Ethernet card hiện

nay đều có thể được đặt ở chế độ đa hỗn tạp (promiscuous

mode) và khi đó nó sẽ nhận tất cả các frame xuất hiện trong

mạng LAN.

o SA (Source Addresss) có độ dài 6 byte là địa chỉ MAC của

card nguồn.

o Length/Type (Độ dài/Loại) 2 byte chỉ ra độ dài (đối với IEEE

802.3 MAC frame) và loại của Ethernet frame chỉ giao thức

của tầng cao hơn (đối với DIX Ethernet.(DEC- Intel – Xerox)

– phổ biến hơn). Ví dụ như với DIX Ethernet frame có giao

thức tầng trên là IP thì 2 byte này sẽ có giá trị là 0800h và ARP

là 0806h.

Data Payload: Phần thông tin dữ liệu có độ dài từ 46 tới 1500 byte.

Trailer (FCS - Frame Check Sequence): 32 bit sửa lỗi CRC.

Ethernet sử dụng phương thức truy nhập đường truyền CSMA/CD, do vậy những

frame lỗi do xảy ra xung đột (collision) trên đường truyền là không thể tránh khỏi.

Tuy nhiên, nếu như tỉ lệ những frame lỗi vượt quá một mức nào đó (ví dụ như 1%

tổng số frame) có nghĩa là hệ thống mạng đã có vấn đề. Những Ethernet frame lỗi

bao gồm:

Frame có độ lớn nhỏ hơn 64 byte. (normal collision – xảy ra khá phổ biến).

Frame có độ lớn lớn hơn 1518 byte.

Frame có độ lớn phù hợp nhưng có phần CRC bị sai lệch (late collision – nếu

có nhiều frame dạng này tức là hệ thống mạng đang gặp vấn đề nghiêm

trọng).

Trần Ngọc Việt – CNT46 ĐH19

Page 20: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

2.4.2 ARP (address resolution protocol)

Giao thức phân giải địa chỉ ARP là phương pháp tìm địa chỉ tầng liên kết (hay địa

chỉ vật lý) khi biết địa chỉ tầng Internet (IP) hoặc một vài kiểu địa chỉ tầng mạng

khác. ARP được sử dung không chỉ để chuyển đổi địa chỉ đối với IP và Ethernet mà

nó được cài đặt để làm việc với nhiều loại địa chỉ của các tầng các loại mạng khác

nhau. Tuy nhiên, do sự phổ biến của IPv4 và Ethernet nên ARP chủ yếu được dùng

để chuyển đổi từ địa chỉ IP thành địa chỉ MAC. Nó cũng được sử dụng đối với IP

dựa trên các công nghệ LAN khác Ethernet như FDDI, Token Ring, IEEE 802.11

hay ATM.

Trong thực tế, khi truyền thông với máy chủ thay vì truy vấn địa chỉ vật lý của máy

chủ, giao thức ARP sẽ sử dụng bộ đệm ARP (ARP cache). Bộ đệm lưu trữ các địa

chỉ IP gần nhất đã được phân giải. Nếu địa chỉ MAC của địa chỉ IP đích được tìm

thấy trong bộ đệm thì địa chỉ này sẽ được sử dụng để truyền thông.

Cấu trúc của một đơn vị dữ liệu giao thức ARP như sau:

Bit offset 0 – 7 8 – 15 16 – 32

0 Hardware type (HTYPE) Protocol type (PTYPE)

32 Hardware length (HLEN) Protocol length (PLEN)

Operation (OPER)

64 Sender hardware address (SHA)96 Sender hardware address (SHA) Sender protocol address (SPA)128 Sender protocol address (SPA) Target hardware address (THA)160 Target hardware address (THA)192 Target protocol address (TPA)

Cấu trúc một đơn vị dữ liệu ARP

Hardware type (HTYPE)  Mỗi giao thức tầng liên kết (link layer) sẽ được

gán một số để phân biệt (ví dụ như Ethernet là 1)..

Protocol type (PTYPE) Dùng để phân biệt giao thức tầng Internet, ví dụ như

với IP là 0x0800.

Hardware length (HLEN) Độ dài tính theo byte của địa chỉ vật lý. Đối với

Ethernet giá trị này là 6.

Trần Ngọc Việt – CNT46 ĐH20

Page 21: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Protocol length (PLEN) Độ dài tính theo byte của địa chỉ logic. Đối với IP

giá trị này là 4..

Operation  Xác định hành động mà bên gửi gói tin đang thực hiện: 1 cho re-

quest, 2 cho reply, 3 cho RARP request và 4 cho RARP reply.

Sender hardware address (SHA) Địa chỉ vật lý của trạm gửi.

Sender protocol address (SPA) Địa chỉ logic của trạm gửi (ví dụ như địa chỉ

IP).

Target hardware address (THA) Địa chỉ vật lý của trạm đích. Trường này

được để trống đối với gói tin request.

Target protocol address (TPA)  Địa chỉ logic của trạm đích.

2.4.3 RARP (reserve address resolution protocol)

Là giao thức ngược lại so với ARP, tìm địa chỉ logic khi biết địa chỉ vật lý. Cấu trúc

của một đơn vị dữ liệu của giao thức RARP hoàn toàn tương tự như ARP, ngoại trừ

trường Operation. Đối với gói dữ liệu ARP thì Operation có giá trị 1 nếu là request,

2 nếu reply. Đối với gói dữ liệu RARP thì Operation có giá trị 3 nếu là request và 4

nếu là reply.

2.4.4 IP (internet protocol)

Giao thức liên mạng IP hạt nhân của bộ giao thức TCP/IP. Trong phạm vi đề tài

chúng ta chỉ xét tới IP phiên bản 4 (IPv4). IP là một giao thức hướng dữ liệu được

sử dụng trong mạng chuyển mạch gói (ví dụ như Ethernet). IP là một giao thức hoạt

động theo phương thức không liên kết (connectionless) và không đảm bảo truyền

(không có sự trao đổi thông tin điều khiển). Vai trò của IP tương tự như vài trò của

giao thức tầng mạng (network layer) trong mô hình OSI với các chức năng như sau:

Xác định lược đồ địa chỉ Internet.

Di chuyển dữ liệu giữa tầng giao vận và tầng liên kết.

Dẫn đường cho các đơn vị dữ liệu tới các trạm ở xa.

Thực hiện việc cắt và hợp các đơn vị dữ liệu.

Trần Ngọc Việt – CNT46 ĐH21

Page 22: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Giao thức IP sẽ bổ sung phần header vào trước segment được gửi từ tầng giao vận

xuống và đơn vị dữ liệu này trong bộ giao thức TCP/IP được gọi là IP packet như

hình sau:

Đơn vị dữ liệu của giao thức IP có cấu trúc như sau:

Bit offset 0–3 4–7 8–15 16–18 19–31

0 Version Header length

Differentiated Services Total Length

32 Identification Flags Fragment Offset64 Time to Live Protocol Header Checksum96 Source Address128 Destination Address160 Options + Padding

160 /192+ Data (max 65535 bytes)

Cấu trúc đơn vị dữ liệu IP

Trong đó phần header bao gồm các thành phần:

Version: chỉ ra phiên bản hiện hành của IP được cài đặt (có giá trị là 4 đối

với IPv4).

Internet Header Length (IHL)  Chỉ độ dài phần đầu của IP packet, tính

theo đơn vị từ (word = 32 bit). Độ dài tối thiểu là 5 từ (20 byte).

Differentiated Services (DS): Trước đây còn gọi là Type of Services đặc tả các tham số dịch vụ, có dạng cụ thể như sau:

Với ý nghĩa các bit cụ thể:

Trần Ngọc Việt – CNT46 ĐH

bit 0 – 2 3 5 5 6 7

Precedenc

e

D T R C Reserve

d

22

Page 23: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Precedebce (3 bit): quyền ưu tiên cụ thể là 111 - Network Control, 110 - In-

ternetwork Control, 101 - CRITIC/ECP, 100 - Flash Override, 011 - Flash,

010 - Immediate, 001 - Priority, 000 – Routine.

D (Delay) (1 bit): chỉ độ trễ yêu cầu D = 0 nếu độ trễ bình thường, 1 nếu độ

trễ thấp.

T (Throughput) (1 bit): chỉ thông lượng yêu cầu T = 0 thông lượng bình

thường, 1 nếu thông lượng cao.

R (Reliability) (1bit) chỉ độ tin cậy yêu cầu R = 0 độ tin cậy bình thường, 1

nếu độ tin cậy cao.

C (Cost) (1bit) chỉ hao phí C = 0 normal cost, 1 nếu minimize cost.

Reserved (1bit) để dành.

Total Length  trường 16 bit chỉ độ dài toàn bộ datagram bao gồm cả phần

header và phần data tính theo byte và có giá trị lớn nhất là 65535 và giá trị

nhỏ nhất là 20 byte.

Identification (16 bit) định danh duy nhất cho 1 datagram khi nó vẫn còn trên

liên mạng.

Flags (3 bit) điều khiển sự phân mảnh. Theo thứ tự từ bit cao xuống bit thấp

như sau:

o Reserved: có giá trị 0.

o DF: 0 (May Fragment); 1 (Don’t Fragment).

o MF: 0 (Last Fragment); 1 (More Fragment).

Fragment Offset chỉ vị trí của đoạn (fragment) trong datagram tính theo đơn

vị 64 bit, có nghĩa mỗi đoạn (trừ đoạn cuối cùng) phải chứa một vùng dữ liệu

có độ dài là bội số của 64 bit.

Trần Ngọc Việt – CNT46 ĐH23

Page 24: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Time To Live (TTL)  (8 bit): quy định thời gian tồn tại (tính bằng giây) của

datagram trong liên mạng để tránh tình trạng một datagram bị lặp vô hạn trên

liên mạng. Thời gian này được cho bởi trạm gửi và được giảm đi (thường

quy ước là 1 đơn vị) khi datagram đi qua mỗi router của liên mạng.

Protocol  (8 bit): chỉ ra giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ở

trạm đích (hiện tại thường là TCP hoặc UDP được cài đặt trên IP).

Header Checksum  (16 bit): mã kiểm soát lỗi 16 bit theo phương pháp CRS,

chỉ dành cho phần header.

Source address (32 bit): địa chỉ trạm nguồn.

Destination address (16 bit): địa chỉ trạm đích.

Options (độ dài thay đổi): khai báo các lựa chọn do người dùng yêu cầu (tùy

theo từng chương trình).

Padding (độ dài thay đổi): vùng đệm được dùng để đảm bảo cho phần header

luôn kết thúc ở một mốc 32 bits.

Data (độ dài thay đổi): vùng dữ liệu có độ dài là bội số của 8 bit và tối đa là

65535 byte.

2.4.5 ICMP (internet control message protocol)

Giao thức ICMP cung cấp cơ chế thông báo lỗi và các tình huống không mong

muốn cũng như điều khiển các thông báo trong bộ giao thức TCP/IP. Giao thức này

được tạo ra để thông báo các lỗi dẫn đường cho trạm nguồn. ICMP phụ thuộc vào

IP để có thể hoạt động và là một phần không thể thiếu của bộ giao thức TCP/IP, tuy

nhiên nó không phải giao thức dùng để truyền tải dữ liệu nên thường được coi nằm

trong tầng Internet (Internet layer) mà không phải là tầng giao vận (transport layer).

Chức năng của ICMP như sau:

Cung cấp thông báo phản hồi và trả lời để kiểm tra độ tin cậy của kết nối giữ

hai trạm. Điều này được thiết lập bởi câu lệnh PING (Packet internet gro-

pher).

Trần Ngọc Việt – CNT46 ĐH24

Page 25: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Địch hướng lại lưu lượng để cung cấp việc dẫn đường hiệu quả hơn khi một

bộ dẫn đường quá tải dõ lưu lượng qua nó quá lớn.

Gửi thông báo về thời gian quá khi datagram của trạm nguồn đã vượt quá

TTL và bị loại bỏ.

Gửi quảng cáo dẫn đường để xác định địa chỉ của các bộ dẫn đường trên

đoạn mạng.

Cung cấp các thông báo quá hạn thời gian.

Xác định subnet mask nào được sử dụng trên đoạn mạng.

Dữ liệu của gói ICMP sẽ được đóng gói bởi giao thức IP và Ethernet như trong hình vẽ sau:

Đơn vị dữ liệu của ICMP bao gồm 2 phần: Header và Data. Phần Data trong Win-

dow có độ lớn là 32 và theo ngay sau phần Header. Header được bắt đầu sau bit thứ

160 của gói tin IP (trừ khi phần IP Option được sử dụng) có cấu trúc như sau:

Trong đó:

Type (8 bit): Loại gói tin ICMP.

Code (8 bit): Chi tiết về các đặc điểm của gói tin ICMP.

Checksum( 16 bit) Mã sửa lỗi CRC.

ID & Sequence (32 bit): Có giá trị trong trường hợp ICMP Echo Request và

Echo Reply.

Trần Ngọc Việt – CNT46 ĐH

bit 160 – 167 168 – 175 176 – 183 184 – 191160 Type Code Checksum192 ID Sequence

25

Page 26: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

2.4.6 TCP (Transmission Control Protocol)

Giao thức điều khiển truyền TCP là một giao thức hoạt động theo phương thức có

liên kết (connection – oriented). Trong bộ giao thức TCP/IP, nó là giao thức trung

gian giữa IP và một ứng dụng phía trên, đảm bảo dữ liệu được trao đổi một cách tin

cậy và đúng thứ tự. Các ứng dụng sẽ gửi các dòng gồm các byte 8 bit tới TCP để

gửi qua mạng. TCP sẽ phân chia các dòng này thành các đoạn (segment) có kích

thước thích hợp (thường dựa theo kích thước của đơn vị truyền dẫn tối đa MTU của

tầng liên kết của mạng mà máy tính đang nằm trong đó. Sau đó TCP chuyển các gói

tin thu được tới IP để thực hiện chuyển nó qua liên mạng tới modul TCP tại máy

tính đích. Trong quá trình này, nó sẽ có cơ chế bắt tay, điều khiển truyền, đánh số

thứ tự và sửa lỗi để việc truyền dẫn diễn ra đúng đắn và chính xác.

Đơn vị dữ liệu của TCP được gọi là segment (đoạn dữ liệu) bao gồm 2 phần:

Header và Data, được miêu tả dưới hình sau:

Bit 0 – 3 4 – 9 10 – 15 16 – 310 Source Port Destination Port

32 Sequence Number64 Acknowledgement Number96 Data Offset Reserved Flags Window128 Checksum Urgent Pointer160 Options + Padding

160/192+ Data

Cấu trúc đơn vị dữ liệu TCP

Trong đó:

Source port (16 bit): Số hiệu của cổng của trạm nguồn

Destination port (16 bit): Số hiệu của cổng của trạm đích.

Sequence number (32 bit): Trường này có 2 nhiệm vụ. Nếu cờ SYN bật thì

nó là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN + 1. Nếu

không có cờ SYN thì đây là số hiệu byte đầu tiên của segment.

Trần Ngọc Việt – CNT46 ĐH26

Page 27: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Acknowledgement number (32 bit): Số hiệu của segment tiếp theo mà trạm

nguồn đang chờ để nhận. Ngầm ý báo nhận tốt (các) segment mà trạm đích

đã gửi cho trạm nguồn.

Data offset (4 bit): Qui định độ dài của phần header (tính theo đơn vị từ 32

bit). Phần header có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ (480

bit).

Reserved (6 bit): Dành cho tương lai và có giá trị là 0.

Flags (hay Control bits): Bao gồm 6 cờ từ trái sang phải như sau:

o URG: Cờ cho trường Urgent pointer

o ACK: Cờ cho trường Acknowledgement

o PSH: Hàm Push

RST: Thiết lập lại đường truyền

SYN: Đồng bộ lại số hiệu tuần tự (sequene number).

o FIN: Không còn dữ liệu từ trạm nguồn.

Window (16 bit): Số byte trạm nguồn có thể nhận bắt đầu từ giá trị của

trường báo nhận (ACK).

Checksum: 16 bit kiểm tra cho cả phần header và dữ liệu.

Urgent pointer (16 bit): Trỏ tới số hiệu tuần tự của byte đi theo sau dữ liệu

khẩn, cho phép bên nhận biết được độ dài của vùng dữ liệu khẩn. Vùng này

chỉ có hiệu lực khi cờ URG được thiết lập.

Options (độ dài thay đổi): Đây là trường tùy chọn.

Padding (độ dài thay đổi): Phần chèn thêm vào header để bảo đảm phần

header luôn kết thúc ở một mốc 32 bit. Phần thêm này gồm toàn số 0.

Trần Ngọc Việt – CNT46 ĐH27

Page 28: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

TCP data (độ dài thay đổi): Chưa dữ liệu của tầng trên, có độ dài ngầm định

là 536 byte. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng op-

tions.

2.4.7 UDP (User Datagram Protocol)

Đây là một giao thức “không liên kết” được sử dụng thay thế trên IP theo yêu cầu

của các ứng dụng. Khác với TCP, UDP không có các chức năng thiết lập và giải

phóng liên kết. Nó cũng không cung cấp các cơ chế báo nhận, không sắp xếp tuần

tự các đơn vị dữ liệu đến và có thể dẫn tới tình trạng dữ liệu mất hoặc trùng mà

không hề có thông báo lỗi cho người gửi. Tóm lại nó cung cấp các dịch vụ giao vận

không tin cậy như trong TCP. Do ít chức năng phức tạp nên UDP có xu thế hoạt

động nhanh hơn so với TCP. Nó thường được dùng cho các ứng dụng không đòi hỏi

độ tin cậy cao trong giao vận.

Cấu trúc của một đơn vị dữ liệu UDP như sau:

Bit 0 - 15 16 – 310 Source Port Destination Port32 Length Checksum64 Data

Cấu trúc đơn vị dữ liệu UDP

Trong đó:

Source port (16 bit): Trường này xác định cổng của trạm gửi và có ý nghĩa

nếu muốn nhận thông tin phản hồi từ người nhận. Nếu không dùng đến thì

đặt nó bằng 0.

Destination port (16 bit): Trường xác định cổng của trạm nhận thông tin, và

trường này là cần thiết.

Length (16 bit): Xác định chiều dài của toàn bộ datagram: phần header và dữ

liệu. Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header.

Trần Ngọc Việt – CNT46 ĐH28

Page 29: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

Checksum (16 bit): Trường checksum 16 bit dùng cho việc kiểm tra lỗi của

phần header và dữ liệu.

2.4.8 HTTP (Hypertext Transfer Protocol)

Là một giao thức tầng ứng dụng dựa trên giao thức TCP của tầng giao vận trên cổng

số 80 hỗ trợ Web. Trong giao thức này mỗi đối tượng dữ liệu (trang web, ảnh, au-

dio...) được truyền trong những phiên (HTTP session) riêng biệt. Phần dữ liệu được

đưa xuống tầng giao vận và được chuyển thành các TCP packet để gửi cho trạm

nhận.

Để bắt đầu một phiên, client thiết lập kết nối tới server bằng cách gửi một TCP

packet với cờ SYN được bật tới cổng 80. Server gửi trả lại packet đó với cờ ACK

được bật. Cuối cùng, client gửi packet với cờ ACK và tiếp tục là request đối tượng

mình cần. Ví dụ như GET /index.html HTTP/1.1

Server sẽ phản hồi cho client với mã trạng thái, ví dụ như “200 OK”, “403 Forb-

biden”, “404 Not Found”... Sau đó server sẽ gửi packet đóng kết nối.

2.4.9 DNS (Domain Name System)

Là một giao thức cho phép ánh xạ giữa tên miền và địa chỉ IP và làm việc trên giao thức

UDP của tầng giao vận (hầu hết trên cổng 53). Cấu trúc dữ liệu phần header của DNS mes-

sage như sau:

bit 0 – 15 16 17 – 20 21 22 23 24 25 – 27 29 – 31ID Q Query A T R V B Rcode

Question count Answer countAuthority count Additional count

Cấu trúc header của gói tin DNS

Trong đó:

ID: Là một trường 16 bits, chứa mã nhận dạng, nó được tạo ra bởi một

chương trình để thay cho truy vấn. Gói tin hồi đáp sẽ dựa vào mã nhận dạng

này để hồi đáp lại. Chính vì vậy mà truy vấn và hồi đáp có thể phù hợp với

nhau.

Trần Ngọc Việt – CNT46 ĐH29

Page 30: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

QR: Là một trường 1 bit. Bít này sẽ được thiết lập là 0 nếu là gói tin truy

vấn, được thiết lập là một nếu là gói tin hồi đáp.

Opcode: Là một trường 4 bits, được thiết lập là 0 cho cờ hiệu truy vấn, được

thiết lập là 1 cho truy vấn ngược, và được thiết lập là 2 cho tình trạng truy

vấn.

AA: Là trường 1 bit, nếu gói tin hồi đáp được thiết lập là 1, sau đó nó sẽ đi

đến một server có thẩm quyền giải quyết truy vấn.

TC: Là trường 1 bit, trường này sẽ cho biết là gói tin có bị cắt khúc ra do

kích thước gói tin vượt quá băng thông cho phép hay không.

RD: Là trường 1 bit, trường này sẽ cho biết là truy vấn muốn server tiếp tục

truy vấn một cách đệ qui.

RA: Trường 1 bit này sẽ cho biết truy vấn đệ qui có được thực thi trên server

không .

Z: Là trường 1 bit. Đây là một trường dự trữ, và được thiết lập là 0.

Rcode: Là trường 4 bits, gói tin hồi đáp sẽ có thể nhận các giá trị sau :

o 0: Cho biết là không có lỗi trong quá trình truy vấn.

1: Cho biết định dạng gói tin bị lỗi, server không hiểu được truy vấn.

2: Server bị trục trặc, không thực hiện hồi đáp được.

3: Tên bị lỗi. Chỉ có server có đủ thẩm quyền mới có thể thiết lập giá trị náy.

o 4: Không thi hành. Server không thể thực hiện chức năng này .

o 5: Server từ chối thực thi truy vấn.

QDcount: Số lần truy vấn của gói tin trong một vấn đề.

ANcount: Số lượng tài nguyên tham gia trong phần trả lời.

Trần Ngọc Việt – CNT46 ĐH30

Page 31: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương I. Cơ sở lý thuyết mạng máy tính

NScount: Chỉ ra số lượng tài nguyên được ghi lại trong các phẩn có thẩm

quyền của gói tin.

ARcount: Chỉ ra số lượng tài nguyên ghi lại trong phần thêm vào của gói tin.

Trần Ngọc Việt – CNT46 ĐH31

Page 32: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

CHƯƠNG II. KỸ THUẬT CHẶN BẮT1 Tổng Quan Về Chặn Bắt Gói Tin (Sniffer)

1.1 Các khái niệm liên quan

Packet là một đơn vị dữ liệu được định dạng để lưu chuyển trên mạng.

Network Traffic là lưu lượng thông tin vào/ra hệ thống mạng. Để có thể đo

đạc, kiểm soát Network Traffic ta cần phải chặn bắt các gói tin (Packet

capture).

Packet capture là hành động chặn bắt các packet dữ liệu được lưu chuyển

trên mạng. Packet capture gồm có:

o Deep Packet Capture (DPC): là hành động chặn bắt toàn bộ các gói

tin trên mạng (bao gồm cả phần header và payload). Các gói tin chặn

bắt được sẽ được lưu trữ lại trong bộ nhớ tạm thời hoặc lâu dài.

o Deep Packet Inspection (DPI): là quá trình kiểm tra, đánh giá để tìm

ra nguyên nhân của những vấn đề của mạng, xác định nguy cơ an toàn

bảo mật, chắc chắn mạng hoạt động chính xác về kỹ thuật và luật

pháp.

o DPC và DPI được kết hợp với nhau nhằm quản lý, đánh giá, phân tích

sự luân chuyển các gói tin trên mạng đồng thời lưu giữ lại những

thông tin đó cho các mục đích khác sau này.

Trong thực tế packet capture có thể ghi lại được header mà không cần lưu

giữ toàn bộ phần nội dung payload. Nhờ vậy, ta có thể giảm được yêu cầu bộ

nhớ dùng để lưu trữ, tránh các vấn đề pháp luật trong khi vẫn có đầy đủ

những thông tin cần thiết nhất.

Packet Analyzer (Sniffer) là phần mềm hoặc phần cứng máy tính được gắn

vào trong 1 mạng máy tính để có thể theo dõi thông tin lưu chuyển (network

traffic) trên 1 mạng hay một phần của mạng. Sniffer sẽ có nhiệm vụ chặn bắt

Trần Ngọc Việt – CNT46 ĐH32

Page 33: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

các gói tin (packet), sau đó giải mã, phân tích nội dung của nó nhằm thực

hiện các mục đích khác nhau.

1.2 Ứng dụng của sniffer

1.2.1 Khả năng

Đối với mạng LAN có dây thì phụ thuộc vào cấu trúc của mạng (sử dụng hub

hay switch) ta có thể chặn bắt toàn bộ hay một phần các thông tin trên mạng

từ một nút duy nhất nằm trong mạng. Đối với hub ta có thể chặn bắt tất cả

các gói tin truyền tải qua mạng, nhưng đối với switch cần phải có một số

phương thức đặc biệt như ARP snoofing.

Đối với mạng LAN không dây thì các gói tin được chặn bắt trên các kênh

riêng biệt.

Để một máy có thể chặn bắt thông tin trong mạng của nó, network adapter

phải được đặt ở promiscuous mode.

1.2.2 Mục đích

Thường có 2 dạng chính: dùng để kiểm tra bảo trì mạng và dạng kia dùng để xâm

nhập mạng. Chúng được sử dụng cho các mục đích:

Phân tích hiệu năng làm việc hoặc sự cố mạng.

Nhận biết sự xâm nhập mạng, rò rỉ thông tin, ... lấy về thông tin liên quan tới

quá trình xâm nhập.

Quản lý sử dụng mạng.

Tập hợp thông tin báo cáo về trạng thái mạng.

Sửa lỗi, bảo trì các hình thái, giao thức mạng.

Lọc lấy thông tin cần thiết được lưu chuyển trên mạng, đưa về dạng phù hợp

để con người có thể đọc.

Chặn bắt các thông tin nhạy cảm như mật khẩu, username của người dùng

khác trên mạng nhằm xâm nhập hệ thống của họ.

Trần Ngọc Việt – CNT46 ĐH33

Page 34: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

1.3 Các chương trình sniffer hiện có

Hiện nay có rất nhiều chương trình miễn phí cũng như thương mại thực hiện việc

chặn bắt và phân tích gói tin. Một số chương trình trong đó như:

Tcpdump (http://www.tcpdump.org/) đối với Unix và Windump

(http://www.winpcap.org/windump/default.htm) đối với Window.

Wireshark (http://www.wireshark.org/).

Etherpeek (http://www.aggroup.com/).

Triticom LANdecoder32

(http://www.triticom.com/TRITICOM/LANdecoder32/).

Snort (http://en.wikipedia.org/wiki/Snort_(software)).

Kismet (http://en.wikipedia.org/wiki/Kismet_(software)) dành cho

802.11 wireless LANs.

Cain & Anbel (http://www.oxid.it/)

2 Cách Thức Hoạt Động

2.1 Theo dõi Network Traffic

Trong phạm vi của báo cáo thực tập tốt nghiệp chỉ xét tới môi trường mạng có dây

trong WindowXP, hay chính xác hơn là trong phạm vi chuẩn Ethernet.

Ethernet được xây dựng dựa trên khái niệm chia sẻ. Tất cả các máy trong một mạng

nội bộ đều được chia sẻ chung một đường dây. Điều đó chỉ ra rằng tất cả các máy

trong mạng đều có thể “nhìn thấy” traffic trong đường dây đó.

Do đó, phần cứng Ethernet sẽ có một bộ lọc (“filter”) bỏ qua tất cả nhưng traffic

không phải dành cho nó (bằng cách bỏ qua tất cả các frame có địa chỉ MAC không

phù hợp). Để khắc phục, sniffer phải có cơ chế tắt “filter” ở trên, đưa phần cứng

Ethernet vào chế độ hỗn tạp (“promiscuous mode)”

Trần Ngọc Việt – CNT46 ĐH34

Page 35: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

2.2 Phân tích Network Traffic

Khi dữ liệu được gửi trên đường dây, nó sẽ được chia nhỏ, đóng gói thành nhiều

packet và được gửi đi một cách riêng biệt. Sniffer là chương trình sẽ chặn bắt các

packet này.

Sau khi đã tiến hành chặn bắt thành công các gói tin, chúng ta sẽ có được các packet

mang thông tin. Tuy nhiên, để lấy được thông tin cần thiết phục vụ cho các mục

đích khác nhau, chúng ta phải thực hiện việc phân tích các gói tin đó (Packet

Analysis).

Các giao thức có thể sniffing như: Ethernet, IPv4, IPv6, ARP/RARP, TCP, UDP,

hoặc ICMPv4, telnet, rlogin, http, SMNP, NNTP, POP, FTP, IMAP...

Ví dụ về phân tích một gói tin:

Dưới đây là 512 byte đầu tiên dữ liệu của một gói tin Ethernet dưới dạng

Hex khi ta sử dụng trình duyệt để duyệt trang web

http://web.archive.org/web/20050221103207/http://www.robertgraham.com/pubs/

sniffing-faq.html000 00 00 BA 5E BA 11 00 A0 C9 B0 5E BD 08 00 45 00 ...^......^...E.010 05 DC 1D E4 40 00 7F 06 C2 6D 0A 00 00 02 0A 00 [email protected] 01 C9 00 50 07 75 05 D0 00 C0 04 AE 7D F5 50 10 ...P.u......}.P.030 70 79 8F 27 00 00 48 54 54 50 2F 31 2E 31 20 32 py.'..HTTP/1.1.2040 30 30 20 4F 4B 0D 0A 56 69 61 3A 20 31 2E 30 20 00.OK..Via:.1.0.050 53 54 52 49 44 45 52 0D 0A 50 72 6F 78 79 2D 43 STRIDER..Proxy-C060 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D onnection:.Keep-070 41 6C 69 76 65 0D 0A 43 6F 6E 74 65 6E 74 2D 4C Alive..Content-L080 65 6E 67 74 68 3A 20 32 39 36 37 34 0D 0A 43 6F ength:.29674..Co090 6E 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 ntent-Type:.text0A0 2F 68 74 6D 6C 0D 0A 53 65 72 76 65 72 3A 20 4D /html..Server:.M0B0 69 63 72 6F 73 6F 66 74 2D 49 49 53 2F 34 2E 30 icrosoft-IIS/4.00C0 0D 0A 44 61 74 65 3A 20 53 75 6E 2C 20 32 35 20 ..Date:.Sun,.25.0D0 4A 75 6C 20 31 39 39 39 20 32 31 3A 34 35 3A 35 Jul.1999.21:45:50E0 31 20 47 4D 54 0D 0A 41 63 63 65 70 74 2D 52 61 1.GMT..Accept-Ra0F0 6E 67 65 73 3A 20 62 79 74 65 73 0D 0A 4C 61 73 nges:.bytes..Las100 74 2D 4D 6F 64 69 66 69 65 64 3A 20 4D 6F 6E 2C t-Modified:.Mon,110 20 31 39 20 4A 75 6C 20 31 39 39 39 20 30 37 3A .19.Jul.1999.07:120 33 39 3A 32 36 20 47 4D 54 0D 0A 45 54 61 67 3A 39:26.GMT..ETag:130 20 22 30 38 62 37 38 64 33 62 39 64 31 62 65 31 ."08b78d3b9d1be1140 3A 61 34 61 22 0D 0A 0D 0A 3C 74 69 74 6C 65 3E :a4a"....<title>150 53 6E 69 66 66 69 6E 67 20 28 6E 65 74 77 6F 72 Sniffing.(networ160 6B 20 77 69 72 65 74 61 70 2C 20 73 6E 69 66 66 k.wiretap,.sniff170 65 72 29 20 46 41 51 3C 2F 74 69 74 6C 65 3E 0D er).FAQ</title>.180 0A 0D 0A 3C 68 31 3E 53 6E 69 66 66 69 6E 67 20 ...<h1>Sniffing.190 28 6E 65 74 77 6F 72 6B 20 77 69 72 65 74 61 70 (network.wiretap1A0 2C 20 73 6E 69 66 66 65 72 29 20 46 41 51 3C 2F ,.sniffer).FAQ</1B0 68 31 3E 0D 0A 0D 0A 54 68 69 73 20 64 6F 63 75 h1>....This.docu1C0 6D 65 6E 74 20 61 6E 73 77 65 72 73 20 71 75 65 ment.answers.que1D0 73 74 69 6F 6E 73 20 61 62 6F 75 74 20 74 61 70 stions.about.tap1E0 70 69 6E 67 20 69 6E 74 6F 20 0D 0A 63 6F 6D 70 ping.into...comp1F0 75 74 65 72 20 6E 65 74 77 6F 72 6B 73 20 61 6E uter.networks.an

Ví dụ phân tích Network Traffic

Trần Ngọc Việt – CNT46 ĐH35

Page 36: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

Ta nhận thấy trong packet trên chứa 14-byte Ethernet header, 20-byte IP header,

20-byte TCP header, HTTP header có dấu hiệu kết thúc là (0D 0A 0D 0A) và

cuối cùng là phần dữ liệu. Dữ liệu thu được như sau:

Ethernet header: 00 00 BA 5E BA 11 00 A0 C9 B0 5E BD 08 00

IP header: 45 0005 DC 1D E4 40 00 7F 06 C2 6D 0A 00 00 020A

0001 C9

TCP header: 00 50 07 75 05 D0 00 C0 04 AE 7D F5 50 1070 79 8F 27 00 00

HTTP header: 48 54 54 50 2F 31 2E 31 20 32...

. ... 3A 61 34 61 22 0D 0A 0D 0A

Một “Protocol Analyzer” sẽ nhận vào những dữ liệu ở trên và phân tích chúng,

trích xuất thông tin và chuyển thành các trường thông tin có thể dễ dàng đọc bởi

con người, ví dụ đối với packet ở trên sau khi thực hiện phân tích thông tin ta sẽ

có: ETHER: Destination address : 0000BA5EBA11 ETHER: Source address : 00A0C9B05EBD ETHER: Frame Length : 1514 (0x05EA) ETHER: Ethernet Type : 0x0800 (IP) IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 1500 (0x5DC) IP: Identification = 7652 (0x1DE4) IP: Flags Summary = 2 (0x2) IP: .......0 = Last fragment in datagram IP: ......1. = Cannot fragment datagram IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 127 (0x7F) IP: Protocol = TCP - Transmission Control IP: Checksum = 0xC26D IP: Source Address = 10.0.0.2 IP: Destination Address = 10.0.1.201 TCP: Source Port = Hypertext Transfer Protocol TCP: Destination Port = 0x0775 TCP: Sequence Number = 97517760 (0x5D000C0) TCP: Acknowledgement Number = 78544373 (0x4AE7DF5) TCP: Data Offset = 20 (0x14) TCP: Reserved = 0 (0x0000) TCP: Flags = 0x10 : .A.... TCP: ..0..... = No urgent data TCP: ...1.... = Acknowledgement field significant

Trần Ngọc Việt – CNT46 ĐH36

Page 37: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

TCP: ....0... = No Push function TCP: .....0.. = No Reset TCP: ......0. = No Synchronize TCP: .......0 = No Fin TCP: Window = 28793 (0x7079) TCP: Checksum = 0x8F27 TCP: Urgent Pointer = 0 (0x0) HTTP: Response (to client using port 1909) HTTP: Protocol Version = HTTP/1.1 HTTP: Status Code = OK HTTP: Reason = OK

2.3 Các thành phần của một chương trình sniffer

Hardware

Phần cứng thỏa mãn các tiêu chuẩn của network adapter. Ngoài ra có thể có

các tính năng đặc biệt bổ sung để kiểm tra lỗi CRC, lỗi điện thế, lỗi cáp...

Chú ý: Để có thể chặn bắt các gói tin vào/ra một mạng gián tiếp từ một nút mạng thì

card mạng của nút mạng đó phải hỗ trợ chế độ đa hỗn tạp (promiscuous mode). Hầu

hết các card mạng hiện nay đều hỗ trợ chế độ này. Tuy nhiên, các mạng hiện nay

đang dần chuyển sang sử dụng switch thay vì broadcast gói tin như hub, vậy nên để

chặn bắt gói tin trong một mạng không còn đơn giản như trước đây nữa.

Capture driver

Là phần quan trọng nhất. Nó có nhiệm vụ bắt lấy network traffic trên đường

dây, lưu trữ dữ liệu vào buffer và lọc lấy thông tin cần thiết.

Buffer

Dữ liệu sau khi được lấy về sẽ được lưu trữ tạm thời tại buffer. Thường có 2

phương pháp sử dụng buffer: ghi vào cho tới khi buffer đầy, hoặc ghi theo phương

pháp vòng tròn khi mà dữ liệu mới nhất sẽ thay thế dữ liệu cũ nhất.

Real-time analysis

Phân tích traffic về protocol, kiểm tra lỗi khi capture packet.

Decode

Giải mã và hiển thị nội dung của network traffic dưới dạng phù hợp tùy

thuộc vào yêu cầu.

Packet editting/transmission

Một vài chương trình cho phép chúng ta tự tạo cho mình những packet và

đưa chúng lên mạng.

Trần Ngọc Việt – CNT46 ĐH37

Page 38: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

2.4 Phòng chống sniffer

Trước tiên, chắc chắn rằng không một máy riêng biệt nào có thể lắng nghe hay chặn

bắt toàn bộ mạng Internet. Thứ hai, để có thể lắng nghe một liên kết, cần phải truy

nhập được vào dây nối vật lý của liên kết đó (hay có thể tham gia vào giữa đường

truyền vật lý của các gói tin). Vậy nên trước hết để phòng chống sniffer là ngăn

chặn không để sniffer được cài đặt hay chạy trên bất kì máy nào trong mạng cũng

như kiểm tra cẩn thận dây nối trong mạng (đối với mạng có dây). Ngoài ra để

phòng chống sniffer ta cần:

2.4.1 Phát hiện sniffer trong mạng

Một số phương thức đơn giản nhất để phát hiện chương trình sniffer:

Phương thức Ping: gửi một gói tin ping tới địa chỉ IP mà không phải là

Ethernet Adapter, gồm những bước như sau:

o Giả sử máy nghi ngờ có địa chỉ IP 10.0.0.1 và MAC là 00-40-05-A4-

79-32

o Gửi một gói tin “ICMP Echo Request” (ping) có IP của máy nghi ngờ

và địa chỉ MAC thay đổi (ví dụ 00-40-05-A4-79-31).

o Nếu như ta nhận được phản hồi tức là máy nghi ngờ đã bỏ chức năng

Ethernet Filter, do đó nó đang lắng nghe trên đường dây.

Phương thức ARP

Tương tự như phương thức Ping nhưng sử dụng gói tin ARP thay cho ICMP

Phương thức DNS

Rất nhiều chương trình sniffer sẽ tự động chuyển đổi địa chỉ IP thông qua

DNS. Ta có thể phát hiện promiscuous mode của một máy dựa vào DNS

traffic mà nó tạo ra (yêu cầu cần phải thiết đặt máy nghi ngờ request tại DNS

server mà ta có thể kiểm soát, sau đó dựa vào traffic để kiểm tra).

2.4.2 Ngăn chặn sniffer

Chống sniffing dữ liệu

Trần Ngọc Việt – CNT46 ĐH38

Page 39: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

o SSL – Sercure Socket Layer

o SSH – Sercure Shell

o VPNs – Virtual Private Networks

Cài đặt mạng để sniffing khó khăn hơn

o Kiểm tra đường dây và các máy trong mạng.

o Sử dụng Switch thay vì Hub.

Sử dụng Adapter không hỗ trợ sniffing

Một vài loại Adapter cũ không hỗ trợ promiscuous mode.

2.4.3 Một số chương trình phát hiện sniffer

AntiSniff

http://www.l0pht.com/antisniff/

CPM (Check Promiscuous Mode)

ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/

Dành cho UNIX.

o neped

http://www.apostols.org/projectz/neped/

o sentinel

http://www.packetfactory.net/Projects/sentinel/

o cpm (Check Promiscuous Mode)

ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/cpm/

3 Các Phương Pháp Xây Dựng

Để xây dựng chương trình sniffer, chúng ta có các lựa chọn chính: Chặn bắt ở mức

ứng dụng, mức hệ điều hành và mức network adapter.

Trần Ngọc Việt – CNT46 ĐH39

Page 40: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

3.1 Raw Socket – mức hệ điều hành

Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình

yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạng

LAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong máy

tính. Mỗi socket có thể được xem như một điểm cuối trong một kết nối. Một

socket trên máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một socket

trên máy cung cấp dịch vụ. Một khi socket đã được thiết lập phù hợp, hai máy tính

có thể trao đổi dịch vụ và dữ liệu.

Các đặc tính của Socket bao gồm:

Giao thức (TDP, UDP hay raw IP).

Số hiệu cổng.

Địa chỉ IP.

Phân loại: Có vài loại Socket thông dụng như:

Datagram Socket hay còn gọi là connectionless socket sử dụng UDP.

Stream Socket hay còn gọi là connection – oriented socket sử dụng TCP.

Raw Socket (hay là Raw IP Socket). Với socket dạng này tầng giao vận được

bỏ qua và ứng dụng có thể truy nhập trực tiếp vào dữ liệu của gói tin IP.

Tóm lại, sử dụng Socket ta có thể chặn bắt và truy nhập các thông tin từ tầng

giao vận trở lên (TCP và UDP) và có thể truy nhập tới tầng Internet ( IP) nếu sử

dụng raw socket. Tuy nhiên hiện nay trên hệ điều hành window chỉ có thư viện

winsock dành cho Visual C++ và Socket trong .Net hỗ trợ raw socket. Thư viện

lập trình mạng của Java không cho phép người phát triển được sử dụng tới raw

socket.

Raw socket là một socket cho phép truy nhập trực tiếp tới header của một

packet. Nói một cách khác, raw socket là một cách bỏ qua toàn bộ network stack

và đưa packet tới thẳng tầng ứng dụng. Raw socket có thể thực hiện một trong

hai tác vụ:

Packet Sniffing: nhận các packet từ raw socket.

Trần Ngọc Việt – CNT46 ĐH40

Page 41: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

Packet Injection: gửi các packet tới raw socket.

Raw socket không nằm ở tầng ngôn ngữ lập trình mà là một phần networking

API của hệ điều hành. Sử dụng raw socket chúng ta có thể lấy về header của

packet khác với socket thông thường chỉ lấy về payload của packet. Raw socket

được sử dụng trong transport layer và network layer.

Khi Window XP được phát hành năm 2001, raw socket được cài đặt trong thư

viện Winsock, tuy nhiên Microsoft tuyên bố raw socket chỉ được hacket dùng

trong việc thực hiện TCP reset attacks. Do vậy sau 3 năm sau trong bản hotfix,

Mircrosoft đã hạn chế hỗ trợ raw socket trong winsock cũng như không hỗ trợ

cho ứng dụng nào sử dụng chúng nữa.

3.2 Pcap – mức network adapter

Pcap (packet capture) bao gồm những giao diện lập trình ứng dụng (API) dùng để

chặn bắt network traffic. Đối với các hệ thống thuộc họ Unix ta có thư viện libpcap,

còn đối với Window ta có thư viện được port từ libpcap là winpcap. Pcap thường có

hai thành phần cơ bản:

Driver: packet capture driver không thể được viết bằng các ngôn ngữ bậc cao

mà thường viết bằng C hoặc assembly. Hai driver được sử dụng rộng rãi nhất

hiện nay là driver thương mại nằm trong PCAUSA và driver miễn phí nằm

trong Windump package.

Interface: là giao diện thực hiện packet capture.

Libpcap và Winpcap được sử dụng từ link layer trở lên. Chúng cung cấp cơ chế

packet capture và packet filter, có thể lưu trữ packet thu được vào file hay đọc file

đó... Ngoài ra chúng còn cho phép tạo các custom packet và injection chúng trên

mạng. Rất nhiều ứng dụng đã sử dụng libpcap hay winpcap vào các mục đích khác

nhau như packet sniffer, network monitor, network tester hay network intrusion de-

tection system...

Tuy nhiên nhược điểm của việc sử dụng các thư viện này là chúng chỉ có thể sử

dụng để chặn bắt gói tin mà không thể block một địa chỉ hay một cổng hay một tiến

trình truy nhập mạng như socket.

Trần Ngọc Việt – CNT46 ĐH41

Page 42: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

API của libpcap và winpcap được viết bằng C hoặc C++ nên để có thể xây dựng

ứng dụng bằng các ngôn ngữ khác như .NET, Java ta cần có wrapper.

Danh sách các wrapper để sử dụng libpcap/winpcap với ngôn ngữ khác C/C++:

Net::Pcap, a Perl wrapper for pcap

python-libpcap, a Python wrapper for pcap

pcapy, another Python wrapper for pcap

PacketFu, a Ruby wrapper for pcap

tclpcap, a Tcl wrapper for pcap

jpcap, a Java wrapper for pcap

jNetPcap, another Java wrapper for pcap

WinPcapNET, SharpPcap, Pcap.Net, .NET wrappers for WinPcap

pcap, Haskell bindings for pcap

mlpcap, Objective Caml bindings for pcap

pcap, Chicken Scheme wrapper for pcap

3.3 So sánh Raw Socket và Pcap

Trần Ngọc Việt – CNT46 ĐH42

Page 43: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương II. Kỹ thuật chặn bắt

Tương ứng giữa Socket và Pcap

Raw socket và pcap đều có thể được sử dụng để viết chương trình sniffer. Tuy

nhiên socket chỉ có thể làm việc từ tầng thứ 4 trong mô hình OSI trở lên (transport

layer trong TCP/IP) và raw socket có thể làm việc được với tầng thứ 3 trong mô

hình OSI trở lên (network layer trong TCP/IP) còn pcap có thể làm việc với tầng

thứ 2 trở lên trong mô hình OSI (link layer trong TCP/IP) (nguồn). Ngoài ra raw

socket trên window đã không còn được Microsoft hỗ trợ cũng như tính năng bị giới

hạn như:

Dữ liệu TCP không thể được gửi qua raw socket.

UDP datagram với địa chỉ nguồn không hợp lệ sẽ không thể gửi qua raw

socket.

Do vậy, nếu sử dụng Socket để đo đạc toàn bộ lưu lượng thông tin vào/ra một hệ

thống hay một trạm thì sẽ dẫn tới kết quả có thể không chính xác do nó chỉ có thể

chặn bắt một số loại packet nhất định (TCP và UDP) (IP nếu như sử dụng raw IP

socket). Các giao thức với các gói dữ liệu khác như ARP, RARP, ICMP ta sẽ không

thể chặn bắt khi sử dụng socket. Nếu sử dụng thư viện pcap để chặn bắt ở mức net-

work adapter thì ta sẽ có thể chặn bắt được toàn bộ thông tin do mức chặn bắt ở đây

tầng thứ 2 trong mô hình OSI (link layer trong TCP/IP). Tuy nhiên, độ sai lệch là

rất nhỏ do các gói tin ngoài TCP và UDP có rất nhỏ và không thường xuyên.

Sử dụng Raw Socket ta có thể block một ứng dụng, một tiến trình sử dụng mạng

bằng cách có thể chặn cổng hay chặn địa chỉ IP của nó. Tuy nhiên, khi sử dụng thư

viện pcap, ta không thể làm việc này mà chỉ có thể chặn bắt và trích xuất thông tin.

Kết luận: Để xây dựng một ứng dụng sniffer, ta hoàn toàn có thể sử dụng bất kỳ

một trong hai phương pháp trên. Tuy nhiên, tùy vào nhiều yếu tố khác nhau mà ta

có thể chọn một trong hai phương pháp hay kết hợp cả hai phương pháp.

Trần Ngọc Việt – CNT46 ĐH43

Page 44: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

CHƯƠNG III. PHÂN TÍCH, LỰA CHỌN VÀ THIẾT KẾ GIẢI THUẬT

1 Chi Tiết Các Phương Pháp

1.1 Winsock

Sử dụng Winsock để xây dựng chương trình sniffer nghĩa là chặn bắt ở mức hệ điều

hành với Raw Socket. Do đề tài thực hiện trong phạm vi hệ điều hành Windows nên

chúng ta chỉ xét tới Winsock (ngoài ra còn có thể có .NET Socket)..

1.1.1 Khái niệm

Là viết tắt của từ Window Socket. Là một thư viện socket, nó được dùng như là

giao diện giữa TCP/IP và Windows. Winsock là một thư viện liên kết động .DLL

chạy trên nên hệ điều hành Windows. WINSOCK.DLL liên hệ với TCP từ đó giao

tiếp ra ngoài mạng Internet. Hình dưới thể hiện cách làm việc của Winsock:

Sơ đồ giao tiếp thông qua winsock

Winsock thực sự như một tầng giữa các ứng dụng winsock và ngăn xếp TCP/IP.

Các ứng dụng yêu cầu Winsock.dll cần làm những gì, nó biên dịch các câu lệnh

dịch chuyển tới bộ giao thức TCP/IP và bộ giao thức TCP/IP chuyển chúng lên

Trần Ngọc Việt – CNT46 ĐH44

Page 45: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

mạng. Yêu cầu là Winsock.dll đang dùng phải có phiên bản đúng với phiên bản của

TCP/IP đang chạy.

1.1.2 Các sự kiện của Winsock

DatArribal: Đây là nơi phát hiện dữ liệu đến thông qua cổng cục bộ.

Connect: Tạo lập một kết nối tới trạm khác.

SendProgesss: Phần lớn được kết hợp với việc truyền file. Cho biết muốn

làm gì trong khi nó vẫn xử lý việc gửi thông tin dữ liệu.

SendComplete: Sau khi gửi dữ liệu hoàn thành cho biết xảy ra chuyện gì.

Close: Dùng để đóng kết nối, ngắt kết nối.

SendData: Báo cho Winsock điều khiển việc gửi dữ liệu.

GetData: Báo cho Winsock điều khiển nhận dữ liệu thông đang được gửi

thông qua RemotePort.

1.1.3 Loại Socket trong Winsock

Stream Socket : Cung cấp liên lạc 2 chiều, chuỗi tuần tự và tin cậy. Stream Socket

hoạt động giống như cuộc đàm thoại. Trong Winsock được ký hiệu là kiểu

SOCK_STREAM dùng giao thức điều khiển truyền thông mạng TCP.

Datagram Socket : Hỗ trợ dòng thông báo 2 chiều. Datagarm Socket hoạt động như

việc gửi thư đi gửi thư lại và thiếu độ tin cậy. Trong Winsock được ký hiệu kiểu

SOCK_DGRAM dùng giao thức dữ liệu người dùng UDP.

Sequential Packet Socket : Cung cấp truyền thông 2 chiều, chuỗi tuần tự, tin cậy.

Trong Winsock nó có ký hiệu là kiểu SOCK_SEQPACKET.

Raw Socket : Cung cấp truy cập cơ bản các giao thực truyền thông, cho phép truy

cập trực tiếp các thông tin header của packet tầng thấp (IP).

1.1.4 Làm việc với Socket trong Winsock

Khởi tạo Socket :

Hàm int socket (int domain, int type, int protocol) được gọi để khởi tạo Socket

trong miền và kiểu xác định. Nếu giao thức không được chỉ rõ hệ thống sẽ mặc

định giao thức hỗ trợ loại socket chỉ định. Các socket nắm giữ sẽ được trả về.

Trần Ngọc Việt – CNT46 ĐH45

Page 46: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Quá trình truyền thông kết nối qua các địa chỉ. Hàm int bind (int s, const struct

sockaddr *name, int namelen) được gọi để kết hợp đường dẫn hoặc địa chỉ In-

ternet tới Socket. Sử dụng unlink () rm() để hủy một socket.

Kết nối các Stream Socket:

Đối với việc kết nối các Socket, một tiến trình thường hoạt động như Server mà

tiến trình khác là Client. Server kết hợp Socket của nó tới đường dẫn hoặc địa

chỉ. Sau đó Server giọ hàm int listen (int s, int backlog) cho SOCK_STREAM.

Nó xác định có bao nhiêu yêu cầu kết nối trong hàng đợi .Một Client khởi tạo

kết nối tới Socket của Server bằng cách gọi hàm int connect (int s, struct sock-

addr *name, int namelen) Server gọi hàm accept() để hoàn tất kết nối cho

SOCK_STREAM. Hàm int accept (int s, struct sockaddr *addr, int *addrlen)

trả về một socket mới phù hợp với sự liên lạc riêng đó. Môt server có thể có

nhiều kết nối SOCK_STREAM chủ động trong cùng lúc.

Truyền tải và đóng Stream Socket:

Có một số hàm để gửi và nhận dữ liệu từ Socket SOCK_STREAM đó là read()

và write(). Các hàm send (int s, const char *msg, int len, int flags) , revc (int s,

const chả *buf, int len, int flags) giống với read() và write() nhưng có thêm một

số cờ điều khiển:Dùng hàm close() để đóng Socket.

Datagram Socket:

Một Datagram Socket không đòi hỏi phải thành lập kết nối. Mỗi thông điệp sẽ

mang một địa chỉ đích. Nếu địa chỉ cục bộ riêng biệt là cần thiết thì việc gọi hàm

bind() phải được gọi trước khi truyền dữ liệu. Dữ liệu được gửi thông qua hàm

sendto() hoặc sendmsg(). Hàm sendto được gọi giống như hàm send() được gọi

với địa chỉ đích xác định. Để nhận các thông báo Datagram Socket ta gọi hàm

recvfrom() hoặc recvmsg(). Trong khi revc() yêu cầu một vùng đệm thì

recvfrom() yêu cầu tới 2 vùng đệm cho dữ liệu và cho địa chỉ nguồn. Datagram

Socket cũng có thể dùng hàm connect() để kết nối socket tới một socket đích

được xác định trước. Khi công việc hoàn tất thì hàm send() và recv() được dùng

để gửi và nhận dữ liệu. Hàm accept() và listend() không được sử dụng với Data-

gram Socket.

Trần Ngọc Việt – CNT46 ĐH46

Page 47: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

1.2 .NET Socket

1.2.1 Khái niệm

.NET Socket tương tự như Winsock là một thư viện lập trình socket cho window

nhưng hoạt động trên nền .NET. Nói cách khác, .NET Socket là một giao diện lập

trình “managed code” của Window Socket (Winsock), tức là nó hoạt động trên nền

Winsock. Do vậy, ta hầu như có thể coi lập trình với .NET Socket giống như lập

trình với Winsock. Trong .NET Socket, chúng ta có 3 loại Socket tương tự như

Winsock là Stream Socket, Datagram Socket và Raw Socket. Hầu hết các lớp dùng

để lập trình với .NET Socket nằm trong Namespace System.Net.Sockets.

Sơ đồ giao tiếp thông qua .NET Socket

1.2.2 Làm việc với .NET Socket

Nếu làm việc với các tầng cao, .NET Socket đã cung cấp sẵn các lớp TcpListener, TcpClient và UdpClient:

Cơ chế làm việc của .NET Socket

Để làm việc với tầng thấp hơn, ta phải dùng lớp Socket

Trần Ngọc Việt – CNT46 ĐH47

Page 48: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Khởi tạo Socket

Để khởi tạo 1 Socket ta sử dụng cấu tử: Socket (IPAddress, SocketType, Proto-

colType);:

Kết nối Socket:

Để kết nối Socket, ta sử dụng hàm Connect() với tham số là địa chỉ IP muốn kết

nối tới.

Truyền tải dữ liệu thông qua Socket:

Để gửi và nhận dữ liệu thông qua .NET Socket, ta sử dụng hàm Send() và Re-

ceive() với các tham số phù hợp.

1.2.3 Demo

Demo thực hiện bắt gói tin IP sử dụng Socket

1.3 Winpcap

Sử dụng Winpcap để xây dựng sniffer có nghĩa là thực hiện chặn bắt ở mức net-work adapter.

1.3.1 Khái niệm

Winpcap là một thưu viện mã nguồn mở dành cho việc chặn bắt và phân tích gói tin

trên nền hệ thống Win32.

Trần Ngọc Việt – CNT46 ĐH48

Page 49: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Rất nhiều các ứng dụng mạng hiện nay dựa trên Socket truy cập mạng dựa vào hệ

điều hành do hệ điều hành đã thực hiện hầu như các công việc ở mức thấp. Tuy

nhiên, đôi khi ta cần truy cập vào dữ liệu nguyên thủy trên mạng mà không quan

tâm tới giao thức mà nó sử dụng. Khi đó Winpcap sẽ là sự lựa chọn khi cho phép ta

truy cập trực tiếp các gói tin tới mức của network adapter (trong phạm vi đề tài ta

chỉ xét Ethernet). Winpcap có các mục tiêu chính sau đây:

Chặn bắt các gói tin (raw packet), kể cả gói tin gửi/nhận của máy đang chạy

ứng dụng chặn bắt lẫn gói tin chia sẻ thông qua nó.

Lọc gói tin theo những quy luật định trước (giao thức, địa chỉ...).

Gửi raw packet qua mạng.

Thống kê và báo cáo các thông tin liên quan.

Winpcap giống như những bộ thư viện chặn bắt gói tin khác như libpcap,... gồm có

2 thành phần:

Packet Capture Driver

Giao diện lập trình (nằm trong Packet.dll).

Hoạt động của Winpcap được miêu tả trong hình sau:

Trần Ngọc Việt – CNT46 ĐH49

Page 50: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Cơ chế hoạt động của Winpcap

1.3.2 Làm việc với Winpcap

Lấy về danh sách các device:

Để lấy về danh sách các thiết bị mạng ta sử dụng hàm pcap_findalldevs_ex(). Hàm

này sẽ trả về một danh sách các thiết bị mà sau đó ta có thể mở với hàm

pcap_open().

Mở một thiết bị và chặn bắt các gói tin:

Để mở một thiết bị mạng (thường là network adapter) để bắt đầu chặn bắt ta sử

dụng hàm pcap_open(). Sau khi thiết bị đã được mở, việc chặn bắt có thể được thực

hiện với hàm pcap_dispatch() hoặc pcap_loop(). Hai hàm này tương tự nhau,

nhưng điểm khác biệt là pcap_dispatch() sẽ dừng lại khi thời gian quy định đã hết

(timeout) trong khi pcap_loop() chỉ dừng lại khi nó đã bắt được gói tin (do vậy nó

thường không được sử dụng trong thực tế do sẽ block chương trình). Ngoài ra ta

cũng có thể sử dụng hàm pcap_next_ex() và kết quả trả về sẽ là packet header và dữ

liệu).

Lọc gói tin (filtering)

Trần Ngọc Việt – CNT46 ĐH50

Page 51: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Là một tính năng mạnh và hữu dụng nhất trong winpcap.Nó cung cấp khả năng

phân tích mạng một cách hiệu quả và kết hợp hoàn hảo với cơ chế chặn bắt của

Winpcap. Những hàm được sử dụng để filter packet là pcap_compile() và pcap_set-

filter().

Thống kê:

Ta có thể thống kê dựa vào thông tin của các packet chặn bắt được để thu thập

thông tin tình trạng mạng. Tuy nhiên, với những ứng dụng không đòi hỏi thống kê

chi tiết ta có thể yêu cầu network adapter làm công việc thống kê bằng cách thiết

đặt nó trong trạng thái thống kê (statistical mode) bằng cách sử dụng hàm

set_mode().

Demo sử dụng Winpcap và Jpcap 0.7 để chặn bắt gói tin

2 Hướng Thực Hiện Chương Trình

Trong phần này chúng ta sẽ phân tích phương hướng và giải thuật thực hiện chương

trình mà không quan tâm tới công nghệ cụ thể

Trần Ngọc Việt – CNT46 ĐH51

Page 52: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Để chặn bắt và phân tích gói tin, chương trình được cài đặt trên một máy độc lập có

thể là máy chủ của mạng LAN (gateway). Đầu tiên, nó sẽ tiến hành bắt các gói tin

truyền trên mạng thông qua thiết bị card mạng (network adapter). Sau đó chương

trình tiến hành đọc để cắt lấy phần header của gói tin, tiếp theo nó sẽ phân tích tổng

hợp các header phần chung để laays ra các header xác định. Khi tổng hợp xong

chương trình đưa thông tin của từng header vào một cơ sở dữ liệu (hoặc file). Với

yêu cầu của đề tài, chúng ta có thể sẽ không cần lưu lại dữ liệu của các gói tin mà

chỉ cần header của chúng. Thông tin của các gói tin được thống kê và hiển thị. Các

bước tổng quát được thực hiện theo sơ đồ sau đây:

Mô hình tổng quát xử lý của chương trình

2.1 Bắt gói tin

Cửa ngõ để có thể xử lý gói tin là card mạng. Thông qua nó các gói tin truyền trên

tin thu được ra màn hình với cơ chế event (ngay lập tức khi chặn bắt và phân tích

được gói tin) hay cũng có thể thực hiện từng đợt mỗi một khoảng thời gian (ví dụ

5s). Từ những thông tin thu được ở những bước trên ta có thể thống kê vào báo cáo

tùy thuộc vào yêu cầu của người dùng.

2.2 Tách phần header

Sau khi can thiệp để có thể chặn bắt được gói tin (dù ở mức nào) ta tiến hành đọc

từng byte của gói tin và lưu vào một bộ đệm đã được tổ chức sẵn. Khi đọc ta sẽ đọc

Trần Ngọc Việt – CNT46 ĐH52

Page 53: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

hết cả phần header của gói tin. Ta có thể bóc tách lần lượt từng phần header của các

giao thức bắt đầu từ giao thức cấp thấp nhất mà chương trình chặn bắt (IP header

với chương trình sử dụng raw socket và Ethernet header với chương trình sử dụng

winpcap). Dựa vào header của đơn vị dữ liệu tầng dưới, ta hoàn toàn có thể bóc tách

và thu được header của đơn vị dữ liệu giao thức tầng trên.

2.3 Phân tích, tổng hợp header

Ta tiến hành phân tích các giao thức, so sánh header thu được để tổng hợp thông tin

đối với những segment thuộc cùng một gói tin đã bị phân đoạn.(để có thể nhận được

1 header duy nhất của những segment đã được phân đoạn này) Ta cũng có thể dùng

một bộ đệm thứ hai để lưu trữ các header duy nhất này. Qua quá trình này ta có thể

thu được các thông tin như:

Thời gian tồn tại của gói tin.

Tổng số các gói tin.

Tổng số các segment của một gói tin.

Tổng độ dài của gói tin.

Địa chỉ đích đến, địa chỉ nguồn.

2.4 Đưa vào cơ sở dữ liệu

Các thông tin ta đã xác định được ở bước trên có thể được đưa vào một cơ sở dữ

liệu để tiện cho việc hiển thị, thống kê vào báo cáo. Các thông tin đó có thể gồm

Phiên bản.

Thời gian sống.

Địa chỉ nguồn.

Địa chỉ đích.

Tổng số các segment.

Số hiệu cổng nguồn.

Số hiệu cổng đích.

Trần Ngọc Việt – CNT46 ĐH53

Page 54: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Giao thức truyền.

Độ dài header.

Độ lớn gói tin

Những thông tin này không nhất thiết phải được đưa vào một cơ sở dữ liệu quan hệ

hay một file dữ liệu trên đĩa vì có thể làm tăng độ phức tạp không cần thiết cho

chương trình. Chúng ta có thể chỉ cần ghi các thông tin này vào một bộ đệm trong

bộ nhớ máy tính.

2.5 Hiển thị, thống kê và báo cáo

Ta có thể hiển thị những thôn tin thu được ra màn hình với cơ chế event (ngay lập tức khi chặn bắt và phân tích được gói tin) hay cũng có thể thực hiện từng đợt mỗi một khoảng thời gian (ví dụ 5s). Từ những thông tin thu được ở những bước trên ta có thể thống kê vào báo cáo tùy thuộc vào yêu cầu của người dùng.

3 Lựa chọn giải thuật

Từ những so sánh giữa hai phương pháp chặn bắt gói tin (raw socket và pcap) và

chi tiết hai bộ thư viện tương ứng (winsock và winpcap) ở những mục trên, ta nhận

thấy một số đặc điểm sau khi lựa chọn giải thuật và công nghệ:

Khả năng: Cả hai phương pháp đều có khả năng thực hiện yêu cầu đặt ra của

đề tài là chặn bắt, phân tích các gói tin. Tuy nhiên, với winpcap, do chặn bắt

ở mức card mạng nên ta có thể chặn bắt các gói tin thông qua mạng, còn đối

với winsock do chặn bắt ở mức hệ điều hành, ta chỉ có thể chặn bắt các gói

tin đã được hệ điều hành chấp nhận (tức là chỉ có thể chặn bắt các gói tin

thông qua máy đang chạy chương trình và chỉ đối với một số loại gói tin nhất

định được hệ điều hành hỗ trợ.

Tốc độ: Do winpcap chặn bắt ở mức network adapter nên có tốc độ cao hơn

so với winsock. Ngoài ra .NET Socket do còn cần có thêm CLR nên có thể

hoạt động chậm hơn. Tuy nhiên với các máy tính hiện nay tốc độ sai khác là

không đáng kể

Trần Ngọc Việt – CNT46 ĐH54

Page 55: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương III. Phân tích, lựa chọn và thiết kế giải thuật

Độ linh hoạt : Winsock và .NET Socket chỉ có thể chặn bắt gói tin từ tầng

giao thức IP trở lên và gói gọn trong một số hữu hạn các loại gói tin mà hệ

điều hành hỗ trợ, do đó nó kém link hoạt hơn. Ngoài ra phát triển ứng dụng

với Winsock ta phải sử dụng Visual C++, với .NET Socket ta phải sử

dụng .NET trong khi đối với Winpcap ta có khá nhiều thư viện được liên kết

trong các ngôn ngữ khác nhau như Java, .NET, Python, ...

Hỗ trợ: Bản Winsock mới nhất là Winsock 2.0 và rất ít được cải tiến cũng

như không còn được Microsoft hỗ trợ nhiều (còn bị rút bớt một vài chức

năng) trong khi Winpcap vẫn đang được tiếp tục phát triển (mới nhất là Win-

pcap 4.1 vào tháng 1/2009) với mã nguồn và documentation đầy đủ.

Độ phức tạp cài đặt: Sử dụng Winpcap để phát triển có độ phức tạp cao hơn

do ít có sự hỗ trợ của hệ điều hành và phải cài thêm thư viện ngoài nhưng

tính linh hoạt cũng cao hơn.

Những ứng dụng đã có: Hiện nay hầu hết các ứng dụng chặn bắt gói tin đều

sử dụng Winpcap, đặc biệt là những chương trình chặn bắt gói tin thông

dụng và nổi tiếng như Wireshark hay Packet Analyzer đều sử dụng Winpcap.

Winpcap gần như đã trở thành một chuẩn – không chính thức đối với các

chương trình chặn bắt gói tin trên Windows.

Từ những lý do nêu trên, sử dụng phương án chặn bắt ở mức thấp có phần phù hợp

hơn đối với đề tài phân tích lưu lượng thông tin vào ra trong một mạng.. Do vậy, em

xin đề xuất sử dụng Winpcap 4.0 kết hợp với Jpcap 0.7 (tại địa chỉ (http://netre-

search.ics.uci.edu/kfujii/jpcap/doc/index.html)) để thực hiện xây dựng chương trình.

Trần Ngọc Việt – CNT46 ĐH55

Page 56: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

CHƯƠNG IV. XÂY DỰNG CHƯƠNG TRÌNH1 Các Chức Năng Chính

Chương trình thực hiện bắt các gói tin, sau đó tiến hành phân tích gói tin lấy từng

phần thông tin của các trường trong header của mỗi gói tin bắt được. Các thông tin

thu được đó sẽ được lưu lại vào vùng đệm, hoặc cũng có thể lưu lại vào file để sau

này những thông tin đó lại có thể lấy ra để hiển thị lên màn hình hoặc để thống kê.

Các gói tin thu được sẽ được phân loại theo giao thức và tổng số gói tin thu được

cũng như tổng lưu lượng vào/ra mạng cũng sẽ liên tục được câp nhật. Chương trình

cũng có khả năng phát hiện và cảnh báo những lỗi xảy ra trên mạng và

Chương trình gồm các chức năng chính sau đây:

Capture

Start

Stop

Restart

Exit

File

Open

Save

View

Toolbar

Face

Table Filter

Statistics

Cummulative

Continuous

Bandwidth

Limit

Block

Kiểm Soát Lưu Lượng Thông Tin Qua Hệ Thông Mạng

Reload

Meter

Traffic Meter

Traffic Report

Close

Sơ đồ phân cấp chức năng

Trần Ngọc Việt – CNT46 ĐH56

Page 57: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Meter (đo lưu lượng băng thông)

o Traffic Meteter: đo lưu lượng băng thông trên 1 đơn vị thời gian và hiển thị dưới dạng đồ thị liên tục.

Traffic Report: báo cáo lưu lượng thông tin dưới dạng đồ thị bao gồm:

Báo cáo lưu lượng trong 24 giờ gần nhất.

Báo cáo lưu lượng trong ngày.

Báo cáo tổng lưu lượng trong tuần, tháng, năm hoặc trong một khoảng thời gian bất kì.

Capture (bắt gói tin)

o Start: Bắt đầu quá trình bắt gói tin.

o Stop: Kết thúc quá trình bắt gói tin.

o Restart: Khởi động lại quá trình bắt gói tin.

o Exit Thoát khỏi chương trình.

File (tệp tin)

o Open: Mở file để lấy thông tin về các trường của các gói tin đã được ghi lại từ trước.

o Save: Ghi lại thông tin các trường của gói tin vừa bắt được vào một

tệp với tên tự đặt.

o Reload: Mở lại file đã được mở từ phiên làm việc trước đó.

View (giao diện)

o Toolbar: Cho phép bật/tắt chế độ hiển thị thanh Toolbar.

o Face: Cho phép thay đổi giao diện của chương trình (giao diện win-

dow, metal...)

Trần Ngọc Việt – CNT46 ĐH57

Page 58: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

o Table Filter: Cho phép hiển thị hay không các trường thông tin thu

được lên màn hình.

Statistics (thống kê)

o Cumulative: Thống kê tích lũy với các tiêu chí như: số lương các gói

tin, độ lớn các loại gói tin, phần trăm các loại gói tin trên các tầng

khác nhau và hiển thị dưới dạng đồ thị vòng..

o Continous: Thống kê liên tục tỉ lệ giữa các loại gói tin trên mỗi tầng

và hiển thị dưới dạng đồ thị thời gian liên tục.

Bandwidth Management (quản lý băng thông)

o Limit: Cho phép quản lý băng thông vào/ra mạng của hệ thống, cho

phép thiết đặt giới hạn lưu lượng, cảnh báo và khóa mạng nếu như

vượt quá lưu lượng cho phép đã được quy định từ trước.

o Block: Khóa một địa chỉ IP hay một cổng kết nối Internet của hệ

thống.

Help

o Thông tin về chương trình và người thực hiện.

o Trợ giúp sử dụng chương trình.

Trần Ngọc Việt – CNT46 ĐH58

Page 59: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

2 Phân Tích Xây Dựng Các Chức Năng Chính

2.1 Hoạt động tổng quát

Lưu đồ hoạt động tổng quát

Trần Ngọc Việt – CNT46 ĐH59

Page 60: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

2.2 Chức năng đo lưu lượng

2.2.1 Đo lưu lượng vào/ra trên máy cài đặt chương trình

Một máy tính có thể có nhiều thiết bị mạng khác nhau cùng thực hiện vào/ra mạng. Để đo được lưu lượng trên một máy, chúng ta phải đo lưu lượng vào/ra trên tất cả các thiết bị, sau đó tổng hợp lại và kiểm tra địa chỉ, nếu như địa chỉ nguồn và đích chính xác thì sẽ hiển thị ra biểu đồ thời gian liên tục và ghi vào cơ sở dữ liệu.

2.2.2 Báo cáo thông tin lưu lượng

Lưu lượng vào ra trên máy sẽ được lưu vào một cơ sở dữ liệu hết sức đơn giản theo mỗi phút. Thông tin lưu lại sẽ là lưu lượng vào, lưu lượng ra, số gói tin vào và số gói tin ra trong 1 giờ. Nếu như khoảng thời gian ghi vào cơ sở dữ liệu (1 phút/lần) không trùng giờ với bất cứ bản ghi nào trong cơ sở dữ liệu thì sẽ thêm bản ghi mới, nếu ngược lại sẽ cộng thêm thông tin mới đo đạc được vào bản ghi cũ.Cơ sở dữ liệu được sử dụng là HyperSQL, có dung lượng nhỏ, được chạy cùng trong máy ảo JVM của chương trình chính nên có tốc độ rất nhanh.

Bảng trong cơ sở dữ liệu

Trần Ngọc Việt – CNT46 ĐH60

Page 61: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Hoạt động ghi cơ sở dữ liệu

Từ cơ sở dữ liệu, ta có thể tạo ra những báo cáo như:

Báo cáo lưu lượng theo từng giờ, từng ngày, từng tuần, từng tháng và từng năm.

Báo cáo lưu lượng trong một khoảng thời gian bất kì.

Hiển thị dưới dạng đồ thị.

2.3 Bắt gói tin

Chương trình cần cho phép lựa chọn các thiết bị mạng khác nhau đã được cài đặt trên máy và thực hiện chặn bắt các gói tin vào ra trên các thiết bị mạng đó. Những thông tin mà người dùng cần khai báo trước mỗi phiên chặn bắt bao gồm:

Chặn bắt trên thiết bị nào.

Chặn bắt với số lượng gói tin tối đa là bao nhiêu.

Chặn bắt trong thời gian tối đa là bao nhiêu chương trình sẽ tự động dừng lại. (có thể khai báo hoặc không).

Chặn bắt trong chế độ đa hỗn tạp (promiscuous mode) hay không.

Trần Ngọc Việt – CNT46 ĐH61

Page 62: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Các thao tác chúng ta có thể thực hiện với chức năng này bào gồm:

Start: bắt đầu thực hiện bắt gói tin với những thiết lập như trên.

Stop: dừng quá trình bắt gói tin.

Restart: bắt đầu lại từ đầu bắt gói tin với những thiết lập giữ nguyên từ phiên làm việc trước đó.

Để thực hiện chặn bắt các gói tin trong mạng LAN ta cần phải thiết lập chương trình chặn bắt trong chế độ đa hỗn tạp (promiscuous mode) và lắp đặt các máy trong mạng theo những sơ đồ thích hợp như những ví dụ sau đây:

Ví dụ sơ đồ cách nối các máy trong mạng 1

Trong sơ đồ trên, máy có cài đặt chương trình được nối với những máy trong cùng mạng thông qua một Hub. Do vậy, máy này hoàn toàn có thể chặn bắt được những gói tin vào/ra trên toàn mạng (bao gồm cả những gói tin vào/ra trên những máy khác trên mạng nối cùng một Hub).

Trần Ngọc Việt – CNT46 ĐH62

Page 63: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ sơ đồ cách nối các máy trong mạng 2

Trong sơ đồ này, các máy trong mạng được nối với nhau bằng switch. Tuy nhiên, máy cài đặt chương trình sẽ được nối vào switch thông qua mirror port và do vậy nó sẽ nhận biết được tất cả các gói tin qua mạng. Tuy nhiên đối với cách nối này yêu cầu swtich phải có chức năng port mirroring.

Ví dụ sơ đồ cách nối các máy trong mạng 3

Trong sơ đồ này ta sử dụng một Hub và một Switch không có chức năng port mir-roring để đạt hiệu quả tương tự 2 cách trên.

2.4 Các thao tác với File

Sau khi đã bắt được những gói tin, yêu cầu đặt ra là phải lưu trữ lại những thông tin này để phục vụ những mục tiêu sau này. Thông tin này được lưu trữ lại dưới dạng file. File này phải là file tiêu chuẩn *.pcap được hỗ trợ bởi tất cả các chương trình

Trần Ngọc Việt – CNT46 ĐH63

Page 64: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

chặn bắt gói tin hiện nay như wireshark, network analyzer, tcpdump... nghĩa là chương trình của chúng ta và những chương trình trên hoàn toàn có định dạng file tương thích (compatible). Những packet chặn bắt trên chương trình này hoàn toàn có thể mở ra trên chương trình khác và ngược lại.

2.5 Giao diện (View)

Giao diện chương trình phải đạt được những yêu cầu như sau:

Hiển thị được danh sách những gói tin đã chặn bắt được dưới dạng bảng.

Hiển thị thông tin của mỗi gói tin đối với từng tầng dưới dạng cây.

Hiển thị thông tin của mỗi gói tin dưới dạng mã hexa.

Có thể tùy biến những cột thông tin trên bảng danh sách gói tin.

Có chức năng sắp xếp bảng đối với từng trường thông tin theo lựa chọn của người dùng.

Có chức năng lọc trên từng trường thông tin giúp người dùng có thể tìm kiếm được gói tin có đặc tính cần thiết và hiển thị được sự khác nhau giữa số gói tin thực sự chặn bắt và số gói tin hiển thị.

Có thể dễ dàng di chuyển giữa các gói tin ( gói tin đầu tiên, cuối cùng trên dữ liệu, gói tin có số thứ tự chặn bắt bất kì gói tin vừa lựa chọn trước đó,...).

Cho phép người dùng tùy biến những thành phần trên giao diện (ẩn/hiện).

Cho phép người dùng lựa chọn bảng thông tin tự động cuộn xuống gói tin mới nhất hoặc không.

Cho phép người dùng lựa chọn lookandfeel ưa thích với nhiều lookandfeel khác nhau.

Cho phép người dùng lựa chọn sử dụng giao diện ngôn ngữ thích hợp (tiếng Anh hoặc tiếng Việt).

2.6 Thống kê (Statistics)

2.6.1 Thống kê tích lũy (Cumulative)

Cho phép thống kê tỉ lệ đối với các gói tin theo từng tầng từ lúc bắt đầu chặn bắt ( tầng network, tầng trasnport và tầng application) theo các tiêu chí như:

Số lượng các gói tin các loại trên mỗi tầng và tổng số.

Tỉ lệ phần trăm giữa các gói tin trên mỗi tầng.

Trần Ngọc Việt – CNT46 ĐH64

Page 65: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Tổng độ lớn của các gói tin các loại trên mỗi tầng.

Tỉ lệ phần trăm giữa độ lớn các gói tin trên mỗi tầng.

Những thông tin này sẽ được hiển thị dưới dạng đồ thị vòng (Ring Chart) để có thể dễ dàng quan sát và so sánh.

2.6.2 Thống kê liên tục (Continous)

Cho phép thống kê tỉ lệ giữa các gói trên trên các tầng dưới dạng đồ thị dạng đường kẻ và cập nhật trên thời gian thực (TimeSeries Chart).

2.7 Quản lý mạng

2.7.1 Khóa mạng theo một luật mà người dùng lựa chọn

Cho phép người dùng khóa mạng theo một luật mà họ lựa chọn. Chương trình không trực tiếp đóng vai trò firewall mà chỉ đơn giản kết nối với công cụ IPSercu-rity của Windows để thực hiện chức năng này, do vậy nó chỉ có tác dụng với gói tin từ tầng transport trở lên (chính xác hơn là chỉ thực hiện được đối với gói tin IP).

Sơ đồ mối liên hệ trong hoạt động khóa mạng

Những thông tin ta cần có trong chức năng này bao gồm:

Địa chỉ nguồn ( bao gồm IP và SubnetMask).

Địa chỉ đích (bao gồm IP và SubnetMask).

Số hiệu cổng nguồn (đối với TCP và UDP).

Số hiệu cổng đích (đối với TCP và UDP).

Trần Ngọc Việt – CNT46 ĐH65

Page 66: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

2.7.2 Khóa mạng tự động

Tự động khóa truy cập mạng theo những điều kiện cho trước.

3 Giới Thiệu Chương Trình

3.1 Khởi động chương trình

Khi chương trình khởi động, chức năng đầu tiên hoạt động là công cụ Meter dùng để đo lưu lượng thông tin vào ra trên 1 giây, hiển thị dưới dạng đồ thị thời gian liên tục và ghi lại thông tin vào cơ sở dữ liệu.

Traffic Meter

Người dùng có thể tùy ý ẩn/hiện, di chuyển Meter theo ý muốn.

Các thành phần còn lại của chương trình nếu muốn kích hoạt ta phải sử dụng các Menu trong System Tray

System Tray Menu

3.2 Chức năng báo cáo

Báo cáo dưới dạng đồ thị lưu lượng thông tin vào/ra, số lượng gói tin vào/ra đã được lưu trong cơ sở dữ liệu.

Trần Ngọc Việt – CNT46 ĐH66

Page 67: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ một biểu đồ báo cáo hiển thị thông tin 24 giờ gần nhất

3.3 Chức năng bắt gói tin

Chức năng chính của chương trình là bắt gói tin, do vậy nên đây là thành phần quan trọng nhất của chương trình. Giao diện cơ bản của chức năng này gồm có các hành phần như sau:

Menu: menu chính của chương trình.

Menu chương trình

Toolbar: các công cụ dưới dạng nút bấm trực quan. Các nút bấm này đều có những menu tương ứng trên thanh menu và có tác dụng tương đương.

Trần Ngọc Việt – CNT46 ĐH67

Page 68: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Thanh Toolbar

Packets Table: hiển thị danh sách các gói tin chặn bắt được.dưới dạng bảng dữ liệu cũng như kèm theo bộ lọc đối với các trường thông tin trên bảng.

Bảng danh sách các gói tin

Packet Information Tree: hiển thị thông tin của packet được lựa chọn trên Packets Table đối với từng tầng.

Trần Ngọc Việt – CNT46 ĐH68

Page 69: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Packet HexPane: hiển thị dữ liệu của packet được lựa chọn dưới dạnh mã hexa

Trần Ngọc Việt – CNT46 ĐH69

Page 70: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Statusbar: hiển thị trạng thái của chương trình: số packet đã chặn bắt được và số packet được hiển thị trên bảng (hai số lượng này là khác nhau nếu như người dùng thực hiện filter đối với một cột thông tin bất kì nào đó).

Khi bắt đầu thực hiện bắt gói tin bằng menu Capture trên menu hoặc nút bấm trên toolbar, người dùng sẽ được yêu cầu khai báo các thông tin liên quan tới phiên làm việc như sau:

Lựa chọn thiết bị sẽ chặn bắt trên danh sách.

Lựa chọn có chặn bắt trong chế độ đa hỗn tạp hay không.

Trần Ngọc Việt – CNT46 ĐH70

Page 71: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Lựa chọn sẽ tự động dừng bắt gói tin sau một khoảng thời gian định trước hay sau một số lượng gói tin nhất định.

Khi đó, chương trình sẽ tiến hành chặn bắt các gói tin theo thời gian thực với các tiêu chí kể trên. Các gói tin sẽ được hiển thị ra màn hình dưới dạng bảng.(Packets Table). Bảng hiển thị là bảng động với phần dữ liệu (model) của các packet và phần hiển thị (view) hoàn toàn riêng biệt, do vậy người dùng có thể thực hiện lựa chọn bảng sẽ hiển thị thông tin gì mà không hề ảnh hưởng đến dữ liệu, đồng thời giúp chương trình chỉ cần phân tích những thông tin cần thiết mà không cần phân tích toàn bộ tất cả các trường thông tin, góp phần làm tăng hiệu năng.

Bảng dữ liệu cho phép người dùng lựa chọn thông tin hiển thị

Bảng dữ liệu cho phép người dùng sắp xếp trên tất cả các trường thông tin hiển thị bằng cách nháy đúp vào header của trường thông tin đó trên bảng.

Trần Ngọc Việt – CNT46 ĐH71

Page 72: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ sắp xếp theo giá trị tăng dần của trường Source IP

Bảng dữ liệu cho phép người dùng thực hiện lọc trên một trường giá trị bất kì hiển thị trên bảng bằng cách gõ vào ô filter nằm ngay phía trên bảng. Những packet nào không thỏa mãn giá trị filter sẽ được giấu đi mà không ảnh hưởng gì đến dữ liệu chương trình.

Ví dụ Filter cho trường Destination IP với giá trị “192.168”. Chỉ những packet nào có giá trị tương ứng bắt đầu bằng “192.168” mới được hiển thị.

3.4 Các thao tác với file

Chương trình sử dụng định dạng chuẩn *.pcap của thư viện libpcap nên hoàn toàn tương thích với bất kì chương trình chặn bắt gói tin nào khác sử dụng chuẩn này (wireshark, windump, tcpdump...) Chương trình có thể mở các file được lưu lại từ

Trần Ngọc Việt – CNT46 ĐH72

Page 73: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

các chương trình khác kể trên hay ghi lại file mà các chương trình đó có thể mở được.

Các thao tác gồm:

Open: mở file ( yêu cầu là file dạng chuẩn *.pcap của libpcap).

Save: lưu lại file dưới định dạng chuẩn *.pcap.

Save as: lưu lại file vừa mở dưới tên khác và đuôi bất kì.

Reload: mở lại file vừa mở trong phiên trước đó.

Close: đóng lại file hay hủy bỏ phiên chặn bắt

3.5 Chức năng di chuyển trên bảng dư liệu

Nhảy tới gói tin đầu tiên được chặn bắt.

Nhảy tới một gói tin có số thứ tự bất kì.

Nhảy tới gói tin cuối cùng được chặn bắt (là gói tin đầu tiên và cuối cùng trên dữ liệu (model) và khác với gói tin đầu tiên/ cuối cùng được hiển thị trên bảng (view)).

Nhảy tới gói tin trước đó đã lựa chọn (tương tự previous/back trên trình duyệt).

3.6 Chức năng thống kê

Menu thống kê

Người dùng có thể lựa chọn chức năng thống kê thông qua menu hoặc nút bấm trên thanh toolbar.

3.6.1 Thống kê tích lũy (Cumulative Statistics)

Chức năng này cho phép người dùng thống kê lại thông tin từ lúc bắt đầu phiên chặn bắt và liên tục cập nhật cho đến khi người dùng lựa chọn dừng phiên chặn bắt.

Trần Ngọc Việt – CNT46 ĐH73

Page 74: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Người dùng có thể thống kê theo từng tầng bao gồm:

Thông tin tổng quát.

Network Layer.

Transport Layer

Application Layer.

Dữ liệu được thống kê theo các tiêu chí sau:

Tổng số lượng các packet mỗi loại.

Tỉ lệ phần trăm các packet mỗi loại.

Tốc độ chặn bắt (bit/s và packet/s).

Tổng độ lớn của packet theo mỗi loại.

Dữ liệu được liên tục cập nhật trên biểu đồ dạng vòng và với mỗi một tiêu chí sẽ có một biểu đồ tương ứng. Ở ví dụ dưới đây là biểu đồ thống kê tích lũy trên cùng một dữ liệu đối với tầng Application và theo hai tiêu chí khác nhau là tổng số lượng packet và tổng độ lớn của packet mỗi loại.

Ví dụ thống kê theo tổng số lượng các gói tin

Trần Ngọc Việt – CNT46 ĐH74

Page 75: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ thống kê theo tổng độ lớn các gói tin

3.6.2 Thống kê liên tục (Continous Statistics)

Không giống như thống kê tích lũy, thống kê liên tục cho phép người dùng nhận biết sự thay đổi của tỉ lệ các packet trong khoảng thời gian liên tục do nó sử dụng đồ thị dạng đường liên tục và được cập nhật 1giây/lần. Thông tin được lưu trữ tối đa tới 120 giây.

Ví dụ thống kê liên tục trên tầng Transport

Trần Ngọc Việt – CNT46 ĐH75

Page 76: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ thống kê liên tục trên tầng Network

3.7 Ngăn chặn thông tin

Bằng cách sử dụng tiện ích ipseccmd nằm trong bộ Windows Support Tools, ta có thể dùng chương trình kết nối tới dịch vụ IPSercurity của Windows để thực hiện ngăn chặn một kết nối bất kì.

Với ví dụ phía dưới, ta chọn luật như sau:

Địa chỉ nguồn chính là địa chỉ của chúng ta.

Địa chỉ đích là bất kì địa chỉ nào.

Giao thức là TCP.

Cổng nguồn là bất kì cổng nào.

Cổng đích là cổng có giá trị 80.

Như vậy sau khi luật này được đưa vào dịch vụ IPSercurity, Windows sẽ tự động ngăn chặn tất cả các gói tin thỏa mãn luật trên, cũng chính là ngăn chặn hoạt động truy cập website.

Trần Ngọc Việt – CNT46 ĐH76

Page 77: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ ngăn chặn kết nối truy cập web

3.8 Một số tính năng phụ

Cho phép người dùng tùy biến LookAndFeel theo ý muốn với gần 20 LookAndFeel khác nhau

Ví dụ với Metal LookAndFeel

Trần Ngọc Việt – CNT46 ĐH77

Page 78: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Ví dụ với Office 2007 LookAndFeel

Cho phép người dùng lựa chọn ngôn ngữ của chương trình (tiếng Anh và tiếng Việt). Sau khi thay đổi thì toàn bộ các đoạn hội thoại, các menu... của chương trình đều được chuyển sang ngôn ngữ tương ứng.

Giao diện tiếng Việt

4 Nhược điểm và hướng phát triển

4.1 Nhược điểm

Chương trình còn tồn tại rất nhiều những nhược điểm cần phải khắc phục, đó là:

Chưa thực sự quản lý và chặn bắt được trong mạng LAN. Nếu muốn chặn bắt các gói tin trong mạng LAN thì cần phải lắp đặt các máy trong mạng theo sơ đồ thích hợp sử dụng Hub hoặc Switch có chức năng port mirroring kết hợp với chế độ bắt đa hỗn tạp (promiscuous mode).

Trần Ngọc Việt – CNT46 ĐH78

Page 79: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Không thực sự khóa kết nối mạng mà chỉ đóng vai trò cầu nối để người dùng sử dụng dịch vụ IPSercurity của Windows. Do vậy chức năng khóa này cũng không thể hoạt động trên các hệ điều hành khác ngoài Windows và chương trình chưa thực sự hoàn toàn Cross-Platform.

Sử dụng cơ sở dữ liệu HyperSQL với chế độ bộ nhớ, do vậy mỗi lần khởi động chương trình phải load toàn bộ cơ sở dữ liệu vào bộ nhớ, gây tốn thời gian khởi động nếu như dữ liệu được lưu quá nhiều (khoảng vài năm). Những thông tin ghi lại vào cơ sở dữ liệu còn ít ( chỉ bao gồm lưu lượng vào/ra và số packet vào/ra).

Chưa thực hiện highlight đối với các loại gói tin khác nhau.

Cách thức phân tích các gói tin còn sơ sài, ít chủng loại gói tin có thể phân tích, cách thức hiển thị các trường thông tin còn nhiều chỗ không hợp lý ( cách hiển thị trường thời gian, cách căn lề các cột dữ liệu trong bảng...).

Chưa có chức năng giải mã dữ liệu của gói tin cũng như theo dấu luồng TCP (TCP Stream) từ đó kiểm tra thứ tự các gói TCP và tổng hợp thành một file dữ liệu hoàn chỉnh, do vậy cũng chưa thể cảnh báo các đoạn mã độc có thể gửi tới hệ thống.

Khi thực hiện chặn bắt gói tin thì chương trình chỉ cho phép chặn bắt tư một thiết bị duy nhất, nếu muốn chặn bắt nhiều thiết bị cùng lúc thì phải chạy hai chương trình cùng lúc.

4.2 Hướng phát triển

Do điều kiện thời gian và trình độ mà chương trình của em còn hạn chế về mặt chức năng và nhiều thiếu sót. Trong tương lai, em muốn hạn chết những thiếu sót này cũng như mở rộng về mặt chức năng cho chương trình với hướng phát triển sau:

Mở rộng số lương các loại gói tin có thể phân tích cũng như mức độ chi tiết khi phân tích một gói tin, sửa đổi khả năng hiển thị các thông tin một cách phù hợp hơn.

Nâng cấp chức năng báo cáo để có thể in ấn, xuất ra nhiều định dạng khác nhau.

Nâng cấp chương trình trở thành chương trình client-server trong đó server được trang bị thêm khả năng điều khiển chương trình client trao, thu nhận các báo cáo của chương trình client hay yêu cầu chương trình client khóa mạng theo một luật nào đó.

Trần Ngọc Việt – CNT46 ĐH79

Page 80: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Chương IV. Xây dựng chương trình

Phát triển thêm chức năng phân tích gói tin cho phép hiển thị mối liên hệ giữa các địa chỉ và mối liên hệ giữa các cổng dưới dạng đồ thị.

Trần Ngọc Việt – CNT46 ĐH80

Page 81: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

Kết LuậnTrong thời gian làm đồ án tốt nghiệp này, cùng với sự cố gắng của bản

thân và sự hướng dẫn tận tình của thầy giáo Th.S. Ngô Quốc Vinh và các thầy

cô giáo trong khoa Công nghệ thông tin cùng sự tham gia đóng góp của các

bạn sinh viên, em đã xây dựng được chương trình kiểm soát lưu lượng thông

tin trên hệ thống mạng với các yêu cầu đề ra. Em đã cố gắng hoàn thiện

chương trình cả về mặt chức năng cũng như giao diện, song vẫn không thể

tránh khỏi rất nhiều thiếu sót, em rất mong nhận được sự tham gia đóng góp

và giúp đỡ của các thầy cô giáo, các bạn sinh viên để em có thể phát triển hơn

nữa chương trình của mình. Trong thời gian tới em sẽ cố gắng nghiên cứu

phát triển và hoàn thiện đề tài của mình hơn nữa.

Cuối cùng, một lần nữa em xin chân thành cảm ơn các thầy cô trong

khoa Công nghệ thông tin, những người đã dìu dắt em trong suốt quá trình

học tập tại trường và đặc biệt gửi lời cảm ơn sâu sắc đến thầy Ngô Quốc Vinh

đã hướng dẫn, giúp đỡ em trong suốt quá trình làm đề tài tốt nghiệp này..

Hải Phòng tháng 12 năm 2009

Sinh viên: Trần Ngọc Việt

Trần Ngọc Việt – CNT46 ĐH81

Page 82: MỤC LỤCdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/an... · Web viewTă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

TÀI LIỆU THAM KHẢO

[1]. Wikipedia.org

[2]. Robert Graham. Packet Sniffing FAQ.

[3]. Nguyễn Thúc Hải. Mạng máy tính và các hệ thống mở.

[4]. Fiach Reid. Network Programming in .NET With C# and Visual

Basic .NET.

[5]. Keita Fujii. Jpcap Tutorials.

Trần Ngọc Việt – CNT46 ĐH82