学习日记-2022-02-21

网络

三次握手

  • 其实三次握手的流程,主要为了解决初始序列号的问题

  • tcp 每次数据发送都需要有应答

第一次

客户端发起连接请求,sync = 1,seq =随机数A

第二次

服务器端回复应答 sync =1 ,ack = A+1 ,并发送自己的序列号,ACK = 1,seq = 随机数B

第三次

客户端应答服务器,ACK = 1,ack = B+1

总结

ack就是用来应答把seq+1的,不止三次握手,后面每次tcp传输,也会这么干

双工,半双工,单工

双工

可以同时c -> s 或者 s -> c

半双工

不可以同时 但也支持 c -> s 或者 s -> c

单工

只可以单向交流

http

header

分为公用header,客户端独有header,服务器端独有header,body的header

cache-control

no-cache

其实也会保存cache到本地,进行对比缓存

no-store

这个是真的不缓存

为什么比 Expires 好

http1.1使用no-cache 代替 Expires,因为Expires使用的是过期时间,是服务器的时间,和本地时间不一样

而cache-control,max-age,表示资源能存活的时长(单位秒),即一个和你说2022.9.9过期。一个和你说还差200天过期

对比缓存

先会拿着ETag 对应资源在服务器的 唯一uuid进行比对,如果不正确则进行新的资源获取,如果正确则

比对下Last-Modified,如果小于Last-Modified,也会更新,否则读取本地

https

对比http多了ssl 层,tsl 是ssl 的升级版,tsl1.0与ssl3.0基本没差别,现在主要是用tsl,但我们习惯称呼ssl

流程

1,客户端先告诉服务器端,自己支持的ssl 版本,压缩方式

2,服务器端下发证书

3,客户端对证书验证,证书里包含摘要,各个层级机构pin信息等,验证方式这边暂略,

验证通过以后,客户端生成一个随机数,并用公钥加密,发送给服务器端,服务器端私钥解密获取这个随机数,后面两端交互,就使用这个随机数进行对称加密

七层 ,四层结构

七层是理想模型,我们主要理解四层

七层

应用层:应用层 (http,ftp) ,表示层(格式化,加密),会话层(建立,维护会话连接)

传输层: tcp,udp

 网络层:ip,icmp

 链路层:链路层(网络层,物理层通信),硬件层(以太网流传输)

传输过程

应用层 -> 给数据

传输层 -> 加上 tcp/udp 头

网络层 -> 加上ip头

binder

机制

跨进程通信

应用层

一个能发起通信的java类

驱动

一个虚拟的物理驱动设备,/dev/binder,通过mmap指向他

为什么要多进程

1,突破内存限制 如 图库

2,隔离风险,crash不影响 

3,长链接稳定性(推送),内存泄漏 如 webview

查看手机给一个进程 虚拟机 分配的内存大小

adb shell getprop dalvik.vm.heapsize

多进程需要注意

application调用多次

你通过ibinder . asInterface获取对象的时候,他会判断,如果是同进程,就直接把你在service里new那个服务器对象给你,不是同进程,

特点

c/s架构,易用性高

一次拷贝,性能仅弱于内存共享

通过app uid控制开放,支持实名,匿名,实名需要在sevicemanager 注册,匿名仅app内部使用,安全性高

大小

传输数据,同步最大,1m-8k,异步 = 同步/2

binder线程池大小最大15

android启动过程

bootloader -> idle (pid = 0,进程管理,一些内存,驱动的初始化) 

                -> init(pid = 1) 第一个用户进程 ,kthread (pid = 2) 管理内核,创建

                -> zygote java进程鼻祖

                -> systemserver

init进程

main方法会走很多次

first_stage_init   -> 1,挂载,创建文件之类的,2,重定向输入输出,3,启动seLinux_setup

seLinux -> android的安全策略,最小原则

second_stage_init -> 初始化属性域,监听进程结束处理僵尸进程,解析init.rc,在执行init.rc里的命令时就会启动zygote

zygote 总结

native

1,初始化安卓运行环境,启动jvm

2,进行jni 注册

3,调用zygoteInit.main方法,进入java

java

1,因为app 是fork zygote,所以先进行预加载

2,开启socket等待fork进程

3,启动 system Server进程

4,循环等待

显示拷贝

zygote fork进程的时候,用的显示拷贝,意思就是开始默认用同一份内存,哪里被修改了,就吧那部分单独拿出开复制一份

zygote 如何fork 其他进程

ams 通过socket连接上zygoteServer
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 一、计算机网络概述 1)基本概念 基本概念 ① 计算机网络就是一种通信网络② 计算机网络 = 通信技术 + 计算机...
    Du1in9阅读 3,507评论 0 18
  • 概述 1 计算机网络的两个重要功能: 连通性、共享连通性:计算机网络使上网的用户都可以交换信息。如远程桌面连接共享...
    dreamer11阅读 581评论 0 0
  • 计算机网络体系结构 OSI七层模型 TCP/IP四层模型 五层模型 七层模型:物理层、数据链路层、网络层、传输层、...
    iKangaroo阅读 546评论 0 0
  • 抱佛脚一时爽,一直抱佛脚一直爽!这篇文章总结常见的计算机网络面试问题~因为是抱佛脚,所以结构上没有什么逻辑...参...
    山幺幺阅读 421评论 0 0
  • 开启本讲之前,我想先问一句:「网络基础对于前端程序员重不重要」?其实答案是毫无疑问的,如果读者仍然对此有怀疑,那可...
    ikonan阅读 535评论 0 0