社区
网络编程
帖子详情
tcp发送区满接收区满的情况
burningbloodgg
2013-03-28 09:08:58
应该都不会丢吧。客户端如果发送端满了,此时再往里写数据,此时应该是阻塞吧?服务器端如果接收区满了,此时客户端是不断的重发?
...全文
151
2
打赏
收藏
tcp发送区满接收区满的情况
应该都不会丢吧。客户端如果发送端满了,此时再往里写数据,此时应该是阻塞吧?服务器端如果接收区满了,此时客户端是不断的重发?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fishion
2013-03-29
打赏
举报
回复
发送端满了如果是同步的方式应该是阻塞了,如果异步方式应该会返回缓冲区已满的错误。 如果接收区满的话,那放送端肯定也不能继续发送数据过来了
youngwolf
2013-03-29
打赏
举报
回复
每个套接字只关心自己的buffer,客户端不可能知道服务端buffer的情况。 客户端不是因为服务端buffer满而阻塞,而是因为,当服务端buffer满之后,数据无法发送到服务湍,造成客户端自己的buffer满,所以才阻塞。
windows网络编程之
tcp
/ip
适用人群 windows网络编程的初学者 课程概述 课程简介: 这部教程是windows网络编程课程的第一部分课程:
tcp
/ip协议 后续会有第二部分课程:udp/ip协议以及第三部分课程http协议的课程发布。希望能够帮助到大家。 ...
tcp
缓冲
区满
的问题
服务端
发送
大量数据,
接收
端
接收
速度慢,缓冲
区满
的时候,
接收
端向服务端发普通的心跳包,send显示成功了,但服务端就是收不到,抓包看显示
tcp
zerowindow,将
接收
端缓冲区改大后正常了,改成了1M,但
接收
端
接收
缓冲
区满
了,为什么会影响
接收
端向服务端发包呢,他们不是2个缓冲区吗
TCP
的数据
发送
和
接收
TCP
通信的单位是一个报文,
TCP
报文包括报文头部和数据部分,头部最少占用20个字节。运用
TCP
协议进行通信前需要建立连接(三次握手),数据传输完成后,最后需要断开连接(4次握手)。
TCP
发送
缓存和
接收
缓存,
TCP
发送
窗口和
接收
窗口,以及拥塞窗口。
TCP
的可靠传输是通过滑动窗口来实现的。
TCP
的滑动窗口的单位是字节的。
发送
窗口中是表
TCP
/UDP的
接收
缓冲区和
发送
缓冲区
1、
TCP
. SO_RCVBUF &
TCP
. SO_SNDBUF 每个
TCP
socket在内核中都有一个
发送
缓冲区和一个
接收
缓冲区,
TCP
的全双工的工作模式以及
TCP
的流量(拥塞)控制便是依赖于这两个独立的buffer以及buffer的填充状态。 1.1
接收
端冲区
接收
缓冲区把数据缓存入内核,应用进程一直没有调用recv()进行读取的话,此数据会一直缓存在相应socket的
接收
...
TCP
/IP传输层协议实现 -
TCP
接收
窗口/
发送
窗口/通告窗口(lwip)
1、
tcp
通告窗口/
接收
窗口/
发送
窗口
接收
端有一个
接收
窗口大小,
接收
端只能
接收
这么多数据,
接收
窗口的数据需要被上层
接收
后才释放更大
接收
空间,才可以
接收
更多数据;
接收
窗口之前的数据已经被
接收
,再次
接收
到
接收
窗口之前的数据可以认为是重复
发送
的,不处理,
接收
窗口之后的数据不能
接收
,超出
接收
范围直接丢弃。
接收
端通过
tcp
首部通告窗口字段告诉对端本地可以可以
接收
多少数据,用于控制
发送
端的
发送
窗口大小。
发送
端有一个
发送
窗口,
发送
窗口大小即为对端通告窗口的大小,只有
发送
窗口内的
tcp
报文才可以
发送
。
发送
窗口之
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章