1.网页静态资源css、js、img 访问加速
1. 用户请求到 CDN 节点;
2. CDN 节点未命中向源站获取文件;
3. 源站根据请求响应内容给 CDN ,同时 CDN 缓存内容;
4. CDN 节点将内容响应给最终用户;
5. 当同一cdn节点内的用户再次访问时,cdn便会直接将缓存内容返回给用户;
2.tcp为什么是三次握手,不是两次或四次。
tcp思想:全双工通信,既要保证数据可靠传输,又要提高传输的效率。
两次握手:两次握手的话服务端无法知道客户端是否具备接收以及自己是否具备发送的能力,只有通过三次握手通信双方才能知道自己和对方是否都具备收发能力;并且两次握手的话如果首次握手的报文超时客户端再重发之后,服务端接收到之前的那个报文也会直接建立连接,浪费资源。
四次握手:降低连接的速度与效率
三次握手:为了实现可靠传输,发送方和接收方始终需要同步( SYNchronize )序号。 需要注意的是, 序号并不是从 0 开始的, 而是由发送方随机选择的初始序列号 ( Initial Sequence Number, ISN )开始 。 由于 TCP 是一个双向通信协议, 通信双方都有能力发送信息, 并接收响应。 因此, 通信双方都需要随机产生一个初始的序列号, 并且把这个起始值告诉对方。
参考回答:因为需要考虑连接时丢包的问题,如果只握手2次,第二次握手时如果服务端发给客户端的确认报文段丢失,此时服务端已经准备好了收发数(可以理解服务端已经连接成功)据,而客户端一直没收到服务端的确认报文,所以客户端就不知道服务端是否已经准备好了(可以理解为客户端未连接成功),这种情况下客户端不会给服务端发数据,也会忽略服务端发过来的数据。如果是三次握手,即便发生丢包也不会有问题,比如如果第三次握手客户端发的确认ack报文丢失,服务端在一段时间内没有收到确认ack报文的话就会重新进行第二次握手,也就是服务端会重发SYN报文段,客户端收到重发的报文段后会再次给服务端发送确认ack报文。
3.tcp为什么是四次挥手,不是两次或三次。
tcp是全双工的协议、因此双发都会向对方发送协议。第一次挥手表示客户端发送了一个fin的包,表示客户端已发送数据完毕,但是服务端这个时候可能还有数据没有发送完成,先发送给客户端一个ask的包,等待自己的数据发送完成才能向客户端发送一个 fin的包,表示自己的数据也已发送完成。这样中间就必须为两次来发送ask和fin。
参考回答:因为只有在客户端和服务端都没有数据要发送的时候才能断开TCP。而客户端发出FIN报文时只能保证客户端没有数据发了,服务端还有没有数据发客户端是不知道的。而服务端收到客户端的FIN报文后只能先回复客户端一个确认报文来告诉客户端我服务端已经收到你的FIN报文了,但我服务端还有一些数据没发完,等这些数据发完了服务端才能给客户端发FIN报文(所以不能一次性将确认报文和FIN报文发给客户端,就是这里多出来了一次)。
4.udp与tcp关系与区别
①TCP是面向连接的,UDP是无连接的
②TCP所需资源多,传输速率慢,UDP所需资源少、传输速率快
③TCP的数据传输以字节流的形式,UDP的数据传输是以报文段的形式
④TCP用检验和、标号、流量控制、拥塞控制、超时重传等机制保证TCP连接是可靠的,UDP则不保证可靠交付,只保证尽力交付
⑤TCP只适用于一对一单播,UDP可用于广播通信
⑥TCP适用于对可靠性要求较高的场景,比如文件的传输等,UDP适用于实时性要求较高的场景,比如微信视频通话等。
关系:TCP和UDP均规定,小于256的端口号才能作保留端口。TCP有一个255号端口,UDP也可以有一个255号端口,二者并不冲突。
5.运行在tcp和udp协议之上的协议
5.1 运行于TCP协议之上的协议
HTTP协议:超文本传输协议,用于普通浏览
HTTPS协议:安全超文本传输协议,由http+ssl组成,底层安全认证ssl
FTP协议:文件传输协议,用于文件传输
POP3协议:邮局协议,收邮件使用
SMTP协议:简单邮件传输协议,用来发送电子邮件
Telent协议:远程登陆协议,通过一个终端登陆到网络
SSH协议:安全外壳协议,用于加密安全登陆,替代安全性差的Telent协议
5.2 运行于UDP协议之上的协议
DHCP协议:动态主机配置协议,动态配置IP地址
NTP协议:网络时间协议,用于网络时间同步
BOOTP协议:引导程序协议,DHCP协议的前身,用于无盘工作站从中心服务器上获取IP地址
6.tcp如何保证安全可靠
具体可参考:https://blog.csdn.net/cbjcry/article/details/84925028
TCP 滑动窗口和 拥塞窗口:校验和、确认应答+序列号、超时重传、流量控制、拥塞控制
7.tcp拥塞控制
当网络拥塞时,减少数据的发送。发送方有拥塞窗口,发送数据前比对接收方发过来的即使窗口,取小。
拥塞控制主要是四个算法:1)慢启动,2)拥塞避免,3)拥塞发生,4)快速恢复。
8.tcp重传多少次
第一次发送后所设置的超时时间实际上为1.5秒,此后该时间在每次重传时增加一倍,一直到64秒,采用的是指数退避算法。一共重传12次,大约9分钟才放弃重传,该时间在目前的TCP实现中是不可变的,Solaris2.2允许管理者改变这个时间,tcp_ip_abort_interval变量。且其默认值为两分钟,而不是最常用的9分钟。
9.