文章目录
计算机网络:可靠的传输协议
1、网络中不可靠的情况
- 数据损伤:二进制数据发生翻转,及0->1或1->0
- 数据丢失:发送的数据包在拥塞或故障的网络中被丢弃
- 顺序紊乱:数据包以不同于发送的顺序被接受
2、解决网络不可靠的基本方法
- 超时重传:解决数据丢失
- 校验码:验证数据是否损伤
- 确认报文:确认对端正确接受报文
- 报文序号:告知对端正确的报文顺序
3、可靠的传输协议
根据上面基本方法,来完成可靠的传输协议。
3.1、比特交换协议(alternating-bit protocol)
之所以被称为比特交换,是因为在此协议中,packet序号仅为两个值——0和1。发送端以0、1顺序轮循发送packet,接受端也以相应的0、1顺序轮循接受packet。
- 协议事件
- 开始计时(timer_start)
- 超时(timeout)
- 停止计时(timer_stop)
- 发送packet(send_pkt)
- 接受packet(recv_pkt)
- 创建packet(make_pkt)
- 检查报文正确性(correct)
- 获取报文序号(getseq)
- packet属性
- 数据packet(data_pkt)
- 报文序号(seq_num)
- 校验和(checksum)
- 数据(data)
- 确认packet(ack_pkt)
- 报文序号(seq_num)
- 校验和(checksum)
- 数据packet(data_pkt)
- FSM