目录

一、IP协议

1、 IP数据报

1.1 IP首部

2、IP协议的转发

2.1 路由表

2.2 IP协议转发流程

3、子网划分

3.1 分类的IP地址

3.2 划分子网的基本思想

3.3 子网掩码

3.4 无分类编址CIDR(构成超网)

二、ARP协议

1、ARP协议

2、RARP协议

三、网络地址转换NAT

四、差错报告:ICMP协议

1、差错报告

2、询问报文

3、应用

3.1 Ping

3.2 Traceroute

五、路由

1、自治系统

2、内部网关协议:RIP

2.1 距离矢量算法DV

2.2 RIP协议

2.4 RIP协议的优缺点

3、OSPF协议

3.1 Dijkstra(迪杰斯特拉)算法

3.2 链路状态协议LS

3.3 OSPF协议

3、外部网关协议BGP

3.1 BGP简介

3.2 BGP发言人

六、核心提炼

1、主要问题

2、重要概念


一、IP协议

IPV4长度的32位,分成4个8位,常点分10进制来表示。

IP协议的主要作用:

  1. 使得复杂的网络,变成虚拟互联的网络了;
  2. 使得网络层可以屏蔽底层的细节,而专注于网络层的数据转发;
  3. 解决了虚拟网络中,数据报传输路径的问题。

1、 IP数据报

对于数据链路层,IP数据报是组成帧的数据部分。而IP数据报,又是由IP首部和IP数据报的数据两部分组成。

1.1 IP首部

每一行都是32个比特,前5行是必须存在的;第六行选项非必须。也就是说,IP首部至少有20个字节长度。

第一层的32个比特的信息:

  • 版本:IP协议的版本,主要是IPV4,也有IPV6;
  • 首部长度:指的是IP首部的总长度,占4个比特,即最大为15,单位是“32比特”,或者说“4个字节”。所以,头部最大长度是60个字节,也就是说选项最长可以是60-20=40个字节;
  • 总长度:整个IP数据的总长度(IP首部+IP数据),16位,单位是字节,即IP数据最长为65535字节。

第二层的32个比特的信息:

  • 3位标志:目前只使用了前两位,用于标识IP数据报文是否可以分片;
  • 13位片偏移:如果IP报文被分片了,则使用13位片偏移来记录当前的数据帧,是分片后的第几片;

第三层的32个比特的信息:

  • 生存时间TTL:8位,IP报文在网络中的寿命,只要报文通过一台设备(路由器或者计算机),则TTL减一,当TTL为0时,网络会丢弃这个IP报文。用于避免IP报文在找不到终点的时候,无限的在网络中传输,消耗带宽;
  • 协议:8位,指的是IP报文携带的数据,是什么协议的数据,例如TCP、UDP等。协议内容参考下面的图片;
  • 首部校验和:校验IP的首部是否出错,如果出错就丢弃掉。

可以看到,IP数据中是可以继续封装IP数据的。

2、IP协议的转发

IP协议转发的大致流程:

抽象的来看,是通过逐跳(hop-by-hop)来实现的在不同网络中的传输:

2.1 路由表

路由表中,每一条路由存储的是两个信息:(目的网络地址,下一跳的地址)。目的网络地址指的是最终要到达的IP地址,下一跳地址,指的是要去目的网络地址,下一跳应该先去那个IP地址。

2.2 IP协议转发流程

IP协议转发的一个完整流程:

再加上数据链路层,传输过程如下:

1)A ----> E:

2)E ----> F:

3)F ----> C:

其中,在每一条中:

  • 数据帧:每一跳的源MAC地址和目的MAC地址都在变化;
  • IP数据报:每一跳的源IP地址和目的IP地址都不变。

3、子网划分

3.1 分类的IP地址

IPV4地址由网络号和主机号组成,总共32位。根据网络号和主机号长度的不同,IP地址分为如下几类:

  • A类地址:网络号8位,主机号24位,并且首位是0;
  • B类地址:网络号16位,主机号16位,并且首位是10;
  • C类地址:网络号24位,主机号8位,并且首位是110。

三类地址的特点:

特殊主机号:

  • 主机号全是0:表示当前网络段,不能分配给特定主机;
  • 主机号全是1:表示当前网络段的广播地址,即向主机号全1的地址发送广播,用来通知当前网络段的全部主机,不能分配给特定主机。

特殊的网络号:

  • 对于A类地址,网络段全0,表示特殊网络,不允许使用;
  • 对于A类地址,网络段后7位地址全为1(即127),表示回环地址,不允许使用;
  • 对于B类地址,网络段全0(即128.0),不可使用;
  • 对于C类地址,网络段全0(即192.0.0),不可使用。

本地回环地址:127.0.0.1被称为本地回环地址,不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

3.2 划分子网的基本思想

二级IP地址(网络号+主机号)有很多不合理的地方:

  1. IP地址的空间利用率可能很低:如果有256名员工,这个公司就必须申请B类IP地址,会导致大量的IP地址不能被利用;
  2. 路由表过大影响网络性能:路由器中会存储一个路由表,记录到目标地址的下一跳路由器地址。如果物理网络中的IP地址资源过多,会导致路由表过大,路由器查询时间过长,导致网络性能恶化;
  3. 两级IP地址不够灵活:有时候一个单位需要在新的地方开辟新的网络,但是在申请到一个新的IP地址之前,新增的网络不能连接到互联网。

由于以上问题,所以提出了三级子网的概念,在网络号的基础上,增加一个子网号。这种做法,就叫划分子网,或者子网寻址、子网路由选择。

划分子网的思路:

  1. 整个网络对外表现为一个网络,外部网络无法区分这个网络内部的不同子网;
  2. 从主机号借用若干位作为子网号,IP地址在本单位内部显示为三级IP地址:<网络号>,<子网号>,<主机号>;
  3. 从其他网络发送给本单位某台主机的IP数据报,仍是根据本单位的网络号发送到本单位的路由器上,本单位的路由器再收到IP数据报之后,再按子网号找到目的子网,然后把IP数据交付给目的主机。

3.3 子网掩码

子网掩码是一个子网的重要属性。

子网掩码是为了定位到一个子网下的一组IP地址的子网。子网掩码也是32位,网络号和子网号对应的位数都是1,主机对应的位置都是0,这样一个IP地址和一个子网掩码逐位进行与运算,得到的结果就是网络号+子网号的网段信息。

3.4 无分类编址CIDR(构成超网)

无分类编址CIDR(Classless Inter-Domain Routing)的主要特点:

  1. 消除了传统的A、B、C三类地址和划分子网的概念,可以更有效地分配IPV4地址空间。CIDR将IP地址分成两部分:网络前缀和主机号,使IP地址称为无分类的两级编码:<网络前缀>,<主机号>。CIDR还使用斜线记法,在IP地址后面加斜线,然后写上网络前缀的位数。例如128.14.35.7/20。网络前缀可以是任意长度。
  2. CIDR把网络地址相同的连续IP地址组成一个CIDR地址块。只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的最小地址和最大地址,以及地址的数量。

使用CIDR后,路由器查询路由表的操作更复杂了。通常是把无分类编址的路由表存放到一种层次的数据结构中,然后自上而下的按层次进行查找。这里最常用的是二叉线索,这是一种特殊结构的树,每一层代表IP地址中的一位,深度最多有32层。

二叉线索的每个叶节点中还需要存储一个子网掩码。在用二叉线索查找到叶节点后,还需要将寻找的IP地址和该叶节点的子网掩码逐位相与,看结果是否与对应的网络前缀相匹配,如果匹配,就按下一跳的网络地址转发该分组,否则就丢弃该分组。

二、ARP协议

1、ARP协议

ARP(Address Resolution Protocol),地址解析协议,用于将IP地址转换为48位的MAC地址。

ARP高速缓存表:用来记录IP地址和MAC地址的映射关系。

如果ARP高速缓存表中没有记录IP地址和MAC地址的映射关系,ARP进程将会在本局域网广播ARP请求分组,其中包含自己的IP地址和MAC地址,以及想要知道的MAC地址的目标IP地址。目标设备收到这个广播后,会向主机发出响应,告知自己的MAC地址。路由器的ARP进程收到响应后,就在ARP高速缓存中写入该MAC地址和IP的映射关系。

需要注意的是,ARP的高速缓存表是有期限的,因为IP地址到MAC地址的映射,会随着IP地址的变化而变化。

2、RARP协议

RARP(Reverse Address Resolution Protocol),逆地址解析协议。

三、网络地址转换NAT

网络地址转换技术NAT主要用于,多个主机通过一个公有IP访问互联网的私有网络中。

现在一般吧运输层的端口号也算上,也叫做网络地址与端口号转换NAPT。局域网中的一台主机通过某个端口向公网发送消息的时候,路由器通过NAPT将该主机的“IP:端口”转换成“路由器的公网IP:路由器上的某个端口”,再去给公网发送数据;收到公网上另一个实例响应的消息后,再根据接收响应的端口,映射到对应的局域网的主机的相应端口。

NAPT路由器和普通路由器不同的地方在于:

  1. 普通路由器在转发IP数据报的时候,一定要更换其IP地址,而普通路由器不会更换;
  2. 普通路由器在转发数据的时候,是工作在网络层,而NAPT路由器还要看运输承担端口号。

NAT减缓了IP地址的消耗,但是增加了网络的复杂度。

四、差错报告:ICMP协议

网际控制报文协议ICMP(Internet Control Message Protocol),允许主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP协议是封装在IP数据报的数据部分里面的:

ICMP首部的内容:

字段解释:

  1. 类型:指的是ICMP报文的种类;
  2. 代码:指的是当前ICMP种类的具体的错误类型;
  3. 校验和:校验报文是否出错。

ICMP报文分成两类,一类是差错报告的报文,一类是询问报文。

1、差错报告

差错报告的报文内容:

2、询问报文

询问报文的内容:

3、应用

3.1 Ping

Ping命令通过ICMP的询问报文实现。Ping命令的响应内容:

PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.103 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.085 ms
  • 64 bytes指的是报文的大小。IP首部至少20个字节,所以ICMP报文花费了不超过44个字节;
  • ttl表示报文的寿命,每经过网络中的一个节点,ttl减一。

用ping命令排查网络状态:

  1. ping 127.0.0.1:ping回环地址是为了检查协议栈是否有问题;
  2. ping 网关(路由器):一般路由器地址是192.168.1.1,检查终端到网关是否是通的;
  3. ping 远端地址,例如ping百度。

3.2 Traceroute

Traceroute用于探查IP数据报在网络中走过的路径。Traceroute使用了差错控制报文。

Traceroute首先会发出一个TTL为1的报文,然后在经过第一个路由器的时候TTL减1,变成0,第一个路由器会返回一个差错信息,然后Traceroute记录下返回差错信息的路由器的地址,作为第一个网关;然后Traceroute再发送一个TTL为2的报文,获取第二个网关。以此类推,知道传送到目标地址,获取路径上的全部网关。

五、路由

路由是网络层的主要功能。这里主要讨论路由表的来源,即在路由表中下一跳地址是如何获取到的。

1、自治系统

一个自治系统AS,是一个管理机构下的网络设备群。

AS内部网络自行管理,AS对外提供一个或多个出入口。

自治系统内部路由的协议,被称为内部网关协议,包括RIP、OSPF等。

自治系统外部路由的协议,被称为内部网关协议,即BGP协议。

2、内部网关协议:RIP

2.1 距离矢量算法DV

距离矢量算法是运行在图中的一种算法。算法描述:

  1. 图中的每一个节点,都使用两个向量:Di、Si。Di描述了当前节点到下一个节点的距离;Si描述了当前节点到别的节点的下一个节点是哪个。
  2. 每个节点都会和相邻的节点交换向量Di和Si信息,并根据交换的信息进行运算,并更新自己的Di和Si的信息。

Di和Si的详细描述:

  • di1表示,当前节点i到节点1的距离;
  • si1表示,当前节点i到节点1的路径中的下一个节点是什么;
  • n表示,当前节点的数量;
  • 求dij的最小值:dij = min(dix + dxj)。

路由器中会存储这样一个表,记录节点到节点之间的距离,同时使用dij = min(dix + dxj),来更新表中的距离值,其中S表示到目标节点的下一个节点:

2.2 RIP协议

RIP(Routing Information Protocol)协议,路由信息协议,算法描述:

  • 使用距离矢量算法DV算法的一种路由信息;
  • 把网络的跳数,作为DV的距离;
  • RIP协议每隔30s交换一次路由信息;
  • RIP协议默认把跳数大于15的路由,认为是不可达路由。

RIP协议的过程:

  1. 路由器初始化路由信息Di和Si两个向量;
  2. 对相邻路由器X发过来的信息进行修改,将所有距离+1,下一跳修改为X;
  3. 根据X发过来的信息,更新本地路由表:插入新的路由;对于下一跳为X的,更新为新信息;对比相同目的的距离,如果新信息更小,则更新本地路由表;
  4. 如果3分钟没有收到相邻的路由器信息,则把该相邻路由器设置为不可达(16跳)。

2.4 RIP协议的优缺点

1、故障信息传递慢

下图中,如果A不可达,则B询问C发现,A是可达的,跳数为2,则将A的跳数修改为3;然后C询问B,发现到A下一跳是B,则将跳数更新为4;一直这样循环下去,知道B和C中A的跳数都超过15以后,才会认为A不可达。

这个问题是由于每个路由器只能看到相邻路由器的信息,看不到更远的信息导致的。

2、网络规模受限

RIP协议认为15跳以上是不可达,所以如果网络规模较大时,跳数可能会过多,这时候会认为本来可达的链路为不可达。所以RIP协议不能应用于网络规模较大的情况。

3、实现简单,开销小

3、OSPF协议

3.1 Dijkstra(迪杰斯特拉)算法

这是使用广度优先搜索的图算法,用于解决有权图从一个节点到其他节点的最短路径问题。核心思想是“以起始点为中心,向外层层扩展”。

算法描述:

  1. 初始化两个集合(S, U),S是只有定点A的集合,U是所有其他顶点的集合;
  2. 如果U不为空,则U集合中的顶点进行举例排序,并取出举例A最近的顶点D;
  3. 将D纳入S集合,更新通过顶点D访问到U集合所有顶点的距离(如果距离更小,才更小);
  4. 重复第2步和第3步,直到U为空。

3.2 链路状态协议LS

链路状态协议LS的特点:

  1. 路由器会向所有的路由器发送状态信息:路由器会向相邻路由器发送消息,而相邻路由器在收到消息后,会继续向相邻的路由器广播该信息;
  2. 这个消息会描述,该路由器与相邻路由器的链路状态,包括距离、时延、带宽,网络管理员可以介入这个状态的管理;
  3. 只有当链路状态发生状态的时候,才会发送更新消息。

3.3 OSPF协议

OSPF(Open Shortest Path First)协议,指的是开放最短路径优先协议。协议的核心是迪杰斯特拉算法。

  1. 路由器会向所有的路由器发送状态信息:所以每个路由器的链路状态数据库都是完整的、全网一致的;
  2. 消息描述该路由器与相邻路由器的链路状态:链路状态包括距离、时延、带宽等信息,协议更加客观;
  3. 只有当链路状态发生状态的时候,才会发送更新消息:减少了数据的交换。

OSPF协议的5种协议类型:

  1. 问候消息:发送给隔壁路由器,确认与隔壁路由器是否可达;
  2. 链路状态数据库的描述信息:用于向隔壁路由器发送自己的链路状态消息;
  3. 链路状态请求消息:用于向隔壁路由器请求链路状态数据库;
  4. 链路状态更新消息:重要,非常频繁的一个消息,这条消息会不断广播到这个网络;
  5. 链路状态确认:用于对链路状态更新的确认。

OSPF协议的过程:

  1. 路由器接入网络;
  2. 路由器向相邻路由器发出问候信息,确认可达性;
  3. 和隔壁路由器互发状态描述信息,并根据隔壁路由器的状态描述信息,更新自己的链路状态数据库;
  4. 路由器广播和接受链路状态更新消息,并更新自己的链路状态数据库。

OSPF协议和RIP协议对比:

3、外部网关协议BGP

3.1 BGP简介

BGP(Border Gateway Protocol),边际网关协议,是运行在自治系统之间的协议。

使用BGP协议的原因:

  1. 互联网规模很大,如果使用OSPF协议,性能将会非常差;
  2. 资质系统内部可能使用不同的路由协议,不同协议之间无法通信;
  3. 自治系统之间的信息传输需要考虑一些网络状态之外的信息,例如政治、安全等。

BGP协议可以找到到达目的地是一条比较好的路由。注意,这里不是最好的路由,而是比较好的路由。

3.2 BGP发言人

  1. 自治系统边界的路由器会被配置为BGP发言人,AS之间通过BGP发言人来交换信息。
  2. BGP发言人可以人为配置策略,比如是否允许某些自治系统的信息通过、需要什么代价才能通过等。

比如,如下的结构中,每个主干ISP就是一个自治系统AS,分别可以配置各自的BGP发言人,在和其他系统通信的时候,就可以判断是否允许对方系统的消息通过。高层的自治系统的BGP代言人,可以拦截发向自己的低级自治系统的消息。

六、核心提炼

1、主要问题

  1. 什么是IP地址,IP地址有什么特征?IP地址和MAC地址有什么区别和联系?
  2. IP报文由IP头部和IP数据两个部分组成,IP头部一般占用多少个字节?
  3. 请简述IP头部包含哪些数据?
  4. IP头部的TTL数据有什么作用?
  5. 网络层是怎么界定区分一个IP报文的?
  6. 路由表是网络层重要的数据结构,路由表有什么作用?
  7. ARP协议有什么作用?如何清理本机的ARP缓存?
  8. ARP协议的设计有一定的缺陷,请通过搜索引擎自行搜索了解利用ARP漏洞攻击的方法。
  9. IP地址一共4Bytes,32bits,理论上可以表示多少个IP?
  10. 为了科学的使用IP地址,早期的科学家把IP地址划分为A、B、C三类IP地址,这些IP地址有什么特点?
  11. A类地址理论上可以有多少个子网,每个子网理论上有多少个主机号?
  12. 请列举特殊的网络号和特殊的主机号。
  13. 如何计算一个IP的网络号是什么?
  14. 一个网络的掩码是255.255.255.248,请问这个网络可以连接多少台主机?
  15. 网络地址转换技术(NAT)解决了什么问题?
  16. NAT技术的实现原理。
  17. ICMP报文和IP报文一样,也是由头部和数据两个部分组成,请简述ICMP报文的头部字段。
  18. ICMP报文和IP报文由什么关系?ICMP报文是怎么样传输的。
  19. 常见的利用ICMP协议的计算机应用有ping和traceroute,请简述这两个应用的功能,以及这两个应用是怎么利用ICMP协议完成工作的。
  20. 网络层路由可以抽象成一个图算法问题,按照网络的大小可以分为内部网关协议和外部网关协议,请列举与网络路由相关的算法。
  21. 请简述RIP协议的过程。
  22. RIP协议有什么优点和缺点?
  23. 请简述OSPF协议的过程,OSPF协议中起到重要的算法是什么算法?
  24. OSPF协议有什么优点和缺点?
  25. 网络层有了RIP协议和OSPF协议,为什么还需要BGP协议?BGP协议解决了什么问题?

2、重要概念

  1. 虚拟互联网络
  2. IP协议
  3. ICMP协议
  4. 路由表
  5. 子网掩码
  6. 无分类编址CIDR
  7. NAT
  8. 自治系统(AS)
  9. 距离矢量
  10. RIP协议
  11. 链路状态
  12. 迪杰斯特拉算法
  13. OSPF协议
  14. BGP协议

网络:网络层IP协议相关推荐

  1. 网络 网络层 | IP协议、网段划分、公网与私网、路由选择

    网络层是用信子网的边界,是通信设备的协议最高层.其功能是负责地址管理与路由选择(为每一条网络中的数据根据想去的地方选择合适的路径),典型的协议是IP协议,典型的设备是路由器 IP协议 IP协议的工作类 ...

  2. 网络基础网络层--IP协议

    网络基础网络层--IP协议 一.IP协议解析 (一)4位版本 (二)4位报头长度 (三)8位服务类型 (四)16位数据报长度 (五)16位分片标识 (六)3位分片标志 (七)13位分片偏移 (八)8位 ...

  3. 熟悉网络层IP协议和数据链路层

    1. 应用层IP 协议 1.1 IP协议头 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. 4位头部长度(header length): IP头部的长度是多少个32 ...

  4. 网络层IP协议—ipv4

    什么是IP协议? IP 协议(Internet Protocol)是一个处于垄断地位的网络层协议. IPv4 就是 IP 协议的第 4 个版本,是目前互联网的主要网络层协议.IPv4 为传输层提供 H ...

  5. 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍

    1.10数据封装/解封装过程 1.10.1封装 特点 从四层网上层封装 2.过程 1)在数据后面加FCS校验.data->FCS校验 2)对数据在四层进行封装,通过TCP/UDP.TCP/UDP ...

  6. 网络原理IP协议/以太网

    大家快来学习啦~~~ 目录 1.IP协议 1.1地址管理 1.1.1普通地址 1.1.2特殊地址 1.1.3NAT机制 1.2路由选择 1.以太网协议 2.DNS协议 一.网络层 1.IP协议 ①IP ...

  7. 网络层IP协议和数据链路层

    目录 IP协议 协议头格式 分片 网段划分 特殊的IP地址 IP地址的数量限制 NAT技术 NAT技术背景 NAT IP转换过程 NAPT NAT技术的缺陷 NAT和代理服务器 私有IP地址和公网IP ...

  8. 网络:IP协议与寻址

    TCP/IP协议族中最核心的协议,提供不可靠.无连接的数据报传输服务. ·        不可靠:不能保证IP数据报能成功送达. ·        无连接:并不维护后续数据报的状态信息,每个数据报的处 ...

  9. 计算机网络-实验5:网络层-IP协议分析

    实验报告 IP协议分析与子网转发 实验目的:1.理解IP协议数据报格式,IP数据包分片:                   2.了解路由器在不同子网之间转发数据报,配置静态路由. 实验任务1.启动W ...

最新文章

  1. 漫谈惯性、视觉暂留、潜意识、混合动力发动机、先入为主 - 纯粹的无厘头?...
  2. Python函数(1)
  3. POJ3748 位操作【位运算+STL】
  4. 计算机实验内容记录,关于实验数据自动记录到电脑上的问题
  5. 大数据小视角1:从行存储到RCFile
  6. 基于web在线餐饮网站的设计与实现——蛋糕甜品店铺(HTML+CSS+JavaScript)
  7. 计算机格式字体颜色,电脑怎么设置不同的字体颜色样式
  8. 【NLP】第10章 使用基于 BERT 的 Transformer 进行语义角色标记
  9. 电子计算机4个发展阶段的划分,计算机以什么划分发展阶段
  10. html里alert怎么设置确定和取消,自定义alert 确定、取消功能(示例代码)
  11. html中如何实现倒计时
  12. 电子计算机进行会计核算 其会计,1. 使用电子计算机进行会计核算,其软件与其生成会计 ….doc...
  13. C语言的access函数的用法
  14. 老电脑安装XP时遇到问题的总结
  15. 新神魔大陆服务器现在在维护吗,新神魔大陆1月22日合服维护公告
  16. 直流有刷电机并联小电容作用分析
  17. Win10使用CH340 USB-SERIAL串口
  18. Xshell、xftp 安装PJ 以及使用
  19. 皇家恩菲尔德子弹500经典
  20. robotframework 内置库BuiltIn学习笔记

热门文章

  1. 怎么使用biopython_关于python:使用Biopython的翻译功能后,如何跟踪核苷酸序列中起始密码子(ATG)的位置?...
  2. 富文本关键字搜索高亮,解决方法及优化(收藏!)
  3. 银行业务中的清算和结算分别是什么样的过程
  4. Windows下基础免杀技术
  5. 7.4 平面及其方程
  6. oracle 网络培训,Oracle 中级运维网络培训班
  7. 实现VS平台账号注册机
  8. 汇编获取CPU的id
  9. 客户案例 | 高等教育出版社
  10. 日期问题合集(时令、时区)