TCP/IP模型 - 网络层

  • 网络层的主要功能:数据路由
  • IP 协议(IP地址、IP报文格式)
  • IP协议妆发流程(路由表、转发流程、APR/RAPR协议)
  • 控制报文ICMP协议详解(Ping、Traceroute)
  • 网络地址转换NAT技术(内网地址、外网地址、端口映射)
  • IP地址的子网划分
  • 网络层的路由概述

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缓存表
  • Windows系统下查看ARP缓存命令:arp -a

  • Windows系统下计清除看ARP缓存命令:arp -d

  • ARP缓存表是ARP协议和RARP协议运行的关键

  • ARP缓存表缓存了IP地址到硬件地址之间的映射关系
    在网络层进行数据转发时,是需要进过数据链路层和物理层来进行传输的。因此在网络层进行数据报转发时,首先需要通过ARP协议将IP地址转化为MAC地址,然后告诉数据链路层目的MAC地址,数据链路层才能进行数据帧的传输。

  • ARP缓存表中的记录并不是永久有效的,有一定的期限
    虽然设备的MAC地址是永久不变的,但是设备的IP是可变的,因此IP地址到MAC地址的映射是不唯一的。

转发流程

逐跳(hop-by-hop):

  • 数据帧每一跳的MAC地址都在变化;
  • IP数据报每一跳的IP地址始终不变;

问: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协议

  • 网际控制报文协议(Internet Control Message Protocol)
  • 数据在传输中发生错误时,ICMP协议可以报告错误信息或者异常情况,辅助IP协议更好的传输数据。

ICMP报文

  • ICMP报文是封装在IP数据报的数据中进行传输的,存储在IP数据报的服务类型(TOS)中,值为1(见图:IP数据格式)
  • 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技术:
  • 网络地址转换NAT(Network Address Translation)
  • NAT技术用于多个主机通过一个公有IP访问互联网的私有网络中
    (NAT技术在网络设备中通过维护一个映射表,通过映射表可以将外部地址转化为内部地址)
  • NAT减缓了IP地址的消耗,但是增加了网络通信的复杂度
IP地址有两类:
  • 内网地址:内部机构使用避免与外网地址
  • 外网地址:全球范围使用全球公网唯一
NAT技术产生原因:

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

解析:

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

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


网络层的路由概述


路由表是怎么来的?
路由表更新问题
路由算法
自治系统(AS)
自治系统(AS)
  • AS(Autonomous System 自治系统)
  • (处于一个管理机构下的网络设备群。AS内部网络自行管理,对外提供一个或者多个出/入口);
  • 内部网关协议(自治系统内部路由的协议称):RIP协议、OSPF协议;
  • 外部网关协议(自治系统外部路由的协议称为):BGP;


网络层相关问答


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 协议是因为计算机网络中人为因素的复杂性而提出的,在实际网络环境中,数据的传输还受政治、安全等方面的影响。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容