天天看点

计算机网络基础(一)通信的基础——IP、DNS、MAC地址

1.网络——以太网、局域网、互连网、因特网

要形成互联就要用到网络,下面讲一下以太网与互联网的区别。

先讲一下计算机网络(network),就是将一台以上的计算机互连起来,互连的计算机之间可以实现通信,实现信息共享,这就是网络。

1)互联网的英文是 internet(inter- pref. 表示 “在一起,交互” 之义;),它的意思是 “网络的网络”,是一个通用名词,泛指有多个计算机网络互连而成的网络,这些网络之间的通信协议(即通信规则)是可以任意的。

因特网即 Internet,记住它与 internet 之间绝对不能使用等于号,因为 Internet 是一个专有名词,它是指当前全球最大的、开放的、有众多网络互相连接而成的特定的计算机网络,它采用 TCP/IP 协议族作为通信的规则,其前身是美国的 ARPNET。

2)TCP/IP 协议由很多协议组成,差别类型的协议又被放置在差别的层。其中,位于应用层的协议就有很多,比如 FTP、SMTP、HTTP。只需应用层使用的是 HTTP 协议,就称为万维网 (World Wide Web)。

3)以太网(Ethernet),是当今现有局域网采用的最通用的通信协议标准。以太网络使用 CSMA/CD(载波监听多路访问及冲突检测)技术,并以 10M/S 的速率(仅指标准以太网的速率而已)运行在多种类型的电缆上。以太网与 IEEE802.3 系列标准相类似。

以太网可以说是局域网的一种,但是目前局域网大多数都是使用以太网标准,故可认为以太网就是局域网。然后,局域网之间的通信协议必须是相同的,即局域网内计算机(或计算机网络)只允许使用同一种通信规则进行通信。而不同的局域网之间,又可以通过其他任意的通信规则进行通信(内部只是用一种通信规则),这就构成了互联网。

所以:以太网 <= 局域网 <= 互联网!= 因特网。

2.IP 地址(IP 子网划分)

IP 是 32 位二进制数据,通常以十进制表示,并以 “.” 分隔。IP 地址是一种逻辑地址,用来标识网络中一个个主机,IP 有唯一性,即每台机器的 IP 在全世界是唯一的。IP 地址 = 网络地址 + 主机地址,根据网络地址的长度不同,有三种 IP 地址的组成形式,A 类、B 类、C 类,A 类前 8 位是(0+7 位网络地址),B 类前 16 位是(10+14 位网络地址),C 类前 24 位是(110+21 位网络地址)。局域网里,同样也需要 ip 地址,一般内网的 ip 地址是以 192.168 开头的,这样很容易区分公网和内网的 ip 地址,这也就是 PLC 与计算机或终端与计算机相连时,为什么常常采用 192.168 的形式。

3.子网掩码

子网掩码是用来判断任意两台计算机的 ip 地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的 ip 地址与子网掩码进行 and 运算后,得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。子网掩码的作用是设定网段范围的。255.255.255.0 是一标准的 C 类地址的子掩码,255.255.0.0 是一个标准的 B 类地址子掩码。他们两个限定了完全不同的 IP 地址范围。C 类的子掩码每个网段最大可以有 256 个 IP 地址,其中 254 个可用,B 类子掩码每个网段最大可以有 65536 个 IP 地址,其中 65534 个是可用 IP。对上面这段话的理解为,C 类的话,前 24 位是网络号,所以用都是 1 去做与,最后 8 位用 0 去跟 IP 做与,这样得到的结果是如果两个 IP 前 24 位一样,那么与的结果也就一样,也就是在同一网段,即可以通讯。内网通讯时,如上面所说,一般都用 192.168 的形式,所以子网掩码一般采用 255.255.*.* 的形式。

4.网关和默认网关

网关到底是什么呢?网关实质上是一个网络通向其他网络的 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 的某个主机。网络 A 向网络 B 转发数据包的过程。

网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关 TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的 IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和 Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。

在传统 TCP/IP 术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能 转送数据包。在主机(又称终端系统,end system)中,数据包需经过 TCP/IP 四层协议处理,但是在网关(又称中介系 统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关 (gateway)与路由器(router)还没有区别。

在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的 IP 网关(IP gateway)。

如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。默认网关一般填写 192.168.x.1,默认网关必须是电脑自己所在的网段中的 IP 地址,而不能填写其他网段中的 IP 地址。

5.DNS 服务器:

相对于前几个都是关于联网的基本概念,DNS 服务器处理的事情不同,DNS 是指:域名服务器 (Domain Name Server)。在 Internet 上域名与 IP 地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器 。举个例子没有 IP 地址就不能上网,计算机没设 DNS, 竟然能上 QQ, 却不能打开网页,QQ 不需要有 DNS(QQ 只是一个客户端程序,用不到 DNS),只有浏览网页 (需输入网址时) 才用到 DNS,在地址栏中你要能记住 IP 地址就直接输 IP 也是可以的。

6.MAC 地址

MAC(Medium/Media Access Control,介质访问控制)MAC 地址是收录在 NetworkInterfaceCard(网卡 NIC) 里的.MAC 地址 , 也叫硬件地址 , 是由 48 比特 /bit 长(6 字节 /byte,1byte=8bits),16 进制的数字组成。前 24 位叫做组织唯一标志符(Organizationally Unique Identifier, 即 OUI),是识别 LAN(局域网)节点的标识。后 24 位是由厂家自己分配。网卡的物理地址通常是由网卡生产厂家烧入网卡 EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。在 OSI(Open System Interconnection,开放系统互连)7 层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,MAC 对应于第二层数据链路层(Data Link),而 IP 对应于网络层。

那么,说到现在,大家一定会疑惑,有了 IP 地址还要 MAC 地址干嘛,有了 MAC 地址还要 IP 地址干嘛?

MAC 地址与 IP 地址的区别:

有人曾这么比喻,你已经有了手机号,为什么还要一个身份证号呢? 你的身份证号是你唯一标识号,只要有这个号码就能找的到你。但是你的朋友为什么不用身份证找你而是用手机号呢?方便不是。但是你要是犯了罪,警察用你手机号找你,你换了号怎么办?那不就得用你的身份证号才能逮到你了?

通过以下几点再来看一下需要两者的配合才能实现数据交换:

(1)IP 地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。

(2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的 IP 地址。如果一个 IP 主机从一个网络移到另一个网络,可以给它一个新的 IP 地址,而无须换一个新的网卡。

(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由 ARP(Address Resolution Protocol:地址解析协议)负责将 IP 地址映射到 MAC 地址上来完成的。

说到这里,还想再说一下,为什么要对网络通讯进行分层,如 OSI,分层的好处:

分层的好处是什么呢?那就是当你使用比较高层、远离物理层的协议,例如 IP 协议、TCP 协议和其他机器通信时,你不需要关心,也不需要担心对方在哪里,会通过哪些不同类型的网络。而如果你在物理层编程,就要关心更多东西,比如不同的网络包的转换、最大传输单元等等。

继续阅读