前两天做了几道关于计算机网络的习题,说来惭愧,明明半年多前还在学,现在却忘得差不多了。因此在这里做一下整理,首先从 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地址是以网络号和主机号标识网络上的主机的,只有在同一网络号下的主机才可以“直接”互通,不同网络号的主机要通过网关互通。
为了使同一个网络下有多个子网,就产生了子网掩码。
子网掩码
- 区分主机号和网络号
- 是一个32位的正数,通常以一串“0”来结尾
- 将IP地址和子网掩码进行“位与”操作,得到的结果就是网络号
- 网络号和主机号的划分与这个IP地址是A类还是B类无关
子网划分实战
某个小型公司有四个部门:行政、研发、营销、售后,每个部门各40台计算机接入公司局域网交换机,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?
- 192.168.1.0网段共256个地址,划分4个子网,每个子网需要64个地址(大于等于需求主机数量的最小2的幂次);
- 64是2的6次方,子网掩码应该以6个0结尾,剩下的用1补齐,由26个1和6个0组成,转换成十进制是255.255.255.192;
- 每个子网共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;
- 该公司各部门计算机按照3中的IP地址范围进行设置,所有计算机的子网掩码都必须设置为255.255.255.192,设置完毕后各部门内的计算机能正常联网,不同部门间的计算机无法直接联通。
特殊的IP地址
- 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
- 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包
- 将IP地址中的主机地址全部设为0, 就是网络号, 代表这个局域网