HCIP --OSI七层参考模型回顾、TCP/UDP协议复习

目录

一、OSI

二、重要的三个协议报头格式

名词注解

MTU

封装

解封装

PDU

ARP

DNS

TCP/IP与OSI的区别

三、数据包转发过程

四、获取目标ip地址方式

五、获取目标mac地址方式

六、交换机的工作原理

七、TCP/UDP

TCP(Transmission Control Protocol)

特点:

应用场景:

八、UDP(User Datagram Protocol)

特点:

应用场景:

总结:

九、IPV4地址

特殊地址:

VLSM:

十、静态路由

网络类型:

静态路由的扩展配置

手工汇总

路由黑洞

缺省路由

空接口防环路由

静态浮动路由

负载均衡

十一、重要的三个协议报头格式


一、OSI

应用层 抽象语言-->编码

表示层 编码-->二进制

会话层 提供应用程序的会话地址

上三层为应用数据对数据流量进行加工及处理的阶段

下四层负责对数据的传输

传输层 分段、端口号 TCP/UDP

网络层 internet 协议 -IP IP地址 逻辑(临时)寻址

数据链路层 以太网/PPP/HDLC/FR/ATM... 控制物理层(基本功能) 逻辑链路控制层LLC(校验)+介质访问控制层 MAC:(控制物理硬件)(二层)

物理层 硬件

  • 分段:数据包容量不易过大,否则影响传输效率及共享带宽;分段大小由MTU决定;

  • MTU:最大传输单元,默认1500字节。

  • 端口号: 0-65523 (2的16次方)

其中1-1023 注明端口 用于默认标记固定服务

1024-65535 动态端口 高端口 用于随即对应终端的各种进程

  • UDP: 用户数据报文协议 --- 非面向连接的不可靠传输协议;传输层的基本协议,仅完成传输层的基本工作 ---分段 端口号

  • TCP: 传输控制协议 ---面向连接的可靠传输协议,除了完成传输层的基本工作外,还需要保障传输的可靠性;

    面向连接: 通过三次握手建立端到端的虚链路

    可靠传输: 4种可靠机制 确认、重传、排序、流控(滑动窗口);

    详解 TCP三次握手、四次断开

  • 速率 约等 带宽/80 *85%

  • IPV4报头:标准长度20字节 -- 可扩展到60字

与UDP一样,首部包含了源端口号与目的端口号,它被用于多路复用/分解来自或送到上层应用的数据,另外,同UDP一样,TCP同样有检验和字段。

32比特的序号字段以及32比特的确认号字段: 用来实现可靠数据传输服务。
16比特的接受窗口字段: 用于流量控制。
4比特的首部长度字段: 指示了以32比特的字为单位的TCP首部长度。
由于TCP选项字段的原因,TCP首部的长度是可变的,通常情况下,选项字段为空,所以TCP首部的典型长度为20字节。
可选与变长的选项字段: 用于发送方与接收方协商最大报文长度(MSS)时,或在高速网络环境下用作窗口调节因子时使用。
6比特的标志字段 ACK比特用于指示确认字段中的值是有效的,即该报文段包括一个对已被成功接收报文段的确认。

二、重要的三个协议报头格式

IPV4数据包结构:

IPV4数据包格式:

版本(号): 这4比特规定了数据报的IP协议版本。通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分。不同的IP版本使用不同的数据报格式。
首部长度: 因为IPV4数据报可包含一些可变数量的选项(这些选项包括在IPV4数据报首部中),故需要用这4个比特来确定IP数据报中载荷(例如在这个数据报中被封装的运输层报文段)实际开始的地方。大多数IP数据报不包含选项,所以一般的IP数据报具有20字节的首部。
服务类型: 服务类型(TOS)比特包含在IPV4首部中,以便使不同类型的IP数据报能相互与别开来,例如,将实时数据报(如用于IP电话应用)与非实时流量(如FTP)区分开也许是有用的。提供特定等级的服务是一个由网络管理员为路由器确定和配置的策略问题。
数据报长度: 这是IP数据报的总长度(首部加上数据),以字节计。因为该字段长为16比特,所以IP数据报的理论最大长度为65535字节。然而,数据报很少有超过1500字节的。该长度使得IP数据报能容纳最大长度以太网帧的载荷字段。
标识、标志、片偏移: 这三个字段与所谓的IP分片有关:一个大的IP数据报被分解成几个小的IP数据报,然后这些小的IP数据报被独立地转发到目的地,在这里被重新组装,然后其有效载荷数据向上传递到目的主机的运输层。
生存时间TTL: TTL字段用来确保数据报不会永远(如由于长时间的路由选择环路)在网络中循环。每当一台路由器处理数据报时,该字段的值就会减1,若TTL字段减为0,则该数据报必须丢弃。
协议: 该字段通常仅当一个IP数据报到达其最终目的地时才会有用。该字段值指示了IP数据报的数据部分要交给TCP,而值为17表明数据部分交给了UDP。协议号是将网络层和传输层绑定在一起的粘合剂,而端口号则是将传输层与应用层粘合在一起。
首部校验和: 首部校验和用于帮助路由器检测收到的IP数据报中得比特错误。首部校验和是这样计算的:将首部中的每2个字节当作一个数,用反码算术对这些数求和。
源和目的地址: 当某源生成一个数据报时,它在源IP字段中插入它的IP地址。在目的IP地址字段中插入其最终目的地的地址。通常源主机通过DNS查找来决定目的地址。
选项: 选项字段允许IP首部被扩展。首部选项意味着很少使用。因此决定对每个数据报首部不包含选项字段中的信息,能够节约开销。
数据(有效载荷): IP数据报中的数组字段包含要交付给目的地的传输层报文段(TCP或UDP)

注意到一个IP数据报由总长为20字节的首部(假设无选项)。如果数据报承载一个TCP报文段,则每个(无分片的)数据报共承载了总长40字节的首部(20字节的IP首部加上20字节的TCP首部)以及应用层报文。

UDP数据报结构:

TCP数据报结构:

与UDP一样,首部包含了源端口号与目的端口号,它被用于多路复用/分解来自或送到上层应用的数据,另外,同UDP一样,TCP同样有检验和字段。

  • 32比特的序号字段以及32比特的确认号字段: 用来实现可靠数据传输服务。
  • 16比特的接受窗口字段: 用于流量控制。
  • 4比特的首部长度字段: 指示了以32比特的字为单位的TCP首部长度。

由于TCP选项字段的原因,TCP首部的长度是可变的,通常情况下,选项字段为空,所以TCP首部的典型长度为20字节。

  • 可选与变长的选项字段: 用于发送方与接收方协商最大报文长度(MSS)时,或在高速网络环境下用作窗口调节因子时使用。
  • 6比特的标志字段 ACK比特用于指示确认字段中的值是有效的,即该报文段包括一个对已被成功接收报文段的确认。

三、名词注解

MTU

最大传输单元 传输层对数据分段大小

封装

数据从高层向低层的加工过程,过程中数据封装每层的头部,不断变大

解封装

数据从低层向高层的识别过程,过程中需要读取,删除部分头部,不断变小

PDU

协议数据单元 各层数据在封装完成后,对数据的单位称呼

应用层 --报头

传输层 --段

网络层 --包

数据链路层 --帧

物理层 --比特

ARP

--地址解析协议 通过对端的一种地址来获取对端的另一种地址

AARP : 正向ARP -- 已知同一网段的IP地址,通过广播来获取该IP对应的MAC地址

反向ARP -- 已知对端的MAC地址,获取本地的IP地址

FARP -- 无故ARP 使用AARP 来查询本地的IP地址 -- 用于IP地址的冲突检测

DNS

--域名解析服务,通过域名地址,查询对应的IP地址,主要用于http和https等服务

TCP/IP与OSI的区别

  • 层数不同

  • OSI模型的网络层支持所有的网络层协议,TCP/IP的网络层实际被称为internet层,仅支持IP协议

  • TCP/IP协议栈道支持跨层封装---应用层数据直接封装于3层报头或者2层报头;

封装3层报头:同一广播域内的服务性协议--ARP/OSPF.. 使用的设备均为三层设备

封装2层报头:同意交换网络内的二层设备服务型协议--STP

正常应用程序的封装流量不做跨层处理

因此跨层封装的意义在于更快的完成服务性协议间的沟通计算

跨层封装时,部分层面的功能,必须由其他层面来辅助完成

---4层的分段、端口号(区分进程)

跨层封装到3层报头时,IPV4报头可以对数据进行分片,之后每片内容填充于报头之中,携带到目的地

3层报头中还存在协议号,用于对标后方所封装的协议0-255,6代表TCP/17代表UDP;

其余数字每一个皆对应一个固定的跨层封装协议

2层报头中也有类似的功能来实现分段、进程区分;

主讲以太网:在非跨层封装到2层时,以太网使用第二代数据帧,该帧不具备分片功能,仅存在类型号,可用于区分进程;

故一旦数据被跨层封装到二层时,将启用第一代以太网封装

第一代封装将数据链路层分为了两层 --> LLC逻辑链路控制子层+MAC介质访问控制子层

LLC层负责分片和提供类型号来区分进程,MAC层用于提供MAC,以及控制物理层;

LLC层 --802.2标准 MAC层叫做802.3标准

四、数据包转发过程

源终端设备需要进行数据封装,从高层封装到物理层,过程中基于应用层流量,选择传输层的协议和端口号,基于目标ip地址,目标MAC来封装3层和2层头部

五、获取目标ip地址方式

1、本地已知

2、访问网页基于域名。通过DNS服务器进行解析

3、终端客户软件提前存储服务器IP地址,直接访问服务器,基于服务器中转来与实际目标通讯

六、获取目标mac地址方式

使用ARP请求通过广播的形式来获取同一广播域设备的mac地址;

七、交换机的工作原理

当数据帧进入交换机后,先查看数据中的源mac地址,然后将其与对应的接口记录,之后基于目标mac地址,查询本地的MAC地址表,若表中存在记录,按照记录对应接口单播转出;若没有记录,需要洪范该流量-- 出流量进入接口外,其他所有接口复制转出

终端访问另一设备时,再获取目标ip地址后,关注目标ip地址是否和本地处于同一网段;若在同一网段,使用ARP获取对端MAC地址后,单播通讯。或目标IP地址与源头不在同一网段,将封装目标MAC地址为本地的网关位置;之后数据进入路由器,由路由器将数据基于路由表路由转发到目标地点;

数据在跨网段传输过程中,源、目标ip地址不正常变化,但源、目标MAC地址在每一个广播域中重新编写,用于该广播域内的物理寻址;

八、TCP/UDP

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)都是互联网协议族(Internet Protocol Suite)中的传输层协议,它们负责在网络中的不同设备之间传输数据,但它们的工作方式和提供的服务有很大的不同。

TCP(Transmission Control Protocol)

特点:
  1. 面向连接

    • TCP在数据传输之前需要建立一个连接,这个过程称为“三次握手”。在数据传输完成后,连接会被终止。这种连接建立和终止的过程确保了数据的可靠传输。

  2. 可靠性

    • TCP提供了一种可靠的数据传输方式。它通过确认机制(ACK,Acknowledgment)确保数据包到达接收端。如果某个数据包丢失或损坏,发送端会重传该数据包。

  3. 数据顺序

    • TCP保证数据包按照发送的顺序被接收。如果数据包在传输过程中乱序,TCP会在接收端重新排序。

  4. 流量控制

    • TCP使用滑动窗口机制来控制数据流,防止发送端的数据发送速度过快,导致接收端的缓冲区溢出。

  5. 拥塞控制

    • TCP还包含拥塞控制机制,防止网络中的数据流量过大,造成网络拥塞。

应用场景:
  • Web浏览:HTTP/HTTPS

  • 文件传输:FTP(File Transfer Protocol)

  • 电子邮件:SMTP(Simple Mail Transfer Protocol)

  • 远程访问:SSH(Secure Shell)

UDP(User Datagram Protocol)

特点:
  1. 无连接

    • UDP不需要在数据传输之前建立连接。每个数据报(Datagram)都是独立的,彼此之间没有状态关系。

  2. 不可靠性

    • UDP不保证数据的可靠性。数据包在传输过程中可能会丢失、重复或乱序。UDP不提供确认机制、重传机制或排序机制。

  3. 低延迟

    • 由于UDP不需要建立连接、维护状态或进行复杂的拥塞控制,它的数据传输延迟通常较低,适合实时性要求高的应用。

  4. 轻量级

    • UDP的头部长度较短(8字节),比TCP(20字节)更轻量级,因此在带宽受限的情况下更高效。

应用场景:
  • 实时通信:VoIP(Voice over IP),视频会议

  • 在线游戏:实时多人游戏

  • DNS(Domain Name System):域名解析服务

  • 流媒体:视频和音频流媒体服务

总结:

  • TCP:适合需要可靠数据传输的应用,如Web浏览、文件传输和电子邮件等。

  • UDP:适合对实时性要求高、能容忍一定数据丢失的应用,如视频会议、在线游戏和流媒体等。

选择TCP还是UDP取决于具体的应用需求,如对数据可靠性的要求、延迟敏感性和带宽利用率等。

九、IPV4地址

IPV4地址:32位二进制构成,点分十进制标识

分类:ABCDE

其中ABC为单播地址 -- 唯一即可作为目标ip地址,也可作为源IP地址;

只有单播地址可以配置为各个节点的IP:

D类为组播地址,只能作为目标IP地址;

基于IP地址的第一段即可分类:

A 1-126 B 128-191 C 192-223 D 224-239 E 240-255

特殊地址:

1、在ABC地址中存放私有IP地址与公有IP地址的区分

公有地址:具有全球唯一性,可以在互联网中通讯、且需要付费使用

私有地址:仅具有本地唯一性,不能在互联网中通讯,无需付费使用

故通过私有地址构建的企业网或局域网,访问全部为公有地址的互联网时,必须转换为合法且唯一的互联网公有IP地址;

私有地址: 10.0.0.0/8 172.16.0.0/16-172.31.0.0/16

192.168.0.0/24-192.168.255.0/24

2、 127 环回地址,用于测试TCP/IP协议栈道在设备上是否正常

3、全0 0.0.0.0 1)在DHCP请求IP地址作为源IP,代表没有地址

2)在路由表作为缺省路由,代表所有目标

4、全1 255.255.255.255 受限广播地址,在不明确目标ip地址时,发送广播时成为目标ip地址,受到路由器的限制,不能转出单个广播域

5、主机位全0 192.168.1.0/24 不是一个具体的IP地址,网络号代表一个网段

6、主机位全1 192.168.1.255/24 不是一个具体的IP地址,该网段的直接广播地址

7、169.254.0.0/16 自动私有地址,本地链路地址,终端在通过dhcp行为多次获取IP地址失败后,本地自动生成的一个IP地址,网络位固定,主机位随机;

VLSM:

可变长子网掩码 --- 通过延长子网掩码的长度,起到将一个网络号码,划分为多个可用网段 --- 子网划分

CIDR无类域间路由: 取相同位,去不同位

将多个网络号合成一个网段号码;

CIDR = 子网汇总+超网

子网汇总:汇总后,汇总网段地址的掩码长于或等于主类

超网:汇总后,汇总网段的掩码长度短于主类

十、静态路由

在默认情况下,路由器仅存在直连网段的路由;

直连路由产生的条件:

1、路由器的接口配置了合法的IP地址

2、同时该接口已经开启,且可以通信

所有非直连网段为该路由器的位置网段,获取位置网段的方法:

1、静态路由 -- 管理员手写路由表

2、动态路由 -- 所有路由器运行相同的动态路由协议后,路由器间沟通、协商、计算自动生成路由表

【Huawei】ip route-static 10.1.1.0 24 192.168.1.2

目标网络号 下一跳

下一跳:流量从本地出发后,下一个进入的路由器接口 -- 下一个入口地址 (路由器)

【Huawei】ip route-static 10.1.1.0 24 GigabitEthernet 0/0/1

出接口:流量从本地路由器发出的接口号;

在MA网络中建议使用下一跳写法,在点到点网络中建议使用出接口写法

网络类型:

点到点 -- 在一个网段中,只能存在两个节点

MA -- 多路访问 -- 在一个网段中,存在节点数量不限制

若在MA网络中使用出接口写法,编辑静态路由,为获取精确的下一跳MAC地址,路由器将代理ARP和ICMP重定向

代理ARP:若一台路由器收到了非本接口直连网段地址的ARP请求,将查询本地的路由表,若表中存在到达被请求IP地址的网段的路由,将代理该被请求IP,使用本地的MAC地址进行ARP应答;

ICMP重定向:当路由器发现一个数据包从本地A口进入后,查询完路由表依然从A口再发出,将告知上一跳设备,本地的下一跳地址来优化转发路径。

基于以上的规则总结:在MA网络中使用出接口写法,数据转发过程繁琐浪费资源,故建议下一跳写法;

在点到点网络中若使用下一跳写法:

由于路由器是递归查询路由表的,故下一跳写法生成的路由条目每次查询时,均需要递归到直连路由上,但是出接口写法可以不同地址;因此在点到点网络中,由于其不存在代理ARP/ICMP重定向之类的规则,故建议出接口写法。

静态路由的扩展配置

手工汇总

当路由器访问多个连续子网(可以汇总成一个网段)时,且全部基于相同的下一条路径;

可以将这些目标网络进行汇总计算后,仅编写到达汇总网段的一条路由即可;优化路由表

减少路由条目数量,加快查表速度,降低网络延时;

路由黑洞

汇总的路由网段中包含了网络类实际不存在的网段时,流量将有去无回

造成资源浪费 主动黑洞--地址设计不合理 被动黑洞-- 设备关机断电导致

缺省路由

一条不限定目标,在路由表中0.0.0.0标识的路由,代表所有网段;路由器查表时,在查询完本地所有的直连、静态、动态路由后若依然没有可达路径,才使用该条目。

[Huawei] ip route-static 0.0.0.0 0 12.1.1.2

空接口防环路由

当黑洞路由与缺省路由相遇时,将必然出现环路

通过在黑洞路由器上,编写到达汇总网段的空接口路由,可以防止环路的产生;

[Huawei] ip route-static 1.1.1.0 24 NULL 0

静态浮动路由

默认的手写静态路由优先级为60;直连路由为0;优先级取值范围0-255;

越小越优秀,通过在编写静态路由时,修改优先级,可以实现静态路由备份的效果;

[Huawei] ip route-static 1.1.1.0 24 12.1.1.2 preference 61

负载均衡

当访问同一网段时,若存在多条开销相似路径时,可以让设备将流量拆分后延多条路径同时传输,实现带宽叠加的效果;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网智能技术的深入探讨与案例分析

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程

环境: keil版本为5.38,版本务必高于5.30 STM32F4的pack包版本要高于2.9 软件包下载地址:https://zhuanlan.zhihu.com/p/262507061 一、更改Keil中编译器 更改后编译,会报很多错,先不管。 二、更改头文件依赖 观察…

9.《滑动窗口篇》---①长度最小的子数组(中等)

滑动窗口推导过程 我们不能说一上来就知道这个题目用滑动窗口,然后就使用滑动窗口的方法来做这个题目。 首先我们想到的应该是暴力解法。 接着再优化为滑动窗口 由于数字都是 ≥ 0 的数。因此累加的数越多。和越大。 因此right往后遍历的时候。当发现sum > targe…

Marin说PCB之电源完整性之电源网络的PDN仿真CST---04

小编我最近都要忙疯了,好不容易去韩国出个差,打算不忙的时候去首尔看看韩国的美女们,说错了,是看美景啊。谁料想韩国分公司的SI同事的李相赫同志由于结婚请假了一个多月啊,他倒是挺爽啊,和老婆去度蜜月了&a…

视频融合×室内定位×数字孪生

随着物联网技术的迅猛发展,室内定位与视频融合技术在各行各业中得到了广泛应用。不仅能够提供精确的位置信息,还能通过实时视频监控实现全方位数据的可视化。 与此同时,数字孪生等技术的兴起为智慧城市、智慧工厂等应用提供了强大支持&#…

git push时报错! [rejected] master -> master (fetch first)error: ...

错误描述:在我向远程仓库push代码时,即执行 git push origin master命令时发生的错误。直接上错误截图。 错误截图 错误原因: 在网上查了许多资料,是因为Git仓库中已经有一部分代码,它不允许你直接把你的代码覆盖上去…

概念解读|K8s/容器云/裸金属/云原生...这些都有什么区别?

随着容器技术的日渐成熟,不少企业用户都对应用系统开展了容器化改造。而在容器基础架构层面,很多运维人员都更熟悉虚拟化环境,对“容器圈”的各种概念容易混淆:容器就是 Kubernetes 吗?容器云又是什么?容器…

【Android】线程池的解析

引言 在Android当中根据用途分为主线程与子线程,主线程当中主要处理与界面相关的操作,子线程主要进行耗时操作。除了Thread本身以外,在Android当中还有很多扮演者线程的角色,比如AsyncTask( 底层为线程池,…

本地音乐服务器(三)

6. 删除音乐模块设计 6.1 删除单个音乐 1. 请求响应设计 2. 开始实现 首先在musicmapper新增操作 Music findMusicById(int id);int deleteMusicById(int musicId); 其次新增相对应的.xml代码&#xff1a; <select id"findMusicById" resultType"com.exa…

Spring Boot图书馆管理系统:疫情中的管理利器

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了疫情下图书馆管理系统的开发全过程。通过分析疫情下图书馆管理系统管理的不足&#xff0c;创建了一个计算机管理疫情下图书馆管理系统的方案。文章介绍了疫情下图…

集群聊天服务器(7)数据模块

目录 Mysql数据库代码封装头文件与源文件 Mysql数据库代码封装 业务层代码不要直接写数据库&#xff0c;因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql&#xff0c;想存redis的话&#xff0c;就要改动大量业务代码。解耦合就是改起来很方便。 首先需要安装m…

Linux第93步_Linux内核的LED灯驱动

Linux内核的LED灯驱动采用platfomm框架&#xff0c;因此我们只需要按照要求在“设备树文件”中添加相应的LED节点即可。 1 、通过“linux内核图形化配置界面”令“CONFIG_LEDS_GPIOy” 1)、打开终端&#xff0c;输入“cd linux/atk-mp1/linux/my_linux/linux-5.4.31/回车”&a…

Zmap+python脚本+burp实现自动化Fuzzing测试

声明 学习视频来自 B 站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 ✍&#x1f3fb;作者简介&#xff1a;致…

红外相机和RGB相机外参标定 - 无需标定板方案

1. 动机 在之前的文章中红外相机和RGB相机标定&#xff1a;实现两种模态数据融合_红外相机标定-CSDN博客 &#xff0c;介绍了如何利用标定板实现外参标定&#xff1b;但实测下来发现2个问题&#xff1a; &#xff08;1&#xff09;红外标定板尺寸问题&#xff0c;由于标定板小…

android:taskAffinity 对Activity退出时跳转的影响

android:taskAffinity 对Activity跳转的影响 概述taskAffinity 的工作机制taskAffinity对 Activity 跳转的影响一个实际的开发问题总结参考 概述 在 Android 开发中&#xff0c;任务栈&#xff08;Task&#xff09;是一个核心概念。它决定了应用程序的 Activity 如何相互交互以…

Ubuntu常见命令

关于export LD_LIBRARY_PATHcmake默认地址CMakelists.txt知识扩充/home&#xff1a;挂载新磁盘到 /home 子目录 关于export LD_LIBRARY_PATH 程序运行时默认的依赖库的位置包括lib, /usr/lib ,/usr/local/lib 通过命令export LD_LIBRARY_PATHdesired_path:$LD_LIBRARY_PATH追加…

时间类的实现

在现实生活中&#xff0c;我们常常需要计算某一天的前/后xx天是哪一天&#xff0c;算起来十分麻烦&#xff0c;为此我们不妨写一个程序&#xff0c;来减少我们的思考时间。 1.基本实现过程 为了实现时间类&#xff0c;我们需要将代码写在3个文件中&#xff0c;以增强可读性&a…

php交友源码交友系统源码相亲交友系统源码php社交系统php婚恋源码php社区交友源码vue 仿交友社交语聊技术栈

关于PHP交友、相亲、婚恋、社区交友系统的源码以及Vue仿交友社交语聊技术栈&#xff0c;以下是一些详细信息和建议&#xff1a; 一、PHP交友系统源码 系统架构设计 前端展示层&#xff1a;负责向用户提供直观友好的界面&#xff0c;包括注册登录页面、个人资料页面、匹配页面、…

Java小技艺

使用bat文件启动jar包 平时在工作中运行jar包一般是导出后命令行窗口运行 jar -jar xxx.jar 这个其实是很不方便的。可以在win上编写bat脚本去运行jar包的。 1 编写bat脚本 start jre8/bin/javaw -jar xxxx.jar2 将jre和待执行的jar包存放到一个目录下(和bat文件在同一目录…

蓝桥杯第22场小白入门赛2~5题

这场比赛开打第二题就理解错意思了&#xff0c;还以为只能用3个消除和5个消除其中一种呢&#xff0c;结果就是死活a不过去&#xff0c;第三题根本读不懂题意&#xff0c;这蓝桥杯的题面我只能说出的是一言难尽啊。。第四题写出来一点但是后来知道是错了&#xff0c;不会正解&am…