Python网络编程之软件开发架构、OSI七层协议
软件开发架构
编写代码之前需要遵循的代码层面上的规范(代码运行的流程、环节、步骤)
eg:
ATM三层架构
选课系统三层架构
架构是特定约束下决策的结果,并且这是一个循环递进的过程
常见架构
C/S 架构
客户端/服务器模式 (Client/Server),由两个部分构成:
- 客户端 client
- 服务器 server
服务器组件同时为多个客户端组件提供服务。客户端向服务器发启服务请求,服务器将相应服务信息回应给客户端。此外,服务器持续监听来自客户端的请求。
优点
- 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器
- 客户端响应速度快
- 下载对应的客户端,可以在客户端软件内高度定制相关服务
缺点
- 客户端需要安装专用的客户端软件
- 对客户端的操作系统一般也会有限制
- 高昂的维护成本且投资大
b/s架构
浏览器/服务器模式(Browser/Server),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
b/s架构本质也是c/s架构:
通过浏览器来充当各个服务端的客户端 用于想要体验服务不需要下载指定的客户端B/S架构是从C/S架构改进而来,可以说是三层C/S架构
优点
- 总体拥有成本低、维护方便、 分布性强、开发简单
- 可以不用安装任何专门的软件就能实现在任何地方进行操作
- 客户端零维护,系统的扩展非常容易
- 只要有一台能上网的电脑就能使用
缺点
- 通信开销大、系统和数据的安全性较难保障
- 定制花里胡哨的功能较为繁琐
架构发展趋势
发展趋势:统一接口原则
eg;
微信
里面有很多小程序 可以直接体验其他服务
支付宝
里面有恁多小程序 可以直接体验其他服务
""" 后续就是cs和bs交错使用 避免各自的劣势!!!
ps:可以方便用户使用 更重要的是可以给自己圈用户便于后期收割"""
网络编程
概念
基于互联网编写代码,程序可以实现远程数据交互
目的
为了解决计算机之间远程数据交互
意义
学习网络编程,为我们之后写c/s架构软件做准备
起源
任何先进的技术一般都来源于军事
要求
-
早期的电话
必须要有电话线
-
大屁股电脑
必须要有网线
-
笔记本电脑
必须要有网卡
计算机之间要想实现远程数据交互 首要条件就是要有物理连接介质
OSI七层协议
规定了计算机涉及到数据远程交互的时候,必须要经过的部件/流程,即所有的计算机在涉及到网络传输这块必须要有相同的零部件
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理连接层
ps:记忆小技巧>>>: 应\表\会\传\网\数\物
'''针对上述的七层 我们也可以合并成五层'''
1.应用层
2.传输层
3.网络层
4.数据链路层
5.物理连接层
'''也可以优化成四层'''
1.应用层
2.传输层
3.网络层
4.网络接口层
ps:每一层都有各自的功能和规范

物理层
- 建立、维护、断开物理连接。
- 保证物理连接介质的条件,传递电信号(主要研究插网线情况)
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
数据链路层
- 建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
- 将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
- 规定了电信号的分组方式
- 规定了每台计算机都必须有一块网卡
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
网卡上必须有一串记录:电脑的以太网地址(身份证号) mac地址
以太网地址\mac地址:由12位16进制数组成的
前6位:产商编号
后6位:生产流水线号
ps:既然mac地址相当于电脑的身份证号 也就意味着可以根据该地址查找计算机(可以基于mac地址实现数据交互)
网络层
进行逻辑地址寻址,实现不同网络之间的路径选择。
IP协议
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP等。
IP地址
IPV4:
点分十进制
最小: 0.0.0.0
最大: 255.255.255.255
# ps:随着社会的发展 同时能够上网的人越来越多 上述地址不够分
IPV6:
能够给地球上每一粒沙分一个IP地址
IP特征
每个IP都自带定位
ps: ip代理
传输层
定义传输数据的协议端口号,以及流控和差错校验。
协议有:TCP UDP等,数据包一旦离开网卡即进入网络传输层。
PORT协议
端口协议:规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
端口号特征
- 端口号范围:0-65535
- 端口号是动态分配的
- 同一时间同一台计算机端口号不能冲突
-
- 0-1024:一般是操作系统内部需要使用的
- 1024-8000:一般是常见的软件已经使用了
- 8000+:我们平时写代码可以使用8000之后的端口号
IP+PORT
IP:用于标识全世界任意一台接入互联网的计算机
PORT:用于标识一台计算机上的某个应用程序
IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
- 网址(URL):统一资源定位符
- url的本质:其实就是IP+PORT(ip:port)
www.baidu.com
网络相关名词
-
交换机
能够让接入交换机的多台计算机实现彼此互联
-
以太网通信(mac通信)
原理:
有了交换机之后 根据电脑的mac地址就可以实现数据交互
广播:先在交换机中吼 所有接入交换机的设备都能收到 单播:只有被查找设备 才会回复相应信息缺陷
- mac地址通信仅限于局域网
- 接入交换机的设备过多,可能会造成广播风暴
-
局域网
有某个固定区域组成的网络
广域网可以看成是更大区域的局域网
-
路由器
将多个局域网连接到一起的设备

浙公网安备 33010602011771号