IP协议概念
IP协议是将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。
IP协议不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。
IP协议报头格式
逐一介绍各个字段的含义:
- 4位版本号:指定IP协议的版本,对于IPv4来说就是4。
- 4位首部长度:IP首部长度是多少个四字节。这里默认为0101也就是5。四位最大表示值为15,也就是说IP报头最大长度为60字节。
- 8位服务类型:这里的八位前三位表示优先权字段(已经弃用),中间四位TOS字段,最后一位保留字段,其中保留字段必须设置为0。中间四位TOS字段分别表示:最小延时、最大吞吐量、最高可靠性、最小成本。(这里可见,这中间四位是以位位图的形式代表不同的情况)这四者冲突,只能选择一个,根据应用场景选择。
- 16位总长度:IP数据报整体占多少字节
- 8位生存时间(TTL):这里的生存时间指的是一个IP报文到达目的地的最大报文跳数。所谓报文跳数,就是从一个网络跳至另一个网络。每进行一次跳转,TTL的值就会减一。默认TTL的值为64。如果一个数据报的TTL减到0了还没有到达目的网络,么直接丢弃这个报文。引入生存时间的主要目的是防止在网络中有无限循环跳转的报文存在。
- 8位协议:这里指的是IP层交付给上层的哪个协议。
- 16位头部校验和:使用CRC进行校验,鉴别头部数据是否异常。
- 32位源IP地址与目的IP地址:表示发送端及接收端。
接下来,重点讲述一下IP报头中第二行的三个字段。
在数据链路层,所能处理的最大数据包的大小是有限制的,类似于发快递时对包裹的尺寸大小限制。数据链路层以MTU来限制最大传输数据包的大小,如果在IP层的数据包大于MTU,那么发送端IP层会对数据包