tcp连接和收发数据过程

数据如何在网络中进行传输?
tcp:
应用程通过用户缓冲区将数据发送到发送缓冲区,发送缓冲区收到数据后根据滑动窗口的大小选择发送的数据大小,如果收到了前一段数据的ack,则说明发送成功,否则出发超时重传,这时有两种情况:1.重传成功 2.重传失败,重置连接,若三次握手重置连接失败就会断开连接。
发送成功后,滑动窗口继续移动,发送缓冲区中的数据在收到ack之后就会清除,来保证发送缓冲区具有剩余可用空间,接收缓冲区收到数据后,等应用程读取之后才会清除,为了保证每次尽可能往接收缓冲区发送更多的数据,往往采用延迟应答来增大滑动窗口的大小。

发送方:数据经过网络层和传输层,物理链路层,最后通过物理层发送出去
接收方:数据结果物理层后,到达网卡层,确定mac地址后,进入网络层,然后进入传输层,去掉传输层的信息后存储到接收缓冲区,等待应用层进行读取,发送方是层层包装的过程,接收方是层层拆封的过程。
tcp发送数据前需要建立连接(见下述)
udp:
udp中建立连接只创建了接收缓冲区和输入字节流,没有发送缓冲区,为不可靠连接。

tcp如何确保数据有序的呢?
如何确认丢包和处理丢包?
通过ack中的确认序号判断丢失的是哪一个包,通过确认应答机制决定是否丢包,通过超时重传处理丢包。
丢包的几种情况:
1.接收缓冲区就没有收到丢失的数据
2.接收缓冲区收到数据,但是ack丢了࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值