网络基础知识入门

目录

一、局域网与广域网

1、局域网

2、广域网

二、协议

1、概念

2、协议的理解

3、协议的分层

1、分层

2、OSI七层模型

三、网络传输基本流程

1、报头

2、局域网通信原理

3、跨网络传输流程

四、IP地址和MAC地址

1、IP地址

2、MAC地址

3、两者的区别


一、局域网与广域网

1、独立模式:在计算机诞生之初,每台计算机是相互独立的,相互之间不能够进行数据交流。

2、网络互联: 将多台计算机连接在一起,完成数据共享。后来,随着计算机的普及,以及互联网技术的发展,多台计算机能够相互之间进行数据交流。

1、局域网

局域网LAN:计算机数量更多了,为了完成每台计算机之间的数据共享,人们通过交换机和路由器将各个计算机连接在一起,完成数据共享。局域网的范围相比于广域网较小,这个小范围可以具体是一个家庭、学校、公司。私网和内网通常也表示同样的概念,都指的是企业、学校或家庭等组织内部形成的局域网。

2、广域网

广域网WAN:将远隔千里的计算机都连在一起。公网和外网通常是指同一个概念,它们可以被看作是广域网的一部分。

二、协议

1、概念

网络协议:为了方便计算机之间进行网络数据通信和数据共享,而制定的一系列规则和约定。这些规则规定了数据传输的格式、顺序、错误检测与纠正、数据的确认方式等,确保不同的计算机之间能够有效地进行通信和数据共享。

为什么需要协议?

举个例子,计算机之间的数据传输在最底层是通过我们常说的网线来传输的,其传输的本质是通过光信号和电信号传输的。通过信号的 “频率” 和 “强弱” 来表示 0 和 1 这样的信息,而不同的计算机厂商,有的可能用高频率表示0,低频率表示1,有的厂商则相反,这样的话计算机之间就很难通信了,所以不同的计算机之间要想传递各种不同的信息,计算机厂商就需要约定好双方的数据格式,这就是一种在物理层上的协议。

TCP/IP是因特网的正式网络协议(后面会讲),是一组在许多独立主机系统之间提供互联功能的协议,规范因特网上所有计算机互联时的传输、解释、执行、互操作,解决计算机系统的互联、互通、操作性,是被公认的网络通信协议的国际工业标准。

2、协议的理解

我们在很多谍战剧中,卧底和接头人在进行情报交换的时候,他们往往不会直接暴露出自己和情报内容。他们通常会约定一些暗语,来代表情报内容。这样,就只有卧底和接头人能够知道情报的真实内容。

3、协议的分层

1、分层

对于上面的情报交换的例子,就有协议的分层。

~ 分层:情报交换时,从两个人人的角度出发,是人与人之间在直接进行情报交换,从暗语的角度出发,两个人使用的暗语相同,是暗语与暗语之间的交换,这是分层。卧底和接头人层与暗语是不同的,搭配使用。

~ 分层好处:把软件进行模块化,可以很好的进行解耦,解耦以后我们如果把暗语进行更换,上层不用改变,而如果上层改变,暗语层则不需要改变。所以对任何一层做任何修改并不影响其他层。

~ 分层依据:功能比较集中,耦合度比较高的模块放在一层,也就是高内聚,每一层解决特定的问题,功能解耦。

2、OSI七层模型

OSI七层模型是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。自上到下分别是:

分层名称功能
应用层针对特性应用的协议
表示层设备固有数据格式和网络标准数据格式的转换
会话层通信管理。负责建立和断开通信连接。管理传输层以下的分层
传输层管理两个节点之间的数据传输负责可靠传输(确保数据被可靠的传送到目标地址)
网络层地址管理与路由选择
数据链路层互联设备之间传送和识别数据帧
物理层用‘0’和‘1’表示电压的高低,灯光的闪灭

但是,OSI七层模型只是一个框架,既复杂又不实用,所以后来在具体实现的时候程序员就对其进行了调整,于是就有了我们现在所常用的TCP/IP四层协议(除开物理层)。

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

2、数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
3、网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
4、传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
5、应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

三、网络传输基本流程

1、报头

不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装。

在计算机网络通信中,报头(Header)指的是数据包或帧的开头部分,其中含有关于该数据包或帧的元信息。这些元信息包括源地址、目标地址、协议类型等等。

在TCP/IP四层协议中,每一层都有自己的协议定制方案,并且每层协议都有自己的协议报头。从上到下,交付数据的时候要添加报头,从下到上,递交数据的时候要去掉报头。报头和有效载荷共同组成报文。

去掉报头又称为解包:实际就是不断从数据中提取对应的报头,并对提取出来的报头进行数据分析,确定将有效载荷递交给上层的哪个协议。

封装过程: 封装的本质其实就是添加报头!

1、数据先交给应用层,应用层添加上对应应用层协议的报头后,将数据再交给传输层。

2、传输层收到数据后,再添加上对应传输层协议的报头,并将数据继续向下进行交付。

3、网络层收到数据后,再添加上对应网络层协议的报头,接着将数据再交给链路层。

4、链路层收到数据后,最后再添加上对应链路层协议的报头,至此数据封装完毕。 

解包过程:封装后的数据交给目的主机后,目的主机需要自下向上进行解包拿到信息。解包的本质也就是去掉报头。

2、局域网通信原理

在同一个局域网中两台主机是能够直接通信的。我们的每一台主机都有网卡,每一张网卡都有自己的地址,叫做MAC地址,它可以标识网卡的唯一性,而MAC地址虽然全球唯一,但是不应用于全球,我们只是使用它在局域网中标识自己的唯一性。

我们可以通过 ifconfig 指令查询主机的MAC地址:

局域网中两台主机直接通信:

当MAC2想要跟MAC5发送消息时,其他所有主机也都能收到,但是其他主机在内部做协议判断发现消息并不是发给自己的,会自动丢弃。最终只有MAC5能够收到消息。 

局域网中一般只允许一个主机在任何一个时刻在局域网中发消息给其他主机。当有多台主机同时发信息时,就会发生碰撞,如果发生了碰撞就把消息作废然后重发。比如,但当MAC1想把消息发给MAC7,MAC3想把消息发给MAC5,它们不能同时发消息。

3、跨网络传输流程

如果两个主机不在局域网中,其通信方式如下:

可以看到同层报头和有效载荷完全一样。 

四、IP地址和MAC地址

1、IP地址

IP协议有两个版本,IPv4和IPv6,提到IP协议,如果没有特殊说明的,我们一般都是指IPv4。IP地址是在IP协议中用来标识网络中不同主机的地址。IP地址是一个4字节的整数。但是,为了方便用户使用,系统呈现给我们的IP地址是点分十进制形式的字符串。

2、MAC地址

MAC地址用来识别数据链路层中相连的节点。其在网卡出厂时就确定了,不能修改。 MAC地址通常是唯一的。(服务器中的MAC地址不是真实的MAC地址)。

MAC地址长度为48位,及6个字节,一般用16进制数字加上冒号的形式来表示。

3、两者的区别

IP地址一般是用来标识数据传输的传输主机和最终目的主机的。当一个主机发出消息,该消息自上向下进行封装,里面包含了本主机的IP地址,和目的主机的IP地址。这个目的主机可能在其他局域网中。

本主机可能由一个或者多个路由器关联着目的主机,我们要成功发送消息就必须依次通过这些路由器。所以,在封装好后,报头中有关于下一个路由器的MAC地址,通过这个地址,数据包去到对应的路由器,然后去掉报头。

然后将剩下的数据向上交付给网络层,此时在网络层就可以获取到对应的目的IP地址,然后路由器就可以根据该IP地址在路由表当中进行查找,最终就能够确认该数据的下一站是哪一个路由器,再在向下交付的时候添加含有下一个路由器MAC地址的报头,去往下一个路由器。最终找到目的主机所在的局域网。

或者到第一个路由器后,路由器根据该IP地址在路由表当中进行查找,发现目的主机就是在我所联系的局域网中,然后将数据包发送过去。由目的主机解包,拿到数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

define的多种用法

一.宏的用法 当我们在计算一个数据的时候&#xff0c;这些数据里面有一些常量&#xff0c;比如说&#xff0c;圆周率&#xff0c;自然对出e&#xff0c;普朗克常量&#xff0c;光速这一类的。 例子: #include <stdio.h> #define PI 3.14 int main(){ double s,r2; pri…

虚拟机 ubuntu 20.04 git 设置代理的方法

前言 ubuntu 20.04 虚拟机中 Git 访问 github 或者其他的 git 仓库&#xff0c;大部分情况下速度很慢&#xff0c;并且容易掉线 如果 主机上使用了代理软件&#xff0c;但是虚拟机 ubuntu 中 Git 访问 git 仓库依旧是很慢 【问题】如何设置 虚拟机 ubuntu 的 Git 代理&#x…

langchain 学习笔记-FunctionCalling三种方式

ChatGPT 基于海量的训练数据生成答案&#xff0c;所以它无法回答训练数据中没有的信息或搜索信息 。人们希望 ChatGPT 具有对话以外的各种功能&#xff0c;例如“我想管理我的待办事项列表”。 函数调用是对此类请求的响应。 通过使用函数调用&#xff0c;ChatGPT 现在可以在生…

MPT - 初识账户状态树(World State)

往期回顾 ETH网络中的账户ETH网络中的区块链 通过以上文章&#xff0c;我们了解到ETH网络中的World State是节点根据交易维护的&#xff0c;节点在维护Wrold State时为了方便操作会将用户状态构建成一颗树&#xff0c;称为账户状态树&#xff0c;采用一种叫做MPT的数据结构 MP…

微信公众号取消了留言功能后,怎么提高互动和涨粉?

为什么公众号没有留言功能&#xff1f;2018年2月12日之后直到现在&#xff0c;新注册公众号的运营者会发现一个问题&#xff1a;无论是个人还是企业的公众号&#xff0c;在后台都找不到留言功能了。这对公众号来说绝对是一个极差的体验&#xff0c;少了一个这么重要的功能&…

四月软件测试面经合集(持续更新)

四月软件测试面经合集 polelink面试&#xff08;一面过&#xff09;01 对于JMeter接口测试&#xff0c;如何做接口关联&#xff1f;接口关联的定义JMeter关联方法正则表达式介绍贪婪匹配和非贪婪匹配案例分析正则表达式提取器步骤 02 是否会写shell脚本&#xff0c;能对shell进…

解决Toad for Oracle显示乱中文码问题

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

FPGA + 图像处理(三)生成3x3像素矩阵

前言 生成NxN的像素矩阵是对图像进行各类滤波操作的基本前提&#xff0c;本文介绍一种通过bram生成3x3矩阵的方法。 程序 生成bram核 因为本文介绍的是基于bram生成的3x3像素矩阵&#xff0c;所以要先生成两个bram核&#xff0c;用于缓存前两行图像数据 在 IP catalog中选…

【VTKExamples::Meshes】第九期 TestWindowedSincPolyDataFilter

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TestWindowedSincPolyDataFilter,并解析接口vtkWindowedSincPolyDataFilter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! …

yolo训练数据集时怎么改变数据集的下载和存放路径

项目场景&#xff1a; 在yolov8训练官方给的或者公开的或者自己的数据集的时候&#xff0c;给数据集写个配置文件也就是.yaml文件肯定是必不可少的&#xff0c;但有时根据ultralytics文件夹里的别人博客提示根本解决不了问题。 问题描述 在模型训练时自己明明将数据集放到了u…

计算机毕业设计java 基于Android的拼图游戏app

当今社会&#xff0c;随着电子信息技术的发展&#xff0c;电子游戏也成为人们日常生活的一部分。这种娱乐方式结合了日新月异的技术&#xff0c;在游戏软件中结合了多种复杂技术。拼图游戏流行在各种电子产品上&#xff0c;从计算机&#xff0c;掌上游戏机到如今的手机&#xf…

C语言基础语法-教案20(预处理-条件编译)

最近给大家争取到一个 深夜福利 保证你在深夜手机刷到 嘎嘎香~ 那就是 官方授权 大流量卡 缺点&#xff1a;月租太便宜 185GB~ 100分钟通话时长~ 长期套餐~ 畅想自由的气息 流量自由的同时还拥有超长通话&#xff0c;而且免费领取。 名额有限&#xff0c;咱们废话不…

测试基础|为啥大多数功能测试会觉得测试平台不好用?自动化测试的几点思考

一、接口自动化到底要验证什么 个人觉得做什么事情前&#xff0c;应该想下做的动机和想要达成的目的&#xff0c;这样会减少很多不必要的弯路。 1. 自动化的原因 测试界普遍认为应该加自动化用于提高测试效率和保障&#xff1b; 测试kpi任务&#xff1b; 应对需要频繁执行…

mysql 数据库的MHA高可用

目录 一、MHA概述&#xff1a; 1.认识MHA&#xff1a; 2.MHA 的组成&#xff1a; 3.MHA 的特点&#xff1a; 4.MHA 工作原理&#xff1a; 5.数据流向&#xff1a; 6.数据同步方式&#xff1a; 7. mysql 的高可用 &#xff1a; 二. MySQL MHA 的搭建: 1. 修改 Master、…

vulhub中Struts2-016 远程代码执行漏洞复现

影响版本: 2.0.0 - 2.3.15 漏洞复现 在struts2中&#xff0c;DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀&#xff0c;但是这些前缀后面同时可以跟OGNL表达式&#xff0c;由于struts2没有对这…

蓝桥杯每日一题:杨辉三角形(组合计数)

下面的图形是著名的杨辉三角形&#xff1a; 如果我们按从上到下、从左到右的顺序把所有数排成一列&#xff0c;可以得到如下数列&#xff1a; 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ... 给定一个正整数 N&#xff0c;请你输出数列中第一次出现 N是在第几个数&#x…

Vue - 你能说说Vue3和Vue2相比,改进了哪些地方吗

难度级别:中级及以上 提问概率:85% Vue2终将面临停止维护,不过幸好Vue3做到了很好的向后兼容,可以使前端开发人员能够更平滑的过渡。在前端面试中,Vue3的相关知识也会越来越多,那么Vue3与Vue2相比,都做到了哪些改进呢? 从开发阶段讲…

VS Code远程连接服务器运行python程序

之前一直用pycharm连接服务器跑程序&#xff0c;pycharm需要本地和远程都存一份代码&#xff0c;然后把本地的更新同步到服务器上来实现代码修改&#xff0c;后来实习的时候发现企业里面都用VS Code&#xff0c;不得不说&#xff0c;VS Code真的很方便&#xff0c;直接连服务器…

Leetcode 56. 合并区间

心路历程&#xff1a; 这道题看起来很简单&#xff0c;但实际上操作起来很多细节&#xff0c;第一反应是朋友圈问题&#xff0c;于是想到了并查集去做&#xff0c;顺便复习了一下并查集。但是这道题用并查集的话只能98% A&#xff0c;无法全部通过。 这道题其实是考察数组重复…

如何使用 FastApi

安装 fastapi fastapi 是一个用于构建高性能 Web 应用的 Python 框架&#xff0c;它提供了简洁、高效的 API 开发体验。 pip install fastapi 安装 uvicorn uvicorn 是一个用于运行 FastAPI 应用的服务器&#xff0c;它可以将你的 FastAPI 代码部署到生产环境中。 pip inst…