计算机网络概述
计算机网络
计算机网络是由若干个结点(交换机、路由器)和连接结点的链路组成。
网络其实就是多台计算机连接起来,互连网就是多个网络连接在一起。网络连接起来表现的像云,我们也用云代替复杂的网络。
互联网按工作方式划分:边缘部分和核心部分,边缘部分是主要是部分主机,核心部分是由路由器连接的复杂网络,核心部分为边缘部分提供服务。扩展思考一下,当我们把互联网拆解成这两个部分,大体上应该知道为什么会出现边缘计算和云计算了。
网络体系结构
-
- 应用层
应用层协议定义的是应用进程之间的通信和交互规则。不同的应用程序需要不同的应用层协议,例如:Web通信需要HTTP协议,电子邮件需要SMTP协议等。
应用层交互的数据单元为报文。
-
- 传输层
传输层协议定义的是为应用进程之间通信提供通用的数据传输服务。传输层提供的是通用的传输服务,使得多个应用进程之间通信报文在传输层都可以得以传输。运输层协议主要包括两种协议:TCP(传输控制协议)和UDP(用户数据报协议),TCP是面向连接,可靠的传输协议,UDP协议是不需要连接,两种协议在数据传输时,各自都有其应用的场景。
TCP协议传输的数据单元为报文段,UDP协议传输的数据单元为用户数据报。
TCP是面向连接的协议,每一条TCP连接有两个端点,而TCP连接的端点叫做套接字(socket),socket定义为端口号拼接到IP地址后面。即:套接字socket = (IP地址:端口号),故:TCP连接 ::= {socket_1, socket_2} = {(IP_1 : port_1), (IP_2 : port_2)}
TCP连接建立和释放是需要复杂的过程,通常我们称之为TCP连接的“三次握手四次挥手”
TCP的三次握手:客户端主动发送请求同步信号SYN = 1,ACK = 0表示请求连接,服务端被动打开响应SYN = 1,ACK = 1表示同意请求,TCP协议规定连接建立以后所有发送报文必须ACK = 1。
TCP连接的四次挥手:客户端请求释放连接FYN = 1,服务器响应确认ACK = 1 ,服务器发出释放报文FYN = 1,ACK = 1,客户段确认ACK = 1,等待连接释放(两个最大报文生存时间,即确认线路数据发送完成),最终释放。
-
- 网络层
网络层协议定义的是分组交换网上不同主机之间的通信服务。应用层和传输层协议定义的都是应用进程之间的服务,而网络层定义的是应用进程所在的主机之间的通信。网络层IP协议实际上是对报文段或者用户数据报进行分组(封装打包),然后往目的地转发。
网络层分组转发的数据单元为IP数据报。
-
- 数据链路层
数据链路层定义的是主机之间或者其他结点之间连接的链路传送规则。数据链路层实际上是对IP数据包进行再封装,外包一些控制信息便于在实际链路传输过程中发现差错和错乱,并作简单的处理操作(丢弃出错的帧,按照起始帧和结束帧重排)。
数据链路层传送的数据单元为帧。
-
- 物理层
物理层协议定义了高低电平的门限值以及引脚连接状态的规则。确定的是物理层并不是指定一些物理媒介,如双绞线、光缆等,物理层协议是进行了数据与现实状态的转换,数据传输都是0和1的序列码组成,而物理传输只是通过电磁形式,如何用电磁表示0或者1,就是物理层协议需要规定的。
物理层传送的数据单元为比特。
双方主机对等层(网络层与网络层)的实体进程按照协议进行通信,所以协议是“水平的”,而同一主机各层之间的交互是上层为下层提供服务,而下层为上层服务,所以服务是“垂直的”。另外,对等层次之间传输的数据单元称之为协议数据单元(PDU),层与层之间交互的数据单元称为服务数据单元(SDU)。
-
- TCP/IP协议族示意