Contents

计算机网络(一)---OSI七层模型

本文主要通过OSI七层模型与常用TCP/IP5层模型介绍了各层的主要作用,包括应用层运输层网络层数据链路层物理层等。

OSI与TCP/IP模型

https://github.com/lixd/blog/raw/master/images/network/osi-tcp-ip-model.png

应用层:通过应用进程间的交互来完成特定网络应用。

运输层:向用户提供可靠的、端到端的差错和流量控制,保证报文的正确传输。

网络层:通过路由算法,为报文或分组通过通信子网选择最适当的路径。

数据链路层:其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。

物理层:利用传输介质为数据链路层提供屋里连接,实现比特流的透明传输。

https://github.com/lixd/blog/raw/master/images/network/tcp-ip-model.gif

1. 应用层

主要作用:通过应用进程间的交互来完成特定网络应用。

应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文。

2. 运输层

 主要任务:向用户提供可靠的、端到端的差错和流量控制,保证报文的正确传输。

 主要作用:向高层屏蔽下层数据通信的具体细节,即向用户透明的传送报文。

主要用到的协议:

  1. 传输控制协议 TCP(Transmisson Control Protocol)–提供面向连接的,可靠的数据传输服务。
  2. 用户数据协议 UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。

2.1 UDP

  1. UDP 是无连接的;
  2. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态(这里面有许多参数);
  3. UDP 是面向报文的;
  4. UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 直播,实时视频会议等);
  5. UDP 支持一对一、一对多、多对一和多对多的交互通信;
  6. UDP 的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

2.2 TCP

  1. TCP 是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);
  2. 每一条 TCP 连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);
  3. TCP 提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
  4. TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
  5. 面向字节流。TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

3. 网络层

**主要任务:通过路由算法,为报文或分组通过通信子网选择最适当的路径。**该层控制数据链路层与物理层之间的信息转发,建立、维持与终止网络的连接。具体的说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。

一般的,数据链路层是解决统一网络内节点之间的通信,而网络层主要解决不同子网之间的通信。例如路由选择问题。

在实现网络层功能时,需要解决的主要问题如下:

寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一 个唯一的地址。由于各个子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)

**交换:**规定不同的交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者包括报文转发技术和分组转发技术。 **路由算法:**当源节点和路由节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径,由发送端传送的接受端。 **连接服务:**与数据链路层的流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测

4. 数据链路层

其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。

主要功能:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

具体工作:接受来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上一层的数据帧,拆装为位流形式的数据转发到物理层;并且还负责处理接受端发回的确认帧的信息,以便提供可靠的数据传输。

该层通常又被分为 介质访问控制(MAC)和逻辑链路控制(LLC)两个子层: MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制。 LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

5. 物理层

主要功能:利用传输介质为数据链路层提供屋里连接,实现比特流的透明传输。

作用:实现相邻计算机节点之间比特流的透明传输,尽可能屏蔽掉具体传输介质与物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。

透明传输的意义就是:不管传的是什么,所采用的设备只是起一个通道作用,把要传输的内容完好的传到对方!

在互联网使用的各种协中最重要和最著名的就是 TCP/IP 两个协议。现在人们经常提到的TCP/IP并不一定单指TCP和IP这两个具体的协议,而往往表示互联网所使用的整个TCP/IP协议族。

6. 参考

https://blog.csdn.net/yaopeng_2005/article/details/7064869