计算机网络
网络层
IP数据报格式
注释:
名称 | 注释 | 大小 |
---|---|---|
版本 Version | ipv4或者ipv6 | 4位 |
首部长度 IHL | 此处数值再乘以4才是真正大小,同时因为IP数据报固定长度为20字节,所以此处最小值为5,即二进制的0101 | 4位 |
区分服务 DSCP + ECN | 希望获得哪种服务,用的比较少 | 8位 |
总长度 Total Length | 首部+数据的长度,最大为2^16-1=65535 | 16位 |
标识 Identification | 用来表示是哪一个数据报的分片,不同的分片标识各不相同 | 8位 |
标志 Flags | 用来表示是否分片和分片是否结束 | 3位,但实际有用的只有后两位 |
片偏移 Fragment Offset | 用来标记分片之后,该分片在原来的数据报的位置,以8字节为单位 | 13位 |
生存时间 Time To Live | 即TTL,没经过一个路由器TTL-1,0时自动放弃,根据系统不同默认的TTL不同 | 8位 |
协议 Protocol | 用来标记协议名的字段值,如TCP,UDP,ICMP等等 | 8位 |
首部检验和 Header Checksum | 检验首部的字段是否出错,出错就丢弃此数据报 | |
源地址 Source IP Address | 发送方ip地址 | 32位 |
目的地址 Destination IP Address | 接收方ip地址 | 32位 |
可选字段 Options | 用来排错等安全检测 | 未知,可在0-40位之间 |
填充 | 将数据报对齐成4字节的整数倍,数值全部为0 | 未知,根据可选字段来定 |
网际协议IP
IPv4地址
分类的IP地址
特殊IP地址
私有IP地址
解释:
为什么A类最大是126.xxx.xxx.xxx?
因为网络号最开始第一位是0,一共八位,所以二进制表示位0xxxxxxx,最大就是2^7-1=127,但是因为127.xxx.xxx.xxx是特殊ip地址,所以将其去掉
为什么B类最大是191.255.xxx.xxx?
因为网络号最开始第一位是10,一共八位,所以二进制表示位10xxxxxx,最大就是10111111=191,最小就是10000000=128,无特殊ip地址
为什么C类最大是223.255.xxx.xxx?
因为网络号最开始第一位是110,一共八位,所以二进制表示位110xxxxx,最大就是11011111=223,最小就是10000000=192,无特殊ip地址
点分十进制计法
32/4=8,所以点分十进制之后每部分有8个二进制数字表示,所以最大是255
网络地址转换NAT
网络地址转换NAT (Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
连接内网和外网,就是找个代理的用它的ip地址与外面收发数据
所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接
划分子网和构造超网
划分子网
分类的IP地址的弱点
- lP地址空间的利用率有时很低。
- 两级IP地址不够灵活。
子网掩码
主机部分所对应的子网掩码均为0,其余部分对应的部分为1
子网掩码与IP地址逐位相与,就得到子网网络地址。
【例题】
【解析】
子网掩码转为二进制为
11111111.11111111.11111100.00000000
,IP地址与其相与得该主机所在的子网号180.80.76.0
,因为为广播分组,只需让主机位全为1即可,所以结果为180.80.79.255
,为D项
无分类编址CIDR
构造超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
最长前缀匹配
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小路由越具体。
【例题】
【解析】
子网掩码转为二进制为
11111111.11111111.11111111.11111000
,前五位是作为子网号的,后三位是作为主机号的。最大子网个数即为$$2^5$$,最大可分配地址个数为$$2^3-2$$(去掉全0和全1的),选B
IPv6
IPv6地址表示形式
IPv6数据报格式
名称 | 作用 | 位数 |
---|---|---|
版本 Version | 知名协议版本,此处因为是ipv6所以总是6 | 4位 |
优先级 Traffic Class | 又来区分数据报的类型和优先级 | 8位 |
流标签 Flow Label | 和ipv4标识某个数据报分片不同,这是对于一整个数据报流的标记 | 19位 |
有效载荷长度 Payload Length | 指的是扩展首部+数据部分的大小,和ipv4的总长度和首部长度都不同,ipv6的首部长度是固定的40字节 | 16位 |
下一个首部 Next Header | 基本首部的下一个首部指的是有效载荷里标记的的扩展首部,有效载荷里的扩展首部再指向有效载荷里标记的的扩展首部,直至最后指向数据 | 8位 |
跳数限制 Hop Limit | 基本相当于ipv4当中的TTL,每到一个路由器-1.减到0时丢弃 | 7位 |
源地址 Source Address | 发送方ipv6地址 | 128位 |
目标地址 Destination Address | 接收方ipv6地址 | 128位 |
IPv4和IPv6的区别
IPv4向IPv6的过渡
- 感谢你赐予我前进的力量