计算机网络 - 网络层


网络层


网络层向上只提供简单灵活、无连接、尽最大努力交付的数据报服务。网络层不保证交付的无差错,其在发送数据时不需要先建立连接,每一个数据包都是独立发送的。


网络(网际)层协议


地址解析协议 ARP(Address Resolution Protocol) : 

其实ARP算是在链路层的了,它的出现是为了通过IP地址找到MAC地址,每一个适配器都有一个ARP高速缓存,它保存了本地局域网其他主机和路由器的IP地址和MAC地址,如果IP地址为A的主机或路由器想要发送信息到IP地址为B的主机上,那么它会查看高速缓存表,如果表里面没有B主机的数据,那么主机A就在局域网广播ARP请求,主机B响应该请求给主机A,同时还记录下主机A的mac地址到自己的ARP缓存表,以备不时所需。高速缓存的数据项是有生存时间的,数据项过了生存时间就会删除该记录。注意:ARP请求只能解析同一局域网上的主机或路由器。


网际控制报文协议 ICMP

网际组管理协议 IGMP

网际协议 IP(Internet Protocol)


路由器


路由器这个东西太厉害了,连接各个大大小小局域网,也就沟通网络A与网络B的中间设备,他的任务是转发分组的。自备路由表(见下文路由选择协议)。这个路由器可划分两个部分:路由选择(见下文路由选择协议)和分组转发。

如图: 

分组转发:就是根据路由表查看转发表把输入端口收到的报文从合适的输出端口转发出去

如图:

这是交换结构的进化史:

如图: 


分类IP地址



子网划分


由于美国佬的不科学分配,导致IP地址出现了许多浪费,幸好有后续的补充措施,比如子网划分和构成超网,先说这个子网划分,我们知道IP地址就那么多,有的地方怕以后不够用可能就申请个B类而不去申请C类,但发现太多了,还有很多IP地址浪费,那么他就把这些没用的都归成子网,给需要的地区用,那么这子网是如何划分呢?因为子网划分的出现,因特网规定,所有路由器的路由表都必须添加一字段——子网掩码

如下图:

根据上文,我们知道,IP数据报到达路由后会路由表,有了子网掩码这一列后就会逐位AND运算,如果与目的地址相同则进入下一跳或者直接交付,注意:在对外部网络路由器R的子网掩码是普通的二级B类IP地址,如果直接交付则进入该网络,进入后就看见了划分出来的不同子网,这些子网的子网掩码就和路由器R不一样了,也就是产生了三级IP地址的效果。所以我们这样理解路由器R像是个大门,进入大门才能看见大门里面还有其他小门。不进去就只能看见大门。

如图:


构成超网(无分类编址CIDR)


根据上文的子网划分,我们大概知道了路由器可以设置子网掩码来划分子网,由2变成3,那构成超网,就是消除了传统的A类B类...的划分。它采用斜线记法来表示原先的网络号和主机的界限,斜线也相当于子网掩码的作用,及划分网络和主机号界限。

如图:

触类旁通,那取消了IP地址的ABCD分类,那么意味着可以自定义网络号和分机号的位数,根据子网划分的思想,就可以想到一个网络后下面可以有2的次方的子网,子网下面也可以有2的次方的子网....这样一个网络号下面就会出现许许多多子网及子网的子网,也就是会有个地址段,这个地址段的聚合称为路由聚合 也称为构成超网

如图:

IP数据报去路由表查看IP地址时将采用最长网络前缀匹配原则。并且可以使用二叉线索树查找对应IP地址。


网际控制报文协议 ICMP


经常我们会看见404错误即网页不存在错误,那网络层是如何发回我的IP数据在远方传输发生的错误呢?这个ICMP就是这个作用,ICMP差错报告报文共如下5种:

终点不可达: 就是终点到不了。

源点抑制: 当路由器或主机拥塞时丢弃报文,并发送源点抑制报文,告诉发送端发慢点。

时间超过: IP数据报间接交付超过了生存时间TTS

参数问题: IP数据包首部参数问题

改变路由(重定向): 路由器发出该报文,告之主机,下次不要发给我了,有更好的路径

注意:ICMP协议发回差错报告报文时会丢掉IP数据包里的数据,保留原首部并把原首部包裹进差错报告报文的数据部分,自己再添加个IP协议首部发送出去

如图:

ICMP两种询问报文: 

1.回送请求和回答(测试某目的主机状态及是否可达) 

2. 时间戳请求和回答(用来时钟同步和测量时间)

ICMP应用: 

1. 分组网间探测PING命令(PING是应用层直接使用网络层ICMP协议的,没有经过TCP和UDP) 

 2. traceroute(UNIX)或tracert(Windows)命令(通过每次让生存时间TTS加一,获取IP数据包沿途经过的路由信息)


路由选择协议


就是路由选择算法,也就是上文提到的路由表是怎么得出来的。路由选择算法是动态的、分布式的。因特网将互联网划分了许多自治系统,一个ISP就是一个自治系统,因特网将路由选择协议分为两大类。


1. 内部网关协议IGP : 一个自治系统内部使用的协议,如RIP和OSPF


路由信息协议 RIP 基于距离分量的路由选择协议,仅使用于小型局域网(数据报TTS小于16的),路由表更新的原则是找到每一个目的网络的最短路径。原理是:按固定的时间间隔,每一路由器仅向相邻路由器交换信息,随之遍布整个局域网,每一路由收到相邻路由的路由表信息,如果发现到达某一目的网络距离比自身原有路由表小,则更新自己的路由表。但一路由出现问题(不可达),一个个传出去,要很久的时间。


开放最短路径优先 OSPF基于分布式的链路状态协议,使用于规模大的网络,和RIP不同,OSPF只有当链路状态发生变化时,就会向网络内所有路由器发送信息。这样网络内所有路由器拥有并一起维持一份链路状态数据库,每一链路还存在度量用来表示费用,距离,时延,带宽等,相当于数据结构图路径的权重。为适应大型网络,OSPF采用层次结构的区域划分

如图:

每一自治系统有一与主干区域沟通的边界路由器,小的自治系统和主干区域链路状态数据库分离,像子网似的,在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。OSPF不用UDP而是直接用IP数据报传输。


2. 外部网关协议EGP : 两个自治系统使用的协议BGP

边界网关协议BGP: 由上文,OSPF已经很给力了,为啥还要有这个外部网关协议呢。典型的,我们中国的数据不可以从岛国那里传过来,不然被偷了怎么办。所以这个边界网关协议不仅仅是去选择合适的路由器,更是有许多其他的参数要设置,最重要的还是要避免数据报进入一个环路。协议说明,每一个自治系统有一个BGP发言人,这个发言人会与其他自治系统的BGP发言人建立TCP连接,每个BGP根据收到的网络信息构造出自己自治系统的树形连通图。如果一个BGP发言人收到其他BGP发来的路径通知,可是它自个连通图里面有到达的其他路径,那么它就不采用这条路径(因为会环路)。所以,BGP协议是为了更可靠,不是为了快。



IP多播 


通常我们再看一些视频直播类需要发送许多相同报文到正在观看直播的用户的主机。就需要到IP多播技术,因为是相同的数据的数据报,只是目的IP地址不同,如果我们发出大量的话,就会造成网络的浪费,所以前辈搞出了IP多播。过程就是特定的多播报文,路过万水千山,到达目的局域网,经过支持多播的路由器时,路由器会对报文进行复制,并发送给加入该多播组的主机。如果没发到,也不会产生ICMP差错报文。IANA指定全球范围内科使用多播的IP地址224.0.1.0至238.255.255.255。IP多播分两种: 本局域网硬件多播和因特网多播,但因特网最终到了局域网还是要依赖硬件多播。为实现IP多播,还需要IGMP协议多播路由选择协议的支持


网际组管理协议IGMP


IGMP让连接在本地局域网上的多播路由器知道本地局域网是否有主机实为进程)加入或退出了某多播组。IGMP使用的IP数据报传递其报文,它就干两个事:一个是有主机加入或退出多播组要知道,并告诉其他多播路由器,另一个保证加入的成员的动态性,就是每隔125秒问一次,如果某主机几次都不理它,那它默认这个组成员已经退出,并告诉其他多播路由器。


多播路由选择协议


虚拟专用网VPN

这个VPN很熟吧,是的,作为IT人员这个VPN什么什么的作为基本技能大家都知道,那我们看看它原来是干啥的。我们知道,有一些企业的计算机是不需要联网的,但他们的局域网也是基于TCP / IP协议的,这也就意味着它是不需要全球唯一的IP地址,那申请IP地址不是浪费嘛,所以国际什么互联网标准就给了一堆不在互联网中使用的IP段,这一堆给企业的IP段叫做本地地址,像这一些局域网我们称为专用互联网、本地互联网或专用网。但企业有的部门在北京,有的在上海,如果自个拉宽带就太耗钱了。所以企业就利用公用的互联网作为本地互联网的通信载体,传输过程中数据会进行加密处理,这类专用网称为虚拟专用网VPN。一个机构要构建自己的VPN就必须购买专门的硬件和软件。

如图: 

两个本地互联网都必须有至少一个全球唯一的IP地址,IP数据报在因特网中传输时目的地址和源地址就是两端的全球IP,到了本地互联网的路由器后再对其进行解密,恢复数据包里面的本地IP地址,发出同理。

还有一种远程VPN,也是通过相同的原理,方便出差的员工连接自己公司的内部互联网。


网络地址转换NAT


有这种情况,本地IP地址想连接互联网,却不想申请全球IP。那么网络地址转换应运而生。 

本地专用网,发送IP数据包经过拥有全球IP的NAT路由器时,路由器使用网络地址转换将IP数据报的源IP地址改成路由器它自己的(因为它的IP是全球IP),数据报到远方主机后,返回经过NAT路由器又网络地址转换成本地IP,即它发出时的IP,这样它就实现了联网功能。

其实我们所用的IP大部分都是用这个网络地址转换实现的,我们一直都没用到全球唯一的IP地址。

更复杂的,如果NAT路由具备多个全球IP那么它就不懂把目的IP转成那个本地IP。这时,他就用到了运输层的端口号。使用该技术的NAT 叫做网络地址与端口号转换NAPT


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值