社区
通信技术
帖子详情
TCP协议是否每发送一个包都要有确认呢?
jitom515
2006-07-21 10:44:29
小鸟贸然一问,敢问tcp协议的确认机制是怎样的?是每个包都要确认吗?
...全文
3335
10
打赏
收藏
TCP协议是否每发送一个包都要有确认呢?
小鸟贸然一问,敢问tcp协议的确认机制是怎样的?是每个包都要确认吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blzgotop
2006-08-11
打赏
举报
回复
tcp 的传输是采用的3 次握手阿,1.发送消息。2.受到消息后,组织SEQ,发送ACK。3.确认ACK
jitom515
2006-08-09
打赏
举报
回复
谢谢各位的回答,使我对这个问题有了进一步的认识!
leon7909
2006-07-31
打赏
举报
回复
2
的确是每个数据包都要得到ACK确认,但并不是每个数据包都有一个ACK确定包,有可能发送方发了几个数据包后才收到一个ACK确认,而这个ACK是对前面所有的包的确认。要是真的发送方每发一个包都要得到一个确认包的话,那效能就会很低了。
zebra007
2006-07-31
打赏
举报
回复
1
接受端每收到一个数据分组都会产生一个ack分组,但是ack中的序号并不是刚接受到的那个分组的序号,而是期望收的下一个分组的序号
比如说发送方发了序号为1~10的10个分组,接收方成功收到了前3个,第4个分组丢了,当它收到第5个分组时,ack分组中的序号为4,收到第6个分组时产生的ack分组序号仍然为4
现在tcp端一般实现的是newReno算法,如果收到相同的3个ack序号,则认为那个分组已经丢失(网络轻度拥塞),需要重传,所以当接受方收到第7个分组并再次发送了序号为4的分组,接受方收到连续的3个序号为4的ack,则确定4已经丢失,于是重传4
当然实际算法要复杂的多,具体的协议可以去看rfc793
pink_tulip
2006-07-31
打赏
举报
回复
不一定把,每个都确认会出现糊涂窗口综合症吧?
SeekTruth
2006-07-31
打赏
举报
回复
比较同意ndy_w(carpe diem)的看法,不过好象跟实现有关
SweetJerry
2006-07-28
打赏
举报
回复
似乎不是的,但是发送方会使用相同的预期序列号发送后续数据.
SweetJerry
2006-07-28
打赏
举报
回复
上面的回答错了.
TCP确实要求对每个数据段进行确认.无确认则会重复发送当前数据段.
ndy_w
2006-07-25
打赏
举报
回复
不用吧?ack指示某seq number之前的都收到了。
zebra007
2006-07-22
打赏
举报
回复
是的,接收方每收到一个分组,就产生一个ACK,其中包含了期望收到的下一个分组的序号
TCP
协议
原理一
接收缓冲区相当于是接收方操作系统内核的一段内存,我们在网络编程的时候学习的socket的对象中都有一个接收缓冲区,我们主机B的网卡接收到数据之后,将数据放到主机soekct对象对应的接收缓冲区中,我们可以将这个缓冲区想象成一个优先级阻塞队列,我们根据序号可以将数据进行去重排序,如果有相同的数据就将后到的数据丢弃,排序就可以应对我们的后发先至情况。大家还需要明白,我们这里的可靠指的不是我们
发送
方百分百能将数据
发送
到接收方,而是尽可能的发过去即使没有发过去我们的
发送
方也能够知道。
TCP
连续ARQ
协议
和滑动窗口
协议
TCP
协议
通过使用连续ARQ
协议
和滑动窗口
协议
,来保证数据传输的正确性,从而提供可靠的传输。 一、ARQ
协议
ARQ
协议
,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中数据链路层和传输层的错误纠正
协议
之一。它通过使用
确认
和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果
发送
方在
发送
后一段时间之内没有收到
确认
帧,它通常会重新
发送
TCP
协议
TCP
(Transmission Control Protocol 即传输控制
协议
)是传输层的重要
协议
之一,对数据的传输进行详细的控制
TCP
协议
(序号和
确认
号)
接下来的内容是学习后续内容的基础,必须先讲清楚。为了方便你回忆
TCP
首部,这里再次把这个图贴出来,以便对照。 图1
TCP
首部 1. 序号 序号占用 4 字节,即 32 位。它的范围是[0,232−1],也就是说一共有 4 294 967 296 个序号。
TCP
协议
中的序号,指的是报文段序号。 字节序号
TCP
连接中,为传送的字节流(数据)中的每一个字节按顺序编号。也就是说,在一次
TCP
连接建立的开始,到
TCP
连接的断开,你要传输的所有数据的每一个字节都要编号。这...
传输层
协议
——
TCP
协议
1.
TCP
是面向连接的运输层
协议
。应用程序在使用
TCP
协议
开展通信前,必须先建立起
TCP
连接。当数据传送完毕后,还需释放已建立的
TCP
连接。2.每一条
TCP
连接仅能拥有两个端点,且每一条
TCP
连接只能是点对点的(一对一)通信模式。3.
TCP
提供可靠交付服务,通过
TCP
连接传送的数据,能够实现无差错、不丢失、不重复,并且按照
发送
顺序到达接收端。4.
TCP
支持全双工通信,允许通信双方的应用进程在任意时刻都能
发送
数据。
通信技术
4,395
社区成员
28,907
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章