【网络编程】第1回 架构和OSI七层协议
1. 软件开发架构
1.1 什么是软件开发架构
编写项目之前需要遵循的代码层面上的规范(代码运行的流程,环节步骤)
eg: 回想ATM三层架构 选课系统三层架构
1.2 软件开发架构
1.2.1 C/S 架构
- c:client 客户端 s:server 服务端
- 计算机上下载的各个互联网公司的app软件 本质其实是客户端
- 客户端可以看成是即将去消费的客人
- 服务端可以看成事给你提供服务的店
1.2.2 服务端特征
- 24小时不间断提供服务
- 固定的地址(不能经常改变)
- 可以同一时间服务很多人
1.2.3 B/S 架构
- b:broswer 浏览器 s:server 服务器
- b/s架构本质也是c/s架构,通过浏览器来充当各个服务端的客户端,用于想要体验服务不需要下载指定的客户端
1.3 架构优劣势
1.3.1 cs架构
1.优势:下载对应的客户端,可以在客户端软件内高度定制相关服务
2.劣势:使用必须先下载客户端,比较繁琐
1.3.2 bs架构
- 优势:不需要下载客户端,能够快速体验服务
- 劣势:定制花里胡哨的功能较为繁琐
2. 架构发展趋势
统一接口原则,后面就是cs和bs交错使用,避免各自的劣势
ps:可以方便用户使用,更重要的是可以给自己圈用户便于后期收割
3. 网络编程简介
3.1 如何理解网络编程
基于互联网编写代码,程序可以实现远程数据交互
3.2 网络编程的目的
网络编程的本质是为了解决计算机之间远程数据交互
3.3 网络编程的意义
学习完网络编程之后,我们就可以编写一个cs架构的软件
3.4 网络编程的起源
任何先进的技术一般都来源军事
ps:网络编程由美国军方开发,没有网络编程的时候,如果两台计算机之间要交互数据只能使用硬盘拷贝。
3.5 网络编程的要求
1.早期的电话:必须有电话线
2.大屁股电脑:必须要有网线
3.笔记本电脑:必须要有网卡
4.计算机之间要实现远程数据交互,首先条件就是要有物理连接介质
4. OSI七层协议
- 规定了计算机涉及到数据远程交互的时候,必须要经过的部件/流程,所有的计算机在涉及到网络传输这块必须要有相同的零部件
应用层
表示层
会话层
传输层
网络层
数据链路层
物料连接层
ps:记忆小技巧>>>: 应\表\会\传\网\数\物
- 合并成五层
应用层
传输层
网络层
数据链路层
物理连接层
- 优化成四层
应用层
传输层
网络层
网络接口层
5. 各层特征
5.1 数据顺序
- 数据发送出去的时候,是从上往下走
- 数据接受回来的时候,是从下往上走
5.2 物料连接层
保证物理连接介质的条件,传入电信号(主要研究插网线情况)
5.3 数据链路层
- 规定了电信号的分组方式
- 规定每台计算机都必须有一块网卡
- 网卡上必须有一串>>>:电脑的以太网址址(身份证号)mac地址以太网地址\mac地址:由12位16进制数组成的
前6位:产品编号 后6位:生产流水线号
ps:既然mac地址相当于电脑的身份证号,也就意味着可以根据该地址查找计算机(可以基于mac地址实现数据交互)
5.4 网络层
5.4.1. IP协议
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
5.4.2. IP地址
IPV4:点分十进制 最小:0.0.0.0 最大:255.255.255.255
ps:随着社会的发展,同时能够上网的人越来越多,上述地址不够分
5.4.3. IPV6
能够给地球上梅一粒沙分一个IP地址
5.4.4. IP特征
每个IP都自带定位。ps:ip代理
5.5 传输层
5.5.1 PORT协议
端口协议:规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
5.5.2 特征
1.端口号范围:0-65535
2.端口号是动态分配的
3.同一时间同一台计算机端口号不能冲突
4.
0-1024:一般是操作系统内部需要使用的
1024-8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号
5.5.3 IP+PORT
- IP:用于标识全世界任意一台接入互联网的计算机
- PORT:用于标识一台计算机上的某个应用程序
3.IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
5.5.3 网址
- 什么是网址:网址(URL):统一定位符
- url的本质:其实就是IP+PORT(ip:port)
6. 网路相关名词
6.1 交换机
能够让接入交换机的多台计算机实现彼此互联
6.2 以太网通信(mac通信)
6.2.1 原理
- 有了交互机之后,根据电脑的mac地址就可以实现数据交互
- 广播:先在交换机中吼,所以接入交换机的设备都能收到
- 单播:只有被查找设备,才会回复相应信息
6.2.2 缺陷
- mac地址通信仅限于局域网
- 接入交换机的设备过多,可能会造成广播风暴(类似于所以人同时吼)
6.3 局域网
某个固定区域组成的网络,广域网可以看成是更大区域的局域网
6.4 路由器
将多个局域网连接到一起的设备
7.域名解析、DNS服务器
7.1 域名解析
- 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
- 域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
7.2 DNS服务器
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?