网络基础一

网络发展

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

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

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

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

协议

概念

“协议”是一种约定。


所以,一台计算机内部本质也是一个小型网络结构。


计算机
体系结构中有网络。
网络中有体系结构。

作用

距离过长进行通信
可能会引入新的通信问题

所有的网络问题:本质上都是传输距离变长了!


尽可能减少通信成本:定制协议!!

分层

理解分层

a. 软件设计方面的优势 -- 低耦合
b. 一般我们的分层依据:功能比较集中,耦合度比较高的模块 -- 一层 -- 高内聚
c. 每一层都要解决特定的问题!

网络要解决的问题

下面的每一层都有自己匹配的协议,每一层协议都解决自己的问题

1. 如何把数据交付给和自己直接相连的下一台主机
2. 要有路径选择的能力
3. 容错纠错能力
4. 解决应用方面的问题

OSI七层模型

7. 应用层
6. 表示层
5. 会话层
4. 传输层
3. 网络层
2. 数据链路层
1. 物理层


TCP/IP五层协议

1. 物理层  
负责光/电信号的传递方式,比如现在以太网通用的网线(双绞线)。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。 网卡
2. 数据链路层
负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测
到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层

3. 网络层
负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规
划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层

4. 传输层
负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机

5. 应用层
负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

1. 协议报头 

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

生活例子:

就比如我们在淘宝上买了个篮球,我们收到快递的时候不只有篮球,还有对应的快递盒子和快递单子。快递单就类似于报头,快递单上内容的格式就相当于快递公司的协议。

b. 协议通常是通过协议报头来进行表达的。

c. 每一份数据最终在被发送或者在不同的协议层中,都要有自己的报头。

2. 局域网

a. 两台局域网的主机能够直接通信
b. 局域网通信的原理

每一台机器都有自己的“名字”,每一台主机都有着网卡,每一张网卡有自己的地址。
MAC地址 --> 表明自己在局域网中的唯一性。


查看linux中的IP地址和MAC地址

 

局域网中的通信原理:根据MAC地址来判断这个消息是不是发给自己的。
报文= 报头+有效载荷

我们学习网络协议需要关注的两个问题

1. 如何判断那里是报头,哪里是有效载荷?
2. 如何判断自己的有效载荷要交给上层的哪一个协议呢?

每一层都必须面对的问题,也都需要解决的问题!
每一层协议的报头中,一定要涵盖上面的信息!
所有协议的共性!

只允许一个主机在任何一个时刻在局域网中发送消息,否则发生碰撞。

局域网:碰撞域

如何看待局域网中的网络资源?

站在系统角度:共享资源、临界资源。

局域网通信时自顶向下封装,自底向上解包。

数据包封装和分用

1. 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。

2. 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
(Encapsulation)。

3. 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。

4. 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理。

网络中的地址管理

认识IP地址

IP协议有两个版本, IPv4和IPv6. 

1. IP地址是在IP协议中, 用来标识网络中不同主机的地址;

2. 对于IPv4来说, IP地址是一个4字节, 32位的整数;

3. 我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

认识MAC地址

1. MAC地址用来识别数据链路层中相连的节点;

2. 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)

3. 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

特点


IP地址:

为我们未来每一个阶段,提供方向目标,方便进行路径选择。


MAC地址:

可行性

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

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

相关文章

2023年6月Web3行业月度发展报告区块链篇 | 陀螺科技会员专享

6月,合规与监管成为本月加密领域的主旋律,在海外,SEC接连起诉币安与Coinbase两大交易平台,并将除BTC、ETH、USD系等的几乎所有加密货币列为证券,引发市场哗然,行情也与之紧密关联,随着做市商缓慢…

基于Echarts2.X的地图数据可视化指南

目录 前言 一、关于Echarts版本 1、为什么用Echarts2.2.7 2、文件目录说明 二、地图数据可视化 1、新建map.html 2、Echarts图表初始化 3、参数设置 三、源码展示分析 1、初始化阶段 2、timelineOption.js模拟数据 总结 前言 在前面的博文(数据会说话-从我国…

C国演义 [第七章]

第七章 最长重复子数组题目理解步骤dp含义递推公式初始化为啥dp数组如此奇怪 遍历顺序 代码 最长公共子序列题目理解步骤dp含义递推公式初始化遍历顺序 代码 总结 最长重复子数组 力扣链接 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子…

初识express/路由/中间件

路由的概念 模块化路由 中间件(要有输入输出) 简化版本 全局生效中间件 局部生效中间件 注意事项 中间件分类 内置中间件,解析请求体/url-encoded 自定义中间件 使用querystring模块解析请求体数据 编写接口 ​​​​​​​

希尔排序(C语言)

希尔排序 一、希尔排序的原理二、动图演示三、代码实现四、实现从小到大排序五、希尔排序的优缺点 一、希尔排序的原理 希尔排序是插入排序的一种更高效的改进版本。 1.将原始待排数据按照设定的增量gap分成多组,每组有n / gap个元素。 2.对这些分组进行插入排序&a…

单表-DQL

注意:这张图还包含了对于的顺序,先分组再排序,再分页,顺序不能乱 基本查询 # 1.基本查询 # 查询全部行 select * from tb_emp; select id, user_name, password, name, gender, image, job, entry_date, create_time, update_ti…

yarn与npm的区别(yarn的安装报错问题)

一、yarn 是什么,yarn 与 npm 的区别是什么? yarn 是一个软件包管理系统,Yarn 和 npm 都是包管理工具,用于管理用 JavaScript 编写的软件包,yarn的出现是为了弥补 npm的一些缺陷。yarn 与 npm 的区别 : 性能…

MongoDB复制集原理

复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据&#xff0…

3.springboot开发篇

SpringBoot开发实用篇 ​ KF-1.热部署 热部署是不用重启项目,项目自动更新 非springboot项目热部署实现原理 ​ 开发非springboot项目时,我们要制作一个web工程并通过tomcat启动,通常需要先安装tomcat服务器到磁盘中,开发的程序…

密码学证明方案寒武纪大爆发——扩容、透明性和隐私的变革潜力

1. 引言 前序博客有: ZKP大爆炸 本文主要参考: StarkWare 2023年6月博客 Cambrian Explosion of Cryptographic Proofs----The transformative potential for scalability, transparency, and privacy2023年3月Eli Ben-Sasson在The 13th BIU Winter …

vmware postgresql大杂烩

Vmware 窗口过界: https://blog.csdn.net/u014139753/article/details/111603882 vmware, ubuntu 安装: https://zhuanlan.zhihu.com/p/141033713 https://blog.csdn.net/weixin_41805734/article/details/120698714 centos安装: https://w…

形式化验证,QED: Quick Error Detection Tests for Effective Post-Silicon Validation(二)

目录 一、Article:文献出处(方便再次搜索) (1)作者 (2)文献题目 (3)文献时间 (4)引用 二、Data:文献数据(总结归纳,方便理解&am…

抖音短视频矩阵系统源码:技术开发与实践

目录 一.短视频账号矩阵管理系统囊括的技术 1.开发必备的开发文档说明: 二.技术文档分享: 1.底层框架系统架构: 2.数据库接口设计 1.技术开发必备的开发文档说明: 1.1系统架构: 抖音SEO排名系统主要由以下几个模…

Spring Boot 属性加载原理解析

基于Spring Boot 3.1.0 系列文章 Spring Boot 源码阅读初始化环境搭建Spring Boot 框架整体启动流程详解Spring Boot 系统初始化器详解Spring Boot 监听器详解Spring Boot banner详解Spring Boot 属性配置解析Spring Boot 属性加载原理解析 在《Spring Boot 框架整体启动流程详…

【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(6月 29 日论文合集)

文章目录 一、分类|识别相关(12篇)1.1 Pseudo-Bag Mixup Augmentation for Multiple Instance Learning Based Whole Slide Image Classification1.2 Improving Primate Sounds Classification using Binary Presorting for Deep Learning1.3 Challenges of Zero-Shot Recognit…

阿里云docker启动xxljob,部署自己的定时任务

本次安装版本xxl-job-admin:2.3.0 一:创建xxl-job数据库的各种表 作者官方地址 下载sql执行 二:docker拉取xxl-job镜像 docker pull xuxueli/xxl-job-admin:2.3.0 三:docker启动xxl-job服务 docker run -e PARAMS"--spring.datasour…

Tensorflow神经网络模型-鲜花种类识别

必应壁纸供图 Tensorflow神经网络模型-鲜花种类识别 数据集:https://download.csdn.net/download/weixin_53742691/87982215 导入相关依赖 import warnings import re from IPython.display import clear_output, display from tkinter import Tk, filedialog fro…

wampServer安装Redis 扩展

第一步:查看php版本信息 使用 phpinfo() 函数查看 PHP 的版本信息(用于选择扩展包) 版本信息:PHP版本为 8.0.26,编译器版本 Visual C 2019,CPU架构 x64 。 第二步:根据第一步信息的版本选择扩…

基于树莓派4B的YOLOv5-Lite目标检测的移植与部署(含训练教程)

前言:本文为手把手教学树莓派4B项目——YOLOv5-Lite目标检测,本次项目采用树莓派4B(Cortex-A72)作为核心 CPU 进行部署。该篇博客算是深度学习理论的初步实战,选择的网络模型为 YOLOv5 模型的变种 YOLOv5-Lite 模型。Y…

【AI底层逻辑】——篇章3(上):数据、信息与知识香农信息论信息熵

目录 引入 一、数据、信息、知识 二、“用信息丈量世界” 1、香农信息三定律 2、一条信息的价值 3、信息的熵 总结 引入 AI是一种处理信息的模型,我们把信息当作一种内容的载体,计算机发明以前很少有人思考它的本质是什么。随着通信技术的发展&a…