计算机网络基础(关于网络层的故事)
目录
PAT(Port Address Translations,端口地址转换)
网络层向运输层提供的两种服务
网络层关注如何将分组从源端沿着网络路径送到目的端。可靠交付由端系统来负责。
虚电路服务
什么是虚电路服务?
可以看到下图,那条深蓝色的线,假设这是网络管理员事先配置好的虚电路,那么H1给H2发送的所有分组都会沿着这条虚电路传送,不会走上面或者下面的路由器。如果虚电路断了,那么此网就不通了。
虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按存储转发的方式传送,并不是真正建立物理连接
数据报服务
简单的说就是在数据报上写上目标地址,那么数据报到了第一个路由器,由路由器来选择是从上面走还是从下面走。
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络在发送分组时不需要先建立连接,每个分组(IP数据报)独立发送,与前后分组无关(不进行编号)。
网络层不提供服务质量的承诺,即传送的分组可能出错,丢失,重复和不按顺序到达终点。
可以看到IP数据报的传送路径是不一样的,有可能从上面走,有可能从中间走有可能从下面走。
虚电路服务和数据报服务的对比
可靠:虚电路服务可靠通信由网络保证,数据报服务可靠通信由用户主机保证。
建立连接:虚电路服务必须建立连接,数据报服务不建立连接
路由器节点出现故障:虚电路上的路由器节点出故障则网络不通不能正常工作,数据报服务可能丢失分组,一些路由发生变化
分组顺序:虚电路服务按顺序到达目标,数据报服务不按顺序到达目标
端到端差错处理和流量控制:虚电路服务可以由网络负责,也可以由主机负责。数据报服务由主机负责。
网络层的四个协议
- IP协议
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
协议之间的层次
ARP较基础IP协议要依赖于ARP协议。后面两个协议都是依赖于IP协议。
IP协议
IP协议是一个非常重要的协议,从TCP/IP中带着的IP两个字母可见一斑。
虚拟互联网
各层网络互连的设备
物理层中继系统:转发器
数据链路层中继系统:网桥或桥接器(交换机)
网络层中继系统:路由器(路由器的接口可以看做是网卡,有IP地址也有MAC地址)
网络层以上的中继系统:网关(原始的网关)
(现在说的网关,指的是路由器的接口,比如一个路由器连一个交换机和其他的网,交换机再连三个计算机,那么路由器的网关是xxx.xxx.1.1,计算机的网关也这么配置,那么计算机要通信就会走这个路由器,如果计算机没有配置网关,那么计算机就不能到其他的网段。但是交换机连的这几个计算机可以通信。)
互连网络和虚拟互连网络
所谓虚拟互连网络也就是逻辑互连网络简称为IP 网。它的意思就是利用IP 协议屏蔽互连起来的各种物理网络的异构性使这些性能各异的网络看起来好像是一个统一的网络。使用虚拟互连网络的好处是当互联网上的主机进行通信时就好像在一个网络上通信一样而看不见互连的各具体的网络异构细节。
可以看到左侧的互连网络里面有很多网络设备,有很多的技术,很复杂,而虚拟互连网络的意思就是把这些复杂的的东西都屏蔽掉,让这个网络看起来像朵云一样,主机访问互联网的时候,不需要考虑里面的技术。
IP地址
层次化的IP地址将32位的IP地址分为网络ID和主机ID
网络地址
网络地址唯一制定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用其作为自己IP地址的一部分。
网络id和主机id
假设一个IP地址计算机的地址 192.168.1.111,那么192.168.1是网络id,111是主机id
IP地址的类别
怎么样区分地址是A类还是B类还是C类呢?
如下图,开头的几位,每类地址是不一样的。
可以注意到上面的表格里面A类地址是到126,127不可用因为它是本地环回地址,做网站的时候应该都熟悉,访问本地是localhost或者127.0.0.1对吧。
子网掩码
又称网络掩码,是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,必须和IP地址结合一起使用,他只有一个作用:将某个IP地址划分为网络地址和主机地址。
各类地址的默认子网掩码
A类地址:255.0.0.0(255相当于告诉我们这是网络部分,0相当于告诉我们这是主机部分)
B类地址:255.255.0.0
C类地址:255.255.255.0
子网掩码的作用
假设本计算机A的配置如下:
IP地址:192.168.80.111
子网掩码:255.255.255.0
网关:192.168.80.1
我们想要通信的计算机B:
IP地址:192.168.90.111
计算机A拿自己的IP地址和子网掩码做与运算,这个与运算的目的就是让主机位归零只留下网络号,也就是得到192.168.80.0,然后和B的网络号192.168.90.0对比,不在一个网段,那么它会把数据包交给网关。
如果子网掩码设置为255.255.0.0,那么与运算的结果,计算机A网络号:192.168.0.0,计算机B网络号:192.168.0.0,网络号一样,计算机就不会把数据包给网关而直接给到计算机B
子网划分
Internet组织机构定义了五种IP地址,有A、B、C三类地址。A类网络有126个,每个A类网络可能有16777214台主机,它们处于同一广播域。而在同一广播域中有这么多节点是不可能的,网络会因为广播通信而饱和,结果造成16777214个地址大部分没有分配出去。可以把基于每类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于每类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
没有子网划分可能IPv4在很早前地址就不够了。
可能定义部分有些晦涩,就做个比喻,一个网内有十台计算机,那么给它分配一个C类网络,可以有254个主机,但是我们只有十个计算机,分配这么多地址就是浪费了,那么精打细算运用地址就是子网划分的作用。
例:C类网络划分为两个子网
如何将C类网络的网段划分为两个网段?
假设将C类地址:192.168.0.0 255.255.255.0划分为两个网段。
在这里画了个流程图方便清晰理解
关于IP地址和MAC地址
首先先明确报文和数据包和帧的前后关系:
学计算机网络总会学着学着就懵,既然有MAC地址为什么还要IP地址,或者说既然有IP地址为什么还要MAC地址?
我们来图解一个计算机1向计算机2通信的过程:
那么图解是会比较清晰,IP地址和Mac地址的区别,IP地址决定最终到哪去,Mac地址决定了下一跳的设备。
那么如果只用Mac地址不用IP地址需要满足什么条件,知道全球计算机的Mac地址(注意不是下一跳设备的Mac),就可以代替IP地址(但这种情况不可能出现)。
IP数据报首部
首部的前一部分是固定长度,20字节,所有IP数据报必须有的。
在固定长度部分后面是可选字段,长度可变
版本:占4位,指IP协议的版本,目前版本号为4(IPv4)
首部:首部有多长,首部可长可短
区分服务:标记该数据包是否是着急(急需)的数据包
总长度:首部和数据之和的长度
标识:占16位,计数器,每产生一个数据报加一
标志:记录数据报是否是分片的
片偏移:用于分片记录偏移(分片大家都了解不详细介绍)。
生存时间(TTL):每过一个路由器TTL减一,当TTL变为0,数据报小时,如果不设置这个TTL的话,有可能数据报在网上的路由器之间不停的转,永远到不了目的地。
协议:标记数据里面使用的上层协议是什么。
首部检验和:验证首部有没有错误。
地址解析协议ARP
ARP的作用是将IP地址转为物理地址(Mac),是通过广播的形式实现。
ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
但是这个引起了不少的网络安全的问题。对吧
ARP欺骗
计算机1的Mac地址是m1,计算机2的Mac地址是m2,计算机3的Mac地址是m3
计算机1要向计算机2通信,然后广播问计算机2的IP地址对应的Mac是多少,然后计算机2告诉他是m2,然后计算机3告诉他是m3,计算机1就把m2删了记下m3,那么要发给计算机2的内容就发给计算机3。
网际控制报文协议ICMP
ICMP协议主要是来看网络有没有故障。
为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议。
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
不是高层协议,是IP层协议,ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发出去。
上图ICMP报文结构
ICMP报文的类型
ICMP差错报告报文
有五种:终点不可达,源点抑制,超时,参数问题,重定向(路由改变【发现更便捷路径】)
(也就是数据报交到目的后,对方返回来一个差错报告说明情况)
ICMP询问报文
有两种:回送请求和回答、时间戳请求和回答。
网际组管理协议IGMP
主机与本地路由器之间使用Internet组管理协议(IGMP,Internet Group Management Protocol)来进行组播组成员信息的交互。IGMP是TCP/IP中重要标准之一,所有IP组播系统(包括主机和路由器)都需要支持IGMP协议。
网络地址转换NAT(Network)
网络地址转换方法在1994年提出,需要在专用网连接到因特网的路由器上安装NAT软件,装有NAT软件的路由器叫做NAT路由器,至少有一个有效的外部全球地址。
所有使用本地地址的主机在和外界通信的时候都要在NAT路由器上将本地地址转成外部全球地址才能和因特网连接。
好处:NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
PAT(Port Address Translations,端口地址转换)
可将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换。NAPT普遍用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。
(简而言之:内网里面可能每个计算机的程序都占一个端口,对吧,比如A计算机和B计算机都占用端口80,那么通过NAT路由器转成外网IP,是不是就重合了,那么它还会进行端口映射,也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换)
文章有些长,层次结构在目录中,以上是对计算机网络基础(网络层)的粗浅认识
转载请注明出处:https://blog.****.net/qq_36652619