网络基础网络层--IP协议
网络基础网络层--IP协议
- 一、IP协议解析
- (一)4位版本
- (二)4位报头长度
- (三)8位服务类型
- (四)16位数据报长度
- (五)16位分片标识
- (六)3位分片标志
- (七)13位分片偏移
- (八)8位TTL
- (九)8位传输层协议
- (十)16位校验和
- (十一)32位源端-对端IP地址
- (十二) 0-40字节选项数据
- 二、地址管理与路由选择
- (一)IP地址
- (二)IP地址组成
- (三)网络号—俗称“网段”的管理
- 1.A类网络
- 2.B类网络
- 3.C类网络
- 4.D/E类网络:特殊网络
- (四)子网掩码
- 1.子网掩码明确限制了一个网络中的主机号个数
- 2.子网掩码与IP地址相与,可以得到当前IP地址所属的网络号
- 3.子网掩码可以用于辨别一个ip地址是否属于某个网络
- (五)特殊IP地址
- (1)0.0.0.0
- (2)255.255.255.255
- (3)127.0.0.1
- (六)NAT/NAPT—网络地址转换技术
- (七)路由选择
一、IP协议解析
(一)4位版本
用于标识版本协议 4-ipv4。
(二)4位报头长度
以4字节为单位,ip报头最小20最大60字节。
(三)8位服务类型
3位优先权弃用,4位类型,1位保留。
(四)16位数据报长度
限制一个IP报文必须小于64k。
- 一个tcp报文数据最大长度必须小于64k-40;
- 一个ucp报文数据最大长度必须小于64k-28。
(五)16位分片标识
用于分片重组时,识别当前分片属于哪个原始报文,相同的原始报文的分片具有相同的分片标识。
链路层MTU:最大传输单元,限制了一个数据帧在网络中的最大传输大小。
如果一个报文长度处于网络层允许,但是MTU不允许,MTU<IP报文大小<64k;
则这个包在网络层就会被分片,就指的是,将一个大的报文分割成多个小的报文–分片,
每个分片封装一个IP报头进行传输,
这些分片在对端主机上会进行分片重组,重组为原始的报文向上层交付。
既然要在对端进行分片重组,那么哪个分片属于哪个原始报文呢?又在原始报文什么位置呢?
(答:分片标识的作用)
(六)3位分片标志
1位保留,1位禁止分片标志,1位分片结尾标志。
(七)13位分片偏移
标识了当前分片在原始报文中的位置,是以8字节为单位的。如果数据是1,则偏移量实际上是第8字节处。
为什么要以8字节为单位?
13个比特位表示最大大小为8192,而一个原始报文最大大小为64k,以8字节为单位才能完整表示
( 2^10=1024, 2^3 = 8192 * 8 = 64k )*
因此实际上每个分片(除了最后一个)他的分片大小肯定都是8的整数倍。
(八)8位TTL
报文在网络上的生命周期,最大数字是255,表示所能经过的路由器跳数。(每经过一个路由器就会-1)
(九)8位传输层协议
数据到达对端会进行数据分用,也就是选择一个传输层协议进行数据解析,封装时的上层协议类型。
(十)16位校验和
校验数据一致性。
(十一)32位源端-对端IP地址
用于描述通信的两端主机。
(十二) 0-40字节选项数据
比如路由跟踪时候记录的路由信息…
二、地址管理与路由选择
(一)IP地址
用于在网络中唯一标识一台主机。
ipv4:uint32_t类型,IP地址大致有42亿9千多万,IP地址实际上不够用,
DHCP动态地址分配-谁上网给谁分配地址
问题:如何分配地址才能保证网络上IP地址不重复呢?
答:
分网络进行地址管理,一个网络中的主机能够被分配到的IP地址都会具有这个网络的标识—网络号,
这时候只要每个网络的网络号不同,则可以将网络地址管理简单化了。
(二)IP地址组成
网络号+主机号
- 网络号:是一个网络的标识,一个网络分配的IP地址都具有相同的网络号。
- 主机号:是一台主机在当前网络中的标识。
(三)网络号—俗称“网段”的管理
早期的网络划分方式:将所有的IP地址分为了五大类:
1.A类网络
高1位固定是0;7位网络号;24位主机号;
用于组建超大型网络–一个网络中具有1600w+主机号。
A类网络网络号范围:0~127,
其中IP地址范围:0.0.0.0~127.255.255.255,总共有128个A类网络。
其中每个网络中具有255×255×255个主机号;例如0号网络的IP地址:0.0.0.0~0.255.255.255。
2.B类网络
高2位固定10;14位网络号;16位主机号;
用于组建中型网络–一个网络中具有64k个主机号。
B类网络网络号范围:128.0~191.255,
其中IP地址范围:128.0.0.0~191.255.255.255,共有1w+B类网络。
其中每个网络中具有255×255个主机号,例如128.0网络的IP地址:128.0.0.0~128.0.255.255。
3.C类网络
高3位固定110;21位网络号;8位主机号;
用于组建小型网络-一个网络中具有256个主机号。
C类网络网络号范围:192.0.0~223.255.255;
其中IP地址范围:192.0.0.0~223.255.255.255。
其中每个网络中具有256个主机号,例如192.0.0网络IP地址范围:192.0.0.0~192.0.0.255。
以下地址哪个是C类地址:
(1)23.244.23.24 (2)156.23.23.23 (3)193.23.23.23 (4)191.24.24.24
4.D/E类网络:特殊网络
(四)子网掩码
这种早期网络划分方式,比较粗糙,A类地址浪费较多。
而当前使用的划分方式,是在早期基础上,
引入了一个新的字段-【子网掩码】进行网络划分—CIDR方案:
子网掩码: uint32_t类型的数据,不过其中的数据由连续二进制1组成
1.子网掩码明确限制了一个网络中的主机号个数
子网掩码取反得到的数据就是一个子网中最大的主机号max,那么子网的主机号范围就是0~max。
2.子网掩码与IP地址相与,可以得到当前IP地址所属的网络号
例如:
3.子网掩码可以用于辨别一个ip地址是否属于某个网络
例如:一个公司申请了一个C类网络192.168.2.0/24,公司有4个部门,这时候要将网络平均划分4个子网,请问,每个子网的主机号范围,以及网络号,以及子网掩码是多少?
(五)特殊IP地址
一个子网中有两个地址是不能分配给主机的:
(1)主机号全为0的地址:
实际上就是网络号,是网络的标识
(2)主机号全为1的地址:
局域网的广播地址,UDP相较于TCP多一个功能-局域网广播,将数据发送给局域网广播地址,
则表示将数据发送给了局域网中的所有主机。
(1)0.0.0.0
用于识别本机上的所有IP地址,或者说任意IP地址,通常用于服务器的绑定监听地址。
(2)255.255.255.255
全网广播地址,用于dhcp请求的时候目标主机地址。
一个主机连接到一个网路,向路由器发送dhcp请求,要求路由器给自己分配地址,网络通信,
必须知道目标端IP地址,而这个新连接主机要如何知道路由器的地址呢?
设为全网广播地址!!!
(3)127.0.0.1
其实127网段都是用于本地回环,其中127.0.0.1是最为典型的虚拟回环网卡地址。
用于实现本地网络回环测试。
(六)NAT/NAPT—网络地址转换技术
在地址管理中,光dhcp动态分配是不够的,IP地址还是不够分,因此还有一个非常重要的管理方式:
NAT/NAPT:网络地址转换技术
用于组建私网,对于私网中向外通信的数据,将其源端私网IP地址进行地址替换,替换为对外的公网IP地址。
使用NAT/NAPT方式组建私网,对流经网关的数据进行源端地址替换,替换为对外地址,
这样的话私网中的很多主机实际上就只用了一个对外的IP地址在上网。
私网主机的请求数据,出去的时候都被转换为对外地址了,
这种情况**,不同的私网内的主机IP地址是可以重复的,**
因为数据出去时被转换的地址和端口是不会重复的。
这样也会造成一个问题:私网间的主机是无法直接通信的。
私网内的主机实际上对外是不可见的(因为外部看到的是转换后对外的地址),
但是这样从侧面加强了私网的网络保护。
要求:私网IP地址虽然不同私网可以重复使用,但是不能与公网IP地址冲突。
RFC1918文档规定:用于组建私网,只能用以下IP地址:
- 10...* :1个大型私网网段
- 172.16..~172.31.. :16个中型私网网段
- 192.168.. :256个小型私网网段,用于组建私网
私网:我们自己所搭建的一个内部的私有网络。
公网:也叫外网,就是我们通常所说的上网的互联网。
(七)路由选择
一条数据,要到达对端主机需要经过很多路由器的转发,但是网络是一个非常复杂的星型结构,
因此一条数据如何转发能够最快到达对端。
在每一台节点设备上都有一样东西—路由表
一个路由器拿到一个数据后,会取出目标IP地址,然后在自己所有的路由表中进行查看,
逐个与每个路由表中的网络信息进行比对:
- 与对应网络子网掩码相与;
- 拿相与结果与对应网络的网络号相比;
(1)一样则数据目标主机属于此网络;
(2)不一样则对比下一个路由选项; - 若所有路由表项都没有;
- 则将数据转发给自己的网关设备。
互联网上的路由器,通常不仅仅包含有自己相连的网络的路由信息,
实际上有很多层网络的路由表信息, 因为网络上路由器会多层广播自己的路由表。
不同的私网地址和网络号可以重复使用,但是相邻的私网之间,不能具有相同的网络号。
比如路由器组建的私网,与自己所在的私网网络号相同,会造成路由器的路由表中信息冲突。
网络基础网络层--IP协议相关推荐
- 网络基础 TCP/IP协议面试常问知识点
网络基础 TCP/IP协议面试常问知识点 ****************** 如有侵权请提示删除 ********************* 1.网络包的组成: 报头/起始帧分界符--MAC头部-- ...
- 网络:网络层IP协议
目录 一.IP协议 1. IP数据报 1.1 IP首部 2.IP协议的转发 2.1 路由表 2.2 IP协议转发流程 3.子网划分 3.1 分类的IP地址 3.2 划分子网的基本思想 3.3 子网掩码 ...
- (chap1 web网络基础) TCP/IP协议层
1. HTTP( HyperText Transfer Protocol) 超文本传输协议 2. TCP/IP协议层 应用层 应用层决定了向用户提供应用服务时通信的活动. TCP/P协议族内预存了各类 ...
- 网络编程--TCP/IP协议(一)
目录 前言 一丶网络基础 <1>认识IP地址 1>具体格式 2>组成 3>分类 4>子网掩码 <2>认识MAC地址 二丶网络设备及相关技术 <1& ...
- TCP/IP网络协议栈:IP协议
<TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...
- 网络基础应用层--HTTP协议
网络基础应用层--HTTP协议 一.应用层协议 (一)应用层协议概念 (二)自定义协议概念 (三)数据格式如何定义最优 (四)结构体的二进制序列化 二.HTTP协议 (一)HTTP协议 1.请求-响应 ...
- 计算机网络子网的特定主机地址,网络基础之IP地址和子网掩码
原标题:网络基础之IP地址和子网掩码 今天来看下IP地址和子网掩码. 子网掩码是每个网络工程师必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置.下边我们一起来复习复习. 一.IP ...
- 网络基础 之SSL协议
网络基础 之SSL协议 一.SSL 协议简介 SSL 的功能 SSL 的特性 SSL 在协议栈的位置 SSL 体系结构 二.SSL 协议工作原理 SSL协议可分为两层 SSL 的两个重要概念 SSL握 ...
- Java中的网络和TCP/IP协议
网络和TCP/IP协议 一.网络通信协议 1.1 协议和七层模型 1.2 TCP/IP协议 二.网络通信的实现 2.1 TCP协议通信 2.2 UDP协议通信 前言: 有时候我们会不理解,我们在QQ上 ...
最新文章
- XenServer中Fast Copy与Full Copy的区别
- 前端工程师的修真秘籍(css、javascript和其它)
- MySQL的转义字符“\”
- 你真的了解Scrum吗?
- windows下apk查看工具的原理
- 探索java世界中的日志奥秘
- 模拟电子技术不挂科学习笔记1(半导体基础、二极管)
- MySQL高级知识(十六)——小表驱动大表
- Unity 叉乘 vector3 四元数 和声音组件
- [转]RTH试用手记之“额外功能”
- ajax清除session,跳出iframe框架页面后跳转页面
- 数据结构中的数学公式
- 传统3D游戏引擎的Web化
- unity5.6.5_5.6现在可用并完成了Unity 5周期
- 激光中心线算法MATLAB仿真
- 网站备案和域名实名认证的重要性
- 禁用win10笔记本键盘
- Python 一个漂亮的音乐节奏可视化方案
- 下载文件、根据链接生成二维码
- Mac电脑的强大压缩工具——FastZip,加密压缩。