Chính vì vậy, tôi rất mong sự đóng góp ý kiến của các thầy cô, các đồng nghiệp và các bạn quan tâm đến vấn đề an ninh an tồn mạng.-Tơi xin chân thành cảm ơn PGS.TS Nguyễn Việt Hơng ngờ
Trang 1-
AN NINH AN TOÀN M- ẠNG VÀ HỆ THÔNG PHÁT HIỆN ỘT Đ
NHẬP NGUYỄN THẾ THỊNH
LuËn V¨n Th¹c SÜ Khoa Häc CHUYÊ N NGÀNH: ĐIỆN TỬ VIỄN TH ÔNG
Hµ Néi - 2005
Trang 2
-
AN NINH AN TOÀN M- ẠNG VÀ HỆ THÔNG PHÁT HIỆN ỘT Đ
NHẬP NGUYỄN THẾ THỊNH
LuËn V¨n Th¹c SÜ Khoa Häc CHUYÊ N NGÀNH: ĐIỆN TỬ VIỄN TH ÔNG
NGƯỜI HƯỚNG DẪN PGS – TS NGUY ỄN VI ỆT HƯ ƠNG
Hµ Néi - 2005
Trang 3Mụ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 43.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 86 vệ 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 - Lu 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 55.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 6Mở đầ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, nhng đ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 nhng 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 7Trong 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 8Chơ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 để lu 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 9tí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 lu 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 lu 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 để lu trữ các dữ liệu dự phòng (thông thờng là lu 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 thu đ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 10Có 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 11cầ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 lu 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 lu 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 12hệ 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 14d) 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ệ việc ghép kênh, cắt hợp dữ liệu nếu cần Nói chung, n 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 151.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 trng, 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
Trang 16-ARP Address esolution rotocol R P
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
1.2.3 Giao thức liên mạng IP
Trang 18Internet 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, nhng 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 19Khi 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 cha 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 20Hì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 cha đợ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 21100 - 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ố nhận dạng
- Flags: 3 bit, liên quan đến sự phân đoạn (fragment) các Datagram, có
Trang 22o Bit 2: MF=0 đây là segment cuối cùng của gói tin bị phân mảnh
MF=1 Đây cha 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 23thô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:
1980 Byte Original IP
Packet
Trang 24Hì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
Trang 25Trong 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 nhng 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 27Mỗi lớp địa chỉ đợc đặc trng 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 nhng 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 28Network 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 29Ví 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) nhng 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 lu 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 31TCP 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 32nhiề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 34Hì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 nhng 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 lu 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 35Hì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 nhng cha có báo nhận, Bytes thứ 5,6 cha
đợc gửi nhng sẽ đợc gửi mà không có trễ Các Bytes lớn hơn 7 cha đợ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 37bá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ẽ lu 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 lu 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 lu 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 lu trong bộ đệm Nếu dữ liệu khẩn cần
Trang 38phả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 390BData
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 lu 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 40Hì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 lu 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