[转自:](http://blog.csdn.net/gougouhai1212/article/details/45099903)
以前做过
DSP
通过以太网与上位机进行通信,用的是
Wiznet
的
W5300
,当时在上位机上需要设置
IP
地址、子网掩码、默认网关、
DNS
服务器,虽然知道怎么设,但是不知道为什么要这么设,今天在网上查了一下这几个概念,在此整理一下,
mark
首先,很核心的一点,设置这些的目的是什么?设置这些就是为了使能能够实现通讯,不管是计算机和计算机,还是设备和计算机。
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
的形式。
子网掩码:
子网掩码是用来判断任意两台计算机的
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.*.*
的形式。
网关:
网关到底是什么呢?网关实质上是一个网络通向其他网络的
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
转发数据包的过程。
默认网关:
如果搞清了什么是网关,
默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。
默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。
默认网关。
默认网关一般填写
192.168.x.1
,默认网关必须是电脑自己所在的网段中的
IP
地址,而不能填写其他网段中的
IP
地址。
DNS
服务器:
相对于前几个都是关于联网的基本概念,
DNS
服务器处理的事情不同,
DNS
是指:域名服务器
(Domain Name Server)
。在
Internet
上域名与
IP
地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识
IP
地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,
DNS
就是进行域名解析的服务器 。举个例子没有
IP
地址就不能上网,计算机没设
DNS,
竟然能上
QQ,
却不能打开网页,
QQ
不需要有
DNS(QQ
只是一个客户端程序,用不到
DNS)
,只有浏览网页
(
需输入网址时
)
才用到
DNS
,在地址栏中你要能记住
IP
地址就直接输
IP
也是可以的
MAC
地址:
MAC
(
Medium/MediaAccess 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
协议和其他机器通信时,你不需要关心,也不需要担心对方在哪里,会通过哪些不同类型的网络。而如果你在物理层编程,就要关心更多东西,比如不同的网络包的转换、最大传输单元等等
以上写了这么多,其实好多都是粘的, 但是自己按照自己的思维逻辑把网上的东西搜集整理,有条理性,有逻辑性,这样以后看起来也会很清楚明了,继续坚持,希望大家留言讨论
~