计算机网络第四章——网络层(上)

提示:朝碧海而暮苍梧,睹青天而攀白日

文章目录


网络层是路由器的最高层次,通过网络层就可以将各个设备连接到一起,从而实现这两个主机的数据通信和资源共享,之前学的数据链路层和物理层也是将两端连接起来,但是却没有网络层强大,网络层强大之处在于根据网络层的一些协议和一些中间设备,这其中有一些规定,规定发给的是哪一个主机,或者设计一个性价比最高的路由

转发主要是发生在路由器内部的,是对网络层的传输单元IP分组进行转发,路由器是有很多的端口的,包括入的端口和出的端口,根据转发表决定从那个口出去,而转发表又是根据路由选择得来的,使用这个路由选择算法规定好一种比较好的路由方式,根据这种方式就可以得到一个路由器找到下一个路由器,路由选择是发生在外部的,可以理解为是路由器之间的,

每一个要转发的分组的详细信息,要有什么形式要有那些字段,以及这个分组如果过长的话如何处理,网络层编址就是对网络层的每一个结点每一个设备分配一个IP地址,IP地址的编址形式,一种就是网络号加主机号的形式,此外还会约定A类B类C类的地址,由于基本编址方式不那么灵活,加上利用率很低,然后就引入了子网划分,会将主机号分为子网号和主机号,CIDR就是无分类编址,也就是完全抹掉了ABCD编址的概念,同时也取消了一种划分子网的概念,

IPV6也就是扩充地址空间,

通过移动IP也就是你的物理地址可能发送变化了,但是IP地址却没发生改变。

静态路由就是手工来设计路由,也就是管理员根据拓扑结构来设计一个路由路径的情况,动态路由就是路由器自己动态的选择,为防止路由压力过大也就采用一种层次路由的方式,将整个网络规模划分成几个小区,每一个区都可以叫做一个自治系统,

IP组播简单来说就是对要传播的信息进行复制,裂化,不是发送n份,而是在每经过一个路由器就进行复制,这样就会给电脑减轻压力,同时也会给整个网络上的资源流动减轻压力,避免一些拥塞的情况,

数据报和分组就像是一个分组的关系,数据报是一个比较长的数据,但是分组是将这个数据报进行切割而划分出来的一个片段,

路由选择就是找路,并不是所有的路都是合适的,要通过一个路由选择算法来确定一个最佳路由,然后按照这个路由将分组转发出去,

异构网络的互连也就是靠一个路由器,

拥塞控制是一个全局性的问题,和流量控制不同的是,流量控制是指发送方的发送速度太快,所以接收方要告诉发送方你慢点发,而拥塞控制是因为整个网络中负载过重,也就是每一个结点都在繁忙的工作,所以导致转发的速度就特别慢,而导致大部分的分组都特别慢,解决的方式有两种,所谓的开环控制就是在网络开始之前将所有可能产生拥塞的因素都考虑进去然后进行预先的控制,而闭环控制就是自动的进行调整,

从一个端口中转发到另外一个端口的转发的过程也就是数据平面的一个主要的功能对应的就是转发的过程,控制平面也就是对应路由选择这个过程,时间短的用硬件,时间长的用软件,

这个首部是这个分组中的一个字段或者多个字段,输出就是对应的这个分组对应的是哪一个分组,转发表的生产不是数据平面所控制的,因此数据平是一个单纯的搬运工,

传统中这个路由器非常的全能既可以转发又可以计算这个路由表和转发表,也即是控制平面(计算一个转发表,或者说执行这个路由选择的算法,)和数据平面(转发)是在一个一个路由器内进行的,

和传统方法数据平面都是一样的,而路由选择则由远程控制器来完成,远程控制器将转发表发给每一个路由器,路由器再基于这个转发表进行转发,远程控制器与路由器进行交流也就是通过软件的方式进行交流,而且这个软件都是可编程的,很多公司的数据通信就是借助这个SDN的方式,相当于路由器起到一个转发的过程,公用一个远程控制器

注意这里的交换机是指的路由器,这个网络控制应用程序是一个最终的控制程序,

将SDN控制器再进行细分,上面的路由选择,接入控制,负载控制等都是网络控制应用程序,为了使得SDN与网络控制应用程序进行交流都是通过一个北向API,

网络范围状态管理层也就是将这个信息进行同一的控制,

这两个平面就是网络层最主要的两个功能,不管是传统方式还是SDN方式转发都是由路由器进行控制的,传统方式中路由选择依然是在路由器中的,而SDN方式中的路由选择就是放在一个远程控制器中,SDN上面就是智力的体现而下面就是一些受控制的设备比如路由器,然后路由器就可以基于此进行转发了,或者说这个北向接口i居寺和网络控制应用程序的接口,而通信层就是与受控制的网络设备进行通信的,

这个分组经过这个路由表之后就可以知道接下来要往哪里走,在这一章网络层主要选择 的路由通常都是路径最短,也就是通过的路由器最少,在使用某种路由协议,这些路由协议将使用路由算法来算出最佳路由,然后将最佳路由填入到路由表中的每一个表项当中,,

拓扑变换不大就是指不会突然加入很多或者突然撤出很多的主机,

就是将一个因特网分成很多小的团体,小的团体称为自治系统,自治系统内使用 的路由选择协议外部是完全不知道的,这样就可以减少每一个路由器表项的个数,内部看不到外部协议,外部也看不到内部协议,网关在很久之前就是路由器的意思,

自顶向下就是应用层,传输层,网络层,链路层,物理层,需要知道这些常见协议的功能,以及之间的联系,而IP数据报的格式就很能说明IP协议的功能,

这一章中IP数据报和分组是不需要太过区分的,可以暂时将两个当成是同样的东西,对于一个IP数据报若是过大就会进行分片,也就是网络层的传输单元分组,对于任何一个数据报它的数据部分都是固定不变的都是20字节而且都是要有的,可变部分就是可有可无,大部分情况下都是没有这个可变部分的,

注意这个位就是bit,是按位进行划分的,这个首部长度可以从0000~ 1111 也就是15个数,单位是4B,也就是假如是15*4就是60B,其中固定部分是20B,剩下40B就是可变部分,并且因为这个固定部分是一定是要为20B,所以这个首部的最小是为5,所以这数据部分就一定是从4B字节的整数被开始,这样是使得IP协议更加的方便,

同样的道理这个总长度是1B为单位的,所以最大值是65535B,但是是不可能达到这么大的,因为过大会进行分片,以满足MTU最大数据传输单元的要求,

这个生存时间是随着经过的路由器的数目而逐渐减少的,长度是8bit,需要记住的就是TCP和UDP,TCP是面向连接的,也就是很6,而UDP的数据很容易被遗弃,

每经过一个路由器都要进行一个首部检验和的检测,来判断这个数据报有没有出错,也就需要进行丢弃,

可选字段是可有可无的,

IP数据报分片的过程,以及IP数据报的几个字段,

分片的前提是需要IP分组同意分组,若是不同意分片也就会返回一个ACMP的差错报文

每一个分片使用的都是和原来一样的一个标识,标志字段有3bit的但是只有两位是有意义的,只有DF为0,MF才有意义,否则MF就没有意义了

这个1420其中的20B是一定要作为一个首部的,然后接下来要对这1400B进行切片,切割的原则是尽可能使得切的部分越大越好,

这个单位的意思是数值乘上单位,才是真正的总长度,

IP地址就是将主机或者每一个主机的接口,或者说路由器的接口一个都赋予一个标识符,每一个设备都是有一个IP地址或者多个IP地址,

一个主机可能是有很多个接口,有线上网就有一个有线接口,无线上网就对应一个无线接口,路由器不止是连一个主机,可能是连多个主机,

之所以可以说是一个网络因为是一个路由器连接的多个主机,以及链路层设备网桥,主机要是连接在一个网络上,那么主机的网络号就是一致的,而且它们的主机号应该是各不相同,应该能区分开,网桥是不能分割广播域的,所以用网桥连接起来的依然是属于同一个网段的,路由器的每一个接口都会有一个网络号的IP地址,所以说路由器可以分割广播域,也就是路由器不同的接口是可以连接不同的网络的,上图的三个绿色的区域叫做无编号网络,之所以叫做网络是因为其中有IP地址,所以上图是有6个实际的网络的,

这个D类地址就是一对多进行通信的时候才会使用的一种地址,

如果一个主机在发送数据报或者说发送分组的时候,不清楚自己的地址是多少,这个源IP地址应该填什么所以它就填上全0,这样一个全0地址是不可以作为一个目的地址的,

网络号全0,主机号特定值,是可以作为分组的源地址,但是不能作为目的地址,因此前面两个网络号全0的标识本网的,

路由器不转发就是路由器可隔离广播域可以隔离分组,经过路由器是不会被转发出去的,第4行网络号是特定值主机号是全0,也就是上图中的某一个网络,

A类中减2是因为要是网络号变成全0,指的是本网络的意思,若似是其中的指变成127,其中的值也是不能使用的,主机号全0也就是本网的网络号,主机号全1就是一个广播地址,广播地址也是不能只配某一个固定的端口,

B类中减一的是全0的情况,减2的情况和上面是一样的,


也就是说私有IP地址在因特网上是无效的,私有IP地址和外网上的主机是可以进行通信的,

这个NAT路由器就是向相当于本地网中主机的一个代表,若是要与因特网进行通信就需要这个作为伪装,要是其他主机要给这个专用网中的主机通信,添加的也是这个NAT路由表中的IP地址,再由这个NAT分发给某一个具体的主机,这两列可以说是分为外网端和内网端,端口号是传输层要学到的,可以唯一的标识主机中的某一个具体进程,不同主机的端口号可以是相同的,将内网中使用的根据映射关系得到这个路由器的IP地址,



所谓子网划分就是将其中的主机号拿出来进行划分为子网号和主机号,注意主机号至少要为两位,剩下的可以作为子网号,

子网掩码就是只要是网络号就写为全1,只要是主机号就写为全0,也就是子网掩码是由一系列的0一系列的1所构成的,

2级IP地址也就是A类B类C类还是对于3级的IP地址都是有子网掩码的,只需要记住主机所对应的位数,全写为0,网络所对应的位置全部写为1,

255是表示全1,自然相与依然是不变,接下来看剩下的部分,并且需要记住这些常见的数值所对应的二进制的位的,

广播分组所以主机号都是1,然后可以计算出子网号是180,80,76,0,然后让剩下的主机号都是1即可,然后就是180.80.79.255,

每一个路由器都是有一个转发表的,若是我们划分了子网就需要有以上的三项,不同的子网是可以使用不用的子网掩码,路由器会用这个目的地址和这三个子网掩码想与,看是否与子网向对应,若是都不符和也就需要进行到下一步,路由表中有这么一行,这一行叫做特定主机路由,若是没有就进行第四步用目的地址和所有的子网掩码进行,默认路由就是前面的都不行的时候使用的路由,然后继续进行刚才的4步,当然我们知道这个转来转去是有限制的,每一个分组也就是有一个生存时间,在这个生存时间之内没有找到就将其丢弃,然后报告转发分组出错,,

这种编址形势是目前主要使用的一种编址形式,

也就是将网络号和子网号合并到一起称为网络前缀,看起来再次回到2级IP地址的形式,不同的是这个网络前缀的位数是变长的,

斜杠后面的字就是表示网络前缀的位数,这个地址掩码和之前说的掩码计算方式是一样的都是m个1后面接上0来表示,并且注意这个最小地址最大地址虽然是不用的,但是依然是表示最大最小,

对于一个路由器它其中有几个目的网络地址走的都是同一个接口,也就可以进行聚合,也就是取交集,

如上面两个进行合体之后就是206.1.0.0/16,

C

使用目的地址和每一个的子网掩码进行与操作,看结果是否与前面的相同,若是都相同则看哪一个的前缀最长,如这里就是25是大于22的,

这里的全0就是默认路由,当没有匹配的时候才会用到,这里选B

相关推荐
4647的码农历程12 分钟前
Linux网络编程 -- 网络基础
linux·运维·网络
向李神看齐17 分钟前
RTSP协议讲解
网络
Death20022 分钟前
使用Qt进行TCP和UDP网络编程
网络·c++·qt·tcp/ip
魏大橙35 分钟前
linux RCE本地/公网测试
网络·网络协议·udp
陈逸轩*^_^*1 小时前
Java 网络编程基础
java·网络·计算机网络
l1x1n02 小时前
网络安全概述:从认知到实践
网络
鄃鳕2 小时前
HTTP【网络】
网络·网络协议·http
蜡笔小新星2 小时前
Python Kivy库学习路线
开发语言·网络·经验分享·python·学习
小白爱电脑3 小时前
WIFI网速不够是不是光猫的“路由模式”和“桥接模式”配置错了?
网络·智能路由器·桥接模式
CXDNW4 小时前
【网络篇】计算机网络——应用层详述(笔记)
服务器·笔记·计算机网络·http·web·cdn·dns