热身问答
-
LAN 是什么的缩略语?
-
LAN 是 Local Area Network(局域网)的缩略语。
- 通常把在一栋建筑物内或是一间办公室里的那种小规模网络称作 LAN。与此相对,把互联网那样的大规模网络称作 WAN(Wide Area Network,广域网)。
-
-
TCP/IP 是什么的缩略语?
- TCP/IP 是 Transmission Control Protocol/Internet Protocol(传输控制协议和网际协议)的缩略语。
- TCP/IP 协议族是互联网所使用的一套标准协议。TCP/IP这个名字意味着同时使用了 TCP 协议和 IP 协议。
-
MAC 地址是什么?
-
MAC地址用于两点之间的传输。
-
所谓 MAC 地址就是能够标识网卡的编号。
-
几乎所有的网卡都会在上市前被分配一个不可变更的MAC 地址。本章将介绍查看 MAC 地址的方法。
-
什么是网卡?
network interface card, 网络接口卡,也叫做NIC卡, 是允许网络连接的计算机硬件设备。指能使计算机和服务器等网络设备相互连接的电路板。内嵌式网卡在大多数计算机和一些网络服务器中都很常见,除此之外,还可以将服务器网卡等插入设备的扩展槽中。
Windows10下电脑网卡的具体型号 设置-> 网络和Internet -> 以太网
网络Network: 连接多台计算机所组成的、可用于交换信息的系统就是网络(因为信息可以以电信号的形式在网线中传播,所以计算机彼此之间就能够进行信息交换。)
协议Protocol: 为了成功交换信息, 我们需要在发送者和接收者之间事先确定发送方式, 而这种对信息发送方式的规定或者约束就叫做协议。而TCP/IP协议族是我们日常中最常见的协议。
下面我们通过一些简单实验来探索TCP/IP网络的原理吧。
9.1 实验环境
了解实验对象
实验对象: 网络环境(如下图 公司内办公室内的网络)
- 服务器Server: 提供服务
- 客户端Client: 使用服务
- 在Server上运行的程序为Client提供服务
- 集线器Hub: 是负责把各台计算机的网线相互连接在一起的集线设备
- 路由器Router: 负责把公司内的网络和互联网连接起来的设备
像上图这样部署在一间办公室内的小规模网络称作 LAN ;把像互联网那样将企业和企业联结起来的大规模网络称作 WAN。
所以路由器Router负责把LAN连接到WAN上。怎么连接的呢? 路由器的一端会先连接到互联网服务提供商的路由器上, 而在服务提供商Provider那里, 又会将他们的路由器连接到其他的路由器上, 通过这种方式最终接入到互联网的主干线缆上。
互联网服务提供商Internet Service Provider:我们公司的路由器已经连接到服务提供商的路由器上, 然后Provider将他们的路由器连接到其他路由器上, 这样最终接入到互联网的主干线缆上。
以企业内的 LAN 为一个基本单位,通过服务提供商的路由器把它们和其他企业的 LAN 互联起来,而把这种联结延伸至世界各个角落的正就是互联网。把像 LAN 这样的一张张小网都联结起来,就能织成一张叫作互联网的大网。
9.2 实验 1:查看网卡的 MAC 地址
网络是硬件和软件的集合体, 那么我们先来了解构成网络的硬件
在组建公司内部的网络时我们需要的4 种硬件:
- 安装到每台计算机上的网卡(NIC,Network Interface Card);
- 插到网卡上的网线;
- 把网线汇集起来连接到一处的集线器;
- 用于接入到互联网的路由器。
注意: 这四种硬件的规格需要相互匹配才能连接到一起
网卡选择的是规格极其普通的以太网(Ethernet)网卡。(因为现在以太网已经成为了主流的选择)而网卡的种类一旦确定下来,网线、集线器和路由器的规格也就确定了。既然硬件的规格一致了,就意味着其中传输的电信号的形式也是一致的。这样的话无论是 Linux 的计算机,还是 Windows 的计算机,它们在硬件上已经是连通的了。
以太网使用了一种略显粗糙的方法连接LAN以内的计算机, 那就是CSMA/CD(Career Sense Multiple Access with Collision Detection, 带冲突检测的载波监听多路访问), 是以广播的方式将数据发送到所有端口。
注:现在多使用交换式以太网, 取代了共享式以太网, 所以CSMA/CD实际很少使用。
以太网中的每台计算机都需要先确认一件事:在网线上有没有其他的计算机正在传输电信号,也就是说要先确保没有人在占用网络,然后才能发送自己想传输的电信号。谁先抢到了网线的使用权,谁就先发送。万一遇到了多台计算机同时都想发送电信号的情况,只需要让这些计算机等待一段长度随机的时间后再重新发送相同的电信号即可。这套机制叫作 CSMA/CD。
其中的 CS(Career Sense)载波监听 指的是这套机制会去 监听/Sense 表示网络是否正在使用的 电信号/Career。
而 MA(Multiple Access)多路复用 指的是 多个/Multiple 设备可以同时 访问/Access 传输介质。
CD(with Collision Detection)带冲突检测 则表示这套机制会去 检测/Detection 因同一时刻的传输而导致的电信号 冲突/Collision。
在小规模的 LAN 中,像这样略显粗躁的 CSMA/CD 机制是可以正常运转的。因为 CSMA/CD 归根结底也只是一种适用于 LAN 的机制。
在以太网中,发送给一台计算机的电信号也可以被其他所有的计算机收到。一台计算机收到了电信号以后会先做判断,如果是发送给自己的则选择接收,反之则选择忽略。可以用被称作 MAC(Media Access Control)地址的编号来指定电信号的接收者。
MAC/Media Access Control地址: 在每一块网卡所带有的 ROM(Read Only Memory,只读存储器)中,都预先烧录了一个唯一的 MAC 地址。网卡的制造厂商负责确定这个 MAC 地址是什么。因为 MAC 地址是由制造厂商的编号和产品编号两部分组成的,所以世界上的每一个 MAC 地址都是独一无二的。
下面我们开始第一个实验, 如题, 我们来查看我们计算机中网卡的MAC地址。
步骤:
- “Windows键 + r” 后输入cmd 打开命令提示符
- 在命令提示符中输入
ipconfig /all
会出现有关我们Windows的网络信息或者网络连接状态的信息。
画面中显示在 Physical Address (物理地址)后面的、用“-”分隔的 6 个十六进制数(每个数占 8 比特)00-00-5D-B8-39-B0 就是 MAC 地址。其中 00-00-5D 代表制造商,B8-39-B0 代表产品的编号.
9.3 实验 2:查看计算机的 IP 地址
我们可以使用MAC地址在硬件层面上标识网卡, 但是我们很难将MAC地址像邮政编码那样整理分类出来, 所以在接入互联网的数量众多的计算机中, 仅仅是找寻信息的发送目的就需要花费大量时间。
所以, 我们还给每台计算机设定了一个软件上的编号: IP地址。
主机Host: 设定了IP地址的计算机叫做主机。
因为路由器也算是计算机的一种,所以它们也有 IP 地址。在 TCP/IP 网络中,传输的数据都会携带 MAC 地址和 IP 地址两个地址。
IP地址: 是一个 32 比特的整数,每 8 比特为一组,组间用“.”分隔,分成 4 段表示。8 比特所表示的整数换算成十进制后范围是0~255(2的8次方等于256),因此可用作 IP 地址的整数是 0.0.0.0~255.255.255.255,共计4294967296个。每个IP地址的值也都是独一无二的。
IP地址可以帮助我们对计算机进行分组管理。 如用 IP 地址中第 1 段到第 3 段的数值代表公司,用第 4 段的数值代表公司内部的计算机。例如,在 AAA.BBB.CCC 这个公司内,如果有一台计算机的编号是 ×××,那么它的 IP 地址就是 AAA.BBB.CCC.XXX。而看到了 AAA.BBB.CCC.YYY 这样一个 IP 地址,就能知道它是这个公司内的另一台计算机。通常把 IP 地址中表示分组(即 LAN)的部分称作“网络地址”、表示各台计算机(即主机)的部分称为“主机地址”。在本例中,AAA.BBB.CCC 这一部分是网络地址,而 XXX 或 YYY 的部分是主机地址。
开始实验: 查看在各自的计算机上配置的IP地址。
和上次实验的步骤一样, 依旧在命令行中使用ipconfig /all
命令
如上图所示, 显示在 IP Address 后面的 202.26.186.174
就是 IP 地址。
下面的 Subnet Mask 后面的 255.255.255.240
。这一串数字是“子网掩码”。子网掩码的作用是标识出在 32 比特的 IP 地址中,从哪一位到哪一位是网络地址,从哪一位到哪一位是主机地址。
把 255.255.255.240
用二进制表示的话: 11111111.11111111.11111111.11110000
子网掩码中,值为 1 的那些位对应着 IP 地址中的网络地址,后面值为 0 的那些位则对应着主机地址。因此 255.255.255.240 这个子网掩码就表示,其所对应的 IP 地址前 28 比特是网络地址,后 4 比特是主机地址。
9.4 实验 3:了解 DHCP 服务器的作用
DHCP服务器: Dynamic Host Configuration Protocol, 动态主机设置协议。
- 在DHCP服务器上记录着可以被分配到LAN内计算机的IP地址范围和子网掩码的值。
- 作为 DHCP 客户端的计算机在启动时,就可以从中知道哪些 IP 地址还没有分配给其他计算机。
- 路由器的 IP 地址可以从 DHCP 服务器获取。
- DNS服务器的IP地址也可以从DHCP服务器获取。
在我们上次在办公室搭建的 LAN 中,可以使用一台装有 Linux 的计算机充当 DHCP 服务器的角色。因为 Windows 的计算机也同样支持 DHCP 的协议,所以即使服务器上装的是 Linux,而客户端装的是 Windows,也没有关系。
默认网关:通常会把路由器的 IP地址设置在这里。也就是说路由器就是从 LAN 通往互联网世界的入口(Gateway)。
Windows11下查看“是否启用DHCP”、 “IP地址”、“子网掩码”:
- 打开“控制面板”, 进入“网络和Internet”下的“网络和共享中心”
- 点击连接的网络 “WLAN(xxx)”, 进入WLAN状态
- 点击WLAN状态下的“详细信息”, 查看网络连接详细信息, 可以查看“是否启用DHCP”、 “IP地址”、“子网掩码”等信息。
9.5 实验 4:路由器是数据传输过程中的指路人
因为IP地址中的网络地址部分可以代表一个组中的全部计算机, 即为一个LAN中的计算机全体, 所以路由器的作用就是判断信息是否发给这个LAN内的计算机的, 如果不是就把他发送到LAN外。 路由器决定数据传输的路径。
分布在世界各地的 LAN 中的路由器相互交换着信息,互联网正是由于这种信息的交换才得以联通。而提供这种信息的就是路由表。
路由表: 记录应该把数据转发到那里。
进入实验: 查看路由表
win + r进入命令行, 输入route print
, 执行命令列出路由表。
路由表由五列构成: 网络目标Network Destination、网络掩码Netmask、网关Gateway、接口Interface、跃点数Metric。
前四列记录着数据发送的目的地和路由器的IP地址等信息, 而最后一列跃点数记录着路径的权重,这个值由某种算法决定,比如数据传输过程中经过的路由器的数量。如果遇到有多条候选路径都可以通往目的地的情况,路由器就会选择 Metric 值较小的那条路径。
在路由表中还有如下的规则:如果数据的发送目的地就在本 LAN 中,则可以直接发送数据而无需经过路由器转发;反之如果在 LAN 外(或发送目的地的 IP 地址不在路由表中),则需要经过路由器转发。细节虽然有些复
杂,但是只要了解了大体上的规则就可以了。
9.6 实验 5:查看路由器的路由过程
什么是“路由Routing”?
假设我们看本书作者目前就职的公司 GrapeCity 的主页(http://www.grapecity.com/)。GrapeCity 的 Web 服务器中的数据,要经过若干个路由器的转发才能达到我们的计算机上。通常把这种数据经过路由器转发的过程称为“路由”(Routing)。
进入实验:查看路由器的路由过程
我们可以在命令行窗口中执行tracert www.grapecity.com
命令, 就可以查看路由的过程了(网址可以替换), 这里查看的是我们的计算机到GrapeCity的Web服务器的路径。
左侧按照 1~13的顺序列出了数据前进道路上途经的 IP 地址。
第 1 行的 202.26.186.171是作为实验对象的 LAN 内的路由器。
第 2 行的 203.139.167.141 是本书作者所租用的互联网服务提供商的路由器。
从第 3 到第 11 行,是其他服务提供商的路由器。其中第 11 行的 210.145.239.82 是 GrapeCity 所租用的
服务提供商的路由器。
第 12 行的 210.160.205.254 是 GrapeCity 的路由器。
最后,第 13 行的 210.160.205.80 是 Grape City 的 Web 服务器。可以看到,从作者公司内的 LAN 出发,通过 13 次路由才终于到达了GrapeCity。
9.7 实验 6:DNS 服务器可以把主机名解析成 IP 地址
刚才我们提供了网址并且调用了tracert命令就查询了路由的过程, 那么我们没有提供IP地址, 服务器是怎么通过网址就能得知Grape City的Web服务器呢?
我们之前提到了, DNS服务器的IP地址也可以从DHCP服务器获取。DNS是什么呢?
DNS: Domain Name System, 域名系统。DNS可以帮我们把类似于www.grapecity.com这样的域名解析为210.160.205.80这样的IP地址。
我们的计算机都有一个主机名, 而每个LAN都有一个域名, 而把主机名和域名组合起来就形成了这个世界独一无二的名字, 而这种组合称为FQDN(Fully Qualified Domain Name, 完整限定域名)。
在互联网中,难以记忆的 IP 地址使用起来很麻烦。于是人们就发明出了 DNS 服务器,这样只需要使用FQDN,DNS 服务器就可以自动地把它解析为 IP 地址了(这个过程叫作“域名解析”)。DNS 服务器通常被部署在各个 LAN 中,里面记录着 FQDN 和 IP 地址的对应关系表。世界范围内的 DNS 服务器是通过相互合作运转起来的。如果一台 DNS服务器无法解析域名,它就会去询问其他的 DNS 服务器。
进入实验:
查看我们计算机的主机名
步骤: 进入命令行窗口输入hostname
命令, 就可以得到我们计算机的主机名
查看FQDN
步骤: 在命令行窗口中输入ipconfig /all
命令, 其中Windows IP 配置下显示了主机名、主DNS后缀等信息。
操作DNS服务器
步骤: 在窗口中输入nslookup
, 屏幕上就会显示出一个提示符“>”,表示现在可以询问 DNS服务器了。我们可以试着输入www.grapecity.com
, 按下Enter键, 就可以查看GrapeCity的Web服务器的IP地址。要想退出nslookup, 可以输入exit
, 按下Enter键即可退出。
9.8 实验 7:查看 IP 地址和 MAC 地址的对应关系
在互联网的世界中,到处传输的都是附带了 IP 地址的数据。但是能够标识作为数据最终接收者的网卡的,还是 MAC 地址。于是在计算机中就加入了一种程序,用于实现由 IP 地址到 MAC 地址的转换,这种功能被称作 ARP(Address Resolution Protocol,地址解析协议)。
ARP如何进行?
通过广播询问:
ARP会对 LAN 中的所有计算机提问:“有谁的 IP 地址是 210.160.205.80 吗?有的话请把你的 MAC 地址告诉我。”通常把这种同时向所有 LAN 内的计算机发送数据的过程称作“广播”(Broadcast)。通过广播询问,如果有某台计算机回复了 MAC 地址,那么这台计算机的 IP 地址和 MAC 地址的对应关系也就明确了。
但是, 如果为了查询MAC地址, 每次都要广播所有LAN以内的计算机是非常影响效率的, 所以ARP提供了缓存的功能, 向各个计算机都询问完一轮之后,就会把得到的 MAC 地址和 IP 地址的对应关系缓存起来(临时保存在内存中)。存起来的这些对应关系信息称作“ARP 缓存表”。只要在命令提示符窗口中执行 arp -a 命令,就可以查看当前 ARP缓存表中的内容。
进入实验:
查看ARP缓存表
步骤:在命令行输入arp -a
可以查看ARP缓存表。
9.9 TCP 的作用及 TCP/IP 网络的层级模型
TCP握手过程:
TCP/IP 这个词表示在网络上同时使用了 TCP 和 IP 这两种协议。
正如前面所讲解的那样,IP 协议用于指定数据发送目的地的 IP 地址以及通过路由器转发数据。
而TCP 协议则用于通过数据发送者和接收者相互回应对方发来的确认信号,可靠地传输数据。
通常把像这样的数据传送方式称作“握手”(Handshake)(如下图)。
TCP 协议中还规定,发送者要先把原始的大数据分割成以“包”(Packet)为单位的数据单元,然后再发送,而接收者要把收到的包拼装在一起还原出原始数据。
而因为协议的存在, 发送者发送的信息其实就是以包为单位的、附加了各种各样信息的数据。 这里的各种各样的信息是遵守了协议而添加的信息。
硬件上发送数据的是网卡。在网卡之上是设备驱动程序(用于控制网卡这类硬件的程序),设备驱动程序之上是实现了 IP 协议的程序,IP程序之上则是实现了 TCP 协议的程序,而再往上才是应用程序,比如Web 或电子邮件。这样就构成了一幅在硬件之上堆叠了若干个软件层的示意图(如下图)。
TCP 协议使用被称作“TCP 端口号”的数字识别上层的应用程序。TCP 端口号中有一些是预先定义好的,比如Web 使用 80 端口,电子邮件使用 25 端口(用于发送)和 110 端口(用于接收)。
总结
LAN: Local Area Network 局域网
- 由集线器将一些计算机的网线连接到一起, 再连接到互联网提供商的路由器上, 然后再连接到其他服务器上, 最终接入到互联网的主干线缆上。
- CSMA/CD: Career Sense Multiple Access with Collision Detection 带冲突检测的载波监听多路访问。 共享式以太网多以这种方式连接LAN以内的计算机。 也就是通过广播的方式将数据发送到所有端口。
WAN: Wide Area Network 广域网
TCP/IP协议: Transmission Control Protocol/Internet Protocol 传输控制协议和网际协议。 这个名字意味着同时使用了TCP和IP协议。
MAC: Media Access Control 用于标识网卡的编号, 处于每一块网卡的ROM存储器中。MAC地址是世界上独一无二的
IP地址: 每台计算机上的软件编号, IP地址帮助我们对计算机进行分组管理。
DHCP服务器: Dynamic Host Configuration Protocol 动态主机设置协议。 我们可以在DHCP服务器桑查询LAN以内的计算机的IP地址范围、路由器的IP地址和DNS服务器的IP地址。
路由器Router: 路由器是计算机从LAN通往互联网的入口。
- 路由表: 记录了应该把数据转发到哪里的信息。
DNS: Domain Name System 域名系统。 帮助计算机将域名解析为对应的IP地址
- FQDN: Fully Qualified Domain Name 完整限定域名。 是主机名和域名的结合, 具有唯一性。DNS中就记录了FQDN和IP地址的对应关系表。
ARP: Address Resolution Protocol 地址解析协议。 为了标识网卡, ARP实现了由IP地址到MAC地址的转换。
- ARP缓存表: 为了提高广播的效率, ARP广播一次之后会把得到的MAC地址和IP地址的对应关系缓存起来, 构成了ARP缓存表。