學號:310505030 姓名:陳偉銍
Project on GitHub: https://github.com/LaZoark/NDN-esp8266
NDN (Named Data Network) 是一種網絡架構,旨在通過以階層式(hierarchical)和自我認證(self-certifying)的方式來組織資訊,進而提高網路的可擴展性、安全性和效率。因此我認為NDN可以在幾個方面為物聯網(IoT)帶來好處。
In-network caching is a technique that aims to optimize data transmission in computer networks. The idea is to store frequently accessed data closer to the user, reducing the need for long distance data transmission, which can be both slow and expensive. This technique can greatly reduce latency, as users can access the data they need much more quickly. Additionally, in-network caching can help conserve bandwidth, as it reduces the amount of data that needs to be transmitted over long distances. Overall, in-network caching can help improve the performance and efficiency of computer networks, making them more reliable and cost-effective.
In the context of Named Data Networking (NDN), in-network caching is a key feature that allows data to be stored and retrieved from multiple nodes in the network, rather than just from the original source. This further reduces the need for long distance data transmission and improves latency, as data can be retrieved from nearby caches rather than always having to request it from the source. NDN's use of in-network caching is just one of the many ways in which it aims to improve the efficiency and security of computer networks.
本專案使用四個esp8266開發板(NodeMCUv2)建構命名資料網路(NDN),並基於Ping的機制來示範producer與consumer之間封包與資料的溝通。
為方便展示,本專案中Server同時扮演producer與NDN-Router的角色。
通過server端的按鈕可以決定是否回應client發送過來的請求,若按下按鈕則預期成功發送回client端,同時client端的LED也會亮起來約100ms,以示一次完整個溝通。
除了LAN底下的NDN,本專案的clients也有與UCLA的router保持連線,每4秒會向其發出一次請求,請求成功則會亮板上內側的藍色LED。
網路測試與調適工具:MacOS
單元測試:Python (尚未整理,僅自行測試,故未附上)
開發環境:C/C++ 使用PlatformIO進行開發