# 网络基础

# 计算机通信网的组成

计算机网络由通信子网和资源子网组成。其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制、流量控制、路由选择、网络互连等。其中资源子网是计算机通信的本地系统环境,包括主机、终端和应用程序等,资源子网的主要功能是用户资源配置、数据的处理和管理、软件和硬件共享以及负载均衡等。总的来说,计算机通信网就是一个由通信子网承载的、传输和共享资源子网的各类信息的系统。

# 通信协议

为了完成计算机之间有序的信息交换,提出了通信协议的概念,其定义是相互通信的双方(或多方)对如何进行信息交换所必须遵守的一整套规则。

协议涉及到三个要素,分别为:

  • 语法:语法是用户数据与控制信息的结构与格式,以及数据出现顺序的意义
  • 语义:用于解释比特流的每一部分的意义
  • 时序:事件实现顺序的详细说明

# OSI 七层模型

# 物理层

  • 提供建立、维护和释放物理链路所需的机械、电气功能和规程等特性
  • 通过传输介质进行数据流 (比特流) 的物理传输、故障监测和物理层管理
  • 从数据链路层接收帧,将比特流转换成底层物理介质上的信号

# 网络层

  • 在物理链路的两端之间传输数据
  • 在网络层实体间提供数据传输功能和控制
  • 提供数据的流量控制
  • 检测和纠正物理链路产生的差错
  • 格式化的消息称为帧

# 传输层

  • 提供无差错的数据传输
  • 接收来自会话层的数据,如果需要,将数据分割成更小的分组,向网络层传送分组并确保分组完整和正确到达它们的目的地
  • 在系统之间提供可靠的透明的数据传输,提供端到端的错误恢复和流量控制

# 会话层

  • 提供节点之间通信过程的协调
  • 负责执行会话规则(如:连接是否允许半双工或全双工通信)、同步数据流以及当故障发生时重新建立连接
  • 使用上面的表示层和下面的传输层的功能

# 表示层

  • 提供数据格式、变换和编码转换
  • 涉及正在传输数据的语法和语义
  • 将消息以合适电子传输的格式编码
  • 执行该层的数据压缩和加密
  • 从应用层接收消息,转换格式,并传送到会话层,该层常合并在应用层中

# 应用层

包括各种协议,它们定义了具体的面向用户的应用:如电子邮件、文件传输等

# 总结

低三层模型属于通信子网,涉及为用户间提供透明连接,操作主要以每条链路( hop-by-hop)为基础,在节点间的各条数据链路上进行通信。由网络层来控制各条链路上的通信,但要依赖于其他节点的协调操作。

高三层属于资源子网,主要涉及保证信息以正确可理解形式传送。

传输层是高三层和低三层之间的接口,它是第一个端到端的层次,保证透明的端到端连接,满足用户的服务质量(QoS)要求,并向高三层提供合适的信息形式。

# TCP/IP 四层模型

# 网络接口层

网络接入层与 OSI 参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP 本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与 TCP/IP 的网络接入层进行连接。地址解析协议(ARP)工作在此层,即 OSI 参考模型的数据链路层。

# 网际层

网际层对应于 OSI 参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个 IP 地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。

# 运输层

运输层对应于 OSI 参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)

# 应用层

应用层对应于 OSI 参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP 等

# OSI 模型与 TCP/IP 模型对比

共同点
(1)OSI 参考模型和 TCP/IP 参考模型都采用了层次结构的概念。
(2)都能够提供面向连接和无连接两种通信服务机制。
不同点
(1)OSI 采用的七层模型,而 TCP/IP 是四层结构。
(2)TCP/IP 参考模型的网络接口层实际上并没有真正的定义,只是一些概念性的描述。而 OSI 参考模型不仅分了两层,而且每一层的功能都很详尽,甚至在数据链路层又分出一个介质访问子层,专门解决局域网的共享介质问题。
(3)OSI 模型是在协议开发前设计的,具有通用性。TCP/IP 是先有协议集然后建立模型,不适用于非 TCP/IP 网络。
(4)OSI 参考模型与 TCP/IP 参考模型的传输层功能基本相似,都是负责为用户提供真正的端对端的通信服务,也对高层屏蔽了底层网络的实现细节。所不同的是 TCP/IP 参考模型的传输层是建立在网络互联层基础之上的,而网络互联层只提供无连接的网络服务,所以面向连接的功能完全在 TCP 协议中实现,当然 TCP/IP 的传输层还提供无连接的服务,如 UDP;相反 OSI 参考模型的传输层是建立在网络层基础之上的,网络层既提供面向连接的服务,又提供无连接的服务,但传输层只提供面向连接的服务。
(5)OSI 参考模型的抽象能力高,适合与描述各种网络;而 TCP/IP 是先有了协议,才制定 TCP/IP 模型的。
(6)OSI 参考模型的概念划分清晰,但过于复杂;而 TCP/IP 参考模型在服务、接口和协议的 区别上不清楚,功能描述和实现细节混在一起。
(7)TCP/IP 参考模型的网络接口层并不是真正的一层;OSI 参考模型的缺点是层次过多,划分意义不大但增加了复杂性。