打算系统学习下计算机网络,就来翻阅经典的自顶向下
本篇是第四章网络层,在网络中的每一台主机和路由器中都有一个网络层部分。正因如此,网络层协议是协议桟中最具挑战性(因而也是最有趣)的部分。将首先学习网络层 数据平面功能,即网络层中每台路由器的功能,主要是IPv4和IPv6;然后学习网络层的控制平面功能,即网络范围的逻辑,主要是路由选择算法,以及广泛用于今天因特网中的诸如OSPF和BGP等路由选择协议
资源:
网络层的作用是将分组从一台发送主机移动到一台接收主机,需要使用两种重要的网络层功能:
先简单提一嘴软件定义网络(Soft-ware-Defined Networking, SDN),如图所示:
网络层能提供的某些可能的服务包括:
因特网的网络层提供尽力而为服务(best-effort service):传送的分组既不能保证以它们发送的顺序被接收,也不能保证它们最终交付;既不能保证端到端时延,也不能保证有最小的带宽
路由器的体系结构如图所示:
输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层
假设我们的路由器具有4条链路,编号0到3,转发表中用分组目的地址的前缀(prefix)与该表中的表项进行匹配:
当有多个匹配时,该路由器使用最长前缀匹配规则(longest prefix matching rule):在该表中寻找最长的匹配项,并向与最长前缀匹配相关联的链路接口转发分组
交换结构位于一台路由器的核心部位,因为正是通过这种交换结构,分组才能实际地从一个输入端口交换(即转发)到一个输出端口中,三种方式如下:
输出端口处理取出已经存放在输出端口内存中的分组并将其发送到 输出链路上
1、输入排队
线路前部(Head-Of-the-Line, HOL)阻塞:在一 个输入队列中排队的分组必须等待通过交换结构发送(即使输出端口是空闲的),因为它被位于线路前部的另一个分组所阻塞
2、输出排队
1、先进先出(First-In-First-Out, FIFO)
2、优先权排队(priority queuing)
就是特权插队
3、循环排队(round robin queuing discipline)和加权公平排队 (Weighted Fair Queuing, WFQ)
最重要的IP协议:IPv4 [RFC 791]和IPv6 [RFC 2460;RFC 4291]
如图所示:
一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit, MTU),因为每个IP数据报封装在链路层帧中从一台路由器传输到下一台路由器,故链路层协议的MTU严格地限制着IP数据报的长度
故需要分片:
[Stewart 1999]的第1章是介绍IPv4编址的优秀读物
IP地址由因特网名字和编号分配机构(Internet Corporation for Assigned Names and Numbers, ICANN) [ICANN 2016]管理,管理规则基于[RFC 7020]。非营利的ICANN组织[NTIA 1998]的作用不仅是分配IP地址,还管理DNS根服务器
1、子网
如图所示的情况中,如223. 1.1. xxx的IP 地址络形成一个子网(subnet) [RFC950],分配一个地址223.1.1.0/24,其中的 /24记法,有时称为子网掩码(network mask),指示32比特中的最左侧24比特定义了子网地址
2、用动态主机配置协议(Dynamic Host Configuration, DHCP)
如图所示的情况中,通过4步获取IP
假设一个用户坐在家庭网络主机10. 0. 0. 1后,请求IP地址为 128. 119. 40. 186的某台Web服务器(端口 80)上的一个Web页面。主机10. 0. 0. 1为其 指派了(任意)源端口号3345并将该数据报发送到LAN中。NAT路由器收到该数据报, 为该数据报生成一个新的源端口号5001,将源IP替代为其广域网一侧接口的IP地址 138. 76. 29.7,且将源端口 3345更换为新端口 5001。当生成一个新的源端口号时,NAT路由器可选择任意一个当前未在NAT转换表中的源端口号。(注意到因为端口号字段为16 比特长,NAT协议可支持超过60 000个并行使用路由器广域网一侧单个IP地址的连接!) 路由器中的NAT也在它的NAT转换表中增加一表项。Web服务器并不知道刚到达的包含HTTP请求的数据报已被NAT路由器进行了改装,它会发回一个响应报文,其目的地址是 NAT路由器的IP地址,其目的端口是5001。当该报文到达NAT路由器时,路由器使用目 的IP地址与目的端口号从NAT转换表中检索出家庭网络浏览器使用的适当IP地址 (10. 0. 0.1)和目的端口号(3345)。于是,路由器重写该数据报的目的1P地址与目的端 口号,并向家庭网络转发该数据报
目前已经开始缓慢的代替,但仍在拉扯博弈中,这里就看下报文:
通用转发:每台分组交换机包含一张匹配加动作表,该表是由远程控制器计算和分发的
以于OpenFlow [ McKeown 2008 ;Open Flow 2009 ;Casa- do 2014;Tourrilhes 2014]为例,流表的分组匹配字段如下:
用图来抽象
分类:
Dijkstra算法
自治系统(Autonomous System, AS):一个自治系统由其全局唯一的AS号(ASN)所标识[RFC 1930]。就像IP 地址那样,AS号由ICANN区域注册机构所分配[ICANN 2016]。通常在一个ISP中的路由器以及互联它们的链路构成一个AS。然而,某些ISP将它们的网络划分为多个AS
OSPF参见[Huitema 1998;Moy 1998;RFC 2328],使用洪泛链路状态信息和Dijkstra最低开销路径算法。
所有的AS运行相同的AS间路由选择协议,称为边界网关协议(Broder Gateway Protocol, BGP) [ RFC 4271 ;Stewart 1999]
BGP为每台路由器提供了一种完成以下任务的手段:
考虑一下情景:
SDN体系结构具有4个关键特征[Kreutz 2015 ]:
由[RFC 792]定义的因特网控制报文协议(ICMP),被主机和路由器用来彼此沟通网络层的信息。ICMP最典型的用途是差错报告。例如,当运行一个HTTP会话时,你也许会遇到一些诸如“目的网络不可达”之类的错误报文。从体系结构上讲它位于IP之上,因为ICMP报文是承载在IP分组中的。这就是说,ICMP报文是作为IP有效载荷承载
报文类型如下:
简单网络管理协议(Simple N etwork Management Protocol)版本 2 ( SNMPv2) [RFC 3416]是一个应用层协议,用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文。协议数据单元(PDU)的格式和类型如下:
网络层很重要,路由相关知识有点草草过了,回头再细细学下
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。