浪里来浪里去!网络协议如何成就网上冲浪?( 二 )


有了统一的标准,现在知道发送的是什么了,但是怎么知道要发给谁呢?那就是通过mac地址,每台计算机都有着世界上独一无二的mac地址,通过这个地址能够标识唯一的一台计算机,将这当做地址再适合不过了 。okay,现在发送内容有了,发给谁也知道了,那咋发呢?能不能通过一条准确的通道能够直达接收者呢?
 
 计算机之间的通信方式是通过原始的广播来实现的 。
 
 什么意思呢?意思就是说,我要发送一条消息,这条消息的头部包含了是谁发的,发给谁的,那么我将这条消息发给同一个局域网下的所有计算机,他们收到了就看下是不是发给自己的,如果是则进行响应,否则就不管 。
 可能有人会质疑,"老哥,照你这么说,那全世界的计算机要通信的话不就得都在一个局域网内,这样的话,不就可以联机打CS了?" 我没说过这句话,周树人也没说过 。确实,如果只按照上面的方式,全世界的计算机需要进行通信的话必须要求在同一个局域网内,但这是不可能的,即便可能也是一种灾难 。所以需要更好的方法,这时候网络层的IP协议就登场了,IP协议的主要作用有两个:

给每台计算机分配IP地址和路由 。判断两台计算机是否在同一局域网内:计算的方式大致为两个IP地址跟子网掩码做于(&)运算,如果结果相同就在同一子网内,否则则不在 。(子网掩码有兴趣可以自己搜一下)
 嗯?你说的这个IP,它跟通信所需要的mac有关系吗?计算机之间是通过mac地址识别的,现在只有IP地址是对不上号的,所以我们需要一个转换器,这个转换器叫做ARP协议(OSI七层中属于链路层),ARP协议的作用就是将IP地址转化为mac地址 。有了这个协议,加上之前的那些,全世界的计算机都可以进行通信啦 。鼓掌!鼓掌!鼓掌!
 但是!不好意思,我还是得说但是,这样的话计算机之间貌似只能一对一,我们平时一台计算机肯定不止只运行一个程序,像下面这样都得有几个了 。
浪里来浪里去!网络协议如何成就网上冲浪?

文章插图
 
 肯定还有东西将其拆得更细,从而给程序定位,这时候传输层的端口协议TCP和UDP就上线了,TCP和UDP提供了端口的概念,这样我们通过ip转mac确定一台计算机,再通过端口确定具体的一个程序,从而实现端对端的通信,一台计算机运行多个程序,程序可以跟另一台计算机的程序进行通信,瞬间形成N×N 。到了这一层网络协议的基本就结束了,往上还有三层可以理解为辅助和加强作用 。
会话层:管理TCP连接、流量控制等 。
表示层:格式、字符、加密等翻译工作和转化 。
【浪里来浪里去!网络协议如何成就网上冲浪?】应用层:展示给用户的东西,例如HTTP协议就是一个页面,FTP用于传输等 。
Top
3. 小结# 本文的叙述方式比较口语化,但如果能简单理解那就足够了 。首先一开始讲输入一个网址发生的事情,接而引出下方的网络协议,在网络协议中从底层物理层的电信号到最上层应用层的http协议,大致的讲述模式为:当前的问题—>为了解决当前的问题需要怎么做 的这种模式,相信理解起来并不困难 。 




推荐阅读