【计算机网络笔记一】网络体系结构
IP和路由器概念
两台主机如何通信呢?
首先,主机的每个网卡都有一个全球唯一地址,MAC 地址,如 00:10:5A:70:33:61
查看 MAC 地址:
- windows:
ipconfig
/all
- linux:
ifconfig
或者ip addr
同一个网络的多台计算机通过交换机互连:
其次使用 IP 来标识网络和主机,一个 IP 包含两部分信息:
-
① 网络号 — IP 所属网络
-
② 主机号 — 一个网络中的主机
总结:
- 每个网卡都有一个全球唯一的 MAC 地址
- 同一个网络中的不同主机之间通过交换机来通信,交换机根据MAC地址和接口号来区分
- 不同网络的主机之间通过路由器来进行通信,路由器通过网关地址和接口号来区分
- ISP 互联网服务提供商(如中国电信中国移动)从互联网管理机构申请很多成块的 IP 地址,用户上网是跟 ISP 对接
网络分层
七层、四层还是五层网络模型呢?
为了使不同体系结构的计算机网络都能互连,国际化标准化组织于 1977 年成立了专门机构研究该问题,他们提出了一个试图使各种计算机,在世界范围内互连成网的标准框架,也就是“开放系统互连参考模型”,简称 OSI。
OSI 七层体系概念很清楚,理论也比较完整,但它既复杂又不实用,所以我们基本不使用 OSI 体系结构,我们而是使用应用更为广泛的 TCP/IP 体系结构。
TCP/IP 四层体系结构
OSI 的七层协议体系结构是法律上的国际标准,而 TCP/IP 四层协议模型是事实上的国际标准。为了更加清楚的学习 TCP/IP 四层体系结构,我们还是把网络接口层分成数据链路层和物理层。
在 TCP/IP 协议中的网际层其实就是 OSI 中的网络层,之所以使用网际层这个名字,是为了强调这一层是解决不同网络的互连问题。
总结:
分层执行流程
分层传输的整个流程有点像寄快件 - 收快递的过程,从上往下其实就是一层一层打包的过程,从下往上其实就是一层一层拆包的过程。
下面是分层执行流程详图:
总结:
-
应用层:对用户传输的原始数据添加HTTP报文段,使之符合http协议,能在应用层之间进行相互解析
-
传输层:对应用层的http报文添加一个TCP首部,使之成为一个TCP报文段,TCP首部包含了源端口号和目标端口号,以及序号、确认号和标志位等,TCP首部的作用是:区分应用进程,实现可靠传输。
-
网络层:对传输层的TCP报文添加一个IP首部,使之成为一个IP数据报,IP首部包含了源IP地址和目标IP地址,以及版本号和协议等,IP首部的作用:使IP数据报可以在互联网上传输,也就是可以被路由器转发。
-
数据链路层:对网络层的IP数据报添加一个首部和一个尾部,使之成为一个帧,首部中包含了源MAC地址和目标MAC地址等,首部的作用:使帧可以在一段链路上传输。
-
物理层:对数据链路层的帧添加一个前导码,将对应的01二进制数据转换成对应的电信号进行传输。
-
在源主机上按分层的顺序从上到下添加首部进行打包,在目标主机上同样按分层的顺序从下到上进行拆包解析。
-
路由器的每一个接口相当于一个网卡,都需要解决网络层、数据链路层、物理层三个子问题,数据在路由器中传输时,也是按照上面分层结构中的包装和解析流程进行的。
网络协议概念
什么是协议?
通信规则一般包括三要素:
- 语法,即传输数据或者控制信息的格式或者结构;
- 语义,即需要发出何种请求,做出何种响应和动作;
- 时序,即发出请求,做出响应和动作的先后顺序。
什么是网络协议的实体?
网络协议的实体是通信对象,一个实体(entity) 表示任何可发送或接收信息的硬件或软件模块。
什么是服务?
协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的,在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
电路交换 VS 分组交换:
电路交换的优缺点
优点:
- ① 实时性强
- ② 有序传输
- ③ 控制简单
缺点:
- ① 建立连接时间长
- ② 线路独占,使用效率低
- ③ 灵活性差
分组交换的优缺点
优点:
- ① 无需建立连接
- ② 线路利用率高
- ③ 减少重发数据量
缺点:
- ① 转发时延
- ② 传输额外信息
- ③ 相对复杂
网络分类
按照网络覆盖范围划分网络:
-
广域网(Wide Area Network, WAN):覆盖范围通常为几十公里到几千公里,可以覆盖一个国家、地区,甚至横跨几个洲。
广域网是因特网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。连接广域网各结点交换机的链路一般都是高速链路,具有较大的通信容量
-
城域网 (Metropolitan Area Network, MAN) :作用范围一般是一个城市,可跨越几个街区甚至整个的城市,其作用距离约为5~50km。
城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前,很多城域网采用的是以太网技术,因此城域网有时也常纳入局域网的范围进行讨论。
-
局域网 (Local Area Network,LAN):一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10Mb/s 以上),但地理上则局限在较小的范围(如1km左右)。
在局域网发展的初期,一个学校或工厂往往只拥有一个局域网,但现在局域网已非常广泛地使用,一个学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。
-
个人区域网(Personal Area Network,PAN) :在个人工作的地方把属于个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无线个人区域网 WPAN(Wireless PAN),其范围大约在10m左右,比如手机热点 。
按拓扑结构分类网络:
- 总线型网络
- 星型网络
- 环型网络
- 网状型网络
这四种网络结构进行组合可以构成更加复杂的网络结构。
相关文章:

【计算机网络笔记一】网络体系结构
IP和路由器概念 两台主机如何通信呢? 首先,主机的每个网卡都有一个全球唯一地址,MAC 地址,如 00:10:5A:70:33:61 查看 MAC 地址: windows: ipconfig / alllinux:ifconfig 或者 ip addr 同一个网络的多…...

硕士应聘大专老师
招聘信息 当地人社局、学校(官方) 公众号(推荐): 辅导员招聘 厦门人才就业信息平台 高校人才网V 公告出完没多久就要考试面试,提前联系当地院校,问是否招人。 校招南方某些学校会直接去招老师。…...

Gram矩阵
Gram矩阵如何计算 Gram 矩阵是由一组向量的内积构成的矩阵。如果你有一组向量 v 1 , v 2 , … , v n v_1, v_2, \ldots, v_n v1,v2,…,vn,Gram 矩阵 G G G 的元素 G i j G_{ij} Gij 就是向量 v i v_i vi 和向量 v j v_j vj 的内积。数学上&#x…...

【数据结构】七大排序算法详解
目录 ♫什么是排序 ♪排序的概念 ♪排序的稳定性 ♪排序的分类 ♪常见的排序算法 ♫直接插入排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫希尔排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫直接选择排序 ♪基本思想 ♪算法…...

OpenCV之VideoCapture
VideoCaptrue类对视频进行读取操作以及调用摄像头。 头文件: #include <opencv2/video.hpp> 主要函数如下: 构造函数 C: VideoCapture::VideoCapture(); C: VideoCapture::VideoCapture(const string& filename); C: VideoCapture::Video…...

ESP32微控制器与open62541库: 详细指南实现OPC UA通信协议_C语言实例
1. 引言 在现代工业自动化和物联网应用中,通信协议起着至关重要的作用。OPC UA(开放平台通信统一架构)是一个开放的、跨平台的通信协议,被广泛应用于工业4.0和物联网项目中。本文将详细介绍如何在ESP32微控制器上使用C语言和open…...

怎样快速打开github.com
访问这个网站很慢是因为有DNS污染,被一些别有用心的人搞了鬼了, 可以使用火狐浏览器开启火狐浏览器的远程dns解析就可以了.我试了一下好像单独这个办法不一定有用,要结合修改hosts文件方法,双重保障 好像就可以了...

【C#】.Net基础语法二
目录 一、字符串(String) 【1.1】字符串创建和使用 【1.2】字符串其他方法 【1.3】字符串格式化的扩展方法 【1.4】字符串空值和空对象比较 【1.5】字符串中的转移字符 【1.6】大写的String和小写的string 【1.7】StringBuilder类的重要性 二、数组(Array) 【2.1】声…...

C++之this指针总结(二百二十)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

C++——如何正确的使用STL中的vector?
什么是vector? 在STL(标准模板库)中,vector是一种动态数组容器,可根据需要自动增长或缩小。它可以存储任意类型的元素,并且支持快速的随机访问。 vector是表示可变大小数组的序列容器vector采用的是连续的…...

【C语言】模拟实现内存函数
本篇文章目录 相关文章1. 模拟 memcpy 内存拷贝2. 模拟 memmove 内存移动 相关文章 【C语言】数据在内存中是以什么顺序存储的?【C语言】整数在内存中如何存储?又是如何进行计算使用的?【C语言】利用void*进行泛型编程【C语言】4.指针类型部…...

Jenkins学习笔记3
gitgithubjenkins: 架构图: 说明:jenkins知道github有更新了,就pull进行构建build,编译、自动化测试。然后部署到应用服务器。 maven java的项目构建工具。 在开发者电脑上创建空密码密钥对。 [rootgit-developer ~…...

基于单片机火灾报警器仿真设计
一、系统方案 1、本设计采用51单片机作为主控器。 2、DS18B20采集温度值送到液晶1602显示。 3、MQ2采集烟雾值,送到液晶1602显示。 4、按键设置温度报警值,大于报警值,声光报警。 二、硬件设计 原理图如下: 三、单片机软件设计…...

阿里测开面试大全(一)附答案完整版
万字长文,建议收藏 1 什么是POM,为什么要使用它? POM是Page Object Model的简称,它是一种设计思想,而不是框架。大概的意思是,把一个一个页面,当做一个对象,页面的元素和元素之间操…...

STL-常用容器
string容器 string构造函数 string本质:类 string和char*区别: char* 是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。 特点: string类内部封装了很多成员方法 …...

【owt】关闭microk8s 等无关服务
打算部署下owt,发现之前跑了microk8s ,一直运行:操作指令 // 1. 启动 microk8s.start// 2. 关闭 microk8s.stop// 3. kubectl 操作 // --- 查看 cluster microk8s.kubectl cluster-info// --- 查看 nodes microk8s.kubectl get nodes// --- 查看 pods microk8s.kubectl get …...

【面试题】——Spring
1.Spring是什么? Spring是一个开源的Java应用框架,它提供了广泛的基础设施支持,用于构建Java应用程序。极大提高了开发效率。它提供了一种轻量级的编程模型,通过依赖注入(Dependency Injection)和面向切面…...

【算法思想-排序】根据另一个数组次序排序 - 力扣 1122 题
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...

毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计
基于stm32单片机的app视频遥控抽水灭火水泵小车设计 1、项目简介1.1 系统构成1.2 系统功能 2、部分电路设计2.1 L298N电机驱动电路设计2.2 继电器控制电路设计 3、部分代码展示3.1 小车控制代码3.1 水泵控制代码 4 演示视频及代码资料获取 1、项目简介 视频简介中包含资料http…...

编译原生安卓aosp源码,实现硬改以及定位
系列文章目录 第一章 安卓aosp源码编译环境搭建 第二章 手机硬件参数介绍和校验算法 第三章 修改安卓aosp代码更改硬件参数 第四章 编译定制rom并刷机实现硬改(一) 第五章 编译定制rom并刷机实现硬改(二) 第六章 不root不magisk不xposed lsposed frida原生修改定位 第七章 安卓…...

找单身狗。一个数组中只有两个数字出现一次,其他数字出现了两次,编写一个函数找出这两个只出现一次的数字
例:在{1 2 3 4 5 6 1 2 3 4}找出5和6 方法二: 设计思想: 1.分组原理 (1)将所有数字进行异或,相同数字异或为零,所以只会剩5^6,即为异或的结果xor_result (…...

Java数据结构技巧
Java数据结构技巧 1、循环 for-each循环如果不是"[]"的数组类型,则需要提前判断数据结构是否为空,否则有可能会有空指针异常。 2、对于List对象的i到j位进行排序 for(List<String> now_result:result){List<String> sublist …...

easyui disabled 属性设置
1.设置disabled $("#id").attr("disabled",true); 或 $("#id").attr("disabled","随意字符"); easyui写法 $("#id").numberbox("textbox").attr("disabled", true); $("#id")…...

使用容器运行Nginx应用及Docker命令
目录 一、使用容器运行Nginx应用 1.1 使用docker run命令运行Nginx应用 1.1.1 观察下载容器镜像过程 1.1.2 观察容器运行情况 编辑 1.2 访问容器中运行的Nginx服务 1.2.1 确认容器IP地址 1.2.2 容器网络说明 1.2.3 在主机中使用curl命令容器IP地址访问 二、Docker命…...

fastapi 基本介绍+使用
FastAPI是一个基于Python 3.6的现代、快速(高性能)的web框架,它使用Starlette作为其底层Web框架。FastAPI有很好的文档和丰富的功能,包括自动为路由生成API文档、查询参数验证、依赖注入、WebSocket等等。 以下是一个FastAPI的基…...

C语言的结构体的认识
注:类似于①、②……是代码的编写顺序,也是对下方代码的注解 【①】、【②】……是用到了之前的代码 #include <stdio.h> //②定义生日结构体,必须声明在前面不然会报错,c语言是从上到下执行的(这点要注意&#…...

只通过在vimrc文件写东西来实现或安装vim的插件
2023年9月23日,周日上午 有时候觉得用插件管理器来安装插件太麻烦了, 所以我就在想能不能只通过在vimrc文件写东西来实现或安装vim的插件, 不过这样做肯定有很大的局限性,但我会尽量做到最好的效果 不定期更新 把下面这些代码…...

云原生Kubernetes:K8S存储卷
目录 一、理论 1.存储卷 2.emptyDir 存储卷 3.hostPath卷 4.NFS共享存储 5.PVC 和 PV 6.静态创建PV 7.动态创建PV 二、实验 1.emptyDir 存储卷 2.hostPath卷 3.NFS共享存储 4.静态创建PV 5.动态创建PV 三、问题 1.生成pod一直pending 2.shoumount -e未显示共享…...

“五育”并举育人体系构建的实践研究课题实施方案
目录 一、研究背景与意义 二、课题理论依据 三、国内外研究情况与现状 四、研究目标...

小样本目标检测:ECEA: Extensible Co-Existing Attention for Few-Shot Object Detection
论文作者:Zhimeng Xin,Tianxu Wu,Shiming Chen,Yixiong Zou,Ling Shao,Xinge You 作者单位:Huazhong University of Science and Technology; UCAS-Terminus AI Lab 论文链接:http://arxiv.org/abs/2309.08196v1 内容简介: 1&…...