网络协议上课笔记(五)网络层、TTL

网络层

数据包的结构图

网络层中最小的数据单元为“数据包”。一个数据包由首部固定部分+首部可变部分+数据部分组成。
在这里插入图片描述
下面对数据包每个部分进行详细说明

  • 版本:占4位,标明当前网络层使用什么协议来传输数据包。
    0b0100:IPv4
    0b0110:IPv6
    补充:0b表示后面的数是2进制,即IPv4是0b0100,即等于十进制的4

  • 首部长度:占4位,最终长度=首部长度4
    因为数据包固定部分为20字节,所以数据包最小长度为20.即20/4=5=0b0101.所以首部长度最小为0b0101。
    因为首部长度占4位,所以最大为0b1111=15,15
    4=60,所以首部长度最大为60,即可变部分最大为60-20=40。

  • 区分服务:占8位,有于提高网络的服务质量。
    比如百度云开了会员之后,百度云网盘服务器端可以对响应的数据包给区分服务设置成某一个值,然后百度云的路由器就会优先传输这些数据包,以实现会员加速的功能。

  • 总长度:占16位
    数据包的总长度,即首部固定部分+首部可变部分+数据部分的总长度,最大值65535,所以一个数据包最大为65535字节。

中场说明:数据包最大为65535字节,往下传会达到传输层,传输层的帧最大不超过1500字节,所以在往下传之前,网络层有可能要对数据包进行分片(fragments)在传给传输层,每一片数据都有自己的网络层首部!而分片这个操作引入了 标识、标志、片偏移 这三个字段来进行表示。

  • 标识:占16位
    数据包的ID,当数据包过大进行分片时,同一个数据包的每一片的标识都是一样的,相当于数据包的ID。
    补充:有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1。ID到最大值在加1就可能重置为1,具体规则要看计数器的实现。

  • 标志:占3位
    第1位:保留位,目前没用
    第2位:1表示当前分片没有分片(即是一个完整的数据包),0表示当前数据包被分片了
    第3位:1表示当前分片不是最后一片,0表示当前分片是最后一片。

所以当第2位为1时,第3位一定为0,即标志为010。标志为010时表示数据包没有分片。

  • 片偏移:标识当前片相对于整个数据包的偏移量,类似于sql的limit offset, size的offset

  • 生存时间:占8位,TTL(time to live)
    每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告。每个操作系统默认的TTL都是不一样的,如下图所示
    在这里插入图片描述
    所以可以通过技术手段,有可能可以通过TTL嗅探出对方用的是什么操作系统。

补充:
在这里插入图片描述

  • 协议:占8位,表明当前数据包用的是什么网络层协议
    在这里插入图片描述
  • 首部校验和:用于检查首部的数据是否有错误,类似于指纹,也类似于传输层的FCS。
  • 源IP地址:发送方的IP地址
  • 目标IP地址:接收方的IP地址
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值