tcpip详解卷一第3章(1)

本文讲解tcpip卷一第3章第一部分IP头部,现在回顾一下前一篇
在这里插入图片描述
图3-1手机快递图

大家可以看到快递包装对比的是以太网,手机包装对比的就是IP了,来看一下IP层的位置以及内容,
大家可以看到黄色方框表示数据包传送的格式,最外层是mac的目的地址,以及源地址,然后是type数据类型,然后是数据,我们把数据在细分一下,可以看到IP层由IP头部以及IP数据构成,整个数据从链路层来看是数据,在IP层细分又是不同格式,打个比方:湖南省从国家来看就是一个省,不过省里面也区分头部(长沙),以及其他的内容(衡阳,以及其他城市)。
在这里插入图片描述
图3-2IP与以太网报文联系
我们现在先看回顾一下IP地址:
再我们现在来看一下IP头部是什么样子的?
在这里插入图片描述
图3-3IP头部图片
这里不从开始一条条分析,而从使用角度来一步步分析对应头部。
现在有这样3台电脑,
在这里插入图片描述
图3-4
PC X: IP_X 1.1.1.1 MAC_X :01:01:01:01:01:01:
PC Y: IP 1.1.1.2 MAC_Y :01:01:01:01:01:02:
PC Z: IP 1.1.1.3 MAC_Z :01:01:01:01:01:03:
IP_X表示IP X的ip的代号,MAC_X表示 IP X的mac代号,其他一样意思

PC X想发一条信息告诉PC Y:我喜欢王力宏

那我们来看一下对应数据
MAC_Y | MAC_X|0800|IP_X IP_Y 我喜欢王力宏|CRC
从上面的数据来看IP 头部只要有图3-3里面的源IP地址与目的IPi地址就可以发送了,那么这条数据就可以发送了,不过为什么IP 头部要弄这么复杂,现在来看一下其中一个字段
8位协议字段
这个就好比IP数据里面又有其他协议,你要告诉系统应该用什么协议进行解析。这个是不是很像以太网的类型,以太网的类型告诉系统后面是IP协议还是其他协议,对把
那我们再加上8位协议字段
MAC_Y | MAC_X|0800|IP_X IP_Y |8位协议字段|我喜欢王力宏|CRC,
如果这条消息再传送的过程中出现了错误变成了
MAC_Y | MAC_X|0800|IP_X IP_Z |8位协议字段|我喜欢王力宏|CRC
那么怎样知道这个消息出现了错误了?这个时候需要一个发现错误的机制,对应这16位的校验和,(这个校验和只校验IP头部)
那接着数据应该变成这样
MAC_Y | MAC_X|0800|IP_X IP_Y |8位协议字段|16位头部校验和|我喜欢王力宏|CRC,
发现现在这个报文能够实现对IP层后面的数据进行解析,以及头部校验错误检查了,比之前有很强的健壮了。
如果他非常喜欢王力宏,IP X想一次发送1000句子我喜欢王力宏,那么我们记得以太网有个长度限制叫做MTU,这个大小位1500字节,那么只能把这个句子多次发送,这个就叫做分片对应3位标识以及13位偏移,以及到时候把分片的数据从新组装的时候要知道是发送哪个消息时候超过了最大MTU的值把,比如我再发送一个我喜欢林俊杰,你不可能把这句也重组到我喜欢王力宏,那么我们给每个IP 有个16位标识
MAC_Y | MAC_X|0800|IP_X IP_Y |8位协议字段|16位头部校验和|16位标识(0x1111)|分片信息|我喜欢王力宏|CRC,
一个报文长度超过MTU要进行分片,16位标识用于识别要分片的报文与其他报文,分片信息用于组装分片
如果PC X是校长用的电脑,那么他的权力比较高,也要保障他发送的消息能够再网络拥堵的时候也能正常送达,如果PC X是学生,那么网络拥堵的时候是可以把他的数据包不用处理的。这个时候怎样标识一个是校长,一个是学生?
用TOS来标识网络优先级
MAC_Y | MAC_X|0800|IP_X IP_Y |8位协议字段|16位头部校验和|16位标识(0x1111)|分片信息|TOS| 我喜欢王力宏|CRC,
如果信息不是X->Y 而是X->Z,或者再X,Y之间有很多台电脑这样场景,再这样场景的情况下,有个问题如果信息在2台电脑里面打转转,那不是一直在传送,这样增加了电脑处理这样无意义的信息?这个时候就要标识一个值经过多少台电脑之后这个就不再传送了,这个值就是TTL,标识经过多少台电脑之后就不再传送了
MAC_Y | MAC_X|0800|IP_X IP_Y |8位协议字段|16位头部校验和|16位标识(0x1111)|分片信息|TOS| TTL|我喜欢王力宏|CRC,
在传送的时候可能在IP头部添加一些信息想获取某些信息,比如想获取传送这条消息经过哪些电脑,这样消息就可以用选项字段来进行保存,在最开始的时候就有对应空间来保存想要的数据,有了选项字段,那么IP头部大小就不是固定的,那么就要一个IP头部长度字段来表明IP 头部长度大小,以及在这里版本号固定.
MAC_Y | MAC_X|0800|IP_X IP_Y |8位协议字段|16位头部校验和|16位标识(0x1111)|分片信息|TOS| TTL|IP 选项|4位首部长度|4位版本号|我喜欢王力宏|CRC
在这里单独说明一下4位首部长度单位是4个字节,所以24=16,最大为15*4=60字节
上一章说过IP报文最小是64字节,那么如果我ip长度小于64字节要进行填充,那怎样知道是填充还是真的是64字节?这个就是16位总长度字段。这样头部就讲好了,有疑问可以留言。
下一章再讲解IP寻址与路由

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值