IT猎户网
IT易学网
IT慕课网
联系我们
腾科IT教育
18922156670
广州总校区
切换校区
集团
深圳
全部课程
软件开发
Java
Java高级软件工程师
Android
Android高级软件工程师
UI设计
UI高级设计师
HTML5
HTML5高级前端工程师
大数据
大数据高级软件工程师
华为认证
HCNA
R&S
/
Security
/
Storage
/
Big-Data
/
Cloud
/
DC
/
UC
/
VC
/
WLAN
CC
/
Transmission
HCNP
R&S
/
Security
/
Storage
/
Big-Data
/
Cloud
/
DC
/
UC
/
VC
/
WLAN
/
CC
/
Transmission
HCIE
R&S
/
Security
/
Storage
/
Big-Data
/
Cloud
/
DC
/
UC
/
VC
/
WlAN
/
CC
/
Transmission
思科认证
CCNA
R&S
/
Security
/
SP
/
DC
/
Collaboration
/
Wireless
/
Cloud
CCNP
R&S
/
Security
/
SP
/
DC
/
Collaboration
/
Wireless
/
Cloud
CCIE
R&S
/
Security
/
SP
/
DC
/
Collaboration
/
Wireless
微软认证
MTA
IT Fundamentals
/
Database Fundamentals
/
Development Fundamentals
MCSA
Windows Server(服务器)
/
SQL Server(数据库)
MCSE
Windows Server(服务器)
/
SQL Server(数据库)
数据认证
Oracle(甲骨文)
OCA甲骨文认证专员
OCP甲骨文认证专家
OCM甲骨文认证大师
MySQL
MySQL技能班
MySQL精英强化班
红帽认证
RHCSA
红帽认证系统管理员
RHCE
红帽认证工程师
RHCA
红帽认证云计算工程师
OpenStack
OpenStack认证工程师
RHCVA
红帽认证虚拟化工程师
RHCSS
红帽认证安全工程师
Cloudera
Apache Hadoop管理员
Apache HBase
Spark及Hadoop开发员
数据分析师:Pig、Hive和Impala
Cloudera检索培训
Spark和Hadoop上的数据科学
其他课程
VMware
Python
CompTIA
ITIL
CISSP
AIX
F5
Citrix
Bigdata
首页
学习天地
师资力量
学员活动
新闻资讯
关于我们
微信
电话
复制成功
微信号:
togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
news
新闻资讯
企业新闻
行业新闻
行业新闻
HOME
>
新闻资讯
>
行业新闻
>
TCP传输规则及策略
发布时间:
2022-04-15
TCP传输规则及策略
,TCP协议通过提供滑动窗口管理机制,在确保数据传输的可靠性的同时,充分地利用网络带宽。
滑动窗口提供一种动态的传输机制,允许一次连续传输若干数据包而不必一一等待确认,但对连续发送的数据包的数量进行限制。
滑动窗口的大小表明了接收方接收缓冲区的大小。它由一组按顺序排列的数据包序号组成,这些数据包包括:发送并已确认部分,发送但未被确认的部分和能够发送但未发送的部分。按照顺序发送的若干数据包不必一一等待确认,确认的顺序可以打乱。
假设发送方通过滑动窗口一次性向接收方发送了顺序号为4、5和6的数据包,数据包5、6被确认,而数据包4未被确认,这时窗口是不能被滑动的,直到数据包4被确认后,窗口立即向后滑动。实际上,滑动窗口的大小在随着接收方缓冲区的变动而变动,努力地使发送方一次发送的若干数据包可以正好填满接收方的接收缓冲区,这实际上是一种流量控制技术。
滑动窗口主要负责对流量进行控制,路由器或接收方可以通过发送ICMP消息给发送方,以确保发送方发送数据包的速度。
发送方在知道接收方缓冲区大小的情况下发送了一个数据包,而该数据包只占用了接收方缓冲区的一部分。在应用程序取走这个数据包之前,接收方会通告窗口大小为剩下的那部分缓冲区的大小,并立即对上一次的数据包进行确认。
发送方会根据接收方提供的新的窗口大小进行发送,如果这时发送的数据包正好装满接收方的缓冲区,但接收方的应用程序还没有对数据进行读取,接收方会进行确认并声明滑动窗口大小为0。
此时发送方会停止发送数据包而进入等待状态,直到接收方的应用程序读取缓冲区内的数据后,接收方又会声明大于0 的窗口大小,发送方会继续发送数据。在这种情况下,很容易出现窗口声明丢失从而出现死锁的可能。
实际上,TCP标准提供了比较有效的手段防止以上情况的发生。
其实,发送方不用在应用程序的数据到来时就马上发送数据包;接收方也不用一收到数据包就进行确认。发送方产生了一个数据包,但该数据包可能只占用接收方缓冲区的一部分,此时发送方会将该数据包暂时缓存起来,等数据包的数量和大小足以装满接收方缓冲区时再一起发送,接收方亦如此。利用这一方式可以大大提高数据传输的性能。
TCP在具体实现时采用设置延迟的方式,即对包含确认信息和窗口大小的修改信息的数据包进行延迟操作,向后延迟500ms再发送出去,并尽可能在这些数据包上带上一些实际数据。这样,只要应用程序在500ms内响应,便可以将发送的数据包数降低50%,网络的实际利用率也随之得到提高。
采用这种方法可以改善网络的使用状况,但发送方的效率还是没有得到有效的改善。
以上提到的情况其实属于愚蠢窗口症候群(silly window syndrome)现象:终端应用程序在普遍情况下每进行一次单击键盘操作(即一个字节)就会发送一个包,而典型情况下一个包会拥有一个字节的数据载荷和40个字节长(20字节TCP头和20字节的IP)的头,于是产生4000%的过载,很轻易地就降低了网络传输性能。
1984 年,John Nagle设计了Nagle算法解决这种网络问题,后来成为了一种标准并且在因特网上得以实现。
现在Nagle算法已经成为默认配置了。这种方法的原理其实很简单:发送方首先发送从应用程序传来的数据的第一个字节,并等待接收方的确认信息;在此之前,从应用程序传来的数据会缓存起来,当确认信息到达后,即将缓存的数据一起发送出去。
这种方法动态地改善了网络性能。但是在某些实际的TCP程序设计中,最好将Nagle算法关掉,因为使用它也可能产生不良效果。
分享到:
QQ空间
新浪微博
腾讯微博
人人网
微信
更多
上一篇:
什么是ARP协议
下一篇:
什么是端口与端口号
热点新闻
1.华为ict技术是指什么
2.红帽认证rhce需要报培训班吗?
3.华为认证有哪些作用?
4..db文件用什么打开
5.广州java培训学费是多少?
<
联系电话:18922156670
在线咨询
在线咨询
×
您好,请问有什么可以帮您?我们将竭诚提供最优质服务!
QQ咨询
下次再说