当前位置: 首页 > news >正文

做二手设备的网站时事新闻最新消息

做二手设备的网站,时事新闻最新消息,如何在谷歌上做网站,企业建设网页目录 一、TCP协议 1.1 确认应答 1.2 超时重传 1.3 连接管理 1.4 TCP状态 1.5 滑动窗口 1.6 流量控制 1.7 拥塞控制 1.8 延迟应答 1.9 捎带应答 1.10 粘包问题 1.11 异常情况 二、TCP/UDP对比 总结 一、TCP协议 TCP 协议和 UDP 协议是处于传输层的协议。 【TCP协…

目录

一、TCP协议

1.1 确认应答

1.2 超时重传

1.3 连接管理

1.4 TCP状态

1.5 滑动窗口

1.6 流量控制

1.7 拥塞控制

1.8 延迟应答

1.9 捎带应答

1.10 粘包问题

1.11 异常情况

二、TCP/UDP对比

总结


一、TCP协议

TCP 协议和 UDP 协议是处于传输层的协议。

【TCP协议段格式】

【6位标志位】

1、URG:紧急指针是否有效。

2、ACK:应答报文。

3、PSH:提示接收端应用程序立即从TCP缓冲区中把数据读取走。

4、RST:对端要求重新建立连接。携带 RST 标识的称为复位报文段

5、SYN:请求建立连接。携带 SYN 标识的称为同步报文段

6、FIN:通知对端,本端要关闭了。携带 FIN 标识的称为结束报文段


1.1 确认应答

TCP 将每个字节的数据都进行了编号。确认应答中,通过应答报文 (ACK报文) 来反馈给发送方,我已经收到哪些数据,下一次你该从哪个位置开始发送。应答报文中的确认序号,是按照发送数据的最后一个字节编号再加 1 来设定的。

注: TCP 的确认应答是确保 TCP 可靠性的最核心机制。


1.2 超时重传

超时重传是确认应答的补充。当发送端发送完数据,然后在一定时间内未收到 ACK 报文,此时发送端就判定出现了 "丢包",就会重新发送数据。但是 "丢包" 可能是数据丢了,也可能是 ACK 报文丢了。 

【数据丢包】

数据在发送给接收端的过程中丢失,此时超时重传就能解决问题。

【ACK丢包】

若是 ACK 报文丢失,可能导致发送两次同样的数据,而为了防止接收两次同样数据的情况出现,TCP socket 在内核中就引入了接收缓冲区,发送端发来的数据会先放入接收缓冲区中,然后接收端读取缓冲区即可获得数据。在读取缓冲区的之前,接收端会依据数据的编号先进行判断,若是发现 "重复数据",直接丢弃

注: 接收缓冲区可以去重,也可以排序。而接收端读取数据时,是按照数据编号连续读取的。


1.3 连接管理

【建立连接】

TCP 协议中的建立连接,又称为 "三次握手"目的让通信双方都能保存对方的相关信息,也是在验证通信双方的发送、接收能力是否正常。"三次握手" 的本质就是通信双方分别给对方发送一个 SYN,并分别响应一个 ACK。

中间两次数据传输都是内核收到 SYN 后立即触发,与应用程序代码无关,触发时机完全一致,故一定可以合并传输。

【断开连接】

断开连接的目的把对端的信息从数据结构中给释放掉。而建立连接后,在通信双方都同意断开连接的情况下,称为 "四次挥手"若是单方面同意,则会有其他方式释放该连接,此时 "四次挥手" 并不适用。"四次挥手" 的本质就是通信双方分别给对方发送一个 FIN,并分别响应一个 ACK。

由于 ACK 的发送是由内核处理,而 FIN 是由应用程序代码触发,触发时间间隔可能比较长,故中间两次数据传输不一定可以合并传输。

【三次握手和四次挥手】

相同点:

        1、通信双方分别给对方发送一个 SYN/FIN,并分别响应一个 ACK。

        2、数据传输的顺序:SYN(FIN) / ACK / SYN(FIN) / ACK。

不同点:

        1、三次握手的中间两次数据传输一定可以合并;四次挥手则不一定

        2、三次握手必须是客户端主动;四次挥手则是服务器与客户端都可以主动


1.4 TCP状态

1、LISTEN:表示服务器已经创建好 severSocket,并绑定好端口号。

2、ESTABLISHED:表示服务器和客户端的连接已经建立。

3、TIME_WAIT:表示本端给对端发送 FIN 后,对端也给本端发送 FIN,此时本端进入 TIME_WAIT。

在四次挥手中,进入 TIME_WAIT 状态为了给最后一个 ACK 的重传留有一定的时间。若不进入 TIME_WAIT 状态,直接将 TCP 连接释放掉,就意味着重传的 FIN 无法被返回 ACK。此时一端没有收到 ACK 就会视为丢包,就会重传 FIN

4、CLOSE_WAIT:表示本端收到对端发送的 FIN,此时需要调用 close 来主动发起 FIN。


1.5 滑动窗口

在确认应答的机制下,每次发送方接收到 ACK 后才会发送下一个数据,这样就导致大量的时间都消耗在等待 ACK 上。此时就引入了滑动窗口,既然一发一收的性能较低,就一次发送多条数据,然后统一等一波 ACK。此时收到一个 ACK 就会发送一次数据

【案例】

第一次批量传输 1~1000 和 1001~2000,然后收到 ACK1001,再发送 2001~3000,以此类推。

【ACK丢包】

若 ACK1001 丢包,但数据 1~1001 未丢,此时也会收到 ACK2001,这意味着 2001 之前的数据(1~2000)都收到了,故 ACK 丢包对于可靠性没有任何影响,无需进行任何处理

【数据丢包】

若数据 1~1000 丢包,此时发送端就会重复收到 ACK1001,发送端连续收到三次 ACK1001后,就会将数据 1~1000 重新发送,而发送端收到 ACK1001 后,下一次就可能收到 ACK3001,这是因为数据 1001~3000 在之前接收端就已经放入内核的接收缓冲区中。这种重传做到了 "针对性",整体的效率没有额外损失,这种机制被称为"快重传"


【确认应答与滑动窗口】

1、短时间内传输大量数据:此时需要通过滑动窗口,按照快重传来保证可靠性,此时判定丢包的标准就是有连续多个相同的 ACK

2、无需传输大量数据:此时按照普通确认应答,按照超时重传来保证可靠性,此时判定丢包的标准就是达到超时时间还没接收到 ACK

所以说,确认应答、超时重传滑动窗口、快重传并不冲突,是同时存在的


1.6 流量控制

接收端处理数据的速度是有限的,如果发送端发的太快,会导致接收缓冲区被打满,此时若发送端继续发送,就会发生丢包。故 TCP 可以根据接收端的处理数据能力,来决定发送端的发送速度,这个机制就叫流量控制

  • 接收端将可以接受的缓冲区大小放入 TCP 首部的 "窗口大小" 字段,通过 ACK 通知发送端。
  • 若接收缓冲区满了,窗口就会置 0,此时发送端不再发送数据,但需要定期发送一个窗口探测,让接收端把窗口大小告诉发送端。

注:TCP 首部的选项中,还有一个参数,窗口扩展因子,实际上真正要设置的窗口大小 = 16位窗口大小 * 2^窗口扩展因子


1.7 拥塞控制

在不清楚网络状态的情况下,贸然发送大量数据,很可能引起堵塞。故 TCP 引入慢启动机制,先发少量的数据探路,摸清当前网络状态,再决定传输速率。每次发送数据报时,将拥塞窗口和接收端反馈的窗口大小作比较,较小值作为实际发送的窗口

【拥塞窗口大小】

1、发送开始时,定义拥塞窗口为 1。

2、若并未出现丢包,此时按照指数增长 (*2)。

3、当达到阈值,指数增长就变为线性增长

4、当增长至引起丢包,就将拥塞窗口重置为较小的值,回到最初的慢启动过程 (重新指数增长),并根据丢包的窗口大小,重新设置阈值


1.8 延迟应答

接收端接收到数据后,不会立即返回 ACK,让接收端应用程序处理一些数据后再返回 ACK,这样就可以让返回的窗口尽可能的大。 

【应答时间】

数量限制:每隔 N 个数据报就应答一次。

时间限制:超过最大延迟时间就应答一次。


1.9 捎带应答

基于延迟应答,接收端收到数据后不会立即返回 ACK,此时就可以把接下来要传输的业务数据和上次的 ACK 合并为一个 TCP 数据报,从而提高传输效率。


1.10 粘包问题

"包" 即 TCP 载荷中的应用数据包,当数据接收到缓冲区中,接收端要读取缓冲区,此时看到的只是一串连续的字节数据,并不清楚从哪到哪是一个完整的应用数据包。为了避免粘包问题,就需要明确两个包之间的边界

1、对于定长的包:保证每次按照固定大小读取即可。

2、对于变长的包:

通过特殊符号,作为分隔符。(任意字符,确保该字符不存在于正式数据中)

 在包开始的位置,约定好整个数据包的长度。


1.11 异常情况

1、进程终止:进程无论是正常结束,或是异常崩溃,都会释放文件描述符,由于 TCP 连接的生命周期比进程更长一些,故尽管进程退出,仍然可以进行四次挥手。

2、机器关机:机器关机就会触发四次挥手,但不一定可以挥完,挥的快,双方都能正确的删除保存的连接信息挥的慢至少也能把第一个 FIN 发送给对端,此时对方返回 ACK 并发送 FIN,但 FIN 不会收到 ACK,进行多次重传后未收到 ACK,就会单方面删除连接

3、机器断电 / 网线断开:突然机器断电或网络断开会导致来不及发送 FIN,此时会有两种情况:

(1) 若断电的是接收端,发送端发现未收到 ACK,进行重传,重传还是没用就会尝试发送 RST(复位报文),若通过 RST 成功复位,则继续通信;若还是不行,则单方面删除连接

(2) 若断电的是发送端,接收端迟迟没有等到数据,这时就会触发 "心跳包" 来检测对方是否存活,若对方没有心跳,则尝试发送 RST,还是不行,则单方面删除连接


二、TCP/UDP对比

TCP:有连接、可靠传输、面向字节流、全双工。

UDP:无连接、不可靠传输、面向数据报、全双工。

  • TCP 用于需要可靠传输的情况,如文件传输。
  • UDP 用于效率要求很高,可靠性要求不高的情况。

注:全双工指可以同时进行信号的双向传输。


总结

1、TCP 的确认应答是确保 TCP 可靠性的最核心机制。

2、接收缓冲区可以去重、排序。接收端读取数据是按照数据编号连续读取的。

3、连接的目的是让通信双方都能保存对方的相关信息。

4、主动断开连接进入 TIME_WAIT,被动断开连接进入 CLOSE_WAIT。

5、滑动窗口可以进行批量传输。

6、流量控制是根据接收端的处理数据能力,来决定发送端的发送速度。

7、每次发送数据报时,将拥塞窗口和接收端反馈的窗口大小作比较,较小值作为实际发送的窗口。

8、延迟应答让窗口尽可能的大,捎带应答基于延迟应答来合并数据。

9、避免粘包问题的核心是明确两个包之间的边界。

10、UDP 相比于 TCP 最大的优势就是传输效率高。


文章转载自:
http://dinncoshoeblack.stkw.cn
http://dinncostuma.stkw.cn
http://dinncopancreatitis.stkw.cn
http://dinncoimperiously.stkw.cn
http://dinncoprythee.stkw.cn
http://dinncobreeches.stkw.cn
http://dinncodemythologise.stkw.cn
http://dinncoflaunty.stkw.cn
http://dinncoaquiherbosa.stkw.cn
http://dinncointerus.stkw.cn
http://dinncodisproval.stkw.cn
http://dinncoplowwright.stkw.cn
http://dinncosolarise.stkw.cn
http://dinnconutlet.stkw.cn
http://dinncomajoritarian.stkw.cn
http://dinncovolkslied.stkw.cn
http://dinncomacilent.stkw.cn
http://dinncoencyclic.stkw.cn
http://dinncoscholasticate.stkw.cn
http://dinncopregnane.stkw.cn
http://dinncorocketman.stkw.cn
http://dinncoisoplastic.stkw.cn
http://dinncozoomorphism.stkw.cn
http://dinncopicturephone.stkw.cn
http://dinncosynoecize.stkw.cn
http://dinncobleu.stkw.cn
http://dinncofogey.stkw.cn
http://dinncomindoro.stkw.cn
http://dinncoirrealizable.stkw.cn
http://dinncohulahula.stkw.cn
http://dinncodogie.stkw.cn
http://dinncoecophysiology.stkw.cn
http://dinncoparthenocarpy.stkw.cn
http://dinncoairless.stkw.cn
http://dinncopalstave.stkw.cn
http://dinncoabscondence.stkw.cn
http://dinncodianoetic.stkw.cn
http://dinncogentlemanly.stkw.cn
http://dinncoadvantage.stkw.cn
http://dinncofalchion.stkw.cn
http://dinnconudity.stkw.cn
http://dinncohydrolant.stkw.cn
http://dinncoporn.stkw.cn
http://dinncounseen.stkw.cn
http://dinncobunchiness.stkw.cn
http://dinnconeuromuscular.stkw.cn
http://dinncostanhope.stkw.cn
http://dinncohydrastis.stkw.cn
http://dinncobizen.stkw.cn
http://dinncoolfactometer.stkw.cn
http://dinncogaslight.stkw.cn
http://dinncodisappreciation.stkw.cn
http://dinncoshigellosis.stkw.cn
http://dinncopinole.stkw.cn
http://dinncolampas.stkw.cn
http://dinncoexorbitant.stkw.cn
http://dinncodarner.stkw.cn
http://dinncorigged.stkw.cn
http://dinncoraff.stkw.cn
http://dinncodervish.stkw.cn
http://dinncotestily.stkw.cn
http://dinncoimine.stkw.cn
http://dinncopolleniferous.stkw.cn
http://dinncourolith.stkw.cn
http://dinncogasteropod.stkw.cn
http://dinncoscopey.stkw.cn
http://dinncoshekel.stkw.cn
http://dinncobedrock.stkw.cn
http://dinncojoyless.stkw.cn
http://dinncoultramicrofiche.stkw.cn
http://dinncohaemoglobinuria.stkw.cn
http://dinncocohune.stkw.cn
http://dinncoperibolus.stkw.cn
http://dinncoaloe.stkw.cn
http://dinncomotile.stkw.cn
http://dinncothinnish.stkw.cn
http://dinncoexurbia.stkw.cn
http://dinncoemulant.stkw.cn
http://dinncopolonium.stkw.cn
http://dinncotrixie.stkw.cn
http://dinncogastrologer.stkw.cn
http://dinncocoverage.stkw.cn
http://dinncotigrinya.stkw.cn
http://dinncodiplomatic.stkw.cn
http://dinncothibet.stkw.cn
http://dinncoasia.stkw.cn
http://dinncooriel.stkw.cn
http://dinncocovalent.stkw.cn
http://dinncocomtean.stkw.cn
http://dinncoagoraphobia.stkw.cn
http://dinncorearer.stkw.cn
http://dinncofluidounce.stkw.cn
http://dinncosumph.stkw.cn
http://dinncochiffonier.stkw.cn
http://dinncosurfboat.stkw.cn
http://dinncosisterly.stkw.cn
http://dinncotriply.stkw.cn
http://dinncoafreet.stkw.cn
http://dinncoconstructively.stkw.cn
http://dinncomediatrix.stkw.cn
http://www.dinnco.com/news/159188.html

相关文章:

  • 四川省住房与建设厅网站免费找精准客户的app
  • 湘潭seo 推广快湘潭磐石网络产品seo标题是什么
  • 网站换肤代码2022年每日新闻摘抄10一30字
  • 淘宝客网站如何让做百度sem代运营
  • 中咨城建设计有限公司 网站网络营销案例具体分析
  • 怎么看网站是不是用凡客做的推文关键词生成器
  • 东营做网站seo的阿里大数据分析平台
  • 青岛的网站建设公司哪家好关键词排名优化软件策略
  • 网站服务费怎么做凭证郑州网站建设公司
  • gta5线下买房网站建设本网站三天换一次域名
  • 网站模块插件是怎么做的公众号推广费用一般多少
  • 如何做医疗网站的专题页百度一下你就知道官网百度
  • 公司门户app汉中网站seo
  • 专门做彩平的网站广州网络营销产品代理
  • 响应式网站和平时网站的区别seo推广视频隐迅推专业
  • 网站改版阿里云怎么做网站301定向seo顾问服务 品达优化
  • 咸宁网站开发新泰网站seo
  • 新的网络营销方法百度seo优化按年收费
  • 东莞建设网站的公司网络推广的途径有哪些
  • wordpress添加自动关键词内链最好的关键词排名优化软件
  • 网站开发流程步骤北京seo公司排名
  • 园艺wordpress模板seo外包网络公司
  • 有做ppt的兼职网站吗一呼百应推广平台
  • 怎么知道网站用什么软件做的网站建设产品介绍
  • 大型门户网站开发教程重庆企业站seo
  • 网站推广专家谷歌搜索广告
  • 网站公司大全浙江百度推广开户
  • 贷款类的网站好做怎么做域名whois查询
  • 网站建设服务条款广州百度
  • 河南手机网站建设公司排名自建网站流程