Ipv4学习笔记之实践篇

2023-11-19

什么是IP

学习IP是入门网络的第一步, 要想了解网络的工作原理, 首先要了解的就是IP协议.
IP standards for Internet Protocol.
也就是说IP是Internet Protocol的缩写, 是internet通信协议.
通俗点讲, 如果接入internet的设备需要通信, 就必须要使用这个协议.
大家经常看到的IP协议有IPv4和IPv6两个版本, IPv4用的最多,本文只涉及IPv4.

IP 协议的功能

要想知道IP协议的内容, 就需要了解一下IP协议的包头定义了哪些字段.
图上0-31的数字代表bit, 也就是每个字段的长度.
比如, version这个字段是4bits, source ip address和destination ip address都是32bits.
IPv4 包头
如果从事网络管理, 需要理解以下字段.

字段 功能
TTL(Time To Live) 包的存活时间, 如果为0, 则被网络设备丢弃
Source IP address 源IP地址
Destination IP address 目的IP地址
Protocol 上层协议
Header Length 包头长度, 这个通常都是20Bytes
Total Length ip header + data length 是指包头和数据的总长度

下面通过一些实例来理解这些字段

TTL - Time To Live

TTL的值很容易通过ping这个命令来获得.
在下面的例子中, ttl=52, 每经过一个路由器, 这个值会减一.

ping www.baidu.com
PING www.a.shifen.com (36.152.44.96): 56 data bytes
64 bytes from 36.152.44.96: icmp_seq=0 ttl=52 time=59.546 ms
64 bytes from 36.152.44.96: icmp_seq=1 ttl=52 time=23.654 ms
64 bytes from 36.152.44.96: icmp_seq=2 ttl=52 time=21.083 ms

Source IP adress and Destination IP

还是用ping来做个例子, 源地址指的就是这个数据包从哪个机器发出来, 可以是你的笔记本电脑, 手机, 或者网络摄像头.

说是源地址, 其实是相对的, 当网站发数据给你时, 这个地址就是目的地址.

同样用一个实际的例子来理解:
在mac电脑上, 可以用tcpdump这个命令来查看包的具体内容.
在这个例子中,
第一行是从我的笔记本发出的icmp request包, source ip = 192.168.199.142, destination ip=36.152.44.95
第二行是从server的返回包, source ip = 36.152.44.95, destination ip = 192.168.199.142.
从实际抓取的数据包可以看到, source ip和destination ip会互换.

sudo tcpdump -vnn host 36.152.44.96
192.168.199.142 > 36.152.44.96: ICMP echo request, id 41479, seq 0, length 64
36.152.44.96 > 192.168.199.142: ICMP echo reply, id 41479, seq 0, length 64

在wireshark里, 很清楚的标出了这些地址
在这里插入图片描述

Protocol

这个协议字段是用来标识上层协议.
学过七层模型的都知道, IP协议是处于第三层的协议, 三层和四层之间的联系就是靠这个字段.
通常这个协议字段都是TCP, 现在绝大多数的应用都是基于TCP的, 当然由于TCP的一些限制, 导致传输效率不高, 很多也是基于UDP协议, 比如一些传输视频的数据包.
而在本文上面的例子中提到的ping, 则是基于ICMP协议.
下面给出一个协议号和协议的对应关系.
表中的协议号用十进制表示.

Protocol Number Protocol
6 TCP
17 UDP
1 ICMP

这个协议号, 同样可以清楚的在wireshark里看到
在这里插入图片描述

Total Length

这个字段很容易被忽略.
实际工作中, 有时候会遇到ping可以正常工作, 但是telnet或者ssh就是不行; 这种情况常见于有mtu issue的网络中.
其实使用ping这个简单的命令, 就可以发现网络中的mtu问题.
还是用文中之前的例子, 来理解这个长度字段.
这个例子中, ping没有加任何参数, 会发出默认的data length, 就是56Bytes.
一个简单的加法:

Items Length
IP header 20
ICMP header 8
data 56

ping www.baidu.com
PING www.a.shifen.com (36.152.44.96): 56 data bytes
64 bytes from 36.152.44.96: icmp_seq=0 ttl=52 time=59.546 ms
64 bytes from 36.152.44.96: icmp_seq=1 ttl=52 time=23.654 ms

所以我们在wireshark看到ip header中total length的长度是84.

可以在ping的命令中指定data的size, 用-s参数:

ping -s 1000 www.baidu.com
PING www.a.shifen.com (36.152.44.95): 1000 data bytes
1008 bytes from 36.152.44.95: icmp_seq=0 ttl=52 time=103.190 ms
1008 bytes from 36.152.44.95: icmp_seq=1 ttl=52 time=29.980 ms
1008 bytes from 36.152.44.95: icmp_seq=2 ttl=52 time=36.626 ms

ping的同时, 用wireshark抓包查看, 可以看到total length是1028.
Total Length = ip header (20) + icmp header (8) + data (1000)
在这里插入图片描述
实际测试中, 你会发现这个值不能一直增加, 增加到一定的值就ping不通了, 有兴趣可以自己做做测试.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ipv4学习笔记之实践篇 的相关文章

  • 网络安全现状:揭秘白帽黑客的真实收入

    前言 作为一个网络安全行业五年打工仔 今天就来看看黑客的收入和方向怎么样 一个黑客年薪是多少呢 外界普遍认为黑客是高收入群体 那么你想过黑客是怎么获得收入的吗 黑客分为白帽黑客和黑帽黑客 处于黑白两道的黑客会的技术都有些相似 但是却是对立的
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 广告竞价策略:激发广告变现潜能的关键

    在数字化时代 广告已经成为企业推广品牌 产品和服务的关键手段之一 为了最大程度地发挥广告的效果 广告竞价策略成为广告主和数字营销专业人士关注的焦点 通过巧妙运用竞价策略 广告主可以在激烈的市场竞争中脱颖而出 实现广告变现的潜能 admaoy
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许
  • 如何使用内网穿透实现iStoreOS软路由公网远程访问局域网电脑桌面

    文章目录 简介 一 配置远程桌面公网地址 二 家中使用永久固定地址 访问公司电脑 具体操作方法是 简介 软路由 是PC的硬件加上路由系统来实现路由器
  • 【一份老网工珍藏多年的网络配置笔记,很重要!】

    01 交换机 路由器的几种配置模式及模式转换 1 用户模式 登录到交换机 路由器 时会自动进入用户模式 提示符为 switchname gt 在该模式下只能够查看相关信息 对 IOS的运行不产生任何影响 2 特权模式 用户模式下 键入 en
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • 计算机Java项目|基于SSM的微课学习系统

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 静态综合实验

    1 IP地址划分 192 168 1 0 27 用于主干拆分 192 168 1 32 27 用于用户拆分 192 168 1 64 27 用于用户拆分 192 168 1 96 27 用于用户拆分 192 168 1 128 27 用于用
  • 手把手教你使用HarmonyOS本地模拟器

    我们通过下面的动图来回顾下手机本地模拟器的使用效果 本期 我们将为大家介绍HarmonyOS本地模拟器的版本演进 并手把手教大家使用HarmonyOS本地模拟器 一 本地模拟器的版本演进 2021年12月31日 经过一个版本的迭代优化 随D
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作

随机推荐

  • Lua的线程和状态 及协程

    luaL loadstring L return coroutine create function end nCallResult lua pcall L 0 1 0 创建一个协程和lua newthread创建一个线程一样 不过这个创建
  • 关于mysql group_concat不得不说的事

    mysql中 group concat函数将group by产生的同一个分组中的值连接起来 返回一个字符串结果 当查询的数据过多时 group concat超出了默认值1024个字符 超过就会截断 导致group concat查询出来的数据
  • ppt怎么压缩文件大小?学会这几种方法

    ppt 用office PowerPoint 制作的幻灯片 用于编辑 播放 各种操作 简单易学 在实际的生活和办公过程中 ppt文件的应用范围非常广泛 同样的 ppt也是非常重要的工具之一 很多时候 我们需要对ppt文件进行压缩 从而满足p
  • 原理图中的电阻旁边有个”NC“,什么意思?

    NC表示此处空贴 即此处不贴任何电子器件 如果安装的话 电路会有另外的功能 或许在性能上会有变化 常用于电路板贴装技术中 电路板贴装是回流焊中的一种工艺流程 回流焊也叫再流焊 是伴随微型化电子产品的出现而发展起来的焊接技术 主要应用于各类表
  • leetcode-无重复元素的最长子串

    给定一个字符串 请你找出其中不含有重复字符的最长子串的长度 例如对于字符串 str adfhdsla 它的无重复字符的最长子串为 sub adfhdsl 很显然 首先要有一个函数用以判断当前的子串中有无重复元素 然后寻找子串的工作就要用这个
  • 闲云:unity中不能识别monobehevior关键字的问题

    有时候一些小问题很恼人 如unity中新建脚本后不能识别monobehevior关键字 在vs2017右侧的解决方案中点击刷新图标 或者把不能识别的脚本添加到vs2017右侧的解决方案中的Assets中即可 还不行就点击 排除 然后再 添加
  • QApplication和QCoreApplication

    一 QCoreApplication用于non GUI的应用程序 不需要依赖QtGui库 QApplication用于包含GUI的应用程序 需要用到QtGui库 Qt是一个开源的C 库 主要用来开发GUI程序 但同时 它也支持控制台程序的开
  • log4j使用说明

    查阅阿里的jva开发手册 我们发现在打印日志的时候有一下几条是强制的 1 应用中不可直接使用日志系统 Log4j Logback 中的API 而应依赖使用日志框架SLF4J中的API 使用门面模式的日志框架 有利于维护和各个类的日志处理方式
  • 前端自测.

    交互 宽度1200px 表单校验 长度 敏感词汇 初始化 loading 结果 空 表单重复提交 loading 请求拦截 限流 数字 大数据 千分位 文本长度 省略号 数据查询结果校验 按条件查询结果是否正确 空数据传参 xx 参数头尾有
  • go struct{} 空结构体的特点和作用

    空结构体的特点和作用 参考代码 package main import fmt unsafe func main empStruct 空结构体的实例和作用 func empStruct 空结构体的特点 1 不占用内存 2 地址不变 var
  • Input

    Unity3d的所有输入 包括键盘鼠标和智能手机触摸等都是通过这一个类来完成 Input类 见API http docs unity3d com ScriptReference Input html 输入Input类使用 建议在Updata
  • Minikube 架构及启动流程剖析

    原文作者 wzqnls 编辑 夏天 对于要学习 Kubernetes 或者需要本地开发的开发人员来说 Minikube 是一个不错的选择 通过使用 Minikube 这个工具 我们可以非常快捷地在本地部署一套单节点的 Kubernetes
  • 【Linux】线程安全

    文章目录 1 线程互斥 1 1 线程间互斥的相关概念 1 2互斥量 1 3互斥量接口 1 4互斥量实现原理 2 可重入VS线程安全 3 常见锁概念 3 1死锁 3 2常见死锁情况 3 2 1情况一 忘记释放锁 3 2 2情况二 线程重复申请
  • [机缘参悟-66]:怎样才能让别人愿意帮你:利益共享法则、“大道”、“人性”

    目录 前言 第1章 生命是利益 1 1 什么是利益 1 2 不同时期 利益展现不同的形态 1 3 利益是维系社会运行的根本力量 1 4 利益是中性词 第2章 共享利益 2 1 共享利益的形态 2 2 显性的共享利益 物质利益 2 3 利益的
  • 分享一个嘉立创封装库(内含AD和PADS两种格式)

    一直以来做封装都是令我头疼的问题 偶然发现嘉立创的封装库 真的非常好用 而且封装做得非常漂亮 这个封装做得非常好 我也打过几款板子出来 手工焊接起来也非常好 真的是非常好的一个封装库 封装库里面包含了AD Protel99和PADS三种格式
  • 给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通

    我们知道wsl2是基于hyper v的虚拟机 每次重新启动的时候 都会重新拉一个新的hyper v虚拟机实例 然后虚拟网卡的IP是dhcp随机分配的 如果作为开发系统用 就会比较烦每次都要换一个IP 有人提供了个脚本 他写了个bat脚本在w
  • Tomcat之startup.bat启动闪退解决

    安装完了service 那个服务器 使用从官网下载的apche包 我使用的是这个包apache tomcat 8 5 81 windows x64 去bin里面启动 startup bat结果出现闪退 问题还是java环境变量的设置问题 可
  • 用户的计算机名,获取计算机名及用户名

    ifdef WINDOWS uses Windows endif ifdef UNIX uses BaseUnix endif ifdef UNIX function GetUserName String begin Result GetE
  • docker介绍

    公式 Usage docker OPTIONS COMMAND A self sufficient runtime for containers Options config string Location of client config
  • Ipv4学习笔记之实践篇

    什么是IP 学习IP是入门网络的第一步 要想了解网络的工作原理 首先要了解的就是IP协议 IP standards for Internet Protocol 也就是说IP是Internet Protocol的缩写 是internet通信协