第一章:计算机网络概述
https://blog.csdn.net/weixin_44751294/article/details/104851920
第二章:计算机网络的物理层
https://blog.csdn.net/weixin_44751294/article/details/104864680
第三章:计算机网络的数据链路层
https://blog.csdn.net/weixin_44751294/article/details/104886617
第四章:计算机网络的网络层(上)
https://blog.csdn.net/weixin_44751294/article/details/104992367
第四章:计算机网络的网络层(下)
https://blog.csdn.net/weixin_44751294/article/details/105002965
第五章:计算机网络的传输层
https://blog.csdn.net/weixin_44751294/article/details/105057420
文章目录
4.2网际协议IP
四、超网
1、超网现象
本来计算机A和计算机B在同一个网段,可以直接的进行数据的收发,但是由于子网掩码设置错误,导致网络ID不一样。也就是机器觉得他们不在同一个网段上。
在这种情况下,A计算机到B计算机通信,必须通过路由器转发,如下图所示,这样两个子网能够通信。但是本来这些计算机物理上就是在同一个网段,还需要路由器转发,效率不高。
2、合并两个网段
如图所示,将192.168.0.0和192.168.1.0两个C类网络合并。将IP地址地3,4字节写成2进制,可以看到将子网掩码往左移动1位,网络部分就一样了,这两个网段就在一个网段了。
解决效果:
3、合并4个网段
将192.168.0.0和192.168.1.0和192.168.0.3和192.168.1.4四个C类网络合并,只需要将子网掩码向左移动两位。
4、合并网络的规律总结
五、IP地址与MAC硬件地址
1、计算机A和计算机B通信过程
- 交换机基于数据帧的MAC地址转发数据帧,路由器基于数据包的IP地址转发数据包。
- 数据包在传输过程中不变,过网络设备数据帧要用新的物理层地址重新封装。
- MAC地址决定了数据帧下一跳哪个设备接收,而IP地址决定了数据包的起点和终点。
- 基于MAC地址控制代理服务器只能控制本网段的计算机,不能获取其他网段计算机的MAC地址。
2、ARP协议
ARP协议是将IP地址解析成MAC地址。
ARP协议将IP地址通过广播(本网段,不通过路由器),目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。
ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。
基于ARP协议的不安全性生成的欺骗应用-ARP欺骗/网络执法官等等
操作1:查看网关的MAC地址
- 命令:arp -a
- 结果:可以成功查看路由器网关的MAC地址
操作2:利用arp更改MAC地址
- 命令:arp -s 192.168.31.1 8c-53-c3-99-87-e8(本来是e9)
- 结果:执行了此命令之后,此计算机不再用arp协议解析MAC地址,而是直接使用关联的MAC地址通信,相当于ARP欺骗,因为使用了一个错误的地址给网关,不能正常上网了,但是和其他本网段的计算机还是通的。(此命令win10 操作失败)
操作3:诊断arp欺骗
- 命令:arp -a
- 分析:对与本网段中的两台计算机可以相互ping通,但是气其中一台不能正常上网。可以判断不是物理层的问题(网线),因为可以ping通,子网掩码也没有问题,可能是发送了arp欺骗。对两台计算机查看MAC地址,如果不一样表面确实是arp欺骗;如果相同,可能是其他问题。
操作4:解决arp欺骗
- 方法:删除发过来的MAC地址缓存便可(利用网络疑难解答自行诊断便可以实现缓存的清除),或者是重启电脑(基本万能)
3、使用ARP协议的四种典型情况
- 发送方是主机,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
- 发送方是主机,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
- 发送方是路由器,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
- 发送方是路由器,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
4、逆地址解析协议RARP
只知道自己MAC地址就能获得其IP地址。
六、IP数据报
1、IP数据报(包)的组成格式
一个IP数据包有首部和数据两个部分组成。
首部:第一部分是固定长度,20字节,是所有IP数据包必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
2、IP数据报首部的固定部分中的各字段
首部是一共20字节,但是没行是32bit(4字节),所以整个首部占5行。详细划分如下所示:
以下是各个部分的分析:
- 版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)
- 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)。因此 IP 的首部长度的最大值是 60 字节。
- 区分服务——占 8 位,用来获得更好的服务。(着急的先过,不着急的慢慢排队,语音优先,文字可以排队)。在一般的情况下都不使用这个字段 。
- 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节(216-1)。总长度必须不超过最大传送单元 MTU。
- 标识(identification)——占 16 位,它是一个计数器,用来产生数据报的标识。 b不是序号,每产生一个数据包,就增加1.
- 标志——占 3 位,告诉后面的数据包是不是分片的。目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF=1 表示后面“还有分片”。MF=0 表示最后一个分片。标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF=0 时才允许分片。
- 片偏移——占 3 位,较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。(也就是偏移等于当前字节在数据部分的第几个再除以8,因为8字节为1单位)。例如:
- 生存时间——占 8 位,记为 TTL (Time To Live),数据报在网络中可通过的路由器数的最大值。每过一个路由器就减1,防止数据包在网络中循环。
一般来说window操作系统的TTL是128,而Linux计算机的操作系统(好像是)56。
操作1:查看到其他计算机经过路由器的个数
命令:ping 219.148.38.148 (此计算机也是window系统)
分析:可见当前计算机到219.148.38.148经过了128-113=15个路由器才到达。
操作2:限制TTL的次数观察结果
命令:ping 219.148.38.148 -i 5 (表示发包的时候指定了TTL是5)
分析:由于ping通该计算机需要15个路由器的路程,但是指定的TTL次数不够,也就是还没到达目的地数据就过期了,所以返回了一个传输失败。
操作3:跟踪路由器,查看其(路由器的)网关地址
命令:ping 219.148.38.148 -i 1/2/3/4/5… (依次类推查看)
可见,发往219.148.38.148数据经过的第一个路由器地址是10.7.86.1
可见,发往219.148.38.148数据经过的第二个路由器地址是172.16.0.250
依次类推,就可以差错到达目的地219.148.38.148地址之间15个路由器的全部地址。可以跟踪整个的路径。(但是也可能存在中间某个路由器不让你ping的特殊情况)
- 协议——占 8 位,字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程。用协议号标识数据部分是什么数据。
ICMP协议号:1;
IGMP协议号:2;
TCP协议号:6;
UDP协议号:17;域名解析
IPv6协议号:41;
OSPF协议号:89; - 首部检验和——占 16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC检验码而是采用简单的计算方法。每经过一个路由器就会检验一次。
- 源地址和目的地址都是IP地址,32位,只符合IPv4。IPv6是128位。
- 可变部分:IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。长度可变。增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际很少使用。
3、抓包工具分许数据包首部
七、数据路由
1、网络畅通条件
数据路由路由器在不同网段转发数据包。能去能回,网络才能畅通。
沿途的路由器必须知道到目标网络下一跳给哪个接口。
沿途的路由器必须知道到源网络下一跳给哪个接口。
分析:
- 计算机PC0 ping PC1,网络要想通,要求沿途的路由器Router0,Router1,Router2和Router3都必须有到192.168.1.0/24网段的路由,这样数据包才能到达PC1.
- PC1要回应数据包给PC0,沿途所有的路由器必须有到192.168.0.0/24网络的路由,这样数据包才能回来。
2、配置静态路由
需要管理员告诉路由器所有没有直连的网络下一跳给谁。
适合于小规模网络,不能自动调整路由。
操作1:ping1处地址
- 分析:对于PC0,想要ping通1处地址,是可以ping通的。因为PC0和路由器0是相连着的,所以能去能回,可以ping通。
- 结果:ping通
操作2:ping2处地址
- 分析:对于PC0,想要发数据包到2处地址(路由器1中),可以先通过路由器0,而路由器1是与路由器0相连的,所以路由器0可以将PC0发过来的数据再发给路由器1。但是路由器1不知道如何到达PC0,其只知道到达路由器0(172.16.0.0/24网段)和路由器2(172.16.1.0/24网段),所以ping 2处地址会失败,数据包没有回来。
- 结果:ping不通
操作3:查看路由表
- 命令:show ip route
- 分析:查看路由条目
操作4:添加路由表(使路由器1可以找到PC0)
- 命令:
en
config t
ip route 192.168.0.0 255.255.255.0 172.16.0.1 - 分析:路由器只关心网段,因为PC0处于192.168.0.0,而不是写PC0的具体ip地址,其子网掩码是255.255.255.0。而路由器1到达192.168.0.0网段的下一跳地址是是172.16.0.1。所以添加的路由配置路径是ip route 192.168.0.0 255.255.255.0 172.16.0.1
- 结果:如上,添加这个静态路径之后,便可以ping通。
3、Windows上的默认路由和网关
操作1:查看路由表
- 命令:route print 或者是 netstat -r
操作2:不设网关,添加静态路由
- 命令:route add 0.0.0.0 mask 0.0.0.0 192.168.31.1 (其实就是路由表的第一条,只不过是现在直接添加)
1. 步骤一:不设置网关
2. 步骤二:查看路由表,已经不能正常上网
3. 步骤三:添加静态路由便可
(以上操作win7可以实现,不过我win10好像不能实现…不太懂)
补充:
- 计算机不能添加两个网关,否者意味着两个静态路由,会造成一通一闭的丢包想象,导致网速变慢。
- 更多的路由操作命令可以通过命令route ?查看
- 重定向的使用:ipconfig /all >c:\Users\Acer\Desktop\route.txt(内容输入到桌面的一个text文件中)
4、网络负载均衡
例子:192.168.0.0/24网段和192.168.3.0/24网段有两条路①和②,需要给网路中的路由器添加路由,使这两个网段能够通过①②两条路径通信。
4.3网际控制报文协议ICMP
1、ICMP简介
为了提高IP数据包交付成功的机会,在网际层使用了网际控制报文协议。
ICMP:在IP之上,用来测试网络层有没有故障。使用最多的命令是ping。
为了提高IP数据报交付成功的机会,在网络层使用了ICMP(Internet Control Message Protocol)。
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
ICMP不是高层协议,而是IP层协议;
ICMP报文件为IP层数据报的数据加上数据报的首部,组成IP数据报发送出去。
2、ICMP报文格式
3、 ICMP 报文的种类
- ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
- ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
- ICMP 询问报文有2种:回送请求和回答报文;时间戳请求和回答报文
- ICMP 差错报告报文共有 5 种 :终点不可达 ;源点抑制(Source quench) ;时间超过 ;参数问题 ;改变路由(重定向)(Redirect) 。ICMP 差错报告报文的数据字段的内容 如下所示:
4、ICMP的应用举例
(1)ping命令—网络层命令
PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
特点:
(1)PING,因特网包套所起,用于测试网络连接量的程序。ping发送一饿ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
(2)ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
(3)如果打开IE浏览器访问网站失败,可以通过ping命令测试到Internet的网络连通,可以为你排除网络故障提供线索。
(2)ping和pathping命令
QQ能登上,网页打不开是为什么? 网络层没有问题,域名解析有问题。
- pathping 能跟踪数据包路径,发现出问题的位置。
- Windows上跟踪数据包路径的命令:tracert 10.7.1.53
- 路由器上跟踪数据包路径的命令:traceroute 12.0.0.3
5、动态路由协议
- 简介
如果路由器存在一个环形的结构,可以使用动态路由让其自行寻找一个最佳的路径,并且可以有其他备用的路径选择,而不用管理员进行一条条的静态路由配置。而且对于静态路由存在某一个网段更改,需要将之前静态路由配置的内容全部删掉。而动态路由则不用。
5.1动态路由协议1----RIP协议(选路径)
周期性广播(30s)路由表,选择路径的依据是最少的跳数,最大跳数是15跳,所以一般不适合大网络。(不考虑带宽,只考虑路径最短)
操作1:配置动态路由
- 命令:对不同交换机输入以下命令
en
config t
router r
network 172.16.0.0 - 分析:对上诉的4个路由器进行了以上的命令设置之后,都运行了RIP协议,network把这六个网段全部包括了。
操作2:查看路由表,检测动态路由的配置情况
- 命令:show ip route
- 分析:由于整个网络有6个网段,所以如果查看路由表的时候有6条就表示验证成功。
其中C代表Connect状态,R代表通过RIP协议学到的。
[120/2]中的2代表到该网段需要经过2个路由器,120代表管理距离(可靠性)。
静态路由的管理距离是1(也就是优先级),代表可靠性最高。如果动态路由和管理员设置的路径不一样,路由器会采用管理员设置的路径。
操作3:network的选择
情况1:
对于这种情况:命令改为network 172.0.0.0
情况2:
对于这种情况:命令改为network 181.8.0.0,network 181.9.0.0,network 181.10.0.0,需要写3个。
5.2动态路由协议2—OSPF (Open Shortest Path First)协议(选带宽)
1、OSPF协议的三个要点
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是 路由器所知道的部分信息。(“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。)
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
2、OSPF每个路由器维护三部分内容
邻居状态;链路状态数据库(link-state database) ;路由表
3、OSPF划分为两种不同的区域
- 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
- OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
4、OSPF 的其他特点
5、OSPF的基本操作
6、OSPF的配置
最佳网路失效很快可以找到备用的网络,但是最佳线路恢复之后需要等待一段时间才能再次选择最佳线路而不是备用线路。
4.4外部网关协议BGP
1、BGP协议的简介
BGP 是不同自治系统的路由器之间交换路由信息的协议。
2、BGP发言人
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。
一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
3、BGP发言人和自治系统AS的关系
4、BGP发言人交换路径向量
- 自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。
- 主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。
5、BGP协议的特点
- BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
- BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
4.5IGMP协议和多播组播
点到点通信:
广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.全网广播不能跨越路由器。
组播=多播:分组广播。
- 使用多播一般用于直播,网络会议,能够节省带宽。
- IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。
4.6虚拟机的网络设置
操作1:让VMnet4也可以访问本机,虚拟出一个网络
分析:如此便可以生产了一个虚拟网络。
操作2:实现地址转换出去
分析:此处如果设置了192.168.80.10,这放置在VM8网段的虚拟机网关需要设置为192.168.80.10才可以上网。
参考链接:
https://www.bilibili.com/video/av23124815