OSI
OSI简介
TCP/IP是计算机最基本的一种网络通信协议,TCP/IP协议基于OSI七层模型的设计思想。OSI是国际标准化组织对互联网通信的一种标准框架,方便对互联网通信进行标准化处理。TCP/IP就是在这种标准下的一簇通信协议。
以下就是OSI模型的7层。
应用层 |
---|
表示层 |
会话层 |
传输层 |
网络层 |
数据链路层 |
物理层 |
OSI之网络层功能
为数据包选择路由
问:这一层的具体作用是什么?
答:这一层主要实现了关于路由器之间相互传输,包括知道IP地址,如何获取MAC地址;知道MAC地址,如何获取IP地址。例如访问一个网站,可能需要经过多个路由器才能够最终访问到某网站,这个机制就是网络层的功能。
问:具体有哪些协议标准?
答: IP、IPX、RIP、OSPF
以IP协议为例:
【IP协议字段解读】
Version(版本号):标识IP协议的版本,目前V4版本地址已经枯竭,V6慢慢成为主流。
Header Length(头部长度):默认为20字节,最大为60字节。
Differentiated Services Field (服务区分符):用于为不同的IP数据包定义不同的服务质量,一般应用在QoS技术中。
Total Length (总长度):标识IP头部加上上层数据的数据包大小,IP包总长度最大为65535个字节。
Identification (标识符):用来实现IP分片的重组,标识分片属于哪个进程,不同进程通过不同ID区分。
Flags(标志符):用来确认是否还有IP分片或是否能执行分片。
Fragment offset (分片偏移量):用于标识IP分片的位置,实现IP分片的重组。
Time to live (生存时间):标识IP数据包还能生存多久,根据操作系统不同,TTL默认值不同,每经过一个三层设备如路由器的处理,则TTL减去1,当TTL=0时,则此数据包被丢弃。
Protocol (协议号):标识IP协议上层应用。当上层协议为ICMP时,协议号为1,TCP协议号为6,UDP的协议号为17。
Header checksum (头部校验):用于检验IP数据包是否完整或被修改,若校验失败则丢弃数据包。
Source(源IP地址):标识发送者IP地址,占用32bit。
Destination (目的IP地址):标识接收者IP地址,占用32bit。
我们可以看到IP头部默认有12个字段(后续会提到特殊字段),为了方便记忆,可以总结为7个核心知识点:
a.Source和Destination即IP源目地址字段,是IP协议最核心的字段;
b.Id+Flags+FO三个字段可以实现IP数据分片和重组;
c.Total Length和Header Length标记IP头部和上层数据的边界;
d.TTL生存时间字段可以实现通信防环;
e.DSCP服务区分符可以实现流量控制;
f.Checksum字段可以数据包完整性校验;
g.Protocol字段标记上层应用;
也就是说在网络层就是IP协议的天下,主要用于进行区分当前访问的IP地址,如果访问的是本IP地址,这里会进行解包,根据包中的信息,调用上层的接口,进一步的解包。在内核中会实现关于ICMP的响应,关于ARP的响应。所以ICMP和ARP都属于传输层的协议。
ICMP一种经典用法就是ping命令,ping命令就是发送一个ICMP协议包,ICMP是基于IP协议的协议,IP协议中的协议包会包含Protocol ,Protocl中常见的由ICMP,TCP,UDP协议。