OSI七层概念模型
第1层 物理层 (网卡):bit 流传输。主要定义了物理设备的标准,如:网线类型、光纤的接口、各种介质的传输速率。
第2层 数据链路层 (交换机):物理寻址,同时将原始比特流转换成逻辑传输线路。在传输比特流的过程中可能出现传输不完整或者错传的可能,数据链路层定义了如何格式化数据以进行传输,提供错误检测和纠正;本层将数据组成“帧”,交换机工作在这一层,对帧解码,并把数据发送到正确的接收方。
第3层 网络层 (路由器,点到点):IP寻址,通过IP连接网络上的计算机;其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方,本层的数据称为数据包。
第4层 传输层(端到端):建立了主机端到端之间的连接,
第5层 会话层:不同机器上的用户之间建立及管理会话。
第6层 表示层:对应用层数据编码和数据格式转换。保障不同系统间通信。
第7层 应用层:提供应用接口,为用户提供各种网络服务。
TCP/IP四层模型
TCP与UDP
属性 | UDP | TCP |
---|---|---|
是否连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
适用场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
TCP的三次握手
建立连接的过程是利用客户服务器模式,假设主机 A 为客户端,主机 B 为服务器端。
- TCP 的三次握手过程
主机 A 向 B 发送连接请求;主机 B 对收到的主机 A 的报文段进行确认;主机 A 再次对主机 B 的确认进行确认。
- 采用两次握手不行,原因就是实效的连接请求的特殊情况。
采用三次握手是为了防止失效的连接请求报文段突然又传送到主机 B ,因而产生错误。
失效的连接请求报文段是指:主机 A 发出的连接请求没有收到主机 B 的确认,于是经过一段时间后,主机 A 又重新向主机 B 发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机 A 第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机 B ,主机 B 以为是主机 A 又发起的新连接,于是主机 B 同意连接,并向主机 A 发回确认,但是此时主机 A 根本不会理会,主机 B 就一直在等待主机 A 发送数据,导致主机 B 的资源浪费。
TCP四次挥手
主机A认为自己的数据发送完了,向B发送释放请求;
B收到请求的时候会通知应用层断开TCP连接同时给A回复确认,这是B没有发送完的数据可以继续发送;
B数据发送完成之后,会给A发送断开连接请求;
A收到之后,会给B一个确认,A进入等待状态,如果在固定的时间内,B没有重新连接,则进入关闭状态。B收到确认也进入关闭状态。
cookie 和session 的区别
- cookie数据存放在客户的浏览器上,session数据放在服务器上。
- cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
- session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
- 考虑到减轻服务器性能方面,应当使用COOKIE。
- 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
核与线程 CPU 4核8线程
物理核
物理核数=cpu数(机子上装的cpu的数量)每个cpu的物理核数
虚拟核
所谓的4核8线程,4核指的是物理数。通过超线程技术,用一个物理核 模拟两个虚拟核,每个虚拟核1个线程,总数为8线程。在操作系统看来是8个核,但是实际上是4个物理核。通过超线程技术可以实现单个物理核实现线程级别的并行计算,但是比不上性能两个物理核。
单核cpu和多核cpu
都是一个cpu,不同的是每个cpu上的核心数,多核cpu是多个单核cpu的替代方案,多核cpu减小了体积,同时也减少了功耗,*一个核心只能同时执行一个线程。