IP的交付
- 间接交付:发送方通过分组的目的IP和路由表来查找改组应当被交付的下一个路由器的IP地址。路由器收到分组后,通过对应的掩码计算出要交付的网络标号,查找下一个路由的IP地址。然后发送方再用ARP协议找出下一个路由器的物理地址。
-
直接交付:最后一跳路由器与目的地之间,同物理网络之间的交付都是直接交付。发送方只需要通过目的IP找到目的物理地址即可。
IP的转发
基于目的地址的转发当路由器或主机有分组要发送时,要搜索路由表,以便找到到达最后终点的路由。这种方法效率较低,搜索查找限制,因此需要减小路由表长度,简化路由表。
- 下一跳方法: 路由表中只保留下一跳的地址,而不是保留完整的路由。
- 特定网络方法:把连接到同一个网络上的所有主机看成是一个表项,表项只用来定义网络本身。
使用分类地址的转发:提取目的地址->提取网络地址->查找
通常对A,B,C类地址分别提供一个路由表,表中包含网络地址,下一跳地址,和路由器借口号
使用无分类地址的转发:此时的路由表需要四列,多一项为掩码,此时没有子网划分,但是有地址聚合的概念,因此采用最长掩码匹配
基于标记的转发面向连接的概念,采用虚电路的方式,附加在分组上的标记来转发该分组。
路由器的结构
路由器有四个部件:输入端口,输出端口,路由选择处理器,交换结构。
- 输入端口和输出端口:完成物理层和数据链路层的功能,完成接收比特流,帧拆装成分组,同时进行纠错检错,缓冲排队;封装成帧,发送。
- 路由选择处理器:执行网络层功能,找出下一跳地址和端口号。
- 交换结构:把分组从输入队列搬移到输出队列中,采用纵横交换结构或榕树交换结构。
网际协议IP
不可靠的无连接数据报协议 best-effort delivery,IP分组有可能损坏,丢失,失序或延迟到达,并且有可能给网络带来阻塞。如果需要可靠的服务,IP需要和可靠的高层协议配合起来使用
- HLEN:IP数据报首部的长度5即表示20bytes,15即表示60bytes
- 服务类型:包括一些优先级,和IP分组的处理方式
- Total length:总长度包括有16位,即总长度为65535
- 生存时间TTL:超过时间就丢弃分组
- 协议:使用该IP的上层协议:TCP(6),UDP(17),ICMP(1),IGMP(2),OSPF(89)
分析这个分组,前面的部分是MAC帧的目的地址,源地址,还有类型(0x80),从蓝色高亮部分开始是IP分组。45表示IPv4,首部长度为5*4=20字节;06表示支持的高层协议为TCP,34c9之后的为IP目的地址和源地址..
分片
数据报可以穿越不同的网络。路由器将一个以太网连接到一个广域网,那么它接收到的以太网格式的帧,而发送出去的是广域网格式的帧。
- 原因:不同的底层都有自己的帧格式,有不同的数据字段最大长度(MTU),比如以太网MTU为1500字节,FDDI为4352字节,PPP为296字节;IP的最大长度为65535字节,当要封装成帧时必须根据要转发的具体物理网络进行分片(fragmentation),每个分片都要包含HEADER部分。
-
如何分片,涉及标识,标志,分片偏移。
标识用来表示一个IP数据报,在目的地进行重组,标识是一个IP数据报的唯一身份。
标志是用来表示该分片是否为最后一个分片。
分组偏移以8字节为单位计算。
分片实例
IP完整流程解释