TCP-IP详解-卷一-协议
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
TCP-IP详解
慎重这是一本工具书!!!!!!!!!!
这本书和我想象中的不太一样,他不偏向于技术,他更加注重细节,更像是一本工具书,先到这里了,不细看了,有需要再补充
21/4/2 新建 ARP协议、IP协议
21/4/4 补充 DNS协议
第二章 Internet 地址结构
当一台设备连接到全球性的 Internet时,为它们分配地址就必须经过协调,这样就不会重复使用网络中的其他地址。对于专用网络,使用的IP地址必须经过协调,以避免在专用网络中出现类似的重复。成组的IP地址被分配给用户和组织。这些地址的拥有者再将它们分配给设备,这通常根据某些“编号方案”进行。对于全球性的 Internet地址,一个分层结构管理实体帮助用户和服务提供商分配地址。个人用户通常由 Internet服务提供商(ISP)分配地址,通过支付费用来获得地址和执行 ...
计算机网络-自顶向下方法
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
第一章 计算机网络和因特网网络边缘
端系统: 通常把与因特网相连的计算机和其他设备称为端系,因为它们位于因特网的边缘, 故而被称为端系统 ,端系统也称为主机 host , 因为它们容纳(即运行)应用程序,如 Web 浏览器程序、 Web 服务器程序、电子邮件客户程序或电子邮件服务器程序等。
Page: 7
当你理解了端系统中端的意思以后,端到端,点到点的名词就不会搞混了
接入网
这是指将端系统物理连接到其边缘路由器 (edge router) 的网络 边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器
Page: 8
以太网和WIFI接入
在公司和大学校园以及越来越多的家庭环境中,使用局域网 (LAN 将端系统连接到边缘路由器 尽管有许多不同类型的局域网技术,但是以太网到目前为止是公司、大学和家庭网络中最为流行的接入技术
Page: 12
其他接入方式3G , ...
垃圾收集器与内存分配策略
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
如何判断对象已死引用计数算法为对象添加引用计数器,每当有一个地方引用他的时候计数器的值+1,当引用失效的时候计数器的值-1,当任何时刻计数器为0的对象就是不可能再被使用了。此算法效率高,但是无法解决相互引用的问题。
可达性分析算法利用有向图可达性表示对象生死,作为GC Roots的对象有虚拟机栈(本地变量表)中引用的对象,方法区中类静态属性引用的对象,方法区中常量引用的对象,本地方法栈中JNI引用的对象。若不能从根达到的对象,则对象死亡。
引用分类强引用: 类似“Object obj = new Object()”的引用
软引用: 有用但并非必需的对象,在系统将要发生内存溢出异常前,会对这些对象进行第二次回收。
弱引用: 弱引用只能活到下一次垃圾回收之前。
虚引用: 完全不会影响该对象是否被回收,用于在该对象被回收时收到一个系统消息。
生存还是死亡当可达性分析算法中某个对象不可达时 ...
变长整型
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
变长整型大家都知道一般整型int占用32位,我们不管如何储存,他都是4个字节,如果我们有一份数据,里面大部分都是很小的数字(8位即可表示),夹杂了一些32位的大数。这个时候应该如何编码,让他占用空间少一点呢?
变长整型出现了,我们把每个字节看作一个单元,用他的最高位来代表一个拓展信息,信息中储存了什么我们先不要管。那么每个字节的有效储存空间其实是7位。
现在我们已经设计出了一种编码方式,他可以表示所有的7位以内的数据,当然这看起来很傻,第一:有一位被浪费了,第二: 他不能表示超过7位的数据。
让我们现在来利用好这个被浪费的位。如果这一位为1,则代表他将和他后面的一个字节组成一个新的数。如果这一位为0,则代表他就是一个数。
即 0-000 0000 代表000 0000
即 0-000 0001 代表000 0001
即 0-000 0010 代表000 0010
…
即 0-111 111 ...
分布式session
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
分布式session客户端储存通过加密的方式储存在客户端
有安全隐患,cookie大小被限制,对网络传输造成压力
session复制通过广播来异步同步session,还是存在一致性问题
session绑定,会话保持一个客户端每次都被代理到同一个服务器上
redis把session缓存在redis中,在cookie中保留sessionid
《大型分布式网站架构设计与实践》-2.1.3 分布式session如果我们需要非常高的系统可靠性,则可以把session持久化到DB中。但是这会导致吞吐降低。
操作系统导论
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
# 操作系统导论
推荐阅读https://weread.qq.com/web/reader/db8329d071cc7f70db8a479kc81322c012c81e728d9d180
阅读感想操作系统最伟大的地方就是他的抽象,将CPU虚拟化,把一个物理CPU变成了多个虚拟CPU,从而支持多个程序并发运行;通过内存虚拟化,将物理内存抽象为多个巨大的、高速的虚拟内存,让每一个进程都以为自己拥有无限大内存空间。
第4章 进程运行的程序就是进程,操作系统有很多关于进程的API,
·创建(create):操作系统必须包含一些创建新进程的方法。在shell中键入命令或双击应用程序图标时,会调用操作系统来创建新进程,运行指定的程序。
·销毁(destroy):由于存在创建进程的接口,因此系统还提供了一个强制销毁进程的接口。当然,很多进程会在运行完成后自行退出。但是,如果它们不退出,用户可能希望终 ...
操作系统6-页面置换算法
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
页面置换算法 当缺页中断发生的时候,需要做交换,我们需要尽量减少交换的次数。
最优页面置换算法 将等待下一层的访问时间最长的那个页面置换出去,这个算法不可能实现,但是可作为评价其他算法的标准
先进先出页面置换算法 维护一个队列,FIFO即可 性能很差,被调出的页面可能是要经常访问的页面
最近最久未使用算法 LRU 这个算法基于空间局部性 维护一个页面链表,将刚刚使用过的页面作为首节点,那么缺页中断的时候淘汰链表尾部即可
时钟页面置换算法 让页表组织成一个环形链表,把指针指向最老的页面,当发生缺页中断的时候,从老页面开始扫描,对碰到的访问位为0的页表置换出去,如果都是1以后,把他们清0
二次机会法 同时利用修改位和访问位来指导置换,当访问位位0修改位为1的时候,将它保留下来,并把修改位改为0,这里改为0以后还要写回内存。给这个页面第二次机会。
最不常用法 LFU 淘汰掉访问次数最少的那个, ...
计算几何
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
向量点乘向量$(x1,y1) (x2,y2)$的点乘是一个标量$x1\ast x2+y1\ast y2$
叉乘二维空间的叉乘向量$(x1,y1) (x2,y2)$的叉乘的膜是$x1\ast x2-x2\ast y1$,值就是两个向量组成的平行四边形的有向面积。
多边形判断凸多边形做法: 按逆时针顺序枚举每一条边AB,与下一条边BC进行叉乘$AB\ast BC$,凸多边形一定全部为正数。按逆时针枚举,一定都是负数
证明: 顺时针都是<180,逆时针都是>180
判断点P是否在凸多边形内
做法1: 枚举每条边AB,计算$PA\ast PB$,全部同号则在多边形内
做法2: 每条边对应的三角形的有向面积的绝对值的和,与多边行面积进行比较,相等则在凸多边形内。
做法3: 把多边形分割成多个三角形,依次判断是否在这些三角形内
做法4(还可以解决凹多边形): 过点做一条射线,与多 ...
计算机网络
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
七层网络
应用层: 针对应用程序的通信服务,大多数文件传输需要第七层
表示层: 加密数据和定义数据格式(ASCII或者二进制)
会话层: 将断开的数据合并,完成回话,则表示层看到的数据是连续的
传输层: TCP、UDP
网络层: IP
链路层: 在单个链路上传输数据
物理层: 传输介质等东西
五层网络
应用层: HTTP,FTP,SMTP,DNS
传输层: TCP,UDP
网络层: IP,ICMP,ARP,RARP,DHCP
链路层:
物理层:
UDP
无连接
包送达的顺序是任意的,因为包可能选择不同的路径
UDP发包就行了,能不能到看脸,因此不会重传数据
UDP的包会重复, 要是有些不敬业的程序员瞎操作,为了保证数据完整性,每个包都给你发5次,就重复了
无流控制
无拥塞控制
TCP
面向连接,要连接和挂断
可靠的发送,按顺序送达,包丢失重传,包不会重复
接受用缓冲区控制速度
拥塞 ...
PING的时候发生了什么
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
PING我们常常使用ping来测试网络的联通性,但是你知道他是属于哪一次层的吗?其实ping属于网络层,他使用ICMP协议, 他没有使用UDP或者TCP。
ICMP报文是被IP报文包裹的。
8位Type
ICMP报文类型
code
checksum
校验和
ping的流程准备一个ICMP包,封装进IP包,发送到目的地,
目的地主机解析收到IP包,发现这是一个ICMP,拆包,得到ICMP包,处理,最后发送ICMP包回复ICMP包。
参考解析ping原理及实现