首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图解TCP,UDP,流量控制,拥塞控制,一次看懂

校验用来做差错控制,TCP 校验计算包括 TCP 首部、数据其它填充字节。...如果两次校验一致,说明数据是正确,否则将认为数据被破坏,接收端将丢弃该数据 16 位紧急指针:仅在 URG 控制位为 1 时有效。表示紧急数据末尾在 TCP 数据部分中位置。...不能 TCP 发送连接请求,但长时间没到达,然后触发了超时重传 又发送了一次,后建立连接,数据传输,并断开了连接 但此时之前没达到请求报文段突然又到了接收端服务器,接收端服务器变成了 ESTABLISHED...需要不断重发直至超时,这些伪造 SYN 包将长时间占用未连接队列,导致正常 SYN 请求因为队列满丢弃,从而引起网络拥塞甚至系统瘫痪。...差错控制 发送数据包二进制相加然后取反,检测数据在传输过程中任何变化,如果收到段检验有差错,TCP 将丢弃这个报文段不确认收到此报文段。

38120

八股文!!

Fragment offset:某个分片位于原始报文中偏移,重组报文时使用 TTL:分片生命周期 Protocol:上层协议标识(TCP/UDP/ICMP等) 校验:针对IP首部累加校验 源IP...代码:进一步区分报文用途 校验:包含头部和数据部分累加校验 依赖于类型代码内容:针对不同代码类型字段组合并不相同,相当于用户数据 ICMP协议作用 端到端协议,协议分成差错报文查询报文...traceroute利用udp模块组成udp数据包,并将目的端口号设置为不可能端口号,依次将IP数据报包头ttl字段从1递增,traceroute依据返回ICMP报文是端口不可达或请求超时来判断是否结束...,最大值65535 校验UDP头部,UDP数据,UDP伪头部累加校验 udp协议问题 面向无连接:即使对方不存在也会直接发送数据包,所有连接共用同一个缓冲区 没有流控:在接收到用户数据那一刻原样发送出去...定时器超时需要减少进入链路数据 硬件保证由于分组损坏导致丢失极少 中间路由缓存有限,当大量数据进入某个中间路由导致缓存耗尽,中间路由将丢弃分组,且不会发送ICMP给源主机 连续三次重复的确认需要以恒定速率发送数据包

94611
您找到你想要的搜索结果了吗?
是的
没有找到

网络基础

TCP协议如何保证可靠传输 序列号 + 确认应答号:是否重复接收是否收到消息 校验:TCP保持首部和数据检验,确保端到端数据正确性 超时重传:发送数据后,没有收到确认应答则重发这个分组 连接管理...:三次握手四次挥手 流量控制:发送不超过接收端决定窗口大小,防止高负荷下接收端拒收触发重传机制 拥塞控制:对发送数据大小进行控制(选择小拥塞窗口或接收窗口),防止本来拥塞网络来一个大数据...超时未收到确认应答,则需要重传,直到接收到应答 停止等待协议:若接收收到重复分组(序列号),则丢弃,但还要发送确认应答 有个超时计时器,比分组传输平均往返时间更长一些 连续ARQ:窗口控制,累计收到同个序列号才进行重发...各种首部 数据链路层,数据帧: FCS:帧检测序列,检测全部(比如CRC循环校验码) 网络层,IP数据报:IPV4 首部校验:只校验首部 传输层,TCP,UDP数据段: 校验校验全部...校验防止路由器内存或程序漏洞导致错误 ---- 参考: 《图解TCP/IP》

54820

传输层 复习

不需要时可全0 2.目的端口 在终点交付报文时必须使用 3.长度 UDP用户数据报长度,最小值为8(仅有首部) 4.校验 检测UDP用户数据报在传输是否有错,有错就丢弃 注意: ① 当传输层从...IP层收到UDP数据包时候,会根据首部中目的端口,**把UDP数据报通过相应端口,交付给最后终点应用程序,**若端口号不正确丢弃报文,并有ICMP发送‘端口不可达’差错报文给发送方。...在计算校验时,需要在UDP数据报之前添加12字节伪首部。该伪首部,只是临时添加,伪首部既不向下送也不向上递交。仅仅是为了计算校验。...,IP数据报检验校验IP数据报首部。...,这些伪造SYN包将产时间占用未连接队列,导致正常SYN请求因为队列满丢弃,从而引起网络堵塞甚至系统瘫痪。

40720

尽力详解:计网基础 ·运输层

---- UDP首部 伪首部仅仅是为了计算检验。 (好可怜) 如果接收方UDP发现端口号不正确,就丢弃该报文,并由网际控制协议ICMP发送“端口不可达”差错报文给发送方。...这时发送端需要重传数据分组, 接收端又会收到这个分组, 接收端应该丢弃这个重复分组, 并再次向发送端发送确认, 不能认为发送过确认就不再发送确认....确认迟到: 接收端发送的确认迟到了, 接收端会收到重复的确认, 然后丢弃重复的确认. 接收端收到重复分组, 丢弃重复分组, 并重传确认分组....利用确认重传机制, 可以在不可靠传输网络上实现可靠通信, 上面这种可靠传输称为自动重传请求 ARQ(Automatic Repeat Request) ---- 概念讲差不多了,该上算法了。...我们都知道,数据包是有序号,如果A给B发送M1, M2, M3, M4, M5…N个数据包,如果B收到了M1, M2, M4…却始终没有收到M3,这个时候就会重复确认M2,意在告诉A,M3还没收到,可能是丢失

54520

IPv4部分协议信息汇总

IP数据报校验校验数据包附加信息,能够识别数据包在传输过程中是否出错。 发送端先计算校验,并把得到结果与数据包一起发送出去。接收端对数据包进行同样计算。...若结果正确,则接受这个数据包,否则就丢弃它。 校验计算: 发送端:将数据包按16位分段。把这些段用反码算术运算相加,将相加后得到再取反码就得出了校验。...接收端:把收到数据包按16位分段,并把这些段相加。得到取反码。若结果为0,则接受这个数据包,否则拒绝这个数据包。 说明: IP数据包校验校验IP首部部分校验IP数据部分。...校验:UDP校验校验范围包括伪首部(IP首部部分字段)、UDP首部UDP数据,该字段是可选。如果该字段值为零就说明不进行校验。...但是,若lP首部受到损伤,则它可能被交付到错误主机。 伪首部中高层协议类型是为了确保这个数据报是属于UDP不是是属丁于TCP。

13710

ICMP 协议「建议收藏」

这时,在错误发生现场,为了联络飞过来信鸽就是ICMP 报文。在IP 网络上,由于数据包丢弃等原因,为了控制将必要信息传递给发信方。...该字段用来查找产生错误原因; 校验:存储了ICMP所使用校验值。 未使用:保留字段,供将来使用,起值设为0 数据:包含了所有接受到数据报IP报头。...响应请求 我们日常使用最多ping,就是响应请求(Type=8)应答(Type=0),一台主机向一个节点发送一个Type=8ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败...最后,无连接方式网络问题就是数据报会丢失,或者长时间在网络游荡找不到目标,或者拥塞导致主机在规定时间内无法重组数据报分段,这时就要触发ICMP超时报文产生。...因此,同第一个路由器一样,将该包丢弃,并返回ICMP 超时报文。以后,收到错误发送方计算机将TTL 加1,重复同样工作。 (3).只有目标服务器反应不同。

1.8K41

【编程者必会系列】:TCPIP之传输层

有错就丢弃 UDP校验     UDP首部中校验计算方法有些特殊。在计算校验时,要在UDP用户数据报之前增加12个字节伪首部。伪首部既不向下传送也不向上递交,仅仅是为了计算校验。...与IP数据报校验校验IP数据报首部不同,UDP校验是把首部和数据部分一起都校验。     在计算检验时,临时把“伪首部” UDP 用户数据报连接在一起。...若UDP数据报数据部分不是偶数个字节,则要在数据部分末尾增加一个全零字节(但此字节不发送)。接下来就按二进制反码计算出这些16位字。将此二进制反码写入校验字段。...(用于流量控制) 校验 校验覆盖了整个数据包,包括对数据包首部和数据 紧急指针 指出本报文段中紧急指针共占用多少个字节(紧急数据放在本报文段数据最前面) 选项 常见选项是MSS(Maximum...如果收到段校验有差错,TCP将丢弃这个报文段并且不确认(导致对方超时重传); 重排: TCP承载于IP数据报来传输,IP数据报到达可能会失序,因此TCP报文段到达也可能会失序。

21620

ICMP 协议分析

3、ICMP 超时消息:IP 数据包中有一个字段 TTL(Time to live,生存周期),它值随着每经过一个路由器就会减 1,直到减到 0 时该 IP 数据包丢弃。...4.使用ICMP具体程序: 4.1 Ping 程序 Ping 程序利用 ICMP 回显请求报文回显应答报文(不用经过传输层)来测试目标主机是否可达。它是一个检查系统连接性基本诊断工具。...目标主机在收到一个 ICMP 回显请求数据包后,它会交换源、目的主机地址,然后将收到 ICMP 回显请求数据包数据部分原封不动地封装在自己 ICMP 回显应答数据包中,然后发回给发送 ICMP...其原理很简单,开始时发送一个 TTL 字段为 1 UDP 数据报,而后每次收到 ICMP 超时后,按顺序再发送一个 TTL 字段加 1 UDP 数据报,以确定路径中每个路由器,每个路由器在丢弃...UDP 数据报时都会返回一个 ICMP 超时报文,最终到达目的主机后,由于 ICM P选择了一个不可能值作为 UDP 端口(大于30000)。

1.4K10

传输层协议TCP与UDP

校验:UDP校验校验范围包括伪首部(IP首部部分字段)、UDP首部UDP数据,该字段是可选。如果该字段值为零就说明不进行校验。...但是,若lP首部受到损伤,则它可能被交付到错误主机。 伪首部中高层协议类型是为了确保这个数据报是属于UDP不是是属丁于TCP。...UDP高层协议类型是17,若这个值在传输过程中出错,接收端就能检出并丢弃这个数据包,从而不会交付给错误协议。...UDP应用: UDP适用于这样进程,它需要简单请求—响应通信,较少考虑流量控制差错控制。对于需要传送成块数据进程,如FTP,则通常不使用UDP。...实现方式:通过校验、确认以及超时重传三种机制实现 校验:用来检验报文是否出错,如果出错,接收端就将报文丢弃 确认 累积确认:不必对收到分组逐个发送确认,而是对按序到达最后一个分组发送确认

22410

面试突击69:TCP 可靠吗?为什么?

TCP 之所以能保证可靠性,主要是通过以下 6 个手段: 校验 确认应答 超时重传 流量控制 拥塞控制 丢弃重复数据 接下来,我们详细来看这几种手段具体实现。...校验基本算法 TCP/UDP/IP 等协议校验算法都是相同,采用都是将数据流视为 16 位整数流进行重复叠加计算。...6.丢弃重复数据 通过前面的知识我们知道,在确认应答时,由于确认应答消息丢失,那么接收方可能会收到发送方重复数据,如下图所示: 此时对于业务方来说,只需要一个数据就可以了,所以 TCP...TCP 会给每一个发送包上加上一个编号,如果接收到了编号相同数据包,那么就说明接收端得到了重复包,丢弃即可。...总结 TCP 保证可靠性主要手段有 6 个:校验、确认应答、超时重传、流量控制、拥塞控制、丢弃重复数据。

25130

MIT 6.S081 Lab 11 -- NetWork -- 上

在正常情况下,通常只有良好数据包被接收处理,错误数据包会被丢弃。只有在特定需求或测试场景下,才会将设备设置为接收存储所有数据包,包括错误数据包。...当IXSM位被设置为0b时,IPCSTCPCS位会指示硬件是否对接收到数据包执行了IP或TCP/UDP校验计算。 当IPCS位被设置为0b时,表示硬件没有执行IP校验计算。...它可以帮助处理器及时处理已经接收数据包,避免因等待导致性能损失和消息延迟。 与小封包检测触发中断相比,定时器触发中断不是根据数据包大小来判断是否需要中断处理器。...; IP报头校验是指对IP报头所有字段进行校验计算; TCP/UDP校验则是针对传输层TCP或UDP协议头负载数据进行校验计算。...3.4.3.1 Delayed Transmit Interrupts 这种机制允许软件在一定时间内延迟传输中断触发,直到不再向传输链中添加描述符,不是在以太网控制器头指针追赶上尾指针时触发

25120

TCPIP协议

链路层在其MAC帧数据部分装上IP数据包,再加上源、目的主机MAC地址帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。...网络层检查IP报头,如果报头中校验与计算结果不一致,则丢弃该IP数据包;若校验与计算结果一致,则去掉IP报头,将TCP段送交传输层。...传输层检查顺序号,判断是否是正确TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。...) 网络层(Network layer) 数据链路层(Data link layer) 物理层(Physical layer) TCPUDP区别 TCP提供是面向连接、可靠数据流传输 UDP提供是非面向连接...简单说,TCP注重数据安全,UDP数据传输快点,但安全性一般. 建立连接协议(三次握手) 客户端发送一个带SYN标志TCP报文到服务器。这是三次握手过程中报文1。

62050

Linux BSP实战课(网络篇):数据包接收过程

2:网卡使用直接内存访问(DMA)技术将数据包写入指定内存地址。这些内存地址由网卡驱动程序进行分配初始化。 3:网卡通过硬件中断请求(IRQ)向CPU发送通知,以告知数据已到达。...enqueue_to_backlog函数也会被netif_rx函数调用,netif_rx正是lo设备发送数据包时调用函数 协议栈 IP层 由于是UDP包,所以第一步会进入IP层,然后一级一级函数往下调...: ip_rcv:ip_rcv函数是IP模块入口函数,在该函数里面,第一件事就是将垃圾数据包(目的mac地址不是当前网卡,但由于网卡设置了混杂模式被接收进来)直接丢掉,然后调用注册在NF_INET_PRE_ROUTING...其中,一个重要函数调用是__udp4_lib_lookup_skb,该函数根据目标IP端口查找对应socket。如果找不到相应socket,则该数据包将被丢弃;否则,继续处理。...结束语 了解数据包接收流程有助于帮助我们搞清楚我们可以在哪些地方监控修改数据包,哪些情况下数据包可能被丢弃,为我们处理网络问题提供了一些参考,同时了解netfilter中相应钩子位置,对于了解iptables

33220

RoboMaster SDK解读.2

UDP 使用具有最小协议机制简单无连接通信模型。UDP提供数据完整性校验,以及用于在数据报目标寻址不同函数端口号。...它没有握手对话,因此将用户程序暴露在底层网络任何不可靠方面;没有交货、订购或重复保护保证。...UDP 适用于不需要错误检查更正或在应用程序中执行错误检查更正用途;UDP 避免了协议堆栈中此类处理开销。...时间敏感应用程序通常使用 UDP,因为丢弃数据包比等待由于重新传输而延迟数据包更可取,在实时系统中,这可能不是一个选项。 TCP是面向连接 ,在发送数据之前建立客户端和服务器之间连接。...在建立连接之前,服务器必须侦听(被动打开)来自客户端连接请求。三向握手(主动打开)、重新传输错误检测增加了可靠性,但延长了延迟。

96130

网络层之IP协议,它带来了哪些功能,真的能顺着网线找到?

这个图是不是很熟悉,没错就是第二篇里面的,但是这里扩展了一下,比如图上面的访问者1、2、3,都需要访问WEB服务器,这个时候WEB服务器怎么去区分跟识别这三个请求,又怎么去保证能够正常返回。...协议:8个比特,标识IP协议上层使用协议,第二章介绍到TCP协议号为6,UDP协议号为17(这个会随着学习慢慢接触更多,目前记住TCP与UDP协议号即可) 头部校验:16个比特,用于检验IP数据包是否完整以及被修改...,校验失败则直接丢弃。...源地址(Source)目的地址(Destionation)作为IP协议最核心字段,表明这个数据包源是谁,目的去往哪,这个在上面已经举例了作用了,这里就不在重复。...头部校验:跟以太网FCS一样,但是IP协议只校验IP头部,数据部分不校验,交给上层处理。

15910

基础总结(网络篇)

数据丢失(延迟):发数据时会起一个定时器,指定时间内没收到ACK seq+1,就再发一次数据seq、数据重复:接收方直接丢弃收到重复数据。...此时收到了seq+2,因为顺序错了,接收方会再次返回seq+1ACK,收到3次(包含本次)就重发seq+1包 数据错误:数据包都会带校验(checkSum)。...收到数据包seq后会先对校验进行验证,若不对,则发送ACK为seq包,让重新发数据。 累积确认:发送方发了1至4包,接受方成功收到1至3包。接受方可只发回一个序号4的确认包。...Linux中,第一次握手SYN重传数,是tcp_syn_retries参数控制默认为6 TCP校验校验处理,TCP校验包括了96位伪头部,其中有源地址、目的地址、协议以及TCP长度。...若没timewait,此时主动关闭方处于closed状态,被动关闭方发FIN会收到RST包不是ACK 2:旧连接持续时间内所产生所有报文都从网络中消失,若没timeWait新连接可能是同ip同端口

20040

详解SDN限速之meter表

其中meter表限速是颇具代表性限速方式。因为网卡限速队列限速都是传统网络限速方式,meter表是SDN架构下限速方式。本篇主要介绍meter限速。...同一时间只有一个计量带生效,如果数据包速度超过所有的计量带,那么配置速度最高计量带会被使用。 type: type字段是指高出限速值数据包处理方式。主要有丢弃设置优先丢弃。...关闭tx校验 当 datapath_type 设置为 netdev 之后,就是将datapath从内核态转化到用户态,这时datapath收到数据包校验数据包并且校验不通过丢弃数据包。...1、 关闭主机网卡tx校验 2、 关闭iperf客户端tx校验 验证 通过iperf验证速度可以得到此时带宽为5M。注意在iperf打流时使用UDP流测量准确度会高于TCP。...就是rate=5Mrate=12M 以高于rate带宽验证 客户端以15M带宽打流 服务端接收到带宽为12M左右。 15M带宽,限速在12M,不是5M。所以符合多计量带限速规则。

3K10

【建议收藏】通俗易懂图解网络知识-第二篇

作用与TCP数据段中端口号字段相同,用来标识源端目标端应用进程。 长度字段:占16比特。标明UDP头部UDP数据总长度字节。 校验字段:占16比特。用来对UDP头部UDP数据进行校验。...TCP不同是,对UDP来说,此字段是可选项,TCP数据段中校验字段是必须有的。 UDP服务实现 UDP协议和TCP协议在工作方式是不同,但是他们都是建立了端口到端口通信。...建立释放可靠连接:为了保证传输连接建立释放可靠性,TCP在连接建立阶段防止出现因失效连接请求数据包造成请求错误,TCP使用了“三次握手”机制。...校验:与UDP校验字段用法完全相同,它是通过计算整个TCP报文首部、TCP报文数据报以及来自IP报文首部源地址、目的地址、协议和TCP长度字段构成伪首部得来。...绑定之后,在进行网络程序设计时候,套接字所代表 IP 地址端口地址以及协议类型等参数按照绑定值进行操作 由于一个服务器需要满足多个客户端连接请求服务器在某个时刻仅能处理有限个客户端连接请求

1.4K10
领券