网络层
1、IP 协议的定义和作用?
- IP协议(Internet Protocol)又被称为互联网协议,是支持网间互联的数据包协议,工作在网际层,主要目的就是为了提高网络的可扩展性。
- 通过网际协议IP,可以把参与互联的,性能各异的网络看作一个统一的网络。
- 和传输层TCP相比,IP协议是一种无连接/不可靠、尽力而为的数据包传输服务,和TCP协议一起构成了TCP/IP协议的核心。
2、IP协议有哪些作用?
IP协议主要有以下几个作用:
- 寻址和路由:在IP数据报中携带源IP地址和目的IP地址来表示该数据包的源主机和目标主机。IP数据报在传输过程中,每个中间节点(IP网关、路由器)只根据网络地址来进行转发,如果中间节点是路由器,则路由器会根据路由表选择合适的路径。IP协议根据路由选择协议提供的路由信息对IP数据报进行转发,直至目标主机。
- 分段和重组:IP数据报在传输过程中可能会经过不同的网络,在不同的网络中数据报的最大长度限制是不同的,IP协议通过给每个IP数据报分配一个标识符以及分段与组装的相关信息,使得数据报在不同的网络中能够被传输,被分段后的IP数据报可以独立地在网络中进行转发,在达到目标主机后由目标主机完成重组工作,恢复出原来的IP数据报。
3、IP 地址有哪些分类?
一个 IP 地址在整个互联网范围内是唯一的,每一类地址都由两个固定长度的字段组成:
- 网络号:它标志主机所连接的网络地址表示属于互联网的哪一个网络。
- 主机号:它标志主机地址表示其属于该网络中的哪一台主机。
IP 地址分为 A,B,C,D,E 五大类:
- A 类地址 (1~126): 以 0 开头,网络号占前 8 位,主机号占后面 24 位。
- B 类地址 (128~191):以 10 开头,网络号占前 16 位,主机号占后面 16 位。
- C 类地址 (192~223):以 110 开头,网络号占前 24 位,主机号占后面 8 位。
- D 类地址 (224~239):以 1110 开头,保留为多播地址。
- E 类地址 (240~255):以 1111开头,保留为将来使用
总结如下:
4、为什么要划分子网?
在 计算机网络 的早期,IP 地址的设计确实不够合理,为新增网络申请新的网络号会带来以下弊端
- 需要等待时间和花费更多的费用;
- 会增加其他路由器中路由表记录的数量;
- 浪费原有网络号中剩余的大量IP地址。
举个例子:
- 某单位有一个大型的局域网需要连接到英特网。如果申请一个C 类网络地址,其可分配的IP 地址数量只254个,不够使用。因此,该单位申请了一个B 类网络地址,其可分配的IP 地址数量达到了65534个。给每台计算机和路由器的接口分配一个IP 地址后,还有大量的IP 地址剩余。这些剩余的IP 地址只能由该单位的同一个网络使用。
- 如果想要将原来的网络划分成三个独立的网路。假设子网一仍然使用原先申请到的B 类网络地址,那么就需要为子网2和子网3各自申请一个网络地址。
- 如果可以从IP 地址的主机号部分借用一些位作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量IP 地址,而不用申请新的网络地址。
5、如何划分子网?
这样我们就引出了一个划分子网的工具,它就是子网掩码。当我们从主机号部分借用一些位作为子网号时,IP地址从两级结构的分类IP 地址变成了三级结构的划分子网的IP 地址。
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
- 子网掩码使用连续的比特1来对应网络号和子网号
- 子网掩码使用连续的比特0来对应主机号
- 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
举个例子:
已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。
解析:
6、IP数据报的发送和转发过程?
IP数据报的发送和转发过程包含以下两部分:
- 主机发送IP数据报;
- 路由器转发IP数据报。
主机发送IP数据报:
同一个网络中的主机之间可以直接通信,这属于直接交付。不同网络中的主机之间的通信需要通过路由器来中转,这属于间接交付。
那么原主机如何判断出目的主机是否与自己在同一个网络中呢?
- 可以通过目的地址IP和源地址的子网掩码进行逻辑与运算得到目的网络地址
- 如果目的网络地址和源网络地址相同,就是在同一个网络中,属于直接交付
- 如果目的网络地址和源网络地址不相同,就不在同一个网络中,属于间接交付,传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发
主机如何知道路由器的存在?
- 为了让本网络中的主机能和其他网络中的主机进行通讯,就必须给其指定本网络中的一个路由器,由该路由器帮忙进行转发,所指定的路由器也被称为默认网关。
路由器转发IP数据报:
- 检查IP数据报首部是否出错:
- 若出错,则直接丢弃该IP数据报并通告源主机;
- 若没有出错,则进行转发。
- 根据IP数据报的目的地址在路由表中查找匹配的条目:
- 若找到匹配的条目,则转发给条目中指示下一跳;
- 若找不到,则丢弃该数据报并通告源主机。
- 接下来路由器对该IP数据报进行查表转发:
- 逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址;
- 然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示进行转发。
7、路由选择协议?
路由选择协议概述:
常见的路由选择协议:
路由信息协议RIP
- 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC 1058。
- RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)”。
- RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。
- 路由器到直连网络的距离定义为1。
- 路由器到非直连网络的距离定义为所经过的路由器数加1。
- 允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。因此,RIP只适用于小型互联网。
开放最短路径优先OSPF
- 开放最短路径优先OSPF,是为克服RIP的缺点在1989年开发出来的。
- “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
- OSPF是基于链路状态的,而不像RIP那样是基于距离向量的。
- OSPF采用SPF算法计算路由,从算法上保证了不会产生路由环路。
- OSPF不限制网络规模,更新效率高,收敛速度快。
- 链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价”(cost)。
- “代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定。
8、网际控制报文协议ICMP?
架构IP网络时需要特别注意两点:确认网络是否正常工作和遇到异常时进行问题诊断,而ICMP就是实现这些问题的协议,ICMP的主要功能包括:
- 确认IP包是否成功送达目标地址;
- 通知在发送过程当中IP包被废弃的具体原因;
- 改善网络设置等。
有了这些功能以后,就可以获得网络是否正常,设置是否有误以及设备有何异常等信息,从而便于进行网络上的问题诊断。
主机或路由器使用ICMP来发送差错报告报文和询问报文。ICMP报文被封装在IP数据报中发送。ICMP差错报告报文共有以下五种:
- 终点不可达
当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达,目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种错误。
- 源点抑制
当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
- 时间超过
当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间TTL字段的值减1。若结果不为0,则将该IP数据报转发出去;若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文。
- 参数问题
当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,向源点发送参数问题报文。
- 改变路由
路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
9、ping 的工作过程?
一般来说,ping 可以用来检测网络通不通。它是基于ICMP协议工作的。
假设机器 A ping 机器 B,工作过程如下:
- ping 通知系统,新建一个固定格式的 ICMP 请求数据包。
- ICMP 协议,将该数据包和目标机器 B 的 IP 地址打包,一起转交给 IP 协议层。
- IP 层协议将本机 IP 地址为源地址,机器 B 的 IP 地址为目标地址,加上一些其他的控制信息,构建一个 IP 数据包。
- 先获取目标机器 B 的 MAC 地址。
- 数据链路层构建一个数据帧,目的地址是 IP 层传过来的 MAC 地址,源地址是本机的 MAC 地址。
- 机器 B 收到后,对比目标地址,和自己本机的 MAC 地址是否一致,符合就处理返回,不符合就丢弃。
- 根据目的主机返回的 ICMP 回送回答报文中的时间戳,从而计算出往返时间。
- 最终显示结果有这几项:发送到目的主机的 IP 地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大 & 平均值。
10、ping 涉及到的协议?
ping www.xxx.com:
- ping是基于ICMP协议工作的;
- 通过DNS协议,将ping后接的域名转换为IP地址。(DNS使用的传输层协议是UDP)
- 通过ARP解析服务,将IP地址解析出MAC地址,以在数据链路层传输。