软件开发架构、构架趋势、OSI七层协议

软件开发架构

规定了程序的请求逻辑、功能分块

C/S架构

Client: 客户端 我们使用计算机下载下来的一个个app本质是个大互联网公司的客户端软件
Server: 服务端 通过这些客户端软件我们就可以体验到各个互联网公司给我们提供的服务
eg:

​ 下载淘宝客户端 打开 体验淘宝服务端提供的购物服务
​ 下载抖音客户端 打开 体验抖音服务端提供的视频服务

ps: 一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为客户端和服务端都在一台计算机上)

客户端:即将要去消费的客人

服务端:给客人提供服务的店

作为服务端必备的多个条件:

  1. 24小时不间断提供服务
  2. 固定的地址
  3. 能够服务多个客人(高并发)
    image

B/S架构

Browser:浏览器

Server:服务器/端

浏览器可以从当所有服务端的客户端

ps:B/S架构本质还是C/S架构

C/S架构

优势:不同公司的客户端由不同的公司独立开发 可以高度定制化客户端功能

劣势:需要下载才能使用

B/S架构
优势:不用下载直接访问

劣势:无法高度定制化 并且需要遵守很多的规则
image

构架总结

​ ATM:三层构架
​ 选课系统:三层架构

​ 本质也属于软件开发架构的范畴

​ 软件设计的大小方向>>>: 统一的接口

​ 微信小程序

​ 支付宝小程序

网络编程前戏

  1. 什么是网络编程

    基于网络编写代码 能够实现数据的远程交互

  2. 学习网络编程的目的

    能够开发CS架构的软件

  3. 网络编程的起源

    最早起源于美国军事领域、想实现计算机之间的数据的交互、最早的时候只能用硬盘拷贝、之后发明了网络编程

  4. 网络编程必备条件

    数据的远程交互

    1. 早期的电话 靠电话线
    2. 早期的大屁股电脑 靠网络
    3. 笔记本电脑、移动电话 靠网卡

    ps: 实现数据的远程交互必备的基础条件是物理连接介质

OSI七层协议简介

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           OSI七层协议规定:规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
    应用层
    表示层
	会话层
	传输层
	网络层
	数据链路层
	物理连接层
ps: 应、表、会、传、网、数、物

  常见的是整合之后五层或者四层
五层:
    应用层
    传输层
    网络层
    数据链路层
    物理连接层
四层:
	应用层
    传输层
    网络层
    网络接口层
'''
接收网络消息 数据由下往上传递
发送网络消息 数据由上往下传递
'''

image

OSI七层协议值之物理连接层

​ 只要用于确保计算机之间的物理连接介质 接收数据(bytes类型、二进制)

OSI七层协议之数据链层

  1. 规定了电信号的分组方式

  2. 以太网协议

    规定了计算机在出厂的时候都必须有一块网卡、网卡上有一串数字

    该数字相当于是计算机的身份证号码是独一无二的

    该数字的特征:12位16进制数据 前6位产商编号 后6位流水线号

    该数字也称为:以太网地址/MAC地址

网络相关专业名词

计算机之间要想要实现数据交互必须要‘连接’到一起
两台计算机通过mac地址插一根网线就可以连接了,但是如果要与更多的计算机交互呢?
为了解决一台计算机连接多台计算机 难道一台计算机插几百根网线吗?
所以出现了交换机:
交换机:

  1. 能够将所有接入交换机的计算机彼此互联起来
  2. 由交换机组成的网络叫局域网(一个区域)

image

广播:

  • 首次查找接入同一个交换机的其他计算机 需要朝交换机里面吼一嗓子
    在交换机里所有的计算机都可以接受到这个信息!
    image

单播:

  • 首次被查找的计算机回应查找它的计算机 并附带自己的mac地址
    比如:只有服务器1听到之后才会回复 诶我在这 我的mac地址(恰个w)传给你 你就不用再吼了!
    image

广播风暴:

  • 接入同一台交换机的多台计算机同时发广播
    大家都在吼!谁都听不见,都晕了!交换机同一时间出现太多广播操作,导致交换机瘫痪

网络层
局域网:可以简单的理解为有单个交换机组成的网络 在局域网内可以直接使用mac地址通信

广域网:可以简单的理解为范围更大的局域网

互联网:由所有的局域网、广域网连接到一起形成的网络

路由器:不同的局域网计算机之间是无法直接实现数据交互的 需要路由器连接
手机的4G 5G 也是连接路由器(基站) 访问别的局域网计算机
image

OSI七层协议之网络层

IP协议:

规定了所有'''接入互联网'''的计算机都必须有一个IP地址 类似于身份证号
mac地址是物理地址可以看成永远无法修改
IP地址是'''动态分配'''的 不同的场所IP是不同的
可以取决于所接的网线,你换跟根网线IP地址就变了。

IP地址特征:

IPV4:点分十进制
	0.0.0.0
  255.255.255.255
IPV6:能够给地球上每一粒沙分一个IP地址
 IP地址可以跨局域网传输

IP地址分为公网IP和私网IP:

公网IP是需要花钱购买的!并且需要实名认证并备案
小网站 非法网站在国外注册备案

arp协议:

处于数据链路层 可以把IP协议转成mac地址 所以说最终两台计算机联系还是要有一个唯一的物理地址

ps: IP地址可以用来标识全世界独一无二的一台计算机

OSI七层协议之传输层

'''PORT协议(端口协议):'''
	一台计算机上面可以运行很多数据交互软件 比如微信、qq、钉钉
	不同的软件 都是从内存中获取数据 为什么不会错乱 比如你微信收到QQ发来的信息!
	是因为端口协议的存在!!!
	规定了某一个应用程序必须有一个固定的号码。
	把内存划分出很多小的区域供使用 一个应用程序就在一个小的内存区域中存取数据。
	用于标识一台计算机上面正在运行的应用程序(端口号类似于手牌号)

'''端口号的范围、端口号动态分配(重要)'''
	# 端口号的范围
	0-65535
	一台计算机最多同时运行 65536 个应用程序(理论上)
	0-1024:系统经常使用的端口号
	1024-8000:常用软件端口号
	我们写项目用 8000 之后的!
	# 动态分配
	1.同一时间同一计算机上面端口号只能给一个应用程序用
	2.端口号是动态分配的
	隐喻:去洗浴中心,端口号是一个箱子,里面装了很多手牌,来了就拿一个手牌,走了手牌要归还。
	# 举例
	软件启动的时候 是可以指定端口号的 没有指定端口号就动态分配
	微信关了再打开,可能分配的就是另外一个端口号
	多QQ号登录 是两个端口 肯定不一样 一样就数据冲突了


'''URL的本质'''
	# URL
	网址的本质是IP和PORT组成的!!!
	1. IP+PORT (重要)
	IP地址:用于标识全世界独一无二的一台接入互联网的计算机
	PORT号:用于表示一台计算机上面的某一个应用程序
	IP+PORT 能够标识全世界独一无二的一台计算机上面的某一应用程序
	访问网址 其实就是访问某一台计算机上的某个应用程序
	我们日常生活使用浏览器访问的各个网址其实就是IP+PORT
	比如:14.215.177.39:80 
	遵循格式:ip:port
	2. 无需指定端口
	很多常见的服务端都不需要指定端口 比如百度!
	只要访问了ip地址 内部会自动映射 不需要指定端口了
	eg:或者服务端只开放了一个80端口

'''DNS域名解析'''
	我们通过IP地址就可以访问网站了!但是为什么网址长这样:
	www.baidu.com # 好记
	14.215.177.39:80 # 难记
	我们之所以不直接使用IP+PORT的原因是太难记 所以发明了域名(网址)
	域名解析:将网址解析成IP+PORT
posted @   小福福  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
  1. 1 原来你也在这儿 温余福
  2. 2 世间美好和你环环扣扣 温余福
  3. 3 随风起舞 温余福
  4. 4 罪恶都市 温余福
随风起舞 - 温余福
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 米果

作曲 : 高橋優

编曲 : 刘胡轶/貢多杰

制作人 : 刘胡轶/吴青峰

配唱制作人 : 刘胡轶

乐器监制 : 刘胡轶

吉他 : 胡晨

贝斯 : 甯子达

弦乐录音棚 : 中国剧院录音棚

录音工程师 : 倪涵文/李游/李杨/邢铜/韩宽/李巍

录音监制 : 倪涵文/李游

混音&母带工作室 : OKmastering studio

混音&母带工程师 : 全相彦

制作协力 : 刘西洋

制作发行 : 智慧大狗 × 天才联盟

出品人 : 张葛

监制 : 崔恕/王明宇

弦乐监制 : 李朋

弦乐 : 国际首席爱乐乐团

鼓(打击乐):祁大为

和音编写&演唱:鱼椒盐

人声&吉他&鼓(打击乐)录音棚:55Tec studio

我曾将青春翻涌成她

我曾将青春翻涌成她

也曾指尖弹出盛夏

心之所动 且就随缘去吧

这一路上走走停停

这一路上走走停停

顺着少年漂流的痕迹

迈出车站的前一刻

竟有些犹豫

不禁笑这近乡情怯

不禁笑这近乡情怯

仍无可避免

而长野的天

依旧那么暖

风吹起了从前

从前初识这世间

从前初识这世间

万般流连

看着天边似在眼前

也甘愿赴汤蹈火去走它一遍

如今走过这世间

如今走过这世间

万般流连

翻过岁月不同侧脸

措不及防闯入你的笑颜

我曾难自拔于世界之大

我曾难自拔于世界之大

也沉溺于其中梦话

不得真假 不做挣扎 不惧笑话

我曾将青春翻涌成她

我曾将青春翻涌成她

也曾指尖弹出盛夏

心之所动 且就随缘去吧

逆着光行走 任风吹雨打

短短的路走走停停

短短的路走走停停

也有了几分的距离

不知抚摸的是故事 还是段心情

也许期待的不过是 与时间为敌

再次看到你

微凉晨光里

笑得很甜蜜

从前初识这世间

从前初识这世间

万般流连

看着天边似在眼前

也甘愿赴汤蹈火去走它一遍

如今走过这世间

如今走过这世间

万般流连

翻过岁月不同侧脸

措不及防闯入你的笑颜

我曾难自拔于世界之大

我曾难自拔于世界之大

也沉溺于其中梦话

不得真假 不做挣扎 不惧笑话

我曾将青春翻涌成她

我曾将青春翻涌成她

也曾指尖弹出盛夏

心之所动 且就随缘去吧

晚风吹起你鬓间的白发

晚风吹起你鬓间的白发

抚平回忆留下的疤

你的眼中 明暗交杂 一笑生花

我仍感叹于世界之大

我仍感叹于世界之大

也沉醉于儿时情话

不剩真假 不做挣扎 无谓笑话

我终将青春还给了她

连同指尖弹出的盛夏

心之所动 就随风去了

以爱之名 你还愿意吗

点击右上角即可分享
微信分享提示