本系列是针对《TCP/IP详解》的笔记总结,包含各章节的主要内容。有助于帮助你快速了解并掌握TCP/IP协议的相关内容。
IP的选择过程主要包括以下几点,当两个主机在同一个局域网时,由于主机与源主机直接相连接,数据可以直接发送,当不在同一个局域网中,需要通过路由转发,每个局域网中包含一张路由表,该表记录了目的IP和下一跳IP地址用于数据转发。TCP/IP的网络协议层的主要作用就是IP选择,获取到目的主机的IP地址 ,实现数据的转发。本文针对IP转发详解讲解该过程的实现原理。
目录
1、IP协议概述
2、IP协议框架
3、IP路由选择
4、子网掩码
1、IP协议概述
I P层提供不可靠、无连接的数据报传送服务:
- 不可靠(unreliable):意思是它不能保证I P数据报能成功地到达目的地。
- 无连接(connectionless):意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。每个IP数据报都是独立的进行路由,选择当前最合适的next-hop进行传输,这也说明IP数据报可以不按发送顺序接收。
2、IP协议框架
2.1 IP首部各字段含义
- 版本号:4bit ;
- 头长度:4bit,单位为4字节,因此首部最多为max_len=15*4=60bytes ;
- 服务类型:8bit,3bit优先权(现已不使用),4bit ToS(分别为:D 最小时延、T 最大吞吐量、R 最高可靠性和 C最小费用),1bit保留 ;
- 封包总长度:16bit,即整个IP报的长度:16bit —>> 65535字节, 最少为46字节 ;
- 封包标识:16bit,惟一标识发送的每一个数据报 ;
- 标志:3bit;
- 片偏移:13bit;
- 生存时间:8bit,就是TTL,经过一个处理它的路由器,值就减去1 (与tracerouter结合使用) 当为0时,就不会被继续转发了;
- 协议:8bit,可能是TCP、UDP、ICMP等 ;
- 校验和:16bit,IP首部中的校验和只是根据IP首部来计算的,而不包含后面的数据部分,后面的数据部分相当于被屏蔽了,这也验证了IP协议是无连接的、不可靠的。计算方法是首先将校验和字段置0,然后对每16个bit进行二进制反码求和;
- 源IP地址 :32bit;
- 目标IP地址 :32bit。
2.2 数据传输方式
TCP/IP的数据传输每4字节32bit的传输顺序是首先传输0~7bit,然后是8~15bit,然后16~23bit,最后传输24~31bit,这种传输顺序称为大端序,也就是网络字节序,TCP/IP首部中所有二进制整数都是通过这种方式传输的。
3、IP路由选择
3.1 IP选择过程
- 共享网络: 目的主机与源主机直接相连,IP数据报直接送到目的直接;
- 不在共享网络时: 发往默认路由,由路由转发(在TTL大于0的情况下,当TTL减至0之后,数据报也不会被继续转发)当一个IP包在某一个路由器的时候发现没有路由可走,那么该路由器就会给源主机发送“主机不可达”或者“网络不可达”的ICMP包来报错。
3.2 路由表包含的信息
- 目的IP地址:可以是完整的主机地址,或网络地址 ;
- 下一跳:路由器或直接相连的网络IP地址 ;
- 标志:2个,1、IP地址是网络地址还是主机地址,2、下一跳是路由器还是直接相连的端口 ;
- 网络接口:为数据报传输指定一个网络接口。
3.3 搜索路由表,转发数据报的优先级
- 与目的IP地址完全匹配的表目(网络号和主机都匹配)
- 网络号相匹配的表目 :目的网络上的所有主机都可以通过这个表目来处置。
- 默认表目 :找到最高优先级的表目,然后发送数据报,若均不成功,则不能传送,则会返回主机不可达或网络不可达的错误 。
3.4 路由表重要特点
- 为网络指定一个路由表(基本上一个路由就是一个小的局域网,因此每个路由器都包含一个路由表),而不是为每个主机指定一个路由表;
- IP路由选择是逐跳来实现的,数据报在各站传输过程中IP地址和数据部分都是不会变化的,但是IP首部(TTL和校验和)和链路层的地址在每一站都可能发生变化。
4、子网掩码
在TCP/IP的网际层中,有一个十分重要的概念,就是IP的子网掩码,通过子网掩码,我们可以获取到该网络的网络号、主机号和子网号等数据。
4.1 子网掩码格式
- IP地址的格式为:网络号+子网号+主机号
- 子网掩码作用:确定多少比特用于子网号,及多少比特用于主机号
4.2 子网掩码类型
各类型解释如下:
- A类IP段 0.0.0.0 到127.255.255.255;
- B类IP段 128.0.0.0 到191.255.255.255;
- C类IP段 192.0.0.0 到223.255.255.255。
XP默认分配的子网掩码每段只有255或0
- A类的默认子网掩码:255.0.0.0 一个子网最多可以容纳1677万多台电脑;
- B类的默认子网掩码:255.255.0.0 一个子网最多可以容纳6万台电脑;
- C类的默认子网掩码:255.255.255.0 一个子网最多可以容纳254台电脑。
4.3 子网掩码说明
给定I P地址和子网掩码以后,主机就可以确定以下I P数据报信息:
- 本子网上的主机;
- 本网络中其他子网中的主机;
- 其他网络上的主机。