计算机网络为我们提供通信和交流、休闲和娱乐、资源共享、电子商务、远程协作、网上办公的平台,因特网是当今世界上最大的计算机网络,也是我们接触最多的计算机网络。计算机网络对于程序员来说是十分重要的基础知识。今天开始,我们来自顶向下的开始学习计算机网络! 当然首先我们要先来介绍计算机网络的分层结构,宏观的去认识计算机网络。

就算你没学过计算机网络这门课程,你也应该听说过七层模型,或者听过五层模型、四层模型,这些到底是什么呢,我们来好好探究一下

# 为什么

首先是为什么计算机网络要分层呢? 因为计算机网络是一个复杂的程序,需要对复杂的程序进行分层管理,一层解决一类事情。分层有很多好处:

  • ① 各层之间是独立的,某一层并不需要知道它的下一层或上一层是如何实现的,仅仅需要知道该层通过层间的接口所提供的服务。将复杂的系统拆分成一个一个小的系统,使得整个问题的复杂程度就降低了;
  • ② 灵活性好, 某一层的内部发生了变化,只要它提供的接口是不变的,就不会影响上层或者下层的使用;
  • ③ 能促进标准化工作

# 怎么分

那么什么是分层呢? 来类比成我们的邮寄服务系统,在用户应用层,用户A给用户B传递一个信息,需要写在信上,然后包在信封里给信件递送层,然后经历邮包运送层、交通运输层、交通工具层,然后再传递一遍直到到达用户应用层的用户B的手上。

image.png

放在计算机网络中就是这样一种分层结构

image.png

# OSI 参考模型 七层

Open SystemsInterconnection Reference Model 开放系统互连参考模型 这是法律上的国际标准OSI参考模型

  1. 物理层 利用物理传输介质为数据链路层提供物理连接,传递的数据是比特流。

  2. 数据链路层 定义通过通信媒介互连的设备之间传输的规范;首先,把比特流封装成数据帧的格式,对0、1进行分组。电脑连接起来之后,数据都经过网卡来传输,而网卡上定义了全世界唯一的MAC地址。然后再通过广播的形式向局域网内所有电脑发送数据,再根据数据中MAC地址和自身对比判断是否是发给自己的。

  3. 网络层 寻址和路由; IP ; 广播的形式太低效,为了区分哪些MAC地址属于同一个子网,网络层定义了IP和子网掩码,通过对IP和子网掩码进行与运算就知道是否是同一个子网,再通过路由器和交换机进行传输。

  4. 传输层 为上层协议提供端到端的可靠传输;TCP、UDP 有了网络层的MAC+IP地址之后,为了确定数据包是从哪个进程发送过来的,就需要端口号,通过端口来建立通信

  5. 会话层 建立、断开和维护通信链接

  6. 表示层 数据格式转换、数据压缩和数据加密 HTML、MIME

  7. 应用层 最高层,面对用户,提供计算机网络与最终呈现给用户的界面(各种应用程序协议 HTTP、FTP、SMTP、POP3)为应用程序提供网络服务

在这里插入图片描述

详细的见 科来网络通讯协议图 http://www.colasoft.com.cn/download/protocols_map.php (opens new window)

# 2. TCP/IP参考模型 四层

由于OSI的层次划分也不太合理,有些功能在多个层次中重复出现,而且过于庞大、复杂招致了许多批评。其实在OSI模型之前,TCP/IP协议簇就已经在运行,并逐步演变成TCP/IP参考模型,而TCP/IP被称为是事实上的国际标准,因为它占领了市场。

注意:TCP/IP 协议族指的是在 IP 协议通信过程中用到的协议的统称

image.png

  1. 网络接口层,也有称作网络访问层、数据链路层。包含了OSI模型的物理层和数据链路层。
  2. 网际层,也叫做IP层,是OSI模型的网络层,负责处理IP数据包的传输、路由,建立主机间的通信。
  3. 运输层,也叫传输层,就是为两台主机设备提供端到端的通信。TCP、UDP
  4. 应用层,包含OSI的会话层、表示层和应用层,提供了一些常用的协议规范,比如FTP、SMPT、HTTP、DNS等。

在学习计算机网络原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的原理体系结构

也就是

  1. 物理层 通过物理手段把电脑连接起来
  2. 数据链路层 对比特流的数据进行分组
  3. 网络层 建立主机到主机的通信
  4. 传输层 建立端口到端口的通信
  5. 应用层 最终负责建立连接,数据格式转换,呈现给用户

最后,欢迎关注我的专栏,和YK菌做好朋友

上次更新: 2022/4/21 22:21:34