初步认识网络

  大学期间学过计算机网络这个课本,当时学的时候,虽然在学,但是里边的很多东西都没有研究明白。随着时间的推移,稀里糊涂的给忘的差不多了。

  今天又花了点时间重新看了看网络相关的知识。

  之所以回头看,是因为今天在学 k8s 的时候,听到 UDP协议,有点蒙圈了。网络是在哪一层的了,忘了都干了什么事。

# #  TCP/IP 协议族,先明白什么是协议

  看了基本网络相关的书籍,大家都喜欢从一个 url 请求来分析网络,都经历了什么。我这篇文章先介绍一些基本的概念。

  首先先要明白什么是协议:协议就是一个约定,它是想要传输信息做的一个约定。举一个简单的例子,古时候的狼烟烽火传信,看到狼烟,就是告诉大家敌人来犯了。那好好的就怎么知道狼烟就代表敌人来犯了呢? 这就是想要传信息的人,提前见个面,摆上茶水,倒上酒,摆上花生米,说:咱们约定一下,看到我放狼烟就是敌人来侵犯了。 而在计算机里边,不同的硬件,不同的操作系统,想要进行传输消息,都需要约定好,不然就像一个只会说汉语的中国人和一个只会说英语的外国人对话,大家在拼命的交换信息,结果谁都没说明白。而网络发展到今天,今天的这个协议就是全世界的一个约定好的。多数都统一的情况下,少数不同意,那就不好意思了,少数服从多数,不然就不和你玩了。

# #  网路分层的思想

  我认为,其实这就是最早的分层的思想,我是做java后台开发的,然后开发中就来了分层解耦的思想,什么MVC。出发点是啥呢?其实就是为方便维护,改动一个地方的时候,不用改其他的东西。

  而网络从简单到非常的复杂,显然会有管理维护的问题。这种分层解耦的思想并不难理解,举个例子,一本书有一千页,需要修订内边的内容的时候,每次大家都对这一千页研究一遍,然后出一个修订版,这需要花很长时间。每次修订都要花这么多时间,随着内容的增多,需要花费更多的时间。于是有人提出来,咱们把一这一千页划分划分,每十页一个单元。这样需要修订,只需要研究这十页就够了。问题复杂程度突然就从一千的量级到了十的级别。

  所以这种复杂问题单元化,简单化的思想就是分层。而在网络这个复杂的世界里更需要划分了。

# # 再看一下网络商量成了什么样子

  

  首先看到的是四层,每层都有自己商量好的事,那就是各层有各层的协议。

  分层就是将问题简单化的,划分清职责,各自干各自的活儿。

  你发起一个url 请求,就是一个网址,需要经过上图箭头的流动。

 # #  再来看看究竟各层都做了什么事

 

# #  商量后的结果 ——协议

 应用层——  DNS (域名解析协议)  HTTP (超文本传输协议) FTP(文件传输协议)

 传输层—— TCP(可传输协议)     UDP(不可靠传输协议)

 网络层—— IP 协议  ARP(地址解析协议)

 为什么要有 DNS 协议? 

 符合人类的记忆习惯,人类的记忆,多数人是更喜欢字符串的,比方说 www.alibab.com  和 192.168.100.100 (并非真的,举个例子) ,相比这两个大家更喜欢去记前边的 ailibaba 。 

  既然人类更喜欢字符串,怎么不用字符串作为 IP 地址呢?原因是计算机更喜欢数字,大家都不愿意需妥协,所以干脆出一个服务,大家各自用各自喜欢的好了。

  于是有下边的过程:

  

  

发布了336 篇原创文章 · 获赞 295 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/star1210644725/article/details/104283781