网络协议-TCP/IP基础(3)
IP
- IP是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP、IGMP都以IP数据报格式传输
- IP提供不可靠的,无连接的数据报传输服务
- 不可靠的意思是他不能保证数据报能否成功到达目的地,IP仅提供最好的传输服务,如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法;丢弃该数据报,然后发送ICMP消息报给信源端,任何要求的可靠性必须由上层来提供
- 无连接,IP并不维护任何关于后续数据报的状态消息,每个数据报的处理是相对独立的,IP数据报可以不按发送顺序接收,如果一个信源向相同的信宿发送两个连续的数据报,每个数据报都是独立的进行路由选择,可能选择不同的路线
两个关键命令
ifconfig
netstat
IP首部
IP的确定首部有20字节,后面是可选头(如果有就加在头中)
总长度字段
- 总长度字段是指整个IP数据报的长度,以字节为单位,利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度,由于该字段为16bit,所以数据内容的长度最大可为65535字节,当数据报被分片时,该字段也随之改变。
标识字段
-
标识字段唯一的标识主机发送的每一份数据报,通常没发送一份报文它的值就会加1
-
TTL生存时间字段设置了数据报可以经过的最多的路由器数。
协议字段
协议字段被IP用来对数据报进行分佣。根据它可以识别是哪个协议向IP传输数据。
首部字段分析
- 4个字节的32bit值以下面的次序进行传输:0-7bit,8-15bit,16-23bit,24-31bit。这种传输次序称为big endian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求这种次序,因此又叫做网络字节序。
- 目前的协议版本号为4,因此IP有时也被称为IPv4。
- 首部长度指的是首部所占的32bit,包括任何选项,但因为他是一个4bit字段,因此首部最长为60字节。
- 服务类型(TOS)字段包括一个3bit的优先权子字段,4bit的TOS子字段和1bit未用位但必须置为0.
- 4bit的TOS分别代表,最小时延、最大吞吐量、最高可靠性、最小费用,4bit中只能置其中1bit。如果4bit均为0,那么就意味着是一般服务。
可选字段
最后一个字段是任选项,是数据报中的一个可变长的可选信息。
- 安全和处理限制(用于军事领域)
- 记录路径(让每个路由器都记下它的IP地址)
- 时间戳(让每个路由器都记下它的IP地址和时间)
- 宽松的源站选路(为数据报指定一系列必须经过的IP地址)
- 严格的源站选路(与宽松的源站选路类似,但是要求只能通过指定的这些地址,不能经过其他地址)
这些选项很少被使用,并非所有的主机和路由器都支持这些选项,选项字段一直都是以32bit作为界限,在必要的时候插入值为0的填充字节,这样就保证IP首部始终是32bit 的整数倍
DSCP
- DSCP(差分服务代码点)它在每个数据报IP头部的服务类型TOS标识字节中,利用已经使用的6bit和未使用的2bit,通过编码值来区分优先级。
- DSCP使用6个bit,DSCP的值范围是0-63。
- DSCP是IP优先和服务类型字段的组合,其实就是为了保证通信的QoS,在数据报IP头部的8个字节进行编码,来划分服务类型,区分服务的优先级。
- 每个DSCP编码值都被映射到了一个一定义的PHB标识码。
IP路由选择-host
IP路由选择主要完成以下功能:
- 搜索路由表,寻找能够与目的IP地址完全匹配的标目(网络号和主机号都要匹配),如果找到,则将报文发送给该表目指定的下一站路由器或直接连接的网络接口。
- 搜索路由表,寻找能够与目的网络号相匹配的表目,如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络端口。
- 搜索路由表,寻找标志为“default”的表目,如果找到,则把报文发送给该表目指定的下一站路由器,如果上述步骤都没有成功,则该数据报传输失败。