【网络】总览(待更新)
网络Ⅰ
- 零、概述
- 0. 网络协议
- 1. 网络协议分层
- OSI 七层模型
- TCP/IP 五层模型
- 2. 协议报头
- 3. 通信过程
- 一、应用层
- 1.1 🔗HTTP 协议
- 1.2 🔗HTTPS 协议
- 二、传输层
- 2.1 端口号
- 2.2 netstat - - 查询网络状态
- 2.3 pidof - - 查看服务器的进程 id
- 2.4 🔗UDP 协议
- 2.5 🔗TCP 协议
- 三、网络层
查询计算机 ip 地址命令:iifconfig
inet:IP地址
ether:以太网(16 进制)
零、概述
0. 网络协议
协议是一种“约定”。
现有的这些许多不同厂商之间生产的计算机能够相互顺畅的通信,正是因为他们共同接受并遵守着同一套由权威定制的标准。这就是 网络协议。
1. 网络协议分层
OSI 七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
应用程序中:
- 应用层
- 表示层
- 会话层
操作系统中:
- 传输层
- 网络层
设备驱动程序与网络接口中:
- 数据链路层
- 物理层
TCP/IP 五层模型
OSI 七层模型的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。但是, 它既复杂又不实用,所以我们按照 TCP/IP 五层模型来讲解
-
应用层: 负责 应用程序间沟通。
如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。 -
传输层: 负责 两台主机之间的数据传输。
如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机 -
网络层: 负责 地址管理和路由选择。
例如在 IP 协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。 -
数据链路层: 负责 设备之间的 数据帧 的传送和识别。
例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线 LAN 等标准。交换机(Switch)工作在数据链路层。 -
物理层: 负责 光 / 电信号的传递方式。
比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的 wifi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
网络协议的五层模型的位置关系

2. 协议报头
用户使用网络互相交互时,从应用层开始,每层向下传输时都会加上本层协议的报头。传到局域网或以太网后,再由底向上进行解析,后将属于本层的报头解开,剩余的数据传给上层。
-
每一层,都会把上层交付给自己的数据,作为自己的 有效载荷
-
每一层,都有自己的协议报头
-
对应的层,报头+有效载荷 = 自己要发送的报文(这就是 封装)
-
在逻辑上,网络协议,都认为自己在和对方同层协议在通信
-
同层协议都能互相认识对方的报头,即都能做到:
-
- a. 将报头进行有效载荷进行分离
-
- b. 将有效载荷交付给上层的那一个具体协议
3. 通信过程
两个主机通信的本质,是两个主机的 OS 与网络协议栈在通信。
任何人要通信,需要有唯一的一个标识符。对于机器也是如此,对于计算机,每台计算机都配有网卡,网卡在出厂的时候,就在网卡内部写入了网卡的 sn 号,MAC 地址, 全球唯一。
路由器 是连接两个子网下通信的桥梁,实际上也是一个 主机,或者叫 节点。其有三层结构:
- 网络层
- 链路层
- 物理层(此处不做讨论)

网络层的报头:为报文定制最终目标,路上根据该地址进行路径选择(IP 地址)
链路层的报头:根据路径选择的结果,来选择下一跳主机(MAC 地址)。
IP 协议及其以上的协议于任何网络方面是没有差异的,即 IP 地址屏蔽了底层子网机制的差异。
IP协议向下,网络可以具有明显的差异。
数据的封装和分用:
-
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
-
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为 封装 (Encapsulation)。首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
-
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段“将数据交给对应的上层协议处理,称为 分用。
一、应用层
一端发送时构造的数据,在另一端能够正确的进行解析,这种约定,就是 应用层协议 。
程序员自然可以自行定制协议,但有如下非常好的协议设计是可以直接拿来使用的。
1.1 🔗HTTP 协议
👉HTTP 协议介绍
1.2 🔗HTTPS 协议
👉HTTPS 协议介绍
二、传输层
传输层用作提供传输策略,负责数据能够从发送端传输至接收端。
2.1 端口号
端口号(Port)标识了一个主机上进行通信的不同的应用程序。
通过 源 IP 地址、目标 IP 地址、协议号、源端口号、目标端口号 这五个数字可以识别一个通信。
端口号范围划分:
-
0 - 1023:知名端口号。
HTTP、FTP、SSH 等这些广为使用的应用层协议,他们的端口号都是固定的。ssh 服务器,使用 22 端口 ftp 服务器,使用 21 端口 telnet 服务器,使用 23 端口 http 服务器,使用 80 端口 https 服务器,使用 443 端口 -
1024 - 65535:操作系统动态分配的端口号。
客户端程序的端口号,就是由操作系统从这个范围分配的。其中也不乏有数据库或一些特殊的服务在其中,比如: mysql,使用 3306 端口
2.2 netstat - - 查询网络状态
netstat -naup:
-n:拒绝显示别名,能显示数字的全部转化成数字
-a:(all)显示所有选项
-u:(udp)仅显示 udp 相关选项
-p:显示建立相关链接的程序名
netstat -nltp:
-n:拒绝显示别名,能显示数字的全部转化成数字
-l:仅列出有在 Listen (监听) 的服务状态
-t:(tcp)仅显示tcp相关选项
-p:显示建立相关链接的程序名
2.3 pidof - - 查看服务器的进程 id
pidof [进程名]:通过进程名查看进程 id
2.4 🔗UDP 协议
👉UDP 协议介绍
2.5 🔗TCP 协议
👉TCP 协议介绍
TCP 和 UDP 的对比:
TCP 和 UDP 之间的优点和缺点,不能简单,绝对的进行比较。
-
TCP 用于可靠传输的情况,应用于文件传输,重要状态更新等场景。
-
UDP 用于对高速传输和实时性要求较高的通信领域,
例如,早期的 QQ,视频传输...等,另外 UDP 可以用于广播。
归根结底,TCP 和 UDP 都是程序员的工具,什么时机用,具体怎么用,还是要根据具体的需求场景去判定。
三、网络层
相关文章:
【网络】总览(待更新)
网络Ⅰ 零、概述0. 网络协议1. 网络协议分层OSI 七层模型TCP/IP 五层模型 2. 协议报头3. 通信过程 一、应用层1.1 🔗HTTP 协议1.2 🔗HTTPS 协议 二、传输层2.1 端口号2.2 netstat - - 查询网络状态2.3 pidof - - 查看服务器的进程 id2.4 🔗UD…...
策略模式——多重if-else解决方案
概念 大量的 if 判断操作,逻辑比较复杂,并且处理起来相对麻烦。可以采用策略模式来优化分支代码。 策略模式 💤:是一种行为设计模式,它允许你在运行时根据不同情况选择不同的算法或行为。 设计模式 🤌&…...
CTAmap 1.12版本2013年-2023年省市县矢量数据更新
中国行政区划数据CTAmap 1.12版本更新 从2022年起,笔者开始整理长时间序列的中国行政区划数据,通过以国家基础地理信息矢量数据为基础,以高德、民政部、gadm、乡镇界、村界、各省标准地图等区划矢量数据和相关行政区划变更文字资料为参考&am…...
【Linux初阶】多线程3 | 线程同步,生产消费者模型(普通版、BlockingQueue版)
文章目录 ☀️一、线程同步🌻1.条件变量🌻2.同步概念与竞态条件🌻3.条件变量函数🌻4.条件变量使用规范🌻5.代码案例 ☀️二、生产者消费者模型🌻1.为何要使用生产者消费者模型🌻2.生产者消费者模…...
JUC并发编程——四大函数式接口(基于狂神说的学习笔记)
四大函数式接口 函数式接口:只有一个方法的接口 ,例如:Runnable接口 Function 函数型接口,有一个输入参数,有一个输出 源码: /*** Represents a function that accepts one argument and produces a resul…...
【2】c++11新特性(稳定性和兼容性)—>超长整型 long long
c11标准要求long long整型可以在不同的平台上有不同的长度,但是至少64位,long long整型有两种: 有符号long long:–对应类型的数值可以使用LL或者ll后缀 long long num1 123456789LL; long long num2 123456789ll;无符号unsign…...
AI算法检测对无人军用车辆的MitM攻击
南澳大利亚大学和查尔斯特大学的教授开发了一种算法来检测和拦截对无人军事机器人的中间人(MitM)攻击。 MitM 攻击是一种网络攻击,其中两方(在本例中为机器人及其合法控制器)之间的数据流量被拦截,以窃听或…...
运维 | 如何在 Linux 系统中删除软链接 | Linux
运维 | 如何在 Linux 系统中删除软链接 | Linux 介绍 在 Linux 中,符号链接(symbolic link,或者symlink)也称为软链接,是一种特殊类型的文件,用作指向另一个文件的快捷方式。 使用方法 我们可以使用 ln…...
Jmeter接口测试:jmeter导入和导出接口的处理
JMeter测试导入接口 利用Jmeter测试上传文件,首先可根据接口文档或者fiddler抓包分析文件上传的接口;如下图: 以下是我通过fiddler所截取的文件上传的接口 1、填写导入接口的信息 查看文件上传栏下的填写信息: 文件名称&#x…...
一文了解 Go fmt 标准库的常用占位符及其简单使用
今天分享的内容是 Go fmt 标准库的常用占位符及其简单使用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出 占位符 通过占位符&a…...
Linux命令(94)之history
linux命令之history 1.history介绍 linux命令history会记录并显示用户所执行过的所有命令,也可以对其命令进行修改和删除操作。 2.history用法 history [参数] history参数 参数说明-a将当前会话的历史信息追加到历史文件(.bash_history)中-c删除所有条目从而清…...
Prompt 驱动架构设计:探索复杂 AIGC 应用的设计之道?
你是否曾经想过,当你在 Intellij IDEA 中输入一个段代码时,GitHub 是如何给你返回相关的结果的?其实,这背后的秘密就是围绕 Prompt 生成而构建的架构设计。 Prompt 是一个输入的文本段落或短语,用于引导 AI 生成模型执…...
【代码随想录】算法训练营 第三天 第二章 链表 Part 1
目录 链表基础 链表的定义 203. 移除链表元素 题目 思路 代码 直接删除法 虚拟头结点辅助法 707. 设计链表 题目 思路 代码 206. 反转链表 题目 思路 代码 双指针法 递归法 链表基础 链表是一种通过指针串在一起的线性结构,每个节点都由数据域和指…...
winform开发经验(1)——调用Invoke更新UI时程序卡死原因以及解决办法
1、问题代码如下: private void Form1_Load(object sender, EventArgs e){this.Invoke(new Action(()...
JNI 的数据类型以及和Java层之间的数据转换
JNI的数据类型和类型签名 数据类型 JNI的数据类型包含两种:基本类型和引用类型。 基本类型主要有jboolean、jchar、jint等,它们和Java中的数据类型的对应关系如下表所示。 JNI中的引用类型主要有类、对象和数组,它们和Java中的引用类型的对…...
EFLK与logstash过滤
目录 一、Filebeat工作原理: 二、为什么要使用Filebeat: 三、Filebeat和Logstash的区别: 四、logstash 的过滤插件: 五、FilebeatELK 部署: 1. 安装filebeat: 2. 设置 filebeat 的主配置文件࿱…...
docker jenkins
mkdir jenkins_home chown -R 1000:1000 /root/jenkins_home/docker run -d --name myjenkins -v /root/jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restarton-failure jenkins/jenkins:lts-jdk17参考 Official Jenkins Docker imageDocker 搭建 Jenkins …...
单例模式之「双重校验锁」
单例模式之「双重校验锁」 单例模式 单例即单实例,只实例出来一个对象。一般在创建一些管理器类、工具类的时候,需要用到单例模式,比如JDBCUtil 类,我们只需要一个实例即可(多个实例也可以实现功能,但是增…...
2023年中国商业版服务器操作系统市场发展规模分析:未来将保持稳定增长[图]
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等,是企业IT系统的基础架构平台,也是按应用领域划分的三类操作系统之一。同时服务器操作系统也可以安装在个人电脑上。 服务器操作系统分类 …...
BIM如何通过3D开发工具HOOPS实现WEB轻量化?
随着建筑行业的数字化转型和信息建模技术的不断发展,建筑信息模型(BIM)已经成为设计、建造和管理建筑项目的标准。然而,BIM模型通常包含大量的数据,导致在Web上的传输和查看效率低下。为了解决这一挑战,HOO…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
