网络层协议介绍
1. IP数据包格式
网络层的功能:
- 定义了基于IP协议的逻辑地址;
- 连接不同的媒介类型;
- 选择数据通过网络的最佳路径。
1.1 IP数据包头部的格式
IP数据包的格式如下图所示:
IP字段包括:
- 版本(Version):该字段包含的是IP的版本号,4bit。目前IP的版本为4(即IPv4);
- 首部长度(Header Length):该字段用于表示IP数据包头长度,4bit。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选字段的长度;
- 优先级和服务类型(Priority&Type of Service):该字段用于表示数据包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现QoS(服务质量)的要求。
- 总长度(Total Length):该字段用以指示整个IP数据包的长度,16bit。最长为65535字节,包括包头和数据;
- 标识符(Identification):该字段用于表示IP数据包的标识符,16bit。当IP对上层数据进行分片时,它将给所有的分片分配同一组编号。然后将这些编号放入标识符字段中,保证分片不会被错误的重组;
- 标志(Flags):标志字段,3bit。对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出;
- 段偏移量(Fragment Offset):该字段用于表示段偏移量,3bit。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来;
- 版本TTL(Time to Live):该字段用于表示IP数据包的生命周期,8bit。一个数据包每经过一个路由器,TTL将减去1.当TTL的值为0时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环的转发下去;
- 协议号(Protocol):协议字段,8bit。该字段用以指示在IP数据包中封装的是哪一个协议,是TCP还是UDP,TCP的协议号为6,UDP的协议号为17;
- 首部校验和(Header Checksum):该字段用于表示校验和,16bit。接受方和网格用来校验数据有没有被改动过;
- 源IP地址(Source IP Address):该字段用于表示数据包的源地址,32bit;
- 目标IP地址(Destination IPAdress):该字段用于表示数据包的目的地址,32bit;
- 可选项(Options):可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。
2. ICMP协议(Internet控制报文协议)
ICMP是一种来检测或通知网络设备之间可能发生各种情况的机制,主要用于在IP网络中发送控制消息,提供在通信环境中可能发生的各种问题的反馈。通过这些反馈信息管理员就可以对所发生的问题作出判断,然后才去适当的措施去解决问题。