2

关于 Alice 和 Bob 通信的故事

通信和网络传输数据和像,都是传输数据,所以用通信做类比,方便理解和记忆。

应用层

比如 Alice 找苍老师的种子,向种子网站 Bob 要(pull)。这种通信的方式就是我问,你答,也就是 HTTP 方式。

再比如 Alice 和 Bob 是一个人写信,一个人收,也就是说 Alice 向 Bob 发信息(push),Bob 接收,这个交流方式,就是 SMTP。

应用层是为用户提供的接口,定义了用户之间的交流方式。

表示层

既然是交流,就要解决语言的问题,总不能一个讲英语,一个讲汉语,这个就是编码。

表示层解决编码、加密等问题。

会话层

既然两个人要通信,如何开始?过了一段时间,不想继续通信了,如何结束?这些都是会话层要处理的。

会话层控制两台电脑之间的链接。

传输层

两个人要通信了,由于传输途径的限制,一封信会被切割为一个一个段落(segment)。那么其中一个段落传丢了怎么办?要不要重传?每个段落,要顺讯到达吗?这些就是 TCP/UDP 的区别。传输层用来解决这些问题。

传输层解决主机间的数据传输(可以是不同网络)和传输质量的问题。

网络层

通信前,选好了对话的姿势(应用层),有了传输内容的表示形式(表示层),传输的质量有了保证(传输层)。

那怎么标识 Bob 呢?当然是地址了,比如 xxx 市 xxx 小区 : 100-505 室。
也就是小区 :门牌号,小区好比主机,小区的地址就是 IP ,门牌号就是端口号。

有了地址,选择怎样的路径呢?
一个地方到另一个地方的方式有很多种。比如深圳到北京,可以先从深圳 - 广州 - 北京,
也可以是 深圳 - 郑州 - 北京。

有远有近,有快有慢,要走哪条路的事情。既路由(routing)和传输控制(subnet traffic control)。

网络层解决的是不同网络间数据传输问题。

数据链路层

我们知道了,从深圳到北京,可以在广州中转。但北京传到深圳的信息是正确的吗(error detect)?不正确怎么更正error correct)?这些问题,都由数据链路层解决。

数据链路层接解决直接相连的两个节点(node)数据传输的问题。

物理层

物理硬件和物理硬件有是怎么连接的呢?网线是什么?频率等物理特性是什么,这些都是物理层所要解决的。

参考

OSI 7-Layer Model and the role of each layer

OSI model

The OSI Model's Seven Layers Defined and Functions Explained

Computer Networking

通俗大白话来理解TCP协议的三次握手和四次分手


2dian718
108 声望4 粉丝

引用和评论

0 条评论