网络层关注的是如何将分组从源端沿着网络路径送达目的端。
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接"还是“无连接”)曾引起了长期的争论。争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
两种服务:网络层应该向运输层提供怎样的服务?
虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照路由发方式传送,而并不是真正建立了一条物理连接。
请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
H1发送给H2的所有分组都沿着同一条虚电路传送,如果电路上出现问题,数据就不能成功发送,数据只能按照规定的路线发送。
可以不需要标出地址
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。
网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
尽最大努力交付的好处:
需要在数据包中标明源地址和要发送到的地址。
H1发送给H2的分组可能沿着不同路径传送
中间设备又称为中间系统或中继(relay)系统。
当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅供通信一个网络扩大了,而这仍然是一个网络。
网关由于比较复杂,目前使用得较少。
互联网都是指用路由器进行互连的网络。
由于历史的原因,许多有关TCP/IP 的文献将网络层使用的路由器称为网关。
一般路由器网关会默认设置路由器接口第一个地址。
互连在一起的网络要进行通信,会遇到许多问题需要解决,如:
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
使用IP 协议的虚拟互连网络可简称为IP网。
使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
网际协议IP 是TCP/IP体系中两个最主要的协议之一。与IP 协议配套使用的还有四个协议:
网络地址( 也可以称为网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用它作为自己IP地址的一部分。
按照IP地址高位特征0、10、110、1110、11110,将IP地址分为A类、B类、C类、D类和E类。下面介绍A类、B类、C类、D类和E类地址二进制特征,以及各类网络的网络数量和可用的主机地址数量
, IP地址方案的设计者指定,在一个A类网络地址中,其第一字节的第一位必须一直是0,或是被设置为off。
这就意味着一个A类地址,它的第一个字节的取值必须是介于0和127之间的。
一个A类网络的第一个八位位组的取值在0到127之间,并且它不可以比这个取值范围更大或更小(0和1 27在A类地址中是不合法的,
第一个字节被用来表示网络地址而其后面的3个字节被用来表示结点地址。A类地址的格式是:
网络.结点.结点.结点
例如,在IP地址49.22.102.70中,49就是网络地址,而22.102.70就是结点地址。在这个指定网络上的每一台机器都要使用这个网络地址49。
在B类地址中,RFC要求其第一个字节的第一位必须一直被置为on,但是第二位也必须一直被置为off,如图3-4所示,如果将其他6位全部都置为off,然后再置为on,
将可以得到B类网络的地址取值范围:
1 0000000 = 128
10111111 = 191
)B类网络它的首字节定义在128到191之间。
在一个B类网络地址中,其前面两个字节是被用来表示网络地址的,而剩下的两个字节是用来表示结点地址的。它的格式是:
网络.网络.结点.结点
例如,在IP地址I 72.16. 30.56中,网络地址是172.16,而其结点地址是30.56。
对于C类网络,RFC要求它的第一个八位位组的前面两位要一直被置为on,但是第三位决不可以是on。进行同前面两类地址一样的处理,即将二进制转换到十进制,从而找出它的范围。下面就是一个C类网络地址的范围:
1 1000000 = 192
11011111 = 223
如果见到一个IP地址起始于192并直到223,便可以认定它是一个C类地址。
一个C类网络地址的前3个字节用来表示网络号,只有一个字节被用来表示结点地址。它的格式是:
网络.网络.网络.结点
在IP地址为192.168.100.102的示例中,它的网络地址是192.168.100,而它的结点地址是102。
介于224和255之间的地址被保留用做D类和E类网络。
D类是用于多播( 也称为组播)的地址(224到239),希望读者能够记住多播地址的范围,因为有些病毒除了在网络中发送广播还有可能发送多播数据包,你使用捕包工具排除网络故障,你必须能够断定捕获的网络中的数据包是多播还是广播。
而E类(240到255) 用于科学实验,
在本书中并不讨论D类和E类网络地址。
127是计算机的本地环回地址。指代主机本机。类似于java中的this。
路由器不同接口必须在不同的网段,即不同接口连接的网络号必须不同(222.1.5,222.1.4,222.1.3)
有些IP地址被保留用于某些特殊目的,网络管理员不能将这些地址分配给结点。
下面列出了这些被排除在外的地址,并说明了为什么要保留。
一、0.0.0.0
严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
二、255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
三、127.0.0.1
本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。
四、224.0.0.1
组播地址(D类地址),注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。
五、169.254.x.x
如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。
六、10.x.x.x、172.16。x。x~172.31。x。x、192.168。x。x
私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。
对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。
七、127.0.0.1与localhost的区别
相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。
看来这个入门问题还有人不清楚,其实这两者是有区别的。
localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源
169.254.X.x实际上是自动私有IP地址。
在Windows 2000以前的系统中,如果计算机无法获取IP地址,则自动配置成“IP地址: 0.0.0.0” 、“子网掩码: 0.0.0.0”的形式,导致其不能与其它计算机进行通信。
而对于Windows 2000以后的操作系统则在无法获取IP地址时自动配置成“IP地址:169.254.X.X”、子网掩码: 255.255.0.0” 的形式,这样可以使所有获取不到IP地址的计算机之间能够通信。
创建IP寻址方案的人创建了私有IP地址。
这些地址可以被用于私有网络,在Internet上的路由器上没有到私有网络的路由表。
这个设计主要是为了满足广泛需要的安全目的,同时也很有效地节省了宝贵的IP地址空间。
如果每个网络上的每台主机都必须有真正可路由的IP地址我们将在几年前用尽可用的IP地址。但通过使用私有IP地址,ISP、公司和家庭用户只需要一个或几个公网地址来将他们的网络连接到Internet。
由于他们可以在自己的网络内部使用私有IP地址并运行良好,所以使用私有IP是很经济的。
以下列出保留的私有IP地址
如果你负责为一个公司规划网络是,到底是用哪一类私有地址呢?
子网掩码(subnet mask)又叫网络掩码、地址掩码,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
如果一台计算机的IP地址配置为172.16.122.204,子网掩码为255.255.0.0。将其IP地址和子网掩码都写成二进制,进行与运算,即1和1与运算得1,0和1或1和0做与运算都得0。这样经过IP地址和子网掩码做完与运算后,主机位不管是什么值都归零,网络位的值保持不变,这样就得到该计算机所处的网段为172.16.0.0。
子网掩码很重要,配置错误会造成计算机通信故障。计算机和其他计算机通信时,首先断定目标地址和自己是否在一个网段,先用自己的子网掩码和自己的IP地址进行与运算得到自己所属的网段,再用自己的子网掩码和目标地址进行与运算计算机目标地址所属的网段。
如果不在同一个网段则使用网关的MAC地址封装数据帧,这会将数据帧转发给路由器即网关。如果相同则直接使用目标IP地址的MAC地址封装数据帧,直接把数据帧发给目标IP地址。
A类网络缺省子网掩码: 255.0.0.0
B类网络缺省子网掩码: 255.255.0.0
C类网络缺省子网掩码: 255.255.255.0
CIDR (无类域间路由,Classless Inter-DomainRouting)是一个在Internet. 上创建附加地址的方法,这
些地址提供给Internet服务提供商(ISP) ,再由ISP分配给客户。
CIDR将路由集中起来,使- -个IP地址段代表主要骨干提供商服务的几千个IP地址段,从而减轻Internet路由器的路由表。
所有发送到这些地址的信息包都被送到网通或电信等ISP
一个网段的情况:
虽然路由器可以使用该网段的任何可用的IP地址,为了避免该网段计算机的地址和路由器的地址神突,一般将路由器设置为该网段的第一个可用的IP地址或最后一个可用的IP地址。
现在将192.1 68.0.0255.255.255.0这个C类地址划分成两个网段。
假如公司有4个部门,每个部门有50台计算机,现在使用192.168.0.0/24这个C类网段,从安全考虑你打算每个部门的计算机放置到独立的网段,这就要求你将1 92.1 68.0.0/24这个C类网络划分为4个网段,如何划分子网呢?
如果想把一个C类网络等分成8个子网,子网掩码需要往右移3位,才能划分出8个子网,第8位、第7位和第6位都变成网络位。
从255开始除2
某企业有一个网段,该网段有200台计算机,使用192.168.0.0, 255.255.255.0网段。 后来计算机数量增加到400台计算机,由于某种屏幕广播软件的应用,屏幕广播软件不能跨网段,这些计算机必须在一个网段。
在该网络中添加交换机,可以扩展该网段的规模,IP地址不够用,再添加一个C类地址,192.168.1.0
255.255.255.0。这些计算机物理上在- -个网段,但是IP地址没在一-个网段,即逻辑上不在一-个网段。如果想让这些计算机能够通信,可以在路由器的接口添加这两个C类网络的地址作为这两个子网的网关。
在这种情况下,A计算机到B计算机通信,必须通过路由器转发,如图,这样两个子网能够通信,本来这些计算机物理上在一个网段,还需要路由器转发,效率不高。
如何让两个子网的计算机划分在一个网段呢?
如图所示,将192.168.0.0和192.168.1.0 两个C类网络合并。将IP地址第3个字节和4字节写成二进制,可以看到将子网掩码往左移动1位,网络部分就一样了,这两个网段就在一个网段了 。
合并后的网段子网掩码为: 255.255.254.0, 可用地址为192.168.0.1——192.168.1.254, IP地址的配置如图所示。
以上讲了合并两个C类网络192.168.0.0 ,255.255.255.0和192.168.1.0,255.255.255.0子网掩码往左移一位,可以合并为192.168.0.0 255.255.254.0.
这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使s这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。
1.交换机基于数据帧的MAC地址转发数据帧,路由器基于数据包的IP地址转发数据包
2.数据包在传输过程不变,过网络设备数据帧要用新的物理层地址重新封装
3.MAC地址决定了数据帧下一跳哪个设备接收,而IP地址决定了数据包的起点和终点
版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)
首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。
区分服务——占 8 位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过。
1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 。
可以用来区分数据包的重要程度,比如再打电话的时候下载文件。此时打电话占用的数据包就就比下文件的重要,当打电话和下文件的数据包同时到来时,会先处理打电话需要的数据包。
总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
标识(identification) 占 16 位,它是一个计数器,用来产生数据报的标识。
没产生一个数据包加一,注意此处产生的数据包是指由网络层产生的数据包,不包括在物理层发送时因为大于MTU而被分片的,一个数据包被分片后,其每个分片的标识和源数据包相同,不会自增。
标志(flag) :占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。
标志字段中间的一位是 DF (Don’t Fragment) 。
片偏移(12 位)指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。
生存时间(8 位)记为 TTL (Time To Live):数据报在网络中可通过的路由器数的最大值。
TTL的初始值不固定,但是经过一个路由器TTL,值减一,当路由器识别的TTL=0的时候,路由器就会丢弃该数据包。
设置TTL的目的是,防止一个数据包在路由器间进行循环传播。
ping命令就可以看到TTL
在ping后面加i可以指定TTL的大小
协议(8 位)字段指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程
指网络层上层使用的协议
协议号对应的协议(部分)
首部检验和(16 位)字段只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
生成校验和的方式:
能正常方式数据的必要条件
➢如图所示,,计算机PC0 pingPC1,网络要想通,要求沿途的路由器Router0、Router1、 Router2和Router3都必 须有到192.168.1.0/24网段的路由,这样数据包才能到达PC1.
➢PC1要回应数据包给PC0,沿途所有的路由器必须有到192.168.0.0/24网络的路由,这样数据包才能回来。
路由器的路由表可以通过路由器的协议自动学习来进行记录,也可以通过网络管理员来设置静态的路由表,现在我们来讲一下静态路由
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
以上请求和返回的ICMP报文会在Ping时使用。
下面的几种 ICMP 报文不再使用
1.理想的路由算法
路由选择是个非常复杂的问题
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
因特网采用分层次的路由选择协议。
最早的动态路由协议
收到相邻路由器(其地址为 X)的一个 RIP 报文:
这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。
这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的。
每次交换相邻路由表的nr最终所有路由器都会得到一个自治域中所有路由的信息,然后根据该信息自动计算本机与其他路由表的距离(这一点与RIP不同,OFPS协议另一半是自动计算生成的,而RIP协议的路由表是通过与相邻路由表交换信息得到)
为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。
每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
区域也不能太大,在一个区域内的路由器最好不超过 200 个。
类型1,问候(Hello)分组。
类型2,数据库描述(Database Description)分组。
类型3,链路状态请求(Link State Request)分组。
类型4,链路状态更新(Link State Update)分组,
用洪泛法对全网更新链路状态。
类型5,链路状态确认(Link State Acknowledgment)
分组。
BGP 是不同自治系统的路由器之间交换路由信息的协议。
BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。
可以将 BGP-4 简写为 BGP。
因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。
因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。
一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。
BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。
当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。
自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。”
主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。”
BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
(1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
(2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
(4) 通知(NOTIFICATION)报文,用来发送检测到的差错。
在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。
“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,
数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。
当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。
10.0.0.0 到 10.255.255.255
172.16.0.0 到 172.31.255.255
192.168.0.0 到 192.168.255.255
这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。
专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网(intranet),表示部门 A 和 B 都是在同一个机构的内部。
一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(extranet)。
有的公司可能没有分布在不同场所的部门,但有很多流动员工在外地工作。公司需要和他们保持联系,远程接入 VPN 可满足这种需求。
在外地工作的员工拨号接入因特网,而驻留在员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。
VPN技术的要点是:先要在本地的内联网中,申请VPN的端口让外网可以访问该IP,然后如果想要使用该内联网,就先要登录内联网开放出来的VPN,然后通过VPN来访问内联网资源,在这个过程中IP地址会被封装两次,一次封装的是内网要访问的资源的IP,然后把封装好的数据包当成数据信息进行二次封装,此时封装的是VPN公开在公网的地址。
可以这么理解:VPN解决的是一个内联网如何与外网访问的问题,而NET技术则是解决了一台电脑由多个虚拟机时虚拟机与外网连接的问题。
网络地址转换 NAT 方法于1994年提出。
需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。
所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
参考:
韩老师讲高校《计算机网络原理》https://www.bilibili.com/video/BV1Tb411x7CE