• 计算机组成

    1. ** **CPU、内存、硬盘、总线
  • 计算机网络

    OSI 七层模型、TCP/IP 五层模型、TCP/IP 四层模型、网络协议、网络连接三次握手四次挥手

  • 计算机系统

linux、windows

计算机组成
image.png

CPU组成部分
ALU:算术逻辑单元
Register:寄存器
PC:计数器
cache:缓存 L1 cache 、L2 cache、L3 cache

《编码 隐匿在计算机软硬件背后的语言》

总线:控制线、地址线、数据线

一个程序的执行,首先吧可执行文件放到内存,找到其实(main)地址,逐步读出指令和数据,进行计算并写回到内存。

进程是静态的概念:程序进入内存,分配对应的资源(内存空间,进程进入内存,同事产生一个主线程。

线程是动态概念:是可执行的计算单元。共享进程空间,不共享计算。

一个ALU同一时间只能执行一个线程。同一段代码可以被多线程执行。

线程的切换

线程切换,保存上下文(存储到缓存)

问题:对于一个程序,设置多少个线程合适?
image.png

三级缓存
image.png

超线程
image.png

计算机网络

https://www.cnblogs.com/maybe2030/p/4781555.html

image.png

OSI标准模型

image.png

TCP/IP 4层模型

image.png

应用层——HTTP协议

image.png

HTTP请求特征

image.png

持久连接和非持久连接

image.png

HTTP报文格式

image.png

TCP协议

image.png

TCP与UDP的区别

image.png

TCP3次握手4次挥手

建立连接3次握手
image.png

为什么是3次握手连接?
image.png

断开连接4次挥手
image.png

为什么是4次挥手
image.png

image.png

image.png
注:seq:”sequance”序列号;ack:”acknowledge”确认号;SYN:”synchronize”请求同步标志;;ACK:”acknowledge”确认标志”;FIN:”Finally”结束标志。
TCP连接建立过程:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。
TCP连接断开过程:假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说”我Client端没有数据要发给你了”,但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,”告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息”。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,”告诉Client端,好了,我这边数据发完了,准备好关闭连接了”。Client端收到FIN报文后,”就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,”就知道可以断开连接了”。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!
为什么要三次挥手?
在只有两次“握手”的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据…问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,“三次握手”很有必要!
为什么要四次挥手?
试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!

TCP流量控制

image.png

TCP拥塞控制

image.png

IP基础

image.png

IP地址分类

image.png

image.png

IP地址CIDR表示

image.png