网络编程-Tcp通信面试

  • tcp 特点
    提供面向连接无丢失,无乱序,无差错,可靠的字节流传输。(可靠性主要靠的是三次握手和四次挥手)
  • 三次握手(连接)

在这里插入图片描述
三次握手过程:
    - 客户端向服务端发送请求连接报文
    - 服务端收到报文,回复报文表示可以连接
    - 客户端收到确认信息,发送最终报文连接建立

  • 四次挥手(断开)

在这里插入图片描述
断开连接不再是特定一方,双方都可主动断开
四次挥手过程:
    - 主动方发送断开连接报文
    - 被动发收到报文后,立即回复报文,表示准备断开连接
    - 被动方准备就绪,再次发送报文表示可以断开连接
    - 主动方收到报文,发送最终报文断开连接

  • 粘包及解决办法

产生原因:

  • 为了解决数据在传输过程中可能产生的速度不协调问题,操作系统设置了缓冲区
  • 实际网络过程比较复杂,导致消息收发速度不一致。
  • tcp以字节流方式数据传输,在接收时不区分消息边界

解决办法:
  - 控制发送速度(即在连续发送时添加延时)
  - 人为添加消息边界
  - 设置定长缓冲区

  • tcp与udp的区别与联系

相同点:
   都属于传输层的协议
  都为用户提供服务
区别:
   tcp提供可靠的数据传输,udp不保证可靠数据传输
   tcp是以字节流方式传输,udp以数据报方式传输
   tcp传输时需建立连接,效率相对较低,udp无需建立连接,节省时间,效率高
  所创的套接字类型不同
  tcp套接字会产生粘包,udp有消息边界不会粘包


以上是我总结网络编程阶段的常见面试题

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值