Luận Văn Khảo sát các thư viện bắt gói lớp 2 và lớp 3

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Mai Kul, 5/12/13.

  1. Mai Kul

    Mai Kul New Member

    Bài viết:
    1,299
    Được thích:
    0
    Điểm thành tích:
    0
    Xu:
    0Xu
    Đồ án tốt nghiệp năm 2011
    Đề tài: KHẢO SÁT CÁC THƯ VIỆN BẮT GÓI LỚP 2 VÀ LỚP 3


    MỤC LỤC
    NHẬN T CỦA GIÁO VIÊN HƯỚNG DẪN
    LỜI MỞ ĐẦU
    LỜI CẢM ƠN
    MỤC LỤC i
    DANH MỤC CÁC BẢNG, HÌNH iv
    DANH MỤC CÁC CỤM TỪ VIẾT TẮT . v
    CHƯƠNG 1. TỔNG QUAN VỀ BẮT GÓI . 6
    1.1 Giới thiệu . 6
    1.2 Kiến trúc bắt gói dữ liệu 7
    1.2.1 Card mạng và trình điều khiển thiết bị NIC 7
    1.2.2 Trình điều khiển bắt gói. 10
    1.3 Tương tác với NDIS . 13
    1.4 Các quá trình xử lý bắt và gửi gói 19
    1.4.1 Quá trình lọc. 19
    1.4.2 Quá trình đệm và đọc dữ liệu 20
    1.4.3 Quá trình tiêm gói 23
    1.5 Các loại bộ đệm 23
    1.5.1 Bộ đệm hạt nhân. 23
    1.5.2 Bộ đệm mức người dùng 24
    1.6 Các kiến trúc bắt gói 25
    1.6.1 Kiến trúc BSD Packet Filter 25
    1.6.1.a. Network Tap 26
    1.6.1.b. Filter. 26
    1.6.1.c. Kernel Buffer. 28
    1.6.1.d. Thư viện Libcap 28
    1.6.2 Kiến trúc của WinPCap. 29
    1.6.2.a. Tổng quan về kiến trúc. 29
    1.6.2.b. Những mô đun của WinPCap 31
    CHƯƠNG 2. CÁC GIAO THỨC VÀ KHUÔN DẠNG DỮ LIỆU CHÍNH 34
    2.1 Bộ giao thức TCP/IP 34
    2.1.1 Khái niệm 34
    2.1.2 Mục đích và nguồn gốc. 34
    2.1.3 Đặc điểm 36
    2.1.4 Đóng gói dữ liệu trong chồng giao thức TCP/IP . 36
    2.1.5 Sơ lượt chức năng của các tầng. 37
    2.1.5.a. Tầng ứng dụng(Application Layer) 37
    2.1.5.b. Tầng giao vận(Transport Layer). 37
    2.1.5.c. Tầng Internet(Internet Layer). 37
    2.1.5.d. Tầng Liên kết(Link Layer). 38
    2.1.6 So sánh mô hình TCP/IP và OSI . 38
    2.2 Cấu trúc khung tin và các giao thức truyền tin 39
    2.2.1 Ethernet. 39
    2.2.1.a. Cấu trúc khung tin Ethernet 39
    2.2.1.b. Cấu trúc địa chỉ Ethernet. 41
    2.2.2 ARP(Address Resolution Protocol). 41
    2.2.3 RARP(Reverse Address Resolution Protocol). 42
    2.2.4 IP(Internet Protocol) 43
    2.2.5 ICMP(Internet Control Message Protocol) 45
    2.2.6 TCP(Transmission Control Protocol). 47
    2.2.7 UDP(User Datagram Protocol) 48
    2.2.8 HTTP (HyperText Transfer Protocol). 49
    2.2.9 DNS(Domain Name System) 50
    CHƯƠNG 3. THƯ VIỆN LỌC GÓI LỚP 2 VÀ LỚP 3 . 52
    3.1 Các khái niệm liên quan 52
    3.2 Thư viện bắt gói lớp 3 (.NET Library) 52
    3.2.1 Khái niệm 53
    3.2.2 Hoạt động của .NET Socket. 55
    3.3 Thư viện bắt gói lớp 2 55
    3.3.1 WinPcap 55
    3.3.1.a. Khái niệm. 56
    3.3.1.b. Hoạt động của Winpcap. 57
    3.3.2 PacketX 58
    3.4 So sánh và Nhận xét cơ chế bắt gói 59
    3.4.1 So sánh Raw Socket và WinPcap 59
    3.4.2 Nhận xét. 60
    CHƯƠNG 4. ĐÁNH GIÁ HIỆU SUẤT BẮT GÓI CỦA THƯ VIỆN BẮT GÓI LỚP
    2 VÀ THƯ VIỆN BẮT GÓI LỚP 3 62
    4.1 Giới thiệu về chương trình bắt gói lớp 2 và lớp 3. 62
    4.1.1 Chương trình bắt gói lớp 2 62
    4.1.2 Chương trình bắt gói lớp 3 62
    4.2 So sánh hiệu suất bắt gói giữa lớp 2 và lớp 3 . 63
    4.2.1 Sơ đồ mạng thực hiện so sánh hiệu suất. 63
    4.2.2 So sánh độ chiếm dụng CPU 65
    4.2.3 So sánh tỉ lệ gói bắt được. 66
    4.2.4 So sánh tỉ lệ mất gói 67
    4.3 Hướng phát triển đồ án. 71
    KẾT LUẬN . 73
    DANH MỤC TÀI LIỆU THAM KHẢO 74


    LỜI MỞ ĐẦU
    Công nghệ mạng máy tính và truyền thông ngày nay đ ợc sử dụng một cách
    rộng rãi v i những phần mềm ứng dụng đ ợc viết ra để cung cấp cho ng ời dùng. Sự
    thành công c a mạng Internet mang thông tin đến mỗi gia đình, mỗi tổ chức và mỗi
    công ty. Mỗi ngày mỗi sản phẩm phần mềm đ ợc viết ra kèm theo đó là những công
    nghệ m i ra đời.
    Sức mạnh và độ phức tạp c a mạng máy tính đ ợc phát triển mỗi ngày. Điều
    này làm tăng khả năng sử dụng c a thiết bị ng ời dùng cuối, nh ng cũng chính điều
    đó lại làm khó cho những ng ời thiết kế, bảo d ỡng và đảm bảo tính an ninh c a
    mạng.
    Chính vì nguy n nhân đó, cần đ a ra những công cụ cần thiết có khả năng phân
    tích, chẩn đoán và kiểm tra hoạt động và vấn đề bảo mật c a các thông tin truyền trên
    mạng.
    Để có thể kiểm soát đ ợc các luồng thông tin l u thông tr n mạng, theo dõi l u
    l ợng gói vào ra. Đồng thời theo dõi hoạt động c a ng ời sử dụng về các vấn để trên
    đ ờng truyền, sự tấn công c a virus hay những tấn công c a Hacker. Một giải pháp đặt
    ra đó là sử dụng những công cụ bắt gói và phân tích kết quả từ các gói bắt đ ợc để có
    thể giải quyết các vấn đề nêu trên.
    Hiện nay, có rất nhiều công cụ bắt gói đ ợc phát triển bởi các nhà phát triển ứng
    dụng nổi tiếng, nh công cụ bắt gói Wireshare, Tcpdump, Etherpeek, Cain & Anbel
    Tuy nhi n, cơ chế hoạt động để có thể thực hiện bắt gói ở l p 2 (Datalink) và l p 3(
    Network) trong mô hình OSI c a những công cụ này nh thế nào? Dựa vào đâu mà
    các công cụ này có thể bắt các gói tin và tiến hành phân tích chúng , sau đó hiển thị kết
    quả l n giao diện c a ứng dụng. Chính vì những mục đích nêu trên, em đã lựa chọn
    thực hiện đồ án tốt nghiệp về khảo sát cơ chế bắt gói ở l p Network và l p Data link.
    Khảo sát các th viện bắt gói ở mỗi l p. So sánh kết quả bắt gói trong từng tr ờng hợp
    ri ng để có thể hiểu rõ hơn về cơ chế bắt gói, hiệu suất bắt gói tr n mỗi l p.
    Thông qua đó, em có thể nắm bắt đ ợc các giải pháp và kĩ thuật để có thể thu
    thập, giám sát, quản lý đ ợc thông tin trên mạng qua việc phân tích nội dung các gói
    tin bắt đ ợc. Và đó sẽ giúp em có thể trang bị tốt cho hành trang kiến thức c a mình
    sau khi ra tr ờng.
    Nội dung c a báo cáo đồ án tốt nghiệp gồm có:
    Chương 1: Tổng quan về bắt gói.
    Chương 2: Các giao thức và khuôn dạng dữ liệu chính.
    Chương 3: Thư viện lọc gói lớp 2 và lớp 3.
    Chương 4:Đánh giá hiệu suất bắt gói của thư viện bắt gói lớp 2 và thư viện bắt
    gói lớp 3.
    Phần kết luận và các tài liệu tham khảo.


    CHƯƠNG 1. TỔNG QUAN VỀ BẮT GÓI
    1.1 Giới thiệu .
    Những công cụ bắt gói đ ợc tạo ra để thực hiện công việc riêng c a nó, th ờng
    cần thu thập dữ liệu truyền trên mạng, bắt gói (capturing) trong khi mạng đang làm
    việc. Việc xử lý bắt gói tập trung ở chổ thu thập, lắng nghe trên mạng, mỗi khung
    truyền, không phụ thuộc vào nguồn hay đích c a gói tin đến.
    Hầu hết các công nghệ truyền d n và giao thức truyền thông làm phức tạp
    thêm nhiệm vụ này. Hơn thế nữa, khả năng thực thi đ ợc đánh giá rất quan trọng, để
    có thể bắt đ ợc dữ liệu từ mạng đang hoạt động nhanh v i tốc độ cao mà không làm
    mất gói dữ liệu.
    Có hai ph ơng pháp chính để bắt dữ liệu từ một mạng: Thứ nhất là dựa trên
    việc sử dụng những thiết bị phần cứng chuyên dụng, trong khi cách thứ hai là sử
    dụng phần cứng c a một PC hay máy trạm bình th ờng kết nối đến kênh truyền
    thông. Trong ph ơng pháp thứ hai, card mạng c a máy tính sử dụng để thu thập
    cách khung (frames) từ mạng, và phần mềm đảm nhiệm xử lý bắt gói.
    Giải pháp phần mềm th ờng có khả năng thực hiện thấp hơn, đặc biệt là trên
    những máy tính yếu. Nh ng nó lại rẽ hơn, dễ chỉnh sửa và nâng cấp chức năng phần
    mềm. V i nguy n nhân đó, nó đ ợc hiện diện trong hầu hết kiến trúc mạng, nơi mà
    khả năng thực hiện cao c a những phần cứng chuyên dụng không thực sự cần đến.
    Việc thực hiện bắt gói đ ợc lấy ý t ởng từ Berkeley Packet Filter (BPF),
    đ ợc phát triển bởi S.McCanne và V.Jaconbson tại tr ờng đại học c a California.
    BPF là một thành phần hạt nhân nổi tiếng sử dụng nh một trình điều khiển bắt gói
    (capture driver) trong những phiên bản c a UNIX v i hiệu quả c a nó rất cao, dễ
    triển khai và khả năng đáp ứng c a nó cho giao tiếp mức ng ời dùng v i th viện
    libpcap.
    Sự phát triển rộng rãi c a Windows v i những nhiệm vụ thực hiện mà đáng ra
    là những nhiệm vụ truyền thống đ ợc thực hiện một cách tin cậy trên những máy
    trạm Unix làm bỏ qua những tính năng v i nhiều vấn đề đáng kể. Do vậy, nó hạn
    chế số l ợng cũng nh chất l ợng c a những công cụ cho việc phân tích và bảo mật
    trên nền tảng này. Những cố gắn đó đ ợc tập trung để tạo ra một kiến trúc có khả
    năng mở rộng và mạnh mẽ cho việc phân tích mạng ở mức thấp trên nền tảng
    Win32, đó chính là WinPCap. V i kiến trúc này là một hệ thống mở đầu tiên cho
    việc bắt gói dữ liệu trên Win32 và nó lấp đầy khoảng trống quan trọng giữa Unix và
    Windows. Hơn nữa, WinPCap đ a mục tiêu v i hiệu suất là vấn đề đầu ti n, do đó
    nó có thể hổ trợ cho các ứng dụng đòi hỏi hiệu suất cao.
    Việc lọc gói đ ợc tạo ra từ một thành phần nhân c a hệ điều hành ( để lựa
    chọn gói tin) và một th viện chế độ ng ời dùng ( để cung cấp gói tin đến ứng
    dụng). Thành phần sau cùng cung cấp một chuẩn giao tiếp cho việc truy cập mạng
    mức thấp và cho phép lập trình viên có thể tránh đ ợc lập trình ở mức nhân c a hệ
    điều hành. WinPCap bao gồm một trình điều khiển chế độ hạt nhân tối u, đ ợc gọi
    là Netgroup Packet Filter (NPF), và tập th viện mức ng ời dùng có khả năng t ơng
    thích v i libpcap. T ơng thích API Libcap chính là mục ti u đầu ti n để mà tạo ra
    nền tảng một tập các chức năng cho việc bắt gói. WinPCap có thể nạp các ứng dụng
    c a Unix đến Win32 dễ dàng và nó có thể cho phép một tập l n các ch ơng trình
    đ ợc sử dụng trên Win32 ngay lập tức, chỉ sau một quá trình biên dịch đơn giản.
    Hơn thế nữa, do việc quan trọng c a giám sát l u l ợng, WinPCap cung cấp các lời
    gọi hệ thống rõ ràng cao cho việc đó.
    1.2 Kiến trúc bắt gói dữ liệu
    Trong phần này sẽ định nghĩa những mô hình đ ợc sử dụng trong việc bắt gói
    bằng việc nhận diện các thành phần đặc biệt c a một kiến trúc đặc tr ng cho việc
    bắt gói và phân tích l u l ợng.
    Đặc biệt, chúng ta tập trung vào đ ờng đi gói tin đ ợc nhận về bởi card mạng
    đ ợc chuyển t i bộ nh bộ nh chính c a máy trạm, và đến ứng dụng cuối cùng
    thông qua môi tr ờng c a trình điều khiển thiết bị và hệ điều hành. Mặc dù kiến trúc
    NPF (NetGroup Packet Filter) đ ợc cung cấp bởi BPF và bọc trong th viện
    WinPCap, th ờng đ ợc chú ý đến cho những nguyên tắc cơ bản chung để giải quyết
    vấn đề khác. Kế tiếp,những thành phần li n quan, đ ợc yêu cầu bởi WinPCap để xử
    lý một gói tin đến và phân phối chúng đến ứng dụng nh trong biểu diễn c a hình
    1.1 và hình 1.2.
    1.2.1 Card mạng và trình điều khiển thiết bị NIC.
    Một card mạng hiện nay có số l ợng gi i hạn thực sự c a bộ nh on-board,
    th ờng là vài Kbyte. Bộ nh này yêu cầu để cho phép nhận và gửi gói tin tại thời
    điểm tốc độ liên kết tối đa, không phụ thuộc vào khả năng c a máy trạm ch . Hơn
    nữa, NIC thực hiện một vài kiểm tra đầu ti n nh là lỗi CRC, khung Ethernet ngắn,
    trong khi những gói tin đ ợc l u trữ trong bộ nh on-board, do đó những khung
    không đúng có thể bị loại bỏ ngay tức thì mà không xảy ra một thao tác kiểm tra ở
    lớp trên.
    .


    DANH MỤC TÀI LIỆU THAM KHẢO
    Tiếng Việt:
    1. Nguyễn Thúc Hải. Mạng máy tính và các hệ thống mở. Nhà xuất bản giáo dục, năm
    1999.
    2. Ngạc Văn An. Mạng máy tính. Nhà xuất bản giáo dục, năm 2006.
    Tiếng Anh:
    1. J. F. Kurose and K. W. Ross, Computer Networking: A Top-Down Approach
    Featuring the Internet (2nd edition), Addison-Wesley, 2002.
    2. Fiach Reid. Network Programming in .NET With C# and Visual Basic .NET.
    3. Robert Graham. Packet Sniffing FAQ.
    4. Loris Degioanni, Development of an Architecture for Packet Capture and Network
    Traffic Analysis, Graduation Thesis, Politecnico Di Torino (Turin, Italy, Mar.
    2000)
    5. Fulvio Risso, Loris Degioanni, An Architecture for High Performance Network
    Analysis, Proceedings of the 6
    th
    IEEE Symposium on Computers and
    Communications (ISCC 2001), Hammamet, Tunisia, July 2001
    6. S. McCanne and V. Jacobson, The BSD Packet Filter: A New Architecture for
    User-level Packet Capture. Proceedings of the 1993 Winter USENIX Technical
    Conference (San Diego, CA, Jan. 1993), USENIX.
    7. Microsoft MSDN Library, Microsoft Corporation, August 1999.
    8. Mihai Dorobanţu, M.Sc., Mihai L. Mocanu, Ph.D, A Simple Way To Capture
    Network Traffic: The Windows Packet Capture (WINPCAP) Architecture, School
    of Automation, Computers and Electronics, University of Craiova, 13 A.I. Cuza
    Str., 1100 Craiova, Romania.
    Danh mục các Website tham khảo:
    1. http://www.winpcap.org/docs/docs_412/html/main.html
    2. http://www.beesync.com/packetx/index.html
    3. http://www.qnx.com/developers/docs/6.5.0/index.jsp?topic=/com.qnx.doc.instr_en_instr/
    buffers.html
    4. http://www.scribd.com/doc/46552576/Cơ-cấu-WinPcap
    5. http://en.wikipedia.org/wiki/Network_Driver_Interface_Specification
     

    Các file đính kèm:

Đang tải...