网络层协议介绍
一.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):该字段用于表示段偏移量,13bit。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。
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 IPAddress):该字段用于表示数据包的目的地址,32bit。
可选项(Options):选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
ICMP协议(Internet控制报文协议)
ICMP协议是互联网控制报文协议,工作在网络层,是一个错误侦测与回馈机制。用来发送错误和控制两个相邻节点间的联通性。
ICMP封装
ICMP常用命令
ping
windows系统中ping命令常用参数:
-t 参数会一直不停的执行ping
-a 参数可以显示主机名称
-l 参数可以设定ping包的大小--------> ###在Linux系统下为:-s
–n 指定发送包的个数 -----> -c
–S 指定源IP去ping -----> -I
跟踪路由路径命令:
WIN: tracert IP/域名
Linux: traceroute IP/域名
跟踪路由路径命令:
WIN: tracert IP/域名
Linux: traceroute IP/域名
ARP协议(地址解析协议)
ARP协议:将一个已知的IP地址解析成一个Mac地址,工作在网络层。
ARP工作原理
1.计算机1发送数据给计算机2,会先检查自己的Mac地址表。
2.如发现Mac地址表中没有记录,则会发送一个ARP消息请求。(此请求消息包括计算机1的IP地址,mac地址以及计算机2的IP地址,mac地址,此时广播地址为FF-FF-FF-FF-FF-FF)
3.交换机收到ARP消息请求,则会进行广播泛洪处理,除计算机1其他主机都会接到消息,目的主机通过ARP消息请求将计算机1的IP地址和mac地址保存的ARP缓存表中。
4.目的主机会通过单播的方式回复ARP消息,交换机会根据mac地址表进行转发。
5.计算机1将计算机2的的IP地址与mac地址保存到ARP缓存表中,之后通过单播的方式发送数据给计算机2.