网络原理(一)网络基础,包括IP ,网络相关的定义

网络基础,包括IP ,网络相关的定义

网络基础

以下图片是书上的网图。

什么是IP地址?

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。P地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

格式:通常是一个32位的二进制数,被分割成4个8位二进制

IP地址分为两个部分,网络号和主机号

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识;
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号

这个因为时代问题,现在大部分存在的IP地址通常都是 IPv4 ,使得所有的IP地址会有用完的一天。此时就有可能出现IP不够用的一天,并且在中美问题出现问题的今天,IP地址的分配是有美国进行全球分配的,对于国防和网络安全存在隐患,所以经过国家统一调度,使得国内的设备现在支持两种 IP 方式,也就是 IPv6 和 IPv4,目前国内还在沿用 IPv4 ,但是遇到 特殊状况,就可以随时启动 IPv6 ,规避风险。

在上述分类中:存在 IP 地址浪费的问题:

  1. 单位一般会申请B类网络(C类连接主机数量有限),但实际网络架设时,连接的主机数量又常远

    小于65534(B类连接主机数),造成IP地址浪费;同理,A类网络的IP地址也会造成大量的浪费。

  2. 当一个单位申请了一个网络号。他想将该网络能表示的IP地址再分给它下属的几个小单位时,如果

    在申请新的网络就会造成浪费。

而为了解决子网掩码的问题,引入了子网掩码来进行子网划分。

什么是子网掩码?

子网掩码格式和IP地址一样,也是一个32位的二进制数。

  • 其中左边是网络位,用二进制数字"1"表示,1的数目等于网络位的长度
  • 右边是主机位,用二进制数字"0"表示,0的数目等于主机位的长度

作用:

划分A,B,C三类 IP 地址子网

如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。假设使用子网掩码255.255.128.0(即17) 来划分子网,意味着划分子网后,高 17 位都是网络位 / 网络号,也就是将原来16位主机号,划分为1位子网号+15位主机号。

IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识(划分子网后的网络号 / 网段)

  • 网络通信时,子网掩码结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段。

计算方式:

  • 将 IP 地址和子网掩码进行"按位与"操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。
  • 将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。

特殊的 IP 地址

主机号微 0 的 ip ,192.168.0.0 就是网络好,局域网里不应该存在某个主机,主机号微 0

主机号全为 1 的IP ,广播地址,往这个地址发送UDP 数据包,此时的数据包就会发给整个局域网中的所有主机(TCP不支持广播)

IP 为 127开头,127.* 称之为环回 ip,这个 ip,走的是虚拟网卡,没有IO操作,纯内存操作,所以要比一般IP要快

冲突域

在解释冲突域和一下的问题时首先要明白,路由和MAC以及交换机的作用,这个在我的 Java 网络编程中有体现。

什么是冲突域?

主机之间通过网络设备(集线器、交换机)的物理端口、网线相连时,两个主机在同一时刻同时发送数

据报,如果存在冲突,则该网络范围为一个冲突域(Collision Domain)

冲突域是基于第一层物理层,又称为碰撞域。

  • 集线器接收到数据报后,是将数据报简单的复制、转发到其他所有端口,如果有两个数据报要同时转发,就会出现冲突。整个集线器,即集线器的所有端口为一个冲突域。
  • 交换机接收到数据报后,是将数据报转发到对应的一个端口:两个数据报同时转发到不同端口不存在冲突,但同时转发到一个端口就出现冲突。即交换机可以分割冲突域,分割后,一个端口为一个冲突域。

广播域

什么是广播域?

广播域基于第二层数据链路层。

广播是指某个网络中的主机同时向网络中其它所有主机发送数据(IP、MAC地址设置为广播地址),这个数据所能传播到的范围即为广播域(Broadcast Domain)。

  • 集线器接收到广播数据报,仍是简单的复制、转发到其他所有端口,所以集线器的所有端口为一个广播域。
  • 交换机接收到广播数据报,会转发到其他所有端口;而路由器可以隔离广播域

网络数据传输流程的过程我也在我的 Java 网络编程的中也有体现,并且更加通俗

局域网传输流程:集线器

  1. 发送端在本机ARP缓存表中,根据目的IP查找对应的MAC地址
  2. 如果找到,则可以在数据链路层以太网帧头中,设置目的MAC并发送数据包
  3. 如果没有找到,需要先发送ARP广播请求,让接收端,即目的主机告诉自己,目的MAC是多少
  4. 发送端更新本机ARP缓存表:保存目的IP与目的MAC的映射
  5. 有了目的MAC,就可以按照第(2)个步骤发送数据了。

DNS

DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。

TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址。

  • 域名是一个字符串,如 www.baidu.comhr.nowcoder.com
  • 域名系统为一个树形结构的系统,包含多个根节点
    • 根节点即为根域名服务器,最早IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。(DNS域名服务器,即提供域名转换为IP地址的服务器)
    • 子节点主要由各级DNS服务器,或DNS缓存构成(Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中,Mac/Linux系统的DNS缓存在 /etc/hosts 文件中。)

网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址:(浏览器、主机系统、路由器中都保存有DNS缓存。)

  • 域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名信息,从下到上查找对应IP地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主机。
  • 域名解析使用DNS协议来传输数据。DNS协议是应用层协议,基于传输层UDP或TCP协议来实现。

NAT

NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能

  • NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法:
  • 很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;
  • 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的;

NAT IP转换过程

  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部,有一张自动生成的,用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NTA将所有的IP地址分为了两大类

  1. 内网 IP:10.* 172.16.* -172.31.* 192.168.*
  2. 外网 IP:其他的 IP 地址
    只要求外网IP唯一,内网IP在不同的局域网中,是允许重复的(同一个局域网里不允许重复)

在NAT 背景下如何通信?

外网设备---》外网设备,不需要任何NAT,就能直接通信

内网设备---》其他内网设备,不允许

外网设备---》内网设备,不允许

内网设备---》外网设备

  • 对应的内网设备的路由器,出发NAT机制进行 IP 替换,此时就会给这个网络数据包的源 IP 替换成路由器自己的IP(此时一个外网IP,就能代表一大批内网的设备了)

IP不够的问题---》动态分配 + NAT 解决

NAPT

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系

NAT技术的缺陷:

由于NAT依赖这个转换表,所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接;
  • 转换表的生成和销毁都需要额外开销;
  • 通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开;
相关推荐
向宇it29 分钟前
FastAdmin列表用echats渲染,使用表格的templateView实现一个图表渲染的功能
php·web·fastadmin
网络研究院1 小时前
攻击者将恶意软件分解成小块并绕过您的安全网关
网络·网关·安全·攻击·技术·分块·分析
小哈里1 小时前
【云网络】软件定义网络SDN的概念与应用(以PVE8用户隔离,TLS证书介绍,自签证书等为例)
网络·https·云计算·虚拟化·sdn
拾光师2 小时前
linux之网络命令
linux·服务器·网络
没有名字的小羊2 小时前
Linux基础命令——账户简单管理
linux·运维·服务器·网络·数据库
沈艺强2 小时前
计算机网络nat 映射案列
网络·计算机网络
嘻嘻仙人3 小时前
【网络通信基础与实践第四讲】用户数据报协议UDP和传输控制协议TCP
网络·网络协议·udp·tcp·三次握手·流量控制·拥塞控制
极客小张3 小时前
基于正点原子Linux开发板的智能监控与家电控制系统设计:深度解析Video4Linux和TCP/IP技术栈
linux·运维·c++·物联网·网络协议·tcp/ip·算法
DC_BLOG6 小时前
IPv6(四)
运维·服务器·网络·ip