主机A要访问某个Web服务器
1.首先在浏览器地址栏中输入Web服务器的域名,
2.紧接着主机向Web服务器发送一个请求报文,
3.服务器收到请求报文后执行相应操作,然后给主机发送响应报文
4.主机收到响应报文后由浏览器负责解析与渲染。
我们从五层原理体系来进行进一步解析:
封装过程:(自上而下)
应用层:根据HTTP协议的规定,构建一个HTTP请求报文,用来请求Web服务器执行相应的操作,应用层将构建好的HTTP请求报文向下交付给运输层。
运输层:给HTTP报文添加一个TCP首部,将其封装成TCP报文段。TCP首部的主要作用就是区分应用进程和实现可靠传输。运输层将封装好的TCP报文段向下交付给网络层。
网络层:为TCP报文段添加一个IP首部,将其封装成IP数据报。IP首部的主要作用是IP寻址和路由。网络层将封装好的IP数据报向下交付给数据链路层。
数据链路层:为IP数据报添加一个首部和尾部,将其封装成帧。帧的首部和尾部的主要作用是MAC寻址和帧校验。数据链路层将封装好的帧向下交付给物理层。
物理层:其实算是个傻瓜层,它并不认识帧的结构,仅将其看作比特流,并将其转换成相应的电信号进行发送。对于以太网,物理层还会在比特流前添加前导码,目的是为了使接收方的时钟同步,并做好接收准备。
封装完成之后接下来就交给路由器进行存储转发,路由器收到数据包之后进行处理过程如下:
物理层:将接收到的电信号转换为比特流,并且去掉前导码,然后将帧向上交付给数据链路层。
数据链路层:去掉帧的首部和尾部后,将IP数据报向上交给网络层。
网络层:从IP数据报的首部中提取出目的地址,根据目的IP地址查找自己的转发表,以便决定从哪个接口转发该IP数据报。与此同时,还要对首部中的某些字段值如TTL生存时间进行相应的修改,然后将该IP数据报向下交付给数据链路层。(这个操作的目的就是为了找到相对应的目的IP地址,方便下一步的转发)
数据链路层:为IP数据报添加一个首部和尾部,将其封装成帧。帧的首部和尾部的主要作用是MAC寻址和帧校验。数据链路层将封装好的帧向下交付给物理层。
物理层:,它并不认识帧的结构,仅将其看作比特流,并将其转换成相应的电信号进行发送。对于以太网,物理层还会在比特流前添加前导码。
Web服务器接收到了数据包之后自下而上进行逐层解封。