计算机网络(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,一经查实,立即删除!

相关文章

Linux/Windows路由管理

本文主要介绍如果通过linux/Windows命令添加IPV6地址&#xff0c;查看添加IPV6默认路由&#xff0c;查看IPV6邻居缓存 一、Linux 1、查看地址 IPV4: route netstat -route ip route IPV6: ip -6 route show route -A inet6 route -62、添加IPV6地址 ip -6 addr add <…

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

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

成员方法(类方法)的使用细节与注意事项

目录 1.方法的调用机制原理图 2.访问修饰符 3.返回类型 4.形参列表 5.方法体

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

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

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

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

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

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

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

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

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

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

【MySQL】表的内外连接

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

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

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

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

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

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…

php 原型模式

一&#xff0c;原型模式&#xff0c;就是先创建好一个原型对象&#xff0c;然后通过拷贝原型对象来生成新的对象。适用于大对象的创建&#xff0c;因为每次new一个大对象会有很大的开销&#xff0c;原型模式仅需内存拷贝即可。 原型模式中的主要角色&#xff1a; 1&#xff0c;…

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…

将 MongoDB 的 List<Document> 转换为对象列表

当我们使用 MongoDB 存储数据时&#xff0c;经常会涉及到将 MongoDB 的文档对象转换为对象列表的需求。在 Java 中&#xff0c;我们可以使用 MongoDB 的 Java 驱动程序和自定义类来实现这一转换过程。 本篇博客将介绍如何将 MongoDB 中的 List<Document> 转换为对象列表。…

【Nodejs】操作mongodb数据库

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

docker版jxTMS使用指南:自定义频率型动态管控

本文讲解4.4版jxTMS中如何自行定义一个频率型的动态管控&#xff0c;整个系列的文章请查看&#xff1a;docker版jxTMS使用指南&#xff1a;4.4版升级内容 docker版本的使用&#xff0c;请查看&#xff1a;docker版jxTMS使用指南 4.0版jxTMS的说明&#xff0c;请查看&#xff…

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

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