计算机网络知识点
1. 协议结构
一般复杂的程序问题都会使用分层结构来解决。网络协议进行分层,主要有以下几个好处:
- 各层之间相互独立。某一层要想知道其它层所提供的服务,只需要通过层间接口。
- 灵活性好。当某一层发生变化时,只要层间接口不变,则其他层不会受到影响。
- 结构上可分开。分开后每一层可以使用最合适的技术来实现。
- 易于实现和维护。这样一个庞大又复杂的网络协议系统,变得易于实现和维护。
网络协议主要有三种分层类型,分别为:OSI 七层模型、TCP/IP 四层协议和学习使用的五层协议。
1.1 OSI 七层模型
OSI 七层模型,又称开放式互连参考模型,是用于网络体系结构的一套理论上的国际标准。虽然理论完整,但太过复杂不实用。各层次要解决的问题及功能如下
物理层(比特)
物理层规定了物理接口的各种特性和物理设备的标准,例如网线、光纤的接口类型等。
如此就尽可能地屏蔽掉了具体传输介质和物理设备的差异,使得数据链路层不用再关心该差异。
数据链路层(帧)
为了在不可靠的物理线路上实现节点间的可靠传输,通过数据链路层的协议,提供了封装成帧、透明传输、差错检测等功能,确保数据的可靠传输。
- 封装成帧:将网络层传下来的 IP 分组封装成帧;
- 差错检测:使用循环冗余检测校验数据;
- MAC 地址:使用 MAC 地址访问;
网络层(包)
网络层主要负责解决不同子网之间的通信。
- 逻辑 IP 地址:MAC 地址解决的子网内部的寻址问题。而在不同子网之间通信时,就需要通过 IP 地址来识别网络中的设备。
- 路由选择:根据路由算法,在网络选择传输的最佳路径,发送相应的数据。
在源主机到目的主机之间提供透明传输。
传输层(段)
传输层提供不同主机上用户进程间的数据通信服务,分为面向连接和面向无连接的服务。
提供可靠传输与不可靠传输服务,在可靠传输中,提供差错检测、拥塞控制、流量控制等。
会话层(数据)
会话层负责在网络中的两个节点之间建立、维持和释放通信。提供了访问验证、会话管理等功能。
表示层(数据)
表示层主要负责处理用户信息的语法表示问题,例如数据格式转换、数据加解密等。
应用层(数据)
应用层主要负责直接向用户提供服务,提供应用程序使用的接口。
1.2 TCP/IP 协议
TCP/IP
四层模型是一种广泛使用的体系结构,包括应用层、运输层、网际层、网络接口层等。
应用层
直接为用户的应用进程提供服务。例如 DNS
、HTTP
、HTTPS
协议等。
传输层
为两台主机中进程之间的通信提供服务,应用层的进程使用该服务来传输报文,具体如报文分割、组合及控制流程等。例如 TCP
和 UDP
协议。
网络层
负责为分组交换网上的不同主机提供通信服务,将运输层的报文段或用户数据包封装成分组,并决定传输的路线。重要的协议如 IP
、ARP
、ICMP
协议等。
网络接口层
用来处理连接网络的硬件部分。
1.3 五层协议
由于网络接口层并没有具体内容,在学习时一般综合 OSI
七层协议和 TCP/IP
四层协议的优点,采用五层协议的体系结构。
2. 常见的路由设备
集线器
集线器有多个接口,很像一个多接口的转发器。它工作在物理层,每个接口仅仅简单地转发比特,而不进行碰撞检测。
网桥
网桥工作在数据链路层。网桥对收到的帧根据其 MAC
帧的目的地址进行转发和过滤。当网桥收到一个帧时,会先检查此帧的目的 MAC
地址,然后确定将该帧转发到哪一个端口。
交换机
交换机是一个多接口的网桥,工作在数据链路层。通常有多个接口,能使多对主机同时通信。可以识别数据报中的 MAC 地址,根据 MAC 地址进行转发。
交换机有自学习功能,能将 MAC 地址与对应的端口记录在自己的 ARP
映射表中。
路由器
路由器工作在网络层,提供了路由与转送两种重要机制:
- 路由选择:可以决定数据包从源主机到目的主机所经过的路由路径(端到端之间);
- 存储转发:将路由器输入端的数据包转发至合适的路由器输出端(路由器内部)。
常见的路由选择协议有:
- RIP:根据跳数衡量选择路由;
- OSPF:根据带宽、延迟选择路由;
网关
在传输层以上实现网络互连,与路由器类似。