【计算机网络笔记一】网络体系结构
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原生修改定位 第七章 安卓…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...
