网络协议从入门到底层原理(4)网络层(版本、首部长度、区分服务、总长度、 标识、标志、片偏移生存时间、协议、首部校验和)
网络协议从入门到底层原理
- 网络层
- 网络层首部 - 版本、首部长度、区分服务
- 网络层首部 - 总长度
- 网络层首部 - 标识、标志
- 【实践】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位
- 首部 + 数据的长度之和,最大值是 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的值
通过 tracert
、pathping
命令,可以跟踪数据包经过了哪些路由器
ping baidu.com -i 1
经过1次就消亡,显然由网关回复。
通过 ping baidu.com -i 1
、ping baidu.com - i 2
、ping baidu.com -i 3
… 可以追踪发包到百度经过的路由器。
tracert
和 pathping
命令实际上更简单也可以追踪路由器:
tracerrt baidu.com
pathping baidu.com
:
网络层首部 - 协议、首部校验和
协议(Protocol)
- 占8位
- 表明所封装的数据是使用了什么协议
首部校验和(Header Checksum)
- 用于检查首部是否有错误
Wireshark:
【实践】Wireshark 完整网络层首部
网络协议从入门到底层原理(4)网络层(版本、首部长度、区分服务、总长度、 标识、标志、片偏移生存时间、协议、首部校验和)相关推荐
- 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6
其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...
- 网络协议从入门到底层原理(11)网络爬虫、无线网络、HTTP缓存、即时通信、流媒体
补充知识 网络爬虫 网络爬虫的简易实例 robots.txt 无线网络 HTTP 缓存(Cache) 缓存 - 响应头 缓存 - 请求头 缓存的使用流程 即时通信(IM) XMPP MQTT 流媒体 ...
- 网络协议从入门到底层原理(9)HTTP/1.1的升级改进(HTTP/2、HTTP/3)
HTTP的升级改进 HTTP/1.1协议的不足 SPDY 协议 HTTP/2 HTTP/2的特性 - 二进制格式 HTTP/2基本概念 - 数据流.消息.帧 HTTP/2的特性 - 多路复用(Mult ...
- 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)
HTTPS SSL / TLS OpenSSL HTTPS的成本 HTTPS的通信过程 TLS 1.2 的连接(ECDHE密钥交换算法) ① Client Hello ② Server Hello ③ ...
- 网络协议从入门到底层原理(7)网络安全 - 常见攻击、单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书
网络安全 网络层 - ARP欺骗 DoS.DDoS 介绍与防御 传输层 - SYN洪水攻击(SYN flooding attack) 传输层 - LAND攻击 应用层 - DNS劫持.HTTP劫持 H ...
- 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN
应用层 域名( Domain Name)- 顶级域名.二级域名 DNS - DNS服务器.常用命令 DHCP(DISCOVER.OFFER.REQUEST.ACKNOWLEDGE) HTTP HTTP ...
- 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)
传输层( Transport) 传输层( Transport) UDP 协议(数据格式.检验和) 端口(Port) TCP TCP - 数据偏移.保留 TCP - 检验和( CheckSum) TCP ...
- 网络协议从入门到底层原理(3)网络互联模型、物理层、数据链路层(CSMA/CD协议、Ethernet V2帧、PPP协议)
网络协议从入门到底层原理 网络互联模型(了解请求过程.网络分层) 物理层(Physical) 数字信号.模拟信号 数据通信模型 信道(单工.半双工.全双工) 数据链路层(Data Link) 封装成帧 ...
- 网络协议从入门到底层原理(2)路由、网络常见概念(因特网, ISP, 接口, 上网方式)、公网私网、NAT
网络协议从入门到底层原理 路由 实践1 - 让4台主机之间可以互相通信 实践2 - 让4台主机之间可以互相通信 数据包的传输过程(简) 第一个包的丢失 网络 (Network).互联网 (intern ...
- 【网络协议从入门到底层原理】【06】数据链路层
持续学习&持续更新中- 学习态度:守破离 [网络协议从入门到底层原理][06]数据链路层 数据链路层 3个基本问题-封装成帧 3个基本问题-透明传输 3个基本问题-差错检验 CSMA/CD协议 ...
最新文章
- ps-axure学习之感受
- python 写创建和追加一个文件
- 【Python】学习笔记五:缩进与选择
- REALTEK 2.5G PCIE网卡 RTL8125BG-CG支持PXE免驱简介
- 常用的简单排序之插入排序,冒泡排序,选择排序,希尔排序
- [Unity] ACT 战斗系统学习 8:使用 ScriptableObject 制作角色属性 3
- 后副车架焊接机器人_焊接机器人的工装设计和工装的使用方法
- 的ppt_PPT模板中国风PPT模板
- /dev/null脚本中作用
- NUXT.JS原理简述
- android图片添加多行文字,Android使用SpannableString实现多行文字开头放置标签图案...
- 十大最受欢迎蓝牙耳机品牌推荐,学生党打工人平价蓝牙耳机
- 哨兵卫星影像数据Sentinel-1基本参数
- 七个技巧!Godaddy域名安全指数提高N倍
- XCTF-攻防世界CTF平台-Web类——19、mfw(.Git源代码泄露、php的assert断言)
- aisell_EasyPOI 数据导入导出
- win7共享打印机设置
- 计算机共享不了,电脑的共享开不了怎么办
- proto3字段值为空时被忽略问题
- uefi怎么念_UEFI是什么,看完您就全明白了
热门文章
- PS笔刷优质系列,300款精选笔刷合集
- ORA-28003: password verification for the specified ORA-20001
- mesos+marathon+docker
- C# 文件操作,查看所有的文件夹和文件
- 百度绿萝算法2.0更新 外链数降低分析
- 网络不再是“口水歌”的天下 巨一清《一朝芳草碧连天》网络受宠
- 科大讯飞智能录音笔SR502轻松解决办公问题
- 周末反省自己 Java
- 小米蓝牙耳机持续白灯_小米AirDots蓝牙耳机指示灯代表什么?小米Air蓝牙耳机指示灯颜色介绍...
- 24 solar terms隐私条款