【25软考网工】第五章(6)TCP和UDP协议、流量控制和拥塞控制、重点协议与端口
目录
一、TCP和UDP协议
1. TCP和UDP报文格式
1)TCP传输控制协议
2)UDP用户数据报协议
3)TCP与UDP对比
4)TCP和UDP类比
5)应用案例
例题1#可靠传输服务层
例题2#提供可靠传输功能层
6)TCP报文格式
例题3#TCP报文紧急标志
例题4#URG指针作用
例题5#TCP序号范围
7)UDP报文格式
例题6#UDP头部字节
例题7#UDP最大负载
2.知识小结
二、TCP三次握手
1. TCP三次握手建立连接
1)标志位
2)序列号
3)状态
2.TCP四次挥手断开连接
1)例题#连接释放报文段标志
2)例题#TCP连接建立请求后状态跳变
3)例题#netstat命令含义判断
编辑
4)例题#FIN扫描目标主机判断
3. TCP序列号及确认号
1)控制报文
2)数据报文
3)例题#TCP序列号及确认号计算
编辑
4)例题#发送数据计算
5)例题#TCP连接seq及ack值
4.知识小结
三、流量控制
1. TCP滑动窗口机制
2.例题
1)例题:流量控制协议
2)例题:流量控制协议及窗口字段相关
四、拥塞控制
1. TCP拥塞控制
1)慢开始与拥塞避免
2)快重传与快恢复
3)例题:快速重传触发条件
4)例题:快恢复新窗口值计算
5)例题:TCP拥塞控制说法
6)例题:慢启动拥塞控制
7)例题:cwnd的定义
8)例题:网络控制参数
9)例题:慢启动计算
2.知识小结
五、重点协议与端口号总结
1. 端口号
1)例题:Web访问端口使用情况
2. 网络协议
1)基于 TCP 的协议(可靠传输)
2)基于 UDP 的协议(高效传输)
3)特殊说明
4)协议层次:
3.主流 网络协议魔力图
4. 应用案例
1)例题:使用TCP协议的协议
2)例题:SNMP协议说法判断
5.知识小结
一、TCP和UDP协议
传输层主要有两个协议:TCP和UDP
1. TCP和UDP报文格式
1)TCP传输控制协议
TCP特点: TCP是面向连接的协议,一般用于传输数据量较少且对可靠性要求高的应用,如文件传输。
TCP应用: Web、电子邮件等。
2)UDP用户数据报协议
UDP特点: UDP是一种不可靠的、无连接的协议,用于传输数据量大、可靠性要求不高但要求速度快的场景,如音视频传输。
UDP应用: 域名系统(DNS)、视频应用、IP语音(VoIP)等。
3)TCP与UDP对比
协议名称 | 传输控制协议(TCP) | 用户数据报协议(UDP) |
是否面向连接 | 面向连接 | 面向无连接 |
可靠性 | 可靠传输 | 不可靠传输 |
功能 | 流控及窗口机制 | 尽力而为的传输 |
应用 | TCP应用:Web,电子邮件文件传输程序 | UDP应用:域名系统(DNS),视频应用、IP语音(VolP) |
4)TCP和UDP类比
- TCP: 面向连接,喝水慢,不易漏水,安全性高。
- UDP: 面向无连接,喝水快,易漏水,安全性低。
5)应用案例
例题1#可靠传输服务层
- 审题过程: 在OSI参考模型中,哪一层在物理线路之上提供可靠的数据传输服务?
- 答案: B,数据链路层
- 解析: 物理链路之上是数据链路层,OSI模型的数据链路层有很多可靠性保障机制。提供端到端的可靠传输才是传输层实现的。
例题2#提供可靠传输功能层
- 审题过程: 在OSI参考模型中,负责提供可靠的端到端数据传输的是哪一层的功能?
- 答案:C, 传输层
- 解析: 端到端的可靠传输服务是由传输层提供的,而节点到节点或点到点的可靠传输服务是由数据链路层提供的。
6)TCP报文格式
1.源端口和目的端口(16位)
- 源端口和目的端口: TCP报文的前两个字段,各占16位,取值范围为[0,65535],最大端口号为65535。
- 知名端口: 小于1024的端口一般为知名端口,用于特定服务,
- 如http网页使用80端口,https安全网页使用443端口,telnet使用23号端口。
- 普通端口则是指范围在1024~49151之间的端口号,通常用于一些特定的应用程序或服务,但并不像知名端口那样被广泛使用。常见的一些应用程序可能会使用这些端口。
- 除了知名端口和普通端口,还有动态/私有端口,范围在49152~65535之间,用于暂时分配给客户端应用程序使用。
2.序列号和确认号(32位)
- 序列号: 32位,每发送一个字节的数据,序列号加一。
- 序列号范围: 不重复的情况下,最多有2^32个序列号,即最多可标识4GB的数据。
3.窗口(16位)
- 窗口: 用于流量控制。
4.偏移值(4位)
- 偏移值: 描述TCP报头的长度或数据部分从哪开始,与IP报头的ihl类似,取值范围0-15,但只使用5-15,单位为四个字节。
- TCP报头长度: 可扩展,最小20字节,最长60字节(类似于IP报头),IP+TCP报头最小为40字节(20B+20B),最大为120字节(60B+60B)。
5.六个标志位
用于TCP的三次握手/四次挥手:
- SYN:建立连接
- SYN+ACK:对方回复
- ACK:再次发送建立连接
- FIN:断开连接
TCP头部中的六个标志位如下:
1. SYN(Synchronize):建立连接时使用,用于发起一个连接请求。
2. ACK(Acknowledgment):确认标志,用于对接收到的数据进行确认。
3. FIN(Finish):结束标志,用于释放连接,表示发送方已经完成发送数据的任务。
4. RST(Reset):重置标志,用于强制关闭连接,通常表示连接出现错误,必须释放连接,然后再重新建立连接。比如路由器上RST为1时表示恢复出厂设置
5. PSH(Push):数据推送标志,接收端将PUSH位置1,通知接收方立即将收到的数据交给应用层处理,而不是等待缓冲区填满再交付。
6. URG(Urgent):紧急指针标志,表示紧急数据在数据流中的位置,通常和紧急指针字段一起使用,用于紧急数据的传输。为1时表示有紧急数据需要发送,一般是带外网管数据。紧急指针指向网管数据所在位置
例题3#TCP报文紧急标志
- 审题过程: 若有带外数据需要传送,TCP报文中哪个标志字段置“1”?
- 答案: C ,URG
- 解析: URG=1时,表明紧急指针字段有效,有紧急数据需要传送。
例题4#URG指针作用
- 审题过程: TCP协议中,URG指针的作用是什么?
- 答案: C , 表明带外数据在TCP段中的位置
- 解析: URG指针与URG标志位不同,URG标志位表示有紧急数据,而URG指针指出紧急数据在TCP段中的具体位置。
例题5#TCP序号范围
- 审题过程: 主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?
- 答案: C, 2^32,即4GB
- 解析:20字节IP头部,20字节TCP头部,数据部分为1460,相加一共是1500字节,TCP 封装在以太网中。TCP协议的序号为32位,序号范围为0到2^32,但序号0也算一个序号,因此能表示的字节数是2^32字节,即4GB。
- 注意:题目问的是长度,不是TCP序号的最大值
7)UDP报文格式
UDP相较于TCP做了很大精简,省略诸多控制字段。UDP报头长度固定为8字节。
- 源端口/目的端口(16位)
- 长度(16位):2^16,表示的范围为[0,65535]
- UDP数据部分长度:需要减去8字节(报头)的开销,最大为65527B
例题6#UDP头部字节
- 审题过程: UDP头部的大小为多少字节?
- 答案: A , 8字节
- 解析: UDP报文格式相对TCP做了很大精简,头部大小为固定的8字节。
- 注意:IP报头20-60字节(默认20字节),TCP报头20-60字节(默认20字节)UDP报头8字节。
例题7#UDP最大负载
- 审题过程: UDP段可容纳的最大负载是多少字节?
- 答案: A , 65527字节
- 解析: UDP报文长度字段为16位,可表示[0,65535]字节,减去8字节头部,UDP最大负载是65527字节。
2.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
TCP和UDP协议基本概念 | TCP是面向连接的,可靠传输;UDP是无连接的,不可靠传输 | TCP和UDP的差异及应用场景 | ★★★ |
TCP协议特点 | 面向连接、可靠传输、有流量控制、窗口机制 | TCP用于网页、电子邮件、文件传输 | ★★★★ |
UDP协议特点 | 无连接、不可靠传输、尽力而为 | UDP用于DNS、语音、视频类应用 | ★★★ |
传输层功能 | 提供端到端的可靠数据传输服务 | 区分数据链路层和传输层的功能 | ★★ |
TCP报文格式 | 原端口、目的端口、序列号、确认号、窗口、偏移值、标志位等 | 端口范围、序列号计算、窗口机制、标志位作用 | ★★★★★ |
TCP端口 | 知名端口(<1024),随机端口(>1024) | 知名端口的应用实例 | ★★★ |
序列号与确认号 | 32位序列号,每发送一个字节加一 | 序列号不重复的最大值计算 | ★★★★ |
窗口机制 | 滑动窗口,用于流量控制 | 窗口大小的意义和作用 | ★★★★ |
TCP标志位 | SYN、ACK、FIN、URG、PSH、RST | 各标志位的作用和使用场景 | ★★★★★ |
UDP报文格式 | 原端口、目的端口、长度、校验和 | UDP报文的简洁性 | ★★★ |
UDP长度字段 | 16比特,表示0到65535字节 | UDP最大负载计算 | ★★★ |
TCP与UDP开销对比 | TCP开销大,UDP开销小 | 通过实例对比TCP和UDP的开销 | ★★★ |
二、TCP三次握手
1. TCP三次握手建立连接
本质过程:本质是打招呼过程,类比A向B传东西前确认:"现在有空吗?"→"有空"→"好的,准备发数据"
报文交互:
第一步:主机A发送SYN=1的报文(序列号seq=0)
第二步:主机B回复SYN=1,ACK=1的报文(seq=0,ack=1)
第三步:主机A发送ACK=1的报文(seq=1,ack=1)
特殊特性:实际上第三次握手时已可携带数据
1)标志位
SYN作用:同步序列号,建立连接请求
ACK作用:确认收到报文
组合形式:
- SYN+ACK组合表示"确认收到连接请求并同意建立"
- 单独ACK表示"确认收到数据"
2)序列号
确认号含义:
- 确认收到前序报文(如ack=1表示确认seq=0的报文)
- 请求下一序号报文(ack=1同时表示请求seq=1的报文)
递推规则:确认号始终等于对方序列号+1(ack=x+1)
3)状态
主动端状态:
- CLOSED→SYN_SENT(发送SYN后)
- SYN_SENT→ESTABLISHED(收到SYN+ACK并回复ACK后)
被动端状态:
- LISTEN→SYN_RCVD(收到SYN后)
- SYN_RCVD→ESTABLISHED(收到ACK后)
超时处理:SYN_SENT状态未收到响应会返回CLOSED
2.TCP四次挥手断开连接
完成数据传输,需要断开连接
- 第一步:主机A发送FIN 、ACK
- 第二步:主机B收到后回复ACK
- 第三部:主机B发送FIN、ACK请求断开连接
- 第四步:主机A发送ACK
第一步和第二步完成,此时A断开连接
第三步和第四步完成,此时B断开连接
注意:
- 第二步和第三步的序列号可以一样(双方都断开连接)也可以不一样(一方数据还在发送,等待发送完成再断开)
1)例题#连接释放报文段标志
- 关键考点:FIN标志在连接释放中的作用
- 解题要点:释放连接必须将FIN置1
- 正确答案:A(FIN置1)
2)例题#TCP连接建立请求后状态跳变
- 状态转换路径:SYN_SENT→CLOSED(超时未响应)
- 干扰项分析:TIME_WAIT是断开连接状态,LISTEN是服务端初始状态
- 正确答案:A
3)例题#netstat命令含义判断
- 端口类型判断:2011/2038/2052都是临时端口(>1024)
- 状态对应关系:
- ESTABLISHED表示已完成三次握手
- TIME_WAIT表示正在断开连接
- 安全连接标志:443端口对应HTTPS协议
- 正确答案:C
4)例题#FIN扫描目标主机判断
- 扫描技术对比:
- 完全连接扫描(TCP全连接扫描):完成三次握手(效率低)
- SYN扫描(TCP半连接扫描):收到ACK表示端口开放,TCP建立连接的第三步无法正常完成
- FIN扫描:开放端口无响应,关闭端口返回RST
- 行为特征:活动主机对FIN扫描保持静默
- 正确答案:C
3. TCP序列号及确认号
1)控制报文
关联机制:PC1的seq与PC2的ack相互关联,确认号ack总等于对方seq+1(如seq=10时ack=11)
第二步返回的ack的双重含义:
①已收到ack−1及之前的数据 (如图中PC1发送的ack=10)
②请求发送seq=ack的新数据(PC2收到后回复的ack=11)
三次握手特性:控制报文典型场景是三次握手,此时尚未传输实际数据,仅进行连接准备
2)数据报文
此时已完成三次握手
字节计算规则:每个序列号对应1字节数据,ack值=最后接收的seq+数据字节数(如seq=201发100字节,则ack=301)
数据范围表示:seq值表示数据起始编号,数据结束编号为seq+数据字节数−1(如seq=800发150字节,则数据编号为800-949)
确认机制:接收方通过ack值确认已接收数据的最大编号(如ack=950表示949及之前数据已接收,请求对方发送编号seq为950的数据)
3)例题#TCP序列号及确认号计算
- 关键条件:①ASCII字符C占1字节 ②初始seq=42,ack=79,data=C
- 解题步骤:
- 主机B的seq应等于主机A上次的ack值(79)
- 确认号计算:ack=收到seq+数据字节数=42+1=43
- 易错点:忽略ASCII字符的字节长度特性,误认为需要随机生成序列号
- 答案:(36)C (37)B
4)例题#发送数据计算
- 关键条件:①初始seq=2000②FIN段seq=8001
- 计算原理:
- 第三次握手开始携带数据,起始seq=2001
- 有效数据seq范围为2001-8000(FIN段8001不含数据)
- 总字节数=8000-2000=6000
- 记忆技巧:FIN段的seq
值减初始seq即为总字节数(8001-2000-1=6000) - 答案:A
5)例题#TCP连接seq及ack值
- 标志位规则:
- 仅第一次握手ACK=0,其余所有报文ACK=1
- 第二次握手SYN=1且ACK=1
- 序号计算:
- 确认号ack等于对方seq+1(79→80)
- 序列号seq独立生成(示例中为40)
- 典型错误:混淆SYN和ACK标志位的组合方式
- 答案:(63)D (64)C
4.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
TCP三次握手 | 主机A发送SYN=1报文 → 主机B回复SYN=1+ACK=1 → 主机A发送ACK=1完成连接建立 | 标志位组合:SYN/SYN+ACK/ACK; 状态转换:SYN_SENT → SYN_RECEIVED → ESTABLISHED | ★★★ |
序列号机制 | 确认号=收到序列号+数据字节数(例:收到seq=42且data=1字节 → ack=43) | 两层含义:确认已收数据 + 请求下一报文; 特殊规则:除第一个SYN报文外所有ACK=1 | ★★★★ |
TCP四次挥手 | FIN+ACK → ACK → FIN → ACK(双向独立断开) | 状态差异:TIME_WAIT出现在主动关闭方; 合并情况:第二/三次挥手可能合并 | ★★★★ |
端口扫描技术 | SYN扫描:开放端口返回SYN+ACK,关闭返回RST; FIN扫描:开放端口无响应,关闭返回RST | FIN扫描的静默特性; 考试常混淆两种扫描响应模式 | ★★★★ |
数据载荷计算 | 序列号范围=数据字节数 (例:seq2001-8000含6000字节) | 第三次握手可携带数据; FIN报文不含数据载荷 | ★★★★ |
连接状态判断 | ESTABLISHED:已建立连接; TIME_WAIT:挥手阶段 | 易错点:将TIME_WAIT误判为建立中状态 | ★★★ |
安全协议识别 | 443端口=HTTPS加密连接 | 需区分HTTP(80)与HTTPS(443) | ★★ |
三、流量控制
- 目的: 防止发送方发送速度过快,导致接收方处理不过来,造成丢包重传,浪费网络资源。
- TCP流量控制机制: 使用可变大小的滑动窗口。
1. TCP滑动窗口机制
实现原理:
- 可变窗口机制:接收方通过TCP报头中的窗口字段(16位)实时告知发送方自己的剩余接收缓冲区大小。
- 动态协商:窗口大小在通信过程中可动态调整(如网络拥塞或接收方处理能力变化时)。
工作原理:
- 在三次握手建立连接时,双方会告知彼此的窗口大小。
- 发送方根据接收方的窗口大小控制发送数据量。
- 接收方处理数据后,窗口大小增加,通知发送方可继续发送数据。
具体实现过程:
1.三次握手初始化
- 建立连接时,双方通过三次握手交换初始窗口大小(如示例中主机B告知A窗口为3)。
- 接收方的窗口值 = 当前接收缓冲区剩余容量(单位:字节)。
2.发送数据
- 发送方根据接收方通告的窗口大小(如窗口=3),发送不超过该容量的数据段(如发送3个数据包)。
3.接收方反馈
- 接收方处理完数据后,通过ACK确认报文告知发送方:
- 已确认的数据位置(ACK号)。
- 新的剩余窗口大小(更新后的窗口字段值)。
4.窗口动态调整
- 发送方根据最新窗口值调整后续发送量:
- 若窗口增大(如从3→5),发送方可多发数据。
- 若窗口减小(如从3→1),发送方需减少发送量。
- 若窗口为0,发送方暂停发送,直到接收方重新通告非零窗口。
2.例题
1)例题:流量控制协议
- 答案: D. 可变大小的滑动窗口协议
- 解析: TCP使用的流量控制协议是可变大小的滑动窗口协议。
2)例题:流量控制协议及窗口字段相关
- 答案: B. 可变大小的滑动窗口协议, C. 窗口
- 解析:
- TCP使用的流量控制协议是可变大小的滑动窗口协议。
- TCP头中与之相关的字段是窗口字段,用于流量控制。
四、拥塞控制
1. TCP拥塞控制
有了流量控制可以调节发送端和接收端的节奏,为什么还要有拥塞控制?
流量控制:在A、B 两个端点进行。
拥塞控制:在A、B和所有网络节点中进行。
- 目的: 除了调节发送端和接收端的节奏外,还需考虑中间网络的拥塞情况。
- 范围: 在发送端、接收端及所有网络节点中进行。
1)慢开始与拥塞避免
慢开始:
- 初始拥塞窗口小,指数增长发送数据量。
- 达到门限值(ssthresh)后,转为拥塞避免。
拥塞避免:
- 拥塞窗口线性增长。
- 直到发生超时(网络拥塞)后:
- 拥塞窗口重置为1,从1开始发;
- 门限值设为拥塞时窗口大小(24)的一半(12)。
2)快重传与快恢复
快重传:
- 发送方收到3个重复ACK时,立即执行快重传算法,重传未确认报文段,不必等待超时。
快恢复:
- 门限值设为当前拥塞窗口(24)的一半(12)。
- 拥塞窗口从门限值开始,线性增长。
优点:效率高
总结:
- 快重传
- 当发送方连续收到3个重复的ACK报文时,直接重传对方尚未收到的报文段
- 不必等待那个报文段设置的重传计时器超时
- 快恢复
- 当发送方连续收到3个冗余ACK时,执行“乘法减小”算法
- 把ssthresh设置为当前cwnd的一半,然后cwnd从ssthresh开始使用拥塞避免算法
3)例题:快速重传触发条件
- 答案: D. 收到3个冗余ACK
- 解析: 在TCP拥塞控制机制中,快速重传的触发条件是收到3个冗余ACK。
4)例题:快恢复新窗口值计算
- 答案: A. 2000字节
- 解析: 当拥塞窗口为4000字节时,快恢复会将新的拥塞窗口设置为当前窗口的一半,即4000/2=2000字节。
5)例题:TCP拥塞控制说法
- 答案: D. 当网络出现拥塞时,慢启动门限值恢复为初始值(错误)
- 解析: 出现拥塞时,拥塞窗口恢复为初始值,门限值设置为发生拥塞时的一半。
6)例题:慢启动拥塞控制
- 答案: B. 6
- 解析: 拥塞窗口为8时发生拥塞,门限值设为4。经过4轮成功应答后,拥塞窗口依次为1-2-4-5,最终为6。1-2-4指数增长,4-5线性增长。
7)例题:cwnd的定义
- 答案: D. cwnd值存放在本地
- 解析: 拥塞窗口(cwnd)是TCP拥塞控制措施,存放在本地,根据网络拥塞程度动态变化。
8)例题:网络控制参数
- 答案: D. 拥塞窗口大小
- 解析: 拥塞窗口大小不随报文传送到对端实体,是发送方本地维护的状态变量。
9)例题:慢启动计算
- 答案: B. 2000
- 解析: TCP最大段长为1000字节,慢启动第一轮后拥塞窗口指数增长扩大到2000字节,而接收方窗口为5000字节,因此可发送的最大数据为两者最小值,即2000字节。
2.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
TCP流量控制 | 可变大小的滑动窗口 | 滑动窗口的作用与实现方式 | ★★★ |
窗口字段用于流量控制 | 窗口字段的功能 | ★★ | |
三次握手过程中通知窗口大小 | 三次握手与窗口大小的关系 | ★★ | |
TCP拥塞控制 | 慢开始与拥塞避免算法 | 拥塞控制与流量控制的区别 | ★★★★ |
拥塞发生时的处理(一夜回到解放前,拐点变为一半) | 拥塞发生后的两个动作 | ★★★★★ | |
快重传与快恢复机制 | 快重传的触发条件与快恢复的操作 | ★★★★ | |
拥塞窗口与滑动窗口 | 拥塞窗口是本地计算的,滑动窗口是对方告知的 | 拥塞窗口与滑动窗口的区别 | ★★★ |
发送数据应取拥塞窗口与滑动窗口的最小值 | 发送数据量的确定方式 | ★★★★ | |
相关练习题 | 各类考试题目及解析 | 题目中的关键信息与答案选择 | ★★ |
五、重点协议与端口号总结
1. 端口号
源端口分配规则: 客户端使用的源端口由系统随机分配,必须是当前未使用且大于1024的端口号
目的端口规则: 服务器端使用知名端口号,如telnet服务固定使用23端口
典型示例: PC1访问PC2时,源端口为随机值231029,目的端口为telnet的23端口
1)例题:Web访问端口使用情况
- 核心考点: 源端口必须大于1024的随机端口,目的端口通常是80/8080/443
- 选项分析:
- A选项源端口为80(知名端口)不可能出现
- B/C/D选项源端口均符合大于1024的要求
- 易错点: 容易误选D因看似与Web无关,实际考察端口分配规则
- 答案: A
- 扩展知识: 网站可自定义使用大于1024的非知名端口(如4000)
2. 网络协议
邮件协议三剑客:
- SMTP: 发送邮件,TCP/UDP 25端口(通常用TCP)
- POP3: 接收邮件,TCP 110端口
- IMAP: 客户端与服务器端邮件同步,TCP 143端口
1)基于 TCP 的协议(可靠传输)
协议 | 端口号 | 功能简述 |
FTP | 20/21 | 文件传输(数据/控制端口) |
SSH | 22 | 安全的远程登录与管理 |
Telnet | 23 | 明文远程登录(不推荐使用) |
SMTP | 25 | 发送邮件 |
POP3 | 110 | 从服务器下载邮件 |
IMAP | 143 | 邮件同步与管理 |
HTTP | 80 | 网页传输 |
HTTPS | 443 | 加密的网页传输 |
助记:
TCP协议多为需可靠传输的服务(如文件、邮件、网页),端口号多为两位数或常见端口。
2)基于 UDP 的协议(高效传输)
协议 | 端口号 | 功能简述 |
DNS | 53 | 域名解析(默认UDP,大包用TCP) |
DHCP | 67/68 | 动态分配IP地址 |
TFTP | 69 | 简单文件传输(无认证) |
SNMP | 161 | 网络设备管理 |
RIP | 520 | 路由信息协议(小型网络) |
NTP | 123 | 网络时间同步 |
助记:“扔石头蛋蛋”对应:
- RIP(UDP 520)
- SNMP(UDP 161)
- TFTP(UDP 69)
- DNS(UDP 53)
- DHCP(UDP 67/68)
3)特殊说明
- DNS:默认用UDP(查询响应快),但区域传输(Zone Transfer)或大包时用TCP。
- ICMP:属于网络层协议(如Ping、Traceroute),与TCP/UDP无关,直接封装在IP中。
- OSPF:是网络层路由协议(协议号89),直接封装在IP中。
4)协议层次:
- 以太网→数据链路层
- ICMP/IP→网络层
- TCP/UDP→传输层
- 应用层协议最多(需记忆各协议端口号)
3.主流 网络协议魔力图
TCP协议组:
- FTP(20/21): 文件传输(数据/控制端口)
- SSH(22): 加密安全登录
- Telnet(23): 明文远程登录
- HTTP(80)/HTTPS(443): 网页传输
- BGP(179): 边界网关协议
- RDP(2289):远程桌面
UDP协议组
- R→RIP(520)路由协议信息
- S→SNMP(161/162)简单网络管理协议
- T→TFTP(69)简单文件测试需要
- D→DNS(53)
- D→DHCP(67/68)
- IKE(500) Internet密钥交换协议
物理层重点:
- 千兆/万兆以太网规范
- WiFi标准(802.11系列)的速率和频段
网络层协议号:
- ICMP→1
- IGMP→2 Internet组管理协议
- ESP→50(加密)
- AH→51(认证)
- OSPF→89
4. 应用案例
1)例题:使用TCP协议的协议
- 选项分析:
- A(ICMP): 直接封装在IP层
- B(IP): 可用TCP/UDP承载
- D(SNMP): UDP协议
- C(Email): 包含SMTP/POP3/IMAP均为TCP协议
- 答案: C
- 记忆要点: 邮件三协议必须使用TCP传输
2)例题:SNMP协议说法判断
- 选项分析:
- A: 正确,SNMP实现统一网络管理
- B: 错误,SNMP基于UDP(非TCP)
- C: 错误,v2c未重新定义安全机制
- D: 错误,v3不是IPv6专用
- 版本特性:
- v3主要增强安全性(非IPv6支持)
- UDP传输效率高但可靠性差
- 答案: A
5.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
TCP/UDP端口号 | 源端口随机分配(>1024),目标端口为知名端口(如Telnet:23,HTTP:80) | 原端口不可能是知名端口(如80),目标端口可自定义 | ⭐⭐ |
邮件协议 | SMTP(发邮件/TCP25)、POP3(收邮件/TCP110)、IMAP(同步邮件/TCP143) | 协议功能区分; SMTP通常用TCP,但也可用UDP | ⭐⭐⭐ |
协议层次与协议号 | ICMP(协议号1)、OSPF(89)、ESP(50加密)、AH(51认证) | ICMP直接封装在IP层,非TCP/UDP | ⭐⭐ |
TCP应用层协议 | FTP(传文件)、SSH/Telnet(远程登录)、HTTP(80)/HTTPS(443)、BGP(179)、RDP(3389) | Telnet明文不安全,SSH推荐使用 | ⭐⭐⭐ |
UDP应用层协议 | DNS(域名解析)、DHCP(分配IP)、TFTP(69)、SNMP(网管)、RIP(520) | 助记法: 扔石头蛋蛋(R-RIP, S-SNMP, T-TFTP, D-DNS/DHCP) | ⭐⭐⭐⭐ |
SNMP版本差异 | v1/v2无安全机制,v3重新定义安全机制 | v2未增强安全,v3非IPV6专用 | ⭐⭐⭐ |
经典易错题 | Web访问中,原端口为80的情况不可能出现(应为随机>1024端口) | 混淆源/目标端口规则 | ⭐⭐⭐⭐ |
相关文章:
【25软考网工】第五章(6)TCP和UDP协议、流量控制和拥塞控制、重点协议与端口
目录 一、TCP和UDP协议 1. TCP和UDP报文格式 1)TCP传输控制协议 2)UDP用户数据报协议 3)TCP与UDP对比 4)TCP和UDP类比 5)应用案例 例题1#可靠传输服务层 例题2#提供可靠传输功能层 6)TCP报文格式…...
如何修改 JAR 包中的源码
如何修改 JAR 包中的源码 前言一、准备工作二、将 JAR 当作 ZIP 打开并提取三、重写 Java 类方法 A:直接替换已编译的 .class方法 B:运行时类路径优先加载 四、修改 MyBatis(或其他)XML 资源五、重新打包 JAR(命令行&a…...
【Linux网络】应用层协议HTTP
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 HTTP 协议 认识 URL urlencode 和 urldecode HTTP 协议请求与响应格式 H…...
高并发架构及场景解决方案
高并发 一、什么是高并发? 高并发是指系统在短时间内能够同时处理大量用户请求或任务的能力,是衡量分布式系统、互联网应用性能的重要指标之一。它的核心目标是确保系统在高负载下仍能稳定、高效运行,同时提供良好的用户体验。 1、高并发系…...
[ linux-系统 ] 常见指令2
1. man 指令 语法:man [选项] 命令 功能:查看联机手册获取帮助。 选项说明-k根据关键字搜索联机帮助。num只在第num章节找。-a显示所有章节的内容。 man是 Unix 和类 Unix 系统中的一个命令,用于查看操作系统和软件的手册页面(ma…...
Spring AI快速入门
一、引入依赖 <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId> </dependency> <dependencyManagement><dependencies><dependency><groupId>o…...
TCP数据报
三次握手(Three-Way Handshake) 是 TCP 协议中用于建立可靠连接的过程。通过三次握手,客户端和服务器能够确认彼此的存在,并且同步各自的初始序列号,为后续的数据传输做好准备。三次握手确保了双方在正式传输数据前能…...
JS循环-for循环嵌套
打印5行5列星星 效果图 代码: // 打印出5行5列的星星for(i 1 ; i < 5 ; i ) {// 外层控制打印行for(j 1 ; j < 5 ; j ) {// 内层控制每行打印几个document.write(⭐)}document.write(<br>)} 打印侧三角 效果图 代码: for(i 1 ; i &l…...
【技术追踪】通过潜在扩散和先验知识增强时空疾病进展模型(MICCAI-2024)
向扩散模型中引入先验知识,实现疾病进展预测,扩散模型开始细节作业了~ 论文:Enhancing Spatiotemporal Disease Progression Models via Latent Diffusion and Prior Knowledge 代码:https://github.com/LemuelPuglisi/BrLP 0、摘…...
Linux/AndroidOS中进程间的通信线程间的同步 - 内存映射
前言 如何使用 mmap()系统调用来创建内存映射。内存映射可用于 IPC 以及其他很多方面。 1 概述 mmap()系统调用在调用进程的虚拟地址空间中创建一个新内存映射。映射分为两种。 文件映射:文件映射将一个文件的一部分直接映射到调用进程的虚拟内存中。一旦一个文…...
单例模式的实现方法
单例模式(Singleton Pattern)是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要控制对资源(如配置对象、线程池、缓存等)的访问时特别有用。 一、单例模…...
laravel 12 监听syslog消息,并将消息格式化后存入mongodb
在Laravel 12中实现监听Syslog消息并格式化存储到MongoDB,需结合日志通道配置、Syslog解析和MongoDB存储操作。以下是具体实现方案: 一、环境配置 安装MongoDB扩展包 执行以下命令安装必要的依赖: composer require jenssegers/mongodb ^4.0确…...
如何在使用 docker-compose 命令时指定 COMPOSE_PROJECT_NAME ?
1.默认值 COMPOSE_PROJECT_NAME 环境变量的默认值并非 docker。在没有显式设置 COMPOSE_PROJECT_NAME 时,其默认值是运行 docker-compose 命令所在目录的基础名称(也就是当前工作目录去掉路径后的文件夹名称)。 以下为你详细说明࿱…...
在命令行终端中快速打开npm包官网
命令 npm home 命令用于快速打开指定 npm 包的官网。例如,npm home react 会尝试打开 React 库的官方网站。 npm home PACKAGE_NAME 该命令会首先查找指定包的 package.json 文件中的 homepage 字段,如果存在,则打开该字段指定的网址。 {&…...
鸿蒙NEXT开发动画(风格的弹性缩放加载动画组件)
1.创建空白项目 2.Page文件夹下面新建Spin.ets文件,代码如下: // 接口定义(必须放在使用前) /*** 关键帧动画整体配置参数*/ interface KeyframeAnimationConfig {iterations: number;delay: number; }/*** 单个关键帧动画项*/…...
【MongoDB篇】MongoDB的事务操作!
目录 引言第一节:什么是事务? (ACID 原则)第二节:MongoDB 的演进:多文档 ACID 事务的到来!🎉第三节:事务的“玩法”——如何执行一个事务?💻🤝第四节…...
Android第六次面试总结之Java设计模式篇(一)
一、单例模式在 Android 面试中的核心考点 1. Android 中如何安全实现单例?需注意哪些坑?(字节跳动、美团面试真题) 解答: Android 中实现单例需重点关注 Context 泄漏、线程安全 和 反射 / 序列化攻击。 推荐实现&…...
关于论文中插入公式但是公式相对于段落的位置偏上应该如何调整备份
因为mythtype之前插入到word里面出现了一些问题就给删掉了,本来要是word里面内联mythtype的话直接,点击mythtype的格式化就可以了, 也就是这个佬的视频介绍链接 然后现在试了试普通word里面的方法,这个是比较有用的 然后看这个例…...
[java八股文][Java并发编程面试篇]并发安全
juc包下你常用的类? 线程池相关: ThreadPoolExecutor:最核心的线程池类,用于创建和管理线程池。通过它可以灵活地配置线程池的参数,如核心线程数、最大线程数、任务队列等,以满足不同的并发处理需求。Exe…...
【东枫科技】代理英伟达产品:智能网卡
文章目录 对比详细:NVIDIA ConnectX-7 适配器详细:NVIDIA ConnectX-6 Lx 以太网智能网卡详细:NVIDIA ConnectX-6 Dx 以太网智能网卡详细:NVIDIA ConnectX-6 InfiniBand 适配器 对比 详细:NVIDIA ConnectX-7 适配器 为最…...
eNSP中路由器OSPF协议配置完整实验和命令解释
本实验使用三台华为路由器(R1、R2和R3)相连,配置OSPF协议实现网络互通。拓扑结构如下: 实验IP规划 R1: GE0/0/0: 192.168.12.1/24 (Area 0)Loopback0: 1.1.1.1/32 (Area 0) R2: GE0/0/0: 192.168.12.2/24 (Area 0)GE0/0/1: 192.…...
解锁健康生活:全新养身指南
健康养身不是遥不可及的目标,而是由一个个小习惯编织成的生活方式。当我们将这些健康理念融入日常,就能为身体注入源源不断的活力。 从 “吃” 开始守护健康。尝试制作 “营养碗”,底层铺满羽衣甘蓝、生菜等绿叶蔬菜,中间搭配水…...
win11 怎样把D盘空间分给C盘一点
如下所示,我的C盘甚至已经爆红了,打算D盘清理一些空间给C盘。 首先附上链接,这是我在b站看的教程,虽然跟着视频没成功,但是结合评论区大神们的建议,尝试了好几种方法,最终自己摸索成功了。 【怎…...
Apache Doris与StarRocks对比
## 历史背景 Apache Doris源自百度的Palo项目,于2017年开源,2018年贡献给Apache基金会,并于2022年从Apache孵化器毕业成为顶级项目。StarRocks则是由原Apache Doris团队的一部分成员在2020年分支出来成立的独立项目,最初称为DorisDB,后更名为StarRocks。这两个项目虽然有…...
OSCP - Proving Grounds - NoName
主要知识点 linux命令注入SUID find提权 具体步骤 从nmap开始搜集信息,只开放了一个80端口 Nmap scan report for 192.168.171.15 Host is up (0.40s latency). Not shown: 65534 closed tcp ports (reset) PORT STATE SERVICE VERSION 80/tcp open http …...
2025年OpenAI重大架构调整:资本与使命的再平衡
目录 前言 一、调整核心:三重架构的重构 1.1 控制权的重新锚定 1.2 营利部门的角色转型 1.3 资金池的重新配置 二、调整动因:三重矛盾的破解 2.1 资金需求与融资限制的冲突 2.2 商业竞争与使命纯度的博弈 2.3 内部治理与外部监管的张力 三、产…...
【quantity】0 README.md文件
PhysUnits 物理单位库 Type-safe physical quantities with dimensional analysis 带量纲分析的类型安全物理量库 A Rust library for safe unit operations / Rust实现的类型安全单位计算库 Core Design / 核心设计 1. Dimension / 量纲 /// Base SI dimensions / 国际单…...
[python] str
一、移除字符串中所有非字母数字字符 使用正则表达式 import re string_value "alphanumeric123__" cleaned_string re.sub(r[\W_], , string_value) # 或 r[^a-zA-Z0-9] print(cleaned_string) # 输出: alphanumeric123使用**str.isalnum()**方法 string_v…...
iOS与HTTPS抓包调试小结
最近在做一个多端 SDK 网络请求兼容性的测试,期间遇到一些 HTTPS 请求抓不到、iOS 抓包失效等问题,趁机整理一下我平时抓包时用到的几个工具和技巧,也顺便记录一下对比体验。 一、传统工具的局限 最早用的是 Charles 和 Fiddler,…...
AI基础知识(02):机器学习的任务类型、学习方式、工作流程
03 机器学习(Machine Learning)的任务类型与学习方式 广义的机器学习主要是一个研究如何让计算机通过数据学习规律,并利用这些规律进行预测和决策的过程。这里的Machine并非物理意义上的机器,可以理解为计算机软硬件组织;Learning可以理解为一个系统或平台经历了某些过程…...
2025年大风灾害预警升级!疾风气象大模型如何筑起安全防线?
近年来,全球极端天气事件频发,大风灾害正成为威胁城市安全、交通运输和公共设施的重要隐患。据气象部门预测,2025年我国大风天气将更加频繁,局部地区可能出现超强阵风,对高空作业、电力设施、交通运输等领域构成严峻挑战。面对这一趋势,传统的气象预警方式已难以满足精准…...
Docker手动重构Nginx镜像,融入Lua、Redis功能
核心内容:Docker重构Nginx镜像,融入Lua、Redis功能 文章目录 前言一、准备工作1、说明2、下载模块3、Nginx配置文件3、Dockerfile配置文件3、准备工作全部结束 二、构建镜像三、基于镜像创建容器三、lua脚本的redis功能使用总结 前言 …...
Spring Boot Starter简介-笔记
1. Starter简介 Spring Boot Starter 是 Spring Boot 框架的核心组件之一,它通过预定义的依赖集合和自动化配置机制,极大简化了 Spring 应用的开发和部署。 Spring Boot Starter 的核心功能 自动化配置(Auto-Configuration) Spr…...
关系型数据库与非关系型数据库深度对比:从设计哲学到应用场景的全解析
关系型数据库与非关系型数据库深度对比:从设计哲学到应用场景的全解析 引言 在数字化浪潮中,数据库技术始终扮演着基础核心角色。本文将通过技术架构、应用场景等维度,深入剖析关系型数据库(RDBMS)与非关系型数据库(NoSQL)的本质差异。我们将以MySQL、MongoDB、Redis等…...
论文速读:《CoM:从多模态人类视频中学习机器人操作,助力视觉语言模型推理与执行》
论文链接:https://arxiv.org/pdf/2504.13351 项目链接:https://chain-of-modality.github.io/ 0. 简介 现代机器人教学的一个重要方向是让机器人通过观看人类的视频演示,自动学习并执行复杂的物理操作任务,比如拧瓶盖、插插头、打…...
系统思考:选择大于努力
在今年的伯克希尔哈撒韦股东大会上,94岁高龄的股神巴菲特再次以他的智慧和幽默,给年轻人留下了三句关于人生的黄金建议。让我印象最深刻的是:“选择和谁一起走,比怎么走更重要。” 这一句话让我反思了许多——人生的轨迹不单单是…...
【HTML5】显示-隐藏法 实现网页轮播图效果
【HTML5】显示-隐藏法 实现网页轮播图效果 实现思路:先将所有图片在页面中设置好,然后给放置图片的元素li添加display:none属性将其隐藏,然后通过js获取到放置图片的元素li,再一个一个的给li元素添加displayÿ…...
Jenkins 改完端口号启动不起来了
让我们将 Jenkins 恢复到默认的 8080 端口,确保它能正常启动: 1. 修改 Jenkins 的配置文件: sudo nano /etc/default/jenkins 将内容修改为: HTTP_PORT8080 JENKINS_ARGS"--webroot/var/cache/jenkins/war --httpPort8080…...
招标专家随机抽选——设计讲解—未来之窗智能编程——仙盟创梦IDE
招标专家系统 专家评标系统是服务于各类招标评标活动的数字化平台。它依托先进信息技术,集专家库管理、随机抽取专家、在线评标等功能于一体。系统依据项目需求设定筛选条件,从庞大专家库中精准抽取合适专家。评标时,专家可在线查阅投标文件…...
Os 库报错指南 路径处理常见陷阱
平台分隔符差异 Windows用\,Unix用/ → 使用os.path.join()自动处理 路径解析错误 os.path.abspath()解析相对路径时依赖当前工作目录 路径规范化缺失 ../等符号链接需用os.path.normpath()规范化 # 不推荐 path dir\\file.txt # Windows风格 path dir/file.…...
GD32/STM32 ADC/DMA使用指南
首先我们对ADC及DMA的基础知识作一下简单介绍。 一、 GD32/STM32 ADC模块的核心要点 一)、ADC基础特性 12位逐次逼近型 GD32/STM32 ADC为12位分辨率,最大量化值为4095(对应3.3V参考电压),支持0-3.3V模拟输入范…...
CSS Border 三角形阴影与多重边框的制作
CSS Border 三角形阴影与多重边框的制作 在现代网页设计中,CSS的强大功能让设计师和开发者能够创造出丰富多彩的视觉效果。本文将深入探讨如何利用CSS的border属性制作三角形阴影以及多重边框效果。这些技巧不仅能提升页面的美观度,还能增强用户体验。…...
ES6/ES11知识点 续五
迭代器【Iterator】 ES6 中的**迭代器(Iterator)**是 JavaScript 的一种协议,它定义了对象如何被逐个访问。迭代器与 for…of、扩展运算符、解构赋值等语法密切相关。 📘 迭代器工作原理 ES6 迭代器的工作原理基于两个核心机制…...
如何选择 边缘计算服务器
边缘计算服务器选型指南(2025年更新版) 一、明确应用场景需求 场景细分 工业控制、自动驾驶等需毫秒级响应的场景,优先选择集成多核处理器(如Xeon D系列)和实时算法加速模块的机型,确保延迟≤50ms&…...
VMware如何安装?Ubuntu详细步骤
VMware如何安装?Ubuntu详细步骤如下: 在VMware中安装Ubuntu是一个常见的操作,适用于开发、测试或学习Linux的场景。以下是详细的实战步骤和注意事项,帮助你顺利完成安装。 准备工作 软件下载: VMware Workstation/Play…...
【Bootstrap V4系列】学习入门教程之 组件-卡片(Card)高级用法
【Bootstrap V4系列】学习入门教程之 组件-卡片(Card)高级用法 一、Sizing 尺寸1.1 Using grid markup 使用网格标记1.2 Using utilities 使用实用程序1.3 Using custom CSS 使用自定义CSS 二、Text alignment 文本对齐方式三、Navigation 导航 一、Sizi…...
WiFi那些事儿(八)——802.11n
目录 802.11n 技术简介与测试项 一、802.11n 技术简介 (一)标准概述 (二)关键技术特性 1. MIMO(多输入多输出)技术 2. 信道绑定(Channel Bonding) 3. 帧聚合(Fram…...
Transformer数学推导——Q56 推导动态残差门控(Dynamic Residual Gating)的权重更新公式
该问题归类到Transformer架构问题集——残差与归一化——残差连接。请参考LLM数学推导——Transformer架构问题集。 1. 引言 在深度学习的演进历程中,网络结构的创新始终围绕着如何更高效地处理信息、提升模型性能展开。动态残差门控(Dynamic Residual…...
Kaggle——House Prices(房屋价格预测)简单实现
题目: 从Kaggle的“House Prices - Advanced Regression Techniques”数据集使用Pandas读取数据,并查看数据的基本信息。选择一些你认为对房屋价格有重要影响的特征,并进行数据预处理(如缺失值处理、异常值处理等)。…...
Vue项目Git提交流程集成
Vue项目Git提交流程集成 本教程将指导你如何在Vue项目中集成一个规范化的Git提交流程,包括代码规范检查、提交信息规范和自动化工具配置。 前置条件 Node.js 14.0 和 npm/yarn/pnpmVue项目(Vue 2或Vue 3均可)Git已初始化的仓库 一、规范化…...