当前位置: 首页 > news >正文

计算机网络-ip数据报

在这里插入图片描述
在图中,网络层包含了四种协议:ARP、IP、ICMP、IGMP,由上下关系表明,ARP为IP协议服务,IP为ICMP和IGMP服务。

IP数据报格式

在这里插入图片描述
此处不区分数据报和分组的概念:当数据部分过长时,将数据部分拆分,形成分组,也就是网络层的传输单元。
首部分为固定部分和可变部分,常规下没有可变部分。

在这里插入图片描述
版本:4位,表示IPv4/IPv6
首部长度:4位,单位是4字节,因为首部最少是固定部分的20字节,因此首部长度最小为5
区分长度:8位,表示期望获得哪种类型的服务
总长度:16位,表示总长度(首部+数据部分),单位1字节,可表示的最大值为2的16次方-1=65535 。但真实的总长度达不到此值,因为过长就会被分片,用来满足数据链路层MTU的限制。
标识、标志、片偏移: IP数据报分片时使用
生存时间(TTL): 8位,表示IP分组的保质期。每经过一个路由器值-1,变为0时被丢弃。
协议:8位,表示数据部分(即上层传输层)的协议。大致有1(ICMP)、2(IGMP)、6(TCP)、8(EGP)、9(IGP)、17(UDP)、41(IPv6)、50(ESP)、89(OSPF)。
首部检验和:16位,只检验首部。
源地址、目的地址:32位。
可选字段:0-40字节,用来支持排错、测量以及安全等措施。
填充:全0,把首部补充为4字节的整数倍。

IP数据报分片

MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节。
在这里插入图片描述
网络层的IP分组封装上层数据(传输层)时,只增加了首部;链路层封装上层数据时,加头加尾。
整个IP分组构成了链路层的数据部分,当超过链路层MTU限制时,普遍采用分片的形式。当IP数据报要求不使用分片且长度超过MTU,则数据发送不出去,向上层返回一个ICMP差错报文。

在这里插入图片描述

标识:16位,同一数据报的分片使用同一标识。
标志:3位,只有两位有效,最高位保留不用。
中间位DF(don’t fragment):1,禁止分片;0,允许分片
最低为MF(more fragment):1,还有分片;0,最后一片/没有分片了
片偏移:13位,表示分片后某片在原分组中的相对位置,单位8B。可以看出,分得的片长度都是8B的整数倍(除了最后一片)。

分片过程

某个数据报首部20B、数据部分3800B,需要分片为长度不超过1420B的数据报片。
则可以分为三片,每片的首部长度和原始数据报相同。
在这里插入图片描述
分片后,是乱序到达吗?目的方如何再把片组装起来?

IP地址的分类

IP地址的历史阶段:
- 分类的IP地址
- 子网的划分
- 构成超网(无分类编址方法)

分类的IP地址

IP地址: 全世界唯一的32位/4字节标识符,标识路由器或主机的接口。主机或路由器有多个接口,就有可能有多个ip地址。
IP地址:{网络号,主机号}
在这里插入图片描述
网络号不为0,主机号为0标识某个网络。
LAN1:网络号222.1.3.0,网络内各主机的主机号不同
LAN2:网络号222.1.1.0
LAN3:网络号222.1.2.0,虽然内部有网桥,但它是链路层设备,不能隔离广播域,仍然是一个网络。
中间的三个路由器,每个路由器都有三个接口,每个接口都是一个网络。

在这里插入图片描述
可以看到4字节的IP地址,被分为A、B、C、D、E五类,每类能表示的数量是上类的一半。
每类中能表示的IP地址,有些是不可以用的。

在这里插入图片描述

网络号全0(表示本网络,肯定是A类地址),,当主机号:

  • 为全0,表示自己这台主机。可以作为源地址,不能作为目的地址
    ps: 当写tcp程序时,监听ip地址0.0.0.0,,与这个有关系吗
  • 不为全0,表示本网络内的某台主机,可以作为目的地址,不能作为源地址

网络号全1,主机号全1,即255.255.255.255,表示本网广播地址,不能作为源地址,只能作为目的地址,路由器收到目的地址为它的分组不转发,因为路由器可以隔离广播域。

网络号特定值,主机号全0,表示某个网络,不能作为目的地址和源地址。
网络号特定值,主机号全1,表示某个特定网络的广播地址,可以作为目的地址,不能作为源地址。
网络号127(A类地址),主机号非全0非全1,表示环回地址,可以作为源地址和目的地址。

总结:
网络号全为0,表示本网络的某台主机;
主机号全为0,表示某个网络。
主机号全为1,表示广播地址。

这些特殊的IP地址不能作为主机或路由器的接口地址。

在这里插入图片描述
私有IP地址,只能在本地网中使用,路由器对私有地址数据包一律不转发。

在这里插入图片描述
最大主机数,都是减去全0和全1,即2。
A类地址中,最大网络数减去全0(表示本网络)和全1(127,表示换回地址)
B类地址中,最大网络数减去全0(表示本网络)
C类地址中,最大网络数减去全0(表示本网络)

NAT网络地址转换

在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
NAT路由器有一个NAT转换表。
在数据往外发时,源地址是本地地址,替换为路由器的外网地址;在外部数据进来时,目的地址是路由器的外网地址,转换为本地地址。

http://www.lryc.cn/news/7443.html

相关文章:

  • 从零开始学C
  • 【云原生】手把手带你从零开始搭建kubernetes最新版本实战
  • trivy os软件包扫描原理分析
  • 算法训练营 day48 动态规划 完全背包 零钱兑换 II 组合总和 Ⅳ
  • Java 基础(1)—泛型简单使用
  • 内存卡损坏了怎么恢复?
  • Mysql使用规范(纯技术和实战建议)
  • Netty源码解读-EventLoop(二)
  • OSI模型详解
  • Share Creators完成500万美元融资,以工具化手段帮助企业从数字资产管理中解放
  • 几个Base64编码工具,也有蹊跷
  • Python|每日一练|排序|递归|字符串|数组|动态规划|单选记录:以特殊格式处理连续增加的数字|正则表达式匹配|地下城游戏
  • Spring Cloud微服务网关Gateway组件
  • cluster nodes(集群节点)
  • 【Android学习】下载jar慢和gradle慢的情况
  • 下一个排列-力扣31-java
  • 前端面试题
  • jsp游戏门户网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Git与IDEA强强联合(HTTPS协议连接)
  • leetcode 第二题:两数相加-C语言实现
  • 【人工智能】PTP网络时钟服务器在智能驾驶里的重要性
  • 【蓝桥杯集训3】二分专题(3 / 5)
  • 在成都的哪个培训机构学习Java好呢?
  • 传输层重要协议之UDP协议和TCP协议详解
  • BNB Greenfield 成存储赛道“新贵”,BNB 生态的野心与破局
  • 【SQL开发实战技巧】系列(十六):时间类型操作(上):日、月、年、时、分、秒之差及时间间隔计算
  • JavaScript知识点总结
  • adb命令记录
  • 9.Docker Swarm
  • 基于tensorflow keras DNN神经网络训练预测豆瓣中文影评差评好评 附完整代码 +数据