网络基础---初识网络
前言
作者:小蜗牛向前冲
名言:我可以接受失败,但我不能接受放弃
如果觉的博主的文章还不错的话,还请
点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正
目录
一、局域网/广域网
二、协议
1、网络协议初识
2、OSI七层模型
3、TCP/IP五层模型
三、网络传输基本流程
1、认识报文
2、网络传输基本流程
本期学习目标:对局域网/广域网的概念有基本认识,认识协议是什么,理解OSI七层模型和TCP/IP五层模型,网络传输基本流程
一、局域网/广域网
局域网(LAN)
- 局域网是一种覆盖较小地理范围的网络,通常局限于单个建筑物、办公室、校园或者家庭。
- 在局域网内,设备之间的通信速度很快,通常以千兆位或更高的速度进行通信。
- 典型的局域网技术包括以太网、Wi-Fi、局域网通用串行总线(USB)等。
- 局域网通常由路由器、交换机、集线器等设备组成,用于连接和管理局域网内的设备。
广域网(WAN)
- 广域网覆盖的范围更大,可以是跨越城市、国家甚至是全球的范围。
- 广域网连接不同地理位置的局域网、城市、企业等,使得这些地点之间可以进行远程通信和数据交换。
- 与局域网相比,广域网的通信速度可能较慢,受到距离和中间设备的影响。
- 典型的广域网技术包括互联网、专用线路、光纤、无线电链接等。
- 广域网通常由路由器、调制解调器、光纤转接器等设备组成,用于连接不同地点的网络。
二、协议
1、网络协议初识
什么是协议呢?其实是一种约定。那为什么要这样呢?打一个不恰当的比方,在那个电话费比较贵的年代,小芳和在外面工作的小方约定,打电话铃声响一声表示想对方了写一封信过去了,响二声表示自己将要过去......。那他们为什么要这样做呢?其实本质上来说是了减少通信的花费的成本。
而在网络中,五湖四海的人想交流沟通,而每个人都有自己的方言(自己的网络标准),那对方不理解什么意思啊,所以为了节约通信成本,大家都统一说普通话(这就是协议)。
协议的本质其实是为了尽可能能的减少通信成本。
从网络的发展历史来说,计算机生产厂商有很多; 计算机操作系统, 也有很多; 计算机网络硬件设备, 还是有很多; 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议
这里重点为大家简单的介绍一下:OSI七层模型和TCP/IP五层模型
2、OSI七层模型
OSI(Open Systems Interconnection)七层模型是一种用于理解和描述计算机网络体系结构的标准化框架。它将网络通信的功能划分为七个不同的层次,每个层次负责特定的任务,并与上下层进行通信。
分层名称 | 功能 | 每层功能的概述 | |
7 | 应用层 |
| ![]() |
6 | 表示层 |
| 接收不同形式的信号,文字流,声音等 |
5 | 会话层 |
| 如何建立连接,连接多久 |
4 | 传输层 |
| ![]() |
3 | 网络层 |
| ![]() |
2 | 数据链路层 |
| ![]() |
1 | 物理层 |
| ![]() |
iOs模拟不仅仅复杂,还不是那么好用,于是人们又推出TCP/IP五层模型 。
3、TCP/IP五层模型
物理层(Physical Layer):
- 与OSI模型的物理层相对应,负责定义连接到网络的硬件标准,例如电缆、光纤、网卡等。
- 该层的功能主要是将比特流从一个节点传输到另一个节点,处理硬件设备之间的物理连接。
数据链路层(Data Link Layer):
- 在TCP/IP模型中,数据链路层包含了OSI模型的数据链路层和部分网络层的功能。
- 负责将数据帧从一个物理节点传输到相邻的物理节点,提供了对物理层的访问和链路的管理。
- 典型协议:以太网(Ethernet)。
网络层(Network Layer):
- 与OSI模型的网络层相对应,负责在网络上寻址、路由选择和分组传输。
- 该层的功能包括将数据包从源主机传输到目标主机,并通过路由器进行跨网络的传输。
- 典型协议:Internet Protocol(IP)。
传输层(Transport Layer):
- 传输层在TCP/IP模型中与OSI模型的传输层相对应,负责端到端的通信,提供可靠的数据传输服务。
- 典型协议:Transmission Control Protocol(TCP)、User Datagram Protocol(UDP)。
应用层(Application Layer):
- 与OSI模型的会话层、表示层和应用层相对应,包含了用户接口和网络应用程序。
- 负责提供网络服务和用户应用程序的接口,支持各种应用程序,如Web浏览器、电子邮件客户端等。
- 典型协议:Hypertext Transfer Protocol(HTTP)、Simple Mail Transfer Protocol(SMTP)、File Transfer Protocol(FTP)等。
通过分层,我们就明确了每层的功能,从而更好的制定协议
三、网络传输基本流程
1、认识报文
在计算机网络中,通信的基本单位是报文(Message)。报文是网络中传输的数据单元,它承载了发送方想要传递给接收方的信息。报文的结构和内容根据通信的应用和协议而变化,但通常包含了必要的控制信息和实际的数据。
报文=报头+有效载荷
那我们上面说的TCP/IP模型,每一层都有报文,每层的报文我们又称为协议报文,上面我们说的协议其实就是通过报文来表示的。每一份数据最终在被发送或者在不同的协议层中,都要有自己的报头。
在局域网中,二台主机能够直接进行通信,对于每台机器来说自己的”名字“,, 每一台主机都有网卡,每一张网卡有自己的地址,MAC地址。那他们又是怎么进行网络通信的呢?
下面我们先了解一下这些基础概念:
主机名
- 主机名是给计算机在网络上起的一个名字。这个名字通常用来标识网络上的某个设备,以便于人们记忆和识别。主机名并不是唯一的,可以在网络中有相同主机名的多台机器,但每个主机名应该在其所在的局域网内是唯一的。
网卡
- 每一台主机都有至少一张网卡,用于与网络进行通信。网卡是计算机与网络之间的接口,负责将数据帧从计算机发送到网络上,或者接收从网络上来的数据帧。
MAC地址
- 每张网卡都有一个唯一的MAC地址,这是一个由厂商分配的全球唯一的硬件地址。MAC地址通常是一个48位的十六进制数,用于在局域网中唯一标识一张网卡。在数据链路层(通常是以太网)中,MAC地址被用于确定数据帧的目标和源。
IP
它是一种在网络上为计算机和其他设备分配和标识的地址系统。IP地址是网络上用于标识和定位计算机或其他网络设备的唯一地址。
每个设备(如计算机、路由器、服务器等)连接到互联网时都需要一个IP地址。IP地址分为两个主要类型:
IPv4地址: 是32位二进制数,通常以点分十进制的形式表示,例如,192.168.1.1。IPv4地址空间有限,因此随着互联网的发展,IPv6逐渐被引入来扩展地址空间。
IPv6地址: 是128位二进制数,以冒号分隔的八组十六进制数字表示,例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6提供了更广泛的地址空间,以满足日益增长的互联网连接需求。
2、网络传输基本流程
上面我们认识了报文,报文中就有效载荷其实就是我们要传输的内容,上层在向下层交互的时候,就要加上自己的报头,形成新的协议。
跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
数据在网络中传输的过程如下图:
上面我们提到了封装,解包。
数据包封装和分用
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装 (Encapsulation).
- 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议 字段" 将数据交给对应的上层协议处理称为解包
相关文章:

网络基础---初识网络
前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、局域网…...

【Java】Java类动态替换Class
Java类动态替换Class 通过Java的Class对象,可以实现动态替换Class。 预习几个知识点 getClassLoader Java提供的ClassLoader可用于动态加载的Java类,可以通过多种形式获取ClassLoader。比如通过Class类获取 // 通过Class获取 ClassLoader classLoade…...

【驱动系列】C#获取电脑硬件显卡核心代号信息
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《驱动系列》文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点…...

AutoGen实战应用(二):多代理协作(Multi-Agent Collaboration)
AutoGen是微软推出的一个全新工具,它用来帮助开发者创建基于大语言模型(LLM)的复杂应用程序. AutoGen能让LLM在复杂工作流程启用多个角色代理来共同协作完成人类提出的任务。在我之前的一篇博客: AutoGen实战应用(一):代码生成、执行和调试 中我们通过一…...

c++文件操作 (1) -- 读写文件
目录 为什么使用文件操作 文件输入流和输出流 -- 相对于内存而言 文件操作 1. 文件操作常用类以及头文件 2. 文件输入流(写文件操作) 1. 写文本文件 1)文件操作是使用对象来实现的 2)文件输出 3)打开文件 open函数 ÿ…...

PHP操作Mysql记录数多引发的空白错误
1 错误由来 php操作三张表,一张表有近四十万条记录,另外两张表记录数在三万左右,三张表又关联。应用左连接left join。 $qLStr "select pu.pd_no, pu.common_name, pu.purchase_cost, pu.medication_area, pu.total_dosage, pu.contro…...

transformer和vit学习笔记
以下记录自己对transformer的学习笔记,可能自己看得懂【久了自己也忘了看不懂】,别人看起来有点乱。以后再优化文档~ 小伙伴请直接去看学习资源: Transformer的理解T-1_哔哩哔哩_bilibili 首先,时序处理:一些模型的出…...

人脸识别 FaceNet人脸识别(一种人脸识别与聚类的统一嵌入表示)
人脸识别 FaceNet人脸识别(一种人脸识别与聚类的统一嵌入表示) FaceNet的简介Facenet的实现思路训练部分 FaceNet的简介 Facenet的实现思路 import torch.nn as nndef conv_bn(inp, oup, stride 1):return nn.Sequential(nn.Conv2d(inp, oup, 3, stride…...

Python tkinter (6) Listbox
Python的标准Tk GUI工具包的接口 tkinter系列文章 python tkinter窗口简单实现 Python tkinter (1) —— Label标签 Python tkinter (2) —— Button标签 Python tkinter (3) —— Entry标签 Python tkinter (4) —— Text控件 GUI 目录 Listbox 创建listbox 添加元素…...

优雅的python(二)
🌈个人主页:小田爱学编程 🔥 系列专栏:c语言从基础到进阶 🏆🏆关注博主,随时获取更多关于c语言的优质内容!🏆🏆 😀欢迎来到小田代码世界~ &#x…...

Git安装详细步骤
目录 1、双击安装包,点击NEXT编辑 2、更改安装路径,点击NEXT 3、选择安装组件 4、选择开始菜单页 5、选择Git文件默认的编辑器 6、调整PATH环境 7、选择HTTPS后端传输 8、配置行尾符号转换 9、配置终端模拟器与Git Bash一起使用 10、配置额外…...

首发:2024全球DAO组织发展研究
作者,张群(专注DAO及区块链应用研究,赛联区块链教育首席讲师,工信部赛迪特邀资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问) DAO(去中心化自治组织&am…...

【大数据】详解 Flink 中的 WaterMark
详解 Flink 中的 WaterMark 1.基础概念1.1 流处理1.2 乱序1.3 窗口及其生命周期1.4 Keyed vs Non-Keyed1.5 Flink 中的时间 2.Watermark2.1 案例一2.2 案例二2.3 如何设置最大乱序时间2.4 延迟数据重定向 3.在 DDL 中的定义3.1 事件时间3.2 处理时间 1.基础概念 1.1 流处理 流…...
【数据结构1-2】二叉树
树形结构不仅能表示数据间的指向关系,还能表示出数据的层次关系,而有很明显的递归性质。因此,我们可以利用树的性质解决更多种类的问题。 但是在平常的使用中,我们并不需要使用这么复杂的结构,只需要建立一个包含int r…...

ajax点击搜索返回所需数据
html 中body设置(css设置跟进自身需求) <p idsearch_head>学生信息查询表</p> <div id"div_1"> <div class"search_div"> <div class"search_div_item"> …...

Redis6基础知识梳理~
初识NOSQL: NOSQL是为了解决性能问题而产生的技术,在最初,我们都是使用单体服务器架构,如下所示: 随着用户访问量大幅度提升,同时产生了大量的用户数据,单体服务器架构面对着巨大的压力 NOSQL解…...

在Python中如何使用集合进行元素操作
目录 1. 创建集合 2. 添加或删除元素 3. 集合运算 4. 其他集合操作 总结 在Python中,集合(set)是一种基本的数据结构,用于存储无序且唯一的元素。这意味着集合中的每个元素都是独一无二的,且集合不保持任何元素的…...

2024年阿里云幻兽帕鲁Palworld游戏服务器优惠价格表
自建幻兽帕鲁服务器租用价格表,2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器,配置分为4核16G和4核32G服务器,4核16G配置32.25元/1个月、10M带宽66.30元/1个月、4核32G配置113.24元/1个月,4核32G配置3个月339.72元。ECS云服务…...

Atlassian Confluence Data Center and Server 权限提升漏洞复现(CVE-2023-22515)
0x01 产品简介 Atlassian Confluence是一款由Atlassian开发的企业团队协作和知识管理软件,提供了一个集中化的平台,用于创建、组织和共享团队的文档、知识库、项目计划和协作内容。是面向大型企业和组织的高可用性、可扩展性和高性能版本。 0x02 漏洞概述 Atlassian Confl…...

打开 IOS开发者模式
前言 需要 1、辅助设备:苹果电脑; 2、辅助应用:Xcode; 3、准备工作:苹果手机 使用数据线连接 苹果电脑; 当前系统版本 IOS 17.3 通过Xcode激活 两指同时点击 Xcode 显示选择,Open Develop…...

【C语言刷题系列】交换两个变量的三种方式
文章目录 1.使用临时变量(推荐) 2.相加和相减的方式(值较大时可能丢失数据) 3.按位异或运算 本文所属专栏C语言刷题_倔强的石头106的博客-CSDN博客 两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的…...

架构师之路(十五)计算机网络(网络层协议)
前置知识(了解):计算机基础。 作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 ARP协议 地址解…...

【JSON2WEB】03 go的模板包html/template的使用
Go text/template 是 Go 语言标准库中的一个模板引擎,用于生成文本输出。它使用类似于 HTML 的模板语言,可以将数据和模板结合起来,生成最终的文本输出。 Go html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的…...

3 JS类型 值和变量
计算机对value进行操作。 value有不同的类型。每种语言都有其自身的类型集合。编程语言的类型集是该编程语言的基本特性。 value需要保存一个变量中。 变量的工作机制是变成语言的另一个基本特性。 3.1概述和定义 JS类型分为: 原始类型和对象类型。 原始类型&am…...

【Android】实现简易购物车功能(附源码)
先上结果: 代码: 首先引入图片加载: implementation com.github.bumptech.glide:glide:4.15.1配置权限清单: <!-- 网络权限 --><uses-permission android:name"android.permission.INTERNET"/><uses…...

使用Excel计算--任务完成总工作日时间段
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 计算任务完成时间周期,和计算金钱一样,是一个比较细致严谨的工作。 通常,我们可能以为,完成周期形如: 任务完成周期 任务结束时间 - 任务开始时间 但是…...

.NET高级面试指南专题一【委托和事件】
在C#中,委托(Delegate)和事件(Event)是两个重要的概念,它们通常用于实现事件驱动编程和回调机制。 委托定义: 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个…...

基于springboot+vue的在线教育系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...

54-函数的3种定义,函数的4种调用:函数模式调用,方法模式调用,构造函数模式调用,apply call bind调用
一.函数的3种定义 1.函数的声明定义:具有声明提升 <script>//函数声明定义function fn(){}</script> 2.函数的表达式定义 <script>//匿名式表达式var fn = function(){}//命名式表达式var fn1 = function a(){}</script> 3.构造函数定义 var 变量…...

[C#]winform部署yolov5实例分割模型onnx
【官方框架地址】 https://github.com/ultralytics/yolov5 【算法介绍】 YOLOv5实例分割是目标检测算法的一个变种,主要用于识别和分割图像中的多个物体。它是在YOLOv5的基础上,通过添加一个实例分割模块来实现的。 在实例分割中,算法不仅…...