计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)

文章目录

    • 思维导图
    • IP协议的特点(不可靠与无连接)
    • IP首部
        • 为什么 IP 首部中要有总长度字段?
        • IP 首部校验和怎么计算的,与 ICMP,IGMP,TCP,UDP 的首部校验和有什么区别与共同点?
        • IP 路由选择的过程是怎么样的?
        • IP 路由选择的特性有什么?
        • IP 搜索路由表的步骤
        • 如果路由表中没有默认项,而又没有找到匹配项,这时如何处理?
    • 将网络互连起来的中间设备
        • IP 地址的分类,如何划分的,及会计算各类地址支持的主机数
    • 子网划分
    • 子网掩码
    • 选路的简单原理:
    • 简单路由表
    • 初始化路由表
    • 没有到达目的地的路由
    • 域间路由选择CIDR
    • 网际控制报文协议ICMP
        • 什么情况不会导致产生 ICMP 差错报文?
        • 四种ICMP差错报文
        • 两种询问报文
        • ICMP的应用
        • ICMP 重定向差错报文是怎么来的,在何种场合出现?
        • 重定向报文有什么规则?
        • ping程序
        • Traceroute
    • 虚拟专用网VPN
    • NAT
    • 路由器分组转发流程
    • arp地址解析协议
        • ARP 协议有什么弱点?
        • ARP 代理的概念和应用场景
        • 免费 ARP
        • 数据链路层 MTU 的最大值和最小值是多少?

思维导图

思维导图下载

IP协议的特点(不可靠与无连接)

  • 不可靠:指的是不能保证数据报能成功地到达目的地。
    发生错误时候,丢弃该数据包,发送 ICMP 消息给信源端。 可靠性由上层提供。
  • 无连接:IP 不维护关于后续数据报的状态信息。
    体现在,IP 数据可以不按顺序发送和接收。A 发送连续的数据报,到达 B 不一定是连续的,来回路由选择可能不一样,路线也不一样,到达先后顺序也不一样

IP首部

计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)_第1张图片

  1. 版本号:占4位,协议版本号IPV4或者IPV6。
  2. 首部长度:首部长度,占4位
  3. 区分服务:占8位,用来获得更好的服务,只有使用区分服务时,这个字段才起作用,一般情况不使用这个字段
  4. 总长度:总长度值首部和数据之和的长度,总长度字段是16位,因而数据报的最大长度为2^16-1,当IP封装成以太网帧时,其长度不能超过最大传送单元MTU的值。
  5. 标识:占16位,IP软件里面维持着一个计数器,每产生一个数据报,计数器就加1,并且将这个值赋给标识,这个标识不是为了记录IP数据报发送的顺序,而是当分片时,这个值被复制到所有数据报片里面,相同标识字段的值可以在分片后重新组装成原来的数据报
  6. 标志:占3位,但目前只有两位有用
    DF不分片标识,当DF=0时才可以分片
    MF更多分片标识,MF=1表示后面还有分片,MF=0表示是最后一个分片
  7. 片偏移:占13位,片偏移指出较长的分组在分片时,某片在原来分组中的相对位置。
  8. 生存时间(8位):TTL,每次经过一个路由器时,TTL字段会减一,当TTL字段为零时,会丢弃该数据报,最大可以为225,如果将TTL设置为1,则只能在局域网上通信
  9. 首部检验和:占16位,数据报每次经过一个路由器,路由器都要重新计算一下首部检验和,对首部每个16bit进行二进制反码求和,结果存在检验和字段中,当收到一份IP数据报时,同样对该数据报首部中每个16bit进行二进制反码求和,由于接收方在计算过程中包含了发送方的首部检验和,因此若没有在传输过程里面发生差错,那么结果应该为全1,发现差错时IP就丢弃该数据报,但是不产生差错报文,由上层去发现丢失的数据报并且进行重传。
    10.源地址,目的地址:分别是32位

为什么 IP 首部中要有总长度字段?

  • 因为一些数据链路(以太网)需要填充一些数据以达到最小长度。
  • 因为以太网帧的最小长度是 46 个字节,但是 IP 长度可能更短,所以需要总长度来确定 IP 数据部分的内容

IP 首部校验和怎么计算的,与 ICMP,IGMP,TCP,UDP 的首部校验和有什么区别与共同点?

(1) 先把校验和字段置 0。
(2) 对首部中每个 16 位比特进行二进制反码求和。
(3) 结果存在检验和字段中。
(4) 收到一份 IP 数据包后,同样对首部中每个 16bit 二进制反码求和。
(5) 最后结果全为 1,表示正确,否则表示错误。
(6) 如果是错误的,IP 就丢弃该数据报,但是不生成差错报文,由上层去处理。

区别:IP 计算的时候没有将数据包括在内。
ICMP,IGMP,TCP,UDP 同时覆盖首部和数据检验码

IP 路由选择的过程是怎么样的?

根据最长匹配原则,找到条目,发送到指定的路由器。如果不能找到,返回一个“主机不可达”或“网络不可达”的错误。

IP 路由选择的特性有什么?

(1) IP 路由选择是逐跳进行的。
IP 并不知道到达任何目的的完整路径,只提供下一跳地址。
(2) 为一个网络指定一个路由器,而不是为每个主机指定一个路由器。这样可以缩小路由表规模

IP 搜索路由表的步骤

搜索匹配的主机地址 ----》搜索匹配的网络地址 ----》搜索默认选项
IP 层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。

如果路由表中没有默认项,而又没有找到匹配项,这时如何处理?

  • 结果取决于该 IP 数据报是由主机产生的还是被转发的。
  • 如果数据报是由本机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”。
  • 如果是被转发的数据报,就给原始发送一份 ICMP 主机不可达的差错报文。

将网络互连起来的中间设备

  1. 物理层使用的是转发器
  2. 数据链路层使用网桥
  3. 网络层使用路由器
  4. 网络层以上使用网关
    当中间的设备是网桥或者是路由器时,这仅仅是把一个路由器扩大了,而从网络层的角度看这还是同一个网络,路由器是一台用来进行路由选择的计算机

IP 地址的分类,如何划分的,及会计算各类地址支持的主机数

  1. A 类地址:首位为 0,1.0.0.1~~126.255.255.254;主机号 24 位
  2. B 类地址:首位为 10,128.0.0.1~~191.255.255.254;主机号 16 位
  3. C 类地址:首位为 110,192.0.0.1~~223.255.255.254;主机号 8 位
  4. D 类地址(多播地址,也叫做组播地址):首位为 1110,224.0.0.1~~239.255.255.254
  5. E 类地址:此类地址是保留地址,首位为 11110,240.0.0.1~~254.255.255.254

子网划分

由于A类和B类地址里面主机号划分太多,而事实上,一个网络里面没有那么多台主机,因此需要对其进行划分,把主机号在划分成一个子网号和一个主机号。当获得某类网络号后,可由当地系统管理员进行分配,以及分配多少比特给子网号和主机号,子网对外部路由器隐藏了划分的细节,但是对于子网内部的路由器是不透明的,子网划分缩小了路由表的规模

子网掩码

通过子网掩码确定多少位是用于子网号多少位是用于主机号,在引导过程中通过子网掩码来指定。通过IP地址与子网掩码相与确定网络地址

选路的简单原理:

IP搜索路由表的步骤:

  1. 搜索匹配的主机地址
  2. 搜索匹配的网络地址
  3. 搜索默认路由表项

简单路由表

使用netstat -rn
在这里插入图片描述
U代表该路由是可以使用的
G代表该路由是到一个网关,如果没有这个标志,说明和目的地是直连的
M代表该路由已被重定向报文修改
D代表该路由是被重定向报文创建的
H代表该路由是一个主机
说明

  1. G标志说明了直接路由和间接路由。当分组被发送到一个网关时,不仅有目的端的IP地址还有网关的Mac地址
  2. 没有说明H标志,说明目的地址是一个网络地址(主机号为全0)
  3. 输出的第一行是默认路由

初始化路由表

route add default sun 1

default(代表目的地址)
sun(路由器)
1(路由的度量,route在度量值大于1时设置G标志)

没有到达目的地的路由

如果路由表中没有默认项,也没有找到匹配项,主机会给该数据报发一份主机不可达或者网络不可达差错

域间路由选择CIDR

特点

  1. CIDR消除了传统的A,B,C类地址以及子网划分的概念,用网络前缀指明网络,后面部分指明主机
  2. CIDR采用斜线记法,也就是IP地址后有斜线指明前缀所占的位数
  3. CIDR把网络前缀都相同的IP地址组成一个CIDR地址块,由于一个CIDR地址块里面有很多网络,使用在路由表中用该地址块查找网络,称为路由聚合,也叫构成超网,这大大的缩减了路由表规模
  4. 可以更加有效的分配IP地址

使用最长前缀匹配
在查找路由表时,可能匹配的不仅仅是一个结果,这时我们将从匹配结果中选出具有最长网络前缀的路由,这叫做最长前缀匹配,这时因为前缀越长,地址块越小,路由越具体。

网际控制报文协议ICMP

计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)_第2张图片

什么情况不会导致产生 ICMP 差错报文?

1) ICMP 差错报文。
2) 目的地址是广播地址或者多播地址的 IP 数据报。
3) 链路层广播的数据报
4) 不是 IP 分片的第一片
5) 源地址不是单个主机的数据包

四种ICMP差错报文

  1. 终点不可达
  2. 参数问题
  3. 时间超过
  4. 重定向

两种询问报文

  1. 回送请求报文或回答
  2. 时间戳请求或回答

ICMP的应用

  1. ping程序:使用了ICMP回送请求和回送回答报文,应用层直接使用网络层ICMP,没有通过运输层的TCP和UDP,Ping一台服务器,也就是向这台服务器一连发出四个ICMP回送请求报文,如果该服务器正常工作而且响应这个报文,那么他就发回ICMP回送回答报文,往返的ICMP报文上有时间戳,因此很容易得到往返时间
  2. traceroute程序:路由跟踪,之前已经讲过。看前面博客

ICMP 重定向差错报文是怎么来的,在何种场合出现?

计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)_第3张图片
1) 主机发送 IP 数据报给 R1,因为主机的默认路由指向的下一跳是 R1。 2) R1 收到数据报并且检查它的路由表,发现 R2 是发送该数据报的下一跳。当他将数
据报发送给 R2 的时候,发现发送的接口与接受的端口是一样的,因此同时发送一
个 ICMP 重定向报文给主机。
3) R1 接受到 ICMP 重定向报文后,接下来的数据报就发送给 R2,而不再发送给 R1。

重定向报文有什么规则?

  • 重定向报文只能有路由器生成。
  • 重定向报文是为主机而不是为路由器使用的。

ping程序

  • Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
  • Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

Traceroute

  • Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。

  • Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。

  • 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文;

  • 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。

  • 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。

  • 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。

虚拟专用网VPN

由于 IP 地址的紧缺,一个机构能申请到的 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

VPN 使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网。

下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。

NAT

专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP。

在以前,NAT 将本地 IP 和全球 IP 一一对应,这种方式下拥有 n 个全球 IP 地址的专用网内最多只可以同时有 n 台主机接入互联网。为了更有效地利用全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址。使用端口号的 NAT 也叫做网络地址与端口转换 NAPT。
计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)_第4张图片

路由器分组转发流程

  • 从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N。
  • 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付;
  • 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器;
  • 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;
  • 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;
  • 报告转发分组出错。

arp地址解析协议

概述:网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变
计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)_第5张图片
ARP报文的各个字段以及作用
计算机网络-网络层协议(思维导图)以及面试题总结(tcp/ip卷一笔记)_第6张图片
帧类型:ARP:0x0806 (2) ARP 首部:
硬件类型:硬件地址的类型,1 表示以太网地址。(2)
协议类型:协议地址的类型,0x0800 表示 IP 地址。(2)
硬件地址长度:字节为单位 6 (1)
协议地址长度:字节为单位 4 (1)
操作类型:2 个字节。 ARP 请求 1,ARP 回复 2,RARP 请求 3,RARP 应答 4。(2)
发送者硬件地址:6 个字节(6)
发送者 IP 地址:4 个字节(4)
目标硬件地址:6 个字节(6)
目标 IP 地址:4 个字节(4)
CRC 校验:4 个字节 (4)
总结:
arp 总共 28 个字节。
记忆方法: 以太网先目地后源,ARP 先发送端后目地端。先硬件后协议

ARP 协议有什么弱点?

1)缓存:主机的地址映射是基于高速缓存的,动态更新的。地址刷新是有时间限制的。 可以通过下次更新之前修改计算机上的地址缓存,造成拒绝服务攻击或者 ARP 欺骗。
2)广播: 攻击者可以伪装 ARP 应答。
3)ARP 应答没有认证,都是合法的。可以在不接受到请求的时候就发出应答包。

ARP 代理的概念和应用场景

  • 若 ARP 请求是从一个网络的主机发送给另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程叫做 ARP 代理。
  • ARP 代理路由器响应 ARP 请求的 MAC 地
    址为路由器的 MAC 地址而非 ARP 请求的主机的 MAC 地址。
  • ARP 代理的应用环境:
    两个物理网络之间的路由是使用相同的网络号,两个路由器设置成 ARP 代理,实现相互隐瞒物理网络

免费 ARP

指主机发送 ARP 查找自己的 IP 地址,即数据链路层 SIP=DIP
作用有两个:
1)一个主机使用免费 ARP 确定是有存在有其他主机设置了相同的 IP 地址
2)如果发送免费 ARP 的主机改变了 MAC 地址,可以通过发送免费 ARP 的方式告知其他主机端更新 ARP 表

数据链路层 MTU 的最大值和最小值是多少?

  1. 数据链路层的最小MTU 为 64 字节。对于 IEEE802.3,两个站点的最远距离不超过 2500m, 由 4 个中继器连接而成,其冲突窗口为 51.2us(2 倍电缆传播延迟加上 4 个中继器的双向延迟).对于 10Mbps 的 IEEE802.3 来说,这个时间等于发送 64 字节,即 512 位的时间,64 字节就是由此而来的。如果一个站点已经传输了 512bit,就认为它已经占用了这个信道。
  2. 数据链路层的最大 MTU 为 1500 字节,即数据字段的最大长度

参考来源:

  • 《tcp/ip卷一》
  • 《计算机网络第七版》
  • bilibili
  • CyC2018的GitHub笔记

你可能感兴趣的:(计算机网络,网络,运维,前端,后端)