正点原子lwIP学习笔记——传输层协议

1.传输协议简介

传输协议

TCP与UDP

TCP与UDP的区别
TCP协议基于连接传输,需要先建立连接后,保证数据的准确性,传输后关闭连接;
而UDP基于非连接,允许错误存在,只是尽力传输,但是速度非常快。

TCP协议就是要在不可靠的信道上,保证可靠的传输!

TCP如何确保传输

TCP的三个重要方面
三次握手就是建立连接;传输数据,就是在连接建立之后,完成数据的互发;四次会收就是关闭连接。

TCP——三次握手

三次握手的示意图
三次握手,就是首先由客户端发送SYN给服务器,这是第一次握手;然后服务器就会回复SYN+ACK信号给客户端,客户端进入SYN-SENT模式,而服务器切换到LISTEN模式,这是第二次握手;第三次握手,就是客户端发送ACK信号给服务器。

至此,完成三次握手,客户端和服务器均进入ESTAB-LISHED状态,可以完成数据的互发。

TCP——数据传输

采用TCP协议进行数据传输,是不会造成IP分片的。若数据过大,只会在传输层进行数据分包
TCP/IP 协议栈中定义了MSS, 为的是提高网络的性能,lwIP定义的MSS大小是1460。这个1460,就是MTU-IP首部20字节-TCP首部20字节的大小。

数据传输示意图
为了解决丢包问题和乱序问题,TCP协议采取流量控制,其包含两个协议,一个是停止等待协议,一问一答,信道利用率和效率低;另一个是滑动窗口协议,确认之前多个数据发送,信道利用率和效率高。

TCP——滑动窗口协议

滑动窗口——未丢包

发送缓冲区,其格式是TCP的首部(序号+长度),后跟数据内容;回复确认的ACK信号就是序列号+长度(ACK的意义就是下一包的起始序列和长度);组装数据,就根据序列号和长度重组数据。

滑动窗口——丢包
如果是2号丢失,那么接收端发送ACK接收确认消息,发送端的滑动窗口就会向右移动一个发送5号数据包,且2、3、4会重传(如果3、4正确,重传后的3、4就直接丢弃)。

TCP——四次挥手

四次挥手示意图
客户端在ESTAB-LISHED状态发送FIN给服务器,客户端进入FIN-WAIT-1状态,这就是第一次挥手;然后服务器在ESTAB-LISHED状态接受FIN,回应一个ACK信号给客户端,服务器进入CLOSE-WAIT状态,这就是第二次挥手;然后服务器发送一个FIN信号给客户端,客户端进入FIN-WAIT-2状态,服务器进入LAST-ACK状态,这就是第三次挥手;最后客户端发送ACK信号给服务器,自身进入TIME-WAIT状态(2s),然后进入CLOSED状态,服务器也进入CLOSED状态,这就是第四次挥手。

UDP协议

UDP特点

TCP与UDP区别

TCP与UDP区别
UDP速度快,性能损耗少、资源占用少;而TCP稳定可靠、稳定性强、能保证数据传输完整。

总结

比较了传输层协议中的TCP协议和UDP协议,大概了解了TCP协议的传输过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值