网络层
网络层的目标:
- 向上提供的服务应独立于路由器技术
- 向传输层屏蔽路由器的数量、类型和拓扑关系
- 传输层可用的网络地址应该有一个统一编址方案
路由算法
- 最短路径算法
- 泛洪算法
- 距离矢量算法(相应的协议成为RIP协议)
- 链路状态路由算法
- 发现它的邻居节点,并了解其网络地址
- 设置到每一个邻居节点的距离或者成本度量值
- 构造一个包含所有刚刚获知的链路信息包
- 将这个包发送给所有的其它的路由器,并接收来自所有其它路由器的信息包
- 计算出每个其它路由器的最短路径
路径最大传输单元(MTU,Path Maximum Transmission Unit)
数据包的分段:透明与非透明,透明分段后会重组,非透明不重组
路径发现(Path MTU discovery)
每个IP包发出时在它的头位置设置一个比特,只是不允许对这个包进行分段操作。如果路由器接受的数据包太大,它就生成一个报错数据包并发送给源端,然后丢弃该数据包。当源端接收到报错数据包,它就使用报错数据包携带的信息重新将出错数据包分段,每个段足够小到报错路由器能够处理。如果沿着路径前进又遇到一个MTU更小的路由器,那么重复上述过程。
Internet的网络层
通信过程:传输层获取数据流,并且将数据流拆成段,以便于作为IP数据包发送。理论上,每个数据包最多可以容纳64KB,实际上,数据包通常不会超过1500字节(因为它们正好可以被放到一个以太网帧里)。IP路由器转发每个数据包穿过Internet,沿着一条路径把数据从一个路由器转发到下一个路由器,直到数据包到达目的地。在接受方,网络将数据交给传输层,再由传输层交给接受进程。当所有的数据段最终抵达目标机器时,它们被网络层重新组装还原成最初的数据报,然后该数据包被网络层传输给运输层。
IPv4协议
IP地址
IPv6协议
相比IPv4的改进:
- IPv6有比IPv4更长的地址。IPv6的地址128位长
- 对头进行了简化。它只含有7个字段(相比之下,IPv4有13个字段)
- 更好的支持选项。加快了数据包的处理速度
- 安全性方面的改进
ICMP——Internet控制消息协议
ICMP,Internet Control Message Protocol。当路由器在处理一个数据包的过程中发生了意外,通过ICMP向数据包的源端报告有关事件。
ARP——地址解析协议
ARP:Address Resolve Protocol。每一块以太网网卡(NIC)都配置了一个唯一的48为以太网地址。NIC根据其48位的以太网地址来发送和接受帧,它们对32为的IP地址一无所知。ARP运行在Internet的大部分的机器上,一旦一台机器运行了ARP,它就会把“IP和以太网”地址的映射保存起来,称为ARP表。
DHCP——动态主机配置协议
DHCP,Dynamic Host Configuration Protocol。当新的设备加入在局域网中时,该设备在自己的网上广播一个报文,请求IP地址。这个请求报文就是DHCP DISCOVER包,这个包必须到达DHCP服务器。如果DHCP服务器没有直接连接在本地网络,那么必须将路由器配置成能够接受DHCP广播并将该请求报文中继给DHCP服务器,由DHCP服务器来处理DHCP报文。当DHCP服务器收到请求,它就为该主机分配一个空闲的IP地址,并通过DHCP OFFER包返回给主机(这个报文或许也要通过路由中继)。为了在主机没有IP地址的情况下完成此工作,服务器用主机的以太网地址来识别这台设备(主机的以太网地址由DHCP DISCOVERY包携带过来)。