计算机网络(1) --- 网络介绍

目录

1.介绍协议

基础知识

协议

协议分层

OSI七层模型

2.TCP/IP五层模型

3.网络传输的基本流程

1.基本知识

协议报头

2.局域网通信的基本流程

3.网络传输流程

局域网分类

跨路由器传输

数据包封装和分用

4.网络中的地址管理

1.IP地址

2.MAC地址

3.区别


1.介绍协议

基础知识

1.其实所谓的互联网可以看成一个巨大的操作系统,而每一个计算机都是一个硬件通过网线与其他计算机相互连接。

2.那么其实计算机内部的本质其实也是一个小型的网络结构。

3.短距离的传输,其实数据丢失的概率不大,即使丢失其实也好确定。但是长距离传输,是否丢失也是一个问题,特别是网路 ,就会出现信息传递问题。

4.为了尽可能减少通信成本就需要定制协议,用于解决由于长距离的通信问题。

协议

定义:协议就是用计算机语言来表达计算机通信之间的规定。不同的协议表示不同的意义,能让对面的计算机知道本台计算机的目的

网络协议:计算机生产厂商有很多;计算机操作系统,也有很多;计算机网络硬件设备, 还是有很多;如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准,大家都来遵守, 这就是网络协议标准;

协议分层

1.分层普适性的意义是为了解耦,对任何一层做修改其他层不会被影响。出现问题也会在该层受影响而已;另外,功能比较集中的,耦合度比较高的模块我们设计成一层的协议。这样的特点是低耦合,高内聚

2.每一层都需要解决特定的问题,并且网络通信并不是一股脑直接转入计算机中的。

3.问题大致有这些:如何把数据先交付给与自己主机直接相连的下一台主机;要有路径选择的能力;传输出错后的容错纠错能力;传到目的计算机后解决应用的问题(送到目的主机并不是目的,是手段)

OSI七层模型

1.OSI是网络分层的一种逻辑上的定义和规范

2.OSI把网络分为七层(自下向上):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

3.实际上遇到的网络问题不会出现七层,工程实际采用五层或者四层协议,因为无法实现一种万能的实现套用所有的项目,所以最后三层需要用户手动搭建。

2.TCP/IP五层模型

1.五层分为:物理层,数据链路层,网络层,传输层,应用层

2.物理层:负责光电信号的传输,物理层的能力决定了最大传输速率、传输距离、抗干扰性等。

集线器(Hub)工作在物理层,长距离传输光电信号会衰减,那么集线器(Hub)的作用就是加强衰减的信号。

光纤:光导纤维是一种由玻璃或塑料制成的纤维,利用光在这些纤维中以全内反射原理传输的光传导工具

调制解调器(猫):主要负责信号转换,连接光纤解读传输的信号(模拟信号和数字信号的互相转换)

路由器:构造局域网,连接网络

双绞线(网线):路由器连接主机,使得主机联网

网卡:网线的数字信号01传给网卡存储在里面的寄存器中,随后传给磁盘

3.数据链路层:解决如何把数据先交付给与自己主机直接相连的下一台主机的问题

4.网络层:有路径选择的能力

5.传输层:传输出错后的容错纠错能力

6.应用层:传到目的计算机后解决应用的问题

1.TCP/IP分层模式其实反映了计算机整体的运行逻辑:自底向上由硬件,驱动,操作系统,调用接口,用户组成

2.系统调用接口连接到文件,所有数据都会在文件中存储。

3.对于一台主机, 它的操作系统内核实现了从传输层到网络层的内容

4.对于一台路由器, 它实现了从网络层到物理层

5.对于一台交换机, 它实现了从数据链路层到物理层

6.对于集线器, 它只实现了物理层;

3.网络传输的基本流程

由于物理层偏向底层实现,通过电子信号传递,故而不太需要讲。我们理解四层即可。

1.基本知识

协议报头

1.每一层都需要协议,而每一个协议的最终表现就是都有报头。

2.举个例子,类似于邮件快递,快递员想要将货物送到买家其实想要一些信息构成了快递单。而对应到网络协议,其实就是报头。

3.报头的意义:协议通常通过协议报头表达,报头遵循一系列规定的约定。用于确认每一层的任务。

4.每一份数据在被发送或者接收时,都要先经历报头包装。

5.而最后接收到应用层的数据,其实也带有报头,这些报头是告知用户如何进行操作的。

2.局域网通信的基本流程

1.局域网之间,两台主机可以直接通信

2.每一台主机都有自己的名字,每一台主机都有网卡,这张网卡有自己独一份的地址为MAC地址

3.MAC地址用于表征局域网中主机的唯一性

原理:

1.在一个局域网内,一台主机发出的数据,所有主机都能接收到

2.对于发出方,在发出数据上添加报头,包含了传到哪里的地址

3.其他主机接收得到数据,但是对于其他主机而言,它会在底层传输查看报头,发现与自己主机对不上,那么此时下层直接删除掉数据。上层用户得不到数据

4.接收方在底层确认是发给自己的数据就读取,这样就达到了局域网传输的目的

3.网络传输流程

1.网络传输并不是直接从应用层传到对方的应用层,需要经过不断的向下传输到物理层才能传到别处的物理层,随后向上传到应用层

2.由应用层到物理层是传输的用户不断将数据封装的过程,每一层到下一层去都会把自己的报头添加到有效载荷前面,形成报文(报文=报头+有效载荷),随之往下

3.接收方接收到由物理层的数字信号自下向上不断将数据解包的过程,每一层往上之前都会把自己同层的报头摘除再向上传

4.但是其实站在用户角度,其实就会认为同层之间相互交流,因为在同层报文是一样的。

5.封装报头有很多的协议,发送方直接根据自己的需求打包,但是接收方要想知道传过来的具体协议是什么需要在报头中得到

6.将报头分离其实要么按固定格式分离,要么按固定大小分离

局域网分类

1.以太网

2.令牌环网:局域网中,可能不止一对主机在对话。互相传输但是网线会出现数据碰撞问题,那么这么一个局域网形成了碰撞域。局域网的网络资源站在系统角度而言其实就是共享资源。出现碰撞就重新将数据发出,而此时依旧会有数据碰撞,那局域网中设置一个令牌,只有有令牌的主机才能发送数据。

3.无线LAN网

跨路由器传输

1.跨路由器的条件是一个设备至少要横跨两个网络,才能进行数据传输。

2.那么路由器也需要横跨两个网络,在两边都构成一个局域网,那么路由器至少需要两个网络接口将两个局域网相互连接。

3.当前的主机通过局域网将数据传给与自己直接相连的路由器。由于路由器工作在网络层,路由器的工作就是判断数据传输到哪里去,所以它得读取报头将数据进行传输决定。

4.路由器得到数据又向下交互,用令牌环的协议传输数据,通过令牌环向下一台主机交付。

5.这样的设计,路由器其实重新封住了报头,但是上层没什么区别。IP协议存在的意义就是屏蔽底层网络的差异。

6.图中的上层基本一致,而以太网和令牌环网其实是物理层的实现不同,各个局域网的网络接口不一样,上图只是例子

数据包封装和分用

1.不同的协议层对数据包有不同的称谓:在应用层称为请求与响应,在传输层叫做数据段,在网络层叫做数据报,在链路层叫做数据帧。
2.应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装。
3.首部信息中包含了一些类似于首部有多长,载荷有多长, 上层协议是什么等信息。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理

4.网络中的地址管理

1.IP地址

1.IP协议有两个版本, IPv4和IPv6,二者不可兼容。

2.IP地址是在IP协议中, 用来标识网络中不同主机的地址;对于IPv4来说,IPv4地址是一个4字节, 32位的整数;我们通常也使用 "点分十进制" 的字符串表示IP地址。

3.IPv6为16为字节,128位的整数组成

4.在广域网广泛使用,也有一部分在局域网中使用

2.MAC地址

1.工作在局域网当中的地址

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

3.区别

既然都是表示地址的,那么二者之间有什么区别

1.仔细分析,其实想要一个主机到另一个主机需要两种信息:初始主机到最目的主机的信息;上一台主机到下一台相连的主机的信息。

2.源IP到目的IP:为了传输的每一个阶段提供方向目标,方便进行路径选择

3.上一台主机到下一台相连的主机的地址一直在变换,这种地址为MAC地址,提供路径的可行性

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

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

相关文章

训练自己的行文本检测EAST模型

训练自己的行文本检测EAST模型 训练数据格式 训练数据格式

模糊神经网络机械故障诊断(MATLAB代码)

效果 用训练好的模糊神经网络对机械故障进行诊断,根据网络的预测值得到机械的技术状态。预测值小于 1.5 时为正常状态,预测值在 1.5~2.5 之间时为曲轴轴承轻微异响,预测值在 2.5~3.5 之间时为曲轴轴承严重异响预测值在 3.5~4.5 之间时为连杆轴承轻微异响,预测值大于 4.5 时为连…

选好NAS网络储存解决方案,是安全储存的关键

随着网络信息的发展,NAS也越来越受到企业的关注,NAS网络存储除了提供简单的存储服务外,还可以提供更好的数据安全性、更方便的文件共享方式。但市面上的产品种类繁多,我们该如何选择合适的产品,通过企业云盘&#xff0…

高效协作处理缓存清理需求:生产者-消费者模式助力多模块缓存管理

在现代应用系统中,缓存是提高性能和减少数据库负载的重要手段之一。然而,缓存的数据在某些情况下可能会过期或者变得无效,因此需要及时进行清理。在复杂的应用系统中,可能有多个系统、多个模块产生缓存清理需求,而这些…

建造者模式——复杂对象的组装与创建

1、简介 1.1、概述 建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式向客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。 建造者模式是较为复杂的创建型模式,它将客户端与包…

三个常用查询:根据用户名 / token查询用户信息+链表分页条件查询

目录 1.根据用户名或者token查询用户信息 会员信息实体类 统一状态Result类 controller层 service层及实现类 dao层 测试: 2.链表分页条件查询 会员等级实体类 封装条件类PageVo controller层 service层及实现类 dao层 Mapper.xml层 测试 vue前端参考 1.根据用户名…

【MySQL】表的内外连接

目录 一、内连接二、外连接2.1 左外连接2.2 右外连接 三、OJ题 表的连接分为内连和外连 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。 语法&#x…

汉明距离,两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

题记: 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y,计算并返回它们之间的汉明距离。 示例 1: 输入:x 1, y 4 输出:2 解释: 1 (0 0 0 1) 4 (0 1 0 0…

现在运动耳机什么牌子的好用、最好的运动耳机推荐

对于注重身体健康的小伙伴来说,每周必然都少不了有规律的运动,而运动的时候耳边没有音乐的陪伴总是稍显枯燥无味,很难让人提起干劲来。有些小伙伴觉得运动的时候戴着耳机,稍微跳动几下耳机就开始松动,随时都要分心提防…

QT 作业 day4 7/28

1.思维导图 2.手动完成服务器实现 .h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器 #include <QTcpSocket> //连接客户端套接字 #include <QMessageBox> #include <QList> //套接字容器 #include &l…

无涯教程-jQuery - show( )方法函数

show()方法仅显示匹配元素中的每个元素(如果隐藏)。此方法还有另一种形式&#xff0c;可以控制动画的速度。 show( ) - 语法 selector.show( ); show( ) - 示例 以下是一个简单的示例&#xff0c;简单说明了此方法的用法- <html><head><title>The jQuer…

Java-数组的定义和使用

一、数组的基本概念 1.1 为什么要使用数组 假设现在要存5个学生的javaSE考试成绩&#xff0c;并对其进行输出&#xff0c;则可有 public static void main(String[] args){ int score1 70; int score2 80; int score3 85; int score4 60; …

List的各种排序

目录 Collections.sort对list进行排序 对象中某个属性进行排序 通过比较器进行比较 JAVA8特性Stream流进行排序 Stream升降序组合使用 Collections.sort对list进行排序 public static void main(String[] args) {List<Integer> list new ArrayList<>();list…

【Nodejs】操作mongodb数据库

1.简介 Mongoose是一个让我们可以通过Node来操作MongoDB的模块。Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装&#xff0c;并提供了更多的功能。在大多数情况下&#xff0c;它被用来把结构化的模式应用到一个MongoDB集合&#xff0c;并…

数据结构:链表的一些经典的OJ题目

文章目录 写在前面链表OJ调试技巧移除链表元素反转链表链表的中间节点链表中倒数第K个节点链表分割问题 写在前面 本篇为本人学习链表的过程中遇到的典型OJ题&#xff0c;于是整理出来分享思路和便于后续重新学习&#xff0c;每个标题均可跳转至对应习题&#xff0c;大多为Lee…

宝塔面板Django项目部署(无数据库版)

近日在学习使用宝塔面板部署Django开发的web项目&#xff0c;走了不少弯路花了3天的时间才完成下面的文字&#xff0c;希望这篇文字能给正在摸索中的人带去点帮助。 一、安装宝塔面板 打开宝塔面板的官方网站(https://www.bt.cn/new/index.html).点击" " 会看到: 当…

内核链表在用户程序中的移植和使用

基础知识 struct list_head {struct list_head *next, *prev; }; 初始化&#xff1a; #define LIST_HEAD_INIT(name) { (name)->next (name); (name)->prev (name);} 相比于下面这样初始化&#xff0c;前面初始化的好处是&#xff0c;处理链表的时候&#xff0c;不…

Jenkins构建完成后发送消息至钉钉

钉钉群的最终效果&#xff1a; 1、jenkins安装DingTalk插件&#xff0c;安装完成后重启 2、配置钉钉插件 参考官网文档&#xff1a;快速开始 | 钉钉机器人插件 系统管理 拉到最下面&#xff0c;可以看到钉钉配置 按照如下配置钉钉机器人 配置完成可以点击测试按钮&#xff0…

Tensorflow报错protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.8

报错信息 仔细观察下方命令后&#xff0c;可得运行:python -m pip install --upgrade pip即可 完成后再次执行性安装命令 成功&#xff01;&#xff01;&#xff01;

监控和可观察性在 DevOps 中的作用!

在不断发展的DevOps世界中&#xff0c;深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念&#xff0c;为系统的健康状况和性能提供有价值的可见性。虽然这些术语经常互换使用&#xff0c;但它们代表了理解和管理复杂…