考研 408 × 求职面试
知识点 · 计算机网络 · 基础
每日一题 · 计算机网络
解析
面试小贴士 · 计算机网络
代码实现 · C
#include <stdio.h>
#include <string.h>
typedef struct {
char app[32];
char tcp[64];
char ip[64];
char frame[96];
} PDU;
int main(void) {
PDU p = {0};
strcpy(p.app, "Hello");
printf("应用层数据: %s\n", p.app);
snprintf(p.tcp, sizeof(p.tcp), "[TCP头]%s", p.app); // 加传输层头
printf("传输层PDU(报文段): %s\n", p.tcp);
snprintf(p.ip, sizeof(p.ip), "[IP头]%s", p.tcp); // 加网络层头
printf("网络层PDU(分组): %s\n", p.ip);
snprintf(p.frame, sizeof(p.frame), "[帧头]%s[帧尾]", p.ip); // 加链路层头尾
printf("数据链路层PDU(帧): %s\n", p.frame);
// 解封装:接收端按相反顺序去掉帧头帧尾、IP头、TCP头
printf("解封装示例: 从帧中取出分组 -> %s\n", p.ip);
return 0;
}