# 1. IP协议

# 1.1. IP协议详解

虚拟互连网络

  • [ ] 实际的计算机网络是错综复杂的
  • [ ] 物理设备通过使用IP协议,屏蔽了物理网络之间的差异,无需关注网络细节

IP协议作用:

  • [ ] IP协议使得复杂的实际网络变为一个虚拟互连的网络
  • [ ] IP协议使得网络层可以屏蔽底层细节而专注网络层的数据转发
  • [ ] IP协议解决了在虚拟网络中数据报传输路径的问题

IP协议

  • [ ] 点分十进制表示
  • [ ] 32位,常分为4个8位

IP首部,至少有20个字节的长度(4*5IP首部

  • [ ] 版本
    • [ ] 占4位,当前是IPv4,也有IPv6,通信双方必须使用一致的版本
  • [ ] 首部位长度
    • [ ] 占4位,最大数值为15,表示IP首部长度,单位是“32位字”(4个字节),也就是IP首部最大长度为60字节
  • [ ] 总长度
    • [ ] 占16位,最大数值为65535,表示的是IP数据报总长度(IP首部+IP数据)比MTU高的时候分片
  • [ ] TTL
    • [ ] 占8位,表明IP数据报文在网络中的寿命
    • [ ] 每经过一个设备,TTL减1,当TTL为0时,网络设备必须丢弃该报文。(找不到终点时,避免在网络中无限传输,来消耗带宽)
  • [ ] 协议
    • [ ] 占8位,表明IP数据所携带的具体数据是什么协议的
    • [ ] (如TCP、UDP,还有可能是IP,即在IP数据中放IP)
  • [ ] 首部校验和
    • [ ] 占16位,校验IP首部是否出错

# 1.2. IP协议的转发流程

逐跳(hop-by-hop

  • 一跳一跳,从一个设备跳到下一个设备

路由表

  • [ ] 目的IP地址和下一跳IP地址的对应关系
  • [ ] 计算机和路由器都有路由表

IP协议的转发流程(A=>E=>F):

  • [ ] A查询路由表发现下一跳IP地址为E,将IP数据报交给数据链路层,查询ARP缓存表得到目的Mac地址后,并告知目的Mac地址是E,将数据链路层填充源Mac地址和目的Mac地址E,数据链路层通过物理层将数据发送给E
  • [ ] E的数据链路层接收到数据帧,把帧数据交给网络层,网络层查询路由表,发现下一跳为F,E将IP数据报交给数据链路层,查询APR缓存表得到目的Mac地址后,并且告知目的Mac地址为F,数据链路层填充源Mac地址E和目的Mac地址F,封装成帧,通过物理层将数据发送给F。

转化过程中MAC地址和IP地址的不同:

  • [ ] 数据帧每一跳的Mac地址都在变化
  • [ ] IP数据报每一跳的IP地址始终不变

# 1.3. IP地址的子网划分

# 1.3.1. 分类的IP地址

分类的IP地址

  • [ ] A类地址前面是0,网络号8位,主机号24
  • [ ] B类地址前面是10,网络号16位,主机号16
  • [ ] C类地址前面是110,网络号24位,主机号8
  • [ ] D类地址前面是1110
  • [ ] E类地址前面是1111

判断IP地址类别,并不是死记硬背界限,而是把前八位转为二进制,看前几位和哪一类的规则能匹配上

分类的IP地址

特殊的主机号:

  • [ ] 主机号全为0表示当前网络段,不可分配为特定主机,如1.0.0.0
  • [ ] 主机号全为1表示广播地址向当前网络段所有主机发消息,如1.255.255.255

特殊的网络号:

  • [ ] A类地址网络段全0表示特殊网络
  • [ ] A类地址网络段后7位全1127)表示回环地址
  • [ ] B类地址网络段(128.0)不可使用
  • [ ] C类地址网络段(192.0.0)不可使用

更正: 分类的IP地址

127.0.0.1回环地址

127.0.0.1,通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

# 1.3.2. 划分子网

某公司100名员工,申请哪种网络段?

  • C类地址拥有主机号254个,最节约

如果拥有256名员工,则需要申请B类地址,但极其浪费

划分子网的例子: 划分子网

  • [ ] 减少浪费
  • [ ] 划分子网后,子网掩码能快速判断IP属于哪个网络号

子网掩码

  • [ ] 32位
  • [ ] 由连续的1和连续的0组成
  • [ ] 某一个子网的子网掩码具备网络号位数个连续的1
  • [ ] 作用:能快速判断某IP属于哪个网络号

上一个例子的子网掩码为: 划分子网

  • A类地址子网掩码为255.0.0.0
  • B类地址子网掩码为255.255.0.0
  • C类地址子网掩码为255.255.255.0

子网掩码与IP地址相与可以得到IP地址的网络号,如 193.10.10.129的子网掩码为255.255.255.128,两者相与可以得到193.10.10.128

无分类编地址CIDR  没有ABC类网络号或子网划分  将网络前缀相同的IP地址称为一个CIDR地址块  网络前缀是任意位数的  子网掩码等与前面相同,只是采用了斜线记法,比上面方法常用

斜线记法: 193.10.10.129/25表示它的网络前缀有25位,主机号则为7位

划分子网

# 1.4. 网络地址转换nat技术

产生背景:

  • [ ] IPv4最多只要40+亿个IP地址
  • [ ] 不够用

分类:

  • [ ] 内网地址:内部机构使用,避免与外网地址重复
  • [ ] 外网地址:全球范围使用,全球公网唯一

三类内网地址

  • [ ] 10.0.0.0 ~ 10.255.255.255(支持千万数量级设备)
  • [ ] 172.16.0.0 ~ 172.31.255.255(支持百万数量级设备)
  • [ ] 192.168.0.0~192.168.255.255(支持万数量级设备)

内部多个设备使用同一个外网IP请求外网的服务,外部怎么知道具体是哪一个设备在请求的?

# 1.4.1. 网络地址转换NAT(Network Address Translation

  • [ ] NAT技术用于多个主机通过一个公有IP访问互联网的私有网络中
  • [ ] 减缓了IP地址的消耗,但增加了网络通信的复杂度

过程:

  • [ ] 发生在本地路由器,把本地端口号换成对外端口号进行通信,收到数据的时候把外网端口换成内网端口,关键是内网中每个端口不同

NA(P)TNA(P)T表