前两天做了几道关于计算机网络的习题,说来惭愧,明明半年多前还在学,现在却忘得差不多了。因此在这里做一下整理,首先从 IP协议开始。

概述

IP协议提供的是不可靠无连接的数据报传送服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。如果出错可以通过ICMP报告,ICMP在IP模块中实现。

协议头格式

字段 描述
4位版本号 指定IP协议的版本, 对于IPv4来说,就是4
4位头部长度 IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节
8位服务类型 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置0). 4位TOS(最小延时, 最大吞吐量, 最高可靠性, 最小成本),只能选其一. ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要
16位总长度 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id是相同的
16位标识 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id是相同的
3位标志字段 第一位保留,第二位置为1表示禁止分片, 这时候如果报文长度超MTU, IP模块就会丢弃报文. 第三位表示”更多分片”, 如果分片了的话, 最后一个分片置为1, 其他是0
13位分片偏移 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置
8位生存时间(TTL) 数据报到达目的地的最大报文跳数
8位协议 表示上层协议的类型
16位头部校验和 使用CRC进行校验, 来鉴别头部是否损坏
32位源地址和32位目标地址 表示发送端和接收端
选项字段 不定长, 最多40字节

网段划分

网段划分将一个IP地址划分为两部分:网络号主机号

  • 网络号:保证相互连接的两个网段具有不同的标识
  • 主机号:在同一个网段内,主机之间有着相同的网络号,但一定会有不同的主机号

如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复。

所以,通过合理设置网络号的主机号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同。
但是,手动管理子网内的IP,是一个相当麻烦的事情。
因此出现了一种叫做DHCP的技术,能够自动给子网内新增主机节点分配IP地址,避免了手动管理IP的不方便。且一般的路由器都带有DHCP功能. 因此路由器也可以看做一个DHCP服务器。

IP地址分类

所有的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

子网划分

我们都知道,IP地址是以网络号和主机号标识网络上的主机的,只有在同一网络号下的主机才可以“直接”互通,不同网络号的主机要通过网关互通。

为了使同一个网络下有多个子网,就产生了子网掩码。

子网掩码

  1. 区分主机号和网络号
  2. 是一个32位的正数,通常以一串“0”来结尾
  3. 将IP地址和子网掩码进行“位与”操作,得到的结果就是网络号
  4. 网络号和主机号的划分与这个IP地址是A类还是B类无关

子网划分实战

某个小型公司有四个部门:行政、研发、营销、售后,每个部门各40台计算机接入公司局域网交换机,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?

  1. 192.168.1.0网段共256个地址,划分4个子网,每个子网需要64个地址(大于等于需求主机数量的最小2的幂次);
  2. 64是2的6次方,子网掩码应该以6个0结尾,剩下的用1补齐,由26个1和6个0组成,转换成十进制是255.255.255.192;
  3. 每个子网共64个IP地址,掐头去尾后可用地址只有62个,第1个子网的可用IP地址范围是:192.168.1.1-62,第2个子网可用IP地址范围是192.168.1.65-126,第1个子网的可用IP地址范围是:192.168.1.129-190,第2个子网可用IP地址范围是192.168.1.193-254;
  4. 该公司各部门计算机按照3中的IP地址范围进行设置,所有计算机的子网掩码都必须设置为255.255.255.192,设置完毕后各部门内的计算机能正常联网,不同部门间的计算机无法直接联通。

特殊的IP地址

  1. 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
  2. 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包
  3. 将IP地址中的主机地址全部设为0, 就是网络号, 代表这个局域网