目录
- 软件开发架构
- 网络编程前戏
- OSI七层协议简介
- OSI七层协议之物理连接层
- OSI七层协议之数据链路层
- OSI七层协议之网络层
- OSI七层协议之传输层
- 传输层之TCP与UDP协议
- 应用层
- socket模块
- 黏包现象
- 多道技术
- 进程理论
- 进程的并行与并发
- 进程的三状态
- 同步与异步
- 阻塞与非阻塞
- 创建进程的多种方式
- IPC机制
- 生产者消费者模型
- 进程对象的多种方法
- 守护进程
- 僵尸进程与孤儿进程
软件开发架构
C/S架构
客户端:即将要求消费的客人
服务端 :给客人提供服务的店
优势:不同公司的客户端由不同公司独立开发,可以高度定制化客户端功能
劣势:需要下载才能使用
B/S架构
浏览器:充当所有服务端的客户端
优势:不用下载直接访问 劣势:无法高度定制化,并且需要遵守很多规则
网络编程前戏
什么是网络编程:基于网络编写代码,能够实现数据的远程交互
网络编程的目的:能够开发cs架构的软件
OSI七层协议简介
OSI七层协议:规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
应用层、表示层、会话层、传输层、网络层、数据链路层、物理连接层
OSI七层协议之物理连接层
确保计算机之间的物理连接介质,接收数据(bytes类型、二进制)
OSI七层协议之数据链路层
以太网协议:规定计算机出厂必须有一块网卡,网卡有一串数字,也称为MAC地址
OSI七层协议之网络层
IP协议:规定了所有接入互联网的计算机都必须有一个IP地址
OSI七层协议之传输层
PORT协议(端口协议)
用来标识一台计算机上面的某一个应用程序
URL:统一资源定位符(网址),本质由IP和PORT组成的
IP+PORT:能够定位全世界独一无二的一台计算机上面的某个应用程序
传输层之TCP与UDP协议
1 TCP协议
TCP协议称为可靠协议(数据不容易丢失,因为有反馈机制)
三次握手建链接
C:建立通信通道请求syn=n
S:允许建立通信通道ack =n+1,请求建立通信通道syn=k
C:允许建立通信通道ack=K+1
四次挥手端链接
C:建立通信通道请求syn=X
S:确认断开单向通道ack=y;请求断开单向通道syn=z
C:确认断开单向通道ack=z+1
2.UDP协议
数据报协议,不可靠协议
应用层
相当于程序员自己写的应用程序,里面的协议非常的多
常见的有HTTP/HTTPS/FTP
socket模块
类似于操作系统,提供给使用者基于网络进行数据交互,封装了复杂的接口提供简单快捷的接口,介于传输层和应用层之间。
黏包现象
原因:不知道每次的数据到底多大;TCP也称为流式协议:数据像水流一样绵绵不绝没有间隔
终极解决方案:
客户端:
1.制作真实数据的信息字典(数据长度、‘数据简介、数据名称)
2.利用struct模块制作字典的报头
3.发送固定长度的报头(解析出来是字典的长度)
4.发送字典数据
5.发送真实数据
服务端:
1.接收固定长度的字典报头
2.解析出字典的长度并接收
3.通过字典获取到真实数据的各项信息
4.接收真实数据长度
多道技术
单道技术:所有的程序排队执行,过程中不能重合
多道技术:利用空闲时间提前准备其它数据,最大化提升CPU利用率
切换:1.程序有IO操作 2.程序长时间占用CPU
保存状态
进程理论
程序:一堆死代码(还没有被运行起来)
进程:正在运行的程序(被运行起来了)
进程的并行与并发
并行:多个进程同时执行 必须要有多个CPU参与,单个CPU无法实现并行
并发:多个进程看上去像同时执行,单个CPU可以实现,多个CPU肯定也可以
进程的三状态
就绪态:所有的进程在被cpu执行之前都必须进入就绪状态等待
运行态:CPU正在运行
阻塞态:进程运行过程中出现了IO操作 阻塞态无法直接进入运行态,需要先进入就绪态
同步与异步
同步:提交完任务之后原地等待任务的返回结果,期间不做任何事
异步:提交完任务之后不愿等待任务的返回结果,直接去做其它事,有结果自动通知
阻塞与非阻塞
阻塞:阻塞态
非阻塞:就绪态、运行态
综合使用:同步阻塞、同步非阻塞、异步阻塞、异步非阻塞(效率最高)
创建进程的多种方式
什么情况下用到多进程:想让某个函数反复的调用
1.定义的方式直接调用 2.通过类继承的方式使用
IPC机制
IPC:进程间通信
消息队列:存储数据的地方 所有人都可以存 也可以取
生产者消费者模型
生产者:负责产生数据的“人”
消费者:负责处理数据的“人”
进程对象的多种方法
查看进程编号:os.getpid(),os.getppid()
终止进程:terminate()
判断进程是否存活:is_alive()
启动:start
守护进程
守护进程会随着守护的进程(主进程)的结束而结束
僵尸进程与孤儿进程
僵尸进程:进程运行完毕后不会立刻销毁所有的数据,会有一些信息短暂保留下来
孤儿进程:子进程正常运行,父进程以外死亡
标签:总结,协议,七层,第八,阻塞,OSI,进程,数据
From: https://www.cnblogs.com/winter-yu1989/p/16909047.html