如何保证不丢包
- 三次握手,四次挥手,保证连接可靠
- 客户端心跳保证活跃
- 超时重传(设置定时器,如果没有收到确信信息,那么重传,如果收到了,那么取消定时器)
- cocoasynsocket 应该是有确认机制的
- 超时,需要保留副本,用于重新发送
- 延迟逻辑
- A收到延迟的确认后会丢弃,重传
- B丢弃重复的分组,重传确认消息
- 累积确认
- 对按次序到达的最后一个分组进行确认,如果已经收到了某个分组的确认信息,那么表示这个分组为止之前所有的都收到了
- 滑动窗口
- 分组确认的形式
- 收到确认才可向前滑动一格
网络拥塞如何解决
- 快重传,快恢复机制
- 流量控制,不让发送方发送太快(用滑动窗口大小控制,发送方的窗口不可大于接收端的窗口),但滑动窗口就可能为0,为了避免进入死锁,TCP会开启一个定时器,周期性的发送零窗口检测报文(注意:即便接受窗口为0,也还是可以接收零报文探测、确认报文以及紧急数据报文段)
- 慢启动机制
网友评论