TCP/IP模型 - 网络层

2021-04-02  本文已影响0人  liwuwuzhi

IP 协议


IP数据 IP数据格式

版本:占4位,指的是IP协议的版本(IPv4、IPv6等),通信双方的版本必须一致;
首部位长度:占4位,最大数值为15,表示的是IP首部长度;单位是“32位字”(4个字节),IP首部最大长度为60(15*4)字节;
服务类型:- 占8位,表明IP数据所携带的具体数据是什么协议的,如下:

总长度:占16位,最大数值为65535,表示的是IP数据报总长度(IP首部+IP数据)
标识:-
标志:-
片偏移:-
TTL:占8位,表明IP数据报文在网络中的寿命,每经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文;(TTL可以让IP数据在有限次传输之后,到达目的机器或被丢弃掉,避免数据在网络中无限的传输而消耗了带宽)
协议:占8位,表明IP数据所携带的具体数据是什么协议的(如:TCP、UDP、OSPF等);
首部校验和:占16位,校验IP首部是否有出错;
源IP地址:-
目的IP地址:-

IP协议的转发流程


路由表
转发流程
ARP协议与RARP协议

路由表

计算机或者路由器都拥有路由表。

路由表

ARP协议与RARP协议

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

注意点:
1)ARP/RARP协议为数据链路层协议
2)ARP/RARP协议是直接封装到数据链路层的数据帧里面的

ARP缓存表:
ARP缓存表

转发流程

逐跳(hop-by-hop):

问:A如何跨设备发送数据到C?

网络层的数据转发流程
  1. A发出目的地为C的IP数据报,A查询本机路由表发现下一跳为E,并将数据报发送给E;
  2. E查询本机路由表发现下一跳为F,将数据报发送给F;
  3. F查询本机路由表发现目的地C直接连接,将数据报发送给C;
网络层+数据链路层的数据转发流程

A -> E

  1. A发出目的地为C的IP数据报,查询本机路由表发现下一跳为E

  2. A将IP数据报交给数据链路层,并告知目的MAC地址(E的MAC地址) 【网络层,IP数据报,ARP缓存表,路由表】
    2.1 A查询ARP缓存表,如果ARP缓存表没有IP E 的 MAC地址映射关系
    2.2 A将使用ARP协议广播E的IP到所有端口
    2.3 A将收到端口返回的数据包,得到IP E 的 MAC地址,并将该映射关系存储到ARP缓存表

  3. 数据链路层填充源MAC地址A目的MAC地址E 【数据链路层,帧数据,MAC表】

  4. 数据链路层通过物理层将数据发送给E 【物理层】

E -> F

  1. E的数据链路层接收到数据帧,把帧数据交给网络层
  2. E查询路由表,发现下一跳为F
    ...

IP地址的子网划分


分类的IP地址
    A类
    B类
    C类
    特殊的网络号
    特殊的主机号
划分子网
    子网掩码
无分类地址CIDR

IP地址的子网划分

ICMP协议


功能
分类
    差错报告报文
    询问报文
ICMP报文结构

ICMP协议

ICMP报文

ICMP报文存储位置 差错报告报文 和 询问报文

ICMP应用

1)Ping 应用

ping 应用只要使用的是ICMP回送(Echo)请求或应答的询问报文。

应用:测试网络是否连通
◆ Ping回环地址127.0.0.1(本机地址)
◆ Ping网关地址(路由器默认网关,一般为192.168.0.1或192.168.1.1)
◆ Ping远端地址(如百度地址)

2)Traceroute 应用

Traceroute可以探测IP数据报在网络中走过的路径(路由每一跳的地址);
Traceroute原理:借助ICMP终点不可达的差错报告报文,和IP数据报TTL当TTL=0时,网络设备必须丢弃该报文,以此来记录IP数据走过的路径;

应用:
计算机中如何使用Traceroute?tracert + 域名/IP地址,如:tracert github.com

NAT技术


内网地址
外网地址
端口映射
网络地址转换NAT技术:
IP地址有两类:
NAT技术产生原因:

IPv4最多只有2^23个地址,现阶段不够用。所有我们将IP地址分为 内网地址 和 外网地址,不同的机构中内部可以使用相同的IP地址,不会冲突,而在连接外部时则使用全球公网唯一的外网地址,NAT做的就是内网地址和外网地址的切换和识别。

解析:

NAT技术发生在本地路由器中,主要功能就是把内网的IP地址,转化成外网的IP地址,来进行外部的通信;并且在接收到数据之后,再把外网的IP地址映射成内网的IP地址转发到具体的某个设备里去。

因此,网络地址转换虽然增加了网络通信的复杂度,但是减缓了IP地址的消耗。

网络层的路由概述


路由表是怎么来的?
路由表更新问题
路由算法
自治系统(AS)
自治系统(AS)

网络层相关问答


1. 什么是 IP 地址,IP 地址有什么特征?IP 地址和 MAC 地址有什么区别和联系?
IP 地址是唯一标记互联网中计算机的标识,IP 地址共占用 4 个字节,使用点分十进制表示。
IP 地址和 MAC 地址都是一种标识,IP 地址标记网络中的计算机,MAC 地址标记网络硬件设备。

2. IP 报文由 IP 头部和 IP 数据两个部分组成,IP 头部一般占用多少个字节?
IP 头部一般占用 20 个字节。

3. 请简述 IP 头部包含哪些数据?

4. IP 头部的 TTL 数据有什么作用?
TTL 占用一个字节,TTL 表示 IP 数据包在网络中的寿命,当 TTL 为 0 时,网络设备将丢弃这个报文。

5. 网络层是怎么界定区分一个 IP 报文的?
IP 协议头部有个字段为报文总长度,占用 16 个比特位,网络层根据这个字段划分报文。

6. 路由表是网络层重要的数据结构,路由表有什么作用?
路由表存储着目的地址和下一跳地址的映射关系,路由表是网络层可以正常工作的重要数据结构。

7. ARP 协议有什么作用?如何清理本机的 ARP 缓存?
ARP 协议全称是地址解析协议,即 ARP(Address Resolution Protocol)。ARP 协议可以将 IP 地址翻译成物理地址。
在 Windows 系统下使用 arp -d 命令就可以清楚 arp 缓存。

8. ARP 协议的设计有一定的缺陷,请通过搜索引擎自行搜索了解利用 ARP 漏洞攻击的方法。
略。

9. IP 地址一共 4Bytes,32bits,理论上可以表示多少个 IP?
理论上可以表示 2 的 32 次方个 IP。

10. 为了科学的使用 IP 地址,早期的科学家把 IP 地址划分为 A、B、C 三类 IP 地址,这些 IP 地址有什么特点?
IP 地址可以分为网络号和主机号两个部分。
A 类地址网络号为 8 位,主机号为 24 位;
B 类地址网络号为 16 位,主机号为 16 位;
C 类地址网络号为 24 位,主机号为 8 位。

11. A 类地址理论上可以有多少个子网,每个子网理论上有多少个主机号?
A 类地址网络号为 8 位,其首位为 0,故理论上可以表示 2 的 7 次方个网络,主机号为 24 位,每个子网可以有 2 的 24 次方个主机。

12. 请列举特殊的网络号和特殊的主机号。
主机号全 0、主机号全 1 的 IP 地址为特殊的主机号,不可分配。

13. 如何计算一个 IP 的网络号是什么?
使用子网掩码和 IP 地址进行按位与运算就可得到 IP 地址对应的网络号。

14. 一个网络的掩码是 255.255.255.248,请问这个网络可以连接多少台主机????
这个网络的主机号只有 3 位,最多可以表示 8 个主机,减去全 0、全 1 两个特殊主机号,一共可以连接 6 台主机。

15. 网络地址转换技术 (NAT) 解决了什么问题?
NAT 技术解决网络 IP 地址不够用的问题。

16. NAT 技术的实现原理。
NAT 技术在网络设备中通过维护一个映射表,通过映射表可以将外部地址转换为内部地址。

17. ICMP 报文和 IP 报文一样,也是由头部和数据两个部分组成,请简述 ICMP 报文的头部字段。
ICMP 报文的头部字段由三个部分组成,分别是 8 位类型、8 位代码和 16 位校验和。

18. ICMP 报文和 IP 报文由什么关系?ICMP 报文是怎么样传输的。
ICMP 协议和 IP 协议虽然同为网络层协议,但是 ICMP 是不能单独传输的,ICMP 报文需要传输时作为 IP 报文的数据进行传输。

19. 常见的利用 ICMP 协议的计算机应用有 ping 和 traceroute,请简述这两个应用的功能,以及这两个应用是怎么利用 ICMP 协议完成工作的。

20. 网络层路由可以抽象成一个图算法问题,按照网络的大小可以分为内部网关协议和外部网关协议,请列举与网络路由相关的算法。
距离矢量算法、Dijkstra(迪杰斯特拉)算法。

21. 请简述 RIP 协议的过程。

22. RIP 协议有什么优点和缺点?
RIP 协议具备着实现简单、开销小等优点,但是 RIP 协议本身的缺陷限制了网络的规模,并且在 RIP 协议中坏消息传的慢,更新收敛时间长, 这也使得 RIP 协议整体性能较差。

23. 请简述 OSPF 协议的过程,OSPF 协议中起到重要的算法是什么算法?
略,Dijkstra(迪杰斯特拉)算法。

24. OSPF 协议有什么优点和缺点?
OSPF 协议解决了 RIP 协议的问题,对整个网络有一定的 “全局观”,但是 OSPF 协议本身较为复杂,实现开销较大。

25. 网络层有了 RIP 协议和 OSPF 协议,为什么还需要 BGP 协议?BGP 协议解决了什么问题?
BGP 协议全称为边际网关协议 (Border Gateway Protocol),BGP 协议是因为计算机网络中人为因素的复杂性而提出的,在实际网络环境中,数据的传输还受政治、安全等方面的影响。

上一篇下一篇

猜你喜欢

热点阅读