美文网首页
网络协议(六)-网络层

网络协议(六)-网络层

作者: 小冰山口 | 来源:发表于2020-11-06 17:59 被阅读0次

    以下内容来自于小码哥"网络协议从入门到底层原理"

    网络层(Network)
    • 网络层数据包(IP数据包, Packet)由首部, 数据2部分组成
      -- 数据: 一般是由传输层传递下来的数据段(Segment)
      image.png
    网络层首部-版本, 首部长度, 区分服务
    • 版本(Version)
      -- 占4
      -- 0b0100: IPv4
      -- 0b0110: IPv6

    • 首部长度(Header Length)
      -- 占4位, 二进制乘以4才是最终长度
      -- 0b0101: 20(最小值)
      -- 0b1111: 60(最小值)

    • 区分服务(Differentiated Services Field)
      -- 占8
      -- 可以提高网络的服务质量

    网络层首部- 总长度
    • 总长度(Total Length)
      -- 占16
      -- 首部 + 数据的长度之和, 最大值是65535

    • 由于帧的数据不能超过1500字节, 所以过大的IP数据包, 需要分成片(fragments)传输给数据链路层
      -- 每一个片都有自己的网络层首部(IP首部)

    网络层首部- 标识, 标志
    • 标识(Identification)
      -- 占16
      -- 首部 + 数据的长度之和, 最大值是65535
      image.png
    • 由于帧的数据不能超过1500字节, 所以过大的IP数据包, 需要分成片(fragments)传输给数据链路层
    • 每一片都有自己的网络层首部(IP首部)
    网络层首部 - 标识, 标志
    • 标识(Identification)

    • 16

    • 数据包的ID, 当数据包过大进行分片时, 同一个数据包的所有片的标识都是一样的

    • 有一个计数器专门管理数据包的ID, 每发出一个数据包, ID就加1

    • 标志(flags)
      -- 占3
      -- 第1(Reserved Bit): 保留
      -- 第2(Don't Fragment)DF: 1代表不允许分片, 0代表允许分片
      -- 第3(More Fragments)MF: 1代表不是最后一片, 0代表是最后一片

    ping的几个用法
    • ping /?
      -- 查看ping的用法

    • ping ip地址 -l 数据包大小
      -- 发送指定大小的数据包

    • ping ip地址 -f
      -- 不允许网络层分片

    • ping ip地址 -I TTL
      -- 设置TTL的值

    • 通过tracert, pathping命令, 可以跟踪数据包经过了哪些路由器

    网络层首部 - 片偏移
    • 片偏移(Fragment Offset)
      -- 占13
      -- 片偏移乘以8: 字节
      -- 每一片的长度一定是8的整数倍

      image.png
    • ping ke.qq.com -l 4000

      image.png
    网络层首部 - 协议, 首部校验和
    • 协议(Protocol)
      -- 占8
      -- 表明所封装的数据是使用了什么协议(传输层用了什么协议)
      image.png
    • 首部检验和(Header Checksum)
      -- 用于检查首部是否有错误
    网络层首部-生存时间
    • 生存时间(Time To Live)
      -- 占8
      -- 每个路由器在转发之前会将TTL1, 一旦发现TTL减为0, 路由器会返回错误报告
      -- 观察使用ping命令后的TTL, 能够推测出对方的操作系统, 中间经过了多少个路由器
    image.png

    相关文章

      网友评论

          本文标题:网络协议(六)-网络层

          本文链接:https://www.haomeiwen.com/subject/drduvktx.html