TCP/IP 网络入门实验

实验环境

一、实验 1:查看网卡的 MAC 地址

        计算机是硬件和软件的集合体,网络也不例外。那么首先,我们就从构成网络的硬件开始探索吧。在组建公司内部的网络时,笔者购买了如下 4 种硬件:1. 安装到每台计算机上的网卡(NIC,Network Interface Card);2. 插到网卡上的网线;3. 把网线汇集起来连接到一处的集线器;4. 用于接入到互联网的路由器。

        以太网使用了一种略显粗糙的方法连接 LAN 内的计算机(如图 2所示)。以太网中的每台计算机都需要先确认一件事:在网线上有没有其他的计算机正在传输电信号,也就是说要先确保没有人在占用网络,然后才能发送自己想传输的电信号。谁先抢到了网线的使用权,谁就先发送。万一遇到了多台计算机同时都想发送电信号的情况,只需要让这些计算机等待一段长度随机的时间后再重新发送相同的电信号即可。这套机制叫作 CSMA/CD(Career Sense Multiple Access with Collision Detection,带冲突检测的载波监听多路访问)。所谓载波监听(Career Sense),指的是这套机制会去监听(Sense)表示网络是否正在使用的电信号(Career)。而多路复用(Multiple Access)指的是多个(Multiple)设备可以同时访问(Access)传输介质。带冲突检测(with Collision Detection)则表示这套机制会去检测(Detection)因同一时刻的传输而导致的电信号冲突(Collision)。在小规模的LAN 中,像这样略显粗躁的CSMA/CD 机制是可以正常运转的。因为CSMA/CD 归根结底也只是一种适用于LAN 的机制。

        在以太网中,发送给一台计算机的电信号也可以被其他所有的计算机收到。一台计算机收到了电信号以后会先做判断,如果是发送给自己的则选择接收,反之则选择忽略。可以用被称作MAC(Media Access Control)地址的编号来指定电信号的接收者。在每一块网卡所带有的ROM(Read Only Memory,只读存储器)中,都预先烧录了一个唯一的MAC 地址。网卡的制造厂商负责确定这个MAC 地址是什么。因为MAC 地址是由制造厂商的编号和产品编号两部分组成的,所以世界上的每一个MAC 地址都是独一无二的。

        接下来我们就进入第一个实验吧——查看各自计算机中网卡的MAC 地址。请先从Windows 的开始菜单中选择“命令提示符”。选中后会弹出一个背景全黑的窗口,这就是命令提示符窗口,用户可以在这里用键盘输入由字符串构成的命令。输入完一串字符后按下回车键,这串字符所表示的命令就会被执行。

打开命令提示符后,请试着输入如下命令。

ipconfig /all

         在 Windows 中内置了各种各样的用于查看网络信息或网络连接状态的命令。通过 ipconfig /all 这条命令,可以显示出各种信息。实验结果的画面中只显示了笔者希望诸位关注的部分(如图3所示)。画面中显示在 Physical Address 后面的、用“-”分隔的 6 个十六进制数(每个数占 8 比特)00-00-5D-B8-39-B0 就是 MAC 地址。其中00-00-5D 代表制造商,B8-39-B0 代表产品的编号。

二、实验 2:查看计算机的 IP 地址

MAC 地址虽然可以在硬件层面上标识网卡,可是如果只有 MAC地址也很不方便。因为企业或组织需要对计算机分组管理,但是他们却没有办法把 MAC 地址前面的若干位统一起来。而且在互联网那种把全世界的计算机都连接在一起的大型网络中,又必须要有一种机制能够把数据的发送目的地像邮政编码那样整理并标识出来。假如在互联网中只能使用 MAC 地址,那么会发生什么呢?在接入互联网的数量众多的计算机中,只有尚未进行任何分组处理的编号(MAC 地址)。这样的话,仅仅是寻找信息的发送目的地就要花费大量的时间。因此,在 TCP/IP 网络中,除了硬件上的 MAC 地址,还需要为每台计算机设定一个软件上的编号。这个编号就是众所周知的 IP 地址。通常把设定了 IP 地址的计算机称为“主机”(Host)。因为路由器也算是计算机的一种,所以它们也有 IP 地址。在 TCP/IP 网络中,传输的数据都会携带 MAC 地址和 IP 地址两个地址。IP 地址是一个 32 比特的整数,每 8 比特为一组,组间用“.”分隔, 分成 4 段表示。8 比特所表示的整数换算成十进制后范围是0~255,因此可用作 IP 地址的整数是 0.0.0.0~255.255.255.255,共计4294967296 个。通过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


如图 4 所示,显示在 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 比特是主机地址。4 个二进制数可以表示的范围是从0000 到1111,共16 个数。而因为最开始的0000 和最后的1111 具有特殊的用途,所以笔者的办公室内最多可以配置14 台计算机,它们的主机地址范围是从0001 到1110。但是这其中又有一台路由器,所以实际上最多只能放置13 台计算机。与MAC 地址一样,每个IP 地址的值也都是独一无二的。

四、实验 3:了解 DHCP 服务器的作用

        IP 地址和子网掩码都是在软件上设置的参数。请先打开控制面板中的“网络连接”,然后用鼠标右键单击“本地连接”并选择“属性”菜单项,接着在打开的窗口中选择“Internet 协议(TCP/IP)”,最后单击“属性”按钮A。这样就打开了设定IP 地址和子网掩码的对话框(如图5 所示)。(不同版本的windows打开TCP/IPv4属性方法会略微不同)

        虽然在这个对话框中可以手动设置IP 地址和子网掩码,但是大多数情况下选择的还是“自动获得IP 地址”这个选项。这个选项使得计算机在启动时会去从DHCP 服务器获取IP 地址和子网掩码,并自动地配置它们。DHCP 的全称是Dynamic Host Configuration Protocol(动态主机设置协议)。在此搭建的LAN 中,使用了一台装有Linux 的计算机充当DHCP 服务器的角色。因为Windows 的计算机也同样支持DHCP 的协议,所以即使服务器上装的是Linux,而客户端装的是Windows,也没有关系。DHCP 服务器上记录着可以被分配到LAN 内计算机的IP 地址范围和子网掩码的值。作为DHCP 客户端的计算机在启动时,就可以从中知道哪些 IP 地址还没有分配给其他计算机。图5中有“默认网关”的配置项。通常会把路由器的 IP地址设置在这里。也就是说路由器就是从LAN 通往互联网世界的入口(Gateway)。路由器的IP 地址也可以从DHCP 服务器获取。注意一点,这里选择了“自动获得 DNS 服务器地址”这一选项。也就是说,DNS 服务器的 IP 地址也可以从 DHCP 服务器获取。

五、实验 4:路由器是数据传输过程中的指路人

        在分组管理下,IP 地址中的网络地址部分可以代表一个组中的全部计算机,即一个 LAN 中的计算机全体。互联网就是用路由器把多个LAN 连接起来所形成的一张大网。路由器正如其名,就是决定数据传输路径的设备。在本实验环境中,与 LAN 内的其他计算机一样,路由器也是连接在集线器上的。因为 LAN 内采用了 CSMA/CD 机制,所以所有发送出去的数据也都会发到路由器上。当从公司内的计算机向另一家公司的计算机发送数据时会发生什么呢?首先,一个不属于 LAN 内计算机的 IP 地址会被附加到数据的发送目的地字段上。这样的数据虽然会被 LAN 内的计算机所忽略,但是不会被路由器忽略。因为路由器的工作原理就是查看附加到数据上的 IP 地址中的网络地址部分,只要发现这个数据不是发送给 LAN 内计算机的,就把它发送到 LAN 外,即互联网的世界中。路由器虽然看起来就是个小盒子,可实际上是一台神奇的计算机。分布在世界各地的 LAN 中的路由器相互交换着信息,互联网正是由于这种信息的交换才得以联通。这种信息被称作“路由表”,用来记录应该把数据转发到哪里。在像互联网这样的网络中,传输路径错综复杂,而路由器就是站在各个岔路口的指路人(如图 6 所示)。在一台路由器的路由表中,只会记录通往与之相邻的路由器的路径,而并不会记录世界范围内的所有传输路径。

下面就实际观察一下路由表吧。为此需要在命令提示符窗口中执行如下命令(执行结果如图 7 所示)。
   route print

路由表由5 列构成。Network Destination、Netmask、Gateway、Interface 这四列记录着数据发送的目的地和路由器的IP 地址等信息。Metric 这一列记录着路径的权重,这个值由某种算法决定,比如数据传输过程中经过的路由器的数量。如果遇到有多条候选路径都可以通往目的地的情况,路由器就会选择Metric 值较小的那条路径。在路由表中还有如下的规则:如果数据的发送目的地就在本LAN 中,则可以直接发送数据而无需经过路由器转发;反之如果在LAN 外(或发送目的地的IP 地址不在路由表中),则需要经过路由器转发。细节虽然有些复杂,但是只要了解了大体上的规则就可以了。

六、实验 5:查看路由器的路由过程

        假设浏览笔者一个主页(http://www.grapecity.com/)。GrapeCity 的 Web 服务器中的数据,要经过若干个路由器的转发才能达到诸位的计算机上。通常把这种数据经过路由器转发的过程称为“路由”(Routing)。在命令提示符窗口中执行 tracert 命令后,就可以查看路由的过程了。执行时需要在 tracert 的后面指定一个主机名(或计算机名),作为数据的发送目的地。这样看到的转发路径其实是相反的,那我们就干脆来看一下诸位的计算机到 GrapeCity 的 Web 服务器的路径吧。请在命令提示符窗口中执行如下命令(执行结果如图 8 所示)。
    tracert www.baidu.com

 

左侧按照1~8的顺序列出了数据前进道路上途经的IP 地址。第1 行的192.168.1.1是作为实验对象的LAN 内的路由器。第2 行的172.20.192.1 是笔者所租用的互联网服务提供商的路由器。从第3 到第7 行,是其他服务提供商的路由器。最后,第8 行的112.34.112.41是BaiDu 的Web 服务器。可以看到,从笔者LAN 出发,通过8 次路由才终于到达了BaiDu。

七、实验 6:DNS 服务器可以把主机名解析成 IP 地址(本实验须在服务器上完成)

        在互联网的世界中,本应使用 IP 地址这样的数字来标识计算机才是,而刚刚却能使用一串字符 www.baidu.com 来标识 BaiDu 的 Web 服务器。实际上,在互联网中还存在着一种叫作 DNS(Domain Name System,域名系统)的服务器。正是该服务器为我们把 www.baidu.com 这样的域名解析为了112.34.112.41 这样的 IP 地址 。诸位的计算机都有一个主机名,每个 LAN 也都有一个域名。举例来说,笔者所使用的计算机的主机名是 ma50j(源于这台计算机的型号),所在的 LAN 的域名是 yzw.co.jp。把主机名和域名组合起来所形成的 ma50j.yze.co.jp,就是能够标识笔者这台计算机的一个世界范围内独一无二的名字,这个名字与 IP 地址的作用是等价的。通常把这种由主机名和域名组合起来形成的名字称作 FQDN(Fully Qualified DomainName,完整限定域名)。在互联网中,难以记忆的 IP 地址使用起来很麻烦。于是人们就发明出了 DNS 服务器,这样只需要使用 FQDN,DNS 服务器就可以自动地把它解析为 IP 地址了(这个过程叫作“域名解析”)。DNS 服务器通常被部署在各个 LAN 中,里面记录着 FQDN 和 IP 地址的对应关系表。世界范围内的 DNS 服务器是通过相互合作运转起来的。如果一台 DNS服务器无法解析域名,它就会去询问其他的 DNS 服务器。这套流程是自动进行的,诸位并不会意识到。下面我们就进入实验阶段吧。首先,查一查各自计算机的主机名。在命令提示符窗口执行 hostname 这条命令。结果中只会显示主机名,并没有 FQDN(如图 9 所示)。

接下来想要查看 FQDN 的话,则需要执行之前使用过的 ipconfig /all 命令。结果画面中,Host Name 后面显示的是主机名, 而 DNS Suffix Search List 后面显示的就是域名。将这两者组合起来就能得到FQDN。于是可以确认笔者计算机的 FQDN 确实是 ma50j.yzw.co.jp(如图 10 所示)。

        下面再来操作一下DNS 服务器。在命令提示符窗口中执行nslookup,屏幕上就会显示出一个提示符“>”,表示现在可以询问DNS服务器了。而提示符上面的ns.yze.co.jp 和202.26.186.35,则是公司 LAN 内的 DNS 服务器的 FQDN 和 IP 地址。试着输入 www.grapecity.com,然后按下 Enter 键。结果输出了 210.160.205.80,这正是 GrapeCity的 Web 服务器的 IP 地址。www.grapecity.com 和 210.160.205.80 的对应关系,是通过询问其他互联网上的 DNS 服务器才得知的,并没有被事先录入到LAN 中的 DNS 服务器上。要想退出 nslookup,请输入exit,然后按下 Enter 键(如图 11 所示)。

八、实验 7:查看 IP 地址和 MAC 地址的对应关系

        在互联网的世界中,到处传输的都是附带了 IP 地址的数据。但是能够标识作为数据最终接收者的网卡的,还是 MAC 地址。于是在计算机中就加入了一种程序,用于实现由 IP 地址到 MAC 地址的转换,这种功能被称作 ARP(Address Resolution Protocol,地址解析协议)。ARP 的工作方式很有意思。它会对LAN 中的所有计算机提问:“有谁的IP 地址是210.160.205.80 吗?有的话请把你的MAC 地址告诉我。”通常把这种同时向所有LAN 内的计算机发送数据的过程称作“广播”(Broadcast)。通过广播询问,如果有某台计算机回复了MAC 地址,那么这台计算机的IP 地址和MAC 地址的对应关系也就明确了。ARP 的工作流程也是自动进行的,诸位并不会意识到。如果为了查询MAC 地址,每回都要进行广播询问,那么查询的效率就会降低。于是ARP 还提供了缓存的功能,当向各个计算机都询问完一轮之后,就会把得到的MAC 地址和IP 地址的对应关系缓存起来(临时保存在内存中)。存起来的这些对应关系信息称作“ARP 缓存表”。只要在命令提示符窗口中执行arp -a 命令,就可以查看当前ARP缓存表中的内容。那么,作为最后的实验,我们就来查看一下ARP 缓存表吧。

九、TCP 的作用及 TCP/IP 网络的层级模型

        TCP/IP 这个词表示在网络上同时使用了TCP 和IP 这两种协议。正如前面所讲解的那样,IP 协议用于指定数据发送目的地的IP 地址以及通过路由器转发数据。而TCP 协议则用于通过数据发送者和接收者相互回应对方发来的确认信号,可靠地传输数据。通常把像这样的数据传送方式称作“握手”(Handshake)(如图 13 所示)。TCP 协议中还规定,发送者要先把原始的大数据分割成以“包”(Packet)为单位的数据单元,然后再发送,而接收者要把收到的包拼装在一起还原出原始数据。

        前述中,一直把协议和约束等同起来。正因为发送者和接收者都遵循了相同的约束,双方才能相互发送数据。为了能够在约束下收发数据,操作系统将实现了 TCP 和 IP 等协议的程序作为自身的一部分功能提供。遵循约束表现在统一数据的格式上。例如,敲打键盘输入的电子邮件正文等数据,并不是原封不动地发送出去的,而是先通过实现了 TCP 协议的程序附加上遵守 TCP 约束所需的信息,然后再通过实现了 IP 协议的程序,进一步附加上遵守 IP 约束所需的信息。实际上计算机发送的是以包为单位的、附加了各种各样信息的数据(如图 14 所示)。

硬件上发送数据的是网卡。在网卡之上是设备驱动程序(用于控制网卡这类硬件的程序),设备驱动程序之上是实现了 IP 协议的程序,IP程序之上则是实现了 TCP 协议的程序,而再往上才是应用程序,比如Web 或电子邮件。这样就构成了一幅在硬件之上堆叠了若干个软件层的示意图(如图 15 所示)。TCP 协议使用被称作“TCP 端口号”的数字识别上层的应用程序。TCP 端口号中有一些是预先定义好的,比如Web使用 80 端口,电子邮件使用 25 端口(用于发送)和 110 端口(用于接收)。

(转载自《计算机是怎样跑起来的》)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值