计网笔记_4

HopeMaker3年前 (2021-12-13)计算机网络796

第4章 网络层:数据平面

4.1 导论

数据平面:

网络服务模型;

转发和路由;

路由器的组成和工作原理;

通用转发。

 

网络层服务:

在发送主机和接收主机之间传送段;

在发送端将段封装到数据报中;

在接收端将段上交给传输层实体;

网络层协议存在于每一个主机和路由器;

路由器检查每一个经过它的IP数据报的头部(解封装看IP选路径再封装)。

 

SDN根据很多因素,端口、IP、标志位匹配做流表,比传统只看IP的方式更灵活。

 

传统方式数据平面在路由上实现,网络中一个个路由构成控制平面,是分布式的,数据平面和控制平面在同一层实现,所以需要重构路由逻辑很困难。

 

现在的方式SDN 软件定义网络,逻辑集中的控制平面,先根据一些因素算出流表,再按路由表对数据做动作,所以之后再要修改逻辑,升级功能只需要修改流表就可以了,所以是可编程的集中式的。

 

网络服务模型service model:

对于单个数据报提供的服务:可靠传送;延迟保证,如:少于40ms的延迟;

对于数据报流的服务:保序数据报传送;保证流的最小带宽;分组之间的延迟差jitter。

 

IP网络对上层提供的服务:best effort尽力而为。

 

 

4.3 路由器router组成

传统路由结构(简化):

路由:运行路由选择算法/协议(RIP, OSFP, BGP)生成路由表;

转发:从输入到输出链路交换数据报,根据路由表进行分组转发。

 

输入端口的功能:

分布式交换:

根据数据报头部的信息如:目标地址,在输入端口内存中的转发表中查找合适的输出端口(匹配+行动);

基于目标的转发:仅仅依赖于IP数据报的目标IP地址(传统方法);

通用转发:基于头部字段的任意集合进行转发。

输入端口缓存:

当交换机的输出顺序小于输入顺序时,可能需要排队,所以要缓存一部分降低排序延迟,并在一定程度上预防溢出造成的数据丢失。

Head-of-the-Line HOL blockings,排在队头的数据报组织了队列中的其他数据报向前移动。

 

交换结构:

通过内存交换:第一代路由器:

在传统的计算机上,在CPU直接控制下完成的交换,用软件的方式,通过memory实现,需要过两次系统总线BUS,被内存的带宽限制,而且一次只能转发一个组。

通过总线交换(不是系统总线):第二代路由器:

数据报经过共享总线,从输入端口转发到输出端口,省去了走系统总线的过程,且只走一次共享总线,但共享总线也限制了交换速度,而且一次也只处理一个分组。

通过互联网络crossbar等交换:第三代路由器:

同时处理多个分组,克服总线带宽限制。有多种实现方式,比如榕树Banyan,纵横crossbar,等。高级设计可以将网络数据报分片为固定长度的信元,通过交换网络交换。

 

调度机制:

先来先服务FIFO first in first out:按照分组到来的顺序优先发送。

按优先级服务:优先发送优先级高的。

其他调度策略:weight fair queuing WFQ,加权优先级。

 

 

4.3 IP internet protocol

IP数据报格式:

第一层32 bits:

协议版本号Ver 4 bits,head 4 bits,type of service 8 bits,length数据包总长16 bits

第二层32 bits:

分片/重组使用:16 bits identifier,4 bits flags,12 bits fragment offset偏移量

第三层32 bits:

Time to live:8 bits,upper layer上一层协议将载荷交付 8 bits,Internet校验和 16 bits

第四层32 bits:

Source IP address 源IP地址

第五层32 bits:

Destination IP address 目标IP地址

------上面是固定长度的,20个字节的IP head

第六层32 bits:

Options,时戳,由路由器记录,指定所经过路由器的列表。

第七块儿:

数据。

 

IP数据报传输TCP段时头部有:

20 bytes of TCP,20 bytes of IP = 40 bytes + app layer overhead

 

IP分片和重组:Fragmentation & Reassembly

网络链路有 MTU maximum transmission unit 最大传输单元

MTU – 链路层帧所携带的最大数据长度:不同的链路类型;不同的MTU

大的IP数据报在网络上被分片fragmented,一个大IP数据报被分成若干个小的数据报,每个数据报在头上有一样的IP,按需来的offset偏移量,最后一个分片的flag标记为0,这些头部包含的信息被用于标识,排序相关分片,遇到flag为0的分片就知道数据报传完了。

重组只在最终的目标主机进行,减小路由器压力是一方面,不同分片走的不同路由是另一方面。

 

IP地址:32位(4字节)标识,对主机或者路由器的接口编址,标记的是点而不是机器。

 

AP接入点(无线局域网中)access point

 

IP子网subnets:

子网具备两个条件:

IP前几位是一样的(从路由上断开后,形成的孤岛式结构,路由器也有IP,也算);

子网内部数据的分发不需要借助路由器,一跳可达,可以借助交换机。

 

                                                        网络                     主机

A类网(第1个字节网络号)           2^7-2=126           2^24-2=

B类网(第1,2个字节网络号)      2^14-2=               2^16-2=65534

C类网(第1,2,3个字节网络号) 两百多万              2^8-2=254

D类网                                              multicast多播(组播)网

E类网                                               预留

 

网络中传播信息是以一个个局域网(子网)为单位传的,按IP地址的话路由表根本没法算,代价太大,数据先发到子网,再由子网路由到目标IP。

 

特殊IP:

子网部分全0:本网络;

主机部分全0:本主机;

主机部分全1:广播地址,这个网络的所有主机。

127.x.x.x地址:回流地址,或测试地址,到网络层返回。

内网地址:在互联网中没有意义,只在局域网中分配,用作标识主机。

 

IP编址:CIDR Classless Inter Domain Routing 无类域间路由:

子网部分可以在任意位置划分,剩下为主机号。

不固定前几个字节是网络号了。

所以需要子网掩码,将作子网部分的网络号编码与1做与运算,主机部分编码与0做与运算,如此得到的结果就是子网的IP网络号,这个由两段1和0组成的编码就是子网掩码。

 

转发表和转发算法:

获得IP数据报的目标地址;

对于转发表中的每一个表项:如果目标IP地址和子网掩码与运算之后能得到有意义的目标地址,则按表项对应的接口转发该数据报;如果没找到,则按默认表项转发数据报(所谓默认表项就是该网络的一个出口,把数据报送出去)。

 

如何获得IP地址:

网络管理员手动配置;或者通过DHCP Dynamic Host Configuration Protocol动态主机分配协议从服务器自动获得一个IP地址。

 

DHCP:自动分配,每次重启更新,也支持使用之前用过的IP地址。

工作概况:

主机广播DHCP discover报文;

DHCP服务器用DHCP offer提供报文响应;

主机请求IP地址:发送DHCP request报文;

DHCP服务器发送地址:DHCP ack报文。

 

如何获得一块地址:

ICANN:internet corporation for assigned names and numbers国际机构:

分配地址;管理DNS;分配域名,解决冲突。

 

层次编址:

路由聚集route aggregation:子网前缀一样的那些子网,都发给同一个路由,这个路由再下一条往外发的时候,就可以把子网前缀合一块儿,即路由聚集一次,只区分子网前缀之外的部分,外面送进来的时候,只要子网前缀是这个的数据,都先发到这个路由就行。

特殊路由信息more specific routes:整体迁移。

 

NAT network address translation网络地址转换:

内网地址和外网地址转换,要记住源端口和源IP(内网),回来的时候可以进行分发。

 

NAT穿越问题:外网要跟内网通信,不知道具体目标主机地址:

方案1:静态配置NAT,内网分配固定,转发进来的对服务器特定端口连接请求;

方案2:UPnP Universal Plug and Play协议,和IGD Internet Gateway Device协议,允许NATted主机可以获知网络的公共IP地址,列举存在的端口映射,增/删端口映射;

方案3:增加中继,外网信息到中继,中继转发给目的主机。

 

IPv6结构:一层一样32 bits

Ver版本, priority优先级, flow label流标签。

Payload length(ttl),next header,hop limit

Source address

Destination address

Data

 

Internet control message protocol 网络控制报文协议 ICMP也更新了ICMPv6

 

IPv4到IPv6的过渡:

平滑升级:局部v6,外面是v4,接口使用双栈协议(一边v6,一边v4),升级多了局部大了之后,就是局部v4了,还是双栈协议,转个身就完事了。

 

 

4.4 通用转发和SDN

整个网络层的功能由数据层面和控制层面合作实现。

数据平面完成数据的转发。

控制平面控制数据怎么走。

 

传统的IP网络结构,路由实现数据层面和控制层面的功能,且控制方式是分布式的,控制逻辑固化,改变工作方式很困难。

 

SDN:分发流表,交给路由分发就可以了,路由也可以上报自身状态给SDN控制器,之后路由功能统一,都是分组交换机就可以了。而且不同厂商的服务器都支持SDN协议,各级都可以统一标准,创造健康生态。

 

OpenFlow数据平面抽象

流flow:由头部字段定义;

通用转发:简单的分组处理规则:

模式pattern:将分组头部字段和流表进行匹配;

行动action:对于匹配好的分组,可以是丢弃、转发、修改、泛洪等操作将匹配的分组发送给控制器;

优先权priority:几个模式匹配了,优先采用哪个,消除歧义;

计数器counters:bytes以及packets。

 

match + action统一化各种网络设备的功能,逻辑集中式,因此,路由器,防火墙,交换机,NAT都可以合到一种设备去实现这些功能。


扫描二维码推送至手机访问。

版权声明:本文由借曦光发布,如需转载请注明出处。

本文链接:http://dawnblog.cn/?id=26

分享给朋友:
返回列表

上一篇:计网笔记_3

下一篇:计网笔记_5

相关文章

计算机网络临考笔记

计算机网络临考笔记

这是计网的临考笔记作为考研调剂才转专业到计算机的我来说,虽然本科接触过计算机网络,但是跟那些考研已经强化过一遍的同学一比,相对来说基础还是不大行的,而且这学期老师是全英文授课,考试也是全英文,所以针对期末考试这档子事儿,在深度学习和Pyth...

计网笔记_1

计网笔记_1

第一章:概论主要概念和术语,主要框架技术总括了整体的框架和知识点,打基础,最重要。(以互联网Internet为例)从大的构成来看互联网,包含三个子系统:网络边缘edge – 接入网access – 网络核心core 网络的划分(由...

计网笔记_2

计网笔记_2

第2章 应用层应用层内容很多,有很多协议和应用,但是这学期课程中涉及得比较少,基本只在QoS部分有所涉及,笔记里就大概罗列一下知识点。2.1 应用层原理应用层协议最多可能的应用架构:C/S、peer2peer、混合架构C/S模式:服务器ip...

计网笔记_3

计网笔记_3

第3章 传输层3.1 概述传输层的工作原理:多路复用/解复用RDT reliable data transfer流量控制、拥塞控制 传输服务和协议:位运行在不同主机上的应用进程提供逻辑通信TCP: Transmission Con...

计网笔记_5

计网笔记_5

第5章 网络层:控制平面5.1 导论传统方式:根据路由信息怎么算路由表;SDN方式。  5.2 路由选择算法Link state链路状态算法 & distance vector距离矢量算法 路由协议的目...

计网笔记_6

计网笔记_6

第6章 链路层和局域网LAN6.1 引论和服务链路层的功能基本通过网卡/网络适配器NIC (Network Interface Controller)实现。存在一些寻址问题和网络控制问题。 链路层导论:包括优先链路、无线链路,也可...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。