网络基础1

文章目录

  • 网络基础1
    • 1. 计算机网络背景
      • 1.1 网路发展
      • 1.2 认识 "协议"
    • 2. 网络协议初识
      • 2.1 协议分层
      • 2.2 OSI七层模型
      • 2.3 TCP/IP五层(或四层)模型
        • 协议栈与OS的关系
    • 3. 网络传输基本流程
      • 3.1 同一个局域网两台主机通信
      • 3.2 同一个路由器的两个子网通信
    • 4. 网络中的地址管理
      • 4.0 感性认识
      • 4.1 认识IP地址
      • 4.2 认识MAC地址

网络基础1

1. 计算机网络背景

1.1 网路发展

独立模式: 计算机之间相互独立

在这里插入图片描述

网络互联: 多台计算机连接在一起, 完成数据共享;

在这里插入图片描述

局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;

在这里插入图片描述

广域网WAN: 将远隔千里的计算机都连在一起;

在这里插入图片描述

所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域
网。

1.2 认识 “协议”

“协议” 是一种约定.
在这里插入图片描述

计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信
息, 就需要约定好双方的数据格式。

思考: 只要通信的两台主机, 约定好协议就可以了么?

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

2. 网络协议初识

2.1 协议分层

我们以为什么要协议分层,引出以下两个问题:

  • 网络通信的时候,会有那些需求要解决(有哪些问题产生)?
  1. 长距离传输,数据异常的问题(丢失)

  2. 定位一台主机的问题

  3. 怎么进行数据转发,路径选择的问题(路由)

  4. 010101硬件级别的协议

  • 为什么会有这些问题呢?

    就是单纯的传输距离变长了

既然已经产生了问题,那么需求就出来了,需要提出对应的解决方案

  • 上面的问题,是有先后上下的关系的! 我们设计的时候将不同的功能模块设计成为不同的模块 — 低耦合
  • 不同性质的问题,不要把不相关的问题放在一起,要把相关的问题放在一起,做出解决方案 — 高内聚

于是基于低耦合,高内聚,将解决方案设计成为层状结构。

比如在打电话,人与人之间通信使用的是汉语,我们可以将其称为语言层;而电话和电话之间通信使用的是电话协议,我们可以将其称之为通信设备层

在这里插入图片描述

后来随着科技的发展,我们都用上了智能手机,此时我们下层使用的通信设备变了,或是这部电话卖到了其他国家,此时上层使用的通信语言变了,但我们仍然可以正常沟通。

在这里插入图片描述

在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次。

分层最大的好处在于 “封装” ,在分层情况下,将某层的协议进行替换后,通信双方之间是不会受到影响的 。

软件分层之后,每一层都只关注自己同层的功能,只使用下层的接口,任何一层出现问题,都不会直接影响另一层,减少后期开发者的维护成本(高内聚,低耦合)

2.2 OSI七层模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解。
分层名称功能每层功能概览
7应用层针对特定应用的协议在这里插入图片描述
6表示层设备固有数据格式和网络标准数据格式的转换在这里插入图片描述
5会话层通信管理、负责建立和断开通信连接(数据流动的逻辑通路)、管理传输层以下的分层在这里插入图片描述
4传输层管理两个节点之间的数据传输、负责可靠性传输(确保数据被可靠地传送到目标地址)在这里插入图片描述
3网络层地址管理与路由选择在这里插入图片描述
2数据链路层互联设备之间传送和识别数据帧在这里插入图片描述
1物理层以0/1代表电压的高低以及灯光的闪灭、界定连接器和网线的规格在这里插入图片描述

2.3 TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层。
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由),路由器(Router)工作在网路层。
  • 传输层: 负责两台主机之间的数据传输,如传输控制协议(TCP), 能够确保数据可靠的从源主机发送到目标主机。
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 我们的网络编程主要就是针对应用层。
  • 物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型。

在这里插入图片描述

协议栈与OS的关系

OSI七层模型提出了一种标准,而TCP/IP五层模型是一种具体的解决方案。
TCP/IP五层模型中将OSI中的应用层,表示层,会话层合并成了一层 — 应用层。

  • 这就是具体的协议栈,那么这个协议栈在哪里呢?和OS有什么关系呢?

在这里插入图片描述

为什么叫TCP/IP四层模型?
传输层最具有代表性的协议:TCP协议,网络层最具有代表性的协议:IP协议,传输层和网络层都在OS中,所以TCP/IP协议栈占据核心地位。

一般而言

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;

但是并不绝对,很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);

3. 网络传输基本流程

3.1 同一个局域网两台主机通信

同一个局域网两台主机可以直接通信吗?可以

数据在两台机器是如何流转的呢?

两个主机通信的本质:两个主机的OS与网络协议栈在通信

我们首先来介绍一种概念:报头

报头的本质是一种数据。比如你网购了某件物品,当你拿到快递后,你得到的实际是快递单+商品,你很可能只关心包裹里的商品,并不在意快递单本身,这里包裹上的快递订单就是一种报头。

向网络中发送数据报时,会添加报头,每一层协议都有自己的报头。

下面以用户发送"你好,吃了吗"为例,来讲解同一局域网中两台主机的通信过程:

在这里插入图片描述

结论:

  • 每一层,都会把上层交付给自己的数据,作为自己的有效载荷
  • 每一层,都有自己的协议报头
  • 对应的层,自己要发送的报文 = 报头 + 有效载荷 ==> 封装
  • 在逻辑上,同层协议,都认为自己在和对方的同层协议在通信
  • 同层协议,能够互相认识对方的报头
  • 几乎每层协议都要有ab这两个功能,未来,任何协议都要有两个基本功能: a. 将报头和有效载荷进行分离 b. 将有效载荷交付给上层的哪一个具体协议;这是一种公共功能,实现了数据报分用。

3.2 同一个路由器的两个子网通信

  • 路由器有3层的功能: 网络层,链路层,物理层
  • 路由器也是一台主机(节点)
  • 路由器至少要级联两个子网,路由器至少要有两个网络接口

局当域网采用的是不同的通信标准,比如局域网1采用的是以太网,而局域网2采用的却是令牌环网,如何进行通信呢?

由于以太网和令牌环网是不同的通信标准,它们给数据添加的报头也是不一样的,因此令牌环网当中的主机无法对以太网当中的数据帧进行解包,反过来也是如此。

这种情况实际是由路由器来处理的,路由器是工作在网络层的一个设备(路由器必须要有两个网络接口,因为路由器至少横跨两个网络)

数据要从局域网1发送到局域网2时,路由器收到局域网1的数据后,会先将以太网对应的报头进行解包,然后将剩下的有效载荷向上交付给网络层,在网络层进行一系列数据分析后,再将数据包进行再一次封装,再交付给链路层,此时在链路层当中就会给该数据包添加上令牌环对应的报头信息,然后再将该数据发送到局域网2当中,此时该数据就能够在令牌环网当中传输了。

上面的这种方式屏蔽了底层子网机制的差异,使IP协议及其以上的协议没有看到任何网络方面的差异;

怎么做到屏蔽了底层网络方面的差异?在 路由器 + IP协议

所以IP协议是全球网络的底层基础 => 变成了软件工程中的核心思路:

任何一个软硬件问题,都可以通过添加一层软件层来解决

在这里插入图片描述

4. 网络中的地址管理

在网络中有两个常用的地址:IP地址和MAC地址

4.0 感性认识

在这里插入图片描述

4.1 认识IP地址

IP协议有两个版本, IPv4和IPv6.后序凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

还有另一个版本的IPv6的原因是:IPv4的IP地址不够用了,IPv6用128个比特位来标识IP地址,16字节

注:IPv4和IPv6不兼容

4.2 认识MAC地址

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

我们可以用 ifconfig 命令,在Linux中显示和配置网络接口的信息

在这里插入图片描述

我们用到的大部分局域网都是以太网标准,其中 ether 对应就有”以太“的意思, ether后面跟的就是MAC地址

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

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

相关文章

2023 电赛E题--可能会出现的问题以及解决方法

2023年电赛E题报告模板(K210版)--可直接使用 本文链接:2023年电赛E题报告模板(K210版)--可直接使用_皓悦编程记的博客-CSDN博客 解决激光笔在黑色区域无法识别 本文链接: 2023 电赛 E 题 激光笔识别有误-…

【Python】基础:标准库常用模块

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍标准库常用模块。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&#…

vue3过滤输入框首尾空格

vue3过滤输入框首尾空格 在 directive文件夹下 新建 trim.ts 文件 // trim.ts 文件 import { App } from "vue"function getInput(el: { tagName: string; querySelector: (arg0: string) > any }) {let inputEleif (el.tagName ! INPUT) {inputEle el.queryS…

如何加载模型YOLOv8 ONNXRuntime

YOLOv8 是 YOLO(You Only Look Once)目标检测系统的最新版本(v8)。YOLO 是一种实时、一次性目标检测系统,旨在在网络的单次前向传递中执行目标检测,使其快速高效。YOLOv8是之前YOLO模型的改进版本,具有更高的精度和更快的推理速度。 ONNX(开放神经网络交换)是一种表示…

《每天5分钟玩转kubernetes》读书笔记

笔记 概念 Pod是脆弱的,但应用是健壮的。 kubelet运行在Cluster所有节点上,负责启动Pod和容器。kubeadm用于初始化Cluster。kubectl是k8s命令行工具。通过kubectl可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。 …

Maven【入门笔记】

Maven 解决版本依赖的问题 https://www.liaoxuefeng.com/wiki/1252599548343744/1309301146648610 如果没有项目管理工具,在开发项目的时候,我们需要手动管理依赖包,需要管理依赖包的版本、去找到并下载依赖包、还有依赖包所依赖的包 等等。…

【C语言进阶】数据的存储----浮点型篇

🍁 博客主页:江池俊的博客 💫收录专栏:C语言—探索高效编程的基石 💻 其他专栏:数据结构探索 ​💡代码仓库:江池俊的代码仓库 🎪 社区:GeekHub 🍁 如果觉得博…

途游游戏 x 极狐GitLab “通关” DevOps :单元测试从无到优,覆盖率 0→80%

目录 4 个工具孤岛 → 极狐GitLab 全家桶, 被动的「人找进度」 → 高效的「进度找人」 把 Code Review 做扎实 代码质量「向左移」,修复成本「往下降」 从无到「优」 自动执行单元测试,覆盖率 0→80% 你喜欢玩游戏吗? 最近…

IE浏览器,和Edge浏览器

目录 一.IE浏览器(前世今生) 1.什么是IE浏览器? 2.IE浏览器发展历程 3.IE浏览器在早些年为什么这么流行 4.ie浏览器为什么被停用? 5.IE浏览器无法适应如今的Web发展原因 二.Edge(发展) 1.什么是Edge浏览器&…

docker【安装、存储、镜像、仓库、网络、监控】

docker-0110.0.0.51docker-0210.0.0.52docker-0310.0.0.53 【1】docker安装 docker-01 [rootdocker-01 ~]# vim /etc/yum.conf [main] cachedir/var/cache/yum/$basearch/$releasever keepcache1 debuglevel2 logfile/var/log/yum.log exactarch1 obsoletes1 gpgcheck1 plugin…

k8s ingress获取客户端客户端真实IP

背景 在Kubernetes中,获取客户端真实IP地址是一个常见需求。这是因为在负载均衡架构中,原始请求的源IP地址会被替换成负载均衡器的IP地址。 获取客户端真实IP的需求背景包括以下几点: 安全性:基于客户端IP进行访问控制和认证授…

做好“关键基础设施提供商”角色,亚马逊云科技加快生成式AI落地

一场关于生产力的革命已在酝酿之中。全球管理咨询公司麦肯锡在最近的报告《生成式人工智能的经济潜力:下一波生产力浪潮》中指出,生成式AI每年可能为全球经济增加2.6万亿到4.4万亿美元的价值。在几天前的亚马逊云科技纽约峰会中,「生成式AI」…

熟练掌握ChatGPT解决复杂问题——学会提问

目录 引言 一、5W1H分析法 1. 简单的问题(what、where、when、who) 2.复杂的问题(why、how) 2.1 为什么(Why)——原因 2.2 方式 (How)——如何 二、如何提问得到更高质量的答案…

pycharm运行pytest无法实时输出信息

需要去掉控制台输出。根据查询相关信息显示pycharm运行pytest无法实时输出信息,需要去掉pycharm里面的运行模式,点击减号,再点击加号,添加python执行文件即可实时输出信息。 问题描述: 使用pycharm运行代码时&#x…

uniapp 持续获取定位(登录状态下才获取)(不采用定时器)(任意页面都可监听定位改变)

基于上次文章做了优化和改良,保证在登录状态下才获取定位信息 uniapp 小程序实时且持续获取定位信息(全局设置一次)(单页面监听定位改变)(不采用定时器)_uniapp小程序定位_前端小胡兔的博客-CSDN博客本篇文章实现了uniapp 微信小程序实时获取定位信息,小程序打开即可持续获取定…

2023年第四届“华数杯”数学建模思路 - 案例:退火算法

## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上,退火(annealing)现象指物体逐渐降温的物理现象,温度愈低&#…

C++ 数组作为函数参数

数组元素和数组名都可以作为函数的参数以实现函数间数据的传递和共享。 可以用数组元素作为调用函数时的实参,这与使用该类型的一个变量(或对象)作实参是完全相同的。 如果使用数组名作为函数的参数,则实参和形参都应该是数组名…

企业上云实施路线图

企业上云步骤主要分为规划、设计、实施、验证、运维五个阶段。https://articles.e-works.net.cn/cloud/article144684.htm

XXL-JOB定时任务框架(Oracle定制版)

特点 xxl-job是一个轻量级、易扩展的分布式任务调度平台,能够快速开发和简单学习。开放源代码并被多家公司线上产品使用,开箱即用。尽管其确实非常好用,但我在工作中使用的是Oracle数据库,因为xxl-job是针对MySQL设计的&#xff…

group normalization

1、 Theory look for this link for more information, actually only this image can illustrate the group normalization.you can ignore the rest of this artical. 2、 Code check this link for detailed about the formulation and the theory of the group normalzi…