指引:
网络层提供的两种服务
网际协议IP
网际控制报文协议ICMP
因特网的路由选择协议
IP多播
虚拟专用网VPN和网络地址转换NAT
思考:可靠交付交给谁来负责? 网络还是端系统?
举例:网上购物的可靠交付由谁来负责?
1、商家下单之后,交给快递之后,商家就不管了。过几天我们没有拿到,或者拿到的东西坏了。然后我们找厂家。
2、这个过程中,快递公司是不管东西好坏的,直接运输的。
3、可靠交付交给 端系统,就是用户和商家。
4、如果交给 快递公司 的话,每一站快递都得拆开看看到底有没有错误。(这样效率会很低)
同理:我们在互联网上面,我们将可靠交付 交给端系统,网络不管这个事情,网络只管发送。
数据报服务:目前网络当中就是采用这种模式。
网络互联的设备:
分层 | 设备 | 作用 |
---|---|---|
物理层 | 转发器 | 以太网的范围不应该大于 100米,但是增加一个 Hub,距离就可以扩大为 200米。 |
数据链路层 | 网桥或交换机 | |
网络层 | 路由器 | |
网络层以上 | 网关 | 一般用本网段的第一个地址,位于路由器的某个端口 |
数据的发送过程:
电脑网卡 ——> 路由器网关 ——> 路由器转发 ——> 互联网
网络层要解决的问题:
主机怎么找到第一个路由器、
第一个路由器怎么找到第二个路由器、
互联网与虚拟互联网:
网络层有四个协议
注意:可以看出 ARP 协议的地位相对低一点, IPv4 协议也要依靠 ARP 来进行实现。
在设置 IPv4 的协议,并没有想到互联网可以发展这么快,所以将 IPv4 设置为 32位,怎么也想不到可以将这 32 位用完。
IP地址的分类
由上图可以看出IP地址由两部分组成,即网络地址和主机地址,二者是主从关系。
A类地址、B类地址、C类地址,都有自己固定的开头。
子网掩码的作用:
比如一个地区只有 5 台计算机,我不可能给它分一个可以包含 254 个主机的 C 类地址,太浪费了。
例题1:某主机IP地址为 210.33. 5.68 ,子网掩码为255. 255. 255.128。求其网段地址?
解析:将IP地址与子网掩码直接相与即可:
例题2:某A类网络 20. 0. 0. 0 的子网掩码为 255.224. 0. 0 ,请确定可以划分的子网个数,写出每个子网的子网号。
解析:因为是A类网络,子网掩码默认为255.0.0.0
000 00000
001 00000
010 00000
000 00000 :子网地址
000 11111 :本子网的广播地址。
在这两个之间的 IP 地址都可以用。
例题3:将某C网 200. 161. 30. 0 划分成4个子网,请计算出每个子网的有效的主机IP地址范围 和对应的子网掩码。
解析:4个子网,需要2个bit 位来进行区分。
例题4:某公司申请到的网络地址为 192. 3.2.0 ,现要划分5个子公司,最大的一个子公司有28台计算机,每个子公司在一个子网中,则
(1)子网掩码应为多少?
(2) 5个子公司的网络地址分别是什么?
分析:
提问:既然每个网卡的 MAC 地址是唯一的,那么我们直接使用 MAC 用来标识就好了,为什么还需要 IP 地址呢?
计算机 A 和计算机B 通信过程当中:
ARP协议 :负责将 IP 地址 解析成MAC地址。
解析原理:依靠广播 ,所以对于网络传输来说,广播是不可避免的。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
ARP 欺骗的应用:
所以主机1 就可以实现网速分配的效果。
总结:
1、当访问外网段IP地址的时候,我们主机这时候需要添加本网关的MAC 地址。
2、本网关的MAC 地址:就是本网段路由器,当中的一个端口的MAC地址。
3、网关的MAC地址,即可以有路由器自动返回,也可以由用户自己设定,也可以被本网段的其他计算机发送。
我们现在分析网络层前面加的东西(叫做 IP数据报)。
一个IP数据报由 首部 和 数据两部分组成。
位置 | 名称 | 作用 |
---|---|---|
0-3bit | 版本 | 区别当前IP协议是 IPv4 还是IPv6 |
4-7bit | 首部长度 | 因为首部有一部分是可以变化的,所以在这里要明确标注长度 |
8-15bit | 区分服务 | 标记数据包的优先级,哪一个先传输。(下面会补充) |
16-31bit | 总长度 | 总长度指首部和数据之和的长度,单位为字节。(最大长度为2^16-1=65535字节) |
32-47bit | 标识 | IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。 |
48-50bit | 标志 | 占3位,但只有2位有意义,告诉数据包是否需要分片? |
50-63bit | 片偏移 | 表示分片之后,各个数据包的偏移值(下面会有补充) |
64-71bit | 生存时间 | 不同操作系统的默认 TTL值 不同 (下面会有补充) |
72-79bit | 协议 | 标明数据内容当中的上层协议是什么 (下面会有补充) |
80-95bit | 首部校验和 | 验证数据报首部是否完整 ,担心传输过程当中消失 |
源地址 | 发送端的IP地址 | |
目的地址 | 接收端的IP地址 | |
可变部分 | 用来支持排错、测量以及安全等措施 |
(1)怎么理解数据包的优先级?
我们在 QQ 视频的同时,对方同时给我们传递文件,此时视频的数据包就比传文件的数据包重要。
(2)数据包分片:
以太网的数据一般来说都是 1500字节以下,有的计算机发包的时候,发送了 3800 个字节。此时路由器看到这些大包就没有办法处理了,这时候这些路由器将这些大包进行分片,
为什么要设置生存时间呢?
如果没有生存时间,如果我们网络一直不断电,这个数据包就一直不会消失,就会一直消耗我们的带宽。
(4)协议号:(可以搜索协议号大全)
使用抓包工具来分析,抓到的数据:
需要了解的几个问题:
1、什么叫做 IP 转发? (什么叫做数据路由)
答:路由器在不同网段转发数据包。 跨越网段通讯的都是路由。
2、网络畅通的条件是什么?数据包能去能回的条件是什么?
答:沿途的路由器传输的时候,必须知道到,数据包到接收端需要给哪个接口,返回发送端又需要给哪一个接口。
1、这个图里面有几个网段?
答:有五个:192.168.0,172.16.0,172.16.1,172.16.2, 192.168.1。
2、各个路由器知道什么?
答:路由器 A ,知道 192.168.0,172.16.0 在哪两个端口,但是他不知道 192.168.0,192.168.1 在哪两个端口。
解决办法:添加静态路由,即给路由器指定不同IP地址需要发送的端口。
3、那么对于 0 号路由器来说,如果遇到 192.168.1 ,到底该走哪一个接口呢?
答:人为的添加路由表,对于 A 路由器来说,我们要告诉它 172.16.1,172.16.2, 192.168.1 遇到这三个网段的 IP ,都要送给 B 这个接口。
4、同理对于 1 号路由器来说,需要分配什么样的路由表呢?
答:192.168.0 给 C 端口, 172.16.2, 192.168.1 给 E 接口。
RIP 协议:互联网上最早的动态路由协议。它的工作特点
分析:路由器为什么要周期性的要进行广播?
假设在工作当中,当中有一个路由器坏了,如果只广播一次,那就完了,就不能通信了。
周期性的广播,如果有路由器坏掉的话,我们就可以选择其他路线来进行传输。
OSPF :内部网关协议 0SPF (Open Shortest Path First)
1、向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
2、发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
3、只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
外部网关协议BGP:
1、BGP是不同自治系统的路由器之间交换路由信息的协议,BGP 较新版本是BGP -4。
2、边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
3、每一个自治系统的管理员要选择至少-个路由器作为该自治系统的“BGP发言人”。
为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)。
类型:标识生成的错误报文,它是ICMP报文中的第一个字段;
代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因;
校验和:存储了ICMP所使用的校验和值。
名称 | 作用 |
---|---|
类型 | 有询问报文、和差错报文 |
代码 | 该字段用来查找产生错误的原因; |
校验和 | 存储了ICMP所使用的校验和值。 |
上面这个三个字段,每种类型的 ICMP 报文都有,下面的有的类型有,有的类型没有(与第一个字段的类型有关)
(1)ICMP 报文类型:
询问报文:回送请求(ping命令)和回答报文、时间戳请求和回答报文。
差错报文:(报告错误的报文)终点不可到达、源点抑制、时间超过、参数问题、改变路由。
ping 命令的过程:
(1)A 给 B 发送的时候是,询问报文
(2)B 给 A 返回的时候是,差错报文
pathping 命令,可以检测到数据包到哪里断了。
不仅可以显示在哪里断了,还可以显示每个网段的丢包率。
看视频一卡一卡的,其实就是有数据包丢失了。 通过 pathping 可以分析出哪里丢包比较多。
IP 多播又叫做IP 组播。
目的:为了更好的支持一对多的通信,一个地方发送数据,可以有肯多地方接收数据。
回顾数据链路层学过的:
模式 | 作用 |
---|---|
单播 | 一对一 |
多播 | 一对多 |
广播 | 一对全体 |
多播采用的背景是什么呢?
有 90 个用户,有一个视频服务器,这个视频服务器给这 90 个用户发送数据。
首先它是一个 D 类地址。他只能用作目的地址,不能用作源地址。
VPN :虚拟专用网络(virtual private network)
为了弥补IPV4地址日益枯竭的矛盾,在A、B、C类地址中专门划出一小块地址,作为全世界各地建设局域网使用,这些划出来专门作为局域网内网使用的IP地址称为私有网络地址(或称为私网地址,内网地址)。
一般为学校、政府单位 使用私网 IP 。
私网地址不能在公网上出现,只能用在内部网路中,所有路由器都不能发送目标地址为私网地址的数据报。
标准规定的私网地址有:
A类私网地址:10.0.0.0~10.255.255.255
B类私网地址:172.16.0.0~172.31.255.255
C类私网地址:192.168.0.0~192.168.255.255
举例情况:学校的服务器是一个私网 IP ,我们不使用校园网不可以进行访问。如果我们回家了,不能使用校园网,但是这时候想要访问学校的服务器,该怎么办?
用户想要直接访问内网服务器,这是不可能通的。 但是中间添加了一个服务器。
步骤:
(1)将目标IP地址,和伪造的源IP地址,作为数据包的一部分。
(2)在帧头当中,目的地址换为一个公网的IP地址。
(3)在经过 RAS 服务器的时候,将前一步的源IP 和 目标IP 去掉。
(4)这时候外网 IP 被伪造成一个内网IP。
的另外一种用途:
1、在中国我们有一些网址是不能访问的,(我们暂且将这些网址看作是内网),但是这些网址在美国可以进行访问。
2、我们在美国搭建一个中国可以访问的服务器, 然后我们先去访问这个服务器,然后这个服务器做 操作。
3、就相当于是美国的服务器在访问这个网址。
比如:如家酒店的账户信息需要进行交互,但是如家酒店遍布全球各地,这时候通过 VPN 技术,就可以将各个城市的局域网连起来。
网络地址转换NAT (Network Address Translation)
C类私网地址:192.168.0.0~192.168.255.255, 我们宿舍的ip网段为 192.168.1.0 ,也是一个私网地址。
所以一开始,互联网上面是找不到我们宿舍的 私网地址的。找不到就不能上网。
有一个服务器,会将我们私网地址,替换为公网地址。
举例:比如我们在互联网上面发了一个帖子,公安局可以找到 100.81.64.1 这个公网地址,然后就可以找到是在我们学校,但是要想找到是哪个学生发的,那就不太好找了。
有个问题:我们所有在学校的电脑都被替换成了100.81.64.1,服务器给我们进行返回数据的时候,也是返回给这个 100.81.64.1 这个地址。那么这个地址如何区分到底转发给哪台计算机呢?
100.81.64.1 这个服务器,通过端口号,来进行区分是哪一台计算机发送的信息。
NAT
192.168.0.2:4444 ----〉202.116.100.5:4444
192.168.0.3:5555 ----〉202.116.100.6:5555
192.168.0.10:1233 —〉202.116.100.5:1233
PAT
192.168.0.2:4444 ----〉202.116.100.5:50003
192.168.0.3:5555----〉202.116.100.5:50004
192.168.0.10:1233 —〉202.116.100.5:50005
简单来说,PAT:多对1,nat:多对多
NAT 端口映射和NAT 穿透的区别:
1、NAT:网络地址转换方法。
2、端口映射:NAT的一种,外网主机的IP地址的端口映射到内部网络中的机器上,以提供相应的服务。