Skip to content
字数
3327 字
阅读时间
13 分钟

1. 一个通信数据通信系统可能包含有哪些模块

为了减轻人类的脑力劳动,科学家和工程师们发明了计算机,为了传递计算结果,于是又发明了计算机网络。计算机和计算机网络都属于复杂系统,而复杂系统需要有不同的功能模块相互协作,实现共同目标。

1)人机界面(User Interface),将人类活动产生的声音和图像等信息转化为通信设备能够处理的数据。我们把它叫做应用程序,其中有一些是面向网络的应用(Network-Oriented Application)。

2)数据进入网络的接口,如Socket。

3)数据的转发,以及对被转发数据的打包(封装标识类协议),各转发点的联络与协商(通信及转发类协议)。

4)载波,调制与解调,将数据转换成能够在各种场景下传播的物理信号(电、光、电磁波等)。

5)传播介质,铜线、光纤、电磁波等。

2. OSI与TCP/IP

由DoD(U.S. Department of Defense)制订的TCP/IP(Transmission Control Protocol/Internet Protocol ,传输控制协议/因特网互联协议)模型受到了更多的软硬件厂商支持,成了事实上的标准。除少量极个别协议遵从OSI外,整个互联网都是以TCP/IP模型为思想框架搭建起来的,也就是说整个网络系统的大厦都是由这两大模型为基础构建起来的。

Transmission Control Protocol/Internet Protocol 翻译成传送控制协议与互联网协议

3. OSI与TCP/IP对比

![[Pasted image 20231203190625.png|图01-03 OSI与TCP/IP网络模型对比]]

在TCP/IP应用层,数据还是在用户空间,当到达主机到主机层后,就进入内核空间了,而网络接入层,则主要是设备及其驱动程序等,数据被调制成电、光、或电磁等信号在传输介质上传播。

4. 实事上的标准

IEEE制定的802.3和802.11分别在有线和无线局域网占有绝对垄断地位,但是我们却很难将其单独归入OSI模型的数据链路层或物理层,因为它同时包含了数据链路层和物理层定义的内容和功能,比如介质类型、组网拓扑、介质访问控制的方式、编码方式、接口形式等,它属于TCP/IP模型的网络接入层。以太网如它的名字一样魔幻,它借用了OSI的思想,却是TCP/IP的实现。

我们在谈及OSI模型的表示层和会话层时,基本没有什么比较耳熟能详的协议、标准或技术,这是因为OSI模型的应用层、表示层、会话层实际上对应到了TCP/IP的应用层。OSI模型是ISO组织当时的几大顶级科技公司,以及计算机领域和通信领域的院校和科研机构共同制订,它更加完整和全面,但是实现复杂成本高,而TCP/IP模型简单,实现成本低,并且在推出以后不断进行更新和迭代,以适应层出不穷的应用所提出的新要求。

OSI在市场上的失败并不影响它学术上的地位,它的设计思想及技术实现仍然具有很高的参考价值,值得认真学习,这也是它出现在很多教材里的原因,也是我们讨论的框架逻辑。以OSI模型为框架进行讨论尽管有迎合甚至讨好世众之嫌,但不代表我没有进行独立思考。如果有可能,若干年后此书再版,我或许会考虑以TCP/IP模型与OSI模型结合后的模型为标准进行论述。可能你还是会说:啰啰嗦嗦这么多废话,而我们只需要一个能指出皇帝新装的孩子。好吧,可能是我还不够纯粹,让我再继续粹炼几年!而从更深层次来说,各种模型都不过是不同的解释方式,而伴随着网络技术的改进,对应的解释方式也会随之而变。比如802.3是IEEE为数据链路层制定了LLC和MAC,而IEEE 802.3是公认以太网的标准,而以太网又是公认的LAN的标准,以太网同时也是公认的TCP/IP模型中网络接入层的标准。那到底是把数据链路层分成逻辑链路控制层和介质访问控制层来介绍,还是把数据链路层和物理层一起,叫做网络接入层来介绍呢?其实两种解释方式都没有错,区别主要是看在什么样的场景。

5. OSI各层简介

5.1 物理层 Physical Layer

定义了机械的、电气的、规程的、功能性的标准。

数据形式是二进制流(Bit Flowing)。

本层设备有中继器(Repeater)集线器(Hub)等。

物理层是网络存在的物理条件。这一层主要定义了通信介质及性质,接口形式和光电信号等。IEEE 802.3协议簇所定义的以太网是这一层最重要的协议,已形成对LAN网络的实事垄断。随着智能设备和移动设备的普及,间接促进了无线网络的普及,IEEE 802.11协议簇在移动端和消费市场的接入侧拥有绝对领导地位。

定义了帧结构和物理流控。

数据形式是(Frame)。 ![[Pasted image 20231203191921.png]] 本层设备有网桥(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,带冲突避免的载波侦听多路访问)。有线网络可以通过监听线路电压或电流的方式监听载波是否空闲,而无线网络因为隐蔽站问题(Hidden Station Problem)和暴露站问题(Exposed Station Problem),只能通过冲突避免的方式来实现线路分时共享。

以太网(Ethernet)在数据链路层封装上拥有绝对优势地位。另外还有比较知名的封装还有PPP(Point to Point Protocol,点到点协议)和HDLC(High Data Link Control,高级数据链路封装)等,多用于广域网,但地位也受了以太网与传送网相结合的挑战。还有像ATM(Asynchronous Transfer Mode,异步传输模式),ISDN(Integrated Services Digital Network,综合业务数字网),FR(Frame Relay,帧中继)等,曾经也是比较知名的封装标准,现在在生产环境中基本已经不存在了。

5.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的格式直接封装在数据帧中。但是因为以上三个协议都提供路由计算和选择,所以我们仍然把它们归为网络层协议。实际上说OSPF和ICMP是网络层的协议也是不完全准确的,因为OSPF和ICMP也需要IP封装,它们使用的IP协议号分别是89和1。

其实这一层最重要的协议是IP(Internet Protocol,互联网协议),目前应用比较好的有两个版本,分别是IPv4和IPv6,它提供数据包的封装和主机节点标识,只有被封装和标识的数据才可以被转发。

ICMP(Internet Control Message Protocol,互联网控制消息协议)也是网络层的一个重要协议,它的工具性质更明显一些,它经常被其它协议和网络诊断工具调用,通过Type + Code的方式标识消息的类型,用来表示查询和网络状态。

5.4 运输层 Transport Layer

也叫运输层,管理网络层连接,提供了可靠的包传递机制。

数据形式是分段或叫分片(Segment)。

运输层最重要的两个协议是TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。TCP设计之初是为了高可靠性传输,这就需要有比较复杂的协议报头封装,因此协议开销比较大,在没有添加任何选项的情况下,报头大小通常是20Byte,传输效率相对较低。UDP设计之初是为高效传输,放弃了比较复杂的控制,协议报头封装比较简单,只有8Byte,但是可靠性低。另外一个在运输层值得被关注的协议是SCTP(Stream Control Transmission Protocol,流控制传输协议),它也是一个面向连接的协议,支持多宿主和多流,并且安全性更高,将来有望得到更多的应用和发展。

5.5 会话层 Session Layer

会话的建立或拆除等。

RPC(Remote Procedure Call,远程过程调用)是这一层比较典型的一个协议。这一层在工业应用中并没有得到很好的发展,它的很多功能被应用层和运输层替代了。当然你也可以说是被TCP/IP替代了。

5.6 表示层 Presentation Layer

定义数据的结构和传输格式,编解码,压缩解压缩,加解密等。

与会话层一样的一个非常难堪的存在。它基本上是被应用层替代。我个人认识会话层和表示层在设计之初考虑不足够周全,对工作任务分解不合理导致。

其实数据格式原计划是放在这层来实现。但是数据是应用程序产生的,应用层就顺便定义了数据的格式。很显然由我产生的数据由你来定义格式显然是不合理的,不利于合作和实现。

5.7 应用层 Application Layer

提供接口给终端用户应用,为面向网络的应用程序提供服务。

各种各样的应用需求使得应用层的协议相比其它层要丰富得多,工作在应用层的协议是七层模型中最多的,各种应用呈百花齐放之态。其中最值得一提的是HTTP(Hypertext Transfer Protocol,超文本传输协议),其应用广度无人能出其右,其次还有诸如:HTTPS(Hyper Text Transfer Protocol Secure,安全的超文本传输协议),FTP(File Transfer Protocol,文件传输协议),Telnet(用于远程连接),SSH(Secure Shell,安全外壳,常用于远程连接),SNMP(Simple Network Management 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)等。 链接:<https://www.zhihu.com/people/niuhai211/posts/posts_by_votes >

![[Pasted image 20231203192918.png]]![[Pasted image 20231203193010.png]] ![[Pasted image 20231203200018.png]]

贡献者

The avatar of contributor named as sunchengzhi sunchengzhi

文件历史

撰写