一:前情概述
通过上一篇文章网络协议(一) – 网络基础TCP/IP大概可以知道的是该模型中将网络数据传输过程划分为四层,应用层处理用户数据、传输层逻辑通信、网络层目标计算机定位连接、链路层数据传输。任何交流的开始理所当然都需要建立连接,本文将涉及到DNS、IP、ARP、子网掩码、MAC等相关知识
二:广播传递
同一个网络线路有许多的计算机连接,所以消息的传递使用广播的方式进行。也就是当你传递给A数据包的时候,B、C计算机也会接收到相同的数据包,接收到数据的计算机会取出数据包中的IP地址与自身IP地址进行比较判断是否为传递给自身的数据包
三:子网筛选
互联网中的计算机成千上万,如果要去对比所有计算机的请求数据包等于爆炸操作。这时候提出子网概念,如果源计算机与目标计算机位于同一子网,则该数据包只会传递给该子网下计算机,若不属于同一子网,则会通过网关传递到对应子网
四:IP地址
首先需要明确IP地址因为IPV4即将耗尽的原因所以提出了IPV6的版本,但是目前大部分还是使用IPV4,所以系列文章都将会使用IPV4进行讲解。IP地址总共占有32位,由以下两个部分组成:
- 网络号部分:位数不定,用于计算子网
- 主机号部分:位数不定
五:子网掩码
IP协议真特么不可靠,网络位数都不一定,怎么根据它计算子网数据?子网掩码应运而生,同样它也是一组32位二进制的整数。它规定网络部分全部用1表示,非网络部分全部用0表示
。 得嘞,有了这个规定那么将其与IP地址做与(and)运算则可以判断目标计算机与源计算机是否属于同一子网
目标计算机的IP地址通常在访问的时候会输入,那么目标计算机的子网掩码怎么确定呢?这个疑惑请看下表,示例如A、B、C三类地址IP的子网掩码:
IP地址 | 范围 | 子网掩码 |
---|---|---|
A类IP | 0.0.0.0 ~ 126.0.0.0 | 255.0.0.0 |
B类IP | 128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 |
C类IP | 192.0.0.0 ~ 223.255.255.255 | 255.255.255.0 |
六:ARP协议
通过IP地址与子网掩码可以计算出子网,也就可以划分请求发送范围。但是如何获取目标计算机MAC地址还是一头雾水?其步骤如下所示:
- 源计算机请求通过网关转发亦或位于同一子网则直接发送到目标计算机所在子网
- 询问MAC地址的数据包中填写的MAC地址为特殊参数,这样用于区分正常数据包与询问MAC地址数据包
- 接收到数据包计算机通过ARP协议取出数据包中目标计算机IP地址与自身IP地址比较
- 若比较IP地址相同则通过ARP协议响应返回MAC地址
七:DNS服务
开发环境调试的时候经常就是http://localhost:8080/service亦或是http://192.168.15.113:8080/service,但是到了测试环境亦或是生产环境的时候都会将其画风变成https://www.baidu.com等等。域名的与IP地址的切换就需要使用到应用层的一个协议DNS,当发起网络请求地址的时候都会向DNS服务发送请求将域名转换为绑定IP地址后再执行后续网络请求操作