写点什么

Android C++ 系列:Linux 网络(一)网络模型

作者:轻口味
  • 2021 年 12 月 08 日
  • 本文字数:1258 字

    阅读完需:约 4 分钟

Android C++系列:Linux网络(一)网络模型


1. 计算机网络发展概览

第一代计算机网络的诞生:


  • 1946 年产生第一台数字计算机;

  • 1954 年收发器终端的产生;

  • 60 年代初,由多重线路控制器参与组成的网络被称为第一代计算机网络。


第二代计算机网络的诞生:


  • 1964 年,Baran 提出存储转发概念;

  • 1966 年,David 提出分组概念;

  • 1969 年,DARPA 的计算机分组交换网 ARPANET 投入运行。


第三代计算机网络的诞生:


  • 1977 年 OSI 参考模型的提出,标志着计算机网络进入到第三个阶段



阶段总结


  • 第一代:由多重线路控制器参与组成,面向终端的通信,计算机是网络的控制中心;

  • 第二代:以资源子网为中心,ARPANET 的成功运行;

  • 第三代:OSI 参考模型出现

2. 分层模型


分层作用:


  • 用户服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别

  • 通信服务层的模块设计又可相对独立于具体用户应用要求的不同

  • 总结:各层相互独立,可以互相不关心具体实现,如应用层不用关系传输是基于光线还是双绞线

2.1 OSI 七层模型


  1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后再转化为 1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

  2. 数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

  3. 网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet 的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

  4. 传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报 协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就 是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后 再进行重组。常常把这一层数据叫做段。

  5. 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是 IP 也可以是 MAC 或者是主机名)。

  6. 表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。 例如,PC 程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码 (EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要, 表示层会通过使用一种通格式来实现多种数据格式之间的转换。

  7. 应用层:是最靠近用户的 OSI 层。这一层为用户的应用程序(例如电子邮件、文件传输 和终端仿真)提供网络服务。



2.2 TCP/IP 四层模型

TCP/IP 是 20 世纪 70 年代中期美国国防部为 ARPANET 开发的网络体系结构,是开发程序员讨论最多的模型:



3. 总结

本文主要介绍了 OSI 与 TCP/IP 两种网络模型,它们的相同点:


  • 两者都是以协议栈的概念为基础;

  • 协议栈中的协议彼此相互独立;

  • 下层对上层提供服务


不同点:


  • OSI 先有模型;TCP/IP 是先有协议后有模型;

  • OSI 适用于各种协议栈,TCP/IP 只适用于 TCP/IP 网络;

  • 层次数量不同

发布于: 1 小时前阅读数: 5
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017.10.17 加入

Android、音视频、AI相关领域从业者。 邮箱:qingkouwei@gmail.com

评论

发布
暂无评论
Android C++系列:Linux网络(一)网络模型