夜光序言:
向晚的小路上
寂寞在沙沙作响
树枝拦下了半边月亮
搁浅在我的头上
我急了
揽你入胸膛
却惹了一身无主的月光
正文:
协议层次和它们的服务模型
1 分层的体系结构
利用分层的体系结构,可以讨论一个定义良好的、复杂的系统。 这种简化本身可以为模块化带来便利,因为在各个层次改变服务的实现不会影响该系统
其他部分,这是分层的另一个重要优点。
协议分层
因特网的协议由 5 个层次组成:物理层、链路层、网络层、传输层和应用层。
•应用层
网络应用程序及其应用层协议实现的地方。
例如实现 HTTP 协议的浏览器/Web 服务器、
电子邮件和 FTP 等。
应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。将这种位于应用层的信息分组称为消息(message)。
•传输层
传输层提供了在应用程序之间传送消息的服务。
在因特网中,有两个运输层协议,即 TCP 和 UDP,利用其中的任何一个都能传输应用层消息。
TCP 向它的应用程序提供了面向连接的服务。这种服务包括了可靠传输(传丢了会重传) 和流量控制。
UDP 协议向它的应用程序提供无连接服务。
将传输层分组称为报文段(segment)。
•网络层
因特网的网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。
因特网的网络层协议是 IP 协议,该协议定义了数据报的格式。网络层也包括决定路由
的选路协议,选路协议决定了路由器的转发表,数据报根据该转发表从源传输到目的地。
•链路层
为了将分组从一个节点(主机或路由器)移动到路径上相邻的下一个节点,网络层必须依靠链路层的服务。 在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。
在该下个节点,链路层将数据报上传给网络层。
链路层提供的服务取决于应用于该链路的特定链路层协议。例如某个数据报可能被一条链路上的以太网和下一条链路上的无线网络所处理。
我们将链路层分组称为帧(frame)。
•物理层
链路层的任务是将整个帧从一个节点移动到邻近的网络节点,而物理层的任务是将该帧中的一个比特从一个节点移动到下一个节点。
例如以太网支持许多物理层介质:有 UTP,有光纤等。
国际标准化组织 ISO 提出计算机网络的七层结构,称为开放系统互连 OSI 模型。这个模型从来没有被采用过,Internet 设计估计也没参考过它,因为 Internet 出现应该比它早。
2 分组的封装
(非常重要
以下内容是主线,知识点都是这条主线上的某个环节)
应用程序通过调用操作系统提供的网络编程接口将消息传递给传输层模块。
操作系统中的传输层软件模块给消息添加一个头部后(以区别不同的应用程序),调用网络层软件模块的编程接口,将报文段传递给网络层。
同样,网络层软件模块也是位于操作系统中,它给报文段又添加了一个头部后(以区别不同的主机),调用网卡驱动程序的编程接口,将数据报传递给网卡。
可以认为位于操作系统中的网卡驱动程序和网卡硬件构成了链路层,它给数据报添加了帧头部后(以区别不同的网卡),发送进入了网络。
链路层交换机实现了网络协议第一层(物理层)和第二层,在同一个局域网内转发帧。 帧在同一个局域网的计算机之间、计算机和路由器、路由器和路由器之间直接交付。
路由器实现了网络协议的第一层(物理层)到第三层,在不同的网络间转发数据报。路由器是一种具有多个网络接口的设备,在不同的网络中都有接口,负责收发数据。数据报是封装在帧中转发的。路由器收到一个帧后,提取出数据报,向前转发时又重新封装成帧 (此时链路层发送/接收地址改变了)。
链路层交换机转发帧、路由器转发数据报都是通过查询转发表来实现的。 在接收端,帧被解封装,提取出数据报,又从数据报中取出报文段,最后提取出消息交付给接收应用程序。