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字节的数据),以便探测接收端的状态。这样可以避免在接收端缓冲区恢复后出现死锁现象。

PaddleOCR实战:从零开始训练自己的OCR模型(附完整代码与数据集处理技巧) 本文提供了一份详尽的PaddleOCR实战指南,手把手教你从零开始训练专属的OCR模型。内容涵盖高质量训练数据的准备与标注技巧、预训练模型的选型对比、关键参数调优策略,并附有完整的代码示例。通过遵循本文的步骤,开发者可以高效构建并优化贴合自身业务场景的高精度OCR模型,实现从数据到部署的全流程掌握。 阅读详情

相关推荐

告别数据丢失焦虑:用Python手把手实现Reed-Solomon码(附完整代码)

本文详细介绍了如何使用Python实现Reed-Solomon纠错码(RS码),帮助开发者有效防止数据丢失。通过基础编解码实战、文件保护方案和高级性能优化技巧,读者可以轻松掌握这一前向纠错技术,应用于物联网、文件存储和网络传输等场景,提升数据可靠性。

weixin_42527160的博客 224

你需要知道的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

告别迷茫!用C#和Windows.Devices.Bluetooth搞定BLE设备连接与数据收发(附完整代码)

本文详细介绍了如何使用C#和Windows.Devices.Bluetooth命名空间实现BLE设备连接与数据收发。从开发环境配置到设备扫描、服务发现、数据通信及资源管理,提供完整代码示例和实战技巧,帮助开发者快速掌握低功耗蓝牙开发,解决连接稳定性和异常处理等常见问题。

weixin_29248653的博客 505

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

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。当然也可以用qt creator这一原生IDE。OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

qq_45306739的博客 3351

【网格生成】Gmsh快速入门教程 --1.图形化界面使用

初探 Gmsh软件的主界面如下图所示。通过点击菜单“File” -> "Open"可选择打开已经存在的几何模型或网格文件,初次使用可选择tutorial目录下的t1.geo文件。打开后效果如图所示,t1.geo描述的是一个长方体。 接下来依次尝试左侧菜单栏的功能:Geometry(几何)、Mesh(求解器)。Solver模块需依赖外置求解器,不在本文介绍范围内。 Geometry 该菜单下是与几何相关的功能,如新增一个点/面、体,移动一个体等,具体功能很多可以在后续使用中逐渐尝试学习。本文仅介绍几个

DJ_xiaoming的博客 1万+

IP协议

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

steven216的专栏 568

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

[转载]TCP 的那些事儿

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

zzzdong的专栏 1808

汽车氛围灯 PCBA 方案开发:从技术底层解析车载光效的核心逻辑

摘要: 车载氛围灯PCBA方案开发需兼顾性能与车规要求。主控芯片选型应关注运算能力、温度适应性和低功耗(如NXPS32K344、复旦微FM33FG065A)。电路防护需采用TVS二极管等组合设计,满足ISO7637-2浪涌防护标准。通信协议分层应用(CAN+LIN),调光需解决色准与温漂问题,动态灯效通过FIFO队列实现。开发中需进行温度循环、振动、EMC等可靠性测试,细节处理(如三防涂覆)至关重要。该领域开发需熟悉车规标准并积累实车经验。

2401_87454052的博客 1132

解决 NLPIR (中科院分词) License 过期问题

因为学习需要,使用到了中文分词技术,网上搜索一番,最终选择了名气比较大的中科院分词器(NLPIR/ICTCLAS)。 用了几个月之后突然报错: E:\code\URLClassifier\Data\NLPIR.user Not valid license or your license expired! Please feel free to contact pipy_zhan

勇敢向前冲 1万+

TCP UDP (转)

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

weixin_30699955的博客 257

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

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

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

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 263

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

恐龙弟旺仔的博客 6471

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

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

cxytony的博客 132

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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
上一篇: protobuf协议简介
百分猫
博客等级 码龄11年 7粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值