这里用TCP
举例
主机和Web
服务器之间基于网络的通信
- 实际上是主机上的游览器应用进程与
Web
服务器中的Web
服务器应用进程之间基于网络的通信。
那么体系结构的各层在整个过程中起到怎样的作用呢?
1、主机端的处理过程
从主机端按体系结构自顶向下的顺序来看
-
应用层按
http
协议的规定构建,构建一个HTTP
请求报文。- 该报文内容
- 应用层将HTTP请求报文交付给运输层处理
-
运输层给
HTTP
请求报文添加一个TCP
首部,使之称为TCP
报文段-
TCP
报文段的首部格式 -
主要是为了区分应用进程,以及实现可靠传输
-
运输层将
TCP
报文段交付给网络层处理
-
-
网络层给该
TCP
报文段添加一个IP
首部,使之称为IP
数据报-
IP
数据报的首部格式 -
该首部的作用主要是为了使
IP
数据报可以在互联网上传输,也就是被路由器转发 -
网路层将
IP
数据报交付给数据链路层处理
-
-
数据链路层给
IP
数据报添加一个首部和一个尾部,使之成为帧-
假设网络
N1
是以太网,这是以太网帧首部的格式- 该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的主机接收
-
以太网帧尾部的格式。
- 其作用是为了让目的主机检查所接收到的帧是否有误码
-
数据链路层将帧交付给物理层
-
-
物理层将帧看作是比特流。由于网路
N1
是以太网,因此物理层还会给该比特流前面添加前导码。-
前导码的内容
- 其作用是为了让目的主机做好接收帧的准备
-
物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器
-
2、路由器的处理过程
-
物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层。
- 这实际上交付的是帧
-
数据链路层将帧的首部和尾部去掉后,将其交付给网络层。
- 这实际上交付的是
IP
数据报
- 这实际上交付的是
-
网络层解析
IP
数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发- 网络层将
IP
数据报交付给数据链路层
- 网络层将
-
数据链路层给
IP
数据报添加一个首部和一个尾部,使之成为帧- 数据链路层将帧交付给物理层。
-
物理层将帧看作是比特流。由于网路
N2
是以太网,因此物理层还会给该比特流前面添加前导码。- 物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达Web服务器
3、Web服务器的处理过程
-
物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层。
- 这实际上交付的是帧
-
数据链路层将帧的首部和尾部去掉后,将其交付给网络层。
- 这实际上交付的是
IP
数据报
- 这实际上交付的是
-
网络层将
IP
数据报的首部去掉后将其交付给运输层- 这实际上交付的是
TCP
报文段
- 这实际上交付的是
-
运输层将
TCP
报文段的首部去掉后将其交付给应用层- 这实际上交付的是
HTTP
请求报文
- 这实际上交付的是
-
应用层对
HTTP
请求报文进行解析,然后给主机发回HTTP
响应报文与之前的类似