HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 2
ĐỒ ÁN/KHOÁ LUẬN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
KHẢO SÁT CÁC THƢ VIỆN BẮT GÓI
LỚP 2 VÀ LỚP 3
Mã số đề tài:
11407170011
Ngƣời hƣớng dẫn :
Sinh viên thực hiện :
ThS LÊ PHÚC
NGUYỄN VĂN TRÍ
Mã số sinh viên
Lớp
Khoá
Hệ
407170067
Đ07THM1
2007-2012
ĐẠI HỌC CHÍNH QUY
:
:
:
:
TP.HCM , tháng 12/2011
Đồ án/ Khóa luận tốt nghiệp Đại học
Nhận x t c a giáo vi n h
ng d n
NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TP Hồ Chí Minh, Ngày …… tháng 12 năm 2011
Giáo viên hƣớng dẫn
ThS. LÊ PHÚC
Nguyễn Văn Trí -D07THM1
Đồ án/ Khóa luận tốt nghiệp Đại học
Lời mở đầu
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.
Nguyễn Văn Trí -D07THM1
Đồ án/ khóa luận tốt nghiệp Đại học
Lời cảm ơn
LỜI CẢM ƠN
Sau thời gian học tập tại tr ờng Học Viện Công Nghệ B u Chính Viễn Thông Cơ
sở tại thành phố Hồ Chí Minh, em đã đ ợc các thầy cô giáo trang bị cho em những
kiến thức cơ bản c a ngành Công nghệ thông tin, đồng thời cũng giúp em hiểu sâu hơn
về chuyên ngành mạng máy tính và truyền thông.
Ngoài ra, nhà tr ờng cũng tạo điều kiện cho em có thể tìm hiểu đ ợc các vấn đề
li n quan trong chuy n ngành mà mình đang theo học. Đó cũng là nền tảng vững chắc
cho em sau này b c ra tr ờng vận dụng những kiến thức mà mình đã đ ợc học để có
thể góp phần xây dựng ngành công nghệ thông tin nói chung và ngành mạng máy tính
và truyền thông nói riêng ngày càng phát triển v i những công nghệ tiên tiến hiện nay.
Em xin bày tỏ lòng cảm ơn Ban giám hiệu nhà tr ờng, t i thầy, cô và các anh chị
khoa Công nghệ Thông tin đã tận tình giảng dạy và giúp đỡ cho em trong suốt thời
gian học tập vừa qua tại tr ờng.
Đồng thời em xin gửi lời cảm ơn sâu sắc t i Thầy L Phúc đã tận tình giúp đỡ,
h ng d n em học tập, tìm hiểu, nghiên cứu và trau dồi kiến thức chuy n môn để hoàn
thành đề tài báo cáo tốt nghiệp này.
Mặc dù đã cố gắng trong nghiên cứu và thực hiện đề tài, nh ng vì thời gian và
trình độ còn hạn chế nên chắc chắn bài báo cáo sẽ không tránh khỏi nhiều thiếu sót.
Em rất mong nhận đ ợc sự đó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 những nghi n cứu và ch ơng trình c a mình.
Nguyễn Văn Trí -D07THM1
Đồ án/ Khóa luận tốt nghiệp Đại học
Mục lục
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
Các loại bộ đệm. ....................................................................................................... 23
1.5
1.5.1
Bộ đệm hạt nhân. .............................................................................................. 23
1.5.2
Bộ đệm mức ngƣời dùng .................................................................................. 24
Các kiến trúc bắt gói. ............................................................................................... 25
1.6
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.
2.1
CÁC GIAO THỨC VÀ KHUÔN DẠNG DỮ LIỆU CHÍNH................ 34
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
Nguyễn Văn Trí -D07THM1
Trang i
Đồ án/ Khóa luận tốt nghiệp Đại học
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
2.2
Mục lục
So sánh mô hình TCP/IP và OSI ..................................................................... 38
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
3.3.1.a.
Khái niệm. .................................................................................................. 56
3.3.1.b.
Hoạt động của Winpcap. .......................................................................... 57
3.3.2
3.4
WinPcap ............................................................................................................ 55
PacketX. ............................................................................................................. 58
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
Nguyễn Văn Trí -D07THM1
Trang ii
Đồ án/ Khóa luận tốt nghiệp Đại học
4.2
Mục lục
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
Nguyễn Văn Trí -D07THM1
Trang iii
Đồ án/ Khóa luận tốt nghiệp Đại học
Danh mục các Bảng, Hình
DANH MỤC CÁC BẢNG, HÌNH
Danh mục các bảng:
Bảng 2.1 Một số giao thức tr n các tầng c a TCP/IP.............................................................. 37
Danh mục các hình ảnh:
Hình 1.1 Cấu trúc NPF .............................................................................................................. 8
Hình 1.2 Đ ờng đi từ NIC đến ứng dụng ................................................................................. 9
Hình 1.3 Cấu trúc c a trình điều khiển bắt gói ........................................................................ 11
Hình 1.4 Cấu trúc c a trình điều khiển v i hai adapter và hai ứng dụng ................................ 12
Hình 1.5 Một kiến trúc NDIS đơn giản ................................................................................... 16
Hình 1.6 Packet Capture Driver trong NDIS .......................................................................... 18
Hình 1.7 Các thành phần c a BSD .......................................................................................... 26
Hình 1.8 WinPCap và NPF ..................................................................................................... 29
Hình 1.9 Kiến trúc Winpcap tổng quát .................................................................................... 31
Hình 2.1 Bộ giao thức TCP/IP ................................................................................................. 35
Hình 2.2 Đóng gói dữ liệu theo giao thức TCP/IP .................................................................. 36
Hình 2.3 T ơng ứng các tầng giữa TCP/IP và OSI ................................................................. 38
Hình 2.4 Cấu trúc khung Ethernet ........................................................................................... 39
Hình 2.5 Cấu trúc một đơn vị dữ liệu ARP ............................................................................. 42
Hình 2.6 Cấu trúc đơn vị dữ liệu IP......................................................................................... 43
Hình 2.7 Cấu trúc gói tin ICMP .............................................................................................. 46
Hình 2.8 Cấu trúc đơn vị dữ liệu TCP ..................................................................................... 47
Hình 2.9 Cấu trúc đơn vị dữ liệu UDP .................................................................................... 49
Hình 2.10 Cấu trúc header c a gói tin DNS ............................................................................ 50
Hình 3.1 Sơ đồ giao tiếp thông qua .NET Socket ................................................................... 54
Hình 3.2 Cơ chế làm việc c a .NET Socket ............................................................................ 55
Hình 3.3 T ơng ứng giữa Socket và Pcap ............................................................................... 60
Hình 4.1 Giao diện ch ơng trình bắt gói l p 2 ........................................................................ 62
Hình 4.2 Giao diện ch ơng trình bắt gói l p 3. ....................................................................... 63
Hình 4.3 Sơ đồ dùng để so sánh hiệu suất bắt gói ................................................................... 63
Hình 4.4 Cấu hình máy Windows Server 2003 ....................................................................... 64
Hình 4.5 Cấu hình máy Windows 7 ........................................................................................ 64
Hình 4.6 Mức chiếm dụng CPU ở ch ơng trình bắt l p 3 ...................................................... 65
Hình 4.7 Mức chiếm dụng CPU ở ch ơng trình l p 2 ............................................................ 66
Hình 4.8 Số gói TCP bắt l p 3 ................................................................................................ 68
Hình 4.9 Số gói TCP và tổng số gói bắt l p 2 ......................................................................... 68
Hình 4.10 Tổng số gói bắt đ ợc c a wireshare ....................................................................... 69
Hình 4.11 Kết quả gói tin TCP trong 3 ch ơng trình ............................................................. 70
Hình 4.12 Số gói tin TCP bị mất trong 2 ch ơng trình bắt gói. ............................................ 71
Nguyễn Văn Trí -D07THM1
Trang iv
Đồ án/ Khóa luận tốt nghiệp Đại học
Danh mục các cụm từ viết tắt
DANH MỤC CÁC CỤM TỪ VIẾT TẮT
TỪ VIẾT TẮT
OSI
LAN
WAN
SA
DA
TỪ VIẾT ĐẦY ĐỦ
Open Systems Interconnection
Local Area Network
Wide Area Network
Source Address
Destination Address
UDP
User Datagram Protocol
TCP
Transmission Control Protocol
ICMP
Internet Control Message Protocol
SNMP
Simple Network Management Protocol
IP
FTP
CPU
DNS
Internet Protocol
File Transfer Protocol
Center Processing Unit
Domain Name Service
DHCP
Dynamic Host Configuration Protocol
HTTP
Hyper Text Transfer Protocol
PPP
DLL
TOS
TTL
Point-to-Point Protocol
Dynamic Link Library
Type Of Service
Time To Live
NDIS
Network Driver Interface Specification
Nguyễn Văn Trí – D07THM1
GIẢI NGHĨA
Kết nối hệ thống mở
Mạng cục bộ
Mạng diện rộng
Địa chỉ nguồn
Địa chỉ đích
Giao thức dữ liệu ng ời
dùng
Giao thức điều khiển truyền
d n
Giao thức thông điệp điều
khiển Internet
Giao thức quản lý mạng
đơn giản
Giao thức Internet
Giao thức truyền tập tin
Đơn vị xử lý trung tâm
Dịch vụ tên miền
Giao thức cấu hình máy
ch động
Giao thức truyền si u văn
bản
Giao thức điểm nối điểm
Th viện liên kết động
Loại dịch vụ
Thời gian sống
Định rõ giao tiếp trình điều
khiển mạng
Trang v
Đồ án/ Khóa luận tốt nghiệp Đại học
CHƯƠNG 1.
Ch ơng 1.Tổng quan về bắt gói
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
Nguyễn Văn Trí – D07THM1
Trang 6
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
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.
Nguyễn Văn Trí – D07THM1
Trang 7
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
Hình 1.1 Cấu trúc NPF
Sau khi những gói tin đúng đ ợc nhận về bởi card NIC, nó sẽ sinh ra một yêu
cầu chuyển thẳng t i bus controller cho việc truyền dữ liệu trên bus master. Tại thời
điểm này, NIC sẽ chiếm quyền điều khiển c a bus, chuyển gói tin từ bộ đệm NIC
vào trong bộ nh chính c a máy trạm, điều này đ ợc biểu diễn trong hình 1.2. Sau
đó nó sẽ giải phóng bus và sinh ra một lệnh ngắt phần cứng chuyển thẳng t i chip
điều khiển ngắt lập trình nâng cao (APIC). Chip này đánh thức th tục điều khiển
ngắt hệ điều hành, cái mà đ ợc gắn vào th tục dịch vụ ngắt (ISR) c a trình điều
khiển thiết bị NIC.
ISR c a trình điều khiển đ ợc viết tốt có thể dễ dàng làm việc. Về cơ bản, nó
kiểm tra nếu có liên quan ngắt đến bản thân nó ( một lệnh ngắt có thể chia sẽ giữa
vài thiết bị trong kiến trúc x86) và biết nó. Sau đó, ISR l n lịch làm việc v i một
hàm u ti n thấp ( đ ợc gọi là Deferred Procedure Call, hay là DPC) mà sẽ xử lý
sau yêu cầu phần cứng và cảnh báo t i trình điều khiển l p cao hơn ( ví dụ , trình
điều khiển l p giao thức, trình bắt gói) mà một gói tin đ ợc nhận về. CPU sẽ xử lý
th tục DPC khi không có một yêu cầu ngăt nào đ ợc chờ. Những yêu cầu ngắt t i
từ NIC đ ợc vô hiệu hóa khi một trình điều khiển thiết bị đang thực hiện công việc
c a nó, bởi vì quá trình xử lý c a các gói tin đã hoàn thành tr c một quá trình yêu
Nguyễn Văn Trí – D07THM1
Trang 8
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
cầu kế tiếp. Hơn nữa, do việc sinh ra ngắt là hoạt động rất tốn chi phí nên NIC hiện
nay cho phép nhiều gói tin đ ợc chuyển trong cùng một ngữ cảnh c a một lệnh ngắt
đơn, nh thế một trình điều khiển l p cao hơn có thể xử lý vài gói tin đến mỗi thời
gian mà nó đ ợc kích hoạt.
Hình 1.2 Đ ờng đi từ NIC đến ứng dụng
Trình điều khiển NIC quản lý trực tiếp đến card mạng, ví dụ nh là NICs.
Giao tiếp trình điều khiển NIC truy cập trực tiếp đến phần cứng tại bi n thấp hơn
c a nó và bi n cao hơn c a nó v i một giao tiếp cho ph p l p cao hơn có thể gửi gói
tin l n mạng, xử lý ngắt, khởi động lại NIC, dừng hoạt động c a NIC và chuyển
sang chế độ chờ, thiết lập thêm các đặc điểm hoạt động c a trình điều khiển. Một
trình điều khiển không thể giao tiếp v i ứng dụng mức ng ời dùng, nh ng chỉ có
thể giao tiếp v i trình điều khiển trung gian NDIS hoặc trình điều khiển giao thức.
Trình điều khiển NIC có thể là những miniport hoặc là trình điều khiển NIC đầy đ
đ ợc kế thừa.
o Trình điều khiển Miniport chỉ đ ợc triển khai thực hiện tr n một phần
cứng ri ng biệt cần thiết để quản lý một NIC, bao gồm việc gửi và nhận
dữ liệu tr n NIC. Thống nhất các hoạt động đến tất cả trình điều khiển
NIC ở mức thấp nhất, ví dụ nh là việc đồng bộ, đ ợc cung cấp bởi
NDIS. Miniports không gọi th tục hệ điều hành trực tiếp; giao tiếp c a
nó đối v i hệ điều hành là NDIS. Một Miniport không giữ lại dấu vết c a
sự li n kết. Nó chỉ chuyển gói tin đến NDIS và NDIS đảm bảo rằng
những gói tin đó đ ợc chuyển đến đúng giao thức.
o Trình điều khiển NIC đầy đ (Full NIC driver) đ ợc viết để thực hiện tất
cả hoạt động c a phần cứng ri ng biệt và tất cả hoạt động đồng bộ và
những hoạt động hàng đợi th ờng đ ợc thực hiện bởi NDIS. Trình điều
khiển NIC đầy đ , chẳng hạn nh , duy trì thông tin li n kết c a nó để
biểu diễn dữ liệu nhận đ ợc.
Nguyễn Văn Trí – D07THM1
Trang 9
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
1.2.2
Trình điều khiển bắt gói.
Những thành phần bắt gói th ờng trong suốt v i những mô đun phần mềm
khác giống nh những chồng giao thức, do đó nó không ảnh h ởng đến hành vi c a
hệ thống chuẩn. Nó chỉ móc thêm vào trong hệ thống và có thể th ờng xuyên cảnh
báo thông qua hàm callback đ ợc gọi là tap() ngay khi gói tin m i đến từ mạng.
Những thành phần này th ờng đ ợc triển khai nh những trình điều khiển giao thức
mạng trong Win32.
Trình điều khiển bắt gói đ ợc thêm vào trong nhân c a windows cho khả
năng bắt gói dữ liệu thô từ một mạng bằng cách giống nh BPF trong nhân c a
UNIX. Thêm nữa, nó cung cấp một vài chức năng, không có trong trình điều khiển
BPF gốc, để giúp cho sự phát triển c a những ch ơng trình giám sát và kiểm tra
mạng. Điểm chính c a trình điều khiển bắt gói là cho hiệu suất bắt gói cao, tính linh
hoạt và tính t ơng tác v i BPF gốc trong UNIX.
Kết quả c a trình điều khiển bắt gói có thể:
o Bắt gói l u l ợng dữ liệu thô từ mạng và chuyển chúng t i một ứng
dụng mức ng ời dùng.
o Lọc những gói tin đến bằng việc thực hiện các mã giã BPF. Điều này có
nghĩa rằng ứng dụng bắt gói có thể định rõ đ ợc một ch ơng trình BPF
chuẩn và chuyển chúng t i trình điều khiển. Trình điều khiển sẽ loại bỏ
những gói tin đến không đáp ứng bộ lọc.
o Giữ những gói tin trong một bộ đệm khi ứng dụng đang bận hoặc nó
không có khả năng đ để chấp nhận hết luồng l u l ợng c a gói tin đến
từ mạng.
o Thu thập dữ liệu từ vài gói tin đến và trả chúng nh là một đơn vị mà
ứng dụng có thể đọc đ ợc. Để duy trì ranh gi i c a gói tin, những gói
tin đ ợc bọc một ti u đề ( giống nh là sử dụng BPF) . Ti u đề đó bao
gồm một nhãn thời gian (time stamp), chiều dài, và offset c a sắp xếp dữ
liệu.
o Viết những gói tin thô đến mạng, tức là gửi gói tin lên trên mạng.
o Tính toán thống k l u l ợng trên mạng.
Kiến trúc chi tiết c a trình điều khiển bắt gói đ ợc trình bày nh hình sau:
Nguyễn Văn Trí – D07THM1
Trang 10
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
Hình 1.3 Cấu trúc c a trình điều khiển bắt gói
Những mũi t n h ng lên trên hình biểu diễn luồng các gói tin từ mạng đến
ứng dụng bắt gói. Những mũi t n l n hơn giữa bộ đệm hạt nhân và bộ đệm ứng
dụng chỉ thị rằng hơn một gói tin có thể truyền giữa hai thực thể này trong một lời
gọi hệ thống. Những mũi t n h ng xuống d i c a hình cho thấy đ ờng đi c a
những gói tin từ ứng dụng đến mạng. WinDump và Libpcap không thể gửi gói tin
đến mạng, do đó nó sử dụng chỉ một đ ờng từ d i lên trên. Tuy nhi n, trình điều
khiển không hạn chế việc sử dụng việc sử dụng WinDump và có thể dùng nó để tạo
ra nhiều công cụ mạng m i. Do nguy n nhân đó, nó có thể bao gồm khả năng tạo
gói tin mà có thể đ ợc khai thác thông qua việc trực tiếp sử dụng th viện liên kết
động packet.dll.
Cấu trúc đ ợc biểu diễn trong hình trên ( đó là một adapter đơn và một ứng
dụng đơn) là một mô tả đơn giản c a trình điều khiển bắt gói. Cấu trúc thực sự phức
tạp hơn nhiều và có thể thấy đ ợc trong hình d i đây. Trong hình này biểu diễn
một cấu hình c a trình điều khiển v i hai card mạng và hai ứng dụng bắt gói.
Nguyễn Văn Trí – D07THM1
Trang 11
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
Hình 1.4 Cấu trúc c a trình điều khiển v i hai adapter và hai ứng dụng
Để mỗi phiên bắt gói đ ợc thiết lập giữa một adapter và một ch ơng trình
bắt gói, trình điều khiển phải duy trì một bộ lọc và một bộ đệm. Một card mạng có
thể đ ợc sử dụng bởi nhiều ứng dụng tại cùng một thời điểm. Cho ví dụ, ng ời sử
dụng muốn bắt l u l ợng IP và UDP, và l u chúng đến hai tập tin riêng lẽ, có thể
xem hai phiên c a WinDump trên cùng một card mạng (nh ng hai bộ lọc là khác
nhau) tại cùng một thời điểm. Phi n đầu tiên sẽ cài đặt một bộ lọc cho gói tin IP (
và một bộ đệm để l u trử chúng), và bộ lọc thứ hai sẽ là dành cho gói UDP. Điều đó
có thể biết đến một ứng dụng mà t ơng tác thông qua trình điều khiển bắt gói, có
thể nhận gói tin từ nhiều giao tiếp cùng một thời điểm.
Chú ý rằng phiên bản cũ hơn 2.02 chỉ có khả năng cấu hình trong Windows
95 và Windows 98 đã đ ợc trình bày trong hình 1.3 ( một adapter đơn và một ứng
dụng bắt gói đơn). Điều này do hạn chế trong kiến trúc c a phiên bản này. Từ phiên
bản 2.02, trong Windows 95/98 có thể thực hiện đ ợc giống trong Windows NT, có
nhiều tr ờng hợp hơn c a trình điều khiển , và nó cho phép nhiều ứng dụng bắt gói
có thể làm việc trong cùng một thời điểm. Hơn nữa, nó có thể cho ứng dụng đơn
làm việc trên nhiều card mạng khác nhau.
Cấu trúc lõi chính ở giữa những phiên bản Windows khác nhau là hoàn toàn
giống nhau. Cấu trúc dữ liệu bên trong không khác hoàn toàn, bộ đệm gói tin và bộ
lọc đ ợc điều khiển trong cùng một đ ờng. Tính t ơng tác v i NDIS là giống nhau
trong những nền tảng khác nhau và nó làm đ ợc bằng cách đ a ra tập những hàm
Nguyễn Văn Trí – D07THM1
Trang 12
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
callback đ ợc cung cấp bởi trình điều khiển và một nhóm hàm th viện NDIS
(NdisTransferData, NdisSend...) đ ợc sử dụng bởi trình điều khiển bắt gói để giao
tiếp trình điều khiển NIC. Sự khác nhau giữa mối quan hệ và sự t ơng tác v i
những phần khác nhau c a hệ điều hành ( những lời gọi đọc và viết đ ợc xử lý từ
ứng dụng mức ng ời dùng, hàm thời gian….) từ đó hoạt động c a những hệ điều
hành sẽ khác nhau hoàn toàn.
Hành động đầu ti n đ ợc thực hiện bởi hàm tap() là lọc, tức là những gói tin
đ ợc phân tích để dò tìm cái nào là những gói tin mà ng ời dùng thích. Đ ợc cung
cấp từ BPF, máy lọc c a NPF là một bộ xử lý ảo v i những tập đơn c a những chỉ
thị mà có thể thực hiện một vài xử lý cơ bản trên bộ đệm chung chứa các byte.
Winpcap (và libpcap) cung cấp một API mức ng ời dùng có thể chuyển nhanh lên
mức cao ( ví dụ nh chỉ đón những gói tin UDP) đến tập hợp chỉ thị mã giả ( chẳng
hạn nh nếu tr ờng Ethernet type c a phần ti u đề Ethernet là IP và tr ờng
protocol type c a ti u đề IP là bằng 17, thì nó sẽ trả ra là đúng) và gửi gói tin đến
máy lọc, kích hoạt chúng. Kiến trúc đ ợc đề cử áp dụng một bộ lọc gói tin trong khi
nó v n l u trong bộ đệm c a trình điều khiển NIC, do đó tránh sao ch p những gói
tin không cần thiết, mặc dù nó đã dùng tài nguy n bus bởi vì nó đ ợc truyền đến bộ
nh hệ thống.
Gói tin đ ợc chấp nhận bởi bộ lọc đ ợc kết hợp v i thông tin l p vật lý, nh
là chiều dài và nhãn thời gian nhận đ ợc, cái mà có ích cho truy cập ứng dụng và xử
lý chúng. Gói tin đ ợc sao ch p đến bộ đệm, th ờng biết là bộ đệm hạt nhân (kernel
buffer), cái mà l u trữ những gói tin đang chờ đ ợc chuyển t i mức ng ời dùng (
xem hình 1.2). Kích th c và kiến trúc c a bộ đệm này là một thống số quan trọng
cho việc thực thi quá trình xử lý bắt gói. Cho ví dụ, nếu hệ thông bộ đệm đ ợc thiết
kế tốt và l n thì có thể bù cho sự chậm chạp c a ứng dụng trong khi bùng nổ mạng
hoặc giảm số lời gọi hệ thống yêu cầu bởi chuyển dữ liệu từ trình điều khiển bắt gói
( chẳng hạn từ bộ đệm nhân t i ứng dụng).
Những ứng dụng ng ời dùng lấy những gói tin từ bộ đệm nhân bởi một lời
gọi hệ thống giống nh là đọc, khi NPF đ ợc phát triển, lời gọi này sẽ gây nên một
lời khẩn cầu c a hàm read() (xem hình 1.1), cái mà sẽ kiểm tra xem trạng thái c a
bộ đệm nhân NPF : Nếu bộ đệm là không rỗng, nội dung c a nó đ ợc chuyển đến
một bộ đệm đ ợc cấp phát bởi ng ời dùng, ở đây là user-buffer trong hình 1.1. Ứng
dụng đ ợc đánh thức khi mà một dữ liệu đ ợc sao ch p đến mức ng ời dùng đo đó
nó có thể bắt đầu xử lý những gói tin.
1.3
Tƣơng tác với NDIS
Chú ý rằng không phải tất cả các phiên bản UNIX đều có BPF (ví dụ khả
năng lọc và đệm trong hạt nhân), nh ng các th viện pcap có thể bù đắp sự thiếu hụt
này. Kiến trúc có thể làm việc bằng cách lọc các gói tin theo cách t ơng
thích BPF ở mức ng ời dùng. Giải pháp này đ ợc làm theo bản phát hành đầu ti n
Nguyễn Văn Trí – D07THM1
Trang 13
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
c a trình điều khiển gói NDIS. Nó là dễ dàng hơn để thực hiện nh ng nó lại hạn chế
hiệu suất đặt biệt cho hai lý do sau:
- Xử lý lọc đ ợc thực hiện tại mức nhân, do đó mỗi gói tin phải đ ợc
sao ch p từ bộ đệm nhân đến bộ đệm ứng dụng tr c khi dò tìm nếu
ứng dụng muốn nó. Điều này rõ ràng sẽ lãng phí thời gian và bộ nh
CPU. Nếu xử lý bộ lọc đã đ ợc thực hiện trong nhân, tất cả những gói
tin không cần cho ứng dụng bắt gói đ ợc bỏ đi bởi hệ thống và không
ch p nó đến mức ng ời sử dụng.
- Không có bộ đệm nào cho gói tin trong nhân. Trong môi tr ờng đa
nhiệm, ứng dụng bắt gòi phải chia sẽ thời gian xử lý v i ứng dụng
khác. Điều đó có thể ứng dụng bắt gói sẽ không đ ợc thực hiện khi gói
tin đến. Hơn nữa, ứng dụng có thể làm nhiều nhiệm vụ khác và có thể
không chờ gói tin đến. Việc thiếu bộ đệm hạt nhân, trong một vài tình
huống sẽ làm mất gói.
Do những nguy n nhân đó ảnh h ởng đến việc triển khai c a việc lọc và đệm
lại gói tin trong trình điều khiển bắt gói .
NDIS (Network Driver Interface Specification) là một tập các chỉ d n mà
đ ợc định nghĩa giao tiếp giữa card mạng( hoặc, tốt hơn, là trình điều khiển quản lý
nó) và trình điều khiển giao thức (IP,IPX..) . Mục đích chính c a NDIS là hoạt động
nh là một trình bao bọc(wrapper) mà cho ph p trình điều khiển giao thức gửi và
nhận các gói tin tr n mạng (LAN hay WAN) không cần phải quan tâm adapter ri ng
biệt hay hệ điều hành Win32 ri ng biệt.
NDIS là chuẩn cung cấp cho việc nói chuyện giữa card mạng (network card)
và các giao thức (protocol) mạng đ ợc dùng. NDIS cho phép sử dụng nhiều giao
thức mạng trên cùng một card mạng. Mặc định Windows NT AdvancedServer đ ợc
cung cấp sử dụng bốn giao thức đó là NetBEUI (NetBIOSExtended User Interface),
TCP/IP, Microsoft NWLINK, và Data Link Control.TDI cung cấp khả năng nói
chuyện giữa các giao thức mạng v i các phần mềm mạng mức trên (nh Server và
Redirector). Bất cứ trạm làm việc nào (sử dụng hệ điều hành Windows NT
Workstation) đều có thể các trình điều khiển điều khiển card mạng đ ợc cung cấp
nội tại trong Windows NT Advanced Server.Trong tr ờng hợp phải sử dụng một
loại card mạng khác, tức là phải cần trình điều khiển cho card mạng không có sẵn
trong Windows NT, NDIS v n có thể sử dụng đa giao thức mạng trên card mạng
này. Khi máy tính sử dụng đa giao thức mạng, các gói tin dữ liệu sẽ đ ợc chuyển đi
thông qua giao thức mạng thứ nhất (giao thức này đ ợc gọi là primary protocol),
nếu không đ ợc máy tính sẽ sử dụng tiếp giao thức thứ hai và cứ thế tiếp tục. Trên
mỗi máy tính đ ợc cài đặt Windows NT, mỗi một giao thức mạng đ ợc đặt sử dụng
trên một card mạng cần phải đ ợc đặt một giá trị gọi là LAN adapter number trên
card mạng đó.
Nguyễn Văn Trí – D07THM1
Trang 14
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
NDIS hổ trợ 3 loại trình điều khiển mạng:
Card giao tiếp mạng hay NIC driver (Network interface card or NIC
drivers ). Trình điều khiển NIC quản lý trực tiếp đến card mạng, tham
khảo nh là NICs. Giao diện trình điều khiển NIC trực tiếp đến phần
cứng tại bi n thấp hơn c a nó và bi n cao hơn c a nó thể hiện một giao
tiếp cho ph p l p cao hơn có thể gửi gói tin l n mạng, xử lý ngắt, khởi
động lại NIC, dừng NIC và chờ, thiết lập đặc điểm hoạt động c a trình
điều khiển. Một trình điều khiển không thể giao tiếp v i ứng dụng mức
ng ời dùng, nh ng chỉ v i trình điều khiển trung gian NDIS hoặc trình
điều khiển giao thức. Trình điều khiển NIC có thể hoặc là những
miniport hoặc là trình điều khiển NIC đầy đ đ ợc kế thừa.
o Trình điều khiển Miniport chỉ đ ợc triển khai thực hiện tr n một
phần cứng ri ng biệt cần thiết để quản lý một NIC, bao gồm
việc gửi và nhận dữ liệu tr n NIC. Thống nhất các hoạt động
đến tất cả trình điều khiển NIC ở mức thấp nhất, ví dụ nh là
việc đồng bộ, đ ợc cung cấp bởi NDIS. Miniports không gọi
th tục hệ điều hành trực tiếp; giao tiếp c a nó đối v i hệ điều
hành là NDIS. Một Miniport không giữ lại dấu vết c a sự li n
kết. Nó chỉ chuyển gói tin đến NDIS và NDIS đảm bảo rằng
những gói tin đó đ ợc chuyển đến đúng giao thức.
o Trình điều khiển NIC đầy đ (Full NIC driver) đ ợc viết để thực
hiện tất cả hoạt động c a phần cứng ri ng biệt và tất cả hoạt
động đồng bộ và những hoạt động hàng đợi th ờng đ ợc thực
hiện bởi NDIS. Trình điều khiển NIC đầy đ , chẳng hạn nh ,
duy trì thông tin li n kết c a nó để biểu diễn dữ liệu nhận đ ợc.
Trình điều khiển trung gian (Intermediate drivers).Giao tiếp trình điều
khiển trung gian ở giữa trình điều khiển mức cao hơn nh là một trình
điều khiển chuyển vận kế thừa và một miniport. Về trình điều khiển
mức cao hơn, một trình điều khiển trung gian đ ợc xem giống nh một
miniport. Về một miniport, trình điều khiển trung gian đ ợc xem nh
là một trình điều khiển giao thức. Một trình điều khiển giao thức trung
gian có l p cao đứng tr n một trình điều khiển trung gian khác mặc dù
l p đó có thể có một hiệu quả ti u cực tr n khả năng thực thi c a hệ
thống. Một nguy n nhân đặc tr ng cho việc phát triển một trình điều
khiển trung gian là để thực hiện chuyển đổi môi tr ờng giữa một trình
điều khiển chuyển vận kế thừa ( transport driver) và một miniport mà
quản lý một NIC cho một loại môi tr ờng m i không biết đến
transport driver. Cho ví dụ, một trình điều khiển trung gian có thể
chuyển từ giao thức LAN đến giao thức ATM. Một trình điều khiển
Nguyễn Văn Trí – D07THM1
Trang 15
Đồ án/ Khóa luận tốt nghiệp Đại học
Ch ơng 1.Tổng quan về bắt gói
trung gian không thể giao tiếp v i ứng dụng ở chế độ ng ời dùng, mà
chỉ có thể thông qua trình điều khiển NDIS khác.
Trình điều khiển chuyển vận hoặc trình điều khiển giao thức
(Transport drivers or protocol drivers). Một trình điều khiển giao thức
thực hiện một chồng giao thức mạng giống nh là IPX/SPX hoặc
TCP/IP, cung cấp dịch vụ tr n một hoặc nhiều card mạng. Một trình
điều khiển chuyển vận đảm bảo dịch vụ ở l p ứng dụng tr n client tại
bi n tr n c a nó và kết nối đến một hoặc nhiều trình điều khiển NIC
hoặc trình điều khiển NDIS trung gian tại bi n d i nó.
Hình d i đây cho thấy một ví dụ về cấu trúc NDIS v i hai chồng bắt gói trên cùng
một card mạng: một v i trình điều khiển NIC và một trình điều khiển giao thức, khác
v i một trình điều khiển NIC , một trình điều khiển trung gian và một trình điều khiển
giao thức.
Hình 1.5 Một kiến trúc NDIS đơn giản
Trình điều khiển bắt gói tin cần giao tiếp cả v i trình điều khiển mạng ( để nhận
dữ liệu từ mạng) và v i ứng dụng mức ng ời dùng( để cung cấp gói tin đến ng ời
dùng), do đó nó đ ợc triển khai trong một cấu trúc NDIS nh một trình điều khiển
giao thức. Điều này cho phép nó có thể độc lập từ phần cứng mạng, do đó việc thực
hiện v i tất cả card mạng đ ợc hổ trợ bởi Windows. Tuy nhiên cần chú ý rằng trình
điều khiển bắt gói chỉ làm việc ngay lập tức trên Ethernet adapter, loopback adapter
Nguyễn Văn Trí – D07THM1
Trang 16
- Xem thêm -