1)4位版本号,用来表示IP协议的版本. 现有的 IP 协议只有两个版本,IPv4, IPv6
2)4位首部长度.设定和 tcp一样.
IP 报头可变长的.
IP报头又是带有选项的.
3)8位服务类型.(真正只有4位才有效果)
类似于 模式/形态 切换?
其他版本可能只是在实验室中存在,并没有真正大规模商用
四种形态是互斥的,只能切换到一种形态.
4)16位总长度.
IP报头+载荷的长度.
总长度﹣IP 报头长度=>载荷长度=>TCP 报文总长度
TCP 报文总长度﹣TCP报头长度=>TCP载荷长度
这里的16位总长度,确实也涉及到64KB的问题.
但是IP协议,自身支持"拆包组包"机制
这里的64KB只是约束了一个IP 数据报.
如果需要携带比较长的数据的时候,IP 协议会自动的把一个数据报拆成多个数据报。
接收方在进行分用的时候,也会把多个数据报合并成一个数据报
5)16位标识
3 位标志位
13 位片偏移
描述了 整个 IP 数据报拆包组包的过程
当 IP 数据报需要携带比较长的数据的时候就在 IP 协议这一层触发 拆包操作
把一个大包拆成多个小包
多个小的 IP数据报都会带有IP报头,载荷是TCP数据报的几个部分~~16位标识:拆出的这多个包,16位标识是相同的
13 位片偏移:不同的,前一个包片偏移更小,后一个更大.
通过片偏移,就可以区分包的先后顺序,
3 位标志位:其中有一位是不用的.
还有一位,表示是否允许拆包.在这里已经拆了.这一位都是1
下一位,表示"结束标记"标识当前的包是否是最后一个.
这一位为0,表示这是最后一个包了.
6) 8 位生存时间TTL,单位是次,初始情况下TTL会有个数值(32/64/128)。每次经过一个路由器转发,TTL就会﹣1。减到0了就会被丢弃了.
7)8位协议
描述了上层,传输层,使用哪种协议.
8)16位首部校验和
校验数据是否正确的机制.只需要校验首部即可.
载荷部分,要么是TCP要么是UDP,人家自己已经校验过自己了.9) 32 位源地址
32 位目的地址
IP 协议中最最重要的部分.32位源地址表示的范围只有42亿9千万,
1.动态分配ip
一个设备不会一直需要上网,需要上网的时候就分配ip,不需要就先不分配。
这个方法就只能缓解不能解决!
2.NAT机制(网络地址转换)
局域网之间以及与外网的通信
(1)局域网之间的设备进行通信是ok的(局域网内部内网ip都是唯一的)。
(2)A局域网中的设备想和B局域网中的设备进行通信?(当前可能这俩设备之间的IP是相同的)
当前的规则禁止这种情况!要想通信就得有一个带有外网IP的设备进行中转!
(3)局域网内部的设备访问带有外网ip的设备
这个就是通过nat设备(路由器)利用映射表的记忆进行ip替换的过程。
nat的缺点
nat是一个纯软件,缺点也很明显1效率不高;2.繁琐;3.不方便访问局域网内部的设备...
这提高了IP地址的利用率,但并没有从根本上解决ip不够用的问题。
3.IPv6介绍
ipv6和nat诞生时间差不多,nat诞生成功,ipv6举步艰难?
但它的大力研发仍是有必要的
ip地址的组成
组成IP 地址分为两个部分,网络号和主机号网络号 : 标识网段 ,保证相互连接的两个网段具有不同的标识;主机号 : 标识主机 ,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;
子网掩码
IP地址负责网络层转发,
mac地址负责数据链路层转发(用于标识网络设备的硬件物理地址。
它俩被各自独立地设计出来了 。
网络层负责的是整体地转发过程,数据链路层负责的是局部(相邻设备)之间。
mac(6个字节)和ip(4个字节)是不同的,一个主机既有ip又有mac.
mac是六个字节(比nat多很多)——>2^48。
MAC地址(网卡的硬件地址):当前mac都是网卡出厂就被设置好了,每个设备的网卡都有独立的mac地址——>因此mac地址就变成标志身份的一种方式
DNS
平时所见的www.sougo.com等,机器在识别的时候会它转化位ip地址,但是很多主机同时上网,DNS如何解决高的并发量?
开源节流
十几年前,可以出现QQ可以登上去但是浏览器网页打不开的情况,这就和DNS有关了,这个也可以手动设置