客户端|这可能是你见过最全面的网络安全面试题了——入门篇( 六 )


解决方案:

  1. 消息定长 。
  2. 在包尾部增加回车或者空格符等特殊字符进行分割
  3. 将消息分为消息头和消息尾 。 4. 使用其它复杂的协议 , 如 RTMP 协议等 。
TCP 如何保证可靠传输?
  • 三次握手
  • 将数据截断为合理的长度 。 应用数据被分割成 TCP 认为最适合发送的数据块(按字节编号 , 合理分片)
  • 超时重发 。 当 TCP 发出一个段后 , 它启动一个定时器 , 如果不能及时收到一个确认就重发
  • 确认应答:对于收到的请求 , 给出确认响应
  • 校验和:校验出包有错 , 丢弃报文段 , 不给出响应
  • 序列号:对失序数据进行重新排序 , 然后才交给应用层
  • 丢弃重复数据:对于重复数据,能够丢弃重复数据
  • 流量控制:TCP 连接的每一方都有固定大小的缓冲空间 。 TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据 。 这将防止较快主机致使较慢主机的缓冲区溢出 。
  • 拥塞控制:当网络拥塞时 , 减少数据的发送 。
  • 校验和序列号
  • 确认应答
  • 超时重传
  • 连接管理
  • 流量控制
  • 拥塞控制
常见的状态码有哪些?200 OK //客户端请求成功 403 Forbidden //服务器收到请求 , 但是拒绝提供服务404 Not Found //请求资源不存在 , eg:输入了错误的 URL
500 Internal Server Error //服务器发生不可预期的错误 URI 和 URL 的区别 URI , 统一资源标识符 , 用来唯一的标识一个资源 。 URL 可以用来标识一个资源 , 而且还指明了如何定位这个资源 。
什么是 SSL ?https 是如何保证数据传输的安全(SSL 是怎么工作保证安全的)SSL 代表安全套接字层 。 它是一种用于加密和验证应用程序(如浏览器)和 Web 服务器之间发送的数据的协议 。身份验证,加密 Https 的加密机制是一种共享密钥加密和公开密
钥加密并用的混合加密机制 。 SSL/TLS 协议作用:认证用户和服务 , 加密数据 , 维护数据的完整性的应用层协议加密和解密需要两个不同的密钥 , 故被称为非对称加密;加密和解密都使用同一个密钥的 对称加密 。优点在于加密、解密效率通常比较高 HTTPS 是基于非对称加密的 ,公钥是公开的 ,
(1)客户端向服务器端发起 SSL 连接请求;
(2) 服务器把公钥发送给客户端 , 并且服务器端保存着唯一的私钥
(3)客户端用公钥对双方通信的对称秘钥进行加密 , 并发送给服务器端
(4)服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密 ,
(5)进行数据传输 , 服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密 , 可以保证在数据收发过程中的安全 , 即是第三方获得数据包 , 也无法对其进行加密 , 解密和篡改 。 因为数字签名、摘要是证书防伪非常关键的武器 。“摘要”就是对传输的内容 , 通过 hash算法计算出一段固定长度的串 。 然后 , 在通过 CA 的私钥对这段摘要进行加密 , 加密后得到的结果就是“数字签名”
SSL/TLS 协议的基本思路是采用公钥加密法 , 也就是说 , 客户端先向服务器端索要公钥 , 然后用公钥加密信息 , 服务器收到密文后 , 用自己的私钥解密 。
如何保证公钥不被篡改?将公钥放在数字证书中 。 只要证书是可信的 , 公钥就是可信的 。
公钥加密计算量太大 , 如何减少耗用的时间?
每一次对话(session) , 客户端和服务器端都生成一个\"对话密钥\"(session key) , 用它来加密信息 。 由于\"对话密钥\"是对称加密 , 所以运算速度非常快 , 而服务器公钥只用于加密\"