← 前一天目录后一天 →

每日科普 · 2026-10-27 周二

考研 408 × 求职面试

知识点 · 计算机网络 · 基础

网络协议的三要素:语法、语义与时序

网络协议是通信双方共同遵守的规则,三要素分别是语法、语义与时序。 1. 语法:规定数据“长什么样”,如报文格式、字段顺序、编码方式、长度单位。 2. 语义:规定数据“表示什么、怎么处理”,如各字段含义、请求与响应的动作、差错处理。 3. 时序:规定通信“何时做、按什么顺序做”,如建立连接、发送数据、确认、断开连接的先后关系与超时重传。 可记成:语法管格式,语义管含义和动作,时序管顺序和时间。三者缺一不可,只有格式正确而语义或时序不匹配,通信仍可能失败。

每日一题 · 计算机网络

网络协议的三要素:语法、语义与时序

下列哪一项主要体现网络协议的“时序”要素? A. 报文首部字段的排列顺序 B. 请求报文表示“查询”还是“修改” C. 发送数据、接收确认与超时重传的先后关系 D. 字段采用 ASCII 还是二进制编码

解析

答案:C。语法关注报文格式、字段排列和编码,语义关注字段含义及对应动作,时序关注事件发生的先后、顺序和时间约束。发送数据、确认与超时重传体现“何时做、按什么顺序做”,属于时序。A、D属语法,B属语义。

面试小贴士 · 计算机网络

网络协议的三要素:语法、语义与时序

面试常问三要素区别并举例。先给定义,再各举一例:IP首部格式属语法,TCP确认含义属语义,三次握手顺序属时序。易错点是混淆字段含义与字段格式,或把连接顺序说成语义。

代码实现 · C

代码示例

#include <stdio.h>
typedef struct { char type; int seq; } Msg;
int main(void) {
    Msg msgs[] = {{'D',0},{'D',2},{'D',1}};
    int expected = 0;
    for (int i = 0; i < 3; i++) {
        // 语法:规定报文由 type 和 seq 组成,并检查取值范围
        if (msgs[i].type != 'D' || msgs[i].seq < 0 || msgs[i].seq > 99) {
            printf("语法错误\n");
            continue;
        }
        // 语义:type 为 D 表示数据报文(本例已在语法中检查)
        // 时序:序号必须等于当前期望值,保证按序接收
        if (msgs[i].seq != expected) {
            printf("时序错误:期望%d,收到%d\n", expected, msgs[i].seq);
            continue;
        }
        printf("接收数据序号%d\n", msgs[i].seq);
        expected++;
    }
    return 0;
}
← 前一天目录后一天 →