文章目录
- 计算机通信的过程(本网段通信 跨网段通信的过程)
- 网络层提供的两种服务
- IP协议
- 虚拟互联网
- IP协议简介
- IP层次结构
- 网络地址的分类
- 子网掩码——将IP地址划分为网络地址和主机地址
- 子网划分——使用子网掩码
- 等分子网
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfAghair-1582094941209)(D:\Typora\images\1582007669133.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HmX9yglh-1582094941209)(D:\Typora\images\1582007918967.png)]点到点网络的子网掩码最好是252,而不是254(因为还有网段地址和广播地址)
- 划分子网要遵循2的进制规律
- 变长子网划分CIDR
- 判断IP地址所在的网段
- 构造超网(合并网络)
- IP地址和MAC地址
- ARP地址解析协议(Address Resolution Protocol)(本网段,把IP地址解析成MAC地址)
- 简介
- 功能:将IP地址通过广播(本网段),目标MAC地址是FF-FF-FF-FF-FF-FF, 解析目标IP地址的MAC地址
- ARP欺骗
- 为什么要使用ARP协议(为什么不直接使用硬件MAC地址进行通信?)
- 逆向ARP(物理MAC地址请求IP地址,现在已经很少使用)
- IP数据报
- 转发数据报的流程(路由)
- ICMP协议(Internet Control Message Protocol,网际控制报文协议)
- 因特网的路由选择协议(动态路由)
- 内部网关协议IGP —在一个自治系统内部使用的路由选择协议
- 外部网关协议EGP—不同自治系统交换路由信息的协议
- IPv6
- IP多播
- IGMP协议(Internet Group Management Protocol,网际组管理协议)
- 虚拟装用网VPN(Virtual Private Network)
- 网络地址转换NAT(Network Address Translation)
- 端口多路复用PAT(Port Address Translation)
计算机通信的过程(本网段通信 跨网段通信的过程)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvAAiCHw-1582094941206)(D:\Typora\images\1581945135063.png)]
发送端准备工作
层次结构(自顶向下) | 发送端(准备工作) |
---|---|
应用层 | 应用程序准备要传输的文件 |
传输层**(数据段)** | 将文件分成能够传送的数据包,并进行编号 |
网络层**(数据包)** | 添加目标IP地址,源IP地址 |
数据链路层**(帧)** | 先使用自己的子网掩码,判断自己在哪个网段,再使用自己的子网掩码,判断目标在哪个网段:如果是同一网段,使用ARP协议广播解析目标IP的MAC地址;如果不是同一网段,使用ARP协议得到路由器的MAC地址 |
物理层**(比特流)** | 发送比特流(电磁波) |
发送过程设备
层次结构(自顶向下) | 设备 |
---|---|
应用层 | / |
传输层**(数据段)** | / |
网络层**(数据包)** | 路由器(存储比特流、读取帧地址、丢弃MAC地址和FCS),路由器的地址指网关 |
数据链路层**(帧)** | 网桥、交换机(存储比特流、读取帧地址、转发比特流) |
物理层**(比特流)** | 网线、转发器、集线器 |
网络层提供的两种服务
- 网络层关注的时如何将分组从源端沿着网络路径送达目的端
- 可靠传输是通过端系统实现的
虚电路服务
- 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而不是真正建立了一条物理连接
数据报服务(主流)
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)
- 网络层不提供服务质量的承诺。即所传送的分数可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
尽最大努力交付的好处
- 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器处理数据包不过来就可以丢弃,这样 可以做得比较简单,而且价格低廉(与电信网的交换机相比较)
- 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就有网络中的主机中的运输层负责(包括差错处理、流量控制等)
- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用
- 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性
虚电路服务与数据报服务的比较
对比的方面 | 虚电路服务 | 数据包服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出现故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序,到达终点后再按顺序组装 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
IP协议
虚拟互联网
- 所谓虚拟互联网络也就是逻辑互联网络,它的意思就是互联起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络
- 使用IP协议的虚拟互联网络简称为IP网
IP协议简介
- 网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配套使用的还有四个协议
- 地址解析协议ARP(Address Resolution Protocol)
- 逆地址解析协议RARP(Reverse Address Resolution Protocol)(已不常用)
- 网际控制报文协议ICMP(Internet Control Message Protocol)
- 网际组管理协议IGMP(Internet Group Management Protocol)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W2sbIzfF-1582094941208)(D:\Typora\images\1581946681401.png)]
IP层次结构
- 我们把整个因特网看成为一个单一的、抽象的网络。IP地址就是给每个连接在因特网上的主机(或路由器)分配在全世界范围内的唯一的32位的标识符
- 层次化IP地址将32位的IP地址分为网络ID和主机ID
- 在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的
- 路由器总是具有两个或者两个以上的IP地址,路由器的每一个接口都有一个不同网络号的IP地址
- 虽然路由器可以使用该网段的任何可用的IP地址,为了避免将该网段计算机的地址和路由器的地址冲突,一般将路由器设置为该网段的第一个可用的IP地址(网关地址)或最后一个可用的IP地址(广播地址)
网络地址的分类
地址 | 组成 |
---|---|
A类地址 | 前1字节为网络段,后3字节为主机段(前缀是0,0-126,127地址较特殊) |
B类地址 | 前2字节为网络段,后2字节为主机段(前缀是10,128-191) |
C类地址 | 前3字节为网络段,后1字节为主机段(前缀是110,192-223),有254个网段可用(1-254) |
D类地址 | 多播地址(前缀是1110,224-239) |
E类地址 | 保留地址,研究用(前缀是1111,240-255) |
保留的地址
特殊的保留地址 | 定义 |
---|---|
127.0.0.1 | 本地环回地址 |
169.254.0.0 | 在没有获得地址时,计算机自动获得的地址 |
10.0.0.0 | 保留的私网A类地址 |
172.16.0.0 - 172.31.0.0 | 保留的私网B类地址 |
192.168.0.0 - 192.168.255.0 | 保留的私网C类地址 |
子网掩码——将IP地址划分为网络地址和主机地址
- 子网掩码又叫网络掩码、地址掩码,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识是主机的位掩码
- 子网掩码不能单独存在,它必须结合IP地址一起使用
- 子网掩码只有一个作用,那就是将某个IP地址划分成网络地址和主机地址两部分
- 子网掩码与IP地址做与运算,可以得到其所在的网段(之所以其取值为255,是因为其转换为8位二进制为11111111)
子网划分——使用子网掩码
等分子网
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VX81Pbj7-1582094941208)(D:\Typora\images\1582007341604.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfAghair-1582094941209)(D:\Typora\images\1582007669133.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HmX9yglh-1582094941209)(D:\Typora\images\1582007918967.png)]点到点网络的子网掩码最好是252,而不是254(因为还有网段地址和广播地址)
划分子网要遵循2的进制规律
变长子网划分CIDR
判断IP地址所在的网段
构造超网(合并网络)
规律
- 向左移动一位子网掩码可以合并0、1网络,也可以合并2、3网络,也可以合并4、5网络,也可以合并6、7网络
- 通过向左移动2位子网掩码可以将连续的0、1、2、3网络合并成一个网络,也可以将连续的4、5、6、7网络成一个网络
- 通过向左移动3位子网掩码,可以将0、1、2、3、4、5、6、7网络合并成一个网络
IP地址和MAC地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXQv6Xkc-1582094941210)(D:\Typora\images\1582010486718.png)]
- 网络层以上使用IP地址
- 数据链路层及以下使用硬件地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UfoFVSIv-1582094941210)(D:\Typora\images\1582010650636.png)]
- 交换机基于数据帧的MAC地址转发数据帧,路由器基于数据包的IP地址转发数据包
- 数据包在传输过程不变,过网络设备数据帧要用新的物理层地址重新封装
- MAC地址决定了数据帧下一跳哪个设备接收,而IP地址决定了数据包的起点和终点
ARP地址解析协议(Address Resolution Protocol)(本网段,把IP地址解析成MAC地址)
简介
- 每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表
- 当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址
- 如果局域网内各主机都知道彼此的MAC地址,那么就不需要ARP协议了
功能:将IP地址通过广播(本网段),目标MAC地址是FF-FF-FF-FF-FF-FF, 解析目标IP地址的MAC地址
ARP欺骗
常用软件
- P2P终结者(限制带宽)
- 网络执法官(控制本网络段计算机是否接入网络)——通过给出一个不存在的MAC地址
为什么要使用ARP协议(为什么不直接使用硬件MAC地址进行通信?)
- 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信,就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事
- 连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机网络自动进行的,对用户来说看不见这种调用过程
逆向ARP(物理MAC地址请求IP地址,现在已经很少使用)
IP数据报
格式(首部+数据)
- 一个IP数据报由首部和数据两部分构成
- 首部的前一部分是固定长度。共20字节,是所有IP数据报必须具有的
- 在首部的固定部分的后面是可选字段,其长度是可变的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7j3VUWsa-1582094941211)(D:\Typora\images\1582013348192.png)]
首部固定部分(20字节)
部分 | 位数 | 功能 |
---|---|---|
版本 | 4位 | 指 IP 协议的版本,如IPv4、IPv6 |
首部长度 | 4位 | 可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节 |
区分服务 | 8位 | 用来获得更好的服务(轻重缓急),只有在使用区分服务时,这个字段才起作用。一般情况下都不使用这个字段 |
总长度 | 16位 | 指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节(64k) |
标识 | 16位 | 是一个计数器,用来产生数据报的标识。 |
标志 | 3位 | 目前只有前两位有意义,最低位是 MF (More Fragment),中间的一位是DF(Don’t Fragnment) |
片偏移 | 13位 | 较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位 |
生存时间TTL | 8位 | 数据报在网络中可通过的路由器数的最大值 |
协议 | 8位 | 指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程 |
首部检验和 | 16位 | 此字段只检验数据报的首部,不检验数据部分 |
源地址 | 32位(8字节) | 源地址目标IP地址 |
目标地址 | 32位(8字节) | 目标地址IP地址 |
首部可变部分
- IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富
- 增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销
数据部分
转发数据报的流程(路由)
- 路由器在不同网段转发数据报
- 网络畅通的条件:能去能回
- 沿途的路由器必须知道到目标网络/源网络 下一跳给哪个接口
路由分类
静态路由
动态路由
Windows上的默认路由和网关
- 计算机也有路由表,我们可以在计算机上运行route print显示Windows操作系统上的路由表
- 运行 netstat -r 也可以显示Windows操作系统上的路由表
- 给计算机配置网关就是给计算机添加默认路由
分组转发算法
- 从数据报的首部提取目的主机的IP地址D,得出目的的网络地址为N
- 若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行3
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4
- 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行5
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6
- 报告转发分组出错
ICMP协议(Internet Control Message Protocol,网际控制报文协议)
简介
- 为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议
- ICMP允许主机或路由器报告差错情况和提供有关异常的报告
- ICMP不是高层协议,而是IP层的协议
- ICMP报文件作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EosBY2pm-1582094941211)(D:\Typora\images\1582022170114.png)]
ICMP报文的类型
- ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文
- ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的4个字节的内容与ICMP的类型有关
- 差错报告报文有五种:终点不可达,源点抑制、时间超过、参数问题、改变路由(重定向)
- 询问报文有两种:回送请求和回答报文,时间戳请求和回答报文
差错报告报文
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jVUE5c9t-1582094941212)(D:\Typora\images\1582028103944.png)]
询问报文
ICMP的应用
PING(Packet InterNet Groper)
- PING用来测试两个主机之间的连通性
- PING使用了ICMP回送请求与回送回答报文
- PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP
Traceroute
因特网的路由选择协议(动态路由)
内部网关协议IGP —在一个自治系统内部使用的路由选择协议
RIP(Routing information Protocol)路由信息协议——与跳数相关
工作原理
- 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议
- RIP是一种分布式的基于距离向量的路由选择协议
- RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(一路由器到直接连接的网络的距离定为1)
- RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”
- RIP允许一条路径最多只能包含15个路由器,距离最大值为16时即相当于不可达。因此RIP只适用于小型互联网
- RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由
三个特点
- 仅和相邻路由器交换信息
- 交换的信息时当前本路由器所知道的全部信息,即自己的路由表
- 按固定的时间间隔交换路由信息,例如每30秒(以便实时更新,防止某个路由器宕机)
距离向量算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ig2ZNZKi-1582094941212)(D:\Typora\images\1582029701855.png)]
优缺点
- RIP协议最大的优点是实现简单,开销较小
- RIP存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器(特别是网络出故障时)
- RIP限制了网络的规模,它能使用的最大距离仅为15
- 路由器之间交换的路由信息时路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加
OSPF(Open Shortest Path First)开放式最短路径优先协议
基本特点
- “开放”表命OSPF协议不是受某一家厂商控制,而是公开发表的
- “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF
- OSPF只是一个协议的名字,它并不表示其他的路由选择协议而不是“最短路径优先”
- 是分布式的链路状态协议
三个要点
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
- “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”
- 只有链路状态发生变化时,路由器采用洪泛法向所有路由器发送此信息(触发式更新)
三个表
- 邻居表:用于和相邻设备发送hello信息
- 链路状态表:每个路由器的邻居表得到的各个路由器之间的连接状态表
- 计算路由表:结合带宽等开销信息,算出每个路由器到达其他路由器的开销(最短路径)
区域
- 为了使OSPF能够用于规模较大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫作区域
- OSPF划分为两种不同的区域:主干区域、自治系统AS
- 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况
OSPF直接用IP数据报传送
- OSPF不用UDP而是直接用IP数据报传送
- OSPF狗策划给你的数据报很短。这样做可以减少路由信息的通信量
- 数据报很短的另一好处是不可以将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据包就必须重传
其他特点
- 多路径间的负载平衡
- 支持可变长度的子网划分和CIDR
外部网关协议EGP—不同自治系统交换路由信息的协议
BGP(Boundary Gateway Protocol)边界网关协议
- BGP是不同自治系统AS的路由器之间交换路由信息的协议。BGP的较新版本的是BGP-4
- 边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最近路由
- 每一个自治系统的管理员要选择最少一个路由器作为该自治系统的“BGP发言人“
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3DWWw2xv-1582094941213)(D:\Typora\images\1582033239215.png)]
协议特点
- BGP协议交换路由信息数量不是很多,数量级是自治系统的量级
- BGP发言人数目不多,路由选择相对简单
- BGP协议支持CIDR
- BGP建立时,交换整个路由表时,只交换其变化的部分
IPv6
主要变化
- 更大的地址空间。IPv6将地址增大到128位
- 拓展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 支持即插即用
- 支持资源的预分配
- 首部改为8字节对齐
IP多播
基本概念
- IP多播可以明显地减少网络中资源的消耗
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wEwQcmZx-1582094941214)(D:\Typora\images\1582033648416.png)]
IP多播的特点
- 多播使用组地址——IP使用D类地址支持多播。多播地址只能用于目的地址,而不能用于源地址
- 永久组地址——由因特网号码指派管理局IANA负责指派
- 动态的组成员
- 使用硬件进行多播
IGMP协议(Internet Group Management Protocol,网际组管理协议)
- 为了使路由器知道多播组成员的信息,需要利用网际组管理协议IGMP
- 连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员,这就需要使用多播路由选择协议。
虚拟装用网VPN(Virtual Private Network)
本地地址和全球地址
- 本地地址:仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
- 全球地址:全球唯一的IP地址,必须向因特网的管理机构申请
内联网intranet和外联网extranet(都是基于TCP/IP协议)
- 内联网:由部门A和B的内部网络所构成的虚拟专用网VPN,表示部门A和B都是在同一个机构的内部
- 外联网:一个机构和某些外部机构共同建立的虚拟专用VPN
远程接入VPN
- 在外地工作的员工拨号接入互联网,而驻留在员工PC机中的VPN软件可在员工的PC机和公司的主机之间建立VPN隧道,因而外地员工与公司通信的内容是保密的
网络地址转换NAT(Network Address Translation)
NAT的过程
- 内部主机X用本地地址IPx和因特网上主机Y通信所发送的数据报必须通过NAT路由器
- NAT路由器将数据报的源地址IPx转换成全球地址IPg,但目的地址IPy保持不变,然后发送到因特网
- NAT路由器收到主机Y发挥的数据报时,知道数据报中的源地址是IPy而目的地址是IPg
- 根据NAT转换表,NAT路由器将目的地址IPg转换为IPx转发给最终的内部主机X