1 分层网络模型
1.1 为什么是分层模型
数据是由用户借助应用程序产生。我们要与家人和朋友语音通话、视频通话,
我们要发送产品资料、方案、合同草稿给商业伙伴,不管是音频流、视频流还是 
文本、图片,通过计算机处理和传输前都要先转化成数字数据。单纯的数字数据
是不会自己跑到家人、朋友和商业伙伴那里的,需要对它进行封装,添加一些
识信息控制信息标识信息用来标记数据的类型、接收者与发送者,以及传送
方式等。通信双方需要建立通信会话,基于通信会话才能收发数据,封装的控制
信息就是给会话协议建立通信会话用的。被封装后的数据形成一个个的数据报
(Segment)、数据包(Packet)、数据帧(Frame)等。
我们把对数据标识封装 和会话的控制的方法或规则进行标准化,于是就形成了协议(Protocol
负责数 据标识封装的协议叫做标识协议封装协议,负责会话控制的协议被叫做信令协
。因为应用的种类实在太多,不同的应用产生的数据也不一样,所以对应的标
识和控制的方法也就不同,这就需要定义各种各样的协议与之相对应:有区分不
同应用的协议,有标识不同数据类型的协议,有建立、维护、拆除会话的协议,
有标识接收者和发送者的协议,有针对不同通信介质提供相应的介质访问控制方
式的协议,有将数字数据进行编解码的协议,有定义数据传输介质属性和介质接
口形式的协议。
数据通信整个过程是一个复杂的系统工程,人类处理复杂系统工程的办法就是
分而治之,具体来说就是模块化加分层协作。将信息通信这个复杂的系统工程划
分成不同的功能层,再在功能层中划分出不同的功能模块,每一个模块实现系统
工程中的一部分功能,然后将所有的功能模块联系在一起,就完成了整个系统工
程的功能。这就是分层思想的根源,其最根本目的是为了复杂系统工程的实现。
1.2 分层带来的好处
当然,它让数据通信这个复杂的系统工程得以实现。同时,分层以后,不同的
组织完成其中的一部分功能就可以了,简化了实现难度。因为有各个组织的协同,
就需要建立标准化体系,而标准体系的建立,又推进了数据通信工业化和产业的
发展。
2 OSI TCP/IP
计算机网络是数据通信网络,我们经常把它叫做数通。数通网络的实现是基于
两大网络模型来构建的,我们最熟悉的可能是由 ISO(International Organization
for Standardization,国际标准化组织)制定的 OSI(Open System Interconnection,
开放系统互联)模型,是一个推荐模型(Reference Model),有时也会被写做
OSI/RM 或 ISO-OSI/RM,而 TCP/IP(Transmission Control Protocol/Internet
Protocol ,传输控制协议/因特网互联协议)模型则是事实上的标准,除少量个别
协议遵从 OSI 外,整个互联网现网框架都是以 TCP/IP 协议为思想基础搭建起来的,
也就是说整个网络系统的大厦都是由这两大模型为基础构建起来的。
我个人更愿意把 TCP/IP,Transmission Control Protocol/Internet Protocol 翻译成
传输控制与互联网协议。
通过对两大网络模型的介绍,为读者提供一个高屋建瓴地视角,对整个网络系
统有个全局的认识,并为进一步地学习和掌握网络知识,分析、定位、解决网络
问题打下基础。
本文以 OSI 模型为框架,介绍每一层的功能,数据在本层的表现形式,工作在
本层的设备和典型协议等。在本节中并没有对某个特定的协议做过多讲解或论述,
仅做初步了解就够了,有关协议的更多内容可以查阅下一篇文章,如果某个协
议或涉及到的技术在生产中应用比较普遍,后面会有专门的篇幅详细介绍。
2.1 OSI 模型
                                                            图 01-01 OSI 网络模型
ISO(International Organization for Standardization,国际标准化组织)制定的
OSI(Open System Interconnection,开放系统互联)模型,是一个考模型
(Reference Model),有时也会被写做 OSI/RM 或 ISO-OSI/RM,它是我们学习计
算网络必须要了解的基础和标准网络模型。此模型深入人心,流行甚广,不可不
知。

网络层2.2 TCP/IP 模型

                                                                         图 01-02 TCP/IP 网络模型
TCP/IP 在层次划分上更加简单,只有四层,由 IETF 提出并维护,它将 OSI 模
型的应用层、表示层、会话层合并,称之为应用层,提供应用服务;将数据链路
层和物理层合并,称之为网络接入层,并将网络接入层拆分成两个子层(Sub
Layer),分别是 LLC(Logic Link Control,逻辑链路控制)子层和 MAC(Media
Access Control,介质访问控制)子层,提供网络接入的功能。我们常说的 MAC
地址(MAC Address)就属于 MAC 子层(MAC Sub Layer)。此模型是计算机网
络的实事标准,不可不知。

数据流层2.3 OSI TCP/IP 对比

图 01-04 OSI 与 TCP/IP 网络模型对比
虽然有对应关系,甚至是相同的名字,但是两者定义的内容并不完全相同。

图 01-03 改进的五层模型

在实际的生产环境和工程实现中,工程技术人员在讨论和交流时实际上使用的
网络模型是 OSI 与 TCP/IP 融合后的一种改进模型。改进模型同时包含 TCP/IP 模
型的应用层、传输层、互联网络层和 OSI 模型的数据链路层、物理层。改进后形
成五层模型,分别是应用层,传输层,网络层,数据链路层和物理层。
2.5 实事上的标准
对于当前一统天下的以太网络(802.3)和无线网络(802.11),我们很难将其
单独归入 OSI 模型的数据链路层或物理层,因为它同时包含了数据链路层和物理
层定义的内容和功能,它属于 TCP/IP 模型的网络接入层。
我们在谈及 OSI 模型的表示层和会话层时,基本没有什么比较耳熟能详的协议、
标准或技术,这是因为 OSI 模型的应用层、表示层、会话层实际上对应到了
TCP/IP 的应用层。TCP/IP 模型基于 OSI 模型进行优化,并对各层不断地更新和迭
代,以适应层出不穷的应用所提出的新要求,而 OSI 模型在后期的更新上做得并不好,以至于自己定的标准,被别人不断迭代优化后成为实事标准。如同人要不
断学习并自我迭代才不会被淘汰一样。
尽管如此,我们在讨论网络架构模型时,习惯上还是使用 OSI 七层模型来论述。
虽然 TCP/IP 模型是实事上的标准,但是 OSI/RM 早已深入人心,我选择遵从大多
数人的习惯。尽管有迎合甚至讨好世众之嫌,但不代表我没有进行独立思考。如
果有可能,若干年后,我会考虑以 TCP/IP 模型为标准进行论述。也许你
说:啰啰嗦嗦这么多废话,而我们只需要一个能指出皇帝新装的孩子。好吧,可
能是我还不够纯粹,让我继续再粹炼上几年!从更深层次来说,各种模型不过都
是不同的解释方式,而伴随着网络技术的改进,对应的解释方式也会随之而变。
3 OSI 各层简介
3.1 物理层 Physical Layer
定义了机械的、电气的、规程的、功能性的标准。
数据形式是二进制流(Bit Flowing)。
本层设备有中继器(Repeater)集线器(Hub)等。
物理层是网络存在的物理条件。这一层主要定义了通信介质及性质,接口形式
和光电信号等。IEEE 802.3 协议簇所定义的以太网是这一层最重要的协议,已形
成对 LAN 网络的实事垄断。
3.2 数据链路层 Data Link Layer
定义了帧结构和物理流控。
数据形式是帧(Frame)。
本层设备有网桥(Bridge)和交换机(Switch)。
在 IEEE 802 中又被分为较上层的 LLC(Logic Link Control,逻辑链路控制)子层和较下层的 MAC(Media Access Control,介质访问控制)子层。
根据不同的通信介质及其组网拓扑,规定介质的访问控制方式。可以简单概括
为通信介质、组网拓扑、介质的访问控制方式。
IEEE 802.3 是定义有线网络的协议簇,有线网络使用 CSMA/CD(Carrier
Sense Multiple Access with Collision Detection,带冲突检测的载波侦听多
路访问)逻辑链路控制。IEEE 802.11 是定义无线网络的协议簇,无线网络使用
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,带冲突
避免的载波侦听多路访问)。有线网络可以通过监听线路电压或电流的方式监听
载波是否空闲,而无线网络的载波是否空闲却无法通过载波侦听之外的方式实现,
只能通过冲突避免的方式来实现线路分时共享。
以太网在二层局域网上拥有绝对优势地位。二层比较知名的封装还有
PPP(Point to Point Protocol,点到点协议)和 HDLC(High Data Link
Control,高级数据链路封装)等,多用于广域网,但地位也受了以太网与传送网
相结合的挑战。
3.3 网络层 Network layer
定义了数据包结构,编址,寻址,路由计算等。
数据形式是包(Packet)。
工作在网层的设备是路由器和三层交换机等,但是我们一般统称这为路由器。
主要的功能是计算并提供路由。
比较典型的提供路计算的协议有:RIP(Routing Information Protocol,路
由信息协议),OSPF(Open Shortest Path First,开放最短路径优先),IS
IS(Intermediate System to Intermediate System,中间系统到中间系
统),IGRP(Interior Gateway Routing Protocol,内部网关路由协
议),BGP(Border Gateway Protocol,边界网关协议)等。带有工具性质的协议ICMP(Internet Control Message Protocol,互联网控制消息协议)和提供单播
IP 地址到下一跳 MAC(Media access control)地址映射关系的 ARP(Address
Resolution Protocol,地址解析协议)协议,是这一层另外两个非常重要的协议。
RIP 和 BGP 本质上是应用层协议,RIP 使用 UDP 520,BGP 使用 TCP
179。Integrated IS-IS 是本质上是链路层协议,通过 802.3 的格式直接封装在数
据帧中。但是因为以上三个协议都提供路由计算和选择,所以我们仍然把它们归
为网络层协议。
其实这一层最重要的协议是 IP(Internet Protocol,互联网协议),它提供
数据包的封装和主机节点标识,只有被封装和标识的数据才可以被转发。
3.4 传输层 Transport Layer
管理网络层连接,提供了可靠的包传递机制。
数据形式是分段或叫分片(Segment)。
传输层最重要的两个协议是 TCP(Transmission Control Protocol,传输控
制协议)和 UDP(
User Datagram Protocol,用户数据报协议)。TCP 设计之初是
为了高可靠性传输,这就需要有比较复杂的协议报头封装,因此协议开销比较大,
在没有添加任何选项的情况下,报头大小通常是 20Byte,传输效率相对较低。
UDP 设计之初是为高效传输,放弃了比较复杂的控制,协议报头封装比较简单,
只有 8Byte,但是可靠性低。另外一个在传输层值得被关注的协议是
SCTP(Stream Control Transmission Protocol,流控制传输协议),它也是一
个面向连接的协议,支持多宿主和多流,并且安全性更高,将来有望得到更多的
应用和发展。
3.5 会话层 Session Layer
会话的建立或拆除等。
RPC(Remote Procedure Call,远程过程调用)是这一层比较典型的一个协议。这一层在工业应用中并没有得到很好的发展,它的很多功能被应用层和传输层替
代了。当然你也可以说是被 TCP/IP 替代了。
3.6 表示层 Presentation Layer
定义数据的结构和传输格式,编解码,压缩解压缩,加解密等。
与会话层一样的一个非常难堪的存在。它基本上是被应用层替代。我个人认识
会话层和表示层在设计之初考虑不足够周全,对工作任务分解不合理导致。
其实数据格式原计划是放在这层来实现。但是数据是应用程序产生的,应用层
就顺便定义了数据的格式。很显然由我产生的数据由你来定义格式显然是不合理
的,不利于合作和实现。
3.7 应用层 Application Layer
提供接口给终端用户应用,为面向网络的应用程序提供服务。
各种各样的应用需求使得应用层的协议相比其它层要丰富得多,工作在应用层
的协议是七层模型中最多的,各种应用呈百花齐放之态。其中最值得一提的是
HTTP(Hypertext Transfer Protocol,超文本传输协议),无人能出其右。当然
比较重要和常见的还有 DHCP(
Dynamic Host Configuration Protocol,动态主
机配置协议)、DNS(Domain Name System,域名系统)、SMTP(Simple Mail
Transfer Protocol,简单邮件传输协议)、POP3(Post Office Protocol,邮局
协议版本 3),IMAP(Internet Message Access Protocol 4,互联网消息访问
协议版本4)等

读书笔记(随笔1)分层网络模型相关推荐

  1. 《运营之光》《策略产品经理》《推荐系统实践》读书笔记随笔

    作为数据产品经理,接触最多的业务方莫过于是运营人员,不管是搭建标签体系,还是日常的数据分析.数据数据产品,归根到底都是希望能够为洞察用户.产品等相关的实体,从而实现精细化运营.因而在搭建标签体系的时候 ...

  2. 《培根随笔》读书笔记 (一)

    <培根随笔>读书笔记 弗朗西斯·培根的生平 谈真理 谈死亡 谈宗教统一 谈报复 谈厄运 谈作假与掩饰 谈父母与子女 谈结婚与独身 谈嫉妒 谈爱情 谈高位 谈胆大 第一次读这本书的时候还是高 ...

  3. 新随笔--读书笔记《学会提问》:学习提出好问题的思维方法

    新随笔--读书笔记<学会提问>:学习提出好问题的思维方法 书中要点摘录: "对自己的所见所闻如何回应,你必须做出选择: 1.你把别人的观点当成自己的观点. 2. 对对方的观点进行 ...

  4. 《培根随笔》读书笔记(二)

    <培根随笔>读书笔记 前篇 谈旅游 谈君权 谈诤谏 谈拖延 谈革新 谈快捷 谈假聪明 谈友谊 谈花销 谈国家的真正强大 谈养生之道 谈话语 谈殖民地 谈财富 谈预言 谈野心 谈习惯与教育 ...

  5. 第60篇随笔:《道法自然》读书笔记

    这是今年4月份读<道法自然>的时候记得读书笔记,以前记录到公司的论坛上了,今天整理了一下,放到这里,这本书是不错的书,刚刚接触面向对象开发的朋友可以看看,记得有意思的事情就是,我买了这本书 ...

  6. 行人检测 读书笔记 综述

    行人检测 读书笔记 综述(1) 朱文佳-基于机器学习的行人检测关键技术研究 本文是博主对上海交通大学的朱文佳的硕士毕业论文的学习笔记,如果不当或理解错误之处,敬请指导,不胜感激. 绪论 1.1 典型应 ...

  7. 读书笔记 之《软件架构设计: 大型网站技术架构与业务架构融合之道》

    大家好呀,我是小菜~ 帅哥美女,知道你们时间宝贵,那么就由小菜为你读好一本书,读一本好书,取其精华,与你共享~! 本文主要分享 <软件架构设计:大型网站技术架构与业务架构融合之道> 如有需 ...

  8. 代码精进之路:从码农到工匠读书笔记

    代码精进之路:从码农到工匠读书笔记 第一章技艺 代码命名规范的意义: 由此可见,事物的复杂程度在很大程度上取决于其有序程度,减少无序能在一定程度上降低复杂度,这正是规范的价值所在.通过规范,把无序的混 ...

  9. 软件架构设计 温昱著 - 读书笔记

    #读后感#一本实用性很强的架构入门书籍.内容有深有浅,涉及面广,帮我们树立一个架构设计的全局观.  本书已读完,把读后感放在最前面,以下是详细的读书笔记. #读书笔记# 我们将软件架构概念分为两大流派 ...

最新文章

  1. FTP 命令的使用详解
  2. SQL SERVER中架构的理解
  3. SQL Server中常用的快捷键
  4. 7、Power Map—实例:添加二维数据表以及批注
  5. MyBatis 配置文件 用户密码加密存储
  6. 用计算机表白我不喜欢你了,隐藏式表白,表白不一定要用“我喜欢你”这几个字...
  7. 使用java实现冒泡排序和选择排序
  8. 监控进程网络使用情况--NetHogs
  9. 在线抽奖、限时秒杀、拼团抢购,别的商城有的功能你也可以轻松拥有!
  10. js md5 加密算法
  11. C/C++外部链接、内部链接
  12. 迅雷大乱,突现“两个迅雷”
  13. 网络 随笔 1-再补充一丢丢常识
  14. starUML建立模型及生成代码框架
  15. UER-py快速上手
  16. Java 对象排序完整版
  17. 【志强课堂】今天聊一聊文案有何作用?
  18. SHA-256 算法-java实现
  19. mbio期刊拒稿率_PLoS Pathogens
  20. 北美CS求学找工指南

热门文章

  1. Android人脸识别(已开源)
  2. 为什么 Java 仍将是未来的主流语言?
  3. 【HTML5响应式网页设计T1-T2】
  4. MyBatis 配置文件 与 约束
  5. 对话系统的历史(聊天机器人发展)
  6. java cookie 跨域共享_JavaWeb 系统共享跨域cookie的实现
  7. 浙江理工大学计算机研究生导师,浙江理工大学
  8. 拉菲胶带拉伸线行业调研报告 - 市场现状分析与发展前景预测
  9. 简单易用的中文PDF转码器
  10. Vue - 简约大气 404 页面