首页 > 其他分享 >11月第3次周末总结

11月第3次周末总结

时间:2022-11-20 21:15:09浏览次数:37  
标签:11 总结 socket ack 阻塞 tcp 周末 进程 数据

11月第3次周末总结

软件开发架构

  1. C\S架构
    client客户端
    server服务端

    优点客户端可以高度定制化功能
    缺点:需要下载

  2. B\S架构
    browser客户端
    server服务端
    优点:不需要下载,有浏览器开发提供统一的接口
    缺点:功能固定,不能高度定制化,需要遵守很多规则

架构总结

ATM:三层架构

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

​ 支付宝
​ 微信

使用规划好的接口进行开发

OSI七层协议

  1. 应用层
  2. 表示层
  3. 会化层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层

物理层

主要用于确保计算机之间的物理连接媒介 接收数据是bytes类型,也就是二进制

数据链路层

以太网mac

网络层

ip arp

传输层

ip port tcp udp

tcp

三次握手
客户端                		服务端
SYN-SENT syn=k seq=j			SYN-RECEIVED
ESTABLLISHED	    	  ack=k+1 syn=i seq=m
ack=i+1 seq					ESTABLISHED


四次挥手
客户端				   		服务端
FIN-WAIT  fin ack				CLOASE-WAIT
FIN-WAIT					seq ack
    				 		还有未发送数据
TIME-WAIT				    fin ack LAST-ACK
TIME-WAIT seq ack			CLOSED


tcp可靠的原因不是因为有双向管道而是有反馈机制
tcp在传输时首先会把数据备份一份,发送备份的如果接收失败,会在一定时间重新发送

udp

udp协议没有复杂的连接,只需要指定对方地址就可发送消息,不需要管对方收到了还是没收到消息,反正我发了

应用层

ssh http https

socket编程

socket类似于操作系统,提供了很多简单快捷的接口供我们使用

socket也叫套接字
基于文件AF_UNIX

基于网络AF_INET

半连接池概念

socket对象.listen(5) 3 半连接池

粘包现象

tcp是流水协议,tcp内部算法会把两次连续小数据,合并发送,所有造成了数据黏在一起,

解决方案就是首先发送固定长度数据报,然后接收真实数据,然后再接收真实数据

利用struct模块解决粘包问题

并发编程

单道技术:所有程序排队执行 过程中不能重合

多道技术:利用空闲时间准备其他数据 最大化提升cpu利用率

多道技术详细

​ 切换 计算机遇到IO操作与长时间占用cpu会进行切换

​ 保存状态:cpu每次切换的时候会保存,切换走之前的状态以保证,后续接着保存的状态继续服务

进程

进程与程序的区别

进程:是正在运行的程序

程序:是一堆死代码在硬盘上

进程调度算法

fcfs:先来先服务,对短作业不友好

短作业服务:对长作业不友好

时间片轮转+反馈机制:目前再用机制

将时间均分 然后根据进程时间的长短再分多个等级,等级越靠下表示耗时越长 每次分到的时间越多 但是优先级越低

并行与并发

并行:多个进程同时执行,不需要要有多个cpu参与 单个CPU无法实现

并发:多个进程看上去像同时执行 单个CPU可以实现 多个肯定可以

进程的三状态

就绪态:所有程序在被CPU执行前都会进入就绪态进行等待

运行态:CPU正在执行程序

阻塞态:进程运行过程中出现IO操作 阻塞态无法直接进入运行态,只能先进入就绪态后,在进入运行态

同步与异步

同步:提交任务后原地等待返回结果 期间不做任何事

异步:提交任务后不原地等待 直接去做其他事情

阻塞与非阻塞

阻塞:阻塞态

非阻塞:运行态,就绪态

同步阻塞运行效率最低

异步非阻塞运行效率最高

进程的多种方法

查看进程号

current_process.pid
os.getpid
os.getppid  #获取创建这个进程的PID
终止进程
socket对象.terminate()
判断进程是否存活
socket对象.is_alive()

join方法
socket.join()等待这个进程运行完毕后才向下执行

进程之间的数据是相互隔离的,同一台计算机上的两个进程数据是严格意义上的物理隔离(默认情况下)

IPC机制

消息队列:存储数据的地方 所有人都可存 也可以取

队列:先进先出 堆栈先进后出

生产者消费者模型

生产者:负责产生数据的人

消费者:负责处理数据的人

该模型除了有生产者和消费者还要有消息队列(只要是能够提供数据和保存服务的理论上都可以)

守护进程:守护进程随着守护的进程结束立刻结束

僵尸进程:进程执行完毕后并不会立刻销毁所有的数据 可能会有一些信息短暂保留下来,进程号 进程执行时间 进程所消耗功率,所有的进程都会变成僵尸进程

孤儿进程:子进程正常运行,父进程意外死亡 操作系统针对子进程,会派遣一个程序去管理,我们把它当做,福利院

标签:11,总结,socket,ack,阻塞,tcp,周末,进程,数据
From: https://www.cnblogs.com/clever-cat/p/16909522.html

相关文章

  • [leetcode每日一题]11.20
    ​​799.香槟塔​​我们把玻璃杯摆成金字塔的形状,其中 第一层 有 ​​1​​ 个玻璃杯, 第二层 有 ​​2​​ 个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟......
  • 2022-2023-1 20221401 《计算机基础与程序设计》第十二周学习总结
    2022-2023-120221401《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFA......
  • 11.20.2
    #include<stdio.h>intf(intx);intmain(){ intx; scanf("%d",&x); printf("%d",f(x));     return0;}intf(intx){inti,sum=10; if(x>1){ for(i=......
  • windows server2016安装oracle 11g的图文教程
    Windows Server是微软面向服务器的操作系统,服务器操作系统和客户端操作系统是不一样的,下面这篇文章主要给大家介绍了关于windows server2016安装oracle 11g的相关资料......
  • 11月20周报
    11月20周报软件开发架构#1.软件开发架构的目的 程序员在编写软件的时候应该遵循的架构设计——三层架构#2.软件开发架构的分类 C/S架构C:client(客户端) S:s......
  • 总结6
    周结目录周结软件开发架构网络编程发展史互联网OSI七层协议物理连接层数据链路层以太网协议网络层IP协议传输层端口号的范围、端口号动态分配URl本质DNS域名解析传输层主......
  • 黄金波浪221120
    黄金反弹暂时结束。回调的第一条腿可能走完了,下周初如果不破1747则开始小幅度反弹。阻力17556072下周交易计划也是考虑1772空。1722附近是下周重要支撑!1722可以计划......
  • 考研记录Week26【11.14~11.20】
    一、本周总结:使用时间:总计14h21min,政治8h10min,英语6h11min.完成任务:英语:1.真题复习政治:1.肖秀荣8套卷完成7套卷二、下周规划:数学:1.【高数强化】高数辅导讲义+【线代强化......
  • 22.11.20 ICPC合肥站 打星记录
       A,B,H签到。B题:注意区分相对误差与绝对误差!!小数相对误差小于1e-6,至少要输出十二位!G题优先队列。场上十几分钟就想出来了,表扬自己一波,留个坑位写题解。M题情况......
  • 【2022.11.18】luffy项目部署(11)
    内容详细1课程板块相关表分析及创建2课程板块,数据录入2.1老师表课程表课程分类表章节表课时表3课程列表页(前端)3.1免费课轻课实战课路由配置4......