企业网站开发报价形式,智联招聘企业登录入口,百度域名注册,开设赌场罪 网站开发文章目录IP 协议报文4位版本号4位首部长度8位服务类型16位总长度#xff08;字节数#xff09;8位生存时间#xff08;TTL#xff09;与 8位协议16位首部校验和32位源 IP 地址与32位目标 IP 地址动态分配的 IP 地址NAT 网络地址转换IPv6IP 协议报文 4位版本号 这里的 IP 协…
文章目录IP 协议报文4位版本号4位首部长度8位服务类型16位总长度字节数8位生存时间TTL与 8位协议16位首部校验和32位源 IP 地址与32位目标 IP 地址动态分配的 IP 地址NAT 网络地址转换IPv6IP 协议报文 4位版本号 这里的 IP 协议是 IPV4 协议。V4是版本号的意思 此处的取值只有 4 和 6 当前介绍的是 IPV4 版本的。
4位首部长度 这里描述了 IP 报头多长。IP报头是可变的 报头中有一个选项部分这是可变长的也是可有可无的此处的单位是 4 字节。
8位服务类型 这里说是 8 位实际上只有 4 位有效这 4 位中只有 1 位可以是 1 其他的都是 0 。 4 位 就表示 IP 协议的四种形态四种工作模式 这里的四种形态就好比游戏中的角色根据不同的战斗来改变形态以发挥到最大的战斗力。 四种工作模式 最小延时、最大吞吐、最高可靠性、最小成本
实际开发中的时候就可以根据需要来切换 IP 的模式已达到最优的效果。其实实际上开发中很少真的这样来设定
主要是是因为这些东西是站在技术角度来处理的而实际上技术上的定西一般都比较好解决不好解决的是业务上的东西。 因为性能瓶颈往往是业务带来的。
16位总长度字节数 16 为总长度描述了了一个 IP 数据报的长度。头载荷 这个长度减去前面的 IP 报头长度剩下的就是载荷长度也就是一个完整的 TCP/UDP 数据报长度。 这里的 16 位总长度是不是意味着一个 IP 数据报最大只能支持 64 KB 是不是就相当于快递公司一次只能给你运 64 KG 的快递。
确实是有这个功能的但是 IP 自身就支持对包的 拆分 和 组装。 比如说在网上买了一个书架快递公司会把书架给拆成多个部件等到我收到所有部件后就会把它给组装出来。
一个 IP 数据报携带的数据载荷太长了超过了 64 KB就会在网络层针对数据进行拆分把一个数据拆分成多个 IP 数据报 再分别发送接收方再重新拼装。
8位生存时间TTL与 8位协议 8 位生存空间指的是一个数据报在网络上能够传输的最大时间。
这个时间的单位不是 “秒”而是 “次数”。 一个数据报构造出来会有一个初始的 TTL 数值比如 32 或者 64 或者 128 这个报每次经过一个路由器转发TTL 的值就减一个。
如果一直减到 0 了还没有到达目标此时就认为这个包永远也到不了了就可以丢弃了。
比如说寄快递的时候如果这个收件地址压根不存在呢 8位协议 描述了当前载荷部分内容是属于哪个协议的。
16位首部校验和 此处只需要针对首部进行校验载荷部分TCP/UDP数据报自身已经有校验和了。
如果校验和不一样会直接丢弃 IP 不会负责重传如果上层使用了 TCP TCP 就会在没收到 ACK 之后重传。
32位源 IP 地址与32位目标 IP 地址
此处看到的 IP 地址是 32 位的整数而日常生活中见到的 IP 则是一串数字。
例如日常生活中看到的是192.168.10.10 IP 地址我们期望的是每个设备都是不同的但是 32 位数字只能表示 42亿9千多万个数字。 所以要使用这些数字表示全世界上所有的上网设备。比如智能手机、计算机、路由器…
采取 IPv4 版本是无法表示世界上所有的网络设备的。 为了解决 IP 地址不够用的问题想了很多办法
1、动态分配的 IP 地址
2、NAT 网络地址转换
3、IPV6
动态分配的 IP 地址 动态分配 IP 地址就是在网络设备使用的时候再分配 IP 地址不使用的时候就不分配。 这样不仅提高了 IP 地址的利用率还可以节约有限的资源。
但是这个方案没有从根本上增加 IP 地址只是提高了利用率属于治标不治本。
NAT 网络地址转换 这个方案的本质是使用一个 IP 代表一批设备也是可以提高 IP 地址的利用率只不过要使用端口号来区分不同的设备。 在 NAT 背景下就把所有的 IP 地址分为两个大类
1、内网 IP私有 IP 以 10.* 、172.16.* ~ 172.31.* 、192.168.* 开头的都是属于私网。
例如我的笔记本的 IPV4 地址是 192.168.21.1这就是一个私网 IP。 2、外网 IP 公网 IP除了私网剩下的都是公网。 NAT 要求公网 IP 必须是唯一的而私网 IP 可以在不同的局域网中重复出现。
如果某个私网里的设备想要访问公网的设备就需要对应的 NAT 设备路由器把 IP 地址进行映射从而完成网络访问。 反之公网的设备无法直接访问私网的设备不同的局域网的私网设备无法直接访问相互访问。 举个例子 每个人相当于是一个独立的 IP 地址快递员必须要知道这个人的 IP 地址才能找到这个人。 NAT 技术就是把每个 IP 地址变成一个小区快递员只需要把包裹交给门卫相当于是 NAT 门卫再将包裹交给住户。小区之内就是私网小区之外就是公网。 打开自己电脑的 cmd 键入 ipconfig就可以看到自己电脑的 IP 地址而且这个 IP 地址基本上都是私有 IP。
内网 IP 只要在局域网内部不重复即可而不同局域网中则是允许重复的。 源 IP 地址就是 192.168.21.2目的 IP 就是 1.2.3.4。 我的 IP 数据报经过 NAT运营商路由器设备之后此时就会把我的 源 IP 给改了。
此时源 IP 就是 NAT 设备的 IP61.185.187.142而目的 IP 还是 1.2.3.4。 站在服务器的视角看到的我的电脑的 IP 地址就是这个运营商路由器的地址。 当有其他的电脑接入运营商路由器的时候去访问外部服务器都会被路由器替换成路由器自己的 外网 IP。 因此服务器只能拿到路由器的 IP 不能拿到我的电脑的内网 IP 。 如果我的电脑不主动和服务器联系服务器也就不知道我的端口从而就无法主动找到我的电脑。 只要电脑是经过运营商路由器转发给服务器的服务器看到的源 IP 就都一样。
如果是多个电脑同时访问同一个服务器服务器的响应就会先发给路由器路由器根据这些电脑不同的端口号来区分决定先发给哪个设备。 NAT 机制能够有效地解决 IP 地址不够用的问题但是带来的副作用就是网络环境更加的复杂了。
IPv6 IPV6 从根本上解决了 IP 不够用的问题是使用 16 字节来表示的。
和 IPV4 不同IPV6 的地址长度扩张到了 128 位是前者的 4 倍。 上述图片就是一串 IPV6 的地址。
长度增加后原有的点分十进制也不够用了于是 IPV6 改用十六进制表示。 上述图片就是改用的十六进制表示的。
IPv4 有 43 亿的地址IPv6 的长度是它的 4 倍是不是意味着 IPv6 的地址个数也是它的 4 倍也就是 172 个地址
答案是不是IPv6 的地址空间是 2^128-1IP地址 总数为 3402823… 总之是很多的。 多到可以给地球上的每粒沙子都分配一个 IP 地址。 IPV6 虽然地址个数足够使用但是当前世界上仍然是 NAT IPV4 动态分配 来进行网络组建的 真正使用 IPV6 的地方非常少。 这主要是因为 IPV6 不是 IPV4 协议的升级而是一个全新的协议。 两个协议之间无法兼容如果要使用 IPV6 那全世界的互联网设备都要同步更换硬件设备更换硬件设备需要花更多的资金。