数字化时代,各种信息以数据的形式充斥着我们的生活。什么是数据?数据又是如何传递的?本博客将从理论与实践的方向进行展开,从HCIP认证的4个方向,即数通方向、安全方向、WLAN方向和物联网方向梳理总结。
一、常见术语
| 术语 | 说明 |
|---|---|
| 数据载荷 | 最终想要传递的信息 |
| 报文 | 网络中交换与数据传输的数据单元 |
| 头部 | 在数据载荷的前面添加的信息段 |
| 尾部 | 在数据载荷的后面添加的信息段 |
| 封装 | 对数据载荷添加头部和尾部,形成新的报文的过程 |
| 解封装 | 去掉报文的头部和尾部,获取数据载荷的过程 |
| 网关 | 提供协议转换、路由选择、数据交换等功能的网络设备 |
| 路由器 | 为报文选择传递路径的网络设备 |
| 终端设备 | 数据通信系统的端设备,作为数据的发送者或接收者 |
二、信息传递过程
虚拟的信息传递与真实的物品传递过程有很多相似之处

三、TCP/IP 头结构
css
typedef struct _iphdr //定义IP首部
{
unsigned char h_lenver; //4位首部长度+4位IP版本号
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags; //3位标志位
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (TCP, UDP 或其他)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IP_HEADER;
typedef struct psd_hdr //定义TCP伪首部
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //协议类型
unsigned short tcpl; //TCP长度
}PSD_HEADER;
typedef struct _tcphdr //定义TCP首部
{
USHORT th_sport; //16位源端口
USHORT th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/6位保留字
unsigned char th_flag; //6位标志位
USHORT th_win; //16位窗口大小
USHORT th_sum; //16位校验和
USHORT th_urp; //16位紧急数据偏移量
}TCP_HEADER;
// 这里只是数据头, 但头最能看清报文是啥东西
// IP_HEADER::total_len 指明了实体数据(也就是真正的消息内容)长度。
// 其他以此类推