【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述

目录

  • 一、IP
  • 二、子网掩码
  • 三、网关
  • 四、默认网关(缺省网关、路由器、缺省路由器)
  • 五、总结(IP、子网掩码、网关):
  • 六、DNS服务器
  • 七、DHCP服务器
  • 八、MAC地址
  • 九、服务器
  • 十、端口号
  • 参考:

一、IP

通俗解释:
通俗来讲,IP就是代表计算机的地址;比如你的朋友小明想去你家找你玩,你就要告诉小明,你家住在北京市朝阳区王府井大街10086号,同样的,如果计算机A想和计算机B通信,那么就要知道计算机B的“地址”,也就是IP。
小剧场:
计算机A:“喂,你是那个192.168.0.1吗?”
计算机B:“是啊是啊!”
计算机A:“你让我过去,我是那个192.168.1.0,我俩主人很熟的!”
计算机B:“好啊,来吧!”
官方解释:
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。
IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

IP一般和子网掩码搭配使用,用来确认两台(多台)计算机之间是否可以通信。IP由两部分组成:IP地址=网络地址+主机地址(又称:网络号和主机号)。拿最简单的两台计算机举例,如何确认两台计算机A和B能否进行通信呢,就有两个要求,首先要求网络地址必须相同,在网络地址相同的情况下,主机地址必须不同;也可以理解为,网络地址必须相同,ip地址必须不同,才能进行通信。比如现在,主机A地址为192.168.0.1,主机B地址为192.168.0.2,那如何确定这两台主机网络地址是否相同呢,这时候就要用到子网掩码了,子网掩码的作用就是去区分两台主机的IP中,哪些是网络地址,哪些是主机地址。网络地址的确定方法:IP和子网掩码转成二进制进行与运算。

举三个例子说明一下用子网掩码计算网络地址:
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第1张图片

情况1:
设置计算机A的 IP 地址为 192.168.0.1,子网掩码为 255.255.255.0,计算机B的IP地址为 192.168.0.200,子网掩码为 255.255.255.0,这两台计算机就能正常通讯。
解析:
计算网络地址:IP和子网转换成二进制进行与运算
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第2张图片

如上图,左边一列是十进制,右边是十进制对应的二进制,所以计算机A的IP和子网掩码与运算的结果是192.168.0.0;即计算机A的网络地址为192.168.0.0;
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第3张图片

同样的,计算机B的IP和子网掩码与运算的结果是192.168.0.0;即计算机B的网络地址为192.168.0.0;
我们可以看到计算机A和计算机B的网络地址是相同的,都是192.168.0.0;并且计算机A和计算机B的ip地址是不同的,所以可以进行通信。

情况2:
还是设置计算机A的 IP 地址为 192.168.0.1,子网掩码为 255.255.255.0;设置计算机B的IP 地址改为 192.168.1.200,子网掩码还是为 255.255.255.0,那这两台就无法通讯。
同样的方式计算两台计算机的网络地址:
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第4张图片

如上图,左边一列是十进制,右边是十进制对应的二进制,所以计算机A的IP和子网掩码与运算的结果是192.168.0.0;即计算机A的网络地址为192.168.0.0;
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第5张图片

同样的,计算机B的IP和子网掩码与运算的结果是192.168.1.0;即计算机B的网络地址为192.168.1.0;
我们可以看到计算机A和计算机B的网络地址是不同的,所以无法进行通信。

情况3:
设置计算机A的 IP 地址为 192.168.0.1,子网掩码为 255.255.255.192,计算机B的 IP 地址为 192.168.0.200,子网掩码为 255.255.255.192,注意和第1种情况的区别在于子网掩码,1为 255.255.255.0,本例是 255.255.255.192。此种情况下这台计算机就不能正常通讯。
同样的方式计算两台计算机的网络地址:
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第6张图片

如上图,左边一列是十进制,右边是十进制对应的二进制,所以计算机A的IP和子网掩码与运算的结果是192.168.0.0;即计算机A的网络地址为192.168.0.0;
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第7张图片

同样的,计算机B的IP和子网掩码与运算的结果是192.168.0.192;即计算机B的网络地址为192.168.0.192;
我们可以看到计算机A和计算机B的网络地址是不同的,所以无法进行通信。

相信通过这三种情况,应该明白了为何计算网络地址和如何计算了,也明白了IP和子网掩码是如何搭配使用的了。

二、子网掩码

要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。

IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。什么是子网掩码?子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分,子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。假设IP地址为“192.168.1.1”,子网掩码为“255.255.255.0”。将子网掩码转换成2进制,即11111111.11111111.11111111.00000000;其中,“1”有24个,代表与此相对应的IP地址左边24位(转换成十进制就是前面三个位置192.168.1)是网络号;“0”有8个,代表与此相对应的IP地址右边8位(转换成十进制就是最后一个位置1)是主机号。这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

常用的子网掩码有数百种,这里只介绍最常用的两种子网掩码

  • 子网掩码是“255.255.255.0”的网络:
    最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
  • 子网掩码是“255.255.0.0”的网络:
    后面两个数字可以在0~255范围内任意变化,可以提供255²个IP地址。但是实际可用的IP地址数量是255²-2,即65023个。

IP地址的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地主机不在同一子网内的目标主机的数据,会因为错误的判断而认为目标主机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目标主机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关(文章下方有解释)的负担,造成网络效率下降。因此,子网掩码应该根据网络的规模进行设置。如果一个网络的规模不超过254台电脑,采用“255.255.255.0”作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0”是最常用的IP地址子网掩码;假如在一所大学具有1500多台电脑,这种规模的局域网可以使用“255.255.0.0”。

三、网关

经过上面两部分的介绍,我们知道了两台计算机之间如果没有处在同一个网络中(IP地址的网络地址不同),就无法进行TCP/IP通信,那问题来了,我们自己的计算机如何和远在千里外的朋友的计算机进行通信呢?这个时候网关就出现了,网关可以将不同网络频段的两台计算机联系在一起,从而进行通信。
通俗意义上的理解:
网关: 通常指默认网关,比如上面说的通过子网掩码判断出两台计算机处于不同的网络字段,两台计算机就不能直接进行通信,那么我们是不是就不能痛心了啊。为了能进行通信,这个时候网关就出现了,可以将不同网络频段的两台计算机联系在一起,从而进行通信。

比如有下图网络一和网络二:
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第8张图片

如果两个网络之间要是没有路由器的话,网络一和网络二 之间是不能进行TCP/IP 的通信的。因为根据上面的子网掩码我们判断出网络一和网络二 ,是处于不同的网络,因此在现实中,要使两个网络可以互相连通,则必须通过网关。

网关是处在网络层方面的知识,当两个处于不同网络字段的计算机,想要进行联系,就必须经过网关。

**网关实质上是一个网络通向其他网络的IP地址。**比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192.168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目标主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

四、默认网关(缺省网关、路由器、缺省路由器)

如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。也叫缺省网关、路由器、缺省路由器。

下方是百度百科给出的解释
【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述_第9张图片
设置默认网关
如何设置默认网关 一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。默认网关的设定有手动设置和自动设置两种方式。

  • 手动设置:手动设置适用于电脑数量比较少、TCP/IP参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很大的麻烦,所以不推荐使用。需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址。
  • 自动设置:自动设置就是利用DHCP服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。另外一种自动获得网关的办法是通过安装代理服务器软件(如MS Proxy)的客户端程序来自动获得,其原理和方法和DHCP有相似之处。由于篇幅所限,就不再详述了。

五、总结(IP、子网掩码、网关):

IP地址,是用来标注你这台电脑的身份的,就如同我们每个人都有一个身份证一般;子网掩码表示计算机使用的网络属于哪中网络段,两个IP地址同属于一个网段就可以直接通信 ,当属于不同的网络段时则需要网关来发挥作用了;而网关指的是处于不同网络段的计算机联系在一起,可以让他们进行互相通信,网关需要依靠路由器来完成它的功能。

六、DNS服务器

DNS:域名系统(Domain Name System)。在 Internet 上,域名与 IP 地址之间是一 一对应的,域名虽然便于人们记忆,但机器之间只能互相识别 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 服务器就是进行域名解析的服务器 。

如果没有这东西,你必须输入网站的 IP 地址,有了DNS 服务器,你就可以直接输入网址。

七、DHCP服务器

DHCP指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。提升地址的使用率。

八、MAC地址

MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。(知道这个就行了,不用往下看了)
MAC(Media Access Control,介质访问控制)地址
前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。
网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)(IEEE)(IEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
在一个稳定的网络中,IP地址和MAC地址是成对出现的。如果一台计算机要和网络中另一外计算机通信,那么要配置这两台计算机的IP地址,MAC地址是网卡出厂时设定的,这样配置的IP地址就和MAC地址形成了一种对应关系。在数据通信时,IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操作;MAC地址负责表示计算机的数据链路层地址,数据链路层设备(如交换机)根据MAC地址来进行操作。IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成。

九、服务器

服务器的分类
按照软件开发阶段来分,服务器可以大致分为2种
(1)远程服务器
别名:外网服务器、正式服务器
使用阶段:应用上线后使用的服务器
使用人群:供全体用户使用
速度:服务器的性能、用户的网速
(2)本地服务器
别名:内网服务器、测试服务器
使用阶段:应用处于开发、测试阶段使用的服务器
使用人群:仅供公司内部的开发人员、测试人员使用
速度:由于是局域网,所以速度飞快,有助于提高开发测试效率
本地服务器的选择
远程服务器就是本地内网服务器开放外网访问而已
如果处于学习、开发阶段,自己搭建一个本地服务器即可

十、端口号

端口包括物理端口和逻辑端口。物理端口是用于连接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。
端口有什么用呢?我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区 分不同的服务的。

  • 公认端口(Well-Known Ports)
    这类端口也常称之为"常用端口"。这类端口的端口号从0到1023,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。
  • 注册端口(Registered Ports)
    端口号从1025到49151。分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是分配好的公认端口的常用程序。
    动态和/或私有端口(Dynamic and/or Private Ports)
    之所以称为动态端口,因为它一般不固定分配某种服务,而是动态分配。

参考:

https://blog.csdn.net/weixin_39962394/article/details/111615554
https://zhuanlan.zhihu.com/p/65226634
https://blog.csdn.net/hexf9632/article/details/93469788

你可能感兴趣的:(网络知识和建站实战,网络,嵌入式Linux)