545 次浏览
  1. leetcode1306. 跳跃游戏 III 题 //共享屏幕,ac了讲讲思路
  2. 游戏开发经历
  3. http和https
    • http超文本传输协议,明文传输的,存在安全风险,https解决不安全的缺陷:在TCP和HTTP网络层中加入SSL\TLS 安全协议,使得报文能加密
    • http简历建立连接相对简单,tcp三次握手后就可以进行http报文传输,https在tcp三次握手后还需要ssl\tls的握手才可以进入加密传输
    • http端口号80,https 443
    • https需要像CA(证书权威机构)申请数字证书,保证服务器身份可靠
  4. http提速?
  5. TCP三次握手四次挥手
    • 三次握手
      • 开始状态,客户端服务器都在close状态,服务端监听客户请求,进入listen状态
      • 第一次握手:客户端发送连接请求,SYN = 1,seq = x,发完客户端进入SYN_SENT状态
      • 第二次握手:服务端确认连接,SYN = 1,ACK = 1,seq = y,ack number= x+1,发送完服务器端进入SYN_RCV 状态
      • 第三次握手:客户端收到服务器端确认后,再次向服务器端确认,ACK = 1,ack number = y + 1,发送完毕客户端进入established状态,服务器端收到这个包,也进入establish状态
      • 好了,可以发送http请求了
    • 四次挥手
      • 数据传输结束后,通信双方都可以主动发起断开连接请求,假定客户端发起
      • 第一次挥手:客户端发送释放连接报文,FIN=1,seq=u,发送完毕,客户端进入FIN_WAIT_1状态。
      • 第二次挥手:服务器端发送确认报文,ACK=1,ack=u+1,seq = v,发送完毕,服务器端进入CLOSE_WAIT状态,客户端收到这个包后,进入FIN_WAIT_2状态。
      • 第三次挥手:服务器端发送个释放连接报文,FIN=1,ACK=1,seq=w,ack=u+1,发送完毕,服务器端进入LAST_ACK状态。
      • 第四次挥手:客户算发送确认报文,ACK=1 seq=u+1,ack=w+1,进入TIME_WAIT状态,等待了2MSL后,没有收到服务器端的ACK,认为服务器已经正常关闭,自己也关闭连接,进入CLOSE状态,服务器收到确认报文后,关闭连接,进入CLOSE状态
    • 注:
      •  位码:tcp标志位,六种标示:
        • SYN 建立联机
        • ACK确认
        • PSH传送
        • FIN结束
        • RST重置
        • UGR紧急
      • 两种number
        • Sequence number顺序号码
        • Acknowledgement number确认号码
      • MSL Maximum Segment Lifetime最大段生命周期
  6. 链表和数组的区别
    • 存储方式
      • 数组连续
      • 链表离散//指针链接
    • 插入和删除操作的效率
      • 数组插入和删除需要移动其他元素,O(n)
      • 链表只需要调整相邻节点,O(1)
    • 访问元素的效率
      • 数组通过索引访问O(1)
      • 链表需要从头节点开始访问O(n)
    • 空间占用
      • 数组需要预先分配,会浪费
      • 链表每个节点只要存储数据和指针,空间利用率高
  7. 归并算法思想,堆排序思想
    • 归并算法思想://分治算法,O(nlogn)稳定算法[5,2,8,3,7,1,9,4]
      1. 分割:要排序的序列折半分割
        • [5,2,8,3]和[7,1,9,4]
      2. 排序:对分割后的子序列分别进行递归排序
        • 对子序列[5,2,8,3]进行递归排序,得到[2,3,5,8]
        • 对子序列[7,1,9,4]进行递归排序,得到[1,4,7,9]
      3. 合并:将排序好的两个子序列合并成一个有序序列
        • [2,3,5,8]和[1,4,7,9]合并[1,2,3,4,5,7,8,9]。
    • 堆排序算法思想//是一种选择排序算法,利用堆这种数据结构来选择最小的元素,O(nlogn),不稳定
      1. 建堆:将输入数据结构建成一个堆
      2. 排序:重复从堆中取出最大或最小元素, 重新调整堆,直到排序完成
  8. 一个请求发起后的处理
    1. DNS解析:将域名解析未对应的IP地址
    2. TCP连接,与服务器通过三次握手,建立TCP连接
    3. 向服务器发起HTTP请求
    4. 服务器处理请求,返回HTTP响应
    5. 浏览器解析并渲染画面
    6. 四次挥手断开连接
  9. socket底层
    • socket是一套标准,完成了TCP/IP的高度封装,屏蔽网络细节,方便开发者更好进行网络编程,是一个网络编程的标准接口,提供了一组用于数据传输的函数。
    • 包括三个部分:
      • 应用层:数据封装成消息,传递到传输层
      • 传输层:数据封装成功段,传递到网络层
      • 网络层:数据封装成数据包(IP)数据包,通过网络传递到目标计算机

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注