1、IP协议
1.IP协议的一些特色
1.1 不可靠
意思是说不能保证IP数据报能成功地到达目的地。在传输过程当中若是发生了错误,IP层会直接丢弃该数据报,而后发送ICMP消息报给信源端。
1.2 无链接
IP并不维护任何关于后续数据报的状态信息。也就是说IP的每一个数据包都是独立的,不相互影响.
有可能AB数据包前后发送给一个主机,B有可能比A先到达这个主机。
2.IP数据报告首部
2.1 图片格式

IP数据报以大端字节序(又称为网络字节序)的方式进行网络传输,可是在存储的时候又多是大端也有多是小端缓存
2.2 一些关键的首部字段
- 4位首部4字节数:首部4字节总数(最大15)
- 16位总字节数:IP数据报总长度
- 16位标识:主机每发送一个IP数据报文,则加1,主要标识数据包的发送顺序;在数据包从新组装时会用到这个值
- 3位标志:
- 13位片偏移:
- 8位TTL:最大生存时间,实践中通常是IP包每路由一次则减1;
- 16位首部校验和:用于数据包的校验,收到数据包后对首部二级制反码求和,必须全是1,不然丢弃报文可是不发送ICMP报错,由上层协议本身发现和处理;
3. IP数据报的转发过程(路由过程)
举例:服务器
- 数据包1:ip.dst = 192.168.1.3
- 数据包2:ip.dst = 192.168.2.3
- 主机 ip=192.168.1.2 MASK = 255.255.255.0
主机开始路由数据包1 和2:网络
- 查看数据包的目的IP与本身的子网掩码计算网络号(数据包1的网络号192.168.1.0 数据包2的网络号为192.168.2.0 ,主机的网络号为 192.168.1.0)
- 查看目的IP的网络号是否在本身的网络号范围内(数据包1在 数据包2不在)
- 对于数据包1,查看本身ARP地址表有没有192.168.1.2与mac映射(这个mac不必定是目的IP的mac,参看思科配置交换机的那个文档)有的话直接修改二层包头的源mac目的mac发送,没有的话发送ARP广播请求...而后进入二层数据交换的单播流程
- 对于数据包2,主机会发送给本身的默认网关192.168.1.1(若是没修改的话),由默认网关来处理,而默认网关的掩码为255.255.0.0的话,那么就会单播了。。不然继续上报,知道TTL=0数据包被丢弃回复目的IP不可达的ICMP消息;
4. 选路和动态选路
这个之后补充code
2、ARP协议
1. 功能介绍
ARP协议 主要功能为获取IP地址的对应的二层首部的MAC,IP=>MAC;blog
2. 查看arp 表arp -a

- 如上图所显示,三个字段IP,MAC,类型
- IP,....
- MAC,参看链路层协议首部
- 动态类型意味这发送到当前IP要使用的二层目的MAC时可变的;静态就是固定值不会变,是协议的要求的
- MAC表条目的缓存具备时效,通常为300秒;
3. arp 数据报(请求响应)格式

须要注意的是请求时:接口
- 以太网目的地址:比特位全为1的特殊地址,是广播地址;全部的其余网络接口都会接收(环路风暴);
3、RARP 协议
1. 功能介绍
ARP协议 主要功能为MAC获取IP地址,MAC=》IP; 对于一些无硬盘磁盘等存储结构的设备,会在系统启动时发送一个RARP广播,要求某个服务器回复一个可用的IP图片
4、ICMP(Internet Control Message Protocol)
1. 功能介绍
互联网控制消息协议:它用于IP协议中发送控制消息,提供可能发生在通讯环境中的各类问题反馈。经过这些信息,使管理者能够对所发生的问题做出诊断,而后采起适当的措施解决。ip
通常不多由程序会直接使用这个协议,主要是TCP,UDP,IP协议内自己在使用,可是有两个经常使用的程序ping和traceroute在直接的用这个协议;路由
2. PING
用来检测链路通断,根据ICMP报文显示错误,可是不少服务器禁ping,还可使用telnet...文档
3. traceroute
显示当前主机到目标主机的通讯链路,好比下面这个图:

每行最后显示的IP就是当前数据报走的网关;最后一个目的地就是你访问的最终IP;