《Windows网络与通信程序设计(第3版)》——1.2 计算机网络参考模型

简介:

本节书摘来自异步社区《Windows网络与通信程序设计(第3版)》一书中的第1章,第1.1节,作者: 陈香凝 , 王烨阳 , 陈婷婷 , 张铮 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 计算机网络参考模型

了解网络的相关概念之后,本节将讨论计算机网络中主机之间是如何进行通信的,以及各种通信协议之间的关系等。

1.2.1 协议层次
为了降低设计难度,大部分网络都以层(layer或level)的形式组织在一起,每一层都建立在它的下层之上,使用它的下层提供的服务,下层对它的上层隐藏了服务实现的细节。这种方法几乎应用于整个计算机科学领域,也可以称为信息隐藏、数据类型抽象、数据封装、面向对象编程等。

一个机器上的第n层和另一个机器的第n层交流,所使用的规则和协定合起来称为第n层协议。这里的协议,是指通信双方关于如何进行通信的一种约定。各层和各层协议的集合称为网络体系(network architecture)。特定系统所使用的一组协议称为协议堆栈(protocol stack)。下面介绍Inernet网络分层情况和它的协议堆栈。

1.2.2 TCP/IP参考模型
为了帮助不同的厂商标准化和一体化它们的网络软件,1974年,国际标准化组织(ISO,International Organization for Standardization)为在机器之间传送数据定义了一个软件模型,就是著名的OSI模型(Open Systems Interconnection,开放式系统互联模型)。这个模型共有7层,如图1.1所示。


2bfabea29157f5c0d02d2448bdf725bad7ffa4b4

OSI参考模型仅是一个理想方案,几乎没有什么系统能够完全实现它,它存在的作用是给人们一个设计网络体系的框架。机器上的每一层都假设它正在直接与另一机器的同一层“交谈”,它们“说”相同的语言,或者协议,各层的目的是向更高的层提供服务,抽象低层的实现细节。TCP/IP实现了OSI参考模型中的5层,如图1.2所示,各层使用的协议连在一起便是互联网协议堆栈。


6d79f850995c527c34386bc823c085bea759ea66

1.2.3 应用层(Application Layer)
应用层是网络应用程序和它们的应用层协议存在的地方。Internet应用层包含许多协议,如HTTP(它提供Web文档的请求和传输)、SMTP(它提供e-mail消息的传输)和FTP(它提供两个终端系统间的文件传输)。一些特定的网络功能,如映射主机名到它们的网络地址的DNS(Domain Name System,域名服务器)也在此层完成。

应用层程序设计在现实生活中应用最广泛,因为它是直接面向用户的。本书在后面要讨论的客户端和服务器端程序、P2P通信程序等都属于此层。本书使用应用层消息来表示应用层的数据传输单元。

1.2.4 传输层(Transport Layer)
Internet的传输层在应用程序的客户和服务器之间传递应用层消息,在这里定义了两个点对点的传输协议——TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。

TCP 是一个可靠的面向连接的协议,它允许源于一个机器的字节流被无错误地传输到Internet 上的任何其他机器。TCP将上层传递的字节流分成封包,再接着传递到它的下层——网络层。在接收方,TCP重新集合接收到的封包,将其转化成为输出流。TCP也处理流控制,以确保一个快的发送者不会发送太多的封包而淹没接收者。

UDP是一个不可靠的无连接的协议,它是为那些不需要TCP的序列号管理和流控制,而想自己提供这些功能的应用程序设计的。

Windows为传输层的编程接口提供了Socket函数,即通常所说的Winsock。网络程序设计者可以非常方便地使用Winsock开发基于TCP或者UDP的应用程序。本章后面要详细讨论这些编程接口。

本书使用节(segment)来表示传输层封包。

1.2.5 网络层(Network Layer)
Internet的网络层负责将网络层封包从一个主机移动到其他主机,这里的网络封包称为数据报(datagram)。在源主机,Internet传输层协议(TCP或UDP)向网络层传递一个传输层节和一个目的地址,就如同你给邮递员一个带有地址的信。然后,网络层提供将这个节邮递到目的主机传输层的服务。

Internet的网络层有两个基本组件。一个是IP协议,它定义了数据报中各域以及终端系统和路由器如何在这些域上进行操作。仅有一个IP(Internet Protocol)协议,所有网络层的Internet组件都必须运行这个协议。另一个是路由协议,它们用来决定数据报所走的路径。网络层的路由协议很多,因为Internet含有多种不同类型的网络,各个网络使用的路由协议有可能不同。即便是这样,网络层还是经常被人们简单地称为IP层,反映了IP是将Internet绑在一起的胶带。

网络层包含了子网的操作,是懂得网络拓扑结构(网络中机器的物理配置、带宽的限制等)的最高层,也是内网通信的最高层。它的责任是确定数据的物理路径。

1.2.6 链路层(Link Layer)
Internet的网络层通过一系列的路由器在源地址和目的地址之间传输数据报。为了将封包从路径上的一个节点移动到下一个节点,网络层依赖于链路层的服务。在每个节点,网络层传递数据报到下面的链路层,让它将之发送到路径上的下一个节点。在下一个节点,链路层再把这个数据报传递给网络层。

链路层间的通信方式有两种,一种是将数据发给它所有相邻的节点,这便是广泛用于LAN(Local Area Network,局域网)的广播通信;另一种是应用于WAN中的点对点通信,例如,两个路由器之间或者住宅的拨号调制解调器(Modem)和ISP路由之间的通信。对应这两种通信方式的常用协议有Ethernet和Point-to-Point(PPP)。

对一个给定的连接来说,链路层协议主要实现在适配器中,即我们平常所说的NIC(Network Interface Card,网卡),它有一个主机总线接口和一个连接接口。传输节点的网络层把网络层数据报传递到适配器,由适配器将此数据报封装到链路层的帧中,然后把这个帧传输到物理层通信链路。在另一方,接收适配器接收到整个帧,从中萃取出网络层数据报,将它传给网络层。

本书将使用帧(frame)来表示链路层封包。

1.2.7 物理层(Physical Layer)
链路层的工作是从一个网络节点向其临近的网络节点传送整个帧,其下面的物理层的工作是将帧中的原始比特流从一个节点传送到下一个节点。应用于此层的协议在TCP/IP参考模型中并没有定义,它们与连接有关,更依赖于传输介质。例如,以太网有许多物理层协议,有针对双绞线的,有针对同轴电缆的,有针对光纤的,等等。它们都以不同的方式在链接中传送数据位。

相关文章
|
25天前
|
安全 网络安全 网络虚拟化
【软件设计师备考 专题 】常用网络设备和各类通信设备(一)
【软件设计师备考 专题 】常用网络设备和各类通信设备
97 2
|
25天前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
1天前
|
机器学习/深度学习 数据采集 数据可视化
R语言用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化
R语言用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化
90 7
|
2天前
|
机器学习/深度学习 API 算法框架/工具
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言深度学习:用keras神经网络回归模型预测时间序列数据
13 0
|
2天前
|
机器学习/深度学习
HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率
HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率
12 0
|
3天前
|
编解码 网络协议 网络安全
2.H3CNE-网络参考模型
2.H3CNE-网络参考模型
|
22天前
|
存储 运维 安全
云擎技术:通信网络单元定级备案指南
简介: 通信网络单元定级备案是指相关基础电信企业、增值电信企业要对本单位管理、运行的公用通信网和互联网及其各类信息系统进行单元划分,按照《通信网络安全防护管理办法》(工业和信息化部令第11号)的规定开展定级工作,并在工业和信息化部“通信网络安全防护管理系统”报送各单元的定级信息。
27 2
|
25天前
|
安全 网络安全 网络虚拟化
【软件设计师备考 专题 】常用网络设备和各类通信设备(三)
【软件设计师备考 专题 】常用网络设备和各类通信设备
33 0
|
25天前
|
安全 算法 网络安全
【软件设计师备考 专题 】常用网络设备和各类通信设备(二)
【软件设计师备考 专题 】常用网络设备和各类通信设备
41 2
|
30天前
|
Kubernetes 应用服务中间件 nginx
Kubernetes服务网络Ingress网络模型分析、安装和高级用法
Kubernetes服务网络Ingress网络模型分析、安装和高级用法
34 5