[计算机网络]IP协议( 二 )


分片缺点:增加了丢包的概率 。当发生丢包时,对端的网络层会将整个报文全部丢弃,这样主端才会重新传送数据 。
一般而言,为了减少分片,TCP会控制自己单个报文的大小 。
2.网段划分 2.1IP分类
前面讲过,IP地址分为两个部分, 网络号和主机号 。
网络号: 保证相互连接的两个网段具有不同的标识 。
主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号 。
通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同 。但是手动管理子网内的IP是一个很复杂的过程 。
所以就有一种技术叫做DHCP, 能够自动的给子网内新增主机节点分配IP地址, 避免了手动管理IP的不便. 一般的路由器都带有DHCP功能. 因此路由器也可以看做一个DHCP服务器 。
过去曾经提出一种划分网络号和主机号的方案, 把所有IP 地址分为以下五类 。
A类 0.0.0.0到127.255.255.255
B类 128.0.0.0到191.255.255.255
C类 192.0.0.0到223.255.255.255
D类 224.0.0.0到239.255.255.255
E类 240.0.0.0到247.255.255.255
随着互联网的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, 而A类却浪费了大量地址 。
针对这种情况提出了新的划分方案, 称为CIDR() 。
引入一个额外的子网掩码( mask)来区分网络号和主机号 。
子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾 。
将IP地址和子网掩码进行 "按位与"操作, 得到的结果就是网络号 。
网络号和主机号的划分与这个IP地址是A类、B类还是C类无关 。
IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高24位是1,也就是255.255.255.0,即
11。
来看个例子:
IP:192.168.50.10
子网掩码为255.255.192.0
请写出它的CIDR表示方法
观察给定的子网掩码发现前两个都是255,所以都是全1,第三192转换为二进制为 。

... 子网掩码
... IP地址
通过这些我们可以知道192.168就是网络号,50.10就是主机号 。
子网掩码CIDR写法192.168.0.0/18 。
子网地址范围:
192.168.0.0~192.168.63.255
2.2特殊的IP地址2.3私有IP地址和公网IP地址
如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到上,理论上 使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址 。
公网IP是唯一的不能重复的,而私有IP是可以重复的,因为私有IP是在一个局域网内有效,不同的局域网可以有相同的私有IP 。
举个例子,当你想访问王者荣耀
【[计算机网络]IP协议】当你将请求送达王者荣耀服务器时,服务器会给你一个响应,这时就出问题了,当服务器给你响应时发现src这套IP有很多一样的,不知道发给谁,因为src是用户的私有IP,不具有唯一性 。所以正确的请求过程应该是这样的 。
传输过程不断把源IP替换成WAN口IP,这种技术被称为NAT 。
2.4路由
路由的过程, 就是这样一跳一跳(Hop by Hop) “问路” 的过程 。
所谓 “一跳” 就是数据链路层中的一个区间 。具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间 。
如果要发送的数据包的目的地址是192.168.56.3
跟第一行的子网掩码做与运算得到192.168.56.0,与第一行的目的网络地址不符再跟第二行的子网掩码做与运算得 到192.168.56.0,正是第二行的目的网络地址,因此从eth1接口发送出去 。由于192.168.56.0/24正是与eth1接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转