NFD中包是如何传递的:NDN中的包格式:Interest包、Data包、Nack包(TLV编码)NDN中的包处理过程:OverIP(Face):最新的NDN协议版本是2.1,实现是NFD:Face是连接NDN和底层传输的接口,NDNforwarder可以通过face发送和接收Interest,Data,Nack,face来处理底层的通信机制。大致流程:在Face的上面就是我们熟悉的NDN协议了,包的处理都是按照NDN来处理的。以前的CCNx里面的具体连接步骤(HostA和HostB):1.在主机A上建立UNIXsocketface和localccndA通讯2.在主机A上建立一条和主机B的连接3.主机B接受连接4.在主机B上建立UNIXsocketface和localccndB通讯(addressfamily为AF_UNIX)建立:1.直接Over以太网的(NDN直接在以太网上操作)2.Overlaytunnel:UDP、TCP、WebSocket3.Unix-domainsocket(communicationbetweenNFDandlocalapp)维护:1.FaceTable2.FaceTable::add3.afterReceiveInterestafterReceiveDataafterReceiveNacksignals4.sendInterestsendDatasendNackmethods实现细节:1.LinkService(UDP/TCP和Forwarder之间的Link)分片、重组、网络层计数、故障探测2.Transport(TCP/UDP)Actsasanwrapperoveranunderlyingnetworktransmissionprotocol(TCP,UDP,Ethernet,etc.)andprovidesserviceslikelink-layercounters.主要是和TCP、UDP之间的封装分片和重组:Fragmenter:将要传的数据分片,加入FragIndex和FragCount域Reassembler:Endpoint_id(64bits)命名:NameTree+Hash(CityHash)也就是给名字建Hash树,而每个名字空间里面有以下这些东西: