当前位置: 首页 > news >正文

【网络】总览(待更新)

网络Ⅰ

  • 零、概述
    • 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 的主配置文件&#xff1…...

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…...

Unity 3D基础——通过四元数控制对象旋转

在这个例子中,通过键盘的左右方向来控制场景中的球体 Sphere 的横向运动,而 Cube 立方体则会一直朝着球体旋转。 1.在场景中新建一个 Cube 立方体和一个 Sphere 球体,在 Inspector 视图中设置 Cube 立方体的坐标为(3,0…...

python--短路运算,把0、空字符串和None看成 False,其他数值和非空字符串都看成 True

代码 print(3 and 4 and 5) # 5 print(5 and 6 or 7) # 6 4 > 3 and print(‘hello world’) # 输出hello world 注释: 在逻辑运算中,不一定逻辑运算符的两边都是纯表达式。也可以是数值类型的数据。 Python把0、空字符串和None看成 False&#xff…...

《算法通关村第一关——链表青铜挑战笔记》

《算法通关村第一关——链表青铜挑战笔记》 Java如何构造出链表 概念 如何构造出链表,首先必须了解什么是链表! 单向链表就像一个铁链一样,元素之间相互链接,包含多个节点,每个节点有一个指向后继元素的next指针。…...

【深度学习实验】循环神经网络(四):基于 LSTM 的语言模型训练

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. RNN与梯度裁剪 2. LSTM模型 3. 训练函数 a. train_epoch b. train 4. 文本预测 5. GPU判断函数 6. 训练与测试 7. 代码整合 经验是智慧之父,记忆…...

IOS课程笔记[1-3] 第一个IOS应用

安装开发环境 安装Xcode软件 历史版本查找 https://developer.apple.com/download/all/?qdebug 创建Object-C项目 启动过程 步骤 1.加载Main中定义的storyBoard 2.加载Main控制器 3.加载控制器下的View组件显示 获取控件的两种方式 定义属性连线:property (…...

Flink的基于两阶段提交协议的事务数据汇实现

背景 在flink中可以通过使用事务性数据汇实现精准一次的保证,本文基于Kakfa的事务处理来看一下在Flink 内部如何实现基于两阶段提交协议的事务性数据汇. flink kafka事务性数据汇的实现 1。首先在开始进行快照的时候也就是收到checkpoint通知的时候,在…...

树模型(三)决策树

决策树是什么?决策树(decision tree)是一种基本的分类与回归方法。 长方形代表判断模块 (decision block),椭圆形成代表终止模块(terminating block),表示已经得出结论,可以终止运行。从判断模块引出的左右箭头称作为分支(branch)…...

vueday01——使用属性绑定+ref属性定位获取id

1.属性绑定&#xff08;Attribute 绑定&#xff09; 第一种写法 <div v-bind:id"refValue"> content </div> 第二种写法&#xff08;省略掉v-bind&#xff09; <div :id"refValue"> content </div> 2.代码展示 <template…...

LeetCode 260. 只出现一次的数字 III:异或

【LetMeFly】260.只出现一次的数字 III 力扣题目链接&#xff1a;https://leetcode.cn/problems/single-number-iii/ 给你一个整数数组 nums&#xff0c;其中恰好有两个元素只出现一次&#xff0c;其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返…...

使用PyTorch解决多分类问题:构建、训练和评估深度学习模型

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…...

css做电商网站首页/分销平台

CListCtrl删除所有列&#xff1a; int int_itemcount m_CListCtrl1. GetHeaderCtrl()->GetItemCount ();for(int nIndex0; nIndex<int_itemcount ;nIndex) {m_CListCtrl1.DeleteColumn (0);}转载于:https://www.cnblogs.com/bibo/p/3897843.html...

低价做网站/佛山网站建设模板

写入文件操作 加载文件模块操作 const fs require(fs/promises);实现写文件操作 let msg Hello World, 你好世界!;调用 fs.writeFile() 进行文件写入 // fs.writeFile(file, data[, options], callback) fs.writeFile(./hello.txt, msg, utf8, function(err) {// console.log…...

icp备案查询站长工具/seo的作用

网络与通信 N e t w o r k&C o mmu n i c a t i o n计算机网络技术的发展模式研究文/李祥龙研究、探索、试验以及考证&#xff0c;也伴随着新兴技2计算机网络技术快速发展模式分析计算机技术的发展模式对一个国家、地区和社会的成长有着十分重要的影响&#xff0c;其制度、…...

关于网站建设的题目/线上推广的公司

SAP EWM和AGV机器人究竟是如何连接 很多攻城狮都对EWM如何与AGV对接的问题感兴趣&#xff0c;那么本文就来探讨一下如何让EWM和AGV做朋友吧。 先举个栗子&#xff0c;某天你和心中的女神约饭&#xff0c;你打开点评软件找到了合适的餐馆&#xff0c;然后打开导航软件&#xff…...

8x8x域名解析ip地址查询 1080p/北京seo做排名

输入n个整数&#xff0c;找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字&#xff0c;则最小的4个数字是1,2,3,4,。 基本思路&#xff1a;建立一个包含K个元素的大顶堆。 注&#xff1a;python中貌似只能直接建小顶堆。 # -*- coding:utf-8 -*- class Solution:def …...

怎样做网站的源代码/百度一下app下载安装

什么是DOM&#xff1f; DOM是W3C&#xff08;万维网联盟&#xff09;的标准&#xff0c;是Document Object Model&#xff08;文档对象模型&#xff09;的缩写&#xff0c;它定义了访问HTML和XML文档的标准&#xff1a; “W3C文档对象模型&#xff08;DOM&#xff09;是中立于平…...