TCP协议快问快答

wireshark抓包数据包大小差异分析 摘要:本文分析了网络数据包大小差异的原因,主要涉及以太网填充和TCP分段卸载(TSO)技术。左边Windows客户端显示55字节,是因抓包点在填充前;右边Linux服务器60字节则已包含填充。更大的数据包差异(1514/1514/574vs3494)则源于TSO特性:服务器将大块数据交给网卡分段,客户端收到的是实际传输的小包。在虚拟环境下(4083vs4083),两端都显示合并后的大包,因抓包点位于分段前和合并后。这些现象展示了网络协议栈和硬件优化的不同处理阶段。 阅读详情

        本文是快问快答形式,供各位读者快速粗略地了解TCP协议。如果想系统学习,推荐博客https://www.cnblogs.com/xiaolincoding/p/12732052.html。

        本文的主要内容为ChatGpt生成,感谢GPT大大提升了笔者学习的效率。

一、超时重传

1.1 什么是超时重传

        发送端还会根据RTT来设置数据包的超时重传时间。如果在一定时间内(通常是RTT的2-4倍)没有收到接收端的确认报文,发送端会认为数据包丢失,并重新发送该数据包。

1.2 什么是快速重传

        TCP(传输控制协议)的快速重传(Fast Retransmit)是一种用于提高传输性能和可靠性的拥塞控制策略。当发送端检测到可能的数据包丢失时,快速重传机制允许发送端在超时之前立即重新发送丢失的数据包,从而减少了重传等待时间,提高了传输效率。

        快速重传的工作原理主要依赖于TCP的累积确认(Cumulative Acknowledgment)机制和接收端的冗余确认(Duplicate Acknowledgment)报文。当接收端收到一个乱序的数据包时,它会发送一个冗余确认报文,其中的确认序号仍然是期望接收的下一个数据包的序号,而不是乱序数据包的序号。这意味着接收端已经收到了某些数据包,但尚未收到期望的数据包。

        发送端会对冗余确认报文进行计数。当发送端连续收到一定数量(通常是3个)的冗余确认报文时,它会认为期望的数据包已经丢失,并立即触发快速重传,而不是等待超时重传计时器到期。这样可以更快地检测和恢复数据包丢失,提高传输效率。

1.3 什么是选择性确认

        还有一种实现重传机制的方式叫:SACK( Selective Acknowledgment 选择性确认)。

        这种方式需要在 TCP 头部「选项」字段里加一个 SACK 的东西,它可以将缓存的地图发送给发送方,这样发送方就可以知道哪些数据收到了,哪些数据没收到,知道了这些信息,就可以只重传丢失的数据。

        如下图,发送方收到了三次同样的 ACK 确认报文,于是就会触发快速重发机制,通过SACK 信息发现只有 200~299 这段数据丢失,则重发时,就只选择了这个 TCP 段进行重复。

1.4 什么是重复选择性确认

        D-SACK(Duplicate Selective Acknowledgment,重复选择性确认)是TCP(传输控制协议)中的一种拥塞控制策略,它是SACK(Selective Acknowledgment,选择性确认)的一个扩展。D-SACK的主要目的是通知发送端哪些数据包被重复接收,从而帮助发送端识别不必要的重传,优化拥塞控制算法并提高传输性能。

        在TCP数据传输过程中,由于网络延迟、乱序等原因,接收端可能会收到重复的数据包。当接收端使用SACK机制时,它可以在确认报文中携带D-SACK选项,指示发送端已经收到的重复数据包的序列号范围。这样,发送端可以根据D-SACK信息来判断哪些数据包被重复接收,从而避免不必要的重传,并优化拥塞控制算法。

        D-SACK还可以帮助发送端识别网络中的重复数据包,从而更好地估计网络状况和拥塞程度。例如,当发送端收到多个D-SACK报文时,它可以推断出网络中可能存在乱序或重复传输的问题,并相应地调整拥塞窗口大小和重传策略。

1.5 iOS支持SACK吗

        在iOS系统中,底层的TCP协议栈实现了SACK(选择性确认)功能。iOS开发者通常不需要直接操作底层的TCP协议栈,因为iOS提供了高级的网络编程接口,如URLSession和CFNetwork等,它们已经内置了对TCP拥塞控制策略(包括SACK)的支持。
 

1.3 TCP协议的RTT如何确定

        TCP(传输控制协议)的RTT(往返时延)是指一个数据包从发送端发送到接收端,再从接收端返回到发送端所需的时间。它是衡量网络传输速度的一个重要参数。在TCP协议中,RTT的确定主要依赖于以下几个步骤:​

1. 发送端发送数据包:当发送端有数据要发送时,它将数据分成多个数据包,并为每个数据包分配一个序列号。

2. 接收端确认收到数据包:当接收端收到数据包时,它会检查数据包的序列号,并发送一个确认(ACK)报文,其中包含接收到的数据包的序列号。

3. 发送端计算RTT:发送端在发送数据包时,会记录发送时间(T1)。当收到接收端的确认报文时,会记录接收时间(T2)。然后,发送端可以通过计算T2 - T1来得到RTT。

4. 平滑RTT估计:由于网络传输可能受到许多因素的影响,单次测量的RTT可能存在较大波动。因此,发送端通常会使用一种平滑算法,如加权移动平均(Weighted Moving Average,WMA)或指数加权移动平均(Exponential Weighted Moving Average,EWMA)来估计RTT。

发送端会根据RTT来调整自己的发送速率和超时重传时间,从而提高传输效率和可靠性。

1.4 在三次握手期间,如何判断是否丢包?此时RTT确定了吗?

        在TCP三次握手期间,我们不能直接通过RTT来判断是否丢包,因为在握手过程中,RTT还没有完全确定。然而,我们可以通过超时重传机制来检测握手过程中的丢包。

        在三次握手过程中,如果发送端在一定时间内没有收到接收端的回应,它会认为握手报文丢失,并重新发送握手报文。这个超时时间通常是一个预设值,比如3秒。这个预设值可能并不是很准确,但在握手过程中,我们没有更好的方法来估计RTT。

以下是三次握手过程中可能出现的丢包情况:

1. SYN丢包:如果客户端发送的SYN包在网络中丢失,客户端将等待预设的超时时间。如果在超时时间内没有收到服务器的SYN+ACK回应,客户端会重新发送SYN包。

2. SYN+ACK丢包:如果服务器发送的SYN+ACK包在网络中丢失,客户端将等待预设的超时时间。如果在超时时间内没有收到服务器的SYN+ACK回应,客户端会重新发送SYN包,触发服务器再次发送SYN+ACK包。

3. ACK丢包:如果客户端发送的最后一个ACK包在网络中丢失,服务器会认为连接尚未建立。然而,客户端认为连接已经建立,因此它可能会开始发送数据。当服务器收到数据包时,它会意识到连接已经建立,并继续正常的数据传输。

一旦三次握手成功完成,RTT的计算和更新将在数据传输过程中进行。

二、传输

2.1 什么是MSS

        TCP的MSS(Maximum Segment Size,最大报文段长度)是指TCP协议在传输数据时,每个报文段所能承载的最大数据长度。MSS是一个重要的参数,它决定了TCP报文段的大小以及网络传输的效率。

MSS的值主要取决于以下两个因素:

1. MTU(Maximum Transmission Unit,最大传输单元):MTU是指网络链路层(如以太网、PPP等)所能承载的最大数据包长度。对于以太网来说,标准MTU的值是1500字节。

2. IP和TCP协议的头部开销:IP协议头部的标准长度是20字节,TCP协议头部的标准长度也是20字节。因此,IP和TCP协议的头部总开销是40字节。

        为了确保TCP报文段在网络中的传输不会发生分片(Fragmentation),TCP的MSS通常设置为MTU减去IP和TCP协议的头部开销。例如,对于以太网,MSS的值通常为1500字节(MTU) - 40字节(头部开销)= 1460字节。

        需要注意的是,当网络路径中存在不同MTU的链路时,MSS可能需要进行调整。在TCP连接建立过程中,双方可以通过TCP选项字段中的"MSS"选项来协商MSS值。这样,发送端可以根据接收端所支持的MSS值来调整报文段的大小,从而避免分片和提高传输效率。

2.2 三次握手中为什么需要协商MSS

        在TCP三次握手期间商定MSS(最大报文段长度)的原因主要是为了提高传输效率,避免IP分片,以及确保双方在传输数据时不会超过对方所能接受的最大报文段长度。

1. 提高传输效率:通过在三次握手期间商定MSS,客户端和服务器可以根据底层网络的MTU(最大传输单元)来确定合适的数据报文大小。这有助于提高传输效率,因为较大的数据报文可以减少TCP首部和IP首部的开销,从而更有效地利用网络带宽。

2. 避免IP分片:当数据报文的大小超过底层网络的MTU时,IP层需要进行分片,将大数据包分割成多个小数据包进行传输。IP分片会增加发送端和接收端的处理开销,并可能导致传输效率降低和数据包丢失。通过在三次握手期间商定MSS,客户端和服务器可以确保发送的数据报文不会超过底层网络的MTU,从而避免IP分片。

3. 适应对方的接收能力:不同的设备和网络环境可能具有不同的接收能力。在三次握手期间商定MSS可以确保双方发送的数据报文不会超过对方所能接受的最大长度,从而提高传输的可靠性和兼容性。

2.3 什么是IP分片

        IP分片(IP Fragmentation)是指在IP层将较大的数据包拆分为多个较小的数据包的过程,以适应底层网络的最大传输单元(MTU)限制。当IP数据包的大小超过底层网络的MTU时,就需要进行IP分片,将大数据包分割成多个小数据包进行传输。

        IP分片发生在发送端,当发送端的IP层检测到要发送的数据包大小超过当前链路的MTU时,它会将数据包分割成多个片段。每个片段都有自己的IP首部,并携带原始数据包的一部分。在IP首部中,有一些字段用于表示分片的信息,如标识(Identification)、片偏移(Fragment Offset)和更多片(More Fragments)标志。这些字段用于在接收端将分片重新组装成完整的数据包。

        IP分片可能导致一些问题,如:

1. 效率降低:分片会增加发送端和接收端的处理开销,因为它们需要进行数据包的拆分和重组。此外,分片还可能导致网络中的传输效率降低,因为较小的数据包可能占用更多的带宽资源。

2. 分片丢失:由于IP分片后的数据包在网络中独立传输,如果其中一个分片丢失,接收端将无法重组完整的数据包。这将导致整个数据包需要重新发送,从而降低传输的可靠性。

        为了避免IP分片,可以采取一些措施,如调整TCP的最大报文段长度(MSS),使其适应底层网络的MTU。此外,还可以使用路径MTU发现(Path MTU Discovery)技术,通过在IP首部设置“不分片”(DF)标志,让网络中的路由器返回MTU信息,从而找到一条传输路径上的最小MTU值,以便发送端调整数据包的大小。

2.4 什么是滑动窗口

        滑动窗口(Sliding Window)是TCP(传输控制协议)中用于实现流量控制和拥塞控制的一种技术。滑动窗口允许发送端和接收端在不等待确认的情况下发送多个数据包,从而提高传输效率。同时,滑动窗口也可以动态调整发送速率,以适应网络的拥塞状况。

滑动窗口包括发送窗口和接收窗口两部分:

2.4.1 发送窗口

        发送窗口是发送端维护的一个缓冲区,用于存储已发送但尚未得到确认的数据包。发送窗口的大小决定了发送端在等待确认之前可以发送多少数据包。当发送端收到接收端的确认(ACK)报文时,它会将发送窗口向前滑动,将已确认的数据包从窗口中移除,并将新的数据包加入窗口。发送窗口的大小可以根据接收端的接收能力和网络的拥塞状况进行动态调整。

2.4.2 接收窗口

        接收窗口是接收端维护的一个缓冲区,用于存储已接收但尚未处理的数据包。接收窗口的大小决定了接收端可以接收多少数据包。接收端会在确认报文中携带接收窗口的大小信息,以通知发送端自己的接收能力。当接收端处理完数据包后,它会将接收窗口向前滑动,并将新的数据包加入窗口。

        滑动窗口的主要优点是提高了传输效率,因为发送端和接收端可以在不等待确认的情况下发送和接收多个数据包。此外,滑动窗口还可以实现动态的流量控制和拥塞控制,通过调整发送窗口的大小来适应网络的变化,从而提高TCP传输的性能和可靠性。

2.5 介绍下流量控制

        TCP(传输控制协议)的流量控制是一种机制,用于在发送端和接收端之间平衡数据传输速率,以防止接收端被发送端发送的数据所淹没。流量控制可以确保发送端不会发送超过接收端处理能力的数据,从而提高传输的可靠性和效率。

TCP流量控制主要依赖于滑动窗口(Sliding Window)机制。通过滑动窗口机制,TCP流量控制可以实现以下功能:

1. 防止接收端缓冲区溢出:通过动态调整发送窗口的大小,发送端可以确保不会发送超过接收端处理能力的数据,从而避免接收端缓冲区溢出。

2. 适应网络状况:流量控制可以根据网络的拥塞状况和接收端的接收能力来调整发送速率,从而提高传输效率。

3. 提高传输可靠性:流量控制可以确保发送端在接收端确认之前不会发送过多的数据包,从而减少数据包丢失的风险,提高传输可靠性。

本小节强烈建议查看开头引用的博客的流程图。

2.6 接收窗口耗尽会怎么样

        当接收窗口的缓冲区耗尽时,意味着接收端已经没有足够的空间来存储新接收到的数据包。在这种情况下,TCP流量控制机制会起到作用,防止发送端继续发送数据,从而避免接收端缓冲区溢出。具体表现为以下几个方面:

1. 接收端通知发送端:当接收窗口的缓冲区耗尽时,接收端会在确认报文(ACK)中携带一个接收窗口大小为0的通知,告诉发送端自己暂时无法接收更多的数据。

2. 发送端暂停发送:发送端在收到接收窗口大小为0的通知后,会暂停发送新的数据包,等待接收端处理完缓冲区中的数据并重新通知自己可以接收数据。

3. 接收端处理数据:接收端在处理完缓冲区中的数据后,会重新计算接收窗口的大小,并在确认报文中携带更新后的接收窗口大小,通知发送端可以继续发送数据。

4. 发送端恢复发送:发送端在收到接收端更新后的接收窗口大小通知后,会根据接收窗口的大小调整发送速率,并恢复发送数据。

需要注意的是,在接收窗口缓冲区耗尽的情况下,发送端仍然可以发送一个最小大小的数据包(通常为1字节的数据),以便探测接收端的状态。这样可以避免在接收端缓冲区恢复后出现死锁现象。

Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载 p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(配置映射是因为用户只能通过 http 请求访问到服务器,不能直接访问到对应的容器,因此需要服务器端口与容器端口建立映射关系)这里我们有两种启动 redis 的方式,第一种是直接启动 redis ,第二种是以 AOF 持久化的方式启动容器(--appendonly yes),如下图。如果需要持续查看日志信息可以添加 -f 参数,例如:docker logs -f mn ,这里 mn 是自定义容器名称, ctrl + c 可以停止跟踪。 阅读详情

相关推荐

小白学电路之cadance搭建buffer电路

Buffer(缓冲器)是一种放大器或驱动电路,主要用于隔离输入和输出,以防止负载对前级电路造成干扰或影响。本文作者在电路方面是小白水平,目前正在学习,有不足之处欢迎指正。3.创建新的cellview,对此buffer进行仿真验证。2.创建buffer的symbol。电路中的V2的详细参数。

weixin_58051657的博客 1990

你需要知道的TCP/IP

前言 TCP/IP 协议 是网络通信的基石,TCP/IP 协议 不是只有 TCP 和 IP 协议,它是整个网络通信中所有协议的简称。 维基百科:TCP/IP协议簇 维基百科:OSI模型 # TCP/IP 参考模型维基百科 https://zh.wikipedia.org/wiki/TCP/IP%E5%8D%8F%E8%AE%AE%E6%97%8F # OIS 参考模型维基百科 https://zh.wikipedia.org/wiki/OSI%E6%A8%A1%E5%9E%8B 图片来自 《图解 TC

Wanguyunxiaodaniu的博客 900

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建

本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。

weixin_30856725的博客 353

DIY TCP/IP IP模块和ICMP模块的实现4

上一篇:DIY TCP/IP IP模块和ICMP模块的实现3 8.6 IP分片 在介绍DIY TCP/IP接收IP分片的代码实现之前,本节先通过wireshark抓包来分析,如何判断一个IP数据帧是一个IP分片,如何判断分片的开始和结束,收到IP分片后如何重组分片。通过wireshark抓取指定长度(超过MTU 1500字节)的PING数据帧过程,便于描述,将该过程称为Large Packet P...

Gannicus.Guo的博客 580

FFmpeg视频缩放终极指南:从基础命令到保持宽高比的5种实战技巧

本文是FFmpeg视频缩放的终极指南,详细讲解了从基础命令到保持宽高比的5种实战技巧。针对不同平台(如抖音、B站、Instagram)的分辨率要求,提供了具体的参数模板和批量处理脚本,帮助内容创作者高效、精准地调整视频大小,避免画面变形或黑边问题,实现多平台适配。

juice的博客 462

【WRF-Urban】URBPARM_LCZ.TBL 查找表解释及内容

URBPARM_LCZ.TBL 查找表解释及内容

WW、forever的博客 1754

IP协议

IP协议处于OSI参考模型的第三层——网络层,网络层的主要作用是实现终端节点间的通信。IP协议是网络层的一个重要协议,网络层中还有ARP(获取MAC地址)和ICMP协议(数据发送异常通知) 数据链路层的作用在于实现同一种数据链路下的包传递,而网络层则可以实现跨越不同数据链路的包传递。比如主机A通过Wi-Fi连接到路由器B,路由器B通过以太网连接到路由器C,而路由器C又通过Wi-Fi与主机D保持连

steven216的专栏 568

uniapp - H5网页uni.getLocation报错getLocation:fail Geolocation permission denied.Get ipLocation failed.

uni.getLocation getLocation:fail Geolocation permission denied.Get ipLocation failed.,uni.getLocation定位失败,uni-app getLocation()无法获取定位,一直fail()uniapp移动端h5网页,uniApp微信内置浏览器定位失败,如何解决这个问题,uniapp h5 uni.getLocation获取位置失败怎么办,UNI-APP获取当前位置,uni.getLocation定位失败,unia

🏆 前端领域优质创作者 4243

[转载]TCP 的那些事儿

TCP 的那些事儿(上) 2014年5月28日陈皓 TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外

zzzdong的专栏 1808

innovus:ccopt_design分段长tree操作

这步don't touch保证后面完整cts尽量不会动到已经长过的tree。需要给sub tree手写一个spec,参考create_ccopt_clock_tree_spec -file的写法,只写create_ccopt_clock_tree和skew group部分就行。

m0_61544122的博客 1679

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TCP UDP (转)

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。 TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图 所谓的协议就是双方进行数据传输的一种格式。整个网络中使用...

weixin_30699955的博客 257

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

快问快答,计算机网络面试夺命20问

????????关注后回复“进群”,拉你进程序员交流群????????作者丨雷小帅来源丨爱笑的架构师(ID:DancingOnYourCode)在面试中计算机网络是面试官最喜欢考察的内...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 263

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Socket发送缓冲区接收缓冲区快问快答

首先,我们要明确一下,通过socket发送数据之后(调用发送方法),数据并不是会直接发送到接收方。整个过程简略图如下:最终数据发送是要通过网卡的,但是socket没法直接将数据发送到网卡,所以只能先将数据发送到操作系统数据发送缓冲区。然后网卡从数据发送缓冲区中获取数据,再发送到接收方。socket接收数据,也不是直接从对端获取的。整个过程简略图如下:首先接收方机器网卡接收到发送方的数据后,先将数据保存到操作系统接收缓冲区。...

恐龙弟旺仔的博客 6471

快问快答,计算机网络面试夺命20问!

TCP 向上层提供面向连接的可靠服务 ,UDP 向上层提供无连接不可靠服务。UDP 没有 TCP 传输可靠,但是可以在实时性要求搞的地方有所作为。对数据准确性要求高,速度可以相对较慢的,可以选用TCP。3、TCP 是如何实现数据的可靠性?一句话:通过。

cxytony的博客 132

Linux快问快答之———安全防火墙!一团乱麻!

用docker创建redis容器并关联8080端口,不关闭防火墙在本机可视化工具可以直接连接使用,为什么使用远程机的Mysql,就需要关闭防火墙才能在本机连接使用?

m0_57619472的博客 2280

代码江湖:快问快答 -【计算机网络】

计算机网络是由多台计算机和网络设备通过通信链路相互连接,来共享资源和信息的系统。网络的主要目的是让不同的计算机能够通过共享资源进行通信和协作。主要分类局域网(LAN):覆盖范围较小,如办公室或家庭网络。广域网(WAN):覆盖范围较大,通常跨越多个城市或国家,如互联网。城域网(MAN):介于局域网和广域网之间,覆盖一个城市范围。个人区域网(PAN):覆盖范围更小,通常用于个人设备之间的通信,如蓝牙网络。IP 地址是网络中每台设备的唯一标识,用于在网络上定位和通信。它就像你家中的地址,帮助信息找到目的地。

Swxctx 1026

2024年最全20道高频CSS面试题快问快答,前端系统工程师面试宝典

BFC是一个Web页面的渲染区域,并且它具有一些规则,决定了其子元素如何布局,以及与其他元素之间的关系和相互作用。要创建BFC。为根元素设置将display设置为table;将display设置为flex或grid;将元素的width设置为一个百分比值;为元素设置column-count或column-width属性。CSS预处理器是一种编程语言,可以扩展CSS的功能,例如变量、嵌套规则、混合等,常见的CSS预处理器有Sass、Less等。它们的作用是简化CSS编写和组织样式表。

2401_84447417的博客 707

今日面试之快问快答:Redis篇。

Redis 提供了两种主要的持久化机制:RDB(Redis Database)和 AOF(Append-Only File)。Redis 采用单线程事件循环模型(IO 多路复用),通过非阻塞方式处理客户端请求。单线程避免了锁竞争,但仍能高效处理高并发。RDB 是一种快照机制,定期将内存中的数据以二进制形式保存到磁盘。优点:恢复速度快、文件紧凑;缺点:可能丢失最后一次快照后的数据。优点:数据安全性高;缺点:文件较大,恢复速度慢。AOF 记录所有写操作命令,通过。

cqD_kuyq的博客 160

TCP/IP(IP、TCP、UDP、ICMP)与 HTTP/HTTPS

摘要: 互联网通信由 TCP/IP 协议族 分层管理,分为应用层(HTTP/HTTPS)、传输层(TCP/UDP)、网络层(IP)和网络接口层。IP 负责寻址,TCP 保障可靠传输(如网页),UDP 追求低延迟(如视频通话)。HTTPS 在 HTTP 基础上通过 SSL/TLS 实现加密,防止数据泄露。关键区别: TCP:可靠但慢(三次握手、重传) UDP:快速但可能丢包 HTTPS = HTTP + 加密/认证 未来趋势:IPv6 解决地址短缺,QUIC(基于 UDP)逐步替代 TCP。开发者需优先采用

wb04307201的博客 1019

快答智能客服实战:从架构设计到高并发场景优化

我们对比了长轮询(Long Polling)和WebSocket两种主流方案。长轮询:可以看作是对普通轮询的优化。客户端发起请求后,服务器会保持连接直到有数据可返回或超时。它减少了部分无效请求,但本质上仍是“请求-响应”模型,每个消息的收发都需要重建连接或发起新请求,连接建立和断开的开销依然存在,且服务器端需要维护复杂的超时和连接管理逻辑。WebSocket:它在单个TCP连接上提供全双工通信。一旦握手建立,连接将一直保持,数据可以随时从任一端推送到另一端。这带来了几个决定性优势:真正的低延迟。

2600_94960081的博客 322

局域网按钮按下去没反应?IPXWrapper让二十年前的IPX协议游戏在Windows 11满血复活

<!-- SEO:核心关键词=IPX协议转换;长尾关键词=IPXWrapper配置教程 / Windows 11经典游戏局域网联机 / IPX/SPX转TCP/IP方案 --> 晚上九点,三个老友已经在语音频道里等你。你双击桌面上那个泛黄的图标,进大厅,点"局域网"——屏幕安静得像停电。网线插着,路由器亮着,可就是没人出现。别急着怪自己,真正掉队的是一个退役了二十多年的老协议:IPX/SPX。微

gitblog_00820的博客 72

渣渣小本求职复习之路每天一博客系列——TCP/IP协议栈(5)

前情回顾:一篇短短的博客明显不能满足TCP和UDP这两个饥渴的汉子,而且还被应用协议占了一小半的篇幅。在昨天结束之后,相信大家都基本对TCP/IP协议栈的轮廓有一个大概的印象了,能够对整体有所把握。 今天白天上班的时候完全抽不出时间来复习,配了一天的环境才把一个公司的项目跑起来。将近四个月的时间,实习以来我觉得配环境是最麻烦最恶心人的事儿了,没有之一。用的是Eclipse...

weixin_30535913的博客 242

java 消息队列 双工_消息队列面试解析 - 传输协议

应用程序之间要想互相通信,一起配合来实现业务功能,还需传输协议支持。传输协议就是应用程序之间对话的语言。设计传输协议,并没有太多规范和要求,只要是通信双方的应用程序都能正确处理这个协议,并且没有歧义即可。1 断句分隔符传输协议也是种语言,在传输数据的的时候,首先要解决的就是断句。对于传输层来说,收到的数据是什么样的?就是一段一段的字节,但是,因为网络的不确定性,你收到的分段并不一定是我们发出去的分...

weixin_29144259的博客 232

网工必看,一文读懂网络参考模型:OSI 与 TCP/IP

数据链路层将网络层的数据包封装为帧,通过 MAC 地址(48 位,如 48-A4-72-1C-8F-4F)在局域网内寻址。无论是网络工程师,还是在准备备考软考、华为认证的人员,掌握 OSI 和 TCP/IP 模型的分层逻辑、协议功能及数据交互过程,都是构建网络知识体系的关键。:无连接、尽最大努力传输,时延低,适用于实时性要求高的场景(如语音、视频流)。答案:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。解析:物理层为比特流,网络层为包,传输层为段,数据链路层为帧。

2501_92670687的博客 991

万字深潜:从CNVD实战到协议底层,计算机安全防御体系构建全指南

⚠️CSP常见踩坑大幅削弱CSP效果:尽量用nonce或hash替代忘记限制base-uri:攻击者可注入<base>标签改变相对路径忘记限制:攻击者可窃取表单提交到外部JSONP端点绕过:如果域内有JSONP接口,形同虚设一定要用report-only模式先测试!直接上enforce可能导致功能异常写到这里,已经超过一万字。但协议安全这个话题,远不是一篇文章能穷尽的。安全没有终点。你今天加固的配置,明天可能就被新的攻击手法绕过。这不是挫败的理由,而是持续学习的动力。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 45
上一篇: protobuf协议简介
百分猫
博客等级 码龄11年 7粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值