1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng

82 882 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Chương Trình Kiểm Soát Lưu Lượng Thông Tin Trao Đổi Qua Hệ Thống Mạng
Trường học Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận Văn
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 82
Dung lượng 2,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu tham khảo công nghệ thông tin Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng

Trang 1

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

1 Tổng Quan Hệ Thống Mạng TCP/IP Ethernet 5

1.1 Khái niệm mạng máy tính 5

1.2 Kiến trúc phân tầng 6

1.3 Mô hình OSI 9

1.3.1 Khái niệm 9

1.3.2 Mục đích 10

1.4 Phương thức hoạt động 11

1.4.1 Có kết nối (Connection Oriented) 11

1.4.2 Không kết nối (Connectionless) 12

1.5 Bộ giao thức TCP/IP 12

1.5.1 Khái niệm 12

1.5.2 Mục đích và nguồn gốc 13

1.5.3 Đặc điểm 14

1.6 So sánh TCP/IP và OSI 15

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

2.1 Cấu trúc phân tầng của TCP/IP 16

2.2 Đóng gói dữ liệu trong TCP/IP 17

2.3 Sơ lược chức năng các tầng 18

2.3.1 Tầng ứng dụng (Application Layer) 18

2.3.2 Tầng giao vận (Transport Layer) 18

2.3.3 Tầng Internet (Internet Layer) 18

2.3.4 Tầng liên kết (Link Layer) 19

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

2.4.1 Ethernet 19

2.4.2 ARP (address resolution protocol) 21

2.4.3 RARP (reserve address resolution protocol) 22

2.4.4 IP (internet protocol) 23

2.4.5 ICMP (internet control message protocol) 26

2.4.6 TCP (Transmission Control Protocol) 27

2.4.7 UDP (User Datagram Protocol) 29

2.4.8 HTTP (Hypertext Transfer Protocol) 30

2.4.9 DNS (Domain Name System) 31

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

1 Tổng Quan Về Chặn Bắt Gói Tin (Sniffer) 33

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

1.2 Ứng dụng của sniffer 34

1.2.1 Khả năng 34

1.2.2 Mục đích 34

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

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

2.1 Theo dõi Network Traffic 35

2.2 Phân tích Network Traffic 36

Trang 2

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

2.4.2 Ngăn chặn sniffer 40

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

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

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

3.2 Pcap – mức network adapter 42

3.3 So sánh Raw Socket và Pcap 44

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

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

1.1 Winsock 46

1.1.1 Khái niệm 46

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

1.1.3 Loại Socket trong Winsock 47

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

1.2 NET Socket 49

1.2.1 Khái niệm 49

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

1.2.3 Demo 51

1.3 Winpcap 51

1.3.1 Khái niệm 51

1.3.2 Làm việc với Winpcap 52

2 Hướng Thực Hiện Chương Trình 54

2.1 Bắt gói tin 55

2.2 Tách phần header 55

2.3 Phân tích, tổng hợp header 55

2.4 Đưa vào cơ sở dữ liệu 56

2.5 Hiển thị, thống kê và báo cáo 57

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

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

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

2 Phân Tích Xây Dựng Các Chức Năng Chính 62

2.1 Hoạt động tổng quát 62

2.2 Chức năng đo lưu lượng 63

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

2.2.2 Báo cáo thông tin lưu lượng 63

2.3 Bắt gói tin 64

2.4 Các thao tác với File 66

2.5 Giao diện (View) 67

2.6 Thống kê (Statistics) 67

2.6.1 Thống kê tích lũy (Cumulative) 67

2.6.2 Thống kê liên tục (Continous) 68

2.7 Quản lý mạng 68

Trang 3

3.1 Khởi động chương trình 69

3.2 Chức năng báo cáo 70

3.3 Chức năng bắt gói tin 70

3.4 Các thao tác với file 75

3.5 Chức năng di chuyển trên bảng dư liệu 76

3.6 Chức năng thống kê 76

3.6.1 Thống kê tích lũy (Cumulative Statistics) 77

3.6.2 Thống kê liên tục (Continous Statistics) 78

3.7 Ngăn chặn thông tin 79

3.8 Một số tính năng phụ 80

4 Nhược điểm và hướng phát triển 81

4.1 Nhược điểm 81

4.2 Hướng phát triển 82

Kết Luận 84

TÀI LIỆU THAM KHẢO 85

Trang 4

Ngày nay, mạng máy tính đã trở nên quen thuộc với mọi người trong xã hội Cùng với sự phát triển của công nghệ thông tin và nhu cầu của con người, mạng máy tính cũng càng ngày càng mở rộng và trở thành một phần không thể thiếu của đời sống

Tuy nhiên, cùng với sự phát triển của mạng máy tính, rất nhiều vấn đề liên quan cũng được đặt ra đối với người sử dụng như lỗi đường truyền, virus, sự tấn công của hacker Để góp phần giải quyết những vấn đề này thì việc kiểm soát lượng thông tin vào ra mang một ý nghĩa khá quan trọng Chính vì

vậy em lựa chọn thực hiện đồ án tốt nghiệp là “Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng” nhằm mục đích cung

cấp một công cụ hữu ích cho việc kiểm soát và học tập về mạng máy tính Trong thời gian thực tập em xin chân thành cảm ơn các thầy cô giáo trong khoa Công nghệ thông tin trường Đại học Hàng Hải Việt Nam cùng các bạn trong tập thể lớp CNT46-ĐH và đặc biệt thầy Ngô Quốc Vinh đã giúp đỡ em trong quá trình thực hiện đồ án này.

Hải Phòng tháng 12 năm 2009

Sinh viên: Trần Ngọc Việt

Trang 5

CHƯƠNG I CƠ SỞ LÝ THUYẾT MẠNG MÁY TÍNH

Để xây dựng một chương trình quản lý, thống kê, kiểm soát lưu lượng thôngtin, ta cần thực hiện chặn bắt các gói tin vào ra hệ thống mạng cũng như phân tíchcác gói tin thu được (Packet Capture và Packet Analysis) Chương trình như vậythường được gọi là Sniffer (Packet Analyzer) Để xây dựng được sniffer, ta cần cóđược hiểu biết cơ bản về mạng máy tính và các giao thức liên quan Trong phạm vicủa đề tài sẽ được thực hiện trên hệ điều hành Window và sử dụng bộ giao thứcTCP/IP Ethernet nên trong phần này sẽ trình bày những vấn đề cơ bản nhất củamạng Ethernet

1 Tổng Quan Hệ Thống Mạng TCP/IP Ethernet

1.1 Khái niệm mạng máy tính

Từ những năm 1960 đã xuất hiện các mạng nối các máy tính và các Terminal để sửdụng chung nguồn tài nguyên, giảm chi phí khi muốn thông tin trao đổi số liệu và

sử dụng trong công tác văn phòng một cách tiện lợi

Với việc tăng nhanh các máy tính mini và các máy tính cá nhân làm tăng yêu cầutruyền số liệu giưã các máy tính, giữa các terminal, và giữa các terminal với máytính là một trong những động lực thúc đẩy sự ra đời và phát triển ngày càng mạnh

mẽ các mạng máy tính.Quá trình hình thành mạng máy tính có thể tóm tắt qua cácgiai đoạn sau:

Giai đoạn các terminal nối trực tiếp với máy tính:

Đây là giai đoạn đầu tiên của mạng máy tính, để tận dụng công suất của máy tínhngười ta ghép nối các terminal vào một máy tính được gọi là các máy tính trungtâm

Giai đoạn các bộ tiền xử lý (Prontal)

Ở giai đoạn 1 máy tính trung tâm quản lý truyền tin tới các terminal, ở giai đoạn 2má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ềukhiển đường truyền Ta có thể thay thế bộ ghép nối đường truyền bằng các máy tínhnini gọi là prontal, đó chính là bộ tiền xử lý

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

Trang 6

Vào những năm 1970 người ta bắt đầu xây dựng mạng truyền thông trong đó cácthành phần chính của nó là các nút mạng gọi là bộ chuyển mạch dùng để hướngthô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 tincủa người dùng hoặc các trạm cuối được nối trực tiếp vào các nút mạng để khi cầnthì trao đổi thông tin qua mạng Các nút mạng thương là máy tính nên đồng thờiđóng vai trò của người sử dụng

Chức năng của nút mạng:

 Quản lý truyền tin, quản lý mạng

Như vậy các máy tính ghép nối với nhau hình thành mạng máy tính, ở đây ta thấymạng truyền thông cũng ghép nối các máy tính với nhau nên khái niệm mạng maýtính và mạng truyền thông có thể không phân biệt

Việc hình thành mạng máy tính nhằm đạt các mục đích sau:

 Tận dụng và làm tăng giá trị của tài nguyên

 Chinh phục khoảng cách

 Tăng chất lượng và hiệu quả khai thác và xử lý thông tin

 Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra sự cố đối vớimột máy tính nào đó

Như vậy: Mạng máy tính là tập hợp các máy tính được ghép với nhau bởi cácđường truyền vật lý theo một kiến trúc nào đó

1.2 Kiến trúc phân tầng

Để giảm độ phức tạp trong thiết kế và cài đặt mạng, các mạng máy tính được tổchức thiết kế theo kiểu phân tầng (layering) Trong hệ thống thành phần của mạngđược tổ chức thành một cấu trúc đa tầng, mỗi tầng được xây dựng trên tầng trướcđó; mỗi tầng sẽ cung cấp một số dịch vụ cho tầng cao hơn Số lượng các tầng cũngnhư 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ầngcủa mạng SNA của IBM, mạng DECnet của Digital, mạng ARPANET là có sựkhác nhau Nguyên tắc cấu trúc của mạng phân tầng là: mỗi hệ thống trong mộtmạng đều có cấu trúc phân tầng (Số lượng tầng, chức năng của mỗi tầng là như

Trang 7

nhau) Mục đích của mỗi tầng là để cung cấp một số dịch vụ nhất định cho tầng caohơn.

Tầng i của hệ thống A sẽ hội thoại với tầng i của hệ thống B, các quy tắc và quyước dùng trong hội thoại gọi là giao thức mức I

Giữa hai tầng kề nhau tồn tại một giao diện (interface) xác định các thao tác nguyênthuỷ của tầng dưới cung cấp lên tầng trên

Trong thực tế dữ liệu không truyền trực tiếp từ tầng i của hệ thống này sang tầng icủa hệ thống khác ( trừ tầng thấp nhất trực tiếp sử dụng đường truyền vật lý đểtruyền các xâu bít (0.1) từ hệ thống này sang hệ thống khác ).Dữ liệu được truyền từ

hệ thống gửi (sender) sang hệ thống nhận (receiver) bằng đường truyền vật lý và cứnhư vậy dữ liệu lại đi ngược lên các tầng trên Như vậy khi hai hệ thống liên kết vớinhau, chỉ tầng thấp nhất mới có liên kết vật lý còn ở tầng cao hơn chỉ có liên kếtlogic (liên kết ảo ) được đưa vào để hình thức hoá các hoạt động của mạng thuậntiện cho việc thiết kế và cài đặt các phần mềm truyền thông Như vậy để viếtchương trình cho tầng N, phải biết tầng N+1 cần gì và tầng N -1 có thể làm được gì

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

Trang 8

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ới nhau, vàcác tầng sử dụng các loại công nghệ khác nhau cũng được tách biệt

 Các chức năng giống nhau được đặt vào cùng một tầng

 Chọn ranh giới các tầng theo kinh nghiệm đã được chứng tỏ là thành công

 Các chức năng được định vị sao cho có thể thiết kế lại tầng mà ảnh hưởng ítnhất đến các tầng kế nó

 Tạo ranh giới giữa các tầng sao cho có thể chuẩn hóa giao diện tương ứng

 Tạo một tầng khi dữ liệu được xử lý một cách khác biệt

 Cho phép thay đổi chức năng hoặc giao thức trong một tầng không làm ảnhhưởng đến các tầng khác

 Mỗi tầng chỉ có các ranh giới (giao diện) với các tầng kề trên và kề dưới nó

 Có thể chia một tầng thành các tầng con khi cần thiết

 Tạo tầng con để cho phép giao diện với các tầng kế cận

 Cho phép hủy bỏ các tầng con nếu thấy không cần thiết

1.3 Mô hình OSI

1.3.1 Khái niệm

Do các nhà thiết kế tự do lựa chọn kiến trúc mạng riêng của mình Từ đó dẫn đếntình trạng không tương thích giữa các mạng về: Phương pháp truy nhập đườngtruyền khác nhau, họ giao thức khác nhau sự không tương thích đó làm trở ngạicho quá trình tương tác giữa người dùng ở các mạng khác nhau Nhu cầu trao đổithông tin càng lớn thì trở ngại đó càng không thể chấp nhận được với người sử

Trang 9

dụng Với lý do đó tổ chức chuẩn hoá quốc tế ISO đã thành lập một tiểu ban nhằmxây dựng một khung chuẩn về kiến trúc mạng để làm căn cứ cho các nhà thiết kế vàchế tạo các sản phẩm mạng Kết quả là năm 1984 ISO đã đưa ra mô hình thamchiếu cho việc kết nối các hệ thống mở ( Reference Model for Open System Inter -connection) hay gọn hơn là OSI Reference model Mô hình này được dùng làm cơ

là được cài đặt trong phần cứng, còn những tầng khác được cài đặt trong phần mềm

Mô hình OSI này chỉ được ngành công nghiệp mạng và công nghệ thông tin tôntrọng một cách tương đối Tính năng chính của nó là quy định về giao diện giữa cáctầng cấp, tức qui định đặc tả về phương pháp các tầng liên lạc với nhau Điều này

Trang 10

có nghĩa là cho dù các tầng cấp được soạn thảo và thiết kế bởi các nhà sản xuất,hoặc công ty, khác nhau nhưng khi được lắp ráp lại, chúng sẽ làm việc một cáchdung hòa (với giả thiết là các đặc tả được thấu đáo một cách đúng đắn

Thường thì những phần thực thi của giao thức sẽ được sắp xếp theo tầng cấp, tương

tự như đặc tả của giao thức đề ra, song bên cạnh đó, có những trường hợp ngoại lệ,còn được gọi là "đường cắt ngắn" (fast path) Trong kiến tạo "đường cắt ngắn", cácgiao dịch thông dụng nhất, mà hệ thống cho phép, được cài đặt như một thành phầnđơn, trong đó tính năng của nhiều tầng được gộp lại làm một

Việc phân chia hợp lý các chức năng của giao thức khiến việc suy xét về chức năng

và hoạt động của các chồng giao thức dễ dàng hơn, từ đó tạo điều kiện cho việcthiết kế các chồng giao thức tỉ mỉ, chi tiết, song có độ tin cậy cao Mỗi tầng cấp thihành và cung cấp các dịch vụ cho tầng ngay trên nó, đồng thời đòi hỏi dịch vụ củatầng ngay dưới nó Như đã nói ở trên, một thực thi bao gồm nhiều tầng cấp trong

mô hình OSI, thường được gọi là một "chồng giao thức"

1.4 Phương thức hoạt động

Ở mỗi tầng mô hình trong tầng ISO, có hai phương thức hoạt động chính được ápdụng đó là: phương thức hoạt động có liên kết (connection-oriented) và không cóliên kết (connectionless)

Với phương thức có liên kết, trước khi truyền dữ liệu cần thiết phải thiết lập mộtliên kết logic giữa các thực thể cùng tầng Còn với phương thức không liên kết thìkhông cần lập liên kết logic và mỗi đơn vị dữ liệu được truyền là độc lập với cácđơn vị dữ liệu trước hoặc sau nó

1.4.1 Có kết nối (Connection Oriented)

Với phương thức có kết nối, quá trình truyền dữ liệu phải trải qua ba giai đoạn theothứ tự thời gian

 Thiết lập kết nối: hai thực thể đồng mức ở hai hệ thống thương lượng vớinhau về tập các tham số sẽ được sử dụng trong giai đoạn sau

 Truyền dữ liệu: dữ liệu được truyền với các cơ chế kiểm soát và quản lý

 Huỷ bỏ kết nối (logic): giải phóng các tài nguyên hệ thống đã cấp phát choliên kết để dùng cho các liên kết khác

Trang 11

Tương ứng với ba giai đoạn trao đổi, ba thủ tục cơ bản được sử dụng, chẳng hạn đốivới tầng N có: N-CONNECT ( thiết lập liên kết ), N-DATA(Truyền dữ liệu ), và N-DISCONNECT (Huỷ bỏ kết nối) Ngoài ra còn một số thủ tục phụ được sử dụngtuỳ theo đặc điểm, chức năng của mỗi tầng Ví dụ:

 Thủ tục N-RESTART được sử dụng để khởi động lại hệ thống ở tầng 3

 Thủ tục T-EXPEDITED DATA cho việc truyền dữ liệu nhanh ở tầng 4

 Thủ tục S-TOKEN GIVE để chuyển điều khiển ở tầng 5

Mỗi thủ tục trên sẽ dùng các hàm nguyên thuỷ (Request, Indication, Response, firm) để cấu thành các hàm cơ bản của giao thức ISO

Con-1.4.2 Không kết nối (Connectionless)

Đối với phương thức không kết nối thì chỉ có duy nhất một giai đoạn đó là: truyền

dữ liệu

So sánh hai phương thức hoạt động trên chúng ta thấy rằng phương thức hoạt động

có kết nối cho phép truyền dữ liệu tin cậy, do đó có cơ chế kiểm soát và quản lýchặt chẽ từng kết nối logic Nhưng mặt khác nó phức tạp và khó cài đặt Ngược lại,phương thức không kết nối cho phép các PDU (Protocol Data Unit) được truyềntheo nhiều đường khác nhau để đi đến đích, thích nghi với sự thay đổi trạng thái củamạng, song lại trả giá bởi sự khó khăn gặp phải khi tập hợp các PDU để di chuyểntới người sử dụng

Hai tầng kề nhau có thể không nhất thiết phải sử dụng cùng một phương thức hoạtđộng mà có thể dùng hai phương thức khác nhau

Trang 12

1.5.1 Khái niệm

Bộ giao thức TCP/IP, ngắn gọn là TCP/IP (tiếng Anh: Internet protocol suite hoặc

IP suite hoặc TCP/IP protocol suite - bộ giao thức liên mạng), là một bộ các giaothức truyền thông cài đặt chồng giao thức mà Internet và hầu hết các mạng máy tínhthương mại đang chạy trên đó Bộ giao thức này được đặt tên theo hai giao thứcchính của nó là TCP (Giao thức Điều khiển Giao vận) và IP (Giao thức Liên mạng).Chúng cũng là hai giao thức đầu tiên được định nghĩa

Như nhiều bộ giao thức khác, bộ giao thức TCP/IP có thể được coi là một tập hợpcác tầng, mỗi tầng giải quyết một tập các vấn đề có liên quan đến việc truyền dữliệu, và cung cấp cho các giao thức tầng cấp trên một dịch vụ được định nghĩa rõràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn Về mặt lôgic, cáctầng trên gần với người dùng hơn và làm việc với dữ liệu trừu tượng hơn, chúngdựa vào các giao thức tầng cấp dưới để biến đổi dữ liệu thành các dạng mà cuốicùng có thể được truyền đi một cách vật lý

cơ quan là không có giới hạn Vì vậy nhu cầu cần kết nối các mạng khác nhau củacác tổ chức khác nhau để trao đổi thông tin là thực sự cần thiết Nhưng thật khôngmay là hầu hết các mạng của các công ty, các cơ quan đều là các thực thể độc lập,được thiết lập để phục vụ nhu cầu trao đổi thông tin của bản thân các tổ chức đó.Các mạng này có thể được xây dựng từ những kĩ thuật phần cứng khác nhau để phùhợp với những vấn đề giao tiếp thông tin của riêng họ Điều này chính là một cảntrở cho việc xây dựng một mạng chung, bởi vì sẽ không có một kĩ thuật phần cứngriêng nào đủ đáp ứng cho việc xây dựng một mạng chung thoả mãn nhu cầu người

sử dụng Người sử dụng cần một mạng tốc độ cao để nối các máy, nhưng nhữngmạng như vậy không thể được mở rộng trên những khoảng cách lớn Nhu cầu vềmột kỹ thuật mới mà có thể kết nối được nhiều mạng vật lý có cấu trúc khác hẳn

Trang 13

nhau là thật sự cần thiết Nhận thức được điều đó, trong quá trình phát triển mạngARPANET của mình, tổ chức ARPA ( Advanced Research Projects Agency) đã tậptrung nghiên cứu nhằm đưa ra một kỹ thuật thoả mãn những yêu cầu trên Kỹ thuậtARPA bao gồm một thiết lập của các chuẩn mạng xác định rõ những chi tiết củaviệc làm thế nào để các máy tính có thể truyền thông với nhau cũng như một sựthiết lập các quy ước cho kết nối mạng, lưu thông và chọn đường Kỹ thuật đó đượcphát triển đầy đủ và được đưa ra với tên gọi chính xác là TCP/IP Iternet ProtocolSuit và thường được gọi tắt là TCP/IP Dùng TCT/IP người ta có thể kết nối đượctất cả các mạng bên trong công ty của họ hoặc có thể kết nối giữa các mạng của cáccông ty, các tổ chức khác nhau với nhau.

Bộ giao thức TCP/IP gồm nhiều giao thức được phần làm 4 tầng như sau:

Các tầng trong bộ giao thức TCP/IP

1.5.3 Đặc điểm

 Là bộ giao thức chuẩn mở và sẵn có, vì: nó không thuộc sở hữu của bất cứmột tổ chức nào; các đặc tả thì sẵn có và rộng rãi Vì vậy bất kì ai cũng cóthể xây dựng phần mềm truyền thông qua mạng máy tính dựa trên nó

 TCP/IP độc lập với phần cứng mạng vật lý, điều này cho phép TCP/IP có thểđược dùng để kết nối nhiều loại mạng có kiến trúc vật lý khác nhau như: Eth-ernet, Tokenring, FDDI, X25, ATM (Trong phạm vi đề tài ta chỉ xét tớiEthernet)

Trang 14

 TCP/IP dùng địa chỉ IP để định danh các host trên mạng tạo ra một mạng ảothống nhất khi kết nối mạng.

 Các giao thức lớp cao được chuẩn hoá thích hợp và sẵn có với người dùng

1.6 So sánh TCP/IP và OSI

Do nhiều nguyên nhân như lịch sử, chi phí… nên bộ giao thức TCP/IP đã được sửdụng rất lâu trước khi mô hình OSI ra đời Cũng do vậy nên mô hình OSI khôngđược sử dung rộng rãi trong thực tế mà là mô hình học thuật dùng để so sánh với

mô hình thực tế là TCP/IP Hai cái có liên quan ít nhiều, song không phải là hoàntoàn giống nhau Điểm khác biệt đầu tiên dễ thấy nhất là số lượng của các tầng cấp.Trong khi bộ giao thức TCP/IP có 4 (hoặc 5 tầng) thì mô hình OSI có tới 7 tầng với

sự khác biệt là 2 tầng mới: tầng phiên và tầng trình diễn Nhiều so sánh đã gộp 2tầng này vào tầng ứng dụng trong bộ giao thức TCP/IP Hình vẽ sau đây so sánh cáctầng tương ứng lẫn nhau giữa OSI và TCP/IP:

Tương ứng các tầng giữa TCP/IP và OSI

 Trong khi mô hình OSI nhấn mạnh độ tin cậy được cung cấp trong dịch vụchuyển dữ liệu thì đối với TCP/IP coi độ tin cậy nằm trong vấn đề end toend

Trang 15

 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ầnggiao vận chỉ làm nhiệm vụ kiểm tra độ tin cậy của source – to – destination.Còn đối với bộ giao thức TCP/IP tầng giao vận làm mọi nhiệm vụ kiểm traphát hiện và sửa lỗi

 Mô hình OSI được xây dựng trước khi các giao thức của nó được xây dựng,

do vậy nó có tính tổng quát cao và có thể được dùng đẻ mô tả các mô hìnhkhác Ngược lại, bộ giao thức TCP/IP chỉ là một mô hình để nhóm và miêu

tả những giao thức sẵn có trong thực tế Vì vậy bộ giao thức TCP/IP được sửdụng rộng rãi trong thực tế trong khi mô hình OSI lại phù hợp với mục đíchhọc tập và giảng dạy

2 Bộ giao thức TCP/IP – Các giao thức và khuôn dạng dữ liệu chính 2.1 Cấu trúc phân tầng của TCP/IP

Như ta đã nói ở phần trên, TCP/IP là mô hình mở để kết nối mạng, Do vậy, nó cũngđược thiết kế theo kiến trúc phân tầng tương tự như mô hình OSI Bộ giao thứcTCP/IP được thiết kế gồm 4 tầng được mô tả theo hình dưới:

Bộ giao thức TCP/IP

Trang 16

2.2 Đóng gói dữ liệu trong TCP/IP

Bộ giao thức TCP/IP dùng sự đóng gói dữ liệu nhằm trừu tượng hóa các giao thức

và dịch vụ, nói cách khác là các giao thức ở tầng cao hơn sử dụng các giao thức ởtầng thấp hơn nhằm đạt được mục đích của mình bằng cách đóng gói dữ liệu giốngnhư ở ví dụ trong hình sau:

Những tầng trên đỉnh gần với người sử dụng hơn, những tầng thấp nhất gần với thiết bịtruyền thông hơn Trong mỗi tầng là một nhóm nhiều giao thức, trong đó có một giao thức

để phục vụ tầng trên của nó và một giao thức sử dụng dịch vụ của tầng dưới của nó (ngoạitrừ tầng đỉnh và tầng đáy) Bảng sau liệt kê một số giao thức của các tầng:

Tầng Giao Thức

Application DNS, TFTP, TLS/SSL, FTP, Gopher, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP,SMPP, SNMP, SSH, Telnet, Echo,

RTP, PNRP, rlogin, ENRPTransport TCP, UDP, DCCP, SCTP, IL, RUDP, RSVP

Internet IP (IPv4, IPv6), ICMP, IGMP, ICMPv6

Link ARP, RARP, OSPF (IPv4/IPv6), IS-IS, NDP

Một số giao thức trên các tầng của TCP/IP

2.3 Sơ lược chức năng các tầng

2.3.1 Tầng ứng dụng (Application Layer)

Đây là tầng cao nhất trong cấu trúc phân lớp của TCP/IP Tầng này bao gồm tất cảcác chuơng trình ứng dụng sử dụng các dịch vụ sẵn có thông qua một chồng giaothức TCP/IP Các chương trình ứng dụng tương tác với một trong các giao thức củatầng giao vận để truyền hoặc nhận dữ liệu Mỗi chương trình ứng dụng lựa chọn

Trang 17

một kiểu giao thức thích hợp cho công việc của nó Chương trình ứng dụng chuyển

dữ liệu theo mẫu mà tầng giao vận yêu cầu

2.3.2 Tầng giao vận (Transport Layer)

Nhiệm vụ trước tiên của tầng giao vận là cung cấp sự giao tiếp thông tin giữa cácchương trình ứng dụng Mỗi sự giao tiếp được gọi là end-to-end Tầng giao vậncũng có thể điều chỉnh lưu lượng luồng thông tin Nó cũng cung cấp một sự vậnchuyể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ầnmềm giao thức hỗ trợ để bên nhận có thể gửi lại các thông báo xác nhận về việc thu

dữ liệu và bên gửi có thể truyền lại các gói tin bị mất hoặc bị lỗi Phần mềm giaothức chia dòng dữ liệu ra thành những đơn vị dữ liệu nhỏ hơn (thường được gọi làcác Packets) và chuyển mỗi packet cùng với địa chỉ đích tới tầng tiếp theo để tiếptục quá trình truyền dẫn

2.3.3 Tầng Internet (Internet Layer)

Tầng mạng xử lý giao tiếp thông tin từ một máy này tới một máy khác Nó chấpnhậ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ủamáy đích mà gói tin sẽ được gửi tới Ví dụ với giao thức TCP hay UDP của tầnggiao vận, nó sẽ bọc gói tin trong một IP Datagram, điền đầy vào trong phần header,

sử dụng giải thuật chọn đường để quyết định là giao phát gói tin trực tiếp hay là gửi

nó tới một Router, và chuyển datagram tới giao diện phối ghép mạng thích hợp choviệ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ủachúng, và sử dụng giải thuật chọn đường đẻ quyết định là datagram sẽ được xử lýcục bộ hay là sẽ được chuyển đi tiếp Đối với các datagrams có địa chỉ đích cục bộ,thì phần mềm tầng mạng sẽ xoá phần header của các datagram đó, và chọn trong sốcác giao thức tầng giao vận một giao thức thích hợp để xử lý packet

2.3.4 Tầng liên kết (Link Layer)

Là tầng thấp nhất của bộ giao thức TCP/IP, chịu trách nhiệm về việc chấp nhận cácdatagram của tầng trên (ví dụ IP datagram) và việc truyền phát chúng trên mộtmạng xác định Theo quan điểm hiện nay mô hình TCP/IP không còn bao gồm cácđặc tả vật lý, nói cách khác tầng liên kết cũng không còn bao gồm vấn đề về phầncứng hay việc truyền tín hiệu vật lý nữa

Trang 18

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

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

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

2.4.1 Ethernet

Là giao thức nằm trong tầng liên kết hay là một chuẩn công nghệ dành cho mạngcục bộ (LAN) được quy định trong IEEE 802.3 Nó là một giao thức nằm trong tầngliên kết của bộ giao thức TCP/IP hay tương ứng là tầng liên kết dữ liệu trong môhình OSI Hiện nay nó đang được sử dụng rất rộng rãi so với các giao thức khácnhư FDDI, Token Ring…Ethernet được dùng để gửi những khối dữ liệu giữa điểmnguồn và điểm đích được xác định dựa vào địa chỉ MAC (Media Access Control).Đặc điểm của giao thức Ethernet

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

PRE SOF DA SA Length/Type Data Payload FCS

Ethernet frameHeader

o Preamble (PRE): Phần mở đầu gồm 7 byte và không được tínhvào kích thước của Ethernet Tất cả các byte trong phần mởđầu này đều có giá trị 10101010 và nó được dùng để đồng bộđồng hồ giữa nơi nhận và gửi frame

o SOF (Start frame delimiter) gồm 1 byte và không được tínhvào kích thước của Ethernet Byte này có giá trị 101010111 vàđược sử dụng để đánh dấu bắt đầu của một frame Đối vớinhững hệ thống Ethernet hiện nay hoạt động ở tốc độ 100Mbps hoặc 1000Mbps không còn cần tới PRE và SOF

o DA (Destination Address) có độ dài 6 byte là địa chỉ nơi MACcủa Ethernet card nơi đến Ở chế độ hoạt động bình thường

Trang 19

Ethernet chỉ tiếp nhấn những frame có địa chỉ nơi đến trùngvới địa chỉ (duy nhất) của nó hoặc địa chỉ nơi đến thể hiện mộtthông điệp quảng bá Tuy nhiên hầu hết các Ethernet card hiệnnay đều có thể được đặt ở chế độ đa hỗn tạp (promiscuousmode) và khi đó nó sẽ nhận tất cả các frame xuất hiện trongmạng LAN.

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

o Length/Type (Độ dài/Loại) 2 byte chỉ ra độ dài (đối với IEEE802.3 MAC frame) và loại của Ethernet frame chỉ giao thứccủa tầng cao hơn (đối với DIX Ethernet.(DEC- Intel – Xerox)– phổ biến hơn) Ví dụ như với DIX Ethernet frame có giaothức tầng trên là IP thì 2 byte này sẽ có giá trị là 0800h và ARP

là 0806h

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

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

Ethernet sử dụng phương thức truy nhập đường truyền CSMA/CD, do vậy nhữngframe lỗi do xảy ra xung đột (collision) trên đường truyền là không thể tránh khỏi.Tuy nhiên, nếu như tỉ lệ những frame lỗi vượt quá một mức nào đó (ví dụ như 1%tổng số frame) có nghĩa là hệ thống mạng đã có vấn đề Những Ethernet frame lỗibao 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)

Trang 20

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 địachỉ vật lý) khi biết địa chỉ tầng Internet (IP) hoặc một vài kiểu địa chỉ tầng mạngkhác ARP được sử dung không chỉ để chuyển đổi địa chỉ đối với IP và Ethernet mà

nó được cài đặt để làm việc với nhiều loại địa chỉ của các tầng các loại mạng khácnhau Tuy nhiên, do sự phổ biến của IPv4 và Ethernet nên ARP chủ yếu được dùng

để chuyển đổi từ địa chỉ IP thành địa chỉ MAC Nó cũng được sử dụng đối với IPdựa trên các công nghệ LAN khác Ethernet như FDDI, Token Ring, IEEE 802.11hay 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áychủ, giao thức ARP sẽ sử dụng bộ đệm ARP (ARP cache) Bộ đệm lưu trữ các địachỉ IP gần nhất đã được phân giải Nếu địa chỉ MAC của địa chỉ IP đích được tìmthấy trong bộ đệm thì địa chỉ này sẽ được sử dụng để truyền thông

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

Bit

offse

t

0 Hardware type (HTYPE) Protocol type (PTYPE)

32 Hardware length (HLEN) Protocol length

(PLEN)

Operation (OPER)

96 Sender hardware address (SHA) Sender protocol address (SPA)

128 Sender protocol address (SPA) Target hardware address (THA)

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

 Hardware type (HTYPE) Mỗi giao thức tầng liên kết (link layer) sẽ đượcgán một số để phân biệt (ví dụ như Ethernet là 1)

 Protocol type (PTYPE) Dùng để phân biệt giao thức tầng Internet, ví dụ nhưvới IP là 0x0800

 Hardware length (HLEN) Độ dài tính theo byte của địa chỉ vật lý Đối vớiEthernet giá trị này là 6

Trang 21

 Protocol length (PLEN) Độ dài tính theo byte của địa chỉ logic Đối với IPgiá trị này là 4

 Operation Xác định hành động mà bên gửi gói tin đang thực hiện: 1 cho quest, 2 cho reply, 3 cho RARP request và 4 cho RARP reply

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

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

 Target hardware address (THA) Địa chỉ vật lý của trạm đích Trường nàyđược để trống đối với gói tin request

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

2.4.3 RARP (reserve address resolution protocol)

Là giao thức ngược lại so với ARP, tìm địa chỉ logic khi biết địa chỉ vật lý Cấu trúccủ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à 4nếu là reply

 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

Trang 22

Giao thức IP sẽ bổ sung phần header vào trước segment được gửi từ tầng giao vậnxuống và đơn vị dữ liệu này trong bộ giao thức TCP/IP được gọi là IP packet nhưhình sau:

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

length

Differentiated

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

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

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

 Internet Header Length (IHL) Chỉ độ dài phần đầu của IP packet, tínhtheo đơn vị từ (word = 32 bit) Độ dài tối thiểu là 5 từ (20 byte)

Differentiated Services (DS): Trước đây còn gọi là Type of Services đặc tả các tham

số dịch vụ, có dạng cụ thể như sau:

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

bit 0 – 2 3 5 5 6 7 Precedenc

e

D T R C Reserve

d

Trang 23

 Precedebce (3 bit): quyền ưu tiên cụ thể là 111 - Network Control, 110 - ternetwork Control, 101 - CRITIC/ECP, 100 - Flash Override, 011 - Flash,

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

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

 T (Throughput) (1 bit): chỉ thông lượng yêu cầu T = 0 thông lượng bìnhthường, 1 nếu thông lượng cao

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

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

 Reserved (1bit) để dành

 Total Length trường 16 bit chỉ độ dài toàn bộ datagram bao gồm cả phầnheader và phần data tính theo byte và có giá trị lớn nhất là 65535 và giá trịnhỏ nhất là 20 byte

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

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

o Reserved: có giá trị 0

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

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

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

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

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

Trang 24

 Time To Live (TTL) (8 bit): quy định thời gian tồn tại (tính bằng giây) củadatagram trong liên mạng để tránh tình trạng một datagram bị lặp vô hạn trênliên mạng Thời gian này được cho bởi trạm gửi và được giảm đi (thườngquy ước là 1 đơn vị) khi datagram đi qua mỗi router của liên mạng.

 Protocol (8 bit): chỉ ra giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ởtrạm đích (hiện tại thường là TCP hoặc UDP được cài đặt trên IP)

 Header Checksum (16 bit): mã kiểm soát lỗi 16 bit theo phương pháp CRS,chỉ dành cho phần header

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

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

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

 Padding (độ dài thay đổi): vùng đệm được dùng để đảm bảo cho phần headerluôn kết thúc ở một mốc 32 bits

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

65535 byte

2.4.5 ICMP (internet control message protocol)

Giao thức ICMP cung cấp cơ chế thông báo lỗi và các tình huống không mongmuốn cũng như điều khiển các thông báo trong bộ giao thức TCP/IP Giao thức nàyđược tạo ra để thông báo các lỗi dẫn đường cho trạm nguồn ICMP phụ thuộc vào

IP để có thể hoạt động và là một phần không thể thiếu của bộ giao thức TCP/IP, tuynhiên nó không phải giao thức dùng để truyền tải dữ liệu nên thường được coi nằmtrong tầng Internet (Internet layer) mà không phải là tầng giao vận (transport layer).Chức năng của ICMP như sau:

 Cung cấp thông báo phản hồi và trả lời để kiểm tra độ tin cậy của kết nối giữhai trạm Điều này được thiết lập bởi câu lệnh PING (Packet internet gro-pher)

Trang 25

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

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

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

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

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

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

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

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

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

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

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

bit 160 – 167 168 – 175 176 – 183 184 – 191

Trang 26

2.4.6 TCP (Transmission Control Protocol)

Giao thức điều khiển truyền TCP là một giao thức hoạt động theo phương thức cóliên kết (connection – oriented) Trong bộ giao thức TCP/IP, nó là giao thức trunggian 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 tincậy và đúng thứ tự Các ứng dụng sẽ gửi các dòng gồm các byte 8 bit tới TCP đểgửi qua mạng TCP sẽ phân chia các dòng này thành các đoạn (segment) có kíchthước thích hợp (thường dựa theo kích thước của đơn vị truyền dẫn tối đa MTU củatầng liên kết của mạng mà máy tính đang nằm trong đó Sau đó TCP chuyển các góitin thu được tới IP để thực hiện chuyển nó qua liên mạng tới modul TCP tại máytính đích Trong quá trình này, nó sẽ có cơ chế bắt tay, điều khiển truyền, đánh sốthứ tự và sửa lỗi để việc truyền dẫn diễn ra đúng đắn và chính xác

Đơn vị dữ liệu của TCP được gọi là segment (đoạn dữ liệu) bao gồm 2 phần:Header và Data, được miêu tả dưới hình sau:

Cấu trúc đơn vị dữ liệu TCPTrong đó:

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

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

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

nó là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN + 1 Nếukhông có cờ SYN thì đây là số hiệu byte đầu tiên của segment

Trang 27

 Acknowledgement number (32 bit): Số hiệu của segment tiếp theo mà trạmnguồn đang chờ để nhận Ngầm ý báo nhận tốt (các) segment mà trạm đích

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

 Data offset (4 bit): Qui định độ dài của phần header (tính theo đơn vị từ 32bit) Phần header có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ (480bit)

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

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

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

o ACK: Cờ cho trường Acknowledgement

o PSH: Hàm Push

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

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

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

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

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

 Urgent pointer (16 bit): Trỏ tới số hiệu tuần tự của byte đi theo sau dữ liệukhẩn, cho phép bên nhận biết được độ dài của vùng dữ liệu khẩn Vùng nàychỉ có hiệu lực khi cờ URG được thiết lập

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

 Padding (độ dài thay đổi): Phần chèn thêm vào header để bảo đảm phầnheader luôn kết thúc ở một mốc 32 bit Phần thêm này gồm toàn số 0

Trang 28

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

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

op-2.4.7 UDP (User Datagram Protocol)

Đây là một giao thức “không liên kết” được sử dụng thay thế trên IP theo yêu cầucủa các ứng dụng Khác với TCP, UDP không có các chức năng thiết lập và giảiphóng liên kết Nó cũng không cung cấp các cơ chế báo nhận, không sắp xếp tuần

tự các đơn vị dữ liệu đến và có thể dẫn tới tình trạng dữ liệu mất hoặc trùng màkhông hề có thông báo lỗi cho người gửi Tóm lại nó cung cấp các dịch vụ giao vậnkhông tin cậy như trong TCP Do ít chức năng phức tạp nên UDP có xu thế hoạtđộng nhanh hơn so với TCP Nó thường được dùng cho các ứng dụng không đòi hỏi

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

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

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

 Length (16 bit): Xác định chiều dài của toàn bộ datagram: phần header và dữliệu Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header

Trang 29

 Checksum (16 bit): Trường checksum 16 bit dùng cho việc kiểm tra lỗi củaphần header và dữ liệu.

2.4.8 HTTP (Hypertext Transfer Protocol)

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

số 80 hỗ trợ Web Trong giao thức này mỗi đối tượng dữ liệu (trang web, ảnh, dio ) được truyền trong những phiên (HTTP session) riêng biệt Phần dữ liệu đượcđưa xuống tầng giao vận và được chuyển thành các TCP packet để gửi cho trạmnhận

au-Để bắt đầu một phiên, client thiết lập kết nối tới server bằng cách gửi một TCPpacket với cờ SYN được bật tới cổng 80 Server gửi trả lại packet đó với cờ ACKđược bật Cuối cùng, client gửi packet với cờ ACK và tiếp tục là request đối tượng

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

Server sẽ phản hồi cho client với mã trạng thái, ví dụ như “200 OK”, “403 biden”, “404 Not Found” Sau đó server sẽ gửi packet đóng kết nối

Forb-2.4.9 DNS (Domain Name System)

Là một giao thức cho phép ánh xạ giữa tên miền và địa chỉ IP và làm việc trên giao thứcUDP của tầng giao vận (hầu hết trên cổng 53) Cấu trúc dữ liệu phần header của DNS mes-sage như sau:

bit 0 – 15 16 17 – 20 21 22 23 24 25 – 27 29 – 31

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

Trong đó:

 ID: Là một trường 16 bits, chứa mã nhận dạng, nó được tạo ra bởi mộtchương trình để thay cho truy vấn Gói tin hồi đáp sẽ dựa vào mã nhận dạngnày để hồi đáp lại Chính vì vậy mà truy vấn và hồi đáp có thể phù hợp vớinhau

Trang 30

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

 Opcode: Là một trường 4 bits, được thiết lập là 0 cho cờ hiệu truy vấn, đượcthiết lập là 1 cho truy vấn ngược, và được thiết lập là 2 cho tình trạng truyvấn

 AA: Là trường 1 bit, nếu gói tin hồi đáp được thiết lập là 1, sau đó nó sẽ điđến một server có thẩm quyền giải quyết truy vấn

 TC: Là trường 1 bit, trường này sẽ cho biết là gói tin có bị cắt khúc ra dokích thước gói tin vượt quá băng thông cho phép hay không

 RD: Là trường 1 bit, trường này sẽ cho biết là truy vấn muốn server tiếp tụctruy vấn một cách đệ qui

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

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

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

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

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

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

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

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

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

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

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

Trang 31

 NScount: Chỉ ra số lượng tài nguyên được ghi lại trong các phẩn có thẩmquyền của gói tin.

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

Trang 32

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

1 Tổng Quan Về Chặn Bắt Gói Tin (Sniffer)

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

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

 Network Traffic là lưu lượng thông tin vào/ra hệ thống mạng Để có thể đođạc, kiểm soát Network Traffic ta cần phải chặn bắt các gói tin (Packetcapture)

 Packet capture là hành động chặn bắt các packet dữ liệu được lưu chuyểntrên mạng Packet capture gồm có:

o Deep Packet Capture (DPC): là hành động chặn bắt toàn bộ các góitin trên mạng (bao gồm cả phần header và payload) Các gói tin chặnbắt được sẽ được lưu trữ lại trong bộ nhớ tạm thời hoặc lâu dài

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

ra nguyên nhân của những vấn đề của mạng, xác định nguy cơ an toànbảo mật, chắc chắn mạng hoạt động chính xác về kỹ thuật và luậtpháp

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

sự luân chuyển các gói tin trên mạng đồng thời lưu giữ lại nhữngthông tin đó cho các mục đích khác sau này

 Trong thực tế packet capture có thể ghi lại được header mà không cần lưugiữ toàn bộ phần nội dung payload Nhờ vậy, ta có thể giảm được yêu cầu bộnhớ dùng để lưu trữ, tránh các vấn đề pháp luật trong khi vẫn có đầy đủnhững thông tin cần thiết nhất

 Packet Analyzer (Sniffer) là phần mềm hoặc phần cứng máy tính được gắnvào trong 1 mạng máy tính để có thể theo dõi thông tin lưu chuyển (networktraffic) trên 1 mạng hay một phần của mạng Sniffer sẽ có nhiệm vụ chặn bắt

Trang 33

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

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

 Để một máy có thể chặn bắt thông tin trong mạng của nó, network adapterphải được đặt ở promiscuous mode

1.2.2 Mục đích

Thường có 2 dạng chính: dùng để kiểm tra bảo trì mạng và dạng kia dùng để xâmnhập mạng Chúng được sử dụng cho các mục đích:

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

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

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

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

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

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

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

 Chặn bắt các thông tin nhạy cảm như mật khẩu, username của người dùng khác trên mạng nhằm xâm nhập hệ thống của họ

Trang 34

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

Hiện nay có rất nhiều chương trình miễn phí cũng như thương mại thực hiện việcchặn bắt và phân tích gói tin Một số chương trình trong đó như:

 Tcpdump (http://www.tcpdump.org/) đối với Unix và Windump(http://www.winpcap.org/windump/default.htm) đối với Window

Trong phạm vi của báo cáo thực tập tốt nghiệp chỉ xét tới môi trường mạng có dâytrong WindowXP, hay chính xác hơn là trong phạm vi chuẩn Ethernet

Ethernet được xây dựng dựa trên khái niệm chia sẻ Tất cả các máy trong một mạngnội bộ đều được chia sẻ chung một đường dây Điều đó chỉ ra rằng tất cả các máytrong mạng đều có thể “nhìn thấy” traffic trong đường dây đó

Do đó, phần cứng Ethernet sẽ có một bộ lọc (“filter”) bỏ qua tất cả nhưng traffickhông phải dành cho nó (bằng cách bỏ qua tất cả các frame có địa chỉ MAC khôngphù hợp) Để khắc phục, sniffer phải có cơ chế tắt “filter” ở trên, đưa phần cứngEthernet vào chế độ hỗn tạp (“promiscuous mode)”

Trang 35

2.2 Phân tích Network Traffic

Khi dữ liệu được gửi trên đường dây, nó sẽ được chia nhỏ, đóng gói thành nhiềupacket và được gửi đi một cách riêng biệt Sniffer là chương trình sẽ chặn bắt cácpacket này

Sau khi đã tiến hành chặn bắt thành công các gói tin, chúng ta sẽ có được các packetmang thông tin Tuy nhiên, để lấy được thông tin cần thiết phục vụ cho các mụcđích khác nhau, chúng ta phải thực hiện việc phân tích các gói tin đó (PacketAnalysis)

Các giao thức có thể sniffing như: Ethernet, IPv4, IPv6, ARP/RARP, TCP, UDP,hoặc ICMPv4, telnet, rlogin, http, SMNP, NNTP, POP, FTP, IMAP

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

Dưới đây là 512 byte đầu tiên dữ liệu của một gói tin Ethernet dưới dạngHex khi ta sử dụng trình duyệt để duyệt trang web

http://web.archive.org/web/20050221103207/http://www.robertgraham.com/pubs/sniffing-faq.html

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

Trang 36

Ta nhận thấy trong packet trên chứa 14-byte Ethernet header, 20-byte IP header,20-byte TCP header, HTTP header có dấu hiệu kết thúc là (0D 0A 0D 0A) và cuối cùng là phần dữ liệu Dữ liệu thu được như sau:

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

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

0001 C9

TCP header: 00 50 07 75 05 D0 00 C0 04 AE 7D F5 50 1070 79 8F 27 00 00HTTP header: 48 54 54 50 2F 31 2E 31 20 32

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

Một “Protocol Analyzer” sẽ nhận vào những dữ liệu ở trên và phân tích chúng, trích xuất thông tin và chuyển thành các trường thông tin có thể dễ dàng đọc bởi con người, ví dụ đối với packet ở trên sau khi thực hiện phân tích thông tin ta sẽ có:

ETHER: Destination address : 0000BA5EBA11 ETHER: Source address : 00A0C9B05EBD ETHER: Frame Length : 1514 (0x05EA) ETHER: Ethernet Type : 0x0800 (IP)

IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: 0 = Normal Delay IP: 0 = Normal Throughput IP: 0 = Normal Reliability IP: Total Length = 1500 (0x5DC) IP: Identification = 7652 (0x1DE4) IP: Flags Summary = 2 (0x2) IP: 0 = Last fragment in datagram IP: 1 = Cannot fragment datagram IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 127 (0x7F) IP: Protocol = TCP - Transmission Control IP: Checksum = 0xC26D IP: Source Address = 10.0.0.2 IP: Destination Address = 10.0.1.201

TCP: Source Port = Hypertext Transfer Protocol TCP: Destination Port = 0x0775 TCP: Sequence Number = 97517760 (0x5D000C0) TCP: Acknowledgement Number = 78544373 (0x4AE7DF5) TCP: Data Offset = 20 (0x14)

TCP: Reserved = 0 (0x0000) TCP: Flags = 0x10 : A

TCP: 0 = No urgent data TCP: 1 = Acknowledgement field significant

Trang 37

TCP: 0 = No Push function TCP: 0 = No Reset TCP: 0 = No Synchronize TCP: 0 = No Fin TCP: Window = 28793 (0x7079) TCP: Checksum = 0x8F27 TCP: Urgent Pointer = 0 (0x0)

HTTP: Response (to client using port 1909) HTTP: Protocol Version = HTTP/1.1 HTTP: Status Code = OK HTTP: Reason = OK

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

Trang 38

2.4 Phòng chống sniffer

Trước tiên, chắc chắn rằng không một máy riêng biệt nào có thể lắng nghe hay chặnbắt toàn bộ mạng Internet Thứ hai, để có thể lắng nghe một liên kết, cần phải truynhập được vào dây nối vật lý của liên kết đó (hay có thể tham gia vào giữa đườngtruyền vật lý của các gói tin) Vậy nên trước hết để phòng chống sniffer là ngănchặn không để sniffer được cài đặt hay chạy trên bất kì máy nào trong mạng cũngnhư kiểm tra cẩn thận dây nối trong mạng (đối với mạng có dây) Ngoài ra đểphòng chống sniffer ta cần:

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

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

 Phương thức Ping: gửi một gói tin ping tới địa chỉ IP mà không phải làEthernet Adapter, gồm những bước như sau:

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

00-40-05-A4-79-32

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

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

o Nếu như ta nhận được phản hồi tức là máy nghi ngờ đã bỏ chức năngEthernet Filter, do đó nó đang lắng nghe trên đường dây

2.4.2 Ngăn chặn sniffer

 Chống sniffing dữ liệu

Trang 39

o SSL – Sercure Socket Layer

o SSH – Sercure Shell

o VPNs – Virtual Private Networks

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

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

o Sử dụng Switch thay vì Hub

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

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

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

Trang 40

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

Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trìnhyêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạngLAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong máytính Mỗi socket có thể được xem như một điểm cuối trong một kết nối Mộtsocket trên máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một sockettrên máy cung cấp dịch vụ Một khi socket đã được thiết lập phù hợp, hai máy tính

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

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

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

 Số hiệu cổng

 Địa chỉ IP

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

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

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

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

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

Tóm lại, sử dụng Socket ta có thể chặn bắt và truy nhập các thông tin từ tầnggiao vận trở lên (TCP và UDP) và có thể truy nhập tới tầng Internet ( IP) nếu sửdụng raw socket Tuy nhiên hiện nay trên hệ điều hành window chỉ có thư việnwinsock dành cho Visual C++ và Socket trong Net hỗ trợ raw socket Thư việnlập trình mạng của Java không cho phép người phát triển được sử dụng tới rawsocket

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

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

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

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

Ngày đăng: 23/11/2012, 08:13

HÌNH ẢNH LIÊN QUAN

Sơ đồ giao tiếp thông qua winsock Winsock thực sự như một tầng giữa các ứng dụng winsock và ngăn xếp TCP/IP - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Sơ đồ giao tiếp thông qua winsock Winsock thực sự như một tầng giữa các ứng dụng winsock và ngăn xếp TCP/IP (Trang 44)
Sơ đồ giao tiếp thông qua .NET Socket - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Sơ đồ giao tiếp thông qua .NET Socket (Trang 47)
Sơ đồ phân cấp chức năng - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Sơ đồ ph ân cấp chức năng (Trang 56)
Bảng trong cơ sở dữ liệu - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Bảng trong cơ sở dữ liệu (Trang 60)
Sơ đồ mối liên hệ trong hoạt động khóa mạng Những thông tin ta cần có trong chức năng này bao gồm: - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Sơ đồ m ối liên hệ trong hoạt động khóa mạng Những thông tin ta cần có trong chức năng này bao gồm: (Trang 65)
Bảng danh sách các gói tin Packet Information Tree: hiển thị thông tin của packet được lựa chọn trên Packets  Table đối với từng tầng. - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Bảng danh sách các gói tin Packet Information Tree: hiển thị thông tin của packet được lựa chọn trên Packets Table đối với từng tầng (Trang 68)
Bảng dữ liệu cho phép người dùng lựa chọn thông tin hiển thị - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Bảng d ữ liệu cho phép người dùng lựa chọn thông tin hiển thị (Trang 71)
Đồ thị dạng đường liên tục và được cập nhật 1giây/lần. Thông tin được lưu trữ tối đa tới 120 giây. - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
th ị dạng đường liên tục và được cập nhật 1giây/lần. Thông tin được lưu trữ tối đa tới 120 giây (Trang 75)
Sơ đồ thích hợp sử dụng Hub hoặc Switch có chức năng port mirroring kết  hợp với chế độ bắt đa hỗn tạp (promiscuous mode). - Xây dựng chương trình kiểm soát lưu lượng thông tin trao đổi qua hệ thống mạng
Sơ đồ th ích hợp sử dụng Hub hoặc Switch có chức năng port mirroring kết hợp với chế độ bắt đa hỗn tạp (promiscuous mode) (Trang 78)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w