3.7计算机网络(IP数据报格式,IP数据报分片,IPv4)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 🍓IP🍇1.IP数据报格式🍑2.IP数据报分片🥦3.IPv41.分类的IP地址2.网络地址转换NAT

🍓IP


🍇1.IP数据报格式


数据部分是运输层的传输单元,有TCP段,也有UDP段


首部也可称为是IP数据报的头部


IP数据报如果过大的话,我们就会对它进行分片,分割成的小单元就是分组





对于任何一个IP数据报来说,首部的固定部分都是20字节,可变部分也就是可有可无,大部分情况下是没有可变部分的




版本字段有4位


首部长度也是4位 首部长度要乘以4B才是实际的长度


最小十进制取值为5,表示IP数据报首部只有20字节固定部分


最大十进制取值为15,表示IP数据报收宝宝包含20字节固定部分和最大40字节可变部分



填充字段:确保首部长度为4字节的整数倍,使用全0进行填充


总长度:占16比特,表示IP数据报的总长度(首部+数据载荷)


最大取值为65535,以字节为单位


生存时间TTL:


占8比特,最初以秒为单位,最大生存周期为255秒,路由器转发IP数据报的时候,把IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0,就转发,否则就丢弃


现在以"跳数"为单位,路由器转发IP数据报的时候,把IP数据报首部中的该字段的值减1,如果不为0,就转发,否则就丢弃



🍑2.IP数据报分片



MTU指的是链路层的数据帧可以封装数据的上限


以太网的MTU是1500字节


如果我们传送的数据报长度超过了某一个链路的MTU值要怎么办?


这个时候,数据链路层不能把它封装成帧。需要将原来的IP数据报分片为更小的IP数据报,使用分片来解决问题,使用分片的前提是这个IP数据报本身同意进行分片



标识:同一数据报的分片使用同样标识


标志:只有2位有意义x_ _


中间位DF(Don’t Fragment)

DF=1, 禁止分片

DF=0,允许分片

最低位MF(More Fragment)

MF=1,后面还有分片

MF=0,代表最后一片/没有分片

只有DF=1,MF才有意义

片偏移:


指出较长分组分片后,某片在原分组中的相对位置。以8B为单位,除了最后一个分片以外,其他的每个分片长度一定是8B的整数倍



题目要求分片长度不要超过1420B,也就是MTU为1420B,但是这1420B中有20B是要给首部的,剩下的1400B才可以作为分片的数据部分


我们就把数据部分进行切割,尽可能使得分割完的数据部分越大越好



🥦3.IPv4

现实生活中,A要去好朋友B的家里的话,那么他首先就得知道B的地址,这样才可以找到B


同样道理,两台主机A,B要想进行通信的话,他们应该也要知道对方的地址,这样才能进行连接,然后发送信息,信息沿着链路,然后顺着路由器的转发,直到转发到主机上

所以,应该要知道是在哪一个网络,在哪一台主机,IP地址唯一标识网络上的一台主机或者路由器的接口


我们知道每一台主机的IP地址都不一样,为了进行区分,就得对IP地址进行编码,并不是随便分配的


IP编址的历史阶段


分类的IP地址


子网的划分


构成超网(无分类编址方法)


1.分类的IP地址



①对于主机或者路由器来说,IP地址都是32位的二进制代码


②为了提高可读性,一帮在32位的IP地址中每隔8位就插入一个空格(机器中是没有这样的空格的)


③为了便于书写和记忆,我们通常用等效的十进制数字标识,并且在每一段数字之间加上一个小数点,这就是点分十进制表示法







网段个数指的是它可以分配多少个网络号


私有IP地址,也就是说只能用于私有网络或者专用网络,比如说学校的校园网,办公室的网络






2.网络地址转换NAT




路由器对目的地址是私有IP地址的数据报一律而不进行转发


不过私有的IP地址也是可以和外部网络进行通信的,就比如说,你在机房中也是可以用电脑来看电影的,这就说明和外部互连网进行了通信


那么,这个通信过程是怎么完成的呢


这就是接下来要说的网络地址转换NAT




端口号是用来标识某台主机上的具体应用,比如说IP标识到了是哪一台主机,但是主机上有微信,QQ等程序,通过端口才知道具体和哪个程序进行通信,接下来以主机A和主机B进行通信作为例子



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
10天前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
|
1月前
|
机器学习/深度学习 数据采集 传感器
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
|
2月前
|
数据采集 存储 算法
MyEMS 开源能源管理系统:基于 4G 无线传感网络的能源数据闭环管理方案
MyEMS 是开源能源管理领域的标杆解决方案,采用 Python、Django 与 React 技术栈,具备模块化架构与跨平台兼容性。系统涵盖能源数据治理、设备管理、工单流转与智能控制四大核心功能,结合高精度 4G 无线计量仪表,实现高效数据采集与边缘计算。方案部署灵活、安全性高,助力企业实现能源数字化与碳减排目标。
61 0
|
23天前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
|
2月前
|
监控 安全 Go
使用Go语言构建网络IP层安全防护
在Go语言中构建网络IP层安全防护是一项需求明确的任务,考虑到高性能、并发和跨平台的优势,Go是构建此类安全系统的合适选择。通过紧密遵循上述步骤并结合最佳实践,可以构建一个强大的网络防护系统,以保障数字环境的安全完整。
82 12
|
2月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
78 4
|
3月前
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
10月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
247 11
|
10月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
10月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议

热门文章

最新文章