1. 网络分层模型

1.1 物理层
- 传输的是光电信号
- 双绞线(电信号)
- 光纤(光信号)
1.2 网卡
- 处于物理层和数据链路层之间,不属于网络分层模型中的任何一层
- 作用是负责A/D转换和数据搬运
- 接收数据时将光电信号转换成数字信号
- 发送数据是将数字信号转换成光电信号
- 网卡芯片负责数据转换,网卡驱动负责搬运数据
1.3 数据链路层
- 传输的是数字信号(二进制数据)
- 以太网数据帧结构

- 以太网帧头:MAC地址只有在局域网内有效,出了局域网就无效了
//以太网帧头 14字节
struct ethhdr {
unsigned char dstmac[6]; //目的mac地址
unsigned char srcmac[6]; //源mac地址
unsigned short proto; //上一层协议类型,0x0800代表上一层是IP协议
};
- 以太网帧尾
// 以太网帧尾 4字节
struct ethtail {
unsigned int checksum; //数据帧尾校验和
};
1.4 网络层
- IP协议
1.5 传输层
- TCP协议
- UDP协议
1.6 应用层
- HTTP、FTP、RTP/RTSP/RTCP 等
2. IP协议
IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送,所有的TCP、UDP数据都被封装在IP数据报中传送。
2.1 IP头部

- 头部封装
// IP头 20字节
struct iphdr {
unsigned char version:4, //版本信息
hdrlen:4; //头长度
unsigned char tos; //服务类型
unsigned short length; //数据包长度
unsigned short id; //数据包标识
unsigned short flag:3, //数据包标志
offset:13; //片偏移
unsigned char ttl; //生存时间
unsigned char proto; //协议
unsigned short checksum; //头部校验和
unsigned int src_ip; //源IP
unsigned int dst_ip; //目的IP
};
- 字段解释
- 版本:用来表明IP协议实现的版本号,当前一般为IPv4,即0100
- 头部长度:是头部占32比特的数字,包括可选项。普通IP数据报,该字段的值是5,即160bit=20字节 此字段最大值为60字节
- 服务类型:
- 前3bit为优先权子字段,现已被忽略,第8bit保留未用
- 4-7bit分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用
- 服务类型声明数据报被网络系统传输时的处理方式,其中只能置其中1bit为1,可以全为0,若全为0则表示一般服务
- TELNET协议可能要求有最小的延迟,
- FTP协议(数据)可能要求有最大吞吐量
- SNMP协议可能要求有最高可靠性
- NNTP(Network News Transfer Protocol,网络新闻传输协议)可能要求最小费用
- ICMP协议可能无特殊要求(4比特全为0)
- 总长度:指明整个数据报的长度(以字节为单位),最大长度为65535字节
- 标识:用来唯一地标识主机发送的每一份数据报,通常每发一份报文,它的值会加1
- 标志:标志一份数据报是否要求分段
- X(保留)
- D(不分片)
- M(分片)
- 片偏移:如果数据报要求分段的话,此字段指明该段偏移距原始数据报开始的位置
- 生存期:用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为32、64、128等。每经过一个路由器,其值减1,直到0时该数据报被丢弃
- 协议类型:指明IP层所封装的上层协议类型,如ICMP(1)、IGMP(2)、TCP(6)、UDP(17)
- 头部校验和:内容是根据IP头部计算得到的校验和码。计算方法是:对头部中每个16比特进行二进制反码求和。(和ICMP、IGMP、TCP、UDP不同,IP不对头部后的数据进行校验)
- 源IP地址、目标IP地址:各占32比特。用来标明发送IP数据报文的源主机地址和接收IP报文的目标主机地址
- 可选项字段:用来定义一些任选项:如记录路径、时间戳等。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求
本文详细介绍了网络的分层模型,从物理层的光电信号传输到应用层的HTTP、FTP等协议。重点讲解了数据链路层的以太网帧结构,网络层的IP协议,以及IP头部各个字段的含义。同时,提到了IP协议提供无连接、不可靠的服务,并在局域网中通常被封装在以太网帧中传输。

319

被折叠的 条评论
为什么被折叠?



