赞
踩
承接上篇文章(十分钟了解关于TCP/IP网络的基础知识)
虽说使用IP地址确实方便了我们使用者记忆以及整理归类、寻找信息的发送目的地,但是最终接收数据的地方,还是MAC地址,于是乎,为了实现有IP地址到MAC地址的转换,引入了名为ARP(Address Resolution Protocol)又称之为地址解析协议。
ARP通过广播(Broadcast,这是个专业名词,后面还会继续提起)的方式对LAN中所有的计算机提问:“哎,谁IP地址是10.165.7.116(上篇文章中的例子)呀?你MAC地址多少啊,快过来登记一下!”,如果有哪台计算机回复了MAC地址,那么IP地址和MAC地址的对应关系也就明确了。
但要是每次临到要用的时候在进行广播询问,那么查询的效率就会降低,所以ARP提供了缓存的功能,提前向各个计算机广播一遍并且存储起来,这种存起来的对应关系信息称之为“ARP缓存表”,我们可以使用arp -a 命令来查看保存在本地的ARP缓存表:
在一个LAN中,IP地址中的网络部分就可以代表了这个LAN的全部计算机,而路由器就是将多个LAN连接器形成一张大网(也就是传说中的互联网)。
我们来设想一下,当一个LAN(举例为A)内计算机想把数据发送给另外一个LAN(举例为B)的计算机时会发生什么呢(如果是发送给本LAN的就不用经过路由器了)?可以肯定的是,发送数据时会把LAN(举例为B)的IP地址也附加上,发送到路由器那去,而路由器通过解析数据上的IP地址了解到数据是发往互联网的,就把它发送到LAN外去(此乃路由器的工作原理)。但像互联网这种传输路径错综复杂的网络,路由器是怎么知道数据要传到哪里的呢?
神奇的是路由表会记录通往与之相邻的路由器路径,并不会记录全世界访问的所有传输路径,要是路由表没有找到,就从相邻的路由表那里找,一步一步到达目的地:
我们可以通过指令route print来查看路由表:
PS:图上的跃点数可以理解为权重,由某个算法决定,比如数据传输过程中经过的路由器数量。如果遇到多条候选路径都可以通往目的地的情况,路由器就会选择跃点数较小的那条路径。
PSplus:使用tracert 指令可以查看路由器的路由过程:
如图上指令所示,为了跟踪寻找到www.baidu.com 的ip地址,从第一行一直到第十三行,都是所搜索过的IP地址,到了11次终于到达了目标地址。
图上的设置虽说可以手动设置IP地址以及子网掩码,但是大多数情况下还是会选择“自动获得IP地址”,这个选项会让计算机在启动时就从DHCP(Dynamic Host Configuration Protocol)又称动态主机设置协议,服务器中获取到IP地址和子网掩码,并自动配置。
DHCP服务器上记录着空余可以被分配到LAN内计算机的IP地址范围和子网掩码的值。作为DHCP客户端的计算机在启动时,就可以从中知道那些IP地址还没有分配给其他计算机。
上个例子的图中还可以看到一项“自动获得DNS服务器地址”,其中的DNS(Domain Name System)又称之为域名系统服务器,其作用在于把主机名解析成IP地址。我们可以用ipconfig /all来获取到主机名和域名:
如图中所示,“ma50j”是主机名,“yzw.co.jp”是域名,所以完整的域名就叫做“ma50j. yzw.co.jp”。我们在互联网的实际使用中,其实并不会直接使用到IP地址、MAC地址这种这么直接的数字来表达,反而是使用一些类似于www.baidu.com这种域名,再通过DNS服务器解析成IP地址。DNS服务器和前面说过的路由表一样被部署在LAN中,记录着IP地址和域名之间的关系,如果一个DNS服务器无法解析域名,就会通过其他LAN的DNS服务器来询问解析。
通过使用指令我们可以查看到域名和ip地址之间的关系:
如图上所示,通过搜索可以查到www.baidu.com的IP与域名之间的关系。
我们经常可以看到TCP/IP协议这个专业名词在网络基础知识之中,IP协议用于指定数据发送目的地的IP地址以及通过路由器转发数据,而TCP协议则通过数据发送者和接收者相互回应对方发来的确认信息,进而安全地传输数据,像这种数据传输方式通常称之为“握手”:
TCP协议中规定,发送者要把原始的大数据分割成以“包”为单位的数据单元发送,接收者通过把“包”拼装在一起还原出原始数据(其实还会附加各种各样的验证信息):
硬件上发送数据的是网卡。在网卡之上是设备驱动程序(用于控制 网卡这类硬件的程序),设备驱动程序之上是实现了 IP 协议的程序,IP 程序之上则是实现了 TCP 协议的程序,而再往上才是应用程序:
TCP 协议使用被称作“TCP 端口号”的数 字识别上层的应用程序。TCP 端口号中有一些是预先定义好的,比如 Web 使用 80 端口,电子邮件使用25端口(用于发送)和110端口(用于接收)。
PS:推荐大家看一下《计算机是怎么跑起来的》这本书,这两篇文章都是这本书做的笔记
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。