目录

网络层

  • 版本,首部长度,区分服务
  • 总长度
  • 标识、标志
    • 【实践】ping 的几个用法、wireshark抓包
  • 片偏移
  • 生存时间
    • 【实践】根据TTL追踪经过路由器
  • 协议,首部校验和
    • 【实践】Wireshark 完整网络层首部

网络互联模型:

请求过程:

网络分层:

网络层

  • 网络层数据包(IP数据包,Packet)由 首部、数据 两部分组成
  • 数据:很多时候是由传输层传递下来的数据段(Segment)

网络层首部 - 版本、首部长度、区分服务

版本(Version)

  • 占4位
  • 0b0100:IPv4
  • 0b0110:IPv6

首部长度(Header Length)

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

区分服务(Differentiated Services Field)

  • 占8位
  • 可以用于提高网络的服务质量(QoS,Quality of Service),这个了解即可

网络层首部 - 总长度

总长度(Total Length)

  • 占16位 : 2个字节, 256 * 256 = 65535
  • 首部 + 数据的长度之和,最大值是 65535

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

网络层首部 - 标识、标志、片偏移

标识、标志、片偏移 : 它们的作用就是用来将 网络层数据包 进行分片向下传递给数据链路层, 最后再合并成一个完整的数据包 向上传递。

标识(Identification)

  • 占16位
  • 数据包的ID,当数据包过大进行分片时,同一个数据包的所有片的标识都是一样的 (用标识来合并分片)
  • 有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1

标志(Flags)

  • 占3位
  • 第1位(Reserved Bit):保留
  • 第2位(Don’t Fragment):1代表不允许分片,0代表允许分片
  • 第3位(More Fragments):1代表不是最后一片,0代表是最后一片

【实践】ping 的几个用法、wireshark抓包

ping /? 查看ping的用法
ping ip地址 -l 数据包大小 发送指定大小的数据包(ping www.baidu.com -l 1400)
ping ip地址 -f 不允许网络层分块 (ping www.baidu.com -l 2000 -f)


通过 Wireshark 抓包查看 ping www.baidu.com 发送的包

通过 ping 命令,实际上发送了4次 ICMP数据包:

通过 Wireshark 可以证实:

网络层首部 - 片偏移

片偏移(Fragment Offset)

  • 占13位
  • 片偏移乘以8:字节偏移(wireshark显示的是字节偏移)
  • 每一片的长度一定是8的整数倍

ping ke.qq.com -l 4000 以前可以往腾讯课程发长度为4000的数据包,现在似乎不行了。。

网络层首部 - 生存时间

生存时间(Time To Live,TTL)

  • 占8位
  • 每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告
  • 观察使用 ping 命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器

    Wireshark:

【实践】根据TTL追踪经过路由器

ping ip地址 -i TTL 设置TTL的值
通过 tracertpathping 命令,可以跟踪数据包经过了哪些路由器


ping baidu.com -i 1 经过1次就消亡,显然由网关回复。

通过 ping baidu.com -i 1ping baidu.com - i 2ping baidu.com -i 3 … 可以追踪发包到百度经过的路由器。


tracertpathping 命令实际上更简单也可以追踪路由器:

tracerrt baidu.com

pathping baidu.com

网络层首部 - 协议、首部校验和

协议(Protocol)

  • 占8位
  • 表明所封装的数据是使用了什么协议

首部校验和(Header Checksum)

  • 用于检查首部是否有错误

Wireshark:

【实践】Wireshark 完整网络层首部

网络协议 一 网络层( 版本、首部长度、区分服务、总长度、 标识、标志、片偏移生存时间、协议、首部校验和)相关推荐

  1. IP的首部长度,总长度,标识,地址

    1. 版本 版本字段占4bit,指IP协议的版本.通信双方使用的IP协议的版本必须一致.版本有IPV4 和IPV6 2. 首部长度 首部长度字段占4bit,可表示的最大数值是15个单位(一个单位为4字 ...

  2. 一个UDP用户数据报的首部的十六进制表示是06 32 00 45 00 1C E2 17。求源端口、目的端口、用户数据报总长度、数据部分长度。

    在UDP首部中 源端口占2个字节,即06 32 ,化为十进制是1586.(下面括号外数字代表进制) (06 32)16=(00000110 00110010)₂=2+16+32+512+1024=(1 ...

  3. TLS协议与JDK版本之间微妙的关系

    TLS协议与JDK版本之间微妙的关系 首先想知道TLS协议与JDK版本之间微妙的关系,就必须知道什么是TLS协议? 维基百科是这样说的: 传输层安全性协定(英语:Transport Layer Sec ...

  4. Qos和区分服务(DiffServ)

    Qos服务质量 网络畅通是网络建设中的基本要求,但是并非所有的网络流量都应该被转发,为了安全也是为了满足部分业务流量的优先服务要求,有一些流量需要被限制. 常用的流量控制技术有访问控制列表(ACL)和 ...

  5. 网络协议从入门到底层原理(4)网络层(版本、首部长度、区分服务、总长度、 标识、标志、片偏移生存时间、协议、首部校验和)

    网络协议从入门到底层原理 网络层 网络层首部 - 版本.首部长度.区分服务 网络层首部 - 总长度 网络层首部 - 标识.标志 [实践]ping 的几个用法.wireshark抓包 网络层首部 - 片 ...

  6. 网络基础3-1(细谈IP协议头, 网络层,子网划分,路由选择,数据链路层,以太网帧格式,MAC地址,再谈ARP协议)

    IP协议 IP协议头格式 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4 4位头部长度(header length): IP头部的长度是多少个.32bit, 也就是 ...

  7. 网络协议:网络层传输层

    目录 网络层 网络层首部 网络层首部--总长度 网络层首部--标识.标志 网络层首部--片偏移 网络层首部--生存时间 ping的几个用法 传输层 UDP UDP--数据格式 UDP--检验和(Che ...

  8. IP、ARP、RARP、ICMP、IGMP(网络协议:网络层协议)

    面试和笔试中,如果记住下面这张图,基本就能解决网络协议中70%的问题.需要记住: OSI模型和TCP/IP模型每一层名称: 每一层对应有哪些协议,或者说给出该协议要知道对应那一层: 该协议是基于TCP ...

  9. 网络基础之网络层详解

    1 两种服务 1.1 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务("面向连接"还是"无连接")曾引起了长期的争论.争论焦点的实质就 ...

最新文章

  1. Python实现列表去重的⽅法
  2. Docker容器对CPU资源隔离的几种方式
  3. 计算机丢失tlps,win7系统下PS提示计算机丢失tlpsplib10.dll文件的解决方法
  4. zigbee vs 433
  5. Redis自定义动态字符串(sds)模块(二)
  6. ubuntu14.04不能安全卸载移动硬盘
  7. TensorFlow——共享变量的使用方法
  8. 【java】java boolean 源码分析
  9. CCF NOI1064 计算斐波那契第n项
  10. 锐捷校园网自动认证路由脚本
  11. FMEA软件框图及接口功能库(FMEAHunter)
  12. 如何把录音生成二维码,用微信扫一下就能听?分享语音音频转二维码的方法和技术原理
  13. AppBarLayoutCoordinatorLayoutBehavior
  14. 从零开始做运营第一课:运营是做什么的?一篇文章解释清楚!
  15. 冒险岛 PHP,php基础知识
  16. 有3个学生3门功课成绩s={‘Teddy‘:[100,90,90], ‘Sandy‘:[98,91,80],‘Elmo‘:[90,90,83]} 要求输出每个学生的姓名,平均成绩(结果保留1位小
  17. windows如何截图
  18. Hazelcast IMDG参考中文版手册-第一章-前言
  19. CMake从0到1:Linux编译动态库,调用动态库,VSCode单步执行
  20. Diffusion模型详解

热门文章

  1. 【渝粤教育】21秋期末考试建设工程法规10221k2
  2. 《软件测试经验与教训》读书笔记---第二章
  3. php在页面输出,【Php】一个在页面缓缓输出效果的例子
  4. Chrome浏览器下载失败的解决方法
  5. 如何修复崩溃服务器,cm服务器崩溃,修复解决方案
  6. 动态创建Lambda表达式实现高级查询
  7. 好书分享:《SEO实战密码》第3版
  8. 直播带货平台开发如何实现抗丢包技术
  9. SAS之SCSI Enclosure Services - 3 (SES-3)
  10. Flash将在2020年12月31日退出历史舞台