DARPA互联网架构是什么


顶层目标是什么


七个二级目标








疑问1
针对第三点,对于IP层,向上实现,就是说TCP/UDP等协议基于IP的特性,通过编程语言来实现,那向下实现,即针对底层网络,如果要兼容IP,在工程上是如何做到的呢?即如果我要发明一个新的网络技术来接入当今互联网,应该怎么做,或者说需要做什么呢?


关键疑问------操作系统的作用&传输的具体过程
意思是说TCP/UDP,转为IP报,IP报再转到链路层传输所用的帧都是发生在操作系统当中吗?就是应用程序调操作系统的API,然后API先是负责算出来TCP协议相关的信息,包装出TCP包,完成网络层,然后再包装出IP包,完成运输层,最后再看目的地,选择对应的链路协议层,包装成其对应的链路帧?

应用程序首先调用 Socket API

传输层处理:构造 TCP 段或 UDP 数据报


网络层处理:封装成 IP 数据报

IP 层查询路由表


为什么是路由结果决定链路协议?

疑问3&释疑总结
在查询IP路由表时,这个路由表是在本机上的吗?就是说顶层用户在通信的时候,是要有目标的IP地址,然后操作系统最终打包出IP包后,其中包含了目的地的IP地址,然后查找本机上的路由表,来决定接下来这个IP包走设备上的哪个口出去;
那如果这个目标IP地址是第一次出现呢?即本机路由表上没这个IP地址,那怎么知道从哪个口出去,选哪个物理链路层?又或者,如果这个IP地址同时被多个物理链路层所记录,即走哪个口都可以,那会怎么选?
获取下一跳的链路层地址


链路层封装

最后由设备驱动和网卡发送

疑问2
那操作系统在打包出IP包之后,该怎么知道这个IP包要走哪种物理链路层出去呢?比如一个设备,连着各种可能的数据链路,比如wifi,网线,以太网,CXL,NVLINK等一系列;此外,与设备相连的各种外设,比如鼠标,键盘,蓝牙,耳机音响等,交互数据的时候也是用IP吗
IP向下实现
IP 如何运行在底层网络上?
