IP服务特点
IP协议是TCP/IP协议族的动力,为上层协议提供无状态、无连接不可靠的服务。
- 无状态是指通信双方不同步数据传输的状态信息,所有IP数据报都是相互独立、没有上下文关系,可能会重复或乱序。
- 无连接是指IP协议通信双方都不长久的维持对方的任何信息,每次发送数据时都必须指定对方ip地址。
- 不可靠是指不能保证IP数据报准确到达接收端,只是尽最大努力交付。
IPV4 头部结构
IP报文头部长度通常为20字节,除非有可变长选项部分。
- 4位版本号,指定IP协议的版本,IPV4的版本号是4.
- 4位头部长度,标识该IP头部的长度,以32位为单位,4位最大表示为60字节。
- 8位服务类型(TOS),包括最小延时、最大吞吐量、最高可靠性、最小费用,最多有一个置为1.
- 16位总长度,即整个IP数据报的长度
- 16位标识,唯一地标识主机发送的每一个数据报,每发送一个就+1
- 3位标志,标识是否可分片和是否有更多分片。
- 13位分片偏移,分片相对原始数据报的开始处。
- 8位生存时间(TTL),数据报到达目的地之前允许经过的最大路由器跳数,每经过一个路由器其值减一,为0时丢弃,防止陷入路由循环。
- 8位协议,区分上层协议
- 16位头部校验和,检验头部信息是否损坏。
- 32位源IP地址和322位目的IP地址,标识报文的发送端和接收端。
- 可变长选项字段,最多包含40字节。
IP分片
当IP数据报的长度 超过MTU时,将被分片传输,在目标主机的IP模块中重新组装。由IP头部中的数据报标识、标志、片偏移提供足够的信息用于分片和重组。
以太网帧的MTU为1500字节,因此IP数据报的数据部分最多1480字节。
路由选择
IP数据包的传输过程中会遇到很多路由器,这些路由器会帮助数据包进行路由转发,每当数据包遇到一个路由器后,对应路由器都会查看该数据的目的IP地址,并告知该数据下一跳应该往哪跳。路由器的查找结果可能有以下三种:
- 路由器经过路由表查询后,得知该数据下一跳应该跳到哪一个子网
- 路由器经过路由表查询后,没有发现匹配的子网,此时路由器会将该数据转发给默认路由。
- 路由器经过路由表查询后,得知该数据的目标网络就是当前所在的网络,此时路由器就会将该数据转给当前网络中对应的主机。
路由可分为静态路由和动态路由:
静态路由:是指由网络管理员手工配置路由信息。
动态路由:是指路由器能够通过算法自动建立自己的路由表,并且能够根据实际情况进行调整。