网络协议系列文章
网络协议(一):基本概念、计算机之间的连接方式
目录
- 一、网络互联模型
- 二、计算机之间的通信基础
- 1、计算机之间的连接方式 - 网线直连
- 2、计算机之间的连接方式 - 同轴电缆(Coaxial)
- 3、计算机之间的连接方式 - 集线器(Hub)
- 4、计算机之间的连接方式 - 网桥(Bridge)
- 5、计算机之间的连接方式 - 交换机(Switch)
- 6、计算机之间的连接方式 - 路由器(Router)
一、网络互联模型
- 为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型
- OSI 参考模型(Open System Interconnect Reference Model)具有7层结构
- 实际上 OSI参考模型(7层) 更偏理论,而 TCP/IP 协议(4层) 在才是在实际中使用的协议,而为了研究和学习计算机网络,又常将之划分为 5层
- 请求过程:不管什么协议都是经过下列的包装 + 解包的过程
- 5为实际需要传递的数据,1234则是数据5在传递过程中包装的额外数据
二、计算机之间的通信基础
- 需要得知对方的 IP地址
- 最终根据 MAC地址(网卡地址),输送数据到网卡,被网卡接收
- 如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理
- 如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层
通俗讲:只有获取到对方的ip地址和mac地址,且处于同一个网段才能进行通信
说两个请求协议,之后不同的连接方式都会用到
- ARP协议:已知对方IP地址,通过ARP广播协议获取MAC地址(同一个网段中广播)
- ICMP协议:已知对方IP地址和MAC地址,基本的请求响应协议
1、计算机之间的连接方式 - 网线直连
- 需要用交叉线(不是直通线)
Packet Tracer网络软件模拟
-
首次请求发包,只知道IP地址,所以需要ARP协议广播获取对方的MAC地址
-
绿色包ARP协议,请求响应获取到MAC地址
-
此时IP地址和MAC地址都有了,就可以使用ICMP协议发包了
-
为什么右边出现3个ARP包?
- 第一次是准备,只有当前设备
- 第二次是请求,从上一个设备-计算机0到当前设备-计算机1
- 第三次是响应,从上一个设备-计算机1到当前设备-计算机0
-
为什么右边出现4个ICMP包?
- 第一次是准备,只有当前设备
- 第二次还是准备,因为第一次准备时候发现没有MAC地址去发ARP协议了
- 第三四次和ARP第二三次一样,请求响应
- 之后再请求发包,此时知道IP地址,MAC地址已经在首次ARP成功后记住了
- 此时IP地址和MAC地址都有了,就可以直接使用ICMP协议发包了
- 记住MAC地址有时效性,过一段时间依然会遗忘,就又需要ARP协议广播获取MAC地址了
2、计算机之间的连接方式 - 同轴电缆(Coaxial)
- 半双工通信:计算机连接的这根线如果正在请求数据,那么它就不能接收数据
- 容易冲突:A正在给B发,那么C给B发就需要等待
- 不安全:A通过IP和MAC给B发包,同轴电缆没有智商,会将包发给所有人,只是MAC地址不是它,然后会被他们扔掉,如果有抓包工具可以获取别人的包
- 终结电阻:防止信号反弹,所以中间断了,就没有电阻控制信号,整个瘫痪
3、计算机之间的连接方式 - 集线器(Hub)
- 一个集线器口不够用,可以多个集线器相连
- 与同轴电缆不同的是,某台电脑线断了,不会影响其他设备的通信
Packet Tracer网络软件模拟
- 第一次计算机准备给计算机2发包,此时只有IP地址,没有MAC地址,所以需要ARP广播获取
- 计算机0给集线器发ARP广播,集线器没有智商,将信号无脑转到计算机1和计算机2
- 因为计算机0发送ARP的IP的计算机2,那么计算机1收到发现不是自己IP,直接丢掉❌
- 所以计算机2收到则将自己MAC地址再通过广播发出去IP是计算机0
- 计算机2携带MAC响应,ARP发到集线器,集线器没有智商,将信号无脑转到计算机0和计算机1
- 因为计算机2响应计算机0,所以是计算机0的IP地址,那么计算机0此时收到计算机2的MAC地址,计算机1依然丢掉信号❌
- 经过上面一轮操作,计算机0获取到计算机2的MAC地址,直接发送ICMP协议即可
- 注意:与发送ARP广播一样,ICMP协议到集线器以后,它也还是会无脑转发到计算机0和计算器2(计算机2接收,计算机1丢掉❌)
- 之后再请求发包,此时知道IP地址,MAC地址已经在首次ARP成功后记住了
- 此时的流程就是首次发包ARP广播拿到MAC地址以后的操作了
4、计算机之间的连接方式 - 网桥(Bridge)
- 网桥有两个接口,可以通过学习记录某个计算机MAC地址在左边还是右边
- 隔绝冲突域:有了网桥,接口左边计算机之间的通信和接口右边计算机之间的通信就不受影响了
- 如果没有网桥,计算机6给计算器7发包,首先发到集线器1,然后集线器1一方面发到计算机7和8,另一方面会发到集线器0,最后集线器会无脑发到计算机1和2和3,此时计算器1和2和3之间是不能通信的
- 有了网桥以后,计算机6给计算器7发包,如果网桥有记忆,信号就不会传到右边的集线器,那么计算机1和2和3之间就能通信
Packet Tracer网络软件模拟
- 首次请求发包
- ARP第一次到网桥,记录下计算机0的MAC地址
- 计算机1响应ICMP协议到网桥,记录下计算机1的MAC地址
- 网桥记录计算机0和计算机1的MAC地址后请求发包
- ICMP协议走到网桥,因为已经记录计算机1在左边,所以网桥直接丢包❌即可
5、计算机之间的连接方式 - 交换机(Switch)
- 交换机相当于网桥的升级版
- 网桥记录计算机MAC地址在接口的左边还是右边
- 交换机记录每一个接口的计算机MAC地址,这样可以精准找到发送对象,不再无脑发给所有设备
- 他们必然处于同一网段,因此 IP地址可能会不够用
- 即使使用交换机,第一次发送数据包仍然需要ARP广播,耗费大量时间
- 形成广播风暴,只要有一个设备发送ARP广播,全球设备都能收到
Packet Tracer网络软件模拟
- 首次请求发包
- ARP广播发到交换机,此时计算机1的MAC被记录
- 计算机2响应,发送ICMP协议到交换机,此时计算机2MAC被记录
- 二次请求发包
- 计算机1一致计算机2的IP地址和MAC地址,直接发送ICMP协议
- 发送到交换机,此时计算机2的MAC地址已被记录,直接发给它,就不会发给其他设备了
6、计算机之间的连接方式 - 路由器(Router)
主机在发数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段
- 在同一个网段:ARP广播、通过 交换机/集线器 传递数据
- 不在同一个网段:通过路由器转发数据
网线直连、同轴电缆、集线器、网桥、交换机
- 连接的设备必须在同一网段
- 连接的设备处在同一广播域
路由器
- 可以在不同网段之间转发数据
- 隔绝广播域
Packet Tracer网络软件模拟
- 同一个网段请求发包
- 因为路由器隔绝广播域,所以192.168.0.0网段的广播发不到192.168.1.0网段,路由器阻挡了
- 跨网段首次请求发包
- 路由器对于不同的局域网需要设置网关,占用一个ip(默认使用第一个),左边网关-192.168.0.1,右边网关-192.168.1.1
- 发送计算机和响应计算机都需要配置自己局域网的网关ip,左边计算机配置左边网关,右边计算机配置右边网关
- 执行流程
- 计算机0跨网段发包到计算机4
- 计算机0ARP广播获取路由器左边网关的MAC地址
- 计算机0获取到网关MAC地址后,发送ICMP给计算机4,先到网关,发现目标对象在右边
- 路由器右边网关ARP广播获取计算机4的MAC
- 之后就可以正常通信了(涉及到STP还不懂,以后讲)
- 跨网段第二次请求发包
思考: 同一个网段是否可以使用路由器?
- 答案:不可以
- 因为计算机5会判断目标ip是否和自己是同一个网段
- 不同网段,会先发到网关,再去转发
- 相同网段,不会发网关,要直接发给目标对象,此时是发不过去的