🌈个人主页:努力学编程’
⛅个人推荐:
c语言从初阶到进阶
JavaEE详解
数据结构
⚡学好数据结构,刷题刻不容缓:点击一起刷题
🌙心灵鸡汤:总有人要赢,为什么不能是我呢
🐴🐴🐴地址管理
🐎🐎🐎网段划分
- 不同的子网的作用就是将网络相同的主机放到一起.
- 如果在子网中新增一个主机,则这台主机的网络号必须和子网中的网络号一致,但是主机号必须和子网中的主机号不同,我们就可以通过合理的设置网络号和主机号来构成唯一的IP地址.
🐎🐎🐎特殊的IP地址
- 将IP地址中的所有的主机地址全部设置为零,就成了网络号,代表这个局域网.
- 将IP地址中的主机号全部设置为1,就成了广播地址,用于给同一个链路中互相连接的所有主机发送数据报.
- 127.*的IP地址用于本机回环(loop back)测试,通常我们使用的是127.0.0.1
🐎🐎🐎IP地址的数量
按照这样的逻辑,我们就只有43亿台主机能接入网络吗?
- 动态分配IP地址: 当设备接入网络的时候,我们才给他分配IP地址,因此同一个MAC地址的设备,每次接入互联网中,都是有多个IP地址.
- NAT地址:这个点比较重要,我们后面着重来讲.
- IPv6:IPv6相对于IPv4来说极大的扩大了IP的数量,16个字节,128位来表示一个IP地址,使用IPv6就不用在考虑IP不够用的情况,因为它的数量足以给地球中的每一粒沙子分配一个IP,而计算机的主要硬件材料是硅,而硅就是用沙子做的,所以IP的数量是一定够的,由于它的IPv4是不兼容的,所以IPv6现在还没有大量普及.
🐎🐎🐎私有IP地址和公网IP地址
🐎🐎🐎路由选择:
我们知道在真实的网络通信中,线路是非常复杂的,那么我们在网络通信的时候,到底是如何选择通信的线路的呢?
这里的过程就类似于 “跳一跳” 即 “问路” 的过程.
IP数据包的传输过程就类似于问路的过程.
- 当IP数据包,到达路由器之后,路由器会先查看其目的IP;
- 如果目的IP可以到达,直接将数据发送给目的IP.否则发送给另一个路由器
- 重复这个过程,直到到达IP地址.
注意:
网络中,路由器的寻找,是不能直接寻找最优解的,我们只能找到所谓的 “较优解” 因为一台路由器是无法知道整个网络的结构的,它只能直到它附近的路由器的信息,所以我们寻找 “最优解” 的这个过程是启发式的,试探性的,逐渐知道最终的目标.
🐎🐎🐎数据链路层
对于数据链路层,就越来越接近底层了,离程序员越来越远了,这里着重关注一下其中的以太网协议就好,以太这个概念本身是物理上面的概念,用来描述光在真空中传播的一种介质,但是后面证明这个概念是不存在的,我们计算机就把这个概念拿来用了.
以太网横跨数据链路层和物理层,平时我们使用的有线网络就是以太网.
MAC的用处:
我们上面针对以太网数据帧可以了解到其最大长度是1500字节,此处的1500也称为MTU(和硬件相关联的)针对不同的数据链路层协议,对应的MTU是不同的.
我们在发数据的时候,先根据目的IP,确定接下来往哪里走,直到下一跳的IP(查路由表),然后根据下一跳的IP,查转发表,直到IP对应的 MAC / 端口是哪个.