网络协议(一):基本概念、计算机之间的连接方式

news2024/12/25 3:51:23

网络协议系列文章

网络协议(一):基本概念、计算机之间的连接方式


目录

  • 一、网络互联模型
  • 二、计算机之间的通信基础
    • 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在传递过程中包装的额外数据

在这里插入图片描述

二、计算机之间的通信基础

  1. 需要得知对方的 IP地址
  2. 最终根据 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地址,这样可以精准找到发送对象,不再无脑发给所有设备

在这里插入图片描述

  1. 他们必然处于同一网段,因此 IP地址可能会不够用
  2. 即使使用交换机,第一次发送数据包仍然需要ARP广播,耗费大量时间
  3. 形成广播风暴,只要有一个设备发送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,左边计算机配置左边网关,右边计算机配置右边网关
  • 执行流程
    1. 计算机0跨网段发包到计算机4
    2. 计算机0ARP广播获取路由器左边网关的MAC地址
    3. 计算机0获取到网关MAC地址后,发送ICMP给计算机4,先到网关,发现目标对象在右边
    4. 路由器右边网关ARP广播获取计算机4的MAC
    5. 之后就可以正常通信了(涉及到STP还不懂,以后讲)

在这里插入图片描述

  • 跨网段第二次请求发包

在这里插入图片描述

思考: 同一个网段是否可以使用路由器?

  • 答案:不可以
  • 因为计算机5会判断目标ip是否和自己是同一个网段
    • 不同网段,会先发到网关,再去转发
    • 相同网段,不会发网关,要直接发给目标对象,此时是发不过去的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 antd项目实战——Form表单的重置与重置【resetFields重置表单未生效(手写重置函数)】

vue3 antd项目实战——resetFields重置表单无效【手写重置函数重置表单数据】关于form表单的文章合集场景复现原因分析解决方案(手写清空函数)关于form表单的文章合集 文章内容文章链接Form表单提交和校验https://blog.csdn.net/XSL_HR/article/details/128495087?spm1001.20…

Hadoop高手之路5-MapRreduce

文章目录Hadoop高手之路5-MapReduce分布式计算框架一、MapReduce概述1.MapReduce核心思想2.MapReduce编程模型3.MapReduce编程实例——词频统计二、MapReduce的工作原理1. MapReduc的工作过程1) 分片、格式化数据源2) 执行MapTask3) 执行Shuffle4) 执行ReduceTask5) 写入文件2.…

5_虚拟机栈

虚拟机栈概述 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指…

QML教程(一)

目录 一、导入 二、对象声明 三、对象属性 1.声明对象属性 2.信号属性 3.方法属性 4.附加属性略 5.枚举属性 6.对象属性赋值 四、自定义对象 一、导入 模块导入 语法&#xff1a; import <ModuleIdentifier> [<Version.Number>] [as <Qualifier>…

【文献阅读】能源受限的无人机和移动充电站进行持续监控的稳健规划

标题&#xff1a;Robust Planning for Persistent Surveillance With Energy-Constrained UAVs and Mobile Charging Stations 作者&#xff1a;Xiaoshan Lin, Yasin Yazıcıo˘glu , and Derya Aksaray 来源&#xff1a;IEEE ROBOTICS AND AUTOMATION LETTERS 摘要 本文考虑…

DO 语句

DATA MYCLASS;SET SASHELP.CLASS;IF WEIGHT<120 THEN NOTE Normal;ELSE DO;NOTE Heavy;/* 赋值成缺失值 */WEIGHT.;END; RUN;PROC PRINT; RUN; DATA B;DO k 11 TO 0 BY -3;IF k < 5 THEN i k;ELSE i k - 1;OUTPUT;END; RUN;PROC PRINT; RUN; DO WHILE:只要条件满足&am…

Python异常处理(七)

python学习之旅(七) &#x1f44d;查看更多可以关注查看首页或点击下方专栏目录 一.什么是异常 程序运行的过程中出现了错误 定义&#xff1a;在程序运行中,检测到一个错误&#xff0c;程序中止运行并且出现了一些错误的提示,也称作BUG 例如&#xff1a;读取一个不存在的文件f…

[操作系统]进程

目录1.进程的概念2.如何管理进程3.进程的调度4.并行和并发5.进程调度需要使用的属性6.进程之间的通信7.进程和线程的区别操作系统是一个软件,对下要管理好各种硬件设备,对上要给各种软件提供稳定的运行环境.这篇博客主要讲解操作系统如何管理进程。 1.进程的概念 进程就是跑起…

Golang - 时间处理总结

Golang - 时间处理总结1 获取时间对象1.1 获取当前对象对象1.2 根据指定时间返回 time.Time 类型1.2 获取当前年月日时分秒、星期几、一年中的第几天等操作1.3 日期字符串解析成 time.Time 类型解析的时候需要特别注意时区的问题&#xff1a;2 时间对象转时间字符串3 时区4 时间…

严格模式和高阶函数

1、什么是严格模式 JavaScript 除了提供正常模式外&#xff0c;还提供了严格模式&#xff08;strict mode&#xff09;。 ES5 的严格模式是采用具有限制性 JavaScript 变体的一种方式&#xff0c;即在严格的条件下运行 JS 代码。 严格模式在 IE10 以上版本的浏览器中才会被支…

【C++】-- C++11 - 右值引用和移动语义(上万字详细配图配代码从执行一步步讲解)

目录 左值引用和右值引用 右值引用使用场景和意义 移动语义 传值返回问题 移动构造 移动赋值 总结 解决传值插入问题 完美转发 模板中的&&万能引用 完美转发std::forward 完美转发实际中的使用场景 左值引用和右值引用 其实在C11之前&#xff0c;C没有左右…

系统管理员喜欢 systemd 的 5 个理由

导读systemd 的速度和易用性使其成为管理现代 Linux 系统的流行方式。 系统管理员知道&#xff0c;在一台运行着的现代计算机上会发生很多事情&#xff1a;应用程序在后台运行、预定事件等待在特定时间被触发、事件写入日志文件、发送状态报告。在以前&#xff0c;不同的进程可…

为什么深度神经网络这么难训练

目录 1、深度网络训练困难的原因&#xff1a; 2、消失的梯度问题 3、不稳定的梯度问题 参考文章&#xff1a;为什么很难训练深度神经网络&#xff1f; - 腾讯云开发者社区-腾讯云 1、深度网络训练困难的原因&#xff1a; 训练速度慢 在深度网络中&#xff0c;不同的层学习…

《UEFI内核导读》UEFI Firmware Storage简介

敬请关注&#xff1a;“固件C字营 UEFI固件一般存储在被称之为“固件仓库”的非易失性存储器中&#xff0c;简称为FD&#xff08;固件设备&#xff09;&#xff0c;当前主流的存储介质是NorFlash它拥有非易失性、XIP以及可二次编程的特性。 固件设备可以分为物理设备和逻辑设备…

linux如何发送查收邮件的详解

一&#xff0c;linux用户发送给linux中的其它用户 1&#xff0c;使用命令 yum install sendmail -y安装sendmail软件 2&#xff0c;使用yum install mailx -y安装 mailx软件 3&#xff0c;使用命令systemctl start sendmail启动sendmail&#xff08;此过程消耗时间&#xff09…

你在项目里遇到的最大困难是什么,如何解决的?

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构等核心知识点&#xff0c;欢迎star~ Github地址&#xff1a;https://github.com/Tyson0314/Java-…

Weiler-Atherton 算法介绍(简单易懂)

目录 一、算法介绍 二、算法描述 三、算法总结 一、算法介绍 Weiler Atherton多边形裁剪算法是一种允许裁剪凹面算法的算法。与 Sutherland-Hodgman 多边形裁剪算法最主要的区别是&#xff0c;该算法能够裁剪凹多边形&#xff0c;并不留下任何残留物。 裁剪示意图&#xff1…

关于微服务,这些你都了解吗-微服务介绍

文章目录一 认识微服务1.1 什么是微服务1.2 微服务的特点1.3 微服务诞生背景1.4 微服务架构的优势二 微服务生态1.1 硬件层1.2 通信层1.3 应用平台层1.4 微服务层三 微服务详解1.1 微服务架构1.2 服务注册和发现1.3 rpc调用和服务监控四 微服务与DDD1.1 什么是DDD1.2 DDD作用1.…

python快速实现某东方视频解密wasm算法

开始之前请大家先去了解一下 wasm这种技术(可以百度搜索一下 WebAssembly是什么?) 现在开始.... 1&#xff0c;先看一张图 首先写一个本地加载wasm的方法 00043706.wasm就是当前网站load的wasm库,如果遇到报错,请联系我&#xff0c;文章最后有qq联系方式 let u {} functio…