社区
通信技术
帖子详情
关于控制TCP的传输速率问题
xysome
2006-08-07 05:22:19
现在在做这样一个系统,一边是以太网,另一边是电话拨号上网,以太网端的TCP连接以太网上的一个终端,电话拨号那边连接Internet上的一个终端,将以太网收到的TCP数据传到Internet上去。现在出现了一个问题,由于以太网端的TCP传输过快,而电话拨号端传输太慢,很快系统内存被耗尽。怎样能控制以太网端的TCP传输速度,使得它与电话拨号端匹配?用TCP的窗口机制能控制吗?具体如何实现?
...全文
545
12
打赏
收藏
关于控制TCP的传输速率问题
现在在做这样一个系统,一边是以太网,另一边是电话拨号上网,以太网端的TCP连接以太网上的一个终端,电话拨号那边连接Internet上的一个终端,将以太网收到的TCP数据传到Internet上去。现在出现了一个问题,由于以太网端的TCP传输过快,而电话拨号端传输太慢,很快系统内存被耗尽。怎样能控制以太网端的TCP传输速度,使得它与电话拨号端匹配?用TCP的窗口机制能控制吗?具体如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xysome
2006-08-18
打赏
举报
回复
主要是以太网上其他计算机是独立的,不能更改程序的,只有我这边去适应他们,所以无法实现同步。
netsys2
2006-08-15
打赏
举报
回复
你只有自己尝试,发送时加SLEEP延时,另外编写一个SERVER来测试接收速度,然后逐渐减少SLEEP的时间,直到满足你的要求。
xysome
2006-08-15
打赏
举报
回复
如果每一次发数据都等上一个send发送成功,那么发送就会非常缓慢了,应该不是这个机制吧
binglex
2006-08-11
打赏
举报
回复
看来lz在接收端进行了控制,还应该在发送端也进行控制把,确认上一个send成功之后再发送下边的数据,而不是一直发送。
UDX协议
2006-08-10
打赏
举报
回复
那可以用select模型。当可写的时候,再去写。
xysome
2006-08-09
打赏
举报
回复
我这是在嵌入式系统中做的,不是在Windows下编程
UDX协议
2006-08-08
打赏
举报
回复
你这种问题用overlay方案是最好的,当上次投递的发送完成之后再去发下一个包,这样就不会出现你的情况。如果需要我帮你解决,短信联系。
DentistryDoctor
2006-08-08
打赏
举报
回复
TCP是自己会控制快发慢收的问题的,是不是你自己在应用层缓存了过多的数据?
UDX协议
2006-08-08
打赏
举报
回复
The Windows Sockets WSAOVERLAPPED structure provides a communication medium between the initiation of an overlapped I/O operation and its subsequent completion
这个结构中有一个事件,你可以当发送完一个包的时候,接收到事件,从而你可以有序的,可控的发送。
xysome
2006-08-08
打赏
举报
回复
To:oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)
您的建议:TCP发送的时候放慢点。
这可没个准了,放慢到什么程度合适呢?这才是问题所在。
To:DentistryDoctor(牙医的目标是没有蛀牙)
您的建议:TCP是自己会控制快发慢收的问题的,是不是你自己在应用层缓存了过多的数据?
TCP可以控制,好像是用滑动窗口机制。在应用层(注意是嵌入式系统的),我是这样做的:只要系统内存低于警戒值,我就将TCP的滑动窗口调整至0,这样对方就知道我现在不能再接收数据了,实际上解决了流控问题。上述方法已实现,但问题是内存恢复的时候,TCP莫名其妙断开了,只得重新连接,这是什么原因?
To:wwwllg(野蛮人)
您的建议:你这种问题用overlay方案是最好的,当上次投递的发送完成之后再去发下一个包,这样就不会出现你的情况。如果需要我帮你解决,短信联系。
请问什么是Overlay?短信已发,请指教,谢谢!
oyljerry
2006-08-07
打赏
举报
回复
TCP发送的时候放慢点
Radar2006
2006-08-07
打赏
举报
回复
up
计算机网络 传输层
TCP
和UDP协议
Re: 计算机网络 传输层
TCP
和UDP协议# 传输层协议
TCP
和 UDP 的应用场景 要发送的内容多,需要将发送的内容分成多个数据包发送(
TCP
) 要发送的内容少,一个数据包就能发送全部内容(UDP)# 传输层协议和应用层协议之间的关系 传输层协议加一个端口号来标识一个应用层协议, 展示了传输层协议和应用层协议之间的关系# 使用
TCP
/IP筛选实现网络安全 防火墙设置与端口# UDP协议特点和报文格式UDP是无连接的:即发送数据之前不需要建立连接UDP使用尽最大努力交付:即不保证可靠交付,因此主机不需要维持复杂的连接状态表#
TCP
协议特点和报文格式先连接后释放;点对点;可靠传输;全双工通信;面向数据流七项标记位停止等待协议与改进的停止等待协议滑动窗口技术详解:确认Seq与选择确认SACK 超时重传时间:查询计算与自动调整 流量
控制
功能:点对点的流量
控制
拥塞
控制
:相对整体网络环境而言;慢开始算法和拥塞避免算法 改进的拥塞
控制
:快重传和快恢复 三次握手建立
TCP
连接,四次挥手释放连接。#
TCP
协议面临的攻击 SYN 攻击:捏造的源地址; LAND攻击:自己就是源地址# 通过抓包工具,查看以上报文格式# 习题详解
深入理解
TCP
发送速率
控制
协议
TCP
Friendly Rate Control(TFRC),是网络环境下单播流的一种拥塞
控制
机制。对于
TCP
流,它是公平竞争带宽的。但是与
TCP
相比,吞吐量随时间的变化要小得多,也就是对带宽变化的响应比
TCP
慢,使其更适用于电话通信、流媒体等需要相对平滑发送速率的应用。因此,TFRC仅用于需要平滑吞吐量时,尤其是避免
TCP
响应单个丢包而将发送速率减半。推荐使用
TCP
发送尽可能多的数据包,或者不需要可靠机制,可以使用加法增加、乘法减小(AIMD)的拥塞
控制
方案,与
TCP
使用的参数类似。TFRC是为发送固定
TCP
传输速率
估算
如下公式,带宽取值为计算得出的数据发送速率与接收ACK速率两者之间的较小值。通常情况下,发送速率(send_rate)将大于ACK接收速率(ack_rate),但是,在面对ACK压缩等的情况下,将导致ACK接收速率意外的增大,此时,带宽应选取发送速率(send_rate)。 send_rate = #pkts_delivered/(last_snd_time - first_snd_time) ack_rate = #pkts_delivered/(last_ack_time - firs
TCP
协议可靠性以及
传输速率
的保证(图解)
TCP
协议可靠性以及
传输速率
的保证可靠性的保证1.缓冲区2. 确认应答机制3. 超时重传机制4. 差错校验机制
传输速率
的保证1. 全双工2. 滑动窗口3. 拥塞
控制
4.延持应答5.捎带应答 可靠性的保证 1.缓冲区 在UDP协议中是没有真正意义的发送缓冲区的,所以这也就确定了UDP是不可靠传输。发送缓冲区的作用是缓存应用层将要发送的数据,数据发送之后,在没有收到对应的确认包之前,这些数据是不会从发送缓冲区清除的,为重传做准备。 2. 确认应答机制 在A向B发送数据时,如果没有收到 相应的确认包,那么
5.7.2
TCP
的传输效率
应用进程把数据传送到
TCP
的发送缓存后,剩下的发送任务就由
TCP
来
控制
。
TCP
有3种机制来
控制
TCP
报文段的发送时机: 1、
TCP
维持一个变量,等于最大报文段长度MSS。只要缓存中的数据达到MSS字节,就组装成一个
TCP
报文段发送出去。 2、由发送方的应用进程指明要求发送报文段,即
TCP
支持的推送(PUSH)操作。 3、发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(长度不能超过MSS)发送出去。 如何
控制
TCP
发送报文段的时机仍然是一个较为复杂的
问题
。如: 一个用户使用一条..
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章