400908678
NEWS
网站建设、网站制作、网站设计等相关资讯

计算机网络该怎么学?

日期:2024-04-03 访问:470次 作者:admin

计算机网络是一门需要动手实践的学科,这点其实和编程很像。无论看多么牛X编程教科书,无论看多少遍,只要不动手去写代码,要不了多久就全还给课本了。

计算机网络可能比编程还要难得一点是,编程只要有一台电脑,一个编译环境就可以动手操练,虽然从入门到精通需要大量的代码实践,但是好在看得见摸得着,脚踏实地的感觉棒棒的。

计算机网络动手操练,需要有一个实验环境,需要大量的硬件设备,这是一笔很大的投入。如果纯粹看理论,没有动手实践,看完问问自己,记住了哪些知识点?这些知识点可以帮助自己去排除网络故障吗?答案往往是否定的,看书的过程有一种浪费光阴的虚度感!意志力薄弱的同学,实在难以为继,最后就放弃了!

初学者刚开始学习时,不要好高骛远,要脚踏实地,只要想动手,随时都可以的。从最简单的地方入手,看看同事的电脑的IP是多少,然后Ping 一下,看看能否Ping通?用抓包软件把Ping报文捕获下来,问问自己,为何在整个通信过程自己只提供了IP地址,报文里除了IP地址外,还有二层头、IP头、还有ICMP消息头,这些信息自己并没有提供,他们是如何生成的?是谁生成的?

万事开头难,刚开始甚至都没有学会如何看电脑的IP,在哪里可以Ping,如何使用抓包软件,但是如果真的想去学好计算机网络,这些都是小问题。如果每次通信前,都需要到对方的电脑上查看对方的IP地址然后才能通信,那实在是太不方便了。回忆一下我们平常都是怎样去使用电脑通信的?很少有直接输入IP地址的场合。

访问网页,要么直接输入网址、要么搜关键字,获得网址的链接直接点击进入,然后将链接保存在收藏里,下次直接点击进入。但是网址并不能直接用来通信,需要使用域名解析

访问公司邮件,邮件客户端自动会发现邮件服务器,这同样需要域名服务器提供域名解析支持。如果邮件里嵌入了超级链接,可以直接点击访问。

访问共享文件夹,直接打开网上邻居,可以看到主机列表,直接点击主机就可以通信。

以上各种应用场合,没有一个需要用户输入IP地址的场合。用户不需要输入,做为网络工程师,却要深刻地知道这一切都是怎么发生的,为什么要这么来设计。当用户需要输入IP地址的时候,往往意味着网络出故障了。

初学者再次看到DNS Server时,就会明白原来DNS是如此的重要,基本上所有的通信都离不开它,当你怀揣好奇再去学习DNS时,不会感觉那么枯燥!

计算机网络,提供的是管道服务,像自来水管一样单纯。发送方Bob向管道里注入一吨液体,接收方Alice就接收到整整一吨液体,不多一滴也不少一滴。当然这是完美的理想,而现实往往并不是这样的。

真实的情况是这样的:Bob与Alice之间自来水管,每隔几公里都有一个蓄水池(增压泵),这个蓄水池有若干个进水管,也有若干个出水管,如果进入管的整体流速 > 出水管的整体流速,那么这两者的流量差就会被临时缓存在蓄水池里。稍后如果进入管的整体流速 < 出水管的整体流速,那么蓄水池里的水就可以乘机流走。

但是如果进入管的整体流速 > 出水管的整体流速一直持续,多出来的水蓄水池容不下了,多出来的水就溢出了。这溢出的水是永远都无法到达目的地的,对吗?

这个蓄水池有一个专业的名字:路由器,由于蓄水池无法补偿溢出的水,自然就需要有一个流量补偿机制,来补偿流量丢失,那么谁来补偿呢?

肯定不能网络来补偿,网络一直以无状态(Stateless)为首要目标,如果让网络来补偿流量,自然就需要网络来记忆状态,这点是难以接受的!

最终流量补偿机制的重担就落在了流量发送方Bob的身上,实现这个流量补偿机制的代码赫赫有名,它的名字就是TCP!

TCP大佬实现流量补偿机制,其实很简单,就一句话:确认机制!

一旦流量到达接收方,需要接收方Alice明确确认到达,否则TCP大佬会周期性使用流量补偿(重传)机制。

所以TCP是一个需要记忆状态(State)的代码,它本质是Stateful的!

用日常生活中栩栩如生的场景,来理解计算机网络世界里的抽象描述,会有事半功倍之奇效!