怎样模仿别人的网站wordpress免插件代码高亮
news/
2025/10/2 22:41:41/
文章来源:
怎样模仿别人的网站,wordpress免插件代码高亮,9个广州seo推广神技,免费网站app使用排名TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手#xff08;建立连接#xff09;四次挥手#xff08;释放连接#xff09;连接状态 TCP协议
传输控制协议#xff08;TCP#xff0c;Transmission Control Protocol#xff09;是一种… TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手建立连接四次挥手释放连接连接状态 TCP协议
传输控制协议TCPTransmission Control Protocol是一种面向连接的协议提供了可靠的数据传输服务通过序列号、确认机制、重传等机制实现数据的顺序和完整性。应用层很多通信协议都基于TCP进行传输比如HTTP、MQTT等。 TCP协议源文档
TCP通信特点
面向连接通信可靠通信方式面向字节流在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销通信连接维护是面向通信的两个端点的而不考虑中间网段和节点
为了满足上述特点TCP协议作了以下规定 ①数据分片在发送端对用户数据进行分片在接收端进行重组由TCP确定分片的大小并控制分片和重组。 ②到达确认接收端接收到分片数据时根据分片数据序号向发送端发送一个确认。 ③超时重发发送方在发送分片时启动超时定时器如果在定时器超时之后没有收到相应的确认重发分片。 ④滑动窗口TCP连接每一方的接收缓冲空间大小都固定接收端只允许另一端发送接收端缓冲区所能接纳的数据TCP在滑动窗口的基础上提供流量控制防止较快主机致使较慢主机的缓冲区溢出。 ⑤失序处理作为IP数据报来传输的TCP分片到达时可能会失序TCP将对收到的数据进行重新排序将收到的数据以正确的顺序交给应用层。 ⑥重复处理作为IP数据报来传输的TCP分片会发生重复TCP的接收端必须丢弃重复的数据。 ⑦数据校验TCP将保持它首部和数据的检验和这是一个端到端的检验和目的是检测数据在传输过程中的任何变化。如果收到分片的检验和有差错TCP将丢弃这个分片并不确认收到此报文段导致对端超时并重发。
TCP技术概念
MTUMaximum Transmit Unit最大传输单元即物理接口数据链路层提供给其上层通常是IP层最大一次传输数据的大小以普遍使用的 以太网为例缺省MTU1500 Byte这是以太网接口对IP层的约束如果IP层有1500 Byte需要发送只需要一个IP包就可以完成发送任务如果IP层有1500 Byte数据需要发送需要分片才能完成发送这些分片有一个共同点即IP Header ID相同
MSSMaximum Segment Size,TCP提交给IP层最大分段大小不包含TCP Header和TCP Option只包含TCP PayloadMSS是TCP用来限制application层最大的发送字节数如果底层物理接口MTU1500 Byte则MSS1500-20IP Header-20TCP Header1460 ByteMSS如果application有2000 Byte发送则需要两个Segment才可以完成发送第一个TCP Segment1460第二个TCP Segment540
RTORetransmission Time Out重传超时时间TCP超时与重传中一个很重要的部分是对一个给定连接的往返时间RTT的测量由于网络流量的变化这个时间会相应地发生改变TCP需要跟踪这些变化并动态调整超时时间RTO
RTTRound Trip Time一个连接的往返时间即数据发送时刻到接收到确认的时刻的差值由三部分组成链路的传播时间接收端的处理时间返回到发送端的时间
MSLMaximum Segment Lifetime指明TCP报文在Internet上最长生存时间每个具体的TCP实现都必须选择一个确认的MSL值。建议是2分钟。
拥塞窗口拥塞窗口的大小取决于网络的拥塞程度并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如果再考虑到接收方的接收能力那么发送窗口还可能小于拥塞窗口。发送方控制拥塞窗口的原则是只要网络没有出现拥塞拥塞窗口就再增大一些以便把更多的分组发送出去。但只要网络出现拥塞拥塞窗口就减少一些以减少注入到网络中的分组数
滑动窗口一个TCP连接发送端在某个时刻能发多少数据是由滑动窗口控制的而滑动窗口的大小实际上是由两个窗口共同决定的一个是接收端的通告窗口也就是TCP头部中的Window Size会随着ACK报文发送给发送端发送端必须保证发送的数据不超过这个剩余的空间以免造成缓冲区溢出。另一个窗口是发送端的拥塞窗口。滑动窗口的大小就是通告窗口和拥塞窗口的较小值。
慢启动在拥塞窗口大小指数增大到一定程度后遇到网络拥塞会造成丢包一旦出现此类问题拥塞窗口就会迅速减小以便网络能够缓过来。
拥塞避免在拥塞窗口达到一定程度后减慢增大的速度从指数增大改变为线性增大。
TCP定时器
连接建立定时器connection-establishment timer连接请求发送后启动75秒内没有得到确认则会关闭连接。 重传定时器retransmission timer在TCP发送数据后启动超时后没有得到确认的数据将会被重传定时器重新启动。定时器取值根据重传次数和RTT时间动态变化取值范围在1~64秒之间。若定时器13次超时后仍得不到确认连接将被终止。 延迟应答定时器delayed ACK timer在用户数据量少且次数多的情况下等数据发完后一起确认减少网络开销在TCP收到需要确认但可以延迟确认的数据后启动。取值为200ms如果200ms内有数据发送则随数据一起发送否则在200ms后单独发送。 坚持定时器persist timer在对端Window Size为0时启动在定时器超时后发送一字节数据的报文探测对端接收缓存是否有空间Window Szie不为0。坚持定时器采用退避算法取值取值范围在5~64秒之间。 保活定时器keepalive timer在连接长时间空闲时启动在空闲2小时后会超时并且发送探测报文判断对端是否存在超时后会重启并取值75秒如果超过8次后仍未得到确认则连接被终止。 FIN_WAIT_2定时器FIN_WAIT_2 timer在进入FIN_WAIT_2状态后启动退出FIN_WAIT_2状态后停止。FIN_WAIT_2定时器第一次取值10分钟超时重启取值75秒再次超时后强行终止连接。 TIME_WAIT定时器TIME_WAIT timer or 2MSL timer在进入TIME_WAIT状态启动取值为2MSL最大值。
TCP头部报文 TCP头部大小为20个字节不包含任何TCP选项 1TCP端口号 包括源端口号和目标端口号大小为各2个字节
源端口号source port发送方端口号。目标端口号destination port接收方端口号。
2TCP序列号 Sequence Number保证TCP传输数据的顺序性。序号标识了从TCP发送端到TCP接收端单向发送的数据字节流同一时间两个方向的序号不一定相同TCP用序号对每个字节进行计数比如现在序列号为1000发送了1000下一个序列号就是2000。序号是一个32位的无符号数达到最大值后会重新从0开始。 3TCP确认号 Acknowledgment Number保证TCP传输数据的可靠性。确认号用于响应TCP报文。 4TCP头部大小 Header Length大小为4位单位为4个字节。因此TCP头部大小范围为20~6015*4个字节没有任何选项字段的TCP头部长度为20字节最多可以有60个字节的TCP头部。 5TCP预留位 Reserved预留位数据都为0大小为4位。 6TCP控制位
CWRCongestion window reduced拥塞窗口减少。拥塞窗口减少标志被发送主机设置用来表明它接收到了设置ECE标志的TCP包。拥塞窗口是被TCP维护的一个内部变量用来管理发送窗口大小。ECEECN-Echo显式拥塞提醒回应。当一个IP包的ECN域被路由器设置为11时接收端而非发送端被通知路径上发生了拥塞。ECN使用TCP头部来告知发送端网络正在经历拥塞并且告知接收端发送段已经受到了接收端发来的拥塞通告已经降低了发送速率。URGUrgent Pointer field significant紧急位当URG1时表示此报文段中有紧急数是高优先级的数据应尽快传送不用再缓存里排队配合紧急指针使用。ACKAcknowledgment fieldsignificant确认位当ACK1时表示确认号有效TCP就是根据ACK号来告知对方是否收到了消息。PSHPush Function推送位当PSH1时表示接接收方得到后就可直接送到应用程序而不必等到缓冲区满时才传送。RSTReset the connection重置位当RST1时表示TCP连接出现了严重错误心跳包超时连接超时等必须释放连接然后再重新建立传输连接。SYNSynchronize sequence numbers同步位当SYN1时表示是一个连接请求/连接请求接收报文。FINNo more data from sender终止位当FIN1时表示此报文发送方数据已发送完毕要求释放连接。
7TCP窗口大小 Window size指发送该报文时接收缓冲区的空闲空间大小因此是动态的主要用于进行流量控制解决流控拥塞问题。总共占2个字节。 8TCP校验和 TCP Checksum对整个TCP报文段即TCP头部和TCP数据进行校验和计算并由目标端进行验证。TCP的校验方法和IP相同-算数和求补不同的是IP只校验报文头部TCP校验整个报文。总共占2个字节。 9TCP紧急数据指针 Urgent Pointer只有当URG标志为1时才有效紧急指针是一个正的偏移量和序号字段中的值相加表示紧急数据最后一个字节的序号。 10TCP选型
TCP连接 三次握手建立连接
第一次握手客户端给服务端发送建立TCP连接的请求报文报文中SYN同部位置1表示这是一个建立连接报文。报文中seq序列号是随机生成的整数。同时客户端进入同步已发送状态SYN-SENT。 第二次握手服务端返回请求应答报文报文中SYN同部位置1表示这是一个建立连接报文。报文中seq序列号是随机生成的整数。报文中ack为请求报文的seq1表示对请求已经收到。同时服务端进入同步已接收状态SYN-RCVD。同时客户端进入连接已建立状态ESTABLISHED。 第三次握手客户端对服务端的回复发送应答报文报文中SYN同部位置1表示这是一个建立连接报文。报文中seq是请求报文的seq1表示对哪次连接请求的确认。报文中ack为服务端请求应答报文的seq加1表示收到服务器的应答对确认连接的建立。同时服务端进入连接已建立状态ESTABLISHED。
四次挥手释放连接
第一次挥手客户端给服务端发送释放连接的请求报文报文中FIN终止位置1表示这个一个释放连接报文。报文中的seq和ack在前面数据交互的基础上1。同时客户端进入FIN_WAIT_1状态。 第二次挥手服务端给客户端返回释放应答报文报文中FIN终止位置1表示这个一个释放连接报文。报文中ack为释放请求报文的seq1表示收到释放连接请求。同时服务端进入CLOST_WAIT状态。客户端进入FIN_WAIT_2状态。 第三次挥手服务端等待一段时间以处理客户端发过来的数据后发送释放报文给客户端报文中FIN终止位置1。seq为释放报文的ack值。同时服务端进入LAST_ACK状态。 第四次挥手客户端收到服务端发送的FIN报文后向服务端发送ACK报文作为确认ack为FIN报文seq1。同时客户端进入TIME_WAIT状态。服务器端接收到ACK报文后会变成CLOSED状态客户端等待一段时间后如果服务端没有数据返回也会变成CLOSED状态
连接状态
LISTEN监听状态服务端状态等待客户端TCP 连接请求。
SYN_SENT发送完一个连接请求后等待一个匹配的连接请求。如果75秒内得不到确认连接将被关闭。
SYN_RECEIVED发送连接请求并且接收到后等待连接请求确认。
ESTABLISHED表示一个打开的连接连接的数据传输阶段的正常状态。
FIN_WAIT_1等待对端TCP 的连接终止请求或者等待之前发送的连接终止请求的确认。
FIN_WAIT_2等待对端TCP 的连接终止请求。
CLOSE_WAIT等待的连接终止请求。
LAST_ACK等待先前发送给对端TCP 的连接终止请求的确认
TIME_WAIT等待以确保对端TCP 接收到它的连接终止请求的确认。 学习笔记有问题欢迎指出
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925378.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!