请求报文在网络各层中的具体传输

电脑中之间的通信,可以看成为两个应用进程之间的通信;一个请求从客户端到服务器端,通常需要经过三个阶段:
客户端请求服务端
请求在客户端中每一层的具体传输数据

应用层会将要请求的内容封装为报文格式,并将其交给传输层 
传输层接收上层应用层的报文,并给报文加上一个tcp头部信息,使之成为tcp
报文段,tcp首部主要是为了区分应用进程和实现可靠传输。并将tcp报文段交给网络层处理

网络层接收来自上层运输层的数据,并为数额加上一个ip首部,使之成为IP数据报,该首部是使ip数据报可以在互联网上传输可以被路由器转发。网络层将ip数据报交给数据链路层处理 
数据链路层接收来自网络层的数据,并为其加上一个ETH头部信息,和一个ETH尾部信息;使之成为"帧"。首部作用是为了让帧能在一段链路上传输,能够被相应的主机接收;尾部的作用是为了让目的主机检查所接受的帧是否有误码。数据链路层将帧交给下层物理层处理

物理层接收来自与上层数据链路层的信息,将帧看作为比特流。并为其加上一个前导码,前导码的作用是为了让目的主机做好接收帧的准备。物理层将数据转化为相应的信号发送给传输媒体。
请求在路由转发过程中每一层的具体传输数据

信号通过传输媒体到达路由器的物理层,物理层去除收到数据的前导码,将其交给上层数据链路层

链路层接收来自下层物理层的数据,去除ETH头和ETH尾,将其交给网络层

路由网络层接收来自链路层的数据。 从IP数据报中提取目的网络地址,去除原有的ip首部;查找自身的路由表,确定转发端口,为其加上一个新的ip首部。网络层将新的ip数据报交给下层数据链路层 
数据链路层接收来自网络层的数据,为其加上一个新的ETH头和RTH尾,形成新的"帧",将其交给下层物理层

物理层接收来自上层数据链路层的数据。物理层将帧看作比特流,为其加上新的前导码 。再将其转化为特殊的信号通过传输媒体传输。
请求在服务器端中每一层的具体传输数据

物理层接通传输媒体接收数据,去除其前导码。将其交给数据链路层。

数据链路层接收下层的数据,去除掉ETH头与ETH尾,将其交给上层网络层。 
网络层接收来自与下层数据链路层的数据,去掉IP头部信息,将其交给上层运输层

运输层接收来自与下层网络层的数据,去除其TCP头部,将其交给上层应用层。

应用层接受来自与下层运输层的数据,对HTTP报文进行解析,然后将发送HTTP相应报文
服务端发送响应报文
当客户端的HTTP请求到达服务端后,服务端会发送一个HTTP响应报文。
该相应报文与客户端发送的请求类似,会层层封装,层层解析。
本文所有的与图片来自于mooc–>湖南科技大学–>计算机网络 本人只是学习与记录,若有侵权请联系我!!若有错误,望指正!!
|