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

An ninh an toàn mạng và hệ thống phát hiện đột nhập

122 6 0

Đ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

Định dạng
Số trang 122
Dung lượng 1,17 MB

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

Nội dung

Nếu lựa chọn một máy tính để lưu trữ và cho phép các máy tính khác trên mạng sử dụng dữ liệu này sẽ làm tăng khả năng tập trung và duy trì các thông tin.. Nếu chỉ sử dụng một nơi để lưu

Trang 1

Hµ Néi - 2005

Trang 2

NGƯỜI HƯỚNG DẪN PGS – TS NGUY ỄN VIỆT HƯƠNG

Hµ Néi - 2005

Trang 3

Mục lục

Mở đầu 4

Chương I : Lý thuyết về mạng máy tính 6

1.1 Mạng máy tính 6

1.1.1 Định nghĩa mạng máy tính 6

1.1.2 Phân loại mạng máy tính 7

1.2 Giao thức mạng TCP/IP 9

1.2.1 Kiến trúc phân tầng OSI 9

1.2.2 Kiến trúc phân tầng TCP/IP 13

1.2.3 Giao thức liên mạng IP 15

1.2.3.1 Cấu trúc Header của IP Datagram 17

1.2.3.2 Quá trình phân mảnh gói dữ liệu 20

1.2.3.3 Phương pháp đánh địa chỉ trong TCP/IP 23

1.2.3.4 Định tuyến IP 27

1.2.4 TCP và UDP 29

1.2.4.1 Giao thức TCP 29

1.2.4.2 Giao thức UDP 36

1.2.5 Giao thức điều khiển ICMP và ARP 37

1.2.5.1 Giao thức ICMP 37

1.2.5.2 Giao thức phân giải địa chỉ ARP 38

1.3 Các dịch vụ thông tin trên mạng 39

1.3.1 Nguyên tắc tổ chức 40

1.3.2 Các dịch vụ thông tin cơ bản 41

1.3.2.1 Dịch vụ thư điện tử(E-mail) 41

1.3.2.2 Dịch vụ Web 41

1.3.2.3 Dịch vụ truyền file 42

1.3.2.4 Telnet 43

Chương II : điểm yếu về an ninh – an toàn mạng IP 44

2.1 Đánh giá các điểm yếu về an ninh-an toàn mạng IP 44

2.1.1 Tại sao mạng IP có nhiều điểm yếu về an ninh-an toàn? 44

2.1.2 Các điểm yếu về an ninh-an toàn 44

2.2 Các hình thức tấn công mạng máy tính 45

2.2.1 Do thám mạng 46

2.2.2 Các cuộc tấn công truy nhập 48

2.2.3 Tấn công từ chối dịch vụ (Denial of Service) 50

Chương III : công nghệ phòng chống xâm nhập 58

3.1 Tổng quan về an ninh mạng máy tính 58

3.2 Các lĩnh vực an ninh mạng máy tính 58

3.2.1 An toàn mạng (Network Security) 58

3.2.2 An toàn ứng dụng (Application Security) 59

3.2.3 An toàn hệ thống (System Security) 60

3.3 Thực hiện an ninh-an toàn mạng IP 62

3.4 Các thủ tục an ninh-an toàn 63

3.5 Công nghệ an ninh-an toàn IP 63

3.5.1 Công nghệ mã mật (Cryptography) 63

Trang 4

3.5.2 Công nghệ tường lửa (Firewalls) 67

3.5.3 Các công cụ giám sát (Monitoring Tools) 68

3.5.4 Các công cụ phân tích 69

Chương iV: Hệ phát hiện đột nhập - IDS (Intrusion Detection System) 72

4.1 Giới thiệu 72

4.2 Khái niệm chung 72

4.3 Phân loại những hoạt động phát hiện đột nhập (IDS) 75

4.4 Mô hình chức năng của một hệ phát hiện đột nhập 77

4.4.1 Bộ theo dõi giám sát 77

4.4.2 Bộ phân tích 77

4.4.4 Bộ phản ứng (Response): 78

4.5 Các đặc tính kỹ thuật của hệ phát hiện đột nhập 79

4.5.1 Các phương pháp phân tích phát hiện đột nhập 79

4.5.2 Những cách phản ứng lại sự đột nhập 81

4.6 Hệ phát hiện đột nhập mạng (Network based IDS-NIDS) 82

4.6.1 Khái niệm về hệ phát hiện đột nhập mạng 82

4.6.2 Một số dạng tấn công mà IDS phát hiện được 85

4.6.3 Cách bố trí hệ phát hiện đột nhập trong đoạn mạng bảo vệ 86

4.6.4 Ưu điểm của hệ phát hiện đột nhập mạng 87

4.6.5 Nhược điểm của hệ phát hiện đột nhậo mạng 88

4.7 Hệ phát hiện đột nhập trạm (Host based IDS-HIDS) 88

4.7.1 Định nghĩa 88

4.7.2 Một số chức năng của hệ phát hiện đột nhập trạm 90

4.7.2.1 Quản lý các kết nối tới máy tính nó bảo vệ 90

4.7.2.2 Giám sát được các hoạt động đăng nhập (Login) 91

4.7.2.3 Giám sát các hoạt động trên trạm 91

4.7.2.4 Quản lý các hoạt đông trên trạm mà nó bảo vệ 91

4.7.2.5 Quản lý tệp hệ thống 91

4.7.3 Cài đặt hệ thống phát hiện đột nhập trạm 92

Chương V : Xây dựng hệ thống NIDS và ứng dụng thực tế 94

5.1 Giới thiệu 94

5.1.1 Hệ SNORT 94

5.1.2 Tường lửa cá nhân (Personal Firewall) 95

5.2 Hệ thống NIDS Snort 95

5.2.1 Mô tả thuật toán và chương trình 95

5.2.2 Module bắt và giải mã gói (Packet Decoder) 97

5.2.3 Module tiền xử lý (Preprocessors) 101

5.2.4 Module phát hiện đột nhập (Detection Engine) 105

5.2.5 Module Cảnh báo - Lưu trữ (Logging and Alerting System) 108

5.2.6 Một số chương trình hiện thị và phân tích cảnh báo dựa trên cơ sở dữ liệu của Snort 109

5.2.6.1 Chương trình SAM 109

5.2.6.2 Chương trình ACID 110

5.2.7 Tập luật của hệ thống NIDS Snort 112

5.2.7.1 Cấu trúc của luật 112

5.2.7.2 Nội dung của luật (rule body) 114

Trang 5

5.2.8 Cấu hình Snort 115

5.3 Phát triển bộ đáp trả đối với sự đột nhập mạng dựa trên Snort 116

5.3.1 Khởi tạo đăng ký của bộ đáp trả 116

5.3.2 Thiết lập các tham số 117

5.3.2 Hành động đáp trả sự đột nhập 117

5.4 Tường lửa cá nhân (Personal Firewall) 117

kết luận 118

Tài liệu tham khảo 120

Trang 6

Mở đầu

Có một nhận xét rất hay rằng “ Điều tuyệt vời của Internet là kết nối với mọi người, nhưng điều khủng khiếp nhất của Internet cũng là kết nối với mọi người”

Internet, mạng của các mạng thông tin máy tính toàn cầu ra đời đã

không ngừng phát triển đem lại cho con người rất nhiều lợi ích, đáp ứng

ngày càng phong phú hầu hết các dịch vụ thông tin của xã hội, của tri thức loài người, tiến tới trở thành hạ tầng thông tin liên lạc chính của xã hội thông tin tương lai

Cùng với việc ứng dụng CNTT, mạng Internet ngày càng phát triển, đặc biệt là sự phát triển của hệ thống Internet băng rộng thì số vụ xâm phạm an ninh, bảo mật thông tin mạng đã và đang gia tăng theo hàm số mũ Theo các chuyên gia về an ninh mạng, xu hướng gần đây cho thấy bên cạnh sự bùng

nổ của các loại virus và sâu máy tính, của các vụ tấn công vào các máy trạm không được bảo mật, số vụ tấn công ứng dụng ngày càng tăng, đặc biệt là các vụ tấn công ứng dụng Web do việc sử dụng các công nghệ Web ngày càng phổ biến Theo thống kê của tạp chí Computer Economics tháng

6/2004, các cuộc tấn công mạng trên toàn cầu gây thiệt hại hàng tỉ USD mỗi năm và con số này không ngừng gia tăng

Do đặc điểm nhiều người sử dụng và phân tán về mặt địa lý nên việc bảo

vệ các tài nguyên thông tin trên mạng tránh khởi sự mất mát, xâm phạm (dù vô tình hay cố ý) trong môi trường hiện nay là cực kỳ phức tạp Vì vậy, việc nghiên cứu, xây dựng, và quản lý một hệ thống mạng đảm bảo về an ninh-an toàn mạng đang là một vấn đề rất cần thiết trong bối cảnh hiện nay ở nước ta Hiện nay có rất nhiều công nghệ và giải pháp an ninh trên mạng nhưng vấn đề đặt cho người thiết kế và tích hợp hệ thống, cũng như các nhà quản trị mạng là phải chọn và xây dựng giải pháp phù hợp với yêu cầu kinh tế và kỹ thuật

Trang 7

Trong luận văn này, tôi trình bày về một số công nghệ an ninh-an toàn mạng IP hiện nay đang được sử dụng Đồng thời tôi cũng đưa ra mô hình và giải pháp kết hợp giữa hệ phát hiện đột nhập mạng và tường lửa cá nhân để

đảm bảo an ninh-an toàn cho một mạng dùng riêng

Kết cấu của luận văn gồm 5 chương như sau :

Tôi xin chân thành cảm ơn PGS.TS Nguyễn Việt Hương người đã trực

tiếp hướng dẫn tôi, cùng các thầy cô ở khoa Điện Tử Viễn Thông trường Đại học Bách Khoa Hà Nội và các đồng nghiệp tại TT CNTT Ngân hàng Công Thương Việt Nam đã tạo điều kiện giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn này

Trang 8

Chương I : Lý thuyết về mạng máy tính

1.1 Mạng máy tính

1.1.1 Định nghĩa mạng máy tính

Mạng máy tính là một tập hợp các phần cứng và phần mềm được kết nối với nhau cho phép các máy tính có thể giao tiếp với nhau và chia sẻ các tài nguyên chung từ những vị trí địa lý khác nhau

Mạng máy tính bao gồm các thành phần chính sau:

- Máy phục vụ (Server) : Chia sẽ các tài nguyên và dịch vụ nói chung cho mạng

- Máy khách (Client) : Sử dụng các dịch vụ mạng mà Servers cung cấp

- Kết nối vật lý giữa các máy tính: Cáp mạng, wireless

- Các tài nguyên (Resources) : Dữ liệu, các ứng dụng và các phần cứng

được cung cấp bởi các Servers trên mạng cho các Client

- Giao thức mạng (Network protocol) : Ngôn ngữ cho phép các máy tính Server và Client giao tiếp với nhau

- Cấu trúc mạng (Network topology)

Mạng máy tính tạo ra môi trường làm việc với nhiều người sử dụng phân tán, cho phép nâng cao hiệu quả khai thác tài nguyên chung rất nhiều so với khi từng máy hoạt động đơn lẻ

Mạng máy tính có những ưu điểm so với sử dụng các máy tính riêng rẻ:

- 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 đó (đặc biệt quan trọng đối với các ứng dụng tời gian thực)

- Chia sẻ dữ liệu: Những dữ liệu dùng chung cho nhiều người trên mạng

có thể được tập trung trên một máy Nếu lựa chọn một máy tính để lưu trữ và cho phép các máy tính khác trên mạng sử dụng dữ liệu này sẽ làm tăng khả năng tập trung và duy trì các thông tin Máy tính có các

Trang 9

tính năng trên gọi là máy chủ phục vụ (server) có các phần mềm và hệ

điều hành đặc biệt dành riêng

- Chia sẻ tài nguyên phần cứng: Mạng máy tính có thể chia sẻ các tài nguyên phần cứng: fax, modems, máy quét (scanners), đĩa cứng (hard - disks), đĩa mềm (floppy - disks), ổ đĩa CD (CD- ROMS), Băng từ (Taper), máy vẽ (Plotter) Nhiều máy tính có thể dùng chung một thiết

bị phần cứng để tiết kiệm chi phí

- Duy trì dữ liệu: Một mạng máy tính cho phép các dữ liệu quan trọng

được tự động lưu trữ dự phòng tới một nơi để tránh bị lỗi khi có sự cố Việc bảo trì từ dữ liệu sao lưu trên từng máy độc lập là một công việc hết sức khó khăn và tốn nhiều thời gian Nếu chỉ sử dụng một nơi để lưu trữ các dữ liệu dự phòng (thông thường là lưu trữ vào băng từ trên một máy chủ của mạng), sẽ dễ dàng tìm kiếm để khôi phục lại dữ liệu đã bị mất

- Bảo vệ dữ liệu: Mạng máy tính cung cấp một môi trường bảo mật cho toàn mạng Với các máy tính độc lập, khi truy cập vào máy tính đó có nghĩa là truy cập được tất cả các thông tin có trên máy Mạng máy tính cung cấp cơ chế bảo mật (security) bằng mật khẩu (password), cho phép máy chủ mạng phân biệt quyền hạn sử dụng của từng người dùng

- Liên lạc với nhau: Mạng máy tính cúng có thể cho phép mọi người liên lạc với nhau Một trong những lợi ích lớn nhất của mạng đó là thư điện

tử Những người sử dụng mạng có thể ngay tức khắc gửi các thông điệp tới những người khác thông qua thư điện tử (electronic mail) Có thể gửi kèm các tài liệu vào thưu điện tử và có thể gửi chuyển tiếp cho nhiều người

1.1.2 Phân loại mạng máy tính

Trang 10

Có nhiều cách phân loại mạng khác nhau tuỳ thuộc vào yếu tố được chọn

để làm chỉ tiêu phân loại như: khoảng cách địa lý, kỹ thuật chuyển mạch hay kiến trúc mạng Một số cách phân loại thường được dùng như sau:

a Phân loại theo khoảng cách địa lý

• Mạng cục bộ LAN (Local Area Network): là mạng được đặt

trong phạm vi tương đối nhỏ (trong một toà nhà, trong một trường học ) với khoảng cách lớn nhất giữa các máy tính chỉ trong vòng vài chục kilômét

• Mạng đô thị MAN (Metropolitan): Là mạng được cài đặt trong

phạm vi một đô thị hoặc trong một trung tâm kinh tế-xã hội có bán kính khoảng 100km trở lại

• Mạng diện rộng WAN (Wide Area Network): phạm vi của mạng

có thể vượt qua biên giới một quốc gia và thậm chí cả lục địa

• Mạng toàn cầu GAN (Global Area Network): phạm vi của

mạng trải rộng trên khắp cả các lục địa trên trái đất

b Phân loại theo cấu trúc liên kết mạng (Network Topology)

• Cấu trúc Bus (Bus topology): Đường truyền chính của mạng là

một đường cáp đơn được giới hạn hai đầu bởi một loại đầu nối

đặc biệt gọi là terminator Mỗi trạm được nối vào bus qua một

đầu nối chử T hoặc một bộ thu phát (Tranceiver) Các máy không thể đồng thời truyền dữ liệu trên mạng bus

• Cấu trúc Star (Star topology): Tất cả các máy tính nối vào

mạng thông qua một thiết bị trung tâm (hub, switch, router) Thiết bị này có nhiệm vụ nhận tín hiệu từ các máy tính và chuyển tín hiệu này đến các máy đích Thiết bị trung tâm này

đóng vai trò chính là thực hiện việc “bắt tay” giữa các máy tính

Trang 11

cần trao đổi thông tin với nhau, thiết lập các liên kết point giữa chúng

point-to-• Cấu trúc Ring (Ring Topology): Các máy tính được nối với nhau

ở dạng vòng, tín hiệu được lưu chuyển trên vòng theo một chiều Mỗi máy tính được nối vào mạng thông qua bộ chuyển tiếp (repeater) có nhiệm vụ nhận tín hiệu rồi chuyển sang máy

kế tiếp trên vòng Như vậy tín hiệu được lưu chuyển trên vòng theo một chuổi liên tiếp các liên kết điểm-điểm giữa các repeater Có thể sử dụng phối hợp các kiểu ghép nối mạng bus, star, ring để mở rộng mạng

c Phân loại theo mô hình mạng (Network Models)

• Mạng ngang hàng (peer-to-peer): Trong mô hình mạng này, bất

kỳ một máy tính nào cũng có thể hoạt động ở cả hai chế độ Client và Server Nó có thể chia sẽ các tài nguyên của nó với các máy tính khác và cũng có thể sử dụng các tài nguyên của các máy tính khác chia sẽ với quyền phù hợp

• Mạng khách chủ (Client-Server): Trong mô hình mạng này, có tối thiểu một Server đóng vai trò quản lý tập trung các tài nguyên chia sẽ và các users, máy tính trên mạng

Trong thực tế, khi số lượng các máy tính trong mạng lớn hơn 10 máy thì mô hình mạng này thường được sử dụng nhằm quản lý tốt và tập trung hơn các tài nguyên, người sử dụng trong mạng

1.2 Giao thức mạng TCP/IP

1.2.1 Kiến trúc phân tầng OSI

Để việc tổ chức trao đổi số liệu giữa các ứng dụng trong hệ thống mạng được thuận tiện và không quá phức tạp, người ta phân chia hệ thống thành các chức năng nhỏ, có phân cấp, độc lập và “dựa vào nhau, có tác dụng tương hổ cho nhau” Nguyên tắc tổ chức hệ thống bằng cách phân chia

Trang 12

hệ thống thành các chức năng có phân cấp không những cho phép giảm độ phức tạp thiết kế và thực hiện hệ thống thông qua việc xác định các chức năng cấu thành hệ thống và giao diện giữa các chức năng đó mà không qui

định bắt buộc phải thực hiện các chức năng đó như thế nào, mà còn cho phép thực hiện việc kết nối mở các hệ thống không đồng nhất, nghĩa là kết nối

giữa các hệ thống có kiến trúc phần cứng, phần mềm hệ thống và cấu trúc số liệu không giống nhau Mô hình 7 mức OSI là mô hình kết nối mở các hệ thống tính toán được xây dựng trên nguyên tắc phân mức chức năng như vậy Mô hình OSI hợp nhất các chuẩn mực chất lượng sau:

 Được thiết kế để thiết lập nên các tiêu chuẩn cho hoạt động truyền dữ liệu, nhằm khuyến khích các khả năng liên kết hoạt động giữa nhiều nhà sản xuất

 Bao gồm 7 tầng, với một tập hợp chức năng mạng cụ thể được phân phối cho từng phần và các nguyên tắc áp dụng giao diện giữa các tầng

 Chỉ định một tập hợp giao thức và giao diện sử dụng ở mỗi tầng

Để xây dựng mô hình OSI, ISO cũng xuất phát từ kiến trúc phân tầng đã trình bầy ở trên, và dựa trên các nguyên tắc chủ yếu sau:

 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 chức năng khác nhau được tách biệt với nhau, và sử dụng công nghệ cho các tầng cũng độc lập với nhau

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

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

 Các chức năng được xác định sao cho có thể thiết kế tại tầng mà gây

ảnh hưởng ít nhất tới các tầng khác kề nó

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

 Mỗi tầng chỉ có các ranh giới với tầng kề trên và dưới nó

 Có thể chia một tầng thành nhiều tầng con khi cần thiết

Trang 13

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

 Cho phép huỷ bỏ các tầng con khi thấy không các thiết

Mỗi tầng trong mô hình OSI tồn tại như một module đơn thể, nghĩa là việc thay đổi giao thức sử dụng trong một tầng không làm ảnh hưởng đến các tầng khác

Application Presentation Session Transport Network Datalink Physical

Hình 1.1 Cấu trúc mô hình OSI a) Tầng ứng dụng (Application Layer)

Có chức năng cung cấp các phương tiện để người sử dụng có thể truy nhập được vào môi trường OSI Đồng thời cung cấp các dịch vụ mạng

b) Tầng biểu diễn thông tin (Presentation Layer)

Tầng này hoạt động như bộ phiên dịch dữ liệu cho mạng Nó thực hiện việc chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các ứng dụng qua môi trường OSI

c) Tầng phiên (Session Layer)

Tầng phiên cung cấp các chức năng quản lý truyền thông giữa các ứng dụng chạy trên các máy tính khác nhau như: Thiết lập, duy trì, đồng bộ hoá và huỷ bỏ các phiên truyền thông giữa các ứng dụng Ngoài ra nó còn thực hiện nhiều chức năng hỗ trợ khác nhau, cho phép các quy trình giao tiếp trên mạng như chứng thực người sử dụng và bảo vệ truy cập tài nguyên

Trang 14

d) Tầng giao vận (Transport layer)

Thực hiện việc truyền dữ liệu giữa hai đầu giao tiếp, tiến hành kiểm soát lỗi và điều khiển luồng dữ liệu giữa hai đầu mút truyền dữ liệu nếu cần

Nó cũng có thể thực hiện việc ghép kênh, cắt hợp dữ liệu nếu cần Nói chung, nhiệm vụ của tầng này đảm bảo cho Datagram được chuyển giao theo thứ tự gửi đi và không bị mất mát hay trùng lặp

e) Tầng mạng (Network Layer)

Tầng mạng chịu trách nhiệm điều khiển hoạt động của mạng con, nó quyết định dữ liệu sẽ đi theo lộ trình vật lý nào, căn cứ vào điều kiện hiện tại của mạng, độ ưu tiên của dịch vụ và các điều kiện khác Thực hiện cả chức năng cắt hợp dữ liệu nếu cần

f) Tầng liên kết dữ liệu (Datalink Layer)

Tầng này có chức năng cung cấp các phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy thông qua các cơ chế đồng bộ hoá, kiểm soát lỗi và điều khiển luồng dữ liệu, báo nhận và phục hồi lỗi xảy ra ở tầng vật

Mức này đảm bảo các công việc sau:

- Biến đổi số liệu từ dạng song song (Byte/Word) sang dạng nối tiếp (Bit)

và ngược lại

- Biến đổi và truyền số liệu dưới dạng bit trên kênh truyền vật lý cụ thể

- Thích ứng về tính chất điện, tính chất cơ học giữa thiết bị cuối với môi trường truyền dẫn (ví dụ: mức tín hiệu điện, ổ nối dây dẫn )

Trang 15

1.2.2 Kiến trúc phân tầng TCP/IP

Các mạng máy tính hiện nay và đặc biệt là mạng Internet chủ yếu sử dụng chồng giao thức TCP/IP như là giao thức chuẩn chung Do đó việc tìm hiểu một cách sâu sắc các giao thức trong chồng giao thức TCP/IP cũng như

sự hoạt động của nó giúp cho chúng ta thấy được mạng máy tính hoạt động như thế nào, có những đặc trưng, những điểm yếu gì Những kẻ tấn công đã lợi dụng những yếu điểm đó như thế nào để thực hiện các cuộc tấn công của mình và chúng ta cần phải làm gì để đảm bảo cho mạng máy tính của mình

được an toàn trước những cuộc tấn công đó

TCP/IP thực chất là một họ giao thức cùng làm việc với nhau để cung cấp phương tiện truyền thông liên mạng TCP/IP được phân thành 4 lớp và được

so sánh với các lớp tương đương trong mô hình tham chiếu hệ thống mở OSI giống như hình sau:

Hình1.2 Các lớp trong chồng giao thức TCP/IP

Trong đó:

FPT-File Transfer Protocol

SMTP-Simple Mail Transfer Protocol

ICMP-Internet Control Message Protocol

Trang 16

ARP-Address Resolution Protocol

TCP: (Transmistion Control Protocol)

Thủ tục liên lạc ở tầng giao vận của TCP/IP TCP có nhiệm vụ đảm bảo liên lạc thông suốt và tính đúng đắn của dữ liệu giữa 2 đầu của kết nối, dựa trên các gói tin IP

UDP: (User Datagram Protocol)

Thủ tục liên kết ở tầng giâo vận của TCP/IP Khác với TCP, UDP không

đảm bảo khả năng thông suốt của dữ liệu, cũng không đảm bảo khả năng thông suốt của dữ liệu, cũng không có chế độ sửa lỗi Bù lại, UDP cho tốc độ truyền dữ liệu cao hơn TCP

IP: (Internet Protocol)

Là giao thức ở tầng thứ 3 của TCP/IP, nó có trách nhiệm vận chuyển các Datagrams qua mạng Internet

ICMP: (Internet Control Message Protocol)

Thủ tục truyền các thông tin điều khiển trên mạng TCP/IP Xử lý các tin báo trạng thái cho IP như lỗi và các thay đổi trong phần cứng của mạng ảnh hưởng đến sự định tuyến thông tin truyền trong mạng

ARP: (Address Resolution Protocol)

Là những giao thức ở tầng liên kết dữ liệu Chức năng của nó là tìm địa chỉ vật lý ứng với một địa chỉ IP nào đó Muốn vậy nó thực hiện Broadcashing trên mạng, và máy trạm nào có địa chỉ IP trùng với địa chỉ IP đang được hỏi sẽ trả lời thông tin về địa chỉ vật lý của nó

FPT: (File Transfer Protocol)

Giao thức truyền tệp để truyền tệp từ một máy này đến một máy tính khác Dịch vụ này là một trong những dịch vụ cơ bản của Internet

Telnet: (Terminal Emulation Protocol)

Trang 17

Đăng ký sử dụng máy chủ từ xa với Telnet người sử dụng có thể từ một máy tính của mình ở xa máy chủ, đăng ký truy nhập vào máy chủ để sử dụng các tài nguyên của máy chủ như là mình đang ngồi tại máy chủ

SNMP: (Simple Network Management Protocol)

Giao thức quản trị mạng đơn giản: Là dịch vụ quản trị mạng để gửi các thông báo trạng thái về mạng và các thiết bị kết nối mạng

Hình 1.3 Giao tiếp vật lý và logic giữa các lớp

Dữ liệu được đưa xuống từ lớp ứng dụng, sau đó tới lớp transport, tiếp theo tới lớp Internet và cuối cùng là tới lớp network, mỗi giao thức thực hiện chức năng xử lý luồng dữ liệu này bằng cách bao bọc các giao thức ở trên nó

và đặt thêm một header điều khiển của mình vào phía trước luồng dữ liệu

Hệ thống nhận dòng dữ liệu này theo thứ tự ngược lại, các header được loại

bỏ và dòng dữ liệu lại được gửi lên các lớp trên Sự mở rộng này cung cấp sự linh hoạt bởi vì các lớp trên không cần quan tâm đến các công nghệ được sử dụng ở các lớp dưới

Trang 18

Internet Protocol (IP) là giao thức đầu tiên của mô hình OSI, nó cũng

là một phần của TCP/IP Mặc dù trong giao thức IP có từ Internet, nhưng nó không chỉ được sử dụng trên mạng Internet mà nó còn được sử dụng ở các mạng chuyên dụng khác mà không liên quan gì đến Internet IP định nghĩa một giao thức kiểu không kết nối (Connectionless) có nghĩa là không cần có giai đoạn thiết lập trước khi truyền dữ liệu Đơn vị dữ liệu được dùng trong

IP gọi là Datagram IP là sự lựa chọn tốt nhất cho bất cứ mạng nào kết nối thông tin theo kiểu từ máy tới máy Mặc dù nó phải cạnh tranh với các giao thức khác như IPX của mạng Novell NetWare trên các mạng cục bộ vừa và nhỏ sử dụng NetWare như là hệ điều hành trên máy PC

Nhiệm vụ chính của IP là đánh địa chỉ các gói dữ liệu của thông tin giữa các máy tính và quản lý các quá trình xử lý các gói dữ liệu này Giao thức IP có một định nghĩa hình thức về cách bố trí các gói dữ liệu và khuôn dạng của phần Header chứa các thông tin về các gói dữ liệu đó IP đảm nhiệm việc định tuyến đường truyền để xác định gói dữ liệu phải đi đến đâu

và có khả năng điều chỉnh đường truyền trong trường hợp gặp trục trặc

Một mục đích quan trọng nữa của IP là làm việc với việc phân phối không tin cậy gói dữ liệu Sự không tin cậy trong trường hợp này có nghĩa là việc phân phối gói dữ liệu không được đảm bảo, có thể do trễ trên đường truyền, mất đường truyền, bị sai hỏng trong quá trình phân chia hoặc lắp ráp lại các bảng thông báo Nếu IP không có chức năng điều khiển dữ liệu đáng tin cậy thì không thể nào đảm bảo được các gói dữ liệu đến nơi nhận một cách chính xác

IP không sử dụng mã kiểm tra cho toàn bộ gói dữ liệu mà nó chỉ sử dụng cho thông tin ở phần Header của gói tin Giao thức IP cho phép một gói dữ liệu có kích thước tối đa là 65.535 byte, kích thước này là quá lớn để các mạng có thể xử lý được, do đó phải có quá trình phân mảnh các gói dữ liệu

để truyền và lắp ráp lại thông tin tại trạm đích nếu cần thiết

Trang 19

Khi gói dữ liệu đầu tiên được phân mảnh và gửi đến trạm đích, một bộ

đếm thời gian được khởi động ở lớp IP máy thu Nếu bộ đếm thời gian này

đã đạt đến một giá trị định trước mà vẫn chưa nhận hết các gói dữ liệu cần thiết thì tất cả các gói dữ liệu đã nhận sẽ bị huỷ bỏ toàn bộ Nhờ những thông tin trong phần Header của gói IP mà máy nhận có thể nhận biết được thứ tự của các gói dữ liệu được gửi đi như thế nào Một hậu quả của quá trình phân mảnh thông tin là các gói dữ liệu được phân mảnh đến chậm hơn một gói tin không bị phân mảnh, vì vậy phần lớn các ứng dụng thường tránh kỹ thuật phân mảnh nếu có thể

1.2.3.1 Cấu trúc Header của IP Datagram

IP được so sánh là phần cứng của mạng như là Ethernet, bởi về cơ bản

nó cùng dựa trên sự đóng gói thông tin Khi Ethernet nhận được gói IP, nó

đặt phần Header của lớp Ethernet ở phía trước để tạo khung, quá trình như vậy được gọi là encapsulation Một trong những vấn đề khác nhau cơ bản

giữa các phần Header của IP và Ethernet là phần Header của Ethernet bao gồm cả địa chỉ vật lý của máy đích, trong khi đó phần Header của IP chỉ mang địa chỉ IP Sự chuyển đổi giữa hai địa chỉ này được thực hiện bởi một giao thức gọi là ARP (Address Resolution Protocol)

IP sử dụng Datagram làm đơn vị di chuyển Tất cả các giao thức và dịch vụ trong họ giao thức TCP/IP đều phải đảm bảo yêu cầu kỹ thuật, tức là độ dài của phần Header là 32 bits

Trang 20

Hình 1.4 Cấu trúc IP Header

ý nghĩa các tham số:

- VER (Version Number): 4bit, chỉ version hiện hành của IP đang được

sử dụng Hiện nay hầu hết các hệ thống đều đang sử dụng IPv4, mặc

dù có một vài hệ thống thử nghiệm IP Version 6 Đối với mạng Internet và hầu hết các mạng LAN IPv6 vẫn chưa được sử dụng

- IHL (Header Length): 4 bit, chỉ độ dài của phần đầu Header của gói

dữ liệu, tính bằng đơn vị WORD (1 WORD=32bit) Độ dài tối thiểu của phần Header là 5 từ (20 bytes), độ dài tối đa của phần Header là 6

o Precedence : 3 bit, chỉ thị quyền ưu tiên gửi Datagram:

111 - Network Control (Cao nhất) 011 - Flash

110 - Internetwork Control 010 - Immediate

101 - CRICTIC/ECP 001 - Priority

Trang 21

100 - Flash Overide 000 - Routine (thấp nhất)

o D (Delay): 1 bit, chỉ độ trễ yêu cầu:

Nếu D=0 độ trễ bình thường

D=1 độ trễ thấp

o T (Throughtput): 1 bit, chỉ thông lượng yêu cầu:

Nếu T=0 thông lượng bình thường

T=1 thông lượng cao

o R (Reliability): 1 bit, chỉ độ tin cậy yêu cầu:

Nếu R=0 độ tin cậy bình thường

R=1 độ tin cậy cao

- Total Length (Datagram length): 16 bits, chỉ độ dài toàn bộ Datagram

(tính theo đơn vị byte)

- Identification: 16 bit, cùng với các tham số khác như Source Address,

Destication Address dùng để định danh duy nhất cho một Datagram trong khoảng thời gian nó vẫn còn ở trên mạng

Chú ý: Nếu một Datagram bị phân đoạn, thì mỗi đoạn có cùng một số

Trang 22

o Bit 2: MF=0 đây là segment cuối cùng của gói tin bị phân mảnh

MF=1 Đây chưa phải là segment cuối

- Fragment Offset: 13 bit, chỉ vị trí của đoạn (segment) ở trong

Datagram, tính theo đơn vị 64 bit, có nghĩa là mỗi đoạn (trừ đoạn cuối) phải chứa một vùng dữ liệu có độ dài là bội số của 64 bit

- Time To Live: 8 bits, qui định thời gian tồn tại (tình bằng giây) của

Datagram trong liên mạng để tránh tình trạng một Datagram bị quẩn trên mạng Thời gian này được cho bởi trạm gửi và được giảm đi một

đơn vị khi Datagram đi qua mỗi Router trên mạng

- Protocol (Transport Protocol): 8 bit, chỉ ra giao thức tầng trên kết tiếp

nó là gì, TCP, UDP, ICMP, hoặc ARP mà đượ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

CRC (Cyclic Redundancy Code) dùng để kiểm tra lỗi cho vùng Header của Datagram

- Source Address: 32 bit, là địa chỉ trạm nguồn

- Destination Address: 32 bit, địa chỉ trạm đích

- Options: độ dài thay đổi, dùng để khai báo các options do người gửi

yêu cầu

- Padding: độ dài thay đổi, là vùng đệm được dùng để đảm bảo độ dài

của vùng Header luôn là bội số của 32 bit

- Data: độ dài thay đổi, là vùng dùng để chứa dữ liệu, có độ dài là bội

số của 8 bit và tối đa là 65535 byte

1.2.3.2 Quá trình phân mảnh gói dữ liệu

Các gói số liệu IP phải được nhúng trong các khung số liệu của mức liên kết số liệu tương ứng, trước khi chuyển tiếp trong mạng Quá trình nhận một gói số liệu IP diễn ra ngược lại.Ví dụ: Mạng Ethernet ở mức liên kết số liệu, khi gửi một gói IP cho mức Ethernet, IP chuyển cho mức liên kết số liệu các

Trang 23

thông số địa chỉ Ethernet đích, kiểu khung Ethernet (0x0800) và cuối cùng

là gói IP Mức liên kết số liệu đặt địa chỉ Ethernet nguồn là địa chỉ kết nối mạng của mình và tính toán giá trị tổng kiểm tra (checksum) Trường type chỉ ra kiểu khung là 0x0800 đối với số liệu IP Mức liên kết số liệu sẽ chuyển khung số liệu theo thuật toán truy nhập Ethernet

Một gói IP có độ dài tối đa 65535 byte, trong khi đó hầu hết các mức liên kết số liệu chỉ hổ trợ các khung số liệu nhỏ hơn độ lớn tối đa của gói số liệu

IP nhiều lần (ví dụ độ lớn tối đa của một khung số liệu Ethernet là 1500byte) Vì vậy, cần thiết phải có cơ chế phân mảnh khi phát và hợp nhất mảnh khi thu đối với gói số liệu IP

Người ta định nghĩa độ dài tối đa của một gói số liệu liên kết là MTU (Maximum Transmit Unit) Khi cần chuyển một gói số liệu IP có độ dài lớn hơn MTU của một mạng cụ thể, người ta phải chia gói số liệu IP đó thành những gói IP nhỏ hơn, gọi chung là mảnh (fragment) Trong phần tiêu đề của gói số liệu IP có thông tin về phân mảnh và xác định các mảnh có quan hệ phụ thuộc để hợp thành sau này Ví dụ: Ethernet chỉ hỗ trợ các khung có độ dài tối

đa 1500 byte Nếu muốn gửi một gói số liệu IP gồm 2000 byte qua Ethernet, phải chia gói IP thành 2 gó nhỏ hơn, mỗi gói vừa với giới hạn MTU của Ethernet

Gói tin ban đầu:

04 05 00 2000

1 1 1 1 0 0 0 0

05 06

128.83.24.13 192.10.2.5

Data

1980 Byte

Original IP Packet

Trang 24

Hình 1.7: Gói IP gốc

Các gói tin sau khi được phân mảnh:

Hình 1.8: Các gói IP sau khi phân mảnh

IP dùng cờ MF (3 bít thấp của trường Flags trong phần đầu gói IP) và trường Fragment Offset của gói IP (đã bị phân đoạn) để định danh gói IP đó là một phân đoạn và vị trí của phân đoạn này trong gói IP gốc Các gói dùng trong chuỗi phân mảnh đều có trường này giống nhau Cờ MF bằng không nếu

là gói đầu của chuỗi phân mảnh và 1 nếu là gói cuối phân mảnh

Quá trình hợp nhất diễn ra ngược lại với quá trình phân mảnh Khi IP nhận được một gói phân mảnh, nó giữ phân mảnh đó trong vùng đệm, cho đến khi nhận được hết các gói IP trong chuỗi phân mảnh có cùng trường định danh Khi phân mảnh đầu tiên được nhận, IP khởi động một bộ đếm thời gian (giá trị ngầm định là 15s) IP phải nhận hết các phân mảnh kế tiếp trước khi

đồng hồ tắt Nếu không, IP phải huỷ tất cả các phân mảnh trong hàng đợi hiện thời có cùng trường định danh

Khi nhận được hết các phân mảnh, IP thực hiện hợp nhất các gói phân mảnh thành gói IP gốc và sau đó xử lý gói số liệu này như một gói số liệu IP bình thường IP thường chỉ thực hiện hợp nhất các gói tại hệ thống đích nơi gói số liệu được chuyển đến

04 05 00 1500

1 1 1 1 0 0 0 0

05 06 Checksume 128.83.24.13 192.10.2.5 Data

1480 Byte

Fragment One

1 1 1 1 1 0 0 0

Trang 25

Trong quá trình truyền dữ liệu, một gói dữ liệu (Datagram) có thể

được truyền qua nhiều mạng khác nhau Một gói dữ liệu nhận được từ một mạng nào đó có thể quá lớn để truyền đi trong một gói đơn ở một mạng khác, bởi vậy mỗi loại cấu trúc mạng cho phép một đơn vị truyền cực đại MTU (Maximum Tranmission Unit) khác nhau

Hậu quả của việc phân mảnh dữ liệu là các gói tin bị phân mảnh sẽ

đến đích chậm hơn so với một gói không bị phân mảnh Vì vậy phần lớn các ứng dụng đều tránh không sử dụng kỹ thuật này nếu có thể Vì sự phân mảnh tạo ra các gói dữ liệu với các header riêng biệt nên quá trình xử lý sẽ làm giảm tính năng của mạng Hơn nữa vì IP là một giao thức không tin cậy nên bất kỳ một gói tin phân mảnh nào bị mất thì tất cả các mảnh khác sẽ phải truyền lại Chính vì lý do này nên phải gửi các gói dữ liệu lớn nhất cho phép

để không bị phân mảnh, giá trị này là Path MTU

1.2.3.3 Phương pháp đánh địa chỉ trong TCP/IP

Để có thể thực hiện truyền tin giữa các node trên mạng, mỗi node trên mạng TCP/IP cần phải có một địa chỉ xác định gọi là địa chỉ IP Hiện nay mỗi địa chỉ IP được tạo bởi một số 32 bits (IPv4) và được tách thành 4 vùng, mỗi vùng có một byte có thể biểu thị dưới dạng nhị phân, thập phân, thập lục phân hoặc bát phân Cách viết phổ biến nhất là dùng cách viết dùng ký tự thập phân Một địa chỉ IP khi đó sẽ được biễu diễn bởi 4 số thập phân có giá trị từ 0 đến 255 và được phân cách nhau bởi dấu chấm (.) Mỗi giá trị thập phân biểu diễn 8 bits trong địa chỉ IP Mục đích của địa chỉ IP là định danh duy nhất cho một host ở trên mạng

IPv4 sử dụng 3 loại địa chỉ trong trường nguồn và đích đó là:

• Unicast:Để thể hiện một địa chỉ đơn hướng Địa chỉ đơn hướng

là địa chỉ dùng để nhận dạng từng nút một trên mạng Cụ thể, nếu một gói dữ liệu được gửi tới một địa chỉ đơn hướng sẽ được chuyển tới nút mang địa chỉ đơn hướng đó

Trang 26

• Multicast: Địa chỉ đa hướng Là địa chỉ dùng để nhận dạng một

tập hợp các nút nhưng không phải là tất cả Gói dữ liệu IP được gửi tới địa chỉ Multicast sẽ được gửi tới tất cả các nút tham dự trong nhóm Multicast này Kỹ thuật multicasting dựa trên một nhóm địa chỉ lớp D từ 224.0.0.0 cho đến 239.255.255.255

Một số địa chỉ trong khoảng này được dành riêng cho những mục đích đặc biệt cụ thể:

Địa chỉ multicast Sử dụng 224.0.0.0 Địa chỉ cơ sở (để dành) 224.0.0.1 Tất cả các máy trên subnet 224.0.0.2 Tất cả các bộ định tuyến trên subnet 224.0.1.1 Giao thức thời gian mạng (Network time) 224.0.0.9 Nhóm địa chỉ RIP version 2

224.0.1.24 Nhóm địa chỉ WINS server

Bảng 1.1 : Các địa chỉ multicast dành riêng

• Broadcast: Thể hiện tất cả các trạm trên mạng Khi một gói IP

được gửi đến địa chỉ này thì tất cả các host trên mạng đều nhận

được gói tin này

Các địa chỉ IP được chia làm hai phần, một phần để xác định mạng (netid) và một phần dùng để xác định host (hostid) Các lớp mạng được xác

định bởi số bits dành cho mỗi phần mạng và host Có năm lớp mạng là A,B,C,D và E, trong đó ba lớp đầu là được dùng cho mục đích thông thường

và là ba lớp chính, còn hai lớp D và E được dùng cho những mục đích đặc biệt và những mục đích khác trong tương lai

Cấu trúc một địa chỉ IP có dạng như sau:

Class ID Network IP Host ID

Hình 1.9 Cấu trúc chung của một địa chỉ IP

Trang 27

Mỗi lớp địa chỉ được đặc trưng bởi một số bits đầu tiên của byte đầu tiên, cấu trúc chi tiếp của địa chỉ IP các lớp là như sau:

- Từ 192 đến 223 là địa chỉ lớp C Ba Bytes đầu xác định địa chỉ mạng, Byte cuối xác định địa chỉ các máy trạm Lớp C là lớp có nhiều mạng nhưng mỗi mạng chỉ có thể có đến 254 host Do đó lớp mạng này chỉ thích hợp với các tổ chức có số lượng máy tính nhỏ

Trang 28

Network class Số mạng Số host trong mạng

Để tiện cho việc quản trị cũng như thực hiện các phương pháp tìm đường trên mạng, ở các mạng lớn (lớp A) hay các mạng vừa (lớp B) người ta có thể chia chúng thành các mạng con (Subnets) Ví dụ cho rằng một mạng con có

địa chỉ lớp B là 191.12.0.50 khi đó coi 191.12.0.0 là địa chỉ toàn mạng và lập

địa chỉ 191.12.1.0 cho Subnet 1và 191.12.2.0 cho Subnet 2

Có thể dành trọn một nhóm 8 bits để đánh địa chỉ Subnet và một nhóm để

đánh địa chỉ các máy trong từng Subnet Như thế tất nhiên là số máy trong một Subnet sẽ ít đi tương tự như trong mạng nhỏ Sự phân chia này làm giảm kích thước của bảng định tuyến trong Router/Gateway, nghĩa là tiết kiệm dung lượng nhớ và thời gian xử lý

Sự phân chia một mạng thành nhiều mạng con phát sinh vấn đề là số lượng bit dành để đánh địa chỉ mạng con có thể khác nhau và tuỳ thuộc vào nhà quản trị Do đó người ta đưa vào khái niệm Subnet Mask Subnet Mask

cũng giống như địa chỉ IP bao gồm 32 bits Múc đích của Subnet Mask là để chia nhỏ một địa chỉ IP thành các mạng nhỏ hơn và theo dõi vùng nào trên

địa chỉ IP được dùng để làm địa chỉ cho mạng con (còn được gọi là các Subnet) đó vùng nào dùng làm địa chỉ cho các máy trạm

Nội dung của một Subnet Mask được qui định như sau:

- Các bit 1: dùng để chỉ định địa chỉ mạng trên địa chỉ IP

- Các bit 0: dùng để chỉ định địa chỉ máy trạm trên địa chỉ IP

Trang 29

Ví dụ đối với mạng A có địa chỉ 172.16.0.0, nếu dành thêm 4 bits cho Subnet thì mặt nạ có giá trị là 255.255.240.0, nếu dành 8 bits cho Subnet thì mặt nạ sẽ có giá trị là 255.255.255.0

Từ địa chỉ IP ta thực hiện phép toán logic AND với địa chỉ Subnet Mask, kết quả sẽ tạo ra được địa chỉ mạng nơi đến Kết quả này được sử dụng để tìm bước tiếp theo trong thuật toán tìm đường trên mạng Nếu kết quả này trùng với địa chỉ mạng tại trạm đang làm việc thì sẽ xét tiếp địa chỉ máy trạm

để truyền đi Theo cấu trúc của Subnet Mask thì ta thấy tất cả các trạm làm việc trong cùng một mạng con có cùng giá trị Subnet Mask

Với phương pháp này số bits dùng để đánh địa chỉ host có thể nhỏ hơn 8 bits (đối với lớp C) tức là một địa chỉ lớp C có thể phân nhỏ hơn nữa và khi

đó các mạng con này thường được xác định bởi các địa chỉ có thêm phần chú thích số bits dành cho địa chỉ mạng, ví dụ 203.16.0.0/25 mô tả Subnet 203.16.0.0 (lớp C) nhưng có 25bits dùng cho địa chỉ mạng và 7 bits dùng cho địa chỉ host tức là Subnet này có tối đa 128 hosts chứ không phải 256 host như một lớp C bình thường

Trong tất cả các lớp địa chỉ mạng cũng như các Subnets, các địa chỉ đầu

và cuối của mạng được dùng cho các mục đích riêng

Trên mạng Internet, việc quản lý và phân phối địa chỉ IP là được thực hiện bởi NIC (Network Information Center) Với sự bùng nổ của số lượng máy tính kết nối vào mạng Internet, địa chỉ IP đã trở thành một tài nguyên cạn kiệt Hiện này người ta đã xây dựng và đưa vào thử nghiệm giao thức IPv6, một giao thức có thể đáp ứng được vấn đề này

1.2.3.4 Định tuyến IP

Định tuyến IP dựa trên nguyên tắc đánh địa chỉ IP như sau:

- Các trạm làm việc kết nối trong một mạng “vật lý” phải có cùng phần

địa chỉ mạng IP Việc định tuyến IP đồng nghĩa với việc xác định

đường tới mạng IP

Trang 30

- Mỗi kết nối mạng phải có một địa chỉ mức liên kết xác định, ứng với một địa chỉ mức liên kết có một địa chỉ IP và ngược lại

Việc định tuyến IP dựa trên bảng định tuyến, được lưu trử tại mỗi trạm làm việc và thiết bị định tuyến Bảng định tuyến cho biết các số liệu sau:

- Địa chỉ mạng đích

- Địa chỉ IP của thiết bị chuyển tiếp (Gateway)

- Cờ cho biết, đối với mỗi địa chỉ mạng đích có thể đạt tới trực tiếp qua kết nối mạng vật lý hay phải qua thiết bị chuyển tiếp khác (Flag)

Căn cứ vào những nguyên tắc nêu trên, thuật toán định tuyến IP được môt tả như sau:

- Giảm trường TTL của gói IP

- Nếu TTL=0 thì:

o Huỷ gói

o Gửi thông điệp ICMP báo lỗi cho thiết bị gửi

- Nếu địa chỉ đích là một trong các địa chỉ IP của các kết nối mạng trên

hệ thống, nghĩa là gói số liệu IP được gửi cho chính hệ thống này, thì xử lý gói số liệu IP tại chỗ

- Xác định địa chỉ mạng đích bằng cách nhân logic (AND) mặt nạ mạng (network mask) với địa chỉ IP đích

- Nếu địa chỉ mạng đích không tìm thấy trong bảng định tuyến thì huỷ

bỏ gói số liệu này và gửi thông điệp ICMP báo lỗi “mạng đích không

đến được” cho thiết bị gửi

- Nếu địa chỉ mạng đích bằng địa chỉ mạng của hệ thống, nghĩa là thiết

bị đích được kết nối trong cùng mạng với hệ thống thì tìm địa chỉ mức liên kết tương ứng trong bảng thích ứng địa chỉ IP-MAC, nhúng gói tin trong gói số liệu mức liên kết và chuyển tiếp gói số liệu đến đích

- Trong trường hợp địa chỉ mạng đích không bằng địa chỉ mạng của hệ thống thì chuyển tiếp đến thiết bị định tuyến cùng mạng

Trang 31

TCP là một giao thức kiểu “có liên kết” (connection oriented), nghĩa

là cần phải thiết lập liên kết logic giữa một cặp thực thể TCP trước khi chúng trao đổi dữ liệu với nhau Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu) có khuôn dạng như hình sau:

Hình 1.11 Cấu trúc TCP Header

Trong đó:

- Source Port: 16 bits, là số hiệu cổng của trạm nguồn, dùng để định

danh cho người sử dụng TCP cục bộ (thường ứng dụng chương trình ở lớp trên)

- Destinarion Port: 16 bits, là số hiệu cổng của trạm đích, dùng để định

danh cho người sử dụng TCP của máy từ xa Số hiệu này là địa chỉ thâm nhập dịch vụ lớp giao vận (CCISAP Address) cho biết dịch vụ

mà TCP cung cấp là dịch vụ gì TCP có số lượng cổng trong khoảng 0- (216-1), tuy nhiên các cổng nằm trong khoảng 0-1023 là được biết

Trang 32

nhiều nhất vì nó được sử dụng cho việc truy cập các dịch vụ tiêu chuẩn, ví dụ 23 là dịch vụ Telnet, 25 là dịch vụ Mail

- Sequence Number: 32 bits, là số hiệu chỉ dẫn cho vị trí của khối trong

toàn bộ quá trình truyền nhận Số hiệu này cũng được sử dụng giữa hai TCP bổ xung để cung cấp số thứ tự đầu tiên của thông báo để gửi đi theo thứ tự Đây là số hiệu của Byte đầu tiên của Segment trừ khi bit SYN được thiết lập Nếu bit SYN được thiết lập thì Sequence Number

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

- Acknowledgement Number: 32 bits, là số hiệu chỉ dẫn của segment

tiếp theo mà trạm nguồn đang chờ để nhận Ngầm ý báo đã nhận tốt các Segment mà trạm đích đã gửi cho trạm nguồn

- Data offset: 4 bits, là số lượng của từ 32 bits trong TCP header Tham

số này được sử dụng để chỉ ra vị trí bắt đầu của vùng dữ liệu

- Reserved: 6 bits, dành để dùng trong tương lai Các bit này phải được

- Window: 16 bit, được dùng để kiểm soát luồng dữ liệu

Trang 33

- Checksum: 16 bit, mã kiểm soát lỗi theo phương pháp CRC cho toàn

bộ segment (bao gồm cả phần header và phần dữ liệu)

b) Điều khiển luồng dữ liệu

Trong việc điều khiển luồng dữ liệu phương pháp hay sử dụng là dùng

phương pháp cửa sổ trượt Phương pháp này giúp cho việc nhận luồng dữ liệu

hiệu quả hơn

Phương pháp cửa sổ trượt cho phép nơi gửi (Sender) có thể gửi đi nhiều gói tin rồi sau đó mới đợi tín hiệu báo nhận ACK (Acknowledgement) của nơi nhận (Receiver) Với phương pháp cửa sổ trượt khi cần truyền các gói tin, giao thức sẽ đặt một cửa sổ có kích thước cố định lên các gói tin Những gói nào nằm trong vùng cửa sổ ở một thời điểm nhất định sẽ được truyền đi Hình 1.12 minh hoạ quá trình này, ở đây kích thước cửa sổ là 4 Tức là mỗi lúc cửa sổ chỉ gửi được 4 gói tin Đầu tiên cửa sổ sẽ gửi 4 gói tin từ 1 đến 4 và 4 gói tin này sẽ được gửi cho bên nhận Cửa sổ tiếp tục trượt để gói tin thứ 5 được gửi

đi ngay sau khi nhận được tín hiệu ACK của gói tin thứ nhất từ trạm đích, quá trình như vậy cứ tiếp tục cho đến khi gói tin cuối cùng được chuyển đi

1

2

1

2

Trang 34

Hình 1.12 : Hoạt động của cửa sổ trượt

Trong quá trình gửi và nhận dữ liệu, có thể có một số gói tin mặc dù đã

được gửi đi nhưng không có phúc đáp (không nhận được báo nhận) có nghĩa là bên nhận không nhận được thì những gói đó sẽ được truyền lại

Tại bên nhận cũng duy trì một cửa sổ trượt tương tự dùng để nhận và báo nhận các gói tin đã nhận được

TCP cung cấp một kiểu dịch vụ gọi là dịch vụ chuyển luồng đáng tin cậy TCP xem luồng dữ liệu như là một thứ tự các byte dữ liệu được tách thành các Segments Thường thì mỗi Segment truyền trong liên mạng sẽ được lồng

và một Datagram

Với kỹ thuật cửa sổ trượt, sễ giải quyết được hai vấn đề quan trọng đó là

truyền có hiệu quả và điều khiển luồng dữ liệu TCP sử dụng kỹ thuật cửa sổ

trượt dựa trên kỹ thuật cửa sổ trượt đã trình bày ở trên Nó cho phép gửi được nhiều Segment trước khi báo nhận đến từ nơi nhận và do đó làm tăng thông lượng truyền trên mạng Bên cạnh đó kỹ thuật cửa sổ trượt còn cho phép bên nhận tránh được tình trạng dữ liệu bị mất bằng cách làm giảm lưu lượng dữ liệu gửi đến nếu bộ đệm của nó không chứa thêm nhiều dữ liệu

Kỹ thuật cửa sổ trượt của TCP được tiến hành ở mức Byte chứ không phải ở mức Segment hay Packet như đã trình bày ở trên Các Bytes của luồng dữ liệu được đánh số một cách tuần tự và một cửa sổ được định nghĩa bởi ba con trỏ như hình 1.13

: Các con trỏ

Trang 35

Hình 1.13 : Cấu hình cửa sổ trượt

Tại mỗi thời điểm, con trỏ đầu tiên trỏ vào mép bên trái cửa sổ, con trỏ thứ hai trỏ vào mép bên phải cửa sổ và con trỏ thứ ba xác định vị trí các bytes

được gửi đi Con trỏ bên phải và bên trái cửa sổ xác định kích thước của cửa

sổ Các phần mềm giao thức gửi các gói bên trong cửa sổ không có trễ do đó danh giới bên trong cửa sổ luôn luôn di chuyển từ bên phải qua bên trái

Như trong hình 2.11 chỉ ra byte thứ hai đã được gửi và nhận được báo nhận, Bytes thứ 3,4 đã được gửi nhưng chưa có báo nhận, Bytes thứ 5,6 chưa

được gửi nhưng sẽ được gửi mà không có trễ Các Bytes lớn hơn 7 chưa được gửi cho đến khi cửa sổ di chuyển

Có một sự khác biệt giữa cửa sổ trượt TCP và cửa sổ trượt được trình bày ở trên là cửa sổ trượt TCP có thể thay đổi kích thước theo thời gian Trong

đó mỗi báo nhận đều có thông tin về trạng thái bộ đệm tại bên nhận, cho biết bên nhận có thể nhận được bao nhiêu Bytes dữ liệu nữa Nếu nhận được thông báo kích thước bộ đệm còn ít thì bên gửi sẽ giảm kích cỡ của cửa sổ và nó không gửi số Bytes dữ liệu quá kích thước của bộ đệm Còn nếu thông báo rằng kích thước của bộ đệm tăng thì bên gửi sẽ tăng tương ứng kích thước của cửa sổ

Vì liên kết TCP là loại liên kết đầy đủ, dữ liệu có thể được truyền theo cả hai hướng, tức là tại mỗi thời điểm dữ liệu có thể được truyền từ hai đầu cuối của liên kết một cách độc lập với nhau nên tại mỗi đầu của liên kết sẽ có thể duy trì hai cửa sổ một để gửi dữ liệu và một để nhận dữ liệu

c) Thiết lập và kết thúc kết nối TCP

Như ta đã biết, TCP là một giao thức kiểu có liên kết, tức là cần phải

có giai đoạn thiết lập một liên kết giữa một cặp thực thể TCP trước khi truyền dữ liệu và huỷ bỏ liên kết khi không còn nhu cầu trao đổi dữ liệu nữa

Để thiết lập một kết nối TCP, hai thực thể tham gia giao tiếp sẽ thực hiện một quá trình bắt tay với nhau gọi là three-way hanshake Mỗi gói tin trao

Trang 36

đổi trong quá trình bắt tay này chứa một số thứ tự, các số thứ tự này là duy nhất đối với một kết nối giữa hai thực thể giao tiếp

Hình 1.14 : Thiết lập một kết nối TCP/IP

Các bước cho việc thiết lập một kết nối TCP giữa máy tính A (client) và máy tính B (Server) diễn ra như sau:

- Bước 1: A gửi một gói yêu cầu kết nối tới B, với bit SYN trong gói này

được đặt là 1 A nói với B rằng trường Sequence Number là hợp lệ và

nên được kiểm tra Bên A thiết lập giá trị trường Sequence Number là

số thứ tự khởi đầu của nó

- Bước 2: B đáp ứng lại bằng cách gửi một gói có bit SYN và ACK được bật lên Số thứ tự khởi đầu chính là số thứ tự khởi đầu của A cộng thêm 1

- Bước 3: Bên A xác nhận số thứ tự khởi đầu của bên B bằng việc gửi một gói có bit ACK được bật lên và số thứ tự của nó là số thứ tự khởi

đầu của B cộng thêm 1

Sau khi bên B nhận được gói tin xác nhận ở bên A, một kết nối TCP được thiết lập và hai bên bắt đầu có thể trao đổi dữ liệu cho nhau

Khi một thực thể tham gia kết nối (ví dụ A) muốn huỷ bỏ một kết nối, nó

sẽ gửi cho phía bên kia một gói tin có cờ FIN được bật lên để thông báo nó không còn dữ liệu để trao đổi nữa Bên B lúc này vẫn có thể tiếp tục truyền dữ liệu nếu còn, và khi không còn dữ liệu để trao đổi nữa thì B sẽ gửi một gói tin có cờ FIN được bật lên và ACK bằng số thứ tự của A cộng thêm 1 để

Trang 37

báo cho bên A biết là nó đã nhận được gói tin yêu cầu kết thúc kết nối của bên A Bên A nhận được gói tin này sẽ đáp trả lại bằng một gói tin báo nhận

có ACK bằng số thứ tự của B cộng thêm 1 và kết nối TCP giữa hai thực thể

sẽ chính thức bị huỷ bỏ

d) Truyền và nhận dữ liệu

Hình 1.15 : Quá trình truyền dữ liệu

Sau khi liên kết được thiết lập giữa một cặp thực thể TCP thì có thể tiến hành việc truyền dữ liệu Với liên kết TCP dữ liệu có thể được truyền theo cả hai hướng

Khi nhận được một khối dữ liệu cần chuyển đi từ người sử dụng, TCP sẽ lưu giữ nó tại bộ đệm gửi Nếu cờ PUSH được dựng thì toàn bộ dữ liệu trong

bộ đệm sẽ gửi đi hết dưới dạng các TCP Segment Còn nếu cờ PUSH không

được dựng thì toàn bộ dữ liệu vẫn được lưu trữ trong bộ đệm để chờ gửi đi khi

có cơ hội thích hợp

Tại bên nhận, dữ liệu gửi đến sẽ được lưu giữ trong bộ đệm nhận Nếu dữ liệu nhận được đánh dấu bởi cờ PUSH thì toàn bộ dữ liệu trong bộ đệm nhận sẽ được gửi lên cho người sử dụng Còn nếu dữ liệu không được đánh dấu với cờ PUSH thì chúng vẫn được lưu trong bộ đệm Nếu dữ liệu khẩn cần

Trang 38

phải chuyển gấp thì cờ URGENT được dùng và đánh dấu dữ liệu bằng bit URG để báo rằng dữ liệu khẩn cần được chuyển gấp

Dịch vụ truyền dữ liệu TCP thực sự bao gồm 6 dịch vụ con:

 Full duplex: Dịch vụ truyền song công, cho phép cả hai đầu cuối của một kết nối có thể truyền bất cứ lúc nào, thậm chí đồng thời

Timeliness: Việc sử dụng các bộ định thời gian để đảm bảo rằng dữ

liệu được truyền thời gian hợp lý

Ordered: Dữ liệu gửi từ một ứng dụng được nhận đúng thứ tự tại đầu

cuối kia Mặc dù các Datagram có thể nhận được không theo thứ tự thông qua IP, TCP sẽ tập hợp các message vào đúng tứ tự trước khi truyền lên tầng cao hơn

Labeled: Tất cả các kết nối đều có một sự thoả thuận về giá trị ưu tiên

và giá trị an toàn

Controlled flow: TCP có thể điều chỉnh thông tin điều khiển luồng

thông qua việc sử dụng các bộ đệm và các giới hạn cửa sổ

Error correction: Tổng kiểm tra bảo đảm rằng dữ liệu không bị lỗi

1.2.4.2 Giao thức UDP

Giống như TCP, User Datagram Protocol (UDP) là một giao thức lớp transport Tuy nhiên UDP cung cấp dịch vụ kết nối không hướng liên kết (connectionless) và không tin cậy

Source UDP port Destination UDP port

Trang 39

Data

Hình 1.16 Cấu trúc của UDP Header

Bởi vì không có điều khiển luồng và không có quá trình bắt tay thiết lâp kết nối nên việc giao tiếp sử dụng giao thức UDP diễn ra rất nhanh Tuy nhiên, cũng vì vậy mà các gói UDP dễ dàng bị giả mạo và các ứng dụng rất

- Điều khiển lưu lượng (Flow Control): khi các gói số liệu đến quá nhanh, thiết bị đích hoặc thiết bị định tuyến ở giữa sẽ gửi một thông

điệp ICMP trở lại thiết bị gửi, yêu cầu thiết bị gửi tạm thời ngừng việc gửi số liệu

- Thông báo lỗi: trong trường hợp địa chỉ đích không tới được thì hệ thống sẽ gửi một thông báo lỗi “Destination Unreachable”

- Định hướng lại các tuyến đường: một thiết bị định tuyến sẽ gửi một thông điệp ICMP định tuyến lại “Redirect Router” để thông báo với một trạm là nên dùng thiết bị định tuyến khác để tới đích Thông điệp này chỉ có thể dùng khi trạm nguồn ở trên cùng một mạng với cả hai thiết bị định tuyến

- Kiểm tra các trạm ở xa: một trạm có thể gửi một thông điệp ICMP

“Echo” để kiểm tra xem một trạm ở xa có hoạt động hay không

Trang 40

Hình 1.17 : Dịch vụ định tuyến lại (ICMP Redirect) 1.2.5.2 Giao thức phân giải địa chỉ ARP

ARP (Address Resolution Protocol) là giao thức được sử dụng để xác

định thích ứng địa chỉ mạng IP và địa chỉ mức liên kết số liệu (địa chỉ MAC)

Thông thường, mỗi hệ thống lưu giữ và cập nhật bảng thích ứng địa chỉ MAC tại chỗ (còn gọi là ARP cache) Bảng thích ứng địa chỉ được cập nhật bởi người quản trị hệ thống hoặc tự động bởi giao thức ARP sau mỗi lần xác

IP-định được một thích ứng địa chỉ mới Cấu trúc gói số liệu ARP được mô tả trong hình sau đây

Trong đó:

- Datalink type: cho biết loại công nghệ mạng ở mức liên kết (Ví dụ:

đối với mạng Ethernet, trường này thường có giá trị 01)

Datalink type Network type hlen plen Opcode Sender datalink (6 bytes) Sender Network (4 bytes) Target datalink (6 bytes)

Source Host

R1

Host R1

(1)IP Diagram

(2)IP Diagram

(3)ICMP Redirect

Ngày đăng: 28/02/2021, 07:29

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Mạng máy tính và các hệ thống mở - Nguyễn Thúc Hải Khác
2. Snort 2.0 Intrusion Detection - Syngress Khác
3. Intrusion Detection with SNORT - Advanced IDS Techniques Using SNORT, Apache, MySQL, PHP, and ACID Khác
4. Hack Proofing Your Network - McGraw-Hill Khác
5. Network Programming for Microsoft Windows - Microsoft Press Khác
6. TCP IP Tutorial and Technical Overview - IBM Red book Khác
7. The Windows 2000 Device Driver Book A Guide for Programmers (2nd Edition) - e-Hall Khác
8. Programming the microsoft windows driver model 2nd ED - MS Press 9. Building Internet Firewalls - OReilly Khác

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