那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
3, 如果有1片丢了怎么办?
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
每个问题50分哈, 多谢多谢.
78 个解决方案
#1
我也想知道,呵呵。最好能结合NDIS协议说下流程
NDIS那里接收到的是mac帧。然后住上层给谁,然后他怎么整。
NDIS那里接收到的是mac帧。然后住上层给谁,然后他怎么整。
#2
1.2. IP只负责发送包,上层来决定包的重组,TCP有校验机制等,当发现包没有收到或者包的数据损坏时,接收端会要求发送端重新发送对应的包..
3. 当发送端收到要求重发请求时,发送端会重新发送1片的IP包
4.TCP会有确认机制,以及滑动窗口等,来提高效率
3. 当发送端收到要求重发请求时,发送端会重新发送1片的IP包
4.TCP会有确认机制,以及滑动窗口等,来提高效率
#3
1以及2,3的答案
任何IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据,并查询该接口的MTU。IP把MTU与数据报的长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发送在中间路由器上。IP数据报分片后,只有到达目的主机后才进行重装。
IP首部与分片有关的字段:
(1)对于每份IP数据报来说,都有一个标识字段,该值在分片时被复制到每个片中。
(2)标志字段用其中一个bit表示“更多的片”,除最后一片外,其他每个分片都要设置为1。
(3)片偏移字段指的是该片偏移原始数据报开始处的位置。
(4)数据报被分片后,每个片的总长度要改为该片的长度值。
(5)标志字段中有一个bit表示“不分片”,如果该位1,IP将不对数据报进行分片。
IP报即使丢失一片数据报也要重传整个数据报。为什么呢?因为IP层没有超时重传的机制,必须由更高层负责超时重传。
关于第四个问题,觉得还是硬件的支持吧,数据在网络中传输的时候失真以及噪声都相对比较小。所以传输效率比较高吧。
任何IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据,并查询该接口的MTU。IP把MTU与数据报的长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发送在中间路由器上。IP数据报分片后,只有到达目的主机后才进行重装。
IP首部与分片有关的字段:
(1)对于每份IP数据报来说,都有一个标识字段,该值在分片时被复制到每个片中。
(2)标志字段用其中一个bit表示“更多的片”,除最后一片外,其他每个分片都要设置为1。
(3)片偏移字段指的是该片偏移原始数据报开始处的位置。
(4)数据报被分片后,每个片的总长度要改为该片的长度值。
(5)标志字段中有一个bit表示“不分片”,如果该位1,IP将不对数据报进行分片。
IP报即使丢失一片数据报也要重传整个数据报。为什么呢?因为IP层没有超时重传的机制,必须由更高层负责超时重传。
关于第四个问题,觉得还是硬件的支持吧,数据在网络中传输的时候失真以及噪声都相对比较小。所以传输效率比较高吧。
#4
这东东是在tcpip.sys里面负责吗?ndis系列协议驱动处理完后就是传到tcpip.sys?
#5
1 2 3.IP协议时网络层的东西
它是管把数据传过去,甚至丢不丢它也是不管的,分片也不是它的事情了,假如是TCP丢了把,TCp会再重新发这个IP包过去
4.TCP的滑动窗口机制让它提高了效率,并不是你发的每一个包它都要确认
它是管把数据传过去,甚至丢不丢它也是不管的,分片也不是它的事情了,假如是TCP丢了把,TCp会再重新发这个IP包过去
4.TCP的滑动窗口机制让它提高了效率,并不是你发的每一个包它都要确认
#6
关于IP分片的问题, 书上讲得不多, 所以有点迷糊...不大敢下定论, 所以来向各位高手确认一下.
#7
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
由传输层(在IP协议之上,例如TCP、UDP协议)组装,处理方法没有统一要求,不过一般都有超时机制。
3, 如果有1片丢了怎么办?
丢弃报文,相当于都没收到。
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
TCP采用的是滑动窗机制,发送端连续发包,接收端在应答时反馈自己第1个缺少的包的编号(如果没有丢失,则反馈下一个要接收的编号),发送端根据收到的应答信息及数据发出的时间决定重发。
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
由传输层(在IP协议之上,例如TCP、UDP协议)组装,处理方法没有统一要求,不过一般都有超时机制。
3, 如果有1片丢了怎么办?
丢弃报文,相当于都没收到。
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
TCP采用的是滑动窗机制,发送端连续发包,接收端在应答时反馈自己第1个缺少的包的编号(如果没有丢失,则反馈下一个要接收的编号),发送端根据收到的应答信息及数据发出的时间决定重发。
#8
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
Answer: yes
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
3, 如果有1片丢了怎么办?
Answer: 会有定时器,但超时后,就会把前接收到的2片丢弃,超时重发是TCP的事,要是UDP,那就不管了。
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
Answer: TCP算法里有 Nagle算法,慢启动,快速重传与快速恢复算法等等。像TFP是成块数据流,会把 Nagle算法打开,数据捎带ACK。
#9
IP分片,重组应该是路由器做的事情。每经过一道路由,又重新分片,重组,与上层tcp无关。不知是不是这样。
#10
IP分片,即可能在发送主机上分片,也可能在Internet上的路由器上发生,但是,重组分片一定是接收主机的IP层。
#11
study
#12
1,接收端IP协议层检查到报文被分片了,那么该接收端IP协议负责组装好;
2,是的;
3,超时就整个包都丢掉。
4,不一定收到确认包之后才能发第2个包。比如如果窗口大小为2,那么在收到对方确认包之前也可以发第2个包,对方可以一个ACK包确认收到的2个包
2,是的;
3,超时就整个包都丢掉。
4,不一定收到确认包之后才能发第2个包。比如如果窗口大小为2,那么在收到对方确认包之前也可以发第2个包,对方可以一个ACK包确认收到的2个包
#13
学习了
#14
围观来着
#15
IP不支持分片,上层TCP可以,低层PPP也可以.
#16
学习
#17
IP不支持分片?
那路由器里面分片是属于啥的
#18
学习了
#19
前两点记错了,更正一下,分片组装是由网络层(IP协议)处理的,在目标主机上进行,有超时机制。
#20
围观来看
#21
Mark!
#22
mark!
#23
瞧了一下,,不是很懂
#24
路过的
#25
我的理解是:
其实不是IP不分片,分片是IP层来做的,但是一个已经成型的IP包是不会再分的
至于路由的分片,是因为路由对于网络层来说是一端了
#26
就这样的
#27
ip分片,对方ip层来组合
路由分片,其实可以把这时的路由器当做主机的ip层,OSI没有规定路由器就非得属于哪一层,这只是ipv4.
ipv6中路由根本不分片!
路由分片,其实可以把这时的路由器当做主机的ip层,OSI没有规定路由器就非得属于哪一层,这只是ipv4.
ipv6中路由根本不分片!
#28
貌似很复杂啊!~
#29
学习了
#30
学习一下
#31
我假设发送端IP报文的DF位置0, 允许分片. 在路径上某个路由器限于MTU, 将该IP报文分成了3片才发送出去.
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
对。
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
没有定时器,由更高层来负责超市和重传(tcp有超时和重传机制,udp没有,一些udp应用程序自己实现超时和重传机制)
3, 如果有1片丢了怎么办?
ip层自己没有超时和重传机制,所以如果有一片丢失了,tcp层或者使用的udp协议但在应用程序中启用了自己的超时和重传机制的时候,tcp层或这样的应用程序将在超时后要求对方重传整个数据报,而不是一个ip分片,因为它们都根本不知道ip分片这回事;如果是使用udp协议的而且应用程序自己也没有实现一个超时和重传机制的,那么也就永远不会再重传了。
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
每个问题50分哈, 多谢多谢.
#32
我是LZ, 统一一下各位的看法:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
-----由接收端IP协议组装.
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
-----启用定时器.
3, 如果有1片丢了怎么办?
-----丢弃, 等待发送端超时重传.
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
-----使用滑动窗口
但我又有一个问题, 前面cnzdgs提到滑动窗口选择重传机制会用到"包的编号", TCP首部没有编号这么个东西啊, 是不是"序号"字段?
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
-----由接收端IP协议组装.
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
-----启用定时器.
3, 如果有1片丢了怎么办?
-----丢弃, 等待发送端超时重传.
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
-----使用滑动窗口
但我又有一个问题, 前面cnzdgs提到滑动窗口选择重传机制会用到"包的编号", TCP首部没有编号这么个东西啊, 是不是"序号"字段?
#33
这里用“编号”不太准确,应该说是序列号和确认号。
#34
学习,学习。
#35
#36
建议楼主用 wireshark 捕捉网络数据包分析。这样学习起来事半功倍。
#37
这些东西还是不要这么讨论了,会误导各位朋友。需要了解TCP/IP的协议以及通信机制,请参考TCP/IP协议卷1、2、3,其实搜索几篇文章也就了解各大概了。这么讨论,按照自己的理解进行讨论,只会弄得云里雾里。数据网络通信协议还是挺复杂的,如果感兴趣,可以访问这么几个网站。此外,自己安装个wireshark捕获下自己上网的数据包也有助于理解数据通信协议的学习理解。
www.cnpaf.net
www.netexpert.cn
www.cnpaf.net
www.netexpert.cn
#38
支持
#39
还是不太懂,
问题:如果传来1,3片,的时候IP层就开始重组是吗?可是发现还有第2片,然后就等待,是吗??
#40
圣蛋快乐,不懂技术来混分的
#41
学习中……
#42
是的,当有一片第一个到来时IP就启动重组定时器。如果在IP重组计时器超时前还没有收齐所有分片,则丢弃本次IP报的所有分片,并且不做任何其它的动作。等到TCP计时器超时后,TCP会要求对方重发。
#43
这里的重发应该不是TCP负责的,TCP负责的重传应该是校验数据的错误的时候发出的。
丢片的重传应该是IP层发送一个ICMP来要求重传的,继续探讨!!
#44
唉 感觉各位都挺强的,网络协议我看了不少 里面的东西太复杂了 感觉单看协议不好学,还是抓抓包去看来的更实际,TCP/IP第1卷协议讲的很清楚的 可以参考着看
#45
要命,你是从哪里听到这种观点的?!
#46
别信哥,哥只是个传说。
#47
我假设发送端IP报文的DF位置0, 允许分片. 在路径上某个路由器限于MTU, 将该IP报文分成了3片才发送出去.
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
YES
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
YES
3, 如果有1片丢了怎么办?
分片丢失,重传
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
这个在网络的世界里面,是以毫秒为单位的,所以有人觉得这样一来会加重协议堆栈的负担,
二来速度不快,就用UDP自己设计了一套重传机制,例如酷狗,PPS(另外一个原因是可以越过NAT)
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
YES
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
YES
3, 如果有1片丢了怎么办?
分片丢失,重传
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
这个在网络的世界里面,是以毫秒为单位的,所以有人觉得这样一来会加重协议堆栈的负担,
二来速度不快,就用UDP自己设计了一套重传机制,例如酷狗,PPS(另外一个原因是可以越过NAT)
#48
没看懂,有时间再研究一下
#49
我假设发送端IP报文的DF位置0, 允许分片. 在路径上某个路由器限于MTU, 将该IP报文分成了3片才发送出去.
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
YES
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
YES
3, 如果有1片丢了怎么办?
分片丢失,重传 (由上层协议负责重传,并且是整个数据报,不只是一个分片。)
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
这个在网络的世界里面,是以毫秒为单位的,所以有人觉得这样一来会加重协议堆栈的负担,
二来速度不快,就用UDP自己设计了一套重传机制,例如酷狗,PPS(另外一个原因是可以越过NAT)
#50
补充:这里负责重传的上层是指TCP或者使用了UDP的自行实现超时重传的应用层。
#1
我也想知道,呵呵。最好能结合NDIS协议说下流程
NDIS那里接收到的是mac帧。然后住上层给谁,然后他怎么整。
NDIS那里接收到的是mac帧。然后住上层给谁,然后他怎么整。
#2
1.2. IP只负责发送包,上层来决定包的重组,TCP有校验机制等,当发现包没有收到或者包的数据损坏时,接收端会要求发送端重新发送对应的包..
3. 当发送端收到要求重发请求时,发送端会重新发送1片的IP包
4.TCP会有确认机制,以及滑动窗口等,来提高效率
3. 当发送端收到要求重发请求时,发送端会重新发送1片的IP包
4.TCP会有确认机制,以及滑动窗口等,来提高效率
#3
1以及2,3的答案
任何IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据,并查询该接口的MTU。IP把MTU与数据报的长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发送在中间路由器上。IP数据报分片后,只有到达目的主机后才进行重装。
IP首部与分片有关的字段:
(1)对于每份IP数据报来说,都有一个标识字段,该值在分片时被复制到每个片中。
(2)标志字段用其中一个bit表示“更多的片”,除最后一片外,其他每个分片都要设置为1。
(3)片偏移字段指的是该片偏移原始数据报开始处的位置。
(4)数据报被分片后,每个片的总长度要改为该片的长度值。
(5)标志字段中有一个bit表示“不分片”,如果该位1,IP将不对数据报进行分片。
IP报即使丢失一片数据报也要重传整个数据报。为什么呢?因为IP层没有超时重传的机制,必须由更高层负责超时重传。
关于第四个问题,觉得还是硬件的支持吧,数据在网络中传输的时候失真以及噪声都相对比较小。所以传输效率比较高吧。
任何IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据,并查询该接口的MTU。IP把MTU与数据报的长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发送在中间路由器上。IP数据报分片后,只有到达目的主机后才进行重装。
IP首部与分片有关的字段:
(1)对于每份IP数据报来说,都有一个标识字段,该值在分片时被复制到每个片中。
(2)标志字段用其中一个bit表示“更多的片”,除最后一片外,其他每个分片都要设置为1。
(3)片偏移字段指的是该片偏移原始数据报开始处的位置。
(4)数据报被分片后,每个片的总长度要改为该片的长度值。
(5)标志字段中有一个bit表示“不分片”,如果该位1,IP将不对数据报进行分片。
IP报即使丢失一片数据报也要重传整个数据报。为什么呢?因为IP层没有超时重传的机制,必须由更高层负责超时重传。
关于第四个问题,觉得还是硬件的支持吧,数据在网络中传输的时候失真以及噪声都相对比较小。所以传输效率比较高吧。
#4
这东东是在tcpip.sys里面负责吗?ndis系列协议驱动处理完后就是传到tcpip.sys?
#5
1 2 3.IP协议时网络层的东西
它是管把数据传过去,甚至丢不丢它也是不管的,分片也不是它的事情了,假如是TCP丢了把,TCp会再重新发这个IP包过去
4.TCP的滑动窗口机制让它提高了效率,并不是你发的每一个包它都要确认
它是管把数据传过去,甚至丢不丢它也是不管的,分片也不是它的事情了,假如是TCP丢了把,TCp会再重新发这个IP包过去
4.TCP的滑动窗口机制让它提高了效率,并不是你发的每一个包它都要确认
#6
关于IP分片的问题, 书上讲得不多, 所以有点迷糊...不大敢下定论, 所以来向各位高手确认一下.
#7
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
由传输层(在IP协议之上,例如TCP、UDP协议)组装,处理方法没有统一要求,不过一般都有超时机制。
3, 如果有1片丢了怎么办?
丢弃报文,相当于都没收到。
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
TCP采用的是滑动窗机制,发送端连续发包,接收端在应答时反馈自己第1个缺少的包的编号(如果没有丢失,则反馈下一个要接收的编号),发送端根据收到的应答信息及数据发出的时间决定重发。
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
由传输层(在IP协议之上,例如TCP、UDP协议)组装,处理方法没有统一要求,不过一般都有超时机制。
3, 如果有1片丢了怎么办?
丢弃报文,相当于都没收到。
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
TCP采用的是滑动窗机制,发送端连续发包,接收端在应答时反馈自己第1个缺少的包的编号(如果没有丢失,则反馈下一个要接收的编号),发送端根据收到的应答信息及数据发出的时间决定重发。
#8
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
Answer: yes
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
3, 如果有1片丢了怎么办?
Answer: 会有定时器,但超时后,就会把前接收到的2片丢弃,超时重发是TCP的事,要是UDP,那就不管了。
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
Answer: TCP算法里有 Nagle算法,慢启动,快速重传与快速恢复算法等等。像TFP是成块数据流,会把 Nagle算法打开,数据捎带ACK。
#9
IP分片,重组应该是路由器做的事情。每经过一道路由,又重新分片,重组,与上层tcp无关。不知是不是这样。
#10
IP分片,即可能在发送主机上分片,也可能在Internet上的路由器上发生,但是,重组分片一定是接收主机的IP层。
#11
study
#12
1,接收端IP协议层检查到报文被分片了,那么该接收端IP协议负责组装好;
2,是的;
3,超时就整个包都丢掉。
4,不一定收到确认包之后才能发第2个包。比如如果窗口大小为2,那么在收到对方确认包之前也可以发第2个包,对方可以一个ACK包确认收到的2个包
2,是的;
3,超时就整个包都丢掉。
4,不一定收到确认包之后才能发第2个包。比如如果窗口大小为2,那么在收到对方确认包之前也可以发第2个包,对方可以一个ACK包确认收到的2个包
#13
学习了
#14
围观来着
#15
IP不支持分片,上层TCP可以,低层PPP也可以.
#16
学习
#17
IP不支持分片?
那路由器里面分片是属于啥的
#18
学习了
#19
前两点记错了,更正一下,分片组装是由网络层(IP协议)处理的,在目标主机上进行,有超时机制。
#20
围观来看
#21
Mark!
#22
mark!
#23
瞧了一下,,不是很懂
#24
路过的
#25
我的理解是:
其实不是IP不分片,分片是IP层来做的,但是一个已经成型的IP包是不会再分的
至于路由的分片,是因为路由对于网络层来说是一端了
#26
就这样的
#27
ip分片,对方ip层来组合
路由分片,其实可以把这时的路由器当做主机的ip层,OSI没有规定路由器就非得属于哪一层,这只是ipv4.
ipv6中路由根本不分片!
路由分片,其实可以把这时的路由器当做主机的ip层,OSI没有规定路由器就非得属于哪一层,这只是ipv4.
ipv6中路由根本不分片!
#28
貌似很复杂啊!~
#29
学习了
#30
学习一下
#31
我假设发送端IP报文的DF位置0, 允许分片. 在路径上某个路由器限于MTU, 将该IP报文分成了3片才发送出去.
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
对。
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
没有定时器,由更高层来负责超市和重传(tcp有超时和重传机制,udp没有,一些udp应用程序自己实现超时和重传机制)
3, 如果有1片丢了怎么办?
ip层自己没有超时和重传机制,所以如果有一片丢失了,tcp层或者使用的udp协议但在应用程序中启用了自己的超时和重传机制的时候,tcp层或这样的应用程序将在超时后要求对方重传整个数据报,而不是一个ip分片,因为它们都根本不知道ip分片这回事;如果是使用udp协议的而且应用程序自己也没有实现一个超时和重传机制的,那么也就永远不会再重传了。
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
每个问题50分哈, 多谢多谢.
#32
我是LZ, 统一一下各位的看法:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
-----由接收端IP协议组装.
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
-----启用定时器.
3, 如果有1片丢了怎么办?
-----丢弃, 等待发送端超时重传.
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
-----使用滑动窗口
但我又有一个问题, 前面cnzdgs提到滑动窗口选择重传机制会用到"包的编号", TCP首部没有编号这么个东西啊, 是不是"序号"字段?
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
-----由接收端IP协议组装.
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
-----启用定时器.
3, 如果有1片丢了怎么办?
-----丢弃, 等待发送端超时重传.
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
-----使用滑动窗口
但我又有一个问题, 前面cnzdgs提到滑动窗口选择重传机制会用到"包的编号", TCP首部没有编号这么个东西啊, 是不是"序号"字段?
#33
这里用“编号”不太准确,应该说是序列号和确认号。
#34
学习,学习。
#35
#36
建议楼主用 wireshark 捕捉网络数据包分析。这样学习起来事半功倍。
#37
这些东西还是不要这么讨论了,会误导各位朋友。需要了解TCP/IP的协议以及通信机制,请参考TCP/IP协议卷1、2、3,其实搜索几篇文章也就了解各大概了。这么讨论,按照自己的理解进行讨论,只会弄得云里雾里。数据网络通信协议还是挺复杂的,如果感兴趣,可以访问这么几个网站。此外,自己安装个wireshark捕获下自己上网的数据包也有助于理解数据通信协议的学习理解。
www.cnpaf.net
www.netexpert.cn
www.cnpaf.net
www.netexpert.cn
#38
支持
#39
还是不太懂,
问题:如果传来1,3片,的时候IP层就开始重组是吗?可是发现还有第2片,然后就等待,是吗??
#40
圣蛋快乐,不懂技术来混分的
#41
学习中……
#42
是的,当有一片第一个到来时IP就启动重组定时器。如果在IP重组计时器超时前还没有收齐所有分片,则丢弃本次IP报的所有分片,并且不做任何其它的动作。等到TCP计时器超时后,TCP会要求对方重发。
#43
这里的重发应该不是TCP负责的,TCP负责的重传应该是校验数据的错误的时候发出的。
丢片的重传应该是IP层发送一个ICMP来要求重传的,继续探讨!!
#44
唉 感觉各位都挺强的,网络协议我看了不少 里面的东西太复杂了 感觉单看协议不好学,还是抓抓包去看来的更实际,TCP/IP第1卷协议讲的很清楚的 可以参考着看
#45
要命,你是从哪里听到这种观点的?!
#46
别信哥,哥只是个传说。
#47
我假设发送端IP报文的DF位置0, 允许分片. 在路径上某个路由器限于MTU, 将该IP报文分成了3片才发送出去.
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
YES
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
YES
3, 如果有1片丢了怎么办?
分片丢失,重传
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
这个在网络的世界里面,是以毫秒为单位的,所以有人觉得这样一来会加重协议堆栈的负担,
二来速度不快,就用UDP自己设计了一套重传机制,例如酷狗,PPS(另外一个原因是可以越过NAT)
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
YES
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
YES
3, 如果有1片丢了怎么办?
分片丢失,重传
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
这个在网络的世界里面,是以毫秒为单位的,所以有人觉得这样一来会加重协议堆栈的负担,
二来速度不快,就用UDP自己设计了一套重传机制,例如酷狗,PPS(另外一个原因是可以越过NAT)
#48
没看懂,有时间再研究一下
#49
我假设发送端IP报文的DF位置0, 允许分片. 在路径上某个路由器限于MTU, 将该IP报文分成了3片才发送出去.
那么有几个问题:
1, 由谁来将这个分片重新组装好? 接收端的IP协议吗?
YES
2, 如果是IP协议, 那么IP协议是不是也要像TCP协议一样, 启动一个定时器, 等到3片都到齐?
YES
3, 如果有1片丢了怎么办?
分片丢失,重传 (由上层协议负责重传,并且是整个数据报,不只是一个分片。)
另外再附带问一个:
4, 一个TCP连接启动一个定时器, 每发出一个包, 收到对端确认之前不发第二个包, 这样效率应该很低吧? 为什么使用TCP的FTP传文件有时还挺快的呢?
这个在网络的世界里面,是以毫秒为单位的,所以有人觉得这样一来会加重协议堆栈的负担,
二来速度不快,就用UDP自己设计了一套重传机制,例如酷狗,PPS(另外一个原因是可以越过NAT)
#50
补充:这里负责重传的上层是指TCP或者使用了UDP的自行实现超时重传的应用层。