IP、ICMP协议

1.IPv4协议

1.1IPv4头部

  • IP数据报格式(头部结构)

    • 头部长度:4bit,可表示2^4-1=15个单位(一个单位4字节),即IP首部长度的最大值时60字节。
    • TTL:每当数据报经过一台路由器,该字段减1,当TTL为0时,丢弃该数据报。
    • 标志位:保留、DF(Don’t fragment)、MF(More fragment)。

1.2IPv4分片

  • 一个最大分片可封装的数据应该是8的倍数,一个最大分片可封装的数据为:d=⌊MTU−208⌋×8d = \lfloor \frac{MTU-20}{8} \rfloor × 8d=⌊8MTU−20​⌋×8
  • 需要总的分片数为:n=⌈L−20d⌉n = \lceil \frac{L-20}{d} \rceiln=⌈dL−20​⌉
  • 偏移:⌊MTU−208⌋\lfloor \frac{MTU-20}{8} \rfloor ⌊8MTU−20​⌋

1.3IPv4编址

  • 子网的表示方法:前缀(网络号)/长度(子网掩码):223.1.1.0/24
  • 主机号全0代表网络本身,主机号全1代表本子网的广播地址
  • 分类IP编址:
    • A类:0.0.0.0 ~ 127.255.255.255(0段和127段不使用)
    • B类:128.0.0.0 ~ 191.255.255.255
    • C类:192.0.0.0 ~ 233.255.255.255
    • D类:224.0.0.0 ~ 233.255.255.255
    • E 类:240.0.0.0 ~ 255.255.255.255
  • CIDR(Classless Inter Domain Routing无类域间路由)
    • 消除传统A、B、C类地址界限
    • 子网为连续地址的地址块,网络前缀可以任意长度。
    • 某地址块为200.23.16.0/23,则其
      • 子网掩码为:255.255.254.0 或 /23
      • 网络地址为:200.23.16.0/23 (主机比特全为0)
      • 可用主机地址为:200.23.16.1 ~ 200.23.16.254
      • 广播地址为:200.23.16.255 (主机比特全为1)

2.ICMP协议

2.1概述

  • 背景:IP协议是一种无连接的不可靠的数据交付,IP协议不提供任务错误校验和恢复机制。因此,设计了ICMP协议弥补上诉缺陷。

  • ICMP(Internet Control Message Protocol)因特网控制报文协议。它是IPv4协议族中的一个子协议,用于IP主机、路由器之间传递控制消息

  • 控制消息是在网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传输用户数据,但是对于用户数据的传递起着重要的作用。

  • ICMP通过差错报文和询问报文来辅助IP网络的工能。

    • 差错报告:不可达主机、网络、端口、协议
    • 网络探寻:回声请求/回答(由ping使用)
    • 与IP的关系:ICMP报文作为IP有效载荷

2.2ICMP报文

2.3ping和traceroute的原理

  • ping是用来探测主机到主机之间是否可通信。
  • ping的原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。
  • traceroute可以用来跟踪一个分组从源点到终点的路径。
  • traceroute的原理是,把ICMP报文和IP分组中的TTL从1开始,去试探,TTL为0时,路由器会丢弃这个分组并发送一个超时ICMP报文;这时源主机再把TTL+1,重复这个步骤,直到目的主机收到了。那么目的主机就会递交给UDP,但是UDP的目的端口已经被设为UDP协议不支持的一个端口,所以目的主机收到这个分组的时候,找不到可以交付的应用程序,于是丢弃,并向源主机发送一个ICMP终点不可达报文。至此traceroute就找出了整个路由。

3.IPv6

3.1概述

  • 32-bit的IPv4地址空间很快将会被完全分配完。
  • 不允许分段
  • 128位,16位为一组,每组以冒号隔开,每组以4位十六进制方式表示。
  • 类似于IPv4的点分十进制,也存在点分十六进制的写法。去除冒号,每一位以点号分隔。
  • IPv6在某些条件下可以省略:
    • 每项数字前导的0可以省略,省略后前导数字仍是0则继续,例如下组IPv6是等价的。
    • 可以用双冒号“::”表示一组0或多组连续的0,但只能出现一次。
    • 如果这个地址实际上是IPv4的地址,后32位可以用10进制数表示;因此::ffff:192.168.89.9 相等于::ffff:c0a8:5909。
    • 另外,::ffff:1.2.3.4 格式叫做IPv4映射地址

3.2首部

  • 协议版本,流量类别(8位,包优先级),流标号(20比特,QoS服务质量控制),有效载荷长度(分组长度,16位),下一个头部(用于入栈解码,类似IPv4中的协议号),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。

4.VPN的工作原理

  • VPN,全称为Virtual Private Network,译为无线虚拟专用网络,主要用于在公用网络上建立专用网络,进行加密通讯。
  • 通常情况下,VPN网关采取双网卡结构,外网卡使用公网IP接入Internet。
  • 网络一(假定为公网internet)的终端A访问网络二(假定为公司内网)的终端B,其发出的访问数据包的目标地址为终端B的内部IP地址。

------本篇完------

网络层-IP,ICMP协议小小总结相关推荐

  1. 熟悉网络层IP协议和数据链路层

    1. 应用层IP 协议 1.1 IP协议头 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. 4位头部长度(header length): IP头部的长度是多少个32 ...

  2. 计算机网络 day6 arp病毒 - ICMP协议 - ping命令 - Linux手工配置IP地址

    目录 arp协议 arp病毒\欺骗 arp病毒的运行原理 arp病毒产生的后果: 解决方法: ICMP协议 ICMP用在哪里? ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后,还要 ...

  3. 计算机网络实验报告4icmp,实验04-ip、icmp协议分析

    实验04-ip.icmp协议分析 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机网络>实验报告实验:IP.ICMP ...

  4. 【计算机网络】(5)ping的过程分析+icmp协议

    目录 一.ping 1.1 过程分析 1.2 ICMP协议 1.2.1 iptables简要介绍 1.2.2 路由追踪 1.3 常用选项 1.4 ping一台服务器ping不通的原因和解决方法 1.5 ...

  5. Linux·DNS协议、ICMP协议、NAT技术

    目录 DNS协议 DNS背景 ​编辑域名简介 域名解析过程 使用dig工具分析DNS过程 ICMP协议 ICMP功能 ICMP协议格式 ​编辑ping命令 一个值得注意的坑 traceroute命令 ...

  6. DNS协议、ICMP协议、NAT技术

    文章目录 DNS协议 DNS背景 域名简介 域名解析过程 使用dig工具分析DNS过程 ICMP协议 ICMP功能 ICMP协议格式 ping命令 一个值得注意的坑 traceroute命令 NAT技 ...

  7. 什么是TCP/IP?-四张图解释TCP/IP四层协议模型

    什么是四层模型 第一层:应用层,主要有负责web浏览器的HTTP协议, 文件传输的FTP协议,负责电子邮件的SMTP协议,负责域名系统的DNS等. 第二层:传输层,主要是有可靠传输的TCP协议,特别高 ...

  8. 物理层(网线)、数据链路层(交换机)、网络层(IP协议、ARP协议、ICMP协议、路由器)、VLAN(虚拟局域网)、HSRP协议、ACL、NAT

    文章目录 物理层(Physic Layer) 数据链路层(2层 Data Link Layer) 1.帧结构: 2.帧格式: 3.工作在数据链路层的设备: 交换机/网卡 4.交换机基本的工作原理:MA ...

  9. ICMP协议(3层网络层协议:IP、ARP、ICMP)

    1.ICMP协议端口号? 没有端口号,向TCP/UDP这些都是没有端口号只有协议号,只有应用层才有端口号. 2.ICMP协议是干什么的? 网络探测与回馈机制                 1)网络探 ...

最新文章

  1. UIBarButtonSystemItem 各种款式
  2. mysql 设置电脑时间设置_怎样设置mysql密码
  3. SELECT COUNT(*) 底层究竟干了啥么?
  4. php linux下保存文件路径怎么写,linux下php导入带图片的word文档转为html,图片保存下来生成路径。...
  5. 平衡二叉树AVL插入
  6. 在图片中选定任意凸多边形制作掩膜程序MATLAB
  7. HA:HADOOP高可用机制
  8. QMap排序方法运用实例
  9. 算法:求两个数最大公约数
  10. PyQt5教程——组件(7)
  11. 八数码宽度优先搜索python代码_图之遍历--广度优先遍历
  12. 一个关于finally和return的面试题
  13. C# 中,利用 Conditional 定义条件方法
  14. python md5加密字符串_Python使用MD5加密字符串示例
  15. QT24A01 TNK以太网变压器
  16. 你还在用截图工具,获取视频中的图片?
  17. 初一计算机知识点都教啥,10分钟试讲几个知识点?初中信息技术教师招聘面试试讲教案真题:补间动画...
  18. 关于sql server中isnull(值,值)是什么意思
  19. 数据泄露,数据防泄密该怎么做?
  20. 【文献管理软件Zotero】Zotfile插件及云同步的使用技巧

热门文章

  1. Jina 实例秀|基于神经搜索的网络安全威胁检测(一)
  2. 2kids学汉字 android,2Kids学汉字
  3. 【转】【亲测】sql2008破解加密存储过程 (亲测可用)
  4. Java平滑处理什么意思_photoshop画笔选项里的“平滑”到底是什么意思?
  5. 屏幕左上角出现【最小化】按钮,鼠标无法点击
  6. java学的什么软件_java初学者用什么软件
  7. vivado多时钟周期约束set_multicycle_path使用
  8. 孩子好动爱疯跑就是感统失调吗?不一定!
  9. TCP|Android上TCP通信实现
  10. 扫描电镜SEM制样方法大汇总