计算机网络

1.OSI网络的七层架构从下到上主要包括物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

2.物理层:比特。主要作用是传输比特流。电流强弱与1,0之间相互转换(模数转换,数模转换)

3.数据链路层:帧。主要作用是用于对数据包中的MAC地址进行解析和封装。

4.网络层:数据包。主要作用是对数据包中的IP地址进行封装和解析。

5.传输层:TCP,UDP。定义了传输数据的协议和端口号。主要用于数据分段,传输和重组。

6.会话层:在传输层基础上建立连接和会话管理。在设备之间需要相互识别的可以是IP,MAC或主机名

7.表示层:数据格式转换和表示,把接受的数据进行解密,解释等。把计算机能够识别的数据转换成人能够识别的内容(图文声)

8.应用层:HTTP。访问网络的服务接口

9.TCP是传输控制协议,面向连接的协议,传输效率低,可靠性强。用于传输对可靠性要求高,数据量大的数据,比如支付宝转账

10.UDP是用户数据报协议,面向无连接的协议,与TCP恰恰相反。用于传输对可靠性要求低,数据量大的数据,例如抖音

11.TCP/IP四层网络模型

应用层:服务及网络程序 HTTP,DNS。负责具体的应用的协议SMTP HTTP DNS

传输层:确认数据传输和错误处理 TCP UDP。使源端到目的端的对等实体可以基于会话相互通信。

网络层:服务数据的传输,路由,及地址的选择。保证主机能够数据发送给任何网络上的目标

网络接口层:定义物理网络连接的协议

12.TCP三次握手四次挥手

在创建连接时,

1.客户端首先要SYN= 1,表示要创建连接,

2.服务端接收到后,要告诉客户端:我接受到了!所以加个ACK=1,就变成了ACK=1,SYN=1

3.理论_上这时就创建连接成功了,但是要防止一个意外,所以客户端要再发一个消息给服务端确认一下,这时只需要ACK=1就行了。

三次握手完成!

在四次分手时,

1.首先客户端请求关闭客户端到服务端方向的连接,这时客户端就要发送一个FIN=1,表示要关闭一个方向的连接

2.服务端接收到后是需要确认一下的,所以返回了一个ACK=1

3.这时只关闭了一个方向,另一个方向也需要关闭,所以服务端也向客户端发了一个FIN=1 ACK=1

4.客户端接收到后发送ACK=1,表示接受成功

四次分手完成!

13.TCP数据包结构

原始端口(16位):标识源主机的一个应用进程(连同源主机的IP地址)

目的端口(16位):表示目的主机的一个应用进程(连同目的主机的IP地址)。源主机IP地址,目的主机IP地址,源端口和目的端口确定了唯一的TCP连接

顺序号seq(32位):标识从TCP源端到目的端发送的数据字节流,表示这个报文段中的第一个数据字节的顺序号。

确认号ack(32位):存储发送确认的一端所期望收到的下一个顺序号。确认序号是上次已成功收到的数据字节顺序号加1.只有ack=1时确认序号才有效。

TCP报头长度(4位):存储报头中头部数据的长度,实际上指明了数据从哪里开始

保留位(6位):数据的保留位,目前看必须位0

控制位(6位):在TCP报头中有6个标志比特。

14.  URG为1时表示紧急指针有效,为0时忽略紧急指针的值

ACK为1时表示确认号有效,为0时表示在报文中不包含确认信息,忽略确认号字段

PSH为1时表示是带有PUSH标志的数据,指示接收方应该尽快将这个报文段交给应用层,而不用等待缓冲区装满。

RST用于复位由于主机崩溃或其他原因出现错误的连接,还可以用于拒绝连接请求。在一般情况下,如果收到一个RST为1的报文,那么一定发生了某些问题。

SYN同步序号,为1时表示连接请求,用于建立连接和使顺序号同步(Synchronize)

FIN用于释放连接,为1时表示发送方已经没有数据要发送了,即关闭本方数据流。

15.HTTP是无状态(客户端与服务端不保持持久的连接)协议

16.http传输过程:

       地址解析:通过域名系统DNS解析服务器域名从而获得主机的ip地址

封装HTTP数据包:解析协议名,端口,主机名,对象路径等结合本机信息封装成HTTP数据包

封装TCP包:将HTTP数据包进一步封装成TCP数据包

建立TCP连接:三次握手建立TCP连接

客户端发送请求:建立连接成功后,客户端可以向服务端发送请求了

服务端响应请求:

服务器关闭TCP连接:服务器向浏览器发送完响应后,服务器会关闭TCP连接(除非Connected:keep-alive)。

17.Http中的状态码:20X表示成功;30X表示网络重定向;40X表示客户端请求错误;50X表示服务器内部错误

18.HTTPS是以安全为目标的HTTP通道,他在http中加入了ssl层来提高数据的传输的安全性。Ssl使用证书来验证服务器身份,并对传输数据进行加密。

19.HTTPS加密过程:client向service发送请求时,server会先向CA认证中心请求证书,证书配置完成。之后server就会向client发送证书(公钥),client验证公钥后将公钥加密成对称密钥发送给server,就可以开始利用对称密钥加密数据传输了。

20.CDN原理:CDN(Content Delivery Network内容分发网络):用户就近从服务器上获取内容。CDN关键技术:内容发布(将内容发布到网络上距离用户最近的中心机房),内容交换,内容路由(使用户就近获取内容)和性能管理(保证网络的最佳性能)。

21.CDN的主要特点:本地缓存加速:将用户经常访问的数据保存到本地,加快响应速度。镜像服务:消除不同运营商之间的网络差异,实现跨运营商的网络加速。远程加速:利用DNS负载均衡技术为用户选择最佳的服务器。带宽优化:用户访问就近的服务器,减少带宽。集群抗攻击:通过网络安全技术和CDN之间的智能冗余机制,减少网络攻击

22.负载均衡:四层负载均衡(主要通过修改报文中的目标和端口来实现报文的负载均衡):基于IP和端口实现,具体实现方式为向外提供一个虚拟的ip和端口接收所有请求然后根据负载均衡配置和策略将请求发送给真实的服务器。七层负载均衡:基于URL来实现应用层对内容的负载均衡。两者区别:四层只能根据ip和端口,七层可以根据URL内容做更详细的负载均衡。

23.我们通常使用LVS(基于ip和端口实现的四层负载均衡软件)等技术实现基于socket的四层负载均衡。使用nginx(可同时实现四层和七层负载均衡,带缓存功能)等技术实现基于内容分发的七层负载均衡(又叫内容负载均衡)。

24.常用的七层负载均衡软件:HAProxy,Nginx,Apache

25.常用的负载均衡算法:轮询均衡(Round Robin),权值均衡算法(Weighted Round Robin),随即均衡(random),权值随机均衡(Weighted Random),响应速度均衡(Response Time),最少连接均衡(Least Connection),处理能力均衡,DNS响应均衡(Flash DNS),散列算法均衡,IP地址散列,URL散列。

  • 轮询均衡:将所有的客户端请求均等的分配给各个服务器。(使用于所有服务器都有相同的软硬件和服务器能力)
  • 权重轮询均衡:根据不同服务器的配置和服务能力给各个服务器分配不同的权重,担任不同程度的负载,按照权重值轮询的分配到不同的服务器
  • 随机均衡:不管服务器的配置和服务能力,随机分配
  • 权重随机均衡:类似于权重轮询均衡,只是不在轮询的分配请求,而是随机
  • 响应速度均衡:根据挡墙的各个服务器的响应速度(负载均衡设备发送给服务器ping来测试响应速度)分配请求。有效避免了单台服务器负载过高
  • 最小连接均衡:将新来的请求分配给当前连接最少的服务器
  • 处理能力均衡(尤其适用于七层负载均衡):将新来的请求分配给服务器负荷最轻的服务器
  • DNS响应均衡:客户端将请求发送给所有服务器,所有服务器域名解析完成后将IP地址发送给客户端,客户端再将请求发送给第一个返回的IP地址
  • 散列算法均衡:通过一致的散列算法,将请求一直发送给一个服务器。当这台服务器宕机时,该服务器基于虚拟节点技术将请求平推给其他服务器
  • IP地址散列:再负载内部维持了一个对应表,将来自一个客户端的求情一直发送给同一服务器。适用于TCP长连接
  • URL散列:将来自客户端的url经过算法形成散列表,此后将相同的url发送给固定的服务器。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值