网络编程学习笔记
今日内容概要
- 软件开发架构
- 网络编程简介
- OSI七层协议
- 网络相关设施
今日内容详细
软件开发架构
什么是软件开发架构
编写项目之前需要遵循的代码层面上的规范(代码运行的流程 环节 步骤)
软件开发架构
1.c/s架构
C:client(客户端) 客户端相当于是需要体验服务的客人
S:server(服务端) 服务端相当于是对外提供服务的店面
我们手机上的APP就是各大厂家生产的客户端,我们打开APP使用里面的功能,就相当于基于网络去到厂家的店里让服务员提供服务
服务端应该具备什么特征
1.24小时不间断提供服务
2.固定的地址(不能经常改变)
3.可以同一时间服务很多人
2.b/s架构
B:browser(浏览器)
S:server(服务器)
b/s架构本质也是c/s架构
通过浏览器来充当各个服务端的客户端,用户无需对应下载相应客户端,直接在浏览器上使用功能体验服务
两种架构的优缺点
c/s架构 | b/s架构 | |
---|---|---|
优点 | 下载对应的客户端 可以在客户端软件内高度定制相关服务 | 不需要下载客户端 能够快速体验服务 |
缺点 | 使用必须先下载客户端 比较繁琐 | 定制花里胡哨的功能较为繁琐 |
架构发展趋势
发展趋势:统一接口原则
微信
里面有很多小程序 可以直接体验其他服务
支付宝
里面有恁多小程序 可以直接体验其他服务
后续就是cs和bs交错使用 避免各自的劣势!!!
ps:可以方便用户使用 更重要的是可以给自己圈用户便于后期收割
网络编程简介
1.如何理解网络编程
基于互联网编写代码 程序可以实现远程数据交互
2.网络编程的目的
网络编程的本质是为了解决计算机之间远程数据交互
3.网络编程的意义
学习完网络编程之后 我们就可以编写一个c/s架构的软件
4.网络编程的起源
任何先进的技术一般都来源于军事
"""
网络编程由美国军方开发
没有网络编程的时候 如果两台计算机之间要交互数据
只能使用硬盘拷贝 如果一个人在中国一个人在非洲
那就拿着硬盘坐飞机
"""
5.网络编程的要求
1.早期的电话
必须要有电话线
2.大屁股电脑
必须要有网线
3.笔记本电脑
必须要有网卡
"""
计算机之间要想实现远程数据交互 首要条件就是要有物理连接介质
"""
OSI七层协议
"""
规定了计算机涉及到数据远程交互的时候 必须要经过的部件/流程
所有的计算机在涉及到网络传输这块必须要有相同的零部件
"""
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
ps:记忆小技巧>>>: 应\表\会\传\网\数\物
'''针对上述的七层 我们也可以合并成五层'''
应用层
传输层
网络层
数据链路层
物理连接层
'''也可以优化成四层'''
应用层
传输层
网络层
网络接口层
ps:每一层都有各自的功能和规范
网络相关名词
1.交换机
能够让接入交换机的多台计算机实现彼此互联
2.以太网通信(mac通信)
原理
有了交换机之后 根据电脑的mac地址就可以实现数据交互
广播:先在交换机中吼 所有接入交换机的设备都能收到
单播:只有被查找设备 才会回复相应信息
缺陷
1.mac地址通信仅限于局域网
2.接入交换机的设备过多 可能会造成广播风暴
广播风暴:类似于所有人同时吼!!!
3.局域网
有某个固定区域组成的网络
广域网可以看成是更大区域的局域网
4.路由器
将多个局域网连接到一起的设备
OSI七层协议各层特征
物理连接层
保证物理连接介质的条件 传递电信号(主要研究插网线情况)
数据链路层
1.规定了电信号的分组方式
2.规定了每台计算机都必须有一块网卡
网卡上必须有一串记录>>>:电脑的以太网地址(身份证号) mac地址
以太网地址/mac地址:由12位16进制数组成的
前6位:产商编号
后6位:生产流水线号
ps:既然mac地址相当于电脑的身份证号 也就意味着可以根据该地址查找计算机(可以基于mac地址实现数据交互)
网络层: IP协议
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
IP地址目前有两个版本。
IPV4:点分十进制
最小:0.0.0.0
最大:255.255.255.255
随着社会的进步 计算机的使用越来越普遍 IPV4地址不够用
IPV6:十六进制
IPV6能够给地球上每一粒沙分一个IP地址
eg:fe80::4896:8940:85d6:70dc%18/64
IP特征
IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机
每个IP都自带定位
ps:ip代理!!!
传输层: PORT协议
端口协议:规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
端口号特征
1.端口号范围:0-65535
2.端口号是动态分配的
3.同一时间同一台计算机端口号不能冲突
4.0-1024:一般是操作系统内部需要使用的
1024-8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号
"""
IP+PORT
IP:用于标识全世界任意一台接入互联网的计算机
PORT:用于标识一台计算机上的某个应用程序
IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
"""
1.什么是网址
网址(URL):统一资源定位符
2.url的本质
其实就是IP+PORT(ip:port)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了