ddl是什么意思(网络语ddl是什么梗)

人气:461 ℃/2023-07-17 14:40:51

网络语ddl是deadline的英文缩写,指“死线”或“最后期限”,一般某指任务截止的最后期限,比如某项工作的截止日,或学校收取入学申请书的最晚日期,取该英语单词主要发音的辅音字母而得名。

ddl是什么意思(网络语ddl是什么梗)

网络语ddl是deadline的英文缩写,指“死线”或“最后期限”,一般某指任务截止的最后期限,比如某项工作的截止日,或学校收取入学申请书的最晚日期。

ddl是一个在大学里流行起来的词汇,尤指大学里各种待完成的任务,Deadline是一种压力,也是动力,有时在高度紧张的情况下往往会有意想不到的收获。

ddl产生的主要原因是因为大学生普遍有拖延症,经常将任务拖到最后期限再完成,要避免产生赶ddl的情况产生,就需要有合理的规划,才能及时将任务完成。

msl什么意思网络用语

网络篇(一):《趣谈网络协议》读书笔记

大家好,我是 杰哥

相信很多朋友跟我一样,虽然学校有涉及到网络相关知识,但是工作中一直没怎么用到,所以渐渐地就对于网络知识变得生疏了很多。但渐渐地,当接触到越来越多的新技术或者新业务需求时,你会发现,其实网络知识对于 IT 人员来讲,是一块不容忽视的领域

于是,最近杰哥就进入网络部分的研读啦

首先,推荐给大家一本新书 ——《趣谈网络协议》。整本书的风格比较接地气,读完之后的感觉就是,作者刘超能够把复杂的技术讲得通俗易懂,并且能够让我们快速 get 到网络知识的全貌

接下来,就跟着我,先来看看整本书的第一部分:MAC 层、IP 层以及 传输层的内容吧~

一、MAC 层(一)定义

(一)Medium Access Control,即媒体访问控制

(二)解决的问题

1、 这个包是发给谁的?谁应该接收?

会在头部添加源 MAC 和目的 MAC 地址

2、大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则?

有。分别有三种协议规则:信道划分协议轮流协议以及随机接入协议

3、如果发送的时候出现了错误,怎么办?

采用 CRC,即循环冗余检测,通过 XOR 异或的算法,校验是否出现错误

4、如果发送的时候找不到目的 MAC 地址,怎么办?

若未找到目的 MAC 地址,则通过 ARP 协议广播查找,并缓存一段时间

(三)交换机与 VLAN

1、交换机的 MAC 地址学习能力

交换机具有 MAC 地址学习能力,学会之后,他就能知道谁在哪里,不用再广播查找了

2、STP 协议-解决环路问题

当交换机的数目越来越多的时候,会遭遇环路问题,让网络包迷路,这就需要使用 STP 协议。

通过华山论剑比武的方式,将有环路的图变成没有环路的树,从而解决环路问题

3、VLAN - 解决隔离问题

交换机数目多会面临隔离问题,可以通过 VLAN 形成虚拟局域网,从而解决广播问题和安全问题

二、IP 层(一)ICMP 与 Ping

1、Ping 是通过 ICMP(Internet Control Message Protocol,互联网控制报文协议)协议工作的

2、Ping 比起原生的 ICMP 协议,多了两个字段,一个是标识符:区分用于不同功能,另一个是序号:确定返回结果

3、ICMP 相当于网络世界的侦察兵。有两种类型的 ICMP 报文,一种是主动探查的查询报文,一种异常报告的差错报文

4、Ping 使用查询报文,Traceroute 使用差错报文

5、Traceroute 的作用

1)故意设置特殊的 TTL,来追踪去往目的地时沿途经过的路由器,判断去往目的地途径的各个路由器的距离

2)故意设置不分片位,从而确定路径的 MTU(最大传输单元)

(二)静态路由

可以配置多个路由表,根据源 IP 地址、入口设备、TOS 等选择路由表,然后在路由表中查找路由。这样可以使得来自不同来源的包走不同的路由

(三)动态路由

根据路由协议生成动态路由表,路由表随网络运行环境的变化而变化。从而将问题转化为如何找到图的最短路径问题,有如下两种协议

1、距离矢量路由协议

基于 Bellman-Ford 算法

1)存在两个问题

a.好消息传得快,坏消息传得慢

b.每次发送时,需要发送整个全局路由表,适用于小型网络

2)应用

BGP(边界网关协议,外网的路由协议) 协议使用的是路径矢量路由协议,并且是这个协议的升级版。

3)BGP 对于问题的规避

a.在 BGP 中,除了下一跳之外,还包括了自治系统的路径,解决了第一个问题

b.全局路由表是自治系统这个粒度的,本身就比较少

2、链路状态路由协议

1)基于 Dijkstra 算法

2)相对于距离矢量路由协议来说,更新时只广播更新的或改变的网络拓扑。节省了带宽,并且提高了 CPU 利用率。并且当某个路由器挂了,它的邻居都会广播这个消息,使得坏消息迅速传播

3)应用

OSPF(开放式最短路径优先)基于链路状态路由协议,广泛应用在数据中心内部的协议。应用时,可发现多条最短路径,并在多条路径中进行负载均衡

三、传输层(一)TCP 与 UDP 的区别

1、TCP 是面向连接的;UDP 是面向无连接的

2、TCP 提供可靠交付;UDP 继承了 IP 包的特性,不保证不丢失,不保证按顺序到达

3、TCP 面向字节流;UPD基于数据报,一个个地发一个个地收

4、TCP 是可以有拥塞控制的;UDP不会

(二)UDP

1、包头

即,UDP 头中分别包含:源端口号目标端口号UDP 长度UDP 校验和以及数据,其中数据用来标识当前是属于 TCP 协议还是 UDP 协议

2、特点

3、应用场景

4、基于 UDP 定制化的 5个例子

(三)TCP

1、三次握手

第一次握手:客户端 A 与服务器 B 建立连接。将标志位 SYN 置为 1,产生一个随机值 seq=x,发送给服务端。客户端随即进入 SYN_SENT 状态,等待服务端确认;

第二次握手:服务端 B 收到数据包后进行确认。服务端由标志位 SYN =1 得知客户端是要建立连接,于是将标志位 SYN 和 ACK 都置为 1 ,ack=x 1,随机产生一个值 seq=y。服务端随即进入 SYN_RECVD 状态

第三次握手:客户端 A 确认。客户端收到确认后,检查 ack 是否为 x 1,ACK 是否为1,若正确,则将标志位 ACK 置为1,ack = y 1,发送给服务端,并进入 ESTABELISHED 状态。服务端收到之后,也进入 ESTABELISHED 状态

完成三次握手之后,客户端和服务端就可以开始进行数据传输

Tips1:为什么是三次握手而不是两次?

客户端 A 与服务器 B 建立连接,B 发送应答包后是不能确定 A 已经收到的。当网络波动时,A 会重复发送请求,B 会重复应答

三次握手可以确定双方都准备好了资源避免死锁发生

2、四次挥手

第一次:A 说不玩了,就进入 FIN_WAIT_1 状态

第二次:B 收到 A 的消息后,发送“知道了”,进入 CLOSED_WAIT 状态;A 收到 B “知道了”的消息后,就进入 FIN_WAIT_2 状态

第三次:B 对 A 说,“我也不玩了”,并进入 LAST_ACK 状态,等待 A 的确认

第四次:A 进行确认。A 向 B 发送"知道了"的 ACK 后,不会直接“跑路”,而是进入 TIME_WAIT 状态(等待 2MSL 之后才会进入 CLOSED 状态)。而此时 B 收到请求之后,则直接变为 CLOSED 状态。也就是说,一般情况下,B 是比 A 先关闭的

Tips2:为什么客户端 A 还要等待 2MSL 之后才会关闭连接?

MSL(最长生存时间),是包在网络上存在的最长时间,超过这个时间的包将会被丢弃

A 并不知道 B 是否接到自己的 ACK ,A 是这么想的:

1)如果 B 没有收到自己的 ACK,会超时重传FIN,那么A再次接到重传的 FIN,会再次发送 ACK

2)如果 B 收到自己的 ACK,也不会再发任何消息,包括 ACK

无论是 1 还是 2,A都需要等待,要取这两种情况等待时间的最大值,以应对最坏的情况发生,这个最坏情况是:

去向 ACK 消息最大存活时间(MSL) 来向 FIN 消息的最大存活时间(MSL)

这恰恰就是 2MSL( Maximum Segment Life)

所以,等待 2MSL 时间,A 就可以放心地释放 TCP 占用的资源、端口号,此时可以使用该端口号连接任何服务器。同时也能保证网络中老的链接全部消失

Tips3:那么如果 B 超过了 2 MSL 的时间,依然没有收到它发的 FIN 的 ACK,怎么办呢 ?

按照 TCP 的规则,B 当然还会重发 FIN,这时 A 收到这个包之后,就表示:“我已经在这里等了这么长时间,已经仁至义尽了,之后的包我就都不认了。”于是A 直接发送 RST 给B,B 就知道 A 已经跑路了

Tips4: RST 表示什么意思?

RST(Reset the connection),用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求

3、顺序问题

通过每个包设置一个 ID 来保证顺序性

若第二个报文序列先于第一个到达,接收端会保留这个报文段,并等待缺少的字节来填补该间隔。同时保存不同状态包的记录,等待第一个报文的到达之后,最终进行累计确认

TCP 的客户端和服务端分别通过缓存来保存不同状态包的记录:

1)发送端根据处理情况设置四个部分:

2)接收端设置三个部分:

4、重发机制(保证不丢包)

保证每个请求都有应答。常见的重传机制,如下:

1)超时重试

对每个已经发送但未收到 ACK 的包,都设置一个定时器,超过了一定时间,就重新尝试。而这个值是多少呢?是通过采样 RTT(Round-Trip Time 往返时延) 的时间及 RTT 的波动范围,进行加权平均,算出一个值

2)快速重传

快速重传(Fast Retransmit)机制,它不以时间为驱动,而是以数据驱动重传

它的思想是:当收到三个相同的 ACK 报文时,会在定时器过期之前,重传丢失的报文段

举个例子,你就明白了:

比如,发送方发出了 1,2,3,4 份数据:

当 Seq1 先收到了,于是就 ack 回 2;

而 Seq2 因为某些原因没收到,Seq3 和 Seq4 到达了,因为 Seq2 还是没有收到,于是还是 ack 回 2;

发送端收到了三个 ack = 2 的确认,便知道了 Seq2 还没有收到,就会在定时器过期之前,重传丢失的 Seq2

最后,接收端收到了 Seq2,此时因为 Seq3,Seq4 都收到了,于是 ack5

3)SACK 方法

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

5、流量控制

即,对发送方发送速率的控制。防止发送方把接收方的缓存塞满

接收方每次收到数据包,可以在发送确定报文的时候,同时告诉发送方自己的缓存区(即接收窗口大小)还剩余多少是空闲的 发送方收到之后,便会调整自己的发送速率,也就是调整自己发送窗口的大小,当发送方收到接收窗口的大小为 0 时,发送方就会停止发送数据,防止出现大量丢包情况的发生

停止之后,客户端也会定时发送窗口探测数据包,看是否有机会调整窗口的大小

6、拥塞控制

拥塞窗口(cwnd),是为了防止网络被塞满,避免了包丢失和超时重传

具体步骤如下:

S1:慢启动

也可以称为试探启动。以 cwnd 为 1 开始,即一次只能发送一个包

S2:指数增长

当每次收到确认之后,cwnd 再加一个 cwnd 的值,即分别变为 1,2,4,8... 当 达到 ssthresh 的值(65535)时,变成线性增长

S3:拥塞避免

有两种处理方式:超时重传快速重传

1)超时重传的处理方式:当发生超时指标的丢包时,需要重新从慢启动开始(cwnd=1),并且 ssthresh 的值变为 cwnd/2

但是可以很明显看到,这种方式太激进了,反应也很强烈,会造成网络卡顿

2)快速重传的处理方式:cwnd 减半(cwnd/2)。然后,ssthresh=cwnd。若3个包返回时,cwnd = cwnd 3,即成线性增长

7、TCP 的安全问题-SYN攻击

1)什么是 SYN 攻击?

我们知道,在 TCP 的三次握手过程中,第二次握手进行完还未进行第三次握手期间:即服务器发送了 SYN-ACK 之后,收到客户端的 ACK 之前,处于 SYN_RCVD 状态。当收到 ACK 后,服务器才能转入 ESTABLISHED 状态

而,攻击者会在短时间内伪造大量不存在的IP地址,向服务器不断地发送 SYN 包,根据三次握手的流程,服务器会为每个客户端请求回复确认包,并等待客户的确认

由于源地址不存在,服务器需要不断重发直至超时。这些伪造的 SYN 包将长时间占用未连接队列,正常的 SYN 请求被丢弃,导致目标系统运行缓慢,严重者会引起网络堵塞甚至系统瘫痪

2)如何检测 SYN 攻击?

当你在服务器上看到大量的半连接状态时,特别是源 IP 地址是随机的,基本上可以断定这是一次 SYN 攻击。在 Linux/Unix 上可以使用系统自带的 netstats 命令来检测 SYN 攻击

3)如何防御 SYN 攻击?

根据 TCP 的设计思想,这种攻击无法被直接避免。只能通过以下几种常见的方式减轻 SYN 攻击的危害:

缩短超时(SYN Timeout)时间

增加最大半连接数

过滤网关防护

SYN cookies 技术

总结

好了,这个是本人读完《趣谈网络协议》这本书的第一部分的读书笔记。整体内容包括:

其中,重点在于对于MAC层、IP层以及传输层这三层协议的知识扫盲梳理,和 TCP 协议的三次握手、四次挥手以及如何保证靠谱传输的机制的学习

剩余部分的总结,也在整理之中了,敬请期待下次推送

嗯,就这样。每天学习一点,时间会见证你的强大~

欢迎大家关注我们的公众号,一起持续性学习吧~

推荐

首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.