Professional Documents
Culture Documents
(123doc) - Giao-Thuc-Dinh-Tuyen-Ospfn-Cho-Mang-Named-Data-Networking
(123doc) - Giao-Thuc-Dinh-Tuyen-Ospfn-Cho-Mang-Named-Data-Networking
BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
LỜI CÁM ƠN
Em xin chân thành cám ơn các giảng viên trường Đại Học Lạc Hồng, các thầy cô
khoa Công Nghệ Thông Tin đã giảng dạy và hướng dẫn chúng em trong suốt thời gian
chúng em theo học tại trường.
Em xin gởi lời cám ơn đến Th.S Nguyễn Vũ Duy Quang, là giáo viên đã tận tình
hướng dẫn chúng em hoàn thành đề tài nghiên cứu khoa học này.
Em cũng xin gởi lời cám ơn đến Th.S Nguyễn Hoàng Liêm, giáo viên phản biện
đã góp ý giúp em hoàn thiện chương trình hơn.
Em xin cám ơn các thầy, các cô trong khoa Công Nghệ Thông Tin đã có những
ý kiến đóng góp trong các buổi báo cáo tiến độ.
Ngoài ra em xin cám ơn thầy Nguyễn Vũ Duy Quang, giáo viên chủ nhiệm lớp
13CN111 và các bạn trong lớp cùng toàn thể gia đình và người thân đã giúp đỡ, động
viên em trong quá trình thực hiện đề tài này.
Với vốn kiến thức còn hạn chế cùng những điều kiện khách quan không cho phép,
đề tài của em khó tránh khỏi những thiếu sót cũng như chưa đáp ứng đầy đủ các yêu
cầu. Do đó em hy vọng tiếp tục nhận được những ý kiến đóng góp và hướng dẫn của
quý thầy cô để đề tài của em được hoàn thiện hơn.
Em xin chân thành cảm ơn.
Biên Hòa, tháng 11 năm 2017
Sinh viên thực hiện
Nguyễn Tấn Xuân
4
MỤC LỤC
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài ................................................................................................... 9
6. Những đóng góp của đề tài và những vấn đề mà đề tài chưa thực hiện được ..... 10
KẾT LUẬN.............................................................................................................. 43
7 Hình 3.1 Thư mục chứa các file cài đặt NDN
3 CS Content Store
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Trong khi TCP/IP vẫn ổn với nhiều ứng dụng, vẫn thống trị Internet từ khi Internet
xuất hiện (như email, truyền file, đăng nhập từ xa) thì mạng thông tin toàn cầu này ngày
nay đang chuyển mình, hướng sang các ứng dụng thiên nhiều về dữ liệu như trích xuất dữ
liệu từ web và streaming video. Vì vậy, giới công nghiệp vẫn tìm kiếm một giao thức nào
khác tiến bộ hơn. Trong số đó, cái tên NDN (Name Data Networking) tỏ ra là ứng viên
sáng giá nhất hiện nay thay cho TCP/IP.
NDN không phải là công nghệ được thương mại hóa, cũng chưa thể ứng dụng ngay
được. Mô hình dữ liệu Internet hiện nay là dữ liệu phải có một cái tên mà một máy tính
nào đó gọi ra. Mạng máy tính sẽ định hướng yêu cầu đến ứng dụng nào đó, và sau đó dữ
liệu sẽ được trả về cho máy tính yêu cầu.
Bảo vệ mã hóa cho dữ liệu sẽ được tạo ngay trong giao thức NDN. Cũng vậy, vì
mạng máy tính có thể tập trung vào dữ liệu do các cảm biến thu thập được hơn là do ID
của cảm biến nên NDN sẽ phù hợp hơn cho Internet of Things . Vì dữ liệu chỉ được gửi
khi có yêu cầu nên NDN cũng chống được nhiều loại tấn công hơn. Nhưng NDN sẽ không
có được lợi thế về tốc độ xử lý.
2. Lịch sử nghiên cứu
2.1 Trên thế giới
NDN là một trong năm dự án nghiên cứu do Quỹ Khoa học Quốc gia Hoa Kỳ tài
trợ theo Chương trình Kiến trúc Internet trong tương lai. NDN có nguồn gốc từ một dự án
trước đó, Content-Centric Networking (CCN), mà Van Jacobson bắt đầu tại Xerox PARC
trong khoảng thời gian thảo luận trên Google.
2.2. Trong nước
Hiện nay trong nước vẫn chưa có tổ chức, cá nhân nào nghiên cứu hay tìm hiểu
Named Data Networking.
10
6. Những đóng góp của đề tài và những vấn đề mà đề tài chưa thực hiện được
6.1. Những đóng góp của đề tài
- Named Data Networking sẽ là một kiến trúc Internet trong tương lai, phát
huy những điểm mạnh và giải quyết những điểm yếu của kiến trúc Internet hiện tại.
- Cung cấp tính năng Multipath là tính năng sẽ cung cấp nhiều đường đi đến
đích tốt nhất.
11
- Forwarding Strategy module: Các chính sách và quy tắc về các gói tin
chuyển tiếp. Chiến lược chuyển tiếp có thể quyết định bỏ một gói Interest trong tình
huống nhất định. Ví dụ : Nếu tất cả các liên kết upstream bị nghẽn hoặc gói Interest là
một phần của cuộc tấn công DoS. Với mỗi gói Interest, Forwarding Strategy sẽ tìm ra
longest-prefix từ FIB khớp và quyết định thời điểm chuyển tiếp gói Interest.
Khi gói tin Interest đến, router NDN sẽ kiểm tra Content Store để kết hợp dữ liệu;
nếu nó tồn tại, router trả về gói dữ liệu trên giao diện mà từ Interest đến. Nếu không, router
tìm kiếm tên trong bảng PIT của nó, và nếu một mục nhập phù hợp tồn tại, nó chỉ đơn
giản ghi lại interface đến của Interest này trong mục PIT. Trong trường hợp không có mục
nhập PIT phù hợp, router sẽ chuyển tiếp Interest tới các nhà sản xuất dữ liệu dựa trên
thông tin trong FIB cũng như Forwarding Strategy thích nghi của router. Khi router nhận
được Interests cho cùng một tên từ nhiều nodes downstream, nó chỉ chuyển tiếp một
upstream tới người sản xuất dữ liệu.
Khi gói tin Data đến, router NDN xác định mục nhập PIT phù hợp và chuyển tiếp
dữ liệu tới tất cả các interface down-stream được liệt kê trong mục nhập PIT đó. Sau đó
xóa mục nhập PIT đó và lưu trữ Data trong Content Store. Các gói Data luôn đi theo con
đường ngược lại của Interest, và nếu không có sự thất thoát của gói tin, một gói Interest
kết quả trong một gói Data trên mỗi liên kết, cung cấp sự cân bằng lưu lượng. Để thu thập
các đối tượng nội dung lớn chứa nhiều gói dữ liệu, Interest sẽ cung cấp một vai trò tương
tự trong việc điều khiển luồng lưu lượng như các TCP ACK trong Internet ngày nay: một
vòng phản hồi nhỏ gọn được kiểm soát bởi người tiêu dùng của dữ liệu.
Gói Interest và Data mang tất cả địa chỉ máy chủ hoặc địa chỉ interface, router
chuyển tiếp các gói Interest đến nhà sản xuất giựa trên tên của gói tin, và chuyển tiếp gói
Data tới người dùng dựa trên thông tin trong bảng PIT được thiết lập bởi Interests. Sự trao
đổi đối xứng giữa gói tin Interest/Data tạo ra một vòng điều khiển hop-by-hop.[8]
Chữ ký của nhà xuất bản đảm bảo tính toàn vẹn và cho phép xác định xuất xứ dữ liệu, cho
phép người tiêu dùng tin tưởng vào dữ liệu để tách rời khỏi nó và cách thức thu thập được.
Nghiên cứu chính lần thứ hai là thiết kế và phát triển các cơ chế có thể sử dụng để quản
lý sự tin cậy của người dùng.
1.3.1 Bảo mật ứng dụng
Bảo mật data-centric của NDN có các ứng dụng để kiểm soát truy cập nội dung và
bảo mật cơ sở hạ tầng.Các ứng dụng có thể mã hóa dữ liệu và phân phối các khóa như là
các gói được đặt tên sử dụng cùng một cơ sở hạ tầng được đặt tên để phân phối các khóa,
có hiệu quả giới hạn phạm vi bảo mật dữ liệu cho một ứng dụng đơn lẻ. Để xác minh một
chữ ký của gói dữ liệu, một ứng dụng có thể tìm thấy khoá thích hợp, được xác định trong
trường tìm kiếm khóa của gói, giống như bất kỳ nội dung nào khác.
Làm thế nào để xác định tính xác thực của một khoá cho một gói cụ thể trong một
ứng dụng nhất định, là một thách thức nghiên cứu chính. Phù hợp với cách tiếp cận thử
nghiệm, nghiên cứu quản lý của NDN được thúc đẩy bởi sự phát triển và sử dụng ứng
dụng: giải quyết các vấn đề cụ thể trước tiên và sau đó xác định các mô hình chung.
1.3.2 Bảo mật định tuyến
NDN xử lý các thông điệp định tuyến và kiểm soát tin nhắn giống như tất cả dữ
liệu NDN, yêu cầu chữ ký. Điều này cung cấp một nền tảng vững chắc để đảm bảo các
giao thức định tuyến chống lại cuộc tấn công spoofing và tampering.NDN sử dụng chuyển
tiếp đa đường, cùng với chiến lược chuyển tiếp thích ứng, giảm bớt việc chiếm đoạt tiền
tố bởi vì các router có thể phát hiện các khác thường do hijacks gây ra và lấy dữ liệu thông
qua việc giả mạo các đường đi. Có một bảng Pending Interest Table, giữ trạng thái liên
quan đến các yêu cầu trước đó, có thể đưa ra các quyết định về việc làm thế nào để xử lý
việc có nhiều lợi thế an ninh.
- Load Balancing : số lượng các mục PIT là một chỉ số tải router, kích thước
của nó hạn chế ảnh hưởng của một cuộc tấn công DDoS.
- Thời gian chờ của Interest : thời gian chờ của PIT cho phép phát hiện tấn
công, và thông tin giao diện đến trong mỗi mục nhập PIT có thể hỗ trợ một lược đồ push-
back, trong đó các router được thông báo về việc phát hiện các cuộc tấn công.
17
1.4 Name
Thiết kế NDN giả định tên có cấu trúc có cấu trúc, ví dụ: một video do PARC sản
xuất có thể có tên /parc/videos/WidgetA.mpg, trong đó '/' cho biết ranh giới giữa các thành
phần tên (nó không phải là một phần của tên) .Cấu trúc phân cấp này hữu ích cho các ứng
dụng để đại diện cho mối quan hệ giữa các mẩu dữ liệu. Ví dụ: đoạn 3 của phiên bản 1
của video có thể được đặt tên là /parc/videos/WidgetA.mpg/1/3. Hệ thống phân cấp cũng
cho phép định tuyến theo quy mô, đó là cấu trúc phân cấp các địa chỉ IP cho phép tổng
hợp, điều này rất cần thiết trong việc mở rộng hệ thống định tuyến ngày nay. Các cấu trúc
chung cần thiết để cho phép các chương trình vận hành qua tên NDN có thể đạt được bằng
các quy ước được thống nhất giữa các nhà sản xuất dữ liệu và người dùng, ví dụ như các
quy ước ghi rõ phiên bản và phân đoạn.
Quản lý không gian tên không phải là một phần của kiến trúc NDN, giống như các
mạng IP cung cấp gói tin sử dụng địa chỉ IP, nhưng quản lý không gian địa chỉ IP không
phải là một phần của kiến trúc IP. Tuy nhiên, đặt tên dữ liệu là phần quan trọng nhất trong
thiết kế NDN. Dữ liệu được đặt tên cho phép NDN tự động hỗ trợ các chức năng khác
nhau bao gồm phân phối nội dung (nhiều người dùng yêu cầu cùng một dữ liệu ở những
thời điểm khác nhau), multicast (nhiều người dùng yêu cầu cùng một dữ liệu cùng một
lúc), tính di động (người dùng yêu cầu dữ liệu từ các địa điểm khác nhau) và mạng lưới
chậm trễ (người dùng truy xuất dữ liệu qua kết nối không liên tục). Đồng thời, vẫn đang
ở giai đoạn đầu của sự hiểu biết cách ứng dụng tốt nhất nên chọn tên để tạo điều kiện cho
việc phát triển ứng dụng và phân phối mạng. Có được hiểu biết thông qua việc phát triển
và thử nghiệm một loạt các ứng dụng thí điểm, trích xuất một bộ nguyên tắc cơ bản và
hướng dẫn để đặt tên trong mạng NDN. Chuyển đổi các nguyên tắc và hướng dẫn này
thành các quy ước đặt tên có thể được thực hiện các thư viện hệ thống để sử dụng lại thống
nhất đơn giản hóa việc phát triển ứng dụng trong tương lai.
Namespaces : Dữ liệu có thể được tìm kiếm trên toàn cầu phải có các tên duy nhất
trên toàn cầu, nhưng tên được sử dụng cho truyền thông địa phương chỉ có thể yêu cầu chỉ
định tuyến địa phương , để tìm dữ liệu phù hợp. Các tên dữ liệu cá nhân có thể có ý nghĩa
trong nhiều phạm vi và bối cảnh khác nhau, từ "chuyển đổi ánh sáng trong phòng này"
18
sang "tên tất cả các quốc gia trên thế giới". Quản lý không gian tên không phải là một
phần của kiến trúc NDN, giống như quản lý không gian địa chỉ không phải là một phần
của kiến trúc IP. Tuy nhiên đặt tên là phần quan trọng nhất của thiết kế ứng dụng NDN.
Không có vấn đề cạn kiệt địa chỉ vì không gian tên là không bị chặn. Không có vấn đề
chuyển hướng NAT vì máy chủ lưu trữ không cần phải tiết lộ địa chỉ của nó để cung cấp
nội dung. Tính di động, đòi hỏi phải thay đổi địa chỉ trong IP, không còn làm gián đoạn
truyền thông vì tên dữ liệu vẫn giữ nguyên. Cuối cùng, việc phân bổ địa chỉ và quản lý
không còn cần thiết trong các mạng cục bộ, đặc biệt là trao quyền cho các mạng cảm biến
nhúng.
Các giao thức định tuyến IP, BGP, IS-IS và OSPF đã được kiểm chứng tốt và có
thể được sử dụng nhiều hoặc ít giống như các giao thức định tuyến trong mạng NDN.
Thay vì thông báo các tiền tố IP, router NDN sẽ thông báo các tiền tố tên bao gồm dữ liệu
mà router sẵn sàng phục vụ. Router chỉ đơn giản là xử lý các tên như là một dãy các thành
phần không rõ ràng và làm khớp các tiền tố dài nhất thành phần của tên trong một gói tin
trong FIB. Tuy nhiên, một không gian tên không giới hạn đặt ra câu hỏi làm thế nào để
duy trì sự kiểm soát các kích thước bảng định tuyến. Một câu hỏi quan trọng nữa là liệu
việc tìm kiếm các tên có thứ bậc có chiều dài thay đổi có thể được thực hiện ở tốc độ
đường truyền.
20
trong số tất cả các đường đi có sẵn. OSPF hỗ trợ Opaque LSA (OLSA) để cung cấp khả
năng mở rộng để sử dụng trong tương lai. OLSA bao gồm một tiêu đề LSA tiêu chuẩn
theo sau bởi một dữ liệu cụ thể ứng dụng , có thể được sử dụng bởi bất kỳ ứng dụng bên
ngoài để mở rộng OSPF. OLSAs được phân phối bởi OSPF trên toàn mạng. Sự phân bố
này của OLSAs trong mạng được giới hạn bởi phạm vi làm tràn, được xác định bởi các
loại Opaque Type trong tiêu đề OLSA.
2.8 Thiết kế
Định tuyến trong NDN không giống với định tuyến IP truyền thống theo hai cách:
- Định tuyến theo tên : Nhà sản xuất dữ liệu đăng ký name prefix, không phải địa
chỉ name-prefixes.
- Multipath : tính năng dự kiến cung cấp nhiều đường đi cho mỗi name prefix.
OLSA cho phép quảng bá thông tin cụ thể về ứng dụng trong mạng. Các nút kế
thừa sẽ không sử dụng các LSA này để xây dựng topology của chúng, nhưng vẫn sẽ chuyển
tiếp chúng. Điều này đảm bảo sự tương thích ngược với các nút kế thừa và cho phép thực
hiện các chức năng mới giữa các nút được nâng cấp. Hơn nữa, bộ định tuyến mã nguồn
mở, chẳng hạn như Quagga OSPF, cung cấp một API cho phép dễ dàng kích hoạt và thu
hồi OLSAs thông qua OSPF. Tính linh hoạt và dễ sử dụng này làm cho OLSA trở thành
ứng cử viên hoàn hảo cho các tiền đề quảng bá. OSPFN tạo ra các tuyến đường để đặt tên
các tiền tố và cài đặt nó vào CCND (Content Centric Network Daemon) [4], nó sẽ xử lý
việc chuyển tiếp các thông điệp về Interest and Data. Cụ thể hơn, mỗi router NDN chạy
CCND, OSPFN và OSPFD (OSPF daemon) song song (Hình 3.1). OSPFN xây dựng Tên
OLSAs và đưa chúng vào OSPFD cục bộ, làm tràn OLSAs vào toàn bộ mạng. Khi OSPFD
tại một nút nhận được OLSA, nó sẽ phân phối OLSA tới OSPFN cục bộ của nó. Vì mỗi
LSA mang ID của router có nguồn gốc từ LSA, OSPFN có thể lấy được ID bộ định tuyến
của một OLSA Tên và truy vấn OSPFD để lấy nexthop để tiếp cận router (lưu ý rằng
OSPFD vẫn giữ các LSA thông thường và tính toán đường đi ngắn nhất dựa trên che phủ
topology). OSPFN sau đó cài đặt name prefix và liên kết của nó vào trong CCND FIB.
25
Khi sử dụng nhiều đường kết nối, OSPFN sẽ tạo ra một danh sách các mục FIB
cho mỗi name prefix : các nexthops được ưu tiên nhất là các router dành cho các router
gốc, được sắp xếp theo chi phí đi kèm với đường đi của chúng, tiếp theo là các nexthops
được ghép nối theo thứ tự giảm dần. OSPFN sau đó chèn các mục FIB theo thứ tự ngược
lại, như CCND cố gắng nhập mục FIB cuối cùng được chèn vào đầu tiên.
2.8.2 Tên thông điệp OLSA
Thông báo tên OLSA mang một name prefix duy nhất. Định dạng của nó được thể
hiện trong hình 3.2. Phần lớn các trường được OSPFD chỉ định trong router quảng bá.
OLSA có ba phạm vi cho sự tràn mạng. Sử dụng LS Type "10" cho vùng phạm vi làm
tràn, có nghĩa là OSLA sẽ được làm tràn chỉ trong khu vực hiện tại. Các loại Opaque có
thể chứa một giá trị trong phạm vi 127-255 cho việc sử dụng cụ thể ứng dụng, sử dụng
236 cho Tên OLSA. ID không rõ ràng là một giá trị duy nhất được chỉ định bởi người
dùng để xác định tên này trước. Opaque thông tin chứa vùng 32-bit cho name prefix ,
vùng 8-bit cho định dạng name prefix.
Hình 2.4 : Các chuỗi thông báo trao đổi giữa OSPFN, OSPFD và CCND
29
- ./waf configure
- ./waf
- sudo ./waf install
- sudo ldconfig
3.2.7 Ndn-tool
Tải file ndn-tool bằng dòng lệnh : git clone https://github.com/named-data/ndn-tool
Sau đó vào thư mục chứa file NLSR đã clone, bật cửa sổ Terminal và nhập các
lệnh sau để cài đặt :
- ./waf configure --enable-ping --enable-dump
- ./waf
- sudo ./waf install
Sau khi cài đặt tất cả các file thư viện trên vào Ubuntu, chúng ta bắt đầu thử nghiệm
môi trường NDN.
Hình 3.1 : Thư mục chứa các file cài đặt NDN.
Để khởi động Mini-NDN vào thư mục mini-ndn bật cửa sổ Terminal và gõ lệnh
sudo minindn để kích hoạt chương trình, Sau khi đã cấu hình sẽ tạo ra 4 node a,b,c,d các
liên kết và controller (Hình 3.2).
32
Để xem liên kết của các node trong Mini-NDN dùng lệnh : minindn> net
Để xem bảng chuyển tiếp của node a dùng lệnh minindn> a nfdc fib.
Trên node a sẽ có thông tin định tuyến của các node b,c,d quảng bá lên mạng, trong
đó có tên Prefix gồm có nexthops, faceid và cost. Cost từ node a đến node c là 10, node a
đến node b là 10, node a đến node d là 20 vì phải đi qua node b.Và tên NDN đã học được
từ bảng định tuyến bao gồm : /ndn/b-site/b, /ndn/c-site/c, /ndn/d-site/d.
Để xem bảng chuyển tiếp của node c dùng lệnh minindn> c nfdc fib.
Trên node c sẽ có thông tin định tuyến của các node a,b,d quảng bá lên mạng, trong
đó có tên Prefix gồm có nexthops, faceid và cost. Cost từ node c đến node a là 10, node c
đến node b là 20, node c đến node d là 30 vì phải đi qua node a,b.Và tên NDN đã học được
từ bảng định tuyến bao gồm : /ndn/a-site/a, /ndn/b-site/b, /ndn/d-site/d.
Dùng client ping, vào thư mục HOME của node a để tiến hành ping từ client (Hình 3.9)
Sau khi đã lắng nghe ping từ client đến, server trả lời.
Sau khi nhận được gói tin Interest từ node b gửi tới, node d gửi gói tin Data phản hồi
thành công từ node b gửi đến để hoàn tất quá trình trao đổi thông điệp.
40
Hoặc cũng có thể tiến hành ping giữa các node giựa trên tên NDN đã được quảng
bá trong bảng định tuyến của các node bằng cách vào thư mục Mini-NDN và dùng lệnh :
sudo minindn ndn_utils/topologies/default-topology.conf
Node c tiền hành ping đến node d :
mini-ndn> c ndnpingserver /ndn/d-site/d &> /dev/null &
mini-ndn> c ndnping -c5 /ndn/d-site/d
Node d tiền hành ping đến node c :
mini-ndn> d ndnpingserver /ndn/c-site/c &> /dev/null &
mini-ndn> d ndnping -c5 /ndn/c-site/c
Trong đó /dev/null là file này không lưu gì vào trong cả nên dĩ nhiên là cũng không
xuất ra bất cứ cái gì.
41
Tiến hành ping một tên NDN mà router đã quảng bá trên bảng chuyển tiếp :
Hình 3.19 : arizona ping tên NDN được quảng bá trên mạng.
43
KẾT LUẬN
Đề tài nghiên cứu với mục tiêu tìm hiểu về kiến trúc Internet trong tương lai Named
Data Networking, tìm hiểu về giao thức định tuyến OSPF và OSPFN về mô hình cơ bản,
thiết kế, quá trình trao đổi thông điệp và tính toán đường đi đến đích.
Thử nghiệm NDN trên môi trường Linux, cài đặt các thư viện giả lập môi trường
NDN cho phép các tên mà NDN đã quảng bá có thể trao đổi với nhau, tìm hiểu về bảng
định tuyến và bảng chuyển tiếp của NDN.
Named Data Networking là một kiến trúc Internet lớn sẽ thay đổi kiến trúc Internet
hiện tại nhưng vẫn chưa ứng dụng ngay được. Vì cung cấp nhiều đường đi đến đích nên
NDN sẽ không có lợi thế về tốc độ xử lý.
Xác nhận NDN như là một kiến trúc Internet trong tương lai: khả năng mở rộng
định tuyến, chuyển tiếp nhanh, mô hình tin tưởng, an ninh mạng, bảo vệ nội dung và sự
riêng tư.
44