面试总结之乐信(下)

简介: 六.TCP的三次握手四次挥手机制?

六.TCP的三次握手四次挥手机制?


1. TCP建立连接的过程。


    三次握⼿手:


1. 第一次握手(客户端发送syn包到服务器端):客户端发送syn包到服务


器端,进入syn_send状态,等待服务器端的确认;


2. 第二次握手(服务器返回syn+ack包给客户端):服务器端收到客户端


的syn包,发送syn+ack包给客户端,进入syn_recv状态;


3. 第三次握手(客服端返回ack包给服务端):客户端收到服务器端的


syn+ack包,发送个ack包到服务器端,至此,客户端与服务器端进入


established状态;


4. 握手过程中传送的包不包含任何数据,连接建立后才会开始传送数


据,理想状态下,TCP连接一旦建立,在通信双方的任何一方主动关闭


连接前,TCP连接都会一直保持下去。


2. TCP断开连接的过程。


四次挥⼿:


1. 第一次挥手:主动关闭方发送fin包到被动关闭方,告诉被动关闭⽅方我


不不会再给你发送数据了了;


2. 第二次挥手:被动关闭方收到syn包,发送ack给对方,确认序号为收到序号+1;


3. 第三次挥手:被动关闭方也发送fin包给主动关闭方,告诉对方我也不会给你发送数据了;


4. 第四次挥手:主动关闭方收到syn包,发送ack给对⽅,至此,完成四次挥手;


七.Https原理?


HTTPS协议就是基于SSL的HTTP协议


HTTPS使用与HTTP不同的端口(HTTPM80 , HTTPSM443)


提供了身份验证与加密通信方法,被广泛⽤于互联⽹上安全敏感的通信。



1、客户端请求SSL连接,并将自⼰支持的加密规则发给网站。


2、服务器端将自己的身份信息以证书形式发回给客户端。证书里面包含了⽹站地址,加密公钥,以及证书的颁发机构。


3、获得证书后,客户要做以下工作


验证证书合法性


如果证书受信任,客户端会生成一串随机数的密码,并用证书提供的公钥进行加密。


将加密好的随机数发给服务器。


image.png

image.png

4、获得到客户端发的加密了的随机数之后,服务器用自己的私钥进行解密,得到这个随机数,把这个随机数作为对称加密的密钥。(利⽤⾮对称加密传输对称加密的密钥)


5、之后服务器与客户之间就可以用随机数对各自的信息进行加密,解密。


注意的是:证书是一个公钥,这个公钥是进行加密用的。而私钥是进⾏解密⽤用的。公钥任何都知道,私钥只有⾃⼰知道。这是非对称加密。而对称加密就是钥匙只有一把,我们都知道。之所以用到对称加密,是因为对称加密的速度更快。而⾮对称加密的可靠性更高。


客户端请求--服务端发送证书(公钥)--客户端验证证书,并生成


随机数,通过公钥加密后发送给服务端--服务端用私钥解密出随机数--对称加密传输数据。


八.Redis的数据类型有哪些?与Memcached的区别?


Redis目前⽀持5种数据类型,分别是:


String(字符串)


List(列列表)


Hash(字典)


Set(集合)


Sorted Set(有序集合)


区别


1、memcache支持k/v类型数据;


2、redis除了缓存k/v类型数据之外,还能缓存list、set、hash等数据结构


的数据;


3.redis的持久化,事务,master/salver这些虽然也是redis的优势,但实际应


用中发现这些其实是会托累服务器的性能,而我们全部都不能用.我们得自已做;memcached以上都不管,我们也得自已做;


4.如果需要在服务器端做一些聚合的运算,用redis;如果只是做缓存,redis虽


然可以,但性能很差.在要求高性能的环境下使用memcached更合适;


九.哪些对象会被存放到⽼年代?


1. 新生代对象每次经历一次minor gc,年龄会加1,当达到年龄阈值


(默认为15岁)会直接进入老年代;


2. ⼤对象直接进入老年年代;


3. 新生代复制算法需要一个survivor区进行轮换备份,如果出现大量对象在minor gc后仍然存活的情况时,就需要老年代行分配担保,让survivor无法容纳的对象直接进⼊老年代;


4. 如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入⽼年代。


十. 什么时候触发full gc?


1.调用System.gc时,系统建议执行Full GC,但是不必然执行


2.老年代空间不足


3.方法去空间不足


4.通过Minor GC后进入老年代的平均大⼩大于⽼年代的可用内存


5.由Eden区、From Space区向To Space区复制时,对象大小⼤大于


To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象⼤⼩


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
负载均衡 Linux 应用服务中间件
Linux下各种锁地理解和使用以及总结解决一下epoll惊群问题(面试常考)
Linux下各种锁地理解和使用以及总结解决一下epoll惊群问题(面试常考)
Linux下各种锁地理解和使用以及总结解决一下epoll惊群问题(面试常考)
|
SQL 算法 JavaScript
西安软件园面试总结(一)
西安软件园面试总结(一)
西安软件园面试总结(一)
|
算法 网络协议 搜索推荐
CVTE寒暑假实习面试总结
目录前言1. 笔试2. 面试 前言 主要总结一些笔试和面试的具体问题 1. 笔试 笔试共有 20道选择题(单选加多选) 2道算法题(算法题基本是场景题,但是基本思路都是leetcode的题目) 1道设计题(让你设计一个系统) 20道选择题基本都是计网+数据结构的排序题以及java的一些基本概念 具体可以参考我这篇文章都有大概的提到 java框架零基础从入门到精通的学习路线(超全) 算法题的思路leetcode基本都有 我当时做的算法题主要是这两道 【leetcode】剑指 Offer 62. 圆圈中最后
432 1
|
机器学习/深度学习 分布式计算 算法
机器学习岗位面试总结:简历应该关注的5个重点
机器学习岗位面试总结:简历应该关注的5个重点
871 0
机器学习岗位面试总结:简历应该关注的5个重点
|
存储 移动开发 算法
面试必问:十大经典排序算法总结
面试必问:十大经典排序算法总结
630 0
面试必问:十大经典排序算法总结
|
缓存 算法 Java
PHP面试总结
PHP面试总结
294 0
|
安全 Java
【Java面试】List知识点总结
【Java面试】List知识点总结
296 0
|
存储 NoSQL Java
Java模拟面试总结
Java模拟面试总结
347 0
|
存储 NoSQL 关系型数据库
面试必过之Mongdodb数据库面试题总结大全
面试必过之Mongdodb数据库面试题总结大全
258 0
|
存储 安全 算法
78. 别找了,Java集合面试问题这里帮你总结好了
78. 别找了,Java集合面试问题这里帮你总结好了
175 0