Tìm hiểu kỹ thuật chặn bắt và phân tích gói tin nhằm mực đích phục vụ phát hiện xâm nhập trên mạng máy tính
Trang 1MỤC LỤC
Trang
MỤC LỤC 1
DANH MỤC CÁC TỪ VIẾT TẮT 4
DANH MỤC CÁC BẢNG 8
DANH MỤC CÁC HÌNH VẼ 9
LỜI MỞ ĐẦU 11
Chương 1: CƠ SỞ LÝ THUYẾT VỀ MẠNG MÁY TÍNH 14
1.1 TỔNG QUAN HỆ THỐNG MẠNG TCP/IP 14
1.1.1 Khái niệm mạng máy tính 14
1.1.2 Kiến trúc phân tầng của mạng máy tính 15
1.1.3 Mô hình tham chiếu OSI 17
1.1.4 Mô hình TCP/IP 20
1.1.5 So sánh giữa mô hình OSI và TCP/IP 21
1.2 TÌM HIỂU VỀ MÔ HÌNH TCP/IP 22
1.2.1 Cấu trúc phân tầng của mô hình TCP/IP 22
1.2.2 Quá trình truyền nhận dữ liệu trong TCP/IP 24
1.2.3 Sơ lược chức năng từng tầng trong mô hình TCP/IP 25
1.2.4 Các giao thức chính trong mô hình TCP/IP và khuôn dạng dữ liệu tương ứng 27
Chương 2: KỸ THUẬT BẮT GÓI TIN TRÊN MẠNG MÁY TÍNH 39
2.1 CÁC KHÁI NIỆM 39
2.1.1 Packet 39
2.1.2 Network Traffic 39
2.1.3 Packet capture 39
Trang 22.1.4 Packet Analyzer (Sniffer) 40
2.2 ỨNG DỤNG CỦA VIỆC CHẶN BẮT GÓI TIN 40
2.2.1 Khả năng 40
2.2.2 Mục đích của việc chặn bắt gói tin 40
2.3 CÁC THÀNH PHẦN CHÍNH CỦA MỘT CHƯƠNG TRÌNH CHẶN BẮT GÓI TIN 41
2.3.1 Thành phần phần cứng 41
2.3.2 Thành phần Capture driver 41
2.3.3 Thành phần Buffer: 41
2.3.4 Thành phần Real-time analysis 41
2.3.5 Thành phần Decode 42
2.3.6 Thành phần Packet editting/transmission 42
2.4 CÁCH THỨC HOẠT ĐỘNG CỦA VIỆC CHẶN BẮT GÓI TIN 42
2.4.1 Theo dõi Network Traffic 42
2.4.2 Phân tích Network Traffic 42
2.5 CÁC PHƯƠNG PHÁP CHẶN BẮT GÓI TIN 44
2.5.1 Mức hệ điều hành (Socket, Raw Socket) 44
2.5.2 Mức Network Adapter (Pcap) 46
2.5.3 So sánh Raw Socket và Pcap 47
2.6 PHÒNG CHỐNG SNIFFER TRÊN MẠNG MÁY TÍNH 48
2.6.1 Phát hiện sniffer trong mạng 49
2.6.2 Ngăn chặn sniffer 49
2.6.3 Một số chương trình phát hiện sniffer 50
Chương 3: XÂY DỰNG CHƯƠNG TRÌNH CHẶN BẮT GÓI TIN 51
3.1 HƯỚNG THỰC HIỆN CHƯƠNG TRÌNH 51
3.2 LỰA CHỌN PHƯƠNG PHÁP VÀ NỀN TẢNG XÂY DỰNG CHƯƠNG TRÌNH 53
Trang 33.2.1 Lựa chọn ngôn ngữ lập trình 53
3.2.2 Lựa chọn phương pháp chặn bắt gói tin 54
3.3 THƯ VIỆN WINPCAP VÀ SHARPPCAP 55
3.3.1 WinPcap 55
3.3.2 SharpPcap 57
3.4 PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 67
3.4.1 Các chức năng chính 67
3.4.2 Phân tích xây dựng các chức năng chính 69
3.5 CHƯƠNG TRÌNH HOÀN THIỆN 75
3.5.1 Mô tả 75
3.5.2 Giao diện chương trình 76
Chương 4: ỨNG DỤNG KỸ THUẬT CHẶN BẮT GÓI TIN ĐỂ XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG MINH 80
4.1 Ý TƯỞNG CHUNG CHO VIỆC THỰC HIỆN PHÁT HIỆN XÂM NHẬP THÔNG MINH 80
4.2 MÔ HÌNH MAXIMUM ENTROPY 81
4.2.1 Khái niệm Entropy 81
4.2.2 Giới thiệu mô hình học thống kê Maximum Entropy (ME) 82
4.2.3 Các thuật toán xác định tham số trong mô hình Maximum Entropy 85
4.2.4 Học máy theo mô hình Maximum Entropy dựa trên thuật toán GIS 88
4.3 XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG MINH 92
4.3.1 Lựa chọn thư viện hỗ trợ thuật toán GIS 92
4.3.2 Giới thiệu về thư viện SharpEntropy 92
4.3.3 Làm việc với SharpEntropy 96
Trang 44.3.4 Phân tích thiết kế chương trình 97
KẾT LUẬN 102
TÀI LIỆU THAM KHẢO 105
PHỤ LỤC 106
A CHƯƠNG TRÌNH CHẶN BẮT VÀ PHÂN TÍCH GÓI TIN 106
A.1 Các bước làm việc với SharpPcap của chương trình 106
A.2 Các lớp của chương trình 109
A.3 Các hàm xử lý chính của chương trình 109
B CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG MINH 111
B.1 Các lớp của chương trình 111
B.2 Các hàm xử lý chính của chương trình 111
B.3 Demo một tập mẫu học để training cho chương trình 113
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
TCP/IP Transmission Control
Protocol/Internet Protocol
Bộ giao thức liên mạng
Architecture
Kiến trúc mạng do IBM tạo ra
DECnet Digital Equipment
Corporation protocol suite
Bộ giao thức mạng độc quyềncủa hãng Digital EquipmentCorporation
ARPANET Advanced Research
Projects Agency Network
Mạng lưới cơ quan với các đề ánnghiên cứu tân tiến
Interconnection
Mô hình tham chiếu kết nối các
hệ thống mởPDU Protocol Data Unit Đơn vị dữ liệu giao thức
FDDI Fiber Distributed Data
SMTP Simple Mail Transfer
Trang 6Giao thức truyền tải siêu văn bản
UDP User Datagram Protocol Giao thức gói dữ liệu người
dùngTCP Transmission Control
Protocol
Giao thức điều khiển truyền dẫn
ARP Address Resolution
Protocol
Giao thức phân giải địa chỉ
ICMP Internet Control Message
IEEE Institute of Electrical and
Electronics Engineer
Viện kỹ nghệ Điện và Điện Tử
CRC cyclic redundancy check Mã sửa sai dự phòng
CSMA/CD Carrier Sense Multiple
Access with Collision Detect
Đa truy cập cảm nhận sóngmang
RARP Reserve Address Giao thức phân giải địa chỉ
Trang 7Resolution Protocol ngượcPING Packet internet gropher Cộng cụ kiểm tra kết nối mạng
Unit
Đơn vị truyền tải dữ liệu ngược
DPC Deep Packet Capture Là hành động chặn bắt toàn bộ
các gói tin trên mạngDPI Deep Packet Inspection Kiểm tra và phát hiện các hiện
tượng mạngPOP Post Office Protocol Giao thức nhận thư
NNTP Network News Transfer
SSL Sercure Socket Layer Giao thức truyền tải an toàn
Trang 8Systems nhập MEM Maximum Entropy Model Mô hình độ hỗn loạn cực đại GIS Generalized Iterative
Scaling
Thuật toán lặp tổng quát
IIS Improved Iterative Scaling Thuật toán lặp mở rộng
DANH MỤC CÁC BẢNG
Trang
Bảng 1.1: Chi tiết kiểu và loại gói tin ICMP 35
Bảng 3.1: Danh sách các lớp của SharpPcap Namespace 62
Bảng 3.2: Danh sách các lớp của SharpPcap.AirPcap Namespace 63
Bảng 3.3: Danh sách các lớp trong SharpPcap.LibPcap Namespace 64
Bảng 3.4: Danh sách các lớp trong SharpPcap.WinPcap Namespace 65
Trang 9Bảng 4.1: Ví dụ tập mẫu học đầu vào cho GIS (chỉ mang tính minh họa) 91
Bảng 4.2: Các lớp chính trong thư viện SharpEntropy 95
Bảng 4.3: Các Interface trong thư viện SharpEntropy 96
Bảng 4.4: Các Delegates trong thư viện SharpEntropy 96
Bảng B.1: Demo tập mẫu học đầu vào cho GIS (chỉ mang tính minh họa) 113 DANH MỤC CÁC HÌNH VẼ Trang Hình 1.1: Minh họa kiến trúc phân tầng tổng quát 16
Hình 1.2: Mô hình OSI 17
Hình 1.3: Tương ứng các tầng giữa TCP/IP và OSI 21
Hình 1.4: Mô hình TCP/IP và các giao thức trong từng tầng 23
Hình 1.5: Đường đi của các gói tin trong môi trường mạng 25
Trang 10Hình 1.6: Cấu trúc của Ethernet frame 27
Hình 1.7: Cấu trúc tổng quát của gói tin ARP 29
Hình 1.8: Cấu trúc gói tin IP Datagram 31
Hình 1.9: Cấu trúc tổng quát của gói tin ICMP 33
Hình 1.10: Cấu trúc gói tin trong giao thức TCP 36
Hình 1.11: Cấu trúc gói tin trong giao thức UDP 37
Hình 2.1: Ví dụ phân tích Network Traffic 43
Hình 2.2: Tương ứng giữa Socket và Pcap 47
Hình 3.1: Mô hình tổng quát xử lý của chương trình 51
Hình 3.2: Cơ chế hoạt động của Winpcap 56
Hình 3.4: Sơ đồ hoạt động tổng quát của chương trình 69
Hình 3.5: Hoạt động khởi tạo phiên làm việc 71
Hình 3.6: Hoạt động phân tích gói tin 73
Hình 3.7: Hoạt động xử lý hiển thị chi tiết gói tin 74
Hình 3.8: Hoạt động thống kê lưu lượng mạng 75
Hình 3.9: Giao diện chương trình khi chưa hoạt động 76
Hình 3.10: Giao diện chọn card mạng 77
Hình 3.11: Giao diện chương trình khi hoạt động 77
Hình 3.12: Xem nội dung của một gói tin cụ thể ở dạng rõ 78
Hình 3.13: Giao diện chức năng phân tích lưu lượng 78
Hình 4.1: Sơ đồ thuật toán GIS 88
Hình 4.2: Kiến trúc chương trình phát hiện xâm nhập 97
Hình 4.3: Sơ đồ hoạt động chính của chương trình 98
Hình 4.4:Chức năng huấn luyện 98
Hình 4.5: Chức năng phát hiện xâm nhập 99
Hình 4.6: Giao diện chức năng huấn luyện 99
Trang 11Hình 4.7: Giao diện chọn card mạng cần theo dõi 100
Hình 4.8: Giao diện chức năng phát hiện xâm nhập 100
Hình 4.9: Giao diện chức năng nhập soạn dữ liệu kiểm tra 101
Hình A.1: Hình ảnh hiển thị của card mạng 106
Hình A.2: Các lớp của chương trình bắt gói tin 109
Hình B.1: Các lớp của chương trình phát hiện xâm nhập 111
LỜI MỞ ĐẦU
Ngày nay, sự phát triển của công nghê thông tin và hệ thống mạng máy tính đang diễn ra mạnh mẽ trên toàn thế giới cũng như ở Việt Nam Những ứng dụng của chúng đã và đang có mặt ở mọi nơi trong đởi sống kinh tế xã hội Trong khi công nghệ mạng và Internet mang lại nhiều cơ hội phát triển và cạch tranh mới cho các doanh nghiệp thì đồng thời cũng đặt ra những vẫn đề
về nhu cầu cần phải bảo vệ hệ thống máy tính trước các mối đe dọa về mất an toàn trong hoàn cảnh mà sự phát triển của những hoạt động phá hoại hệ thống máy tính cũng song hành cùng sự phát triển của hệ thống mạng và Internet
Trang 12Song song với sự phát triển mạnh mẽ của công nghê thông tin cũng nhưcác hệ thống phát hiện và phòng chống xâm nhập thì các kỹ thuật tấn công,xâm nhập các hệ thống của các tổ chức cũng ngày càng tinh vi hơn, đa dạnghơn Vì vậy vấn đề đặt ra là cần phải xây dựng những hệ thống phát hiện vàphòng chống những tấn công, xâm nhập trái phép để có thể ứng phó với cácnguy cơ mất an ninh đã và đang xảy ra hiện nay Và một trong những kỹ thuật
cơ bản của các hệ thống phòng chống và phát hiện xâm nhập hoặc firewall là
kỹ thuật chặn bắt và phân tích gói tin trên mạng máy tính
Nhận thức được tầm quan trọng của vấn đề bảo mật và an ninh thông tin
hiện nay nên em đã quyết định chọn đề tài: “Tìm hiểu kỹ thuật chặn bắt và
phân tích gói tin nhằm mục đích phục vụ phát hiện xâm nhập trên mạng máy tính.” Với hi vọng rằng đề tài này sẽ giúp em nâng cao vốn hiểu biết và có
được cái nhìn tổng quát nhất về vấn đề bảo mật hiện nay Đồng thời, thôngqua việc tìm hiểu về kỹ thuật chặn bắt và phân tích gói tin giúp em có thể hiểusâu về cơ chế, cấu trúc cũng như cách thức hoạt động cơ bản của các hệ thốngphòng chống và phát hiện xâm nhập Đây sẽ là cơ hội tốt và là tiền đề để em
có thể đi sâu và rộng hơn về vấn đề bảo mật trong tương lai
Đề tài chủ yếu tập trung giới thiệu về cách thức hoạt động của các giaothức mạng, giới thiệu về kỹ thuật chặn bắt và phân tích gói tin, xây dựng mộtchương trình chặn bắt và phân tích gói tin, đồng thời đi vào tìm hiểu và xâydựng thử nghiệm một hệ thống phát hiện xâm nhập thông minh dựa trên kếtquả thu được từ việc chặn bắt và phân tích gói tin Cấu trúc chính của đề tàibao gồm các phần sau:
Lời mở đầu: Nêu lên tầm quan trọng và xu hướng phát triển của vấn đề
bảo mật hiện nay và giới thiệu về đề tài
Chương 1: Cơ sở lý thuyết về mạng máy tính.
Chương 2: Kỹ thuật chặn bắt gói tin trên mạng máy tính.
Chương 3: Xây dựng chương trình chặn bắt gói tin.
Chương 4: Ứng dụng kỹ thuật chặn bắt gói tin để xây dựng chương trình
phát hiện xâm nhập thông minh
Kết luận: Đánh giá tổng kết về đề tài cũng như đưa ra một số giải pháp.
Trang 13Do kinh nghiệm chưa nhiều nên đề tài không tránh khỏi những thiếu sót,
sơ xuất, nên em rất mong nhận được những nhận xét đánh giá của các thầy cô
và sự đóng góp ý kiến của các bạn để có thể rút ra được kinh nghiệm cho việchọc tập, làm việc và nghiên cứu sau này Em cũng xin chân thành cảm ơnThạc sĩ Nguyễn Anh Tuấn và Thạc sĩ Nguyễn Quốc Toàn đã tận tình hướngdẫn em thực hiện đề tài này
SV thực hiện
Chương 1
CƠ SỞ LÝ THUYẾT VỀ MẠNG MÁY TÍNH
1.1 TỔNG QUAN HỆ THỐNG MẠNG TCP/IP
1.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ácTerminal để sử dụng chung nguồn tài nguyên, giảm chi phí khi muốn thôngtin 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
Trang 14Vớ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ăngyêu cầu truyền số liệu giữa các máy tính, giữa các terminal, và giữa cácterminal với máy tính là một trong những động lực thúc đẩy sự ra đời và pháttriể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áytí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 đầutiê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ốicá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âmquả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:
+ Vào những năm 1970 người ta bắt đầu xây dựng mạng truyền thôngtrong đó 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ạchdù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ácnú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 là 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áiniệ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
Trang 15- 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 nhaubởi các đường truyền vật lý theo một kiến trúc nào đó
1.1.2 Kiến trúc phân tầng của mạng máy tính.
Để 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ànhphầ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âydựng trên tầng trước đó; mỗi tầng sẽ cung cấp một số dịch vụ cho tầng caohơ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 DECnetcủa Digital, mạng ARPANET là có sự khác nhau) Nguyên tắc cấu trúccủ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ântầng (Số lượng tầng, chức năng của mỗi tầng là như nhau) Mục đích của mỗitầ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 thaotá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àysang tầng i của hệ thống khác (trừ tầng thấp nhất trực tiếp sử dụng đườngtruyề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ếtvậ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 đặtcác phần mềm truyền thông Như vậy để viết chương trình cho tầng N, phảibiết tầng N+1 cần gì và tầng N -1 có thể làm được gì
Trang 16Hình 1.1: Minh họa kiến trúc phân tầng tổng quát.
Nguyên tắc để xây dựng kiến trúc phân tầng như sau:
- Để đơn giản cần hạn chế số lượng các tầng
- Tạo ranh giới các tầng sao cho các tương tác và mô tả các dịch vụ là tốithiểu
- Chia các tầng sao cho các chức năng khác nhau được tách biệt vớinhau, 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ànhcông
- Các chức năng được định vị sao cho có thể thiết kế lại tầng mà ảnhhưở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
Trang 17- 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.1.3 Mô hình tham chiếu OSI.
1.1.3.1 Khái quát về mô hình OSI.
Hình 1.2: Mô hình OSI.
Mô hình tham chiếu OSI[1] là một cấu trúc phả hệ có 7 tầng, nó xác địnhcác yêu cầu cho sự giao tiếp giữa hai máy tính Mô hình này đã được địnhnghĩa bởi Tổ chức tiêu chuẩn hoá quốc tế (International Organization forStandardization) trong tiêu chuẩn số 7498-1 (ISO standard 7498-1)
Mục đích của mô hình là cho phép sự tương thích giữa các hệ máy đadạng được cung cấp bởi các nhà sản xuất khác nhau Mô hình cho phép tất cảcác thành phần của mạng hoạt động hòa đồng với nhau Vào những năm cuối
Trang 18thập niên 1980, ISO đã tiến cử việc thực thi mô hình OSI như một tiêu chuẩnmạng.
Hiện nay chỉ có một phần của mô hình OSI được sử dụng Nhiều ngườicho rằng các đặc tả của mô hình OSI quá phức tạp và việc cài đặt đầy đủ cácchức năng của nó sẽ đòi hỏi nhiều thời gian, mặc dù có nhiều người nhiệt tìnhủng hộ mô hình OSI
1.1.3.2 Phương thức hoạt động của mô hình OSI.
Mô hình tham chiếu OSI được chia làm 7 tầng, mỗi tầng đều có chứcnăng và nhiệm vụ riêng biệt, đó là:
và không kết nối (connectionless)
- Với phương thức có kết nối (connection-oriented):
+ Trước khi truyền dữ liệu cần thiết phải thiết lập một liên kết logicgiữa các thực thể cùng tầng
+ Trong 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ươnglượ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ý
Trang 19* Huỷ bỏ kết nối (logic): giải phóng các tài nguyên hệ thống đãcấp phát cho liên kết để dùng cho các liên kết khác
+ Tương ứng với ba giai đoạn trao đổi, ba thủ tục cơ bản được sửdụng Mỗi thủ tục trên sẽ dùng các hàm nguyên thuỷ (Request, Indication,Response, Confirm) để cấu thành các hàm cơ bản của giao thức ISO
- Phương thức không kết nối (connectionless):
+ Với phương thức không kết nối 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ặcsau nó
+ Phương thức không kết nối 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ứchoạt động có kết nối cho phép truyền dữ liệu tin cậy, do đó có cơ chế kiểmsoát và quản lý chặt chẽ từng kết nối logic Nhưng 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 DataUnit) đượ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 khitậ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ươngthức hoạt động mà có thể dùng hai phương thức khác nhau
1.1.4 Mô hình TCP/IP.
1.1.4.1 Khái quát về mô hình TCP/IP.
Để các máy tính liên lạc được với nhau qua mạng thì chúng phải sử dụngcùng một ngôn ngữ hay còn gọi là giao thức (Protocol) Giao thức là một hệcác luật và chuẩn cho phép các máy tính trong mạng liên lạc với nhau
Trang 20TCP/IP[2] (Transmission Control Protocol/Internet Protocol) là một bộgồm nhiều giao thức truyền thông khác nhau Đây là bộ giao thức phổ biếnnhất mà Internet và hầu hết các mạng máy tính thương mại hiện đang sửdụng Bộ giao thức này được đặt tên theo hai giao thức chính của nó là TCP
và IP Chúng cũng là hai giao thức đầu tiên được định nghĩa trong bộ giaothức TCP/IP
Bộ giao thức TCP/IP có thể được coi là một tập hợp các tầng Mỗi tầngtrong đó giải quyết một tập hợp các vấn đề có liên quan đến việc truyền, nhận
dữ liệu, chúng cung cấp các dịch vụ cho các giao thức tầng trên và sử dụngcác dịch vụ của các giao thức tầng thấp hơn Về mặt lôgic, các tầng ở phíatrê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úngdựa vào các giao thức tầng dưới để biến đổi dữ liệu thành các dạng mà cuốicùng có thể được truyền đi dưới dạng các tín hiệu điện
TCP/IP được thiết kế cho hai mục tiêu chính:
- Cho phép truyền thông qua các đuờng dây của mạng diện rộng (WideArea Network - WAN)
- Cho phép truyền thông giữa các môi trường đa dạng
1.1.4.2 Đặc điểm của mô hình TCP/IP.
- Là bộ giao thức chuẩn, mở và sẵn có, vì: nó không thuộc sở hữu củabấ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 nhaunhư: Ethernet, Tokenring, FDDI, X25, ATM (Trong phạm vi đề tài ta chỉ xéttới Ethernet)
- TCP/IP dùng địa chỉ IP để định danh các host trên mạng tạo ra mộtmạ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ườidùng
1.1.5 So sánh giữa mô hình OSI và TCP/IP.
Trang 21Do 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ậtdù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ấynhất là số lượng của các tầng Trong khi bộ giao thức TCP/IP có 4 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ìnhdiễn Nhiều so sánh đã gộp 2 tầng này vào tầng ứng dụng trong bộ giao thứcTCP/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:
Hình 1.3: Tương ứng các tầng giữa TCP/IP và OSI.
So sánh hai mô hình trên ta có thể rút ra một số điểm như sau:
- 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 toend
- 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 –
Trang 22destination 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âydự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ớimục đích học tập và giảng dạy
1.2 TÌM HIỂU VỀ MÔ HÌNH TCP/IP
1.2.1 Cấu trúc phân tầng của mô hình TCP/IP.
Để cho phép các máy tính trao đổi dữ liệu với nhau TCP/IP[3] sử dụng
mô hình truyền thông 4 tầng hay còn gọi là mô hình mạng DoD (Department
of Defense):
- Network Access Layer: tương ứng với tầng Physical và Datalink củaOSI
- Internet Layer: tương ứng với tầng Network của OSI
- Transport Layer: tương ứng với tầng Transport của OSI
- Application Layer: tương ứng với 3 tầng cao nhất (Session,Presentation, Application) trong OSI
Mỗi giao thức của TCP/IP đều thuộc một trong các tầng ở trên Nhữngtầng trên gần với người sử dụng hơn, còn những tầng dưới gần với thiết bịtruyền thông dữ liệu Mỗi tầng có các giao thức để phục vụ tầng trên nó, vàcác giao thức để sử dụng dịch vụ của tầng dưới nó (ngoại trừ giao thức củatầng đỉnh và tầng đáy)
Trang 23Hình 1.4: Mô hình TCP/IP và các giao thức trong từng tầng.
Các giao thức chính hoạt động ở tầng Application:
- FTP (File transfer Protocol): Giao thức truyền file, cho phép người
dùng gửi hoặc nhận các file dữ liệu từ máy này tới máy khác thông qua mạng
- Telnet: Giao thức cho phép mô phỏng thiết bị đầu cuối giúp người dùng
đăng nhập vào máy chủ từ một máy khác trên mạng
- SMTP (Simple Mail Transfer Protocol): Một giao thức để gửi và nhận
thư
- DHCP (Dynamic Host Configuration Protocol): Giao thức cấu hình địa
chỉ IP động cho các host
- DNS (Domain Name System): Dịch vụ tên miền cho phép truy cập một
máy tính bằng tên tên miền của nó thay vì địa chỉ IP khó nhớ
- SNMP (Simple Network Management Protocol): Giao thức quản lý
mạng đơn giản
- HTTP (HyperText Transfer Protocol): Giao thức truyền tải siêu văn
bản) là một trong năm giao thức chuẩn về mạng Internet, được dùng để liên
hệ thông tin giữa Máy cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ(Web client) là giao thức Client/Server dùng cho World Wide Web-WWWCác giao thức chính hoạt động ở tầng Transport:
Trang 24- UDP (User Datagram Protocol): Giao thức truyền không tin cậy nhưng
có ưu điểm của nó là nhanh và tiết kiệm
- TCP (Transmission Control Protocol): Cung cấp một phương thức
truyền tin cậy
Các giao thức chính hoạt động ở tầng Internet:
- IP (Internet Protocol): Giao thức Internet, cung cấp các thông tin để
làm sao các gói tin có thể đến được đích
- ARP (Address Resolution Protocol): Giao thức này có chức năng biên
dịch địa chỉ IP của máy đích thành địa chỉ MAC
- ICMP (Internet Control Message Protocol): Một giao thức thông báo
lỗi xảy ra trên đường truyền
- IGMP (Internet Group Management Protocol): Giao thức cung cấp
chức năng điều khiển truyền dẫn đa hướng (multicast)
Các công nghệ thường gặp ở tầng Network access: Ethernet, TokenRing, Token Bus, Fiber
1.2.2 Quá trình truyền nhận dữ liệu trong TCP/IP.
Truyền thông trên mạng là một thủ tục phức tạp bao gồm một loạt cáctiến trình TCP/IP truyền dữ liệu qua mạng bằng cách chia nhỏ dữ liệu thànhcác khối gọi là các gói tin (packet) Tên của các gói này sẽ thay đổi theo từnggiao thức Truyền một lượng dữ liệu lớn tương đương với một gói lớn quamạng sẽ mất khá nhiều thời gian, làm giảm đáng kể hiệu suất mạng hoặc gâytắc nghẽn toàn mạng do vậy cần chia dữ liệu thành các gói nhỏ để chúng cóthể dễ dàng di chuyển trên mạng điều này tránh được tắc nghẽn mạng và chophép các máy khác cũng có thể truyền dữ liệu, nếu một gói bị hỏng thì chỉ cầntruyền lại gói đó chứ không cần truyền lại toàn bộ dữ liệu
Khi gói được chuyển từ trên xuống qua các tầng thì giao thức tại mỗitầng thêm vào các gói thông tin riêng, thông tin riêng này được gọi là cácheader
Trong giao thức TCP đơn vị dữ liệu được gọi là các phân đoạn(segment), nó chứa header của giao thức TCP và dữ liệu ứng dụng
Trang 25Trong các giao thức không tin cậy như ICMP, UDP, IGMP, ARP đơn vịtruyền được gọi là các thông báo (message), nó gồm phần header và dữ liệuứng dụng hoặc dữ liệu giao thức.
Trong giao thức IP đơn vị truyền được gọi là gói dữ liệu (ip datagram),
nó gồm phần header và dữ liệu từ tầng Transport
Ở tầng Network access đơn vị dữ liệu được gọi là khung (frame), nógồm header và dữ liệu từ tầng Internet
Hình 1.5: Đường đi của các gói tin trong môi trường mạng.
1.2.3 Sơ lược chức năng từng tầng trong mô hình TCP/IP.
1.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 baogồ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 quamột chồng giao thức TCP/IP Các chương trình ứng dụng tương tác với mộttrong các giao thức của tầng giao vận để truyền hoặc nhận dữ liệu Mỗichương trình ứng dụng lựa chọn một kiểu giao thức thích hợp cho công việc
Trang 26của nó Chương trình ứng dụng chuyển dữ liệu theo mẫu mà tầng giao vậnyêu cầu.
1.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 tingiữ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ũngcung 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ạicá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óitin 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ỗipacket 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
1.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 TCPhay 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 datagramtớ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ậtchọn đường đẻ quyết định là datagram sẽ được xử lý cục bộ hay là sẽ đượcchuyển đi tiếp Đối với các datagrams có địa chỉ đích cục bộ, thì phần mềmtầng mạng sẽ xoá phần header của các datagram đó, và chọn trong số các giaothức tầng giao vận một giao thức thích hợp để xử lý packet
1.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ệcchấp nhận các datagram của tầng trên (ví dụ IP datagram) và việc truyền phátchúng trên một mạng xác định Theo quan điểm hiện nay mô hình TCP/IPkhô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ôngcò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
Trang 271.2.4 Các giao thức chính trong mô hình TCP/IP và khuôn dạng dữ liệu tương ứng.
1.2.4.1 Ethernet.
Là giao thức nằm trong tầng liên kết hay một chuẩn công nghệ dành chomạng cục bộ (LAN) được quy định trong IEEE 802.3 Nó là một giao thứcnằm trong tầng liên kết của bộ giao thức TCP/IP hay tương ứng là tầng liênkết dữ liệu trong mô hình OSI Hiện nay nó đang được sử dụng rất rộng rãi sovới các giao thức khác như FDDI, Token Ring…Ethernet được dùng để gửinhững khối dữ liệu giữa điểm nguồn và điểm đích được xác định dựa vào địachỉ MAC (Media Access Control)
Cấu trúc của một đơn vị dữ liệu trong giao thức Ethernet (gọi là Ethernetframe) như sau: (đơn vị tính theo byte)
Hình 1.6: Cấu trúc của Ethernet frame.
- Preamble (PRE): Phần mở đầu gồm 7 byte và không được tính vào kíchthướ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
- SOF (Start frame delimiter): gồm 1 byte và không được tính vào kíchthước của Ethernet Byte này có giá trị 101010111 và được sử dụng để đánhdấ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
- DA (Destination Address): có độ dài 6 byte là địa chỉ nơi MAC củaEthernet card nơi đến Ở chế độ hoạt động bình thường Ethernet chỉ tiếp nhấnnhững frame có địa chỉ nơi đến trùng với địa chỉ (duy nhất) của nó hoặc địachỉ nơi đến thể hiện một thông điệp quảng bá Tuy nhiên hầu hết các Ethernetcard 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
- SA (Source Addresss): có độ dài 6 byte là địa chỉ MAC của cardnguồn
Trang 28- Length/Type (Độ dài/Loại): 2 byte chỉ ra độ dài (đối với IEEE 802.3MAC frame) và loại của Ethernet frame chỉ giao thức của tầng cao hơn (đốivới DIX Ethernet.(DEC- Intel – Xerox) – phổ biến hơn) Ví dụ như với DIXEthernet 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, dovậ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ộtmứ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êmtrọng)
1.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 địachỉ tầng mạng khác ARP được sử dung không chỉ để chuyển đổi địa chỉ đốivới IP và Ethernet mà nó được cài đặt để làm việc với nhiều loại địa chỉ củacá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 địachỉ MAC Nó cũng được sử dụng đối với IP dựa trên các công nghệ LANkhá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
Trang 29đị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:
Operation (OPER)
64 Sender hardware address (SHA) (first 32 bits)
96 Sender hardware address (SHA)
160 Target hardware address (THA) (last 32 bits)
Hình 1.7: Cấu trúc tổng quát của gói tin ARP.
- Hardware type (2 bytes): Quy định kiểu phần cứng của mạng
- Protocol type (2 bytes): Quy định giao thức được dùng ở tầng Network
- Hardware length (1 byte): Độ dài của địa chỉ vật lý
- Protocol length (1 byte): Độ dài của địa chỉ logic
- Operation (2 bytes): cho biết bản tin ARP là yêu cầu (=1) hoặc trả lời(=2)
- Sender hardware address (6 bytes): Địa chỉ MAC máy gửi
- Sender protocol address (4 bytes): Địa chỉ IP máy gửi
- Target hardware address (6 bytes): Địa chỉ MAC máy gửi
- Target protocol address (4 bytes): Địa chỉ IP máy nhận
1.2.4.3 RARP (Reserve Address Resolution Protocol).
Trang 30Là 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
1.2.4.4 IP (Internet Protocol).
Giao thức IP là một giao thức trung tâm của bộ giao thức TCP/IP IP làmột giao thức hướng dữ liệu được sử dụng trong mạng chuyển mạch IP hoạtđộng theo phương thức connectionless và truyền dữ liệu không đảm bảo tincậy (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 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
Giao thức IP sẽ bổ sung phần header vào trước segment được gửi từ tầnggiao vận xuống và gói tin trong giao thức IP được gọi là IP Datagram
Cấu trúc của IP Datagram như sau:
Source IP AddressDestination IP Address
Data
…
Trang 31Hình 1.8: Cấu trúc gói tin IP Datagram.
- VER (4 bits): Cho biết version hiện hành của giao thức IP
- HLEN (4 bits): Cho biết kích thước của header tính bằng đơn vị word(4 bytes)
- Service of type (8 bits): mô tả thứ tự ưu tiên của các gói tin Thứ tự ưu
tiên đó như sau:
0 1 2 3 4 5 6 7
+ Precedence (3 bits đầu): xác định 8 mức độ ưu tiên
+ Bit D (bit 3): yêu cầu chuyển gấp
+ Bit T (bit 4): yêu cầu truyền ở đường truyền có thông lượng tốt + Bit R (bit 5): yêu cầu truyền bảo đảm
+ Bit 2: Datagram hoàn chỉnh = 0, là Fragment = 1
+ Bit 3: Fragment thường = 0, là Fragment cuối cùng = 1
- Fragment Offset (13 bits): Xác đinh vị trí tương đối theo bội số 8 củaphần dữ liệu của Fragment trong IP Datagram nguyên thủy ban đầu, giúpghép các Fragment lại thành gói tin hoàn chỉnh có nghĩa là phần dữ liệu mỗigói tin (trừ gói tin cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội sốcủa 8 bytes
Trang 32- Time to live (8 bits): Xác định thời gian tồn tại của IP Datagram ở trênmạng, tính bằng số lần đi qua các ruoter.
- Protocol (8 bits): Xác định giao thức ở tầng bên trên
- Header Checksum (16 bits): Là phần mã kiểm tra gói tin IP Datagram
có bị lỗi hay không
- Source IP Address (32 bits): Địa chỉ IP nguồn
- Destination IP Address (32 bits): Địa chỉ IP đích
- IP Option (24 bits): Phần các tùy chọn dùng cho mục đích đặc biệt.Khai báo các tuỳ chọn do nơi gửi yêu cầu Trường option không bắt buộc phải
có trong mọi gói IP datagram và chủ yếu dùng để kiểm tra lỗi trên mạng.Option là một phần quan trọng của giao thức IP nên mọi tiêu chuẩn thực hiệndựa trên IP phải bao gồm tiến trình xử lý trường này Độ dài của trườngOption thay đổi tuỳ thuộc vào các tham số đi kèm Khi các Option xuất hiệntrong datagram, nó sẽ kéo dài liên tục mà không có sự ngắt quãng
- Padding (8 bits): Chứa các bit 0
1.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ôngmong 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ếucủa bộ giao thức TCP/IP, tuy nhiên nó không phải giao thức dùng để truyềntải dữ liệu nên thường được coi nằm trong tầng Internetmà không phải là tầnggiao vận
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ếtnối giữ hai trạm Điều này được thiết lập bởi câu lệnh PING (Packet internetgropher)
- Địch hướng lại lưu lượng để cung cấp việc dẫn đường hiệu quả hơn khimột bộ dẫn đường quá tải dõ lưu lượng qua nó quá lớn
Trang 33- Gửi thông báo về thời gian quá khi datagram của trạm nguồn đã vượtquá 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 đườngtrê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
Cấu trúc của gói tin ICMP như sau:
Data
Hình 1.9: Cấu trúc tổng quát của gói tin ICMP.
- Type (1 byte): Xác định kiểu của thông điệp ICMP
- Code (1 byte): Xác định loại thông điệp ICMP
- Checksum (2 bytes): Mã kiểm tra tính đúng đắn của gói tin ICMP
- Identifier (2 bytes): Mã số của gói tin ICMP Nếu chỉ gửi đi 1 gói tin ICMP thì trường này có thể bỏ qua
- Sequence number (2 bytes): Số thứ tự của gói tin ICMP
unreachable
Đích không đến được
0 Network unreachable Mạng không đến được
1 Host unreachable Host không đến được
2 Protocol unreachable Host không hỗ trợ giao thức mà
bên gửi dùng
Trang 343 Port unreachable Không thể thiết lập kết nối với
5 Source route failed Không thể định tuyến cho gói tin
5
Redirect Gửi lại (chọn tuyến đường khác)
0 Redirect datagrams for
the network
Gửi lại gói tin cho mạng
1 Redirect datagrams for
the host
Gửi lại gói tin cho host
11 Redirect datagrams for
the type of service andnework
Gửi lại gói tin cho ToS và mạng
12 Redirect datagrams for
the type of service andhost
Gửi lại gói tin cho ToS và host
11
Time exceeded Time exceeded
0 Time to Live exceeded
Trang 3515 Information request Information request
Bảng 1.1: Chi tiết kiểu và loại gói tin ICMP.
1.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 theophương thức có kết nối (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ònggồm các byte 8 bit tới TCP để gửi qua mạng TCP sẽ phân chia các dòng nàythành các đoạn (segment) có kích thước thích hợp (thường dựa theo kíchthướ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áytính đang nằm trong đó) Sau đó TCP chuyển các gói tin thu được xuống tầngdưới 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 bao gồm 2 phần: Header vàData, được miêu tả dưới hình sau:
Sequence NumberAcknownledgement Number
Data
…
Trang 36Hình 1.10: Cấu trúc gói tin trong giao thức TCP.
- Source Port (16 bits): Số hiệu cổng dịch vụ máy nguồn
- Destination Porf (16 bits): Số hiệu cổng dịch vụ máy đích
- Sequence Number (32 bits): Số thứ tự gói tin được tạo ngẫu nhiên
- Acknownledgement Number (32 bits): Số báo thu, mã hiệu gói tin màđầu nhận đang chờ nhận
- HLEN (4 bits): Xác định kích thước của phần header
- Reserverd (6 bits): Dự phòng
- Code Bits (6 bits): Xác định chi tiết kiểu segment
+ URG: Thông báo đây là gói tin khẩn cấp cần gửi đi ngay
+ ACK: Để báo đây là 1 segment ACK
+ PSH: Để thông báo gói tin ở trạng thái đang được gủi đi
+ RST: Thiết lập lại đường truyền
+ SYN: Để bắt tay thiết lập chế độ đồng bộ
+ FIN: Báo kết thúc kết nối, giải phóng các vùng nhớ đệm
- Window (16 bits): Kích thước cửa sổ trượt
- Checksum (16 bits): Mã sửa sai
- Urgent Pointer (16 bits): Là Sequence Number dịch trái nếu cờ URGđược bật
- Options: Tùy chọn (nếu có)
- Padding (8 bits): Chứa các bit 0
1.2.4.7 UDP (User Datagram Protocol).
Đây là một giao thức không kết nối Khác với TCP, UDP không có cácchức năng thiết lập và giải phóng kết nối 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ìnhtrạ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
Trang 37Tóm lại nó cung cấp các dịch vụ giao vận không tin cậy Do ít chức năngphứ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:
Data (if any)
Hình 1.11: Cấu trúc gói tin trong giao thức UDP.
- Source Port (16 bits): Số hiệu cổng nơi gửi
- Destination Port (16 bits): Số hiệu cổng nơi nhận
- Length (16 bits): Độ dài của UDP Datagram tính theo bytes
- Checksum (16 bits): Mã sửa sai, dùng để máy đích kiểm tra rằng UDPDatagram được giữ nguyên vẹn trên đường đi
Tóm lược
Nội dung của chương này đã khái quát toàn bộ cở sở lý thuyết cơ bảncủa hệ thống mạng máy tính, các kiến thức cơ bản về mô hình OSI, mô hìnhTCP/IP, sự khác nhau và mối liên hệ giữa chúng Ngoài ra, trong chương này
em còn đi sâu vào việc giới thiệu chi tiết bộ giao thức TCP/IP, các giao thứcchính và khuôn dạng dữ liệu của chúng
Những kiến thức trên đây là những kiến thức nền tảng cơ bản và cầnthiết để tiếp tục đi sâu vào nội dung của chương sau
Trang 39Packet capture gồm có:
- Deep Packet Capture (DPC): là hành động chặn bắt toàn bộ các gói tintrê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
- Deep Packet Inspection (DPI): là quá trình kiểm tra, đánh giá để tìm ranguyê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
- 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ầnlư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
2.1.4 Packet Analyzer (Sniffer).
Là phần mềm hoặc phần cứng máy tính được gắn vào trong một mạngmáy tính để có thể theo dõi thông tin lưu chuyển (network traffic) trên mộtmạng hay một phần của mạng Sniffer sẽ có nhiệm vụ chặn bắt các gói tin,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ácnhau
2.2 ỨNG DỤNG CỦA VIỆC CHẶN BẮT GÓI TIN
2.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ụnghub hay switch) ta có thể chặn bắt toàn bộ hay một phần các thông tin trênmạ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 spoofing
Trang 40Đối với mạng LAN không dây thì các gói tin được chặn bắt trên cáckênh riêng biệt.
Để một máy có thể chặn bắt thông tin trong mạng của nó, networkadapter phải được đặt ở promiscuous mode (network adapter ở chế độ Promiscuous sẽ lấy tất cả các packet trên đường truyền, bất kể packet đó cóphải dành cho nó hay không)
2.2.2 Mục đích của việc chặn bắt gói tin.
Các chương trình chặn bắt gói tin thường có 2 dạng chính:
- Dùng để kiểm tra bảo trì mạng
- Và dạng kia là dùng để xâm nhập mạng
Các chương trình chặn bắt gói tin thường được sử dụng cho các mụcđích như:
- 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ênquan 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ạngphù 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ườidùng khác trên mạng nhằm xâm nhập hệ thống của họ
2.3 CÁC THÀNH PHẦN CHÍNH CỦA MỘT CHƯƠNG TRÌNHCHẶN BẮT GÓI TIN
2.3.1 Thành phần phần cứng.
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ỗicáp