如:假设 你上高中时,班里有个同学叫张三,他的老爹是学校的校长
你感觉每次考试都有考100分的能力
有能力并不意味着百分百一定能做到
有能力指的是有较大概率
若想让张三每次考试 都是 百分百 满分
考了几次,其中有一次考了99,不是满分,张三就去找他老爹,他老爹不满意张三没有考满分
所以跟张三说,单独给你考,直到考到满分
因为他老爹认为张三有很大概率考到满分,所以每次就要保证百分百考到满分
张三与校长父亲组合起来,就能保证每次考试都能考满分
真正参与考试的是张三
校长父亲进行了考试控制,为张三考试提供了策略
IP协议提供一种能力,将数据从主机A 跨网络 送到主机B的能力
IP协议提供的是有较大概率
但是 用户要的百分百能够做到
所以就需要 TCP 和 IP 组合
TCP可以看作是 校长父亲 ,提供传输策略
IP可以看作是 张三,提供真正进行转发报文时的执行
TCP将报文将给IP,IP若出现丢包的情况,则TCP就会重新向上交付
TCP 和 IP 组合 表示 将数据 从主机A 可靠的跨网络 送到主机B
如:你要去北京玩,但实际上是去北京的天安门广场 去玩
当你在长春,你可以说去北京玩,但当你到达北京后,就要确认去天安门广场
所以一般要说去哪里玩时,应该先到景点所在的城市,然后再到达景点
IP地址 等于 目标网络 加 目标主机
IP中存在 20位的标准长度
存在 4位首部长度, 表示 整个报头的长度
4位首部长度 的基本单位是4字节
提取报文的前20个字节(前20个字节一定是标准报头)
在提取首部长度字段
根据首部长度字段* 4 减去20字节
若为0,说明没有选项,报文就是标准报头,直接读取有效载荷即可
若不为0,剩下几个字节,就说明有几个字节的选项,整个报文长度 减去 标准报头以及 选项长度
即可获得 有效载荷
8位协议 表示 有效载荷是什么报文 即有效载荷向哪一个协议交付
IP协议报头中存在4位版本,一般表示为IPV4(以4字节 32个比特位 表示 IP地址用来标识全球唯一的互联网主机)
如:张三要去考试, 校长父亲要求考满分,同时张三向他父亲询问 这次考试是想卷面最整齐,还是第一个交卷
IP是给TCP提供服务的,当TCP要IP把数据发送时,IP询问TCP 是向尽快把数据交付,还是发送数据时,挑一条不会丢包的路径
提供什么样的服务类型
8位服务类型 对应不同种类的IP的传送策略
其中3位优先权字段被弃用,4位服务类型(TOS)字段 和 1位保留字段(必须置为0)
4位服务类型 分别表示: 最小延时、最大吞吐量、最高可靠性、最小成本
表示 整个报文(报头+有效载荷)的长度
4位首部长度 和 标准20字节长度 可以将一个保文的标准报头和选项分离出
再使用 16位总长度,就可以将报头和有效载荷分离
若将数据从主机B送到主机C,当路由器D发生故障时,导致路由器D并没有把数据交给主机C
使路由器D交给路由器I
路由器I 将数据交给 路由器J,路由器J 将数据交给 路由器H,路由器H 将数据交给 路由器C,
最后路由器C 又将数据交给 路由器D,从而造成环路问题
TTL: 该报文,在转发过程中,最多经历的路由器的次数
每经历一次 路由器 ,TTL就减一
当TTL减到0时,表示报文不能再被转发了,若此时没有到达,则该报文直接被丢弃
有一天,张三在散步,结果捡到一个钱包,里面有一个学生证,但是上面只能看见一串学号
所以张三只知道钱包上面有学号,只能通过学号来寻找丢失钱包的主人
但是一个人一个人去找效率太低了
钱包上的学号具有唯一标识,一个人一人去问学号,就是在遍历学校的所有人
但一次排除一个人,所以导致效率低下
张三就可以看作报文 ,钱包为目的IP地址,丢失钱包的人可以看作 目标主机
若报文将数据交给目标主机,若在全网中根据目的IP地址一个一个去问,效率也会非常低下
每一个学院都有自己的群,而每一个学院都有自己的院学生会主席,这些院学生会主席之间也有一个群
张三属于计算机学院的学生,计算机学院的编号为10,他属于该学院的210,他的学号为10210
全校没有任何一个同学的学号是一样的
假设捡到的钱包的学号为 12003
张三不打算自己找了,就拍了张照片,并发到计算机学院的群里
计算机院的学生会主席了解每个学号前的数字表示那个学院的,所以就发现丢失钱包的人为化工学院
就把照片 转发到 学生会主席群里,通知对应的化工的学生会主席
此时化工的学生会主席发现就是他们院的同学丢的,就把照片转发到了化工院的群里,通知003号同学
在这个过程中,归还的效率提高了,因为这次不是以个人来寻找的,而是以群为单位来寻找的
查找的本质是排除的过程,选择一个群,就是排除了其他的所有群,查找效率大大提高了
学号 可以看作 IP地址
群 可以看作 子网,院学生会主席 可以看作 路由器
学生会主席群 可以看作公网,丢失钱包的人 可以看作 目标主机
先找到目标子网(群),再找到目标主机
为了 跨网络 更高效的把数据从一台主机送到另一台主机,所以要进行 子网划分 (每个学院都有自己的群)
IP地址 等于 目标网络 加 目标主机
IP地址的构成是子网划分的结果,是为了提高一台主机查找到另一台主机的效率
(因为要在学校里快速的能够进行消息的通知,就需要把每个院都有自己的群,为了更好管理,就要带上学号)
IP地址被分为两部分
网络号:保证相互连接的两个网段具有不同的标识
(每一个学院,院号之间彼此之间不能一样,用院号区分不同的学院)
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
(张三、王五是同学,大家都在计算机学院内,但是学号是不同的)
根据IP地址,把整个IP地址划分成了五类
由于只有A类的第一个比特位为0,证明是A类
A类网络 最多有 2 ^ 7个网络,每个网络中会有2 ^ 24个主机
B类网络的第一个比特位为1,证明不是A类,第二个比特位为0,证明是B类
B类网络最多有 2 ^ 14个网络,每一个网络中有2 ^ 16个主机
C类网络的第一个比特位为1,证明不是A类,第二个比特位为1,证明不是B类,第三个比特位为0,证明是C类
C类网络最多有 2 ^ 21个网络,每一个网络中有2 ^ 8个主机
若将B类网络申请完了,很难将B类网络中的2 ^ 16个主机用完,并且别人也用不了,就会浪费掉
所以就在原有方案的基础上,提出了新的改良方案,称为 CIDR
引入一个额外的子网掩码用于区分网络号和主机号
子网掩码是一个32位的正整数,通常用一串"0"来结尾(左边都是1,右边都是0)
将IP地址与子网掩码 进行 按位与 操作,得到的结果就是网络号
网络号和主机号的划分与这个IP地址是A类、B类还是C类无关
IP地址只有2^32个,所以IP地址是有限的
为了更好理解,所以使用国家为单位划分IP
各个国家的前8位IP地址是不同的
每一个国家都有自己的国际路由器
每个国际路由器会有配置自己直连的国家网络对应的网络号
如:中国 的国际路由器会有配置自己直连的中国网络对应的网络号
为了能够称为全球互联网,所以将大家的国际路由器接入到同一个网络里,称为公网,由全球运营商共同搭建起来的
中国有很多省,其中以吉林省、辽宁省、黑龙江省为例
IP地址前8位表示国家 ,再取6位表示主机,共有32位,后面以 . 代表0
每个省之间都有跨省路由器,搭建公网,由国内运营商构建起来的
以吉林省举例,包含 长春市 吉林市,两者分别有自己的IP地址,并搭建公网
假设长春市有一家互联网公司,对外提供了一个网络服务,美国人想要访问
所以长春的这家公司就要有自己对外的IP地址
将1进制的2位看作1位,就是1字节 即 2.4.4.0/18 (长春市的网络号)
假设长春的这家公司的IP地址 为 2.4.4.23 (属于长春市其中的一家公司,所以有对应的主机号23)
若有个美国人想要访问长春这家公司对应的服务,美国人认为他们国家对应的网络开头为1…
由于2.4.4.23并不是美国的IP,所以就将该IP通过美国的路由器 交付给公网上
通过公网,转发到中国的路由器处
将2.4.4.23与 中国的子网掩码 0000 0010 按位与 得到网络号 2.0.0.0,证明是中国的
将2.4.4.23与吉林省的子网掩码 按位与 得到网络号是 2.4.0.0 ,而吉林省是2.4开头的, 证明是吉林省的
将2.4.4.23与长春市的子网掩码 按位与 得到网络号是 2.4.4.0 ,而长春市是2.4.4开头的,证明是长春市的