JAVA面试题21

36次阅读

共计 550 个字符,预计需要花费 2 分钟才能阅读完成。

     本文首发于 cartoon 的博客
    转载请注明出处:https://cartoonyu.github.io/c…

  • 简述 TCP 和 UDP 的区别?

    • 参考博客:https://blog.51cto.com/feinib…
    • TCP 面向连接,UDP 面向非连接
    • TCP 传输可靠,经过三次握手进行确定,主要传输状态信息;UDP 传输不可靠,主要传输大数据
    • TCP 传输数据中含有段标号等信息,UDP 没有
    • TCP 传输较 UDP 慢
  • TCP 为什么要三次握手,两次不行吗?为什么?

    • TCP 三次握手目的是为了连接服务器指定端口,建立 TCP 连接,同步双方序列号和确定号,交换 TCP 窗口大小信息
    • 两次握手只能让发送方确定已与接收方建立连接,而接收方不能确定是否与发送方连接正常
  • 说一下 TCP 粘包是怎么产生的?

    • TCP 通过流传输数据包,数据包间隔时间可能很短,造成前包尾部与后包头部粘合
    • 发送方等待缓冲区满才发送数据,接收方没有及时接收数据包
    • 解决措施

      • 通过编程解决。当一次数据包完成后,立即通过 TCP 的 push 指令发出
      • 通过优化程序设计,使接收方及时接收数据
      • 将数据包按数据字段,人为控制多此接收然后合并
  • OSI 的七层模型都有哪些?

    • 参考博客:https://blog.csdn.net/yaopeng…
    • 物理层
    • 数据链路层
    • 网络层
    • 传输层
    • 会话层
    • 表示层
    • 应用层
正文完
 0