概述
1:引言
- IP时TCP/IP中的核心协议
- IP提供了一种尽力而为,无连接的数据报交付服务
2:IP头部
- 正常的IPV4头部大小为20字节。除非存在选项(少见)
- IPV6的长度是40字节,没有选项字段,IPV6有扩展头部
IPV4头部
- 版本字段:版本字段包含IP数据报的版本号,IPv4位4,IPv6位6。IPv4头部和IPv6头部除了版本字段位置相同,再无其他一样的。
- IHL(头部长度):单位双字,IPV4的头部长度,包括选项,但是不包括数据部分。由于它是一个4位的字段,所以IPv4头部被限制为最多15个32位字,即60字节。IPv6头部不不存在这个字段,其头部长度固定位40字节。
- DS字段与ECN字段:DS字段和ECN字段是由一个8位的服务类型(ToS)字段划分而来的,前6位被称为区分服务字段(DS字段),后2位是显式拥塞通知(ECN)字段或指示位。
- 总长度:IPV4数据报的总长度,字节为单位。通过这个字段和IHL字段我们可以知道数据报的数据部分从哪里开始,以及它的长度。他是一个16位的字段,收益IPV4数据报最大长度是65535字节。
- 尽管IPV4数据报最大可以达到65535字节,但是一般链路层不能携带这么大的数据,例如以太网数据载荷最大1500字节,除非将它拆分成更小的片。当一个IPV4数据报被拆分为多个更小的片时,每个分片自身任然是一个独立的IP数据报,总长度字段反应具体的分片长度。
- 标识字段: 标识由IPV4主机发送的数据报。为了避免一个数据报分片和其他数据报分片混淆,发送主机通常再每次发送数据时都将内部计数器加一,并将该数值复制到IPV4标识字段。这个字段对实现分片很重要。以及标志和分片偏移在第十章讨论。
- TTL:生存期或者说叫跳数限制,设置一个数据报可以经过的路由器的上限。发送方将它初始化为某个值,每台路由器在转发时将改值减一。当这个字段达到0时,该数据报被丢弃,并使用一个ICMP消息通知发送方。
- 协议: 包含一个数字,标识数据报有效载荷部分的数据类型。最常用的是17(UDP)和6(TCP)
- 头部校验和字段: 仅计算IPV4头部。也就是说不检查有效载荷部分数据的正确性。IPV6没有任何校验相关字段。IPV4头部校验和使用的不是CRC,链路层FCS字段使用的是CRC。
- 源IP地址和目的IP地址
IPV6头部
DS字段与ECN
IPV4与IPV6都有这两个字段,以前叫做TOS字段(服务类型字段)
-
ECN:拥塞标识符,一台持续拥塞的具有ECN感知能力的路由器在转发分组时会设置这两位。当一个被标记的的分组被目的节点接收时,有些协议(如TCP)会发现分组被标记并将这种情况通知发送方,发送方随后降低发送速度,这样可以在路由器因为过载而丢弃流量之前缓解堵塞。这种机制时处理网络拥塞的方法之一,后面16章会详细讨论
-
TOS服务类型字段:八位,前三位时优先级,表示哪些分组有更高优先级,接着的三位是D T R字段,为1时分别表示:低延时,高吞吐量,高可靠性。
-
DS字段:区分服务字段中存储的时DSCP,区分服务代码点。特定的区分服务代码点可以高数路由器对分组进行转发或者特殊处理。不同类型的转发处理表示为每行跳行为(PHB),不同的DSCP告诉路由器那种PHB应用于数据报。DSCP的默认值时0,对应于尽力而为的internet流量。
-
DSCP被分为三种用途:
- 0结尾的用作标准用途
- 01结尾最初用作实验或本地用途,最终会走向标准化。
- 1结尾用于实验或本地用途
dscp字段的前五位是标准的,最后一位来决定用途。
- 其中前三位是类别部分,基于TOS中的优先级字段。
路由器通常先将分组分为不同的类别。常见类别的流量可能有不同的丢弃概率,如果路由器被迫丢弃流量,允许路由器确定优先丢弃哪些流量。 - 后两位是丢弃概率,就是同类别下的丢弃优先级,类别相同时,丢弃优先级高的先被丢弃。
3:IP选项
- IPV4的选项放在选项字段中
- IPV6的选项被放在扩展头部中
用的不多
4:IPV6扩展头部
在IPV6中,那些由IPV4中选项提供的特殊功能,通过在IPV6之后增加扩展头部实现。
IPV6头部固定为40字节,不包括扩展头部
扩展头部,高层协议头部,IPV6头部,级联起来形成一个头部。由头部中的下一个头部字段指定下一个头部的位置
【图片】
4.1:IPV6选项
- 逐跳选项:与传输路径上每个路由器相关
- 目的地选项:仅与接收方有关
4.2:路由头部
4.3:分片头部
后面再看吧
5:IP转发
如果目的地址是直接相连的主机(点到点)或者是一个(共享网络)以太网,不需要路由器就可以直接到达。
否则需要发送到一台路由器(默认路由器),由该路由器将数据报交付到目的地。
当一个网络接口接收到一个数据报时:
- 首先检查目的地址是不是自己的IP地址
- 如果是的话,数据报想上层交付
- 如果数据报的目的地址不是本机
- 如果本机IP层配置为一台路由器,则转发该数据
- 如果本机是一台主机,数据报会被丢弃
5.1:转发表
每个条目含有以下信息:
- 目的地
- 掩码
- 下一跳
- 接口
5.2:IP转发行动
当一台主机或者路由器要向吓一跳路由器或者主机发送数据报时,它先检查数据报的目的IP地址,在转发表中用该目的地址来执行最长前缀匹配算法
- 目的地址与每个转发条路的掩码逐位与,并将结果与同一转发条目中的目的地比较。如果满足,则该条目与目的IP地址匹配。
- 在匹配的条目中,掩码1位越长的说明匹配得越好。
- 选择最匹配的条目,并将该条目的目的地作为数据报的下一跳IP地址
如果转发条目中没有匹配的条目,则这个数据报无法交付。通常向生成数据报的主机返回一个“主机不可达”的错误。
5.3:例子
直接交付
D发送给S,D在自己的路由表中匹配目的地址S,发现最匹配条目的吓一跳地址就是本机,说明使用直接交付,不会用到路由器。
然后数据报被封装到链路层帧中,并发送给目的主机S。如果不知道S的链路层地址,还需要使用ARP或者邻居发现协议查询其链路层地址。
然后交换机基于底层地址交付帧,并不关心IP地址。
p146
间接交付
- 默认路由就是在本机网络中没有找到目的主机来使用,将数据报交付到本网段的路由器,默认路由的掩码全0,目的地址全0.
- 间接交付过程中,链路层源与目的地址一直在变化
6:IP数据报的主机处理
6.1:主机模式
一个主机可能有多个接口与其对应的多个IP地址。
- 强主机模式:只有当目的IP地址字段中包含的IP地址与数据报到达的接口配置的IP地址匹配时,才同意吧数据报交付
- 弱主机模式:一个到达数据报的目的IP地址与其主机的任何接口之一的IP地址对应就可以被接收。
主机模式也可以用于发送模式,比如在强主机模式下,从主机的一个接口下发送的数据报的源IP地址必须和接口对应的IP地址一致。
例子看p152
6.2:地址选择
- 源地址选择
- 目的地址选择
最后
以上就是闪闪鞋垫为你收集整理的internet协议1:引言2:IP头部3:IP选项4:IPV6扩展头部5:IP转发6:IP数据报的主机处理的全部内容,希望文章能够帮你解决internet协议1:引言2:IP头部3:IP选项4:IPV6扩展头部5:IP转发6:IP数据报的主机处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复