TCP/IP——网络层

一、IP简介

IP提供不可靠、无连接的数据报传输服务。

无可靠的意思是它不能保障IP数据报能成功的到达目的地。IP仅提供最好的传输服务。如果发送某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理办法:丢弃该数据报,然后发送ICMP消息报给信源端(源端一般都不会看这种ICMP信息)。任何要求的可靠性必须由上层来提供(如TCP)。

无连接这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先A后B),每个数据报都是独立地进行路由选择,可能选择不同地路线,因此B可能在A到达之前先到达。

二、IP数据报

在这里插入图片描述

IP首部长度大小必须是4字节的整数倍,不是就填充为4的整数倍。

版本:指IP协议的版本

首部长度:指版本的第一个字节到选项的最后一个字节,这个字段所表示数的单位是32位(即4字节),因此,当IP的首部长度为1111(即十进制的15)时,首部长度就达到最大值60个字节,所以选项部分最大40个字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

Tos(区分服务):1 1 1 1 1 1 1 1,八位
用法一:前3bit的precedent优先权子字段(现在已被忽略),4bit的TOS和1位未使用的但须置0。
4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit为1,如果4bit均为0,那么就意味着是一般服务。最后一位没用。

用法二:前6位的DSCP,后2位不用。

总长度:指首部和数据之和的长度,以字节为单位,数据报的最大长度为2^16 -1 = 65535字节。知道总长度和首部长度,就可以计算出IP数据报的数据部分。数据部分=总长度-首部长度

标识:唯一的标识主机发送的每一份数据报,通常每发送一份报文它的值就会加一。在分片重组的时候会根据标识位来识别是否为同一个包。

标志:标志字段中的最低位记为MF,值为1时表示后面还有分片数据报,值为0表示这是若干数据报片中的最后一个,标志字段中的中间位DF,意思是不能分片,只有值为0时才允许分片

片偏移:指出较长的分钟再分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。也就是说,每个分片的长度一定是8字节(64位)的整数倍。

实例:IP分片
一数据报的总长度为3820字节,其数据部分为3800字节长(使用固定首部),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分成3个数据报片,其数据部分的长度分别分为1400,1400和1000字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。
在这里插入图片描述
生存时间:设置了数据报可以经过的最多路由器数。防止环路。

协议:标明传输层使用的协议

首部校验和:对首部进行校验,校验失败表示首部被更改过。直接丢弃。只校验首部。

源地址:源IP地址

目的地址:目的IP地址

选项字段:记录路径(记录经过路由器接口的IP地址)、时间戳(记录经过路由器接口的IP地址和时间)、宽松的源站选路(为数据报指定一系列必须经过的IP地址)、严格的源站选路(为数据报指定只能经过的IP地址)。最后用全0的填充字段来补齐为4字节的整数倍。

选项字段一直都是以32bit作为界限,在必要的时候插入值为0的填充字节。这样就保证了IP首部始终是32bit(4字节)的整数倍,这也是首部长度字段所要求的。

三、IP路由选择

一.两个直连的网络
在这里插入图片描述
当R1访问R2时:源MAC地址为R1的MAC地址,目的MAC地址为R2的MAC地址,源IP地址为R1的IP地址,目的IP地址为R2的IP地址。(在R1的F0/1口抓的包)

二.两个非直连的网络
在这里插入图片描述
当R1访问R3时:源MAC地址为R1的MAC地址,目的MAC地址为R2的MAC地址,源IP地址为R1的IP地址,目的IP地址为R3的IP地址。(在R1的F0/1口抓的包)

总结:在穿越网络访问的时候,源目IP地址、源MAC始终不会改变(除NAT其它技术外)如果要访问的主机是直连,目的MAC地址就是要访问的主机的MAC地址,如果是非直连,目的MAC地址就是自己网关的MAC地址。

IP数据包中的源目IP地址是不会改变的,但是目的MAC会发送变化(数据链路层的地址会变化)

猜你喜欢

转载自blog.csdn.net/weixin_44233369/article/details/87544561
今日推荐