计算机网络之网络基础(含图解和知识点思维导图通俗易懂)

news2024/11/11 7:01:18

绪论​
“一个人在科学探索的道路上,走过弯路,犯过错误,并不是坏事,更不是什么耻辱,要在实践中勇于承认和改正错误。——爱因斯坦”。本章将是网络的第一章,计算机网络是我们计算机行业必须了解并掌握的知识。本章主要讲到网络的基本框架和构成。后续也将持续更新,早关注不迷路喔!
在这里插入图片描述

话不多说安全带系好,发车啦(建议电脑观看)。


思维导图:
在这里插入图片描述


1.网络的发展

在这里插入图片描述

计算机的本质是工具,人们使用这些工具,当有多个人需要协助时也就表示着工具也需要协作!
一开始可以通过软盘将数据进行交换(但对此效率就会十分低下),后面就发展成把所有主机用网线链接起来构成局域网,再使用服务器来对数据进行管理,每个人处理的数据都是从服务器上修改与拿取。

局域网LAN:当主机数目不断的增多,通过交换机和路由器连接起来形成的网络
在这里插入图片描述
广域网WAN:将远隔千里的计算机都连接起来形成的网络
在这里插入图片描述

  1. 对于国家来讲,网络的发展,不仅仅是互联网公司在发展,还有给我们提供网络:三大运营商(建立基础设施建设)。
  2. 随着网络的不断的发展,就会有新的设备的诞生:集线器,网线,光纤,调制解调器,路由器,防火墙,服务器,…(1994年入的公网)

2.协议

在这里插入图片描述
在网络通信也是要满足:冯诺依曼体系的!,也就是有输入、输出、存储器、中央处理器来进行对数据的传送和处理,而其中处理这些数据让数据从输入端到达输出端的方法就是协议。
冯诺依曼体系:
在这里插入图片描述

2.1协议的意义:

用来解决距离变长的问题:
1. 防止丢包
2. 定位目标机器
3. 让报文经过多个设备后,还能找到准确的远端机器

协议本质就是一种约定
可以理解成以前的电报,一方发出信息另一方通过提前的约定(密码本),来知道对应发来信息的意思。

两台计算机采用的是光电信号,也就是0 1(通过光电信号频率,强弱表示生成0 1),信息其实也就是0 1序列的组合

3.网络 VS 系统

网络一定要保证不同机器,都能无障碍的接入互联网,并且计算机生产厂商、OS、硬件都有很多,对此就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议。对此约定其实也是需要通过代码来实现的。

3.1网络通信的问题:

当看待从一台主机(A)发送到另一台主机(B),看起来像是直接发送的但本质其实是经过多次路径选择后才到达的!!
在这里插入图片描述
对此自底向上就会产生多个问题:

  1. 怎么保证把数据先交给下一跳主机
  2. 在转发中,如何进行路径选择。目标主机定位的问题
  3. 如果报文中间出现错误,或者丢失
  4. 送达的数据,还要解决如何使用数据的问题

只有解决了上面四个问题,才能将数据可靠的从A送到B
对此1,2,3,4中每一个问题都要通过协议来解决

3.2网络的解决方案----网络的层状结构

例:我们在生活中打电话,逻辑上看起来是直接接通,但的本质其实也是分层的:
在这里插入图片描述
在许多软件上,绝大部分都是层状的
每一层都只能在对方对应的层进行沟通,其他层无法理解(每一层能够生成对应的数据,和理解所生成的数据)

层状的好处:完成软件的解耦合,也为了非常方便的进行软件的维护(更新,替换,优化)
所以我们解决网络的通信的方法也是分层的:

从软件上:通过上面网络发送数据时产生的四个问题,也就会有四个层状(四个协议)再加上硬件就是五层(此处我们不考虑物理层(属于硬件),也就形成了计算机网络中最重要的TCP/IP五层模型(有些地方是7层但其实多的几层是将应用层再具体划分形成的))
而下面的四层就是为了解决之前的四个问题而形成的:
在这里插入图片描述
OSI定制的网络协议栈定义的是除硬件(物理层)就是6层协议:
在这里插入图片描述
但工程实践上无法把应用层、表示层、会话层无法很好的分成三层,所以实际把他们只看成一层 应用层。

  1. 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

  2. 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。

  3. 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。 路由器(Router)工作在网路层。

  4. 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。

  5. 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等,我们的网络编程主要就是针对应用层。

上述层后续都会逐步的写文章解释,可以暂时看看后续看过后面篇幅再来看就会清晰非常多。

3.2网络中一些常见设备的基本作用:

  1. 路由器(有集线器的功能):路由器是一种连接多个网络的设备,它能够根据IP地址进行数据包的转发。路由器可以处理来自不同网络的数据包,并根据路由表决定将这些数据包转发到哪个网络。路由器是实现互联网连接的重要设备之一,它可以连接局域网和广域网(WAN),并确保数据在不同网络之间正确传输(数据报的转发,工作在网络层)。

  2. 交换机(有集线器的功能):交换机是一种基于MAC地址识别和交换数据包的设备。它能够将各个端口的数据流量进行快速交换,并按照一定的转发规则将数据包传输到目标端口。交换机广泛应用于局域网(LAN)中,用于连接各个节点,提高网络性能(局域网中主机过多(网络有负载上限)导致通信成本增加(从而导致网卡),用来帮助数据报文的转发,工作在数据链路层)。

  3. 集线器:集线器是一种简单的网络设备,它可以将多个节点连接到一个局域网中。集线器的工作原理是将接收到的信号进行放大和再生,并将其发送到所有端口上。集线器适用于连接距离较近的节点,但在现代网络中已经逐渐被交换机所取代。(放大信号(防止传递的信号衰弱),信号在传递过程中会不断的减弱对此就需要不断的维持,工作在物理层

3.3网络和系统的关系

网络协议栈和系统的关系是非常密切的并且他们相互对应,如下图
在这里插入图片描述
其中系统是分着非常多种的(Linux、Windows、macOS),但网络协议是规定好的所有厂商都必须去遵守他,所以即使是不同的系统,网络协议都是大同小异的,这样也才能保证正常进行网络通信:
在这里插入图片描述
在计算机中是会不断接收报文的,所以也就需要对这些报文进行管理(也就是先描述,再组织)。

4.网络传输基本流程

4.1重谈协议:

理解协议可以把它想成我们快递上的快递单(这本身就是一种约定,本身就是一种协议),而这个快递单是用来给快递公司进行运输的,快递 = 快递单 + 真正的快递,而协议就能理解成快递单,用来表示要把数据在网络中转发到的地方。

协议通常是用结构化字段表征的,一般用C语言来描述,这个结构化字段定义的对象,我们叫做协议报头。
其中client写的什么serve就会接收到什么:
在这里插入图片描述
其中在同一个局域网中,两台主机可以直接通信。同一个局域网中两台主机能直接通信(WiFI中的两台手机),例如下方局域网中A给B发送信息
我们可以和现实中教室举例:老师在教室喊了某同学问他为啥不交作业,对此其他同学也能听到但并不会理会,因为喊的是这个同学是带来名字的(报头)。
在这里插入图片描述
但在教室里面可能会因为有很多人在讲话导致老师的话被其他人的话淹没了并没有被该学生接收到。这也就对应着可能在局域网中有多台主机发送信息,但他们的消息可能会发生碰撞(也就是数据碰撞),导致数据丢包(数据链路层会具体写)。
这种网络(局域网)又被称为以太网,所以要正确的发送数据,任何时刻只允许一台主机在局域网中发消息。此时的局域网就是一个共享资源,多个主机同时能使用,就会导致数据不一致。所以就需要对数据进行碰撞的检测、避免和重发策略的,也就像Os中的互斥操作(让一台主机瞬时独占网络)。

查看网络信息(Mac地址(ether)等)
shell指令:ifconfig


在局域网通信的过程,双方的协议栈都是一致通过封装和解包进行正常的通信,所以封装一定要考虑后面解包的过程:
在这里插入图片描述
其中每一层都有必须要解决两个问题:
1. 如何将报文中,报头和有效载荷进行分离
2. 任何协议,都要解决如何将自己的有效载荷,交付给上一层的哪一个协议(一层中不止一个协议)


5.网络中的地址管理

  1. 认识IP地址
    IP协议有两个版本, IPv4和IPv6。其中我所写的凡是提到IP协议,没有特殊说明的,默认都是指IPv4。IP地址是在IP协议中,用来标识网络中不同主机的地址;对于IPv4来说,IP地址是一个4字节,32位的整数;
    我们通常也使用“点分十进制”的字符串表示IP地址
    例如192.168.0.1;用点分割的每一个数字表示一个字节,范围是0-255
    [0,255].[0,255].[0,255].[0,255]
    总共也就是4byte,也就是32bit,所以4个字节表好似网络IP即可。
    所以可以把IP地址可以看成一个结构体(里面包含着4个一字节的成员):
    在这里插入图片描述
    附:在c/c++中ip一般都是字符串形式

点分十进制的ip的地址和字符串表示的ip地址进行互换:

  1. 若将字符串转整形时:字符串可以以 点为分隔符然后分隔字符串 然后取对应的值给到p1、p2、p3、p4,后在将ip强转成整形
    如:172.28.71.17,分隔后把172给到ip.p1、28给到ip.p2、71给到ip.p3、17给到ip.p4,最后把ip强转成整形int32_t *x = (int32_t)&ip;
  2. 若将整形转字符串时:可以通过强转的方式把取出来的p1,p2,p3,p4转换成字符,最后再以点进行分隔拼接。
    如:(struct_ip)&ip->p1、…,把它们强转成字符串,最后拼接(strcat)

IP地址的意义,用来表示互联网中唯一的一台主机
IP地址分为:

  1. 公网IP
  2. 内网IP(常见),所有的IP地址

  1. 认识MAC地址
    MAC地址用来识别数据链路层中相连的节点;长度为48位, 及6个字节。一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)。

6.初步理解IP地址和MAC地址

  1. IP地址相当于是:起始从哪来和目的到哪里(永远不变的)
  2. Mac地址相当于:上一站从哪来以及下一站到哪里(一直在变的,在局域网中使用的,一个数据报需要不断的跨越局域网最终到达对方)

例:我们要从家去公司(这里的家和公司就代表着IP地址)、在去的途中假设到了加油站(这里上一站可能是车,下一站是某路口这就代表着Mac地址)
在这里插入图片描述
IP地址的意义:路径选择!!!(找到最终目的地)
在这里插入图片描述
A用户经过网络栈协议发送消息,其中通过路由器进行数据报转发(路由器可能在两种不同的网段上图就是一边是以太网,另一边是令牌环),最终到达B用户的网络栈接收到消息。
其中(了解)

  1. 令牌环(局域网的一种):网络刚开始是局部的,拥有令牌的主机才能通信权利(类似于谁拥有锁,在数据链路层的一种协议,同样也有令牌环的报头)
  2. 也能发现当进过路由器后其Mac地址的报头是会发生改变的,但是IP地址的报头及往上的所有报头没变

总结网络通信可以大致的理解成:
在这里插入图片描述

从主机A将数据经过五层协议的封装进入局域网到局域网的路由器,路由器通过网络层确定要转发的目标主机和路径选择然后在交给数据链路层和物理层实现真正的转发操作,就这样不断的转发知道达到对方的局域网,才会进入到主机B再不断的通过协议层解包得到数据。


本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量计算机网络细致内容,早关注不迷路。

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

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

相关文章

Linux中的fopen,fclose,fread,fwrite,fseek相关函数的知识点

这几个函数都是标准的c库函数,在man 2中查找不到,所以我们可以利用man 手册直接查找 对应的open,close,write,fread都是Linux系统内核调用 可移植性:fopen 强过于 open ... fopen 在用户态是缓存的 open 在用户态是没有缓存的 fopen函数 f…

TCP粘包问题详解和解决方案【C语言】

1.什么是TCP粘包 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输协议,它保证了数据的可靠性和顺序性。然而,由于TCP是基于字节流而不是消息的,因此在传输过…

javaEE-01-tomcat

文章目录 javaWebTomcat启动 Tomcat 服务器测试服务器是否成功停止tomcat服务器修改服务器的端口号 Idea整合tomcat服务器 javaWeb 所有通过 Java 语言编写可以通过浏览器访问的程序的总称,是基于请求和响应来开发的。 请求: 客户端给服务器发送数据(Request)响应: 服务器给客…

LINUX环境下使用yum安装JDK1.8并配置环境变量

LINUX环境下使用yum安装JDK1.8并配置环境变量 1.查看CentOS自带JDK是否已安装 yum list installed |grep java2.批量卸载JDK rpm -qa | grep java | xargs rpm -e --nodeps3.直接yum安装1.8.0版本openjdk(其他版本请自行修改版本号) yum install java-1.8.0-openjdk* -y4.默…

4 Go语言的操作符

本专栏将从基础开始,循序渐进,由浅入深讲解Go语言,希望大家都能够从中有所收获,也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方,请指正!大家一起学习,…

智慧园区整体一站式解决方案(PPT原件完整版)

软件全套资料部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书,技术解决方…

SQL labs-SQL注入(四,sqlmap对于post传参方式的注入)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 序言:本文主要讲解基于SQL labs靶场,sqlmap工具进行的post传参方式的SQL注入。 传参方式有两类,一类是直接在url栏内进行url编码后进行的传参&am…

批量打断相交线——ArcGIS 解决方法

在数据处理,特别是地理空间数据处理或是任何涉及图形和线条分析的场景中,有时候需要把相交的线全部从交点打断一个常见的需求。这个过程对于后续的分析、编辑、或是可视化展现都至关重要,因为它可以确保每条线都是独立的,避免了因…

LabVIEW放大器自动测量系统

开发了一个基于LabVIEW平台的多路前置放大器自动测量系统的开发与实施。该系统集成了硬件控制与软件编程,能够实现放大器各项性能指标的快速自动测量,有效提高了测试的精确性和效率。系统设计采用了虚拟仪器技术,结合了先进的测量与控制策略&…

Redis 7.x 系列【30】集群管理命令

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 集群信息2.1 CLUSTER INFO 3. 节点管理3.1 CLUSTER MYID3.2 CLUSTER NODES3…

UI界面卡顿检测工具--UIHaltDetector

引言: 在日常工作当中,我们经常会遇到软件的界面出现卡顿的问题,而为了确定卡顿原因,我特地写了一个UI界面卡顿的小工具:UIHaltDetector;该工具可以在检测到目标窗口出现卡顿的时候直接打印堆栈日志和输出…

Windows系统安全加固方案:快速上手系统加固指南 (下)

这里写目录标题 一、概述二、IP协议安全配置启用SYN攻击保护 三、文件权限3.1 关闭默认共享3.2 查看共享文件夹权限3.3 删除默认共享 四、服务安全4.1禁用TCP/IP 上的NetBIOS4.2 ### 禁用不必要的服务 五、安全选项5.1启动安全选项5.2禁用未登录前关机 六、其他安全配置**6.1防…

基于 HTML+ECharts 实现的数据可视化大屏案例(含源码)

数据可视化大屏案例:基于 HTML 和 ECharts 的实现 数据可视化已成为企业决策和业务分析的重要工具。通过直观、动态的图表展示,数据可视化大屏能够帮助用户快速理解复杂的数据关系,发现潜在的业务趋势。本文将介绍如何利用 HTML 和 ECharts 实…

基于JAVA+SpringBoot+Vue的前后端分离的医院后勤管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 医院后勤管理系统是一…

LLama 405B 技术报告解读

LLama 405B 技术报告解读 果然传的消息都是真的,meta在24号凌晨发布了llama 3的405B版本,这次还是做一个技术报告解读。 值得一提的是,在技术报告的开头,meta特意强调了一个 Managing complexity,大意是管控复杂度。…

echarts实现在市级行政区点击县级行政区,显示单个县级行政区地图数据

因需兼容ie,此处所有变量声明都用var。如无需支持,可另做let修改。 这里以常州市为例,我们可以去阿里云提供的地理工具去截取地图json数据DataV.GeoAtlas地理小工具系列 点击所选区域,右侧会对应显示json数据,再次点击右侧红框内…

【Hec-Ras】案例1:韩国Seung-gi stream稳定流/非稳定流模拟

Hec-Ras案例1:韩国Seung-gi stream 研究区域:Seung-gi stream(韩国)研究数据降水数据(Rainfall data) 步骤1:创建工程文件/打开已有工程文件步骤2:参数调整步骤2.1:数据导…

Android .rc规则详解与init 启动

系列文章请扫关注公众号! 简介 Android的init进程是启动各种服务的核心进程,并处理属性设置等。怎么启动各个服务和监听属性的呢?启动过程中会解析rc文件,并存下来。当系统属性更改或启动某项服务时,init就会按照rc中的设置运行对…

SpringBoot集成Tomcat、DispatcherServlet

通过 SpringBoot 自动配置机制,导入配置类 利用 SpringBoot 自动配置机制,SpringBoot 会导入一个类型为 ServletWebServerFactoryAutoConfiguration 的配置类 ServletWebServerFactoryAutoConfiguration ServletWebServerFactoryAutoConfigurations 类上…

软考中级网络工程师考什么?应该怎么正确备考

网络工程师软考中级难易度50%,不太难。但是如果准备不足就悬了,赶紧备考起来吧。 网络工程师每年考两次,相比其他的软考考试一年中考的机会又多了一次,而且软考网工也是挺热门的科目,每年很多人报考,相对的…