我的电脑通过浏览器与百度进行交互,实际上就是我的浏览器进程与百度服务器的WEB服务在网络中层层传递信息的过程。那么这个过程具体是如何进行的呢?
1. 在计算机应用层,根据HTTP协议的规定,生成一个HTTP报文,并将其交给运输层进行处理。
2. 运输层为这个报文添加一个TCP首部(包含目的地址和源地址等信息),从而形成一个TCP报文段,然后交给网络层进行处理。
3. 数据链路层为IP数据报添加首部和尾部,构成一个帧。这个帧包含目的地址、源地址、数据类型以及保障数据能被正确接收的机制。随后,这个帧被交给物理层进行处理。
4. 物理层将帧前面加上前导码,为数据做好发送准备,并将整段报文转化为0和1的高低平信号,然后发送到网络中。
5. 当数据传输至路由器时,路由器的物理层将接收到的信号转化为比特流,去掉前导码,即得到帧,再将其交给数据链路层。
6. 数据链路层在接收到帧后,会去掉首部和尾部,从而得到IP数据报,并将其交给网络层。
7. 网络层处理完IP数据报后,会将其中的首部去掉,即得到TCP报文段,并将其交给运输层。
8. 运输层在接收到TCP报文段后,会去掉其TCP首部,然后将HTTP报文交给应用层进行处理。
9. 应用层在接收到HTTP报文后,会进行解析处理,并生成相应的HTTP响应报文返回给计算机。
这个过程往返多次,但都以层层剥离、分装数据的方式进行信息交互。
接下来是协议、实体和服务的具体介绍:
实体指的是任何能够发送或接收信息的硬件或软件进程。
对等实体是指在同一层次中相互通信的实体。
协议是控制两个对等实体进行逻辑通信的规则集合。这些规则包括三个要素:
语法:规定了所交换信息的格式。
例如IP协议中规定的报文内容、顺序和长度等。
语义:明确了收发双方要执行的操作。
比如通过HTTP协议访问百度时,发送GET请求并接收响应。
同步:定义了通信双方的时序关系。
例如TCP协议中的三次握手过程就体现了各过程的时序关系。
服务是在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供所需的服务。
要实现这些服务需要使用下层所提供的支持。
同一系统中的不同层次的实体间有逻辑接口(即服务访问点)进行交互。
例如数据链路层的服务访问点是帧的“类型”字段;网络层的服务访问点是IP数据报首部的“协议字段”;而运输层的端口号则作为其服务访问点。
上层使用下层提供的服务时需通过交换一些命令来完成。这些命令称为服务原语。
对等层次之间传递的数据包有不同的名称:
例如物理层为比特流;链路层为帧;网络层为IP数据包或分组;运输层为TCP报文段/UDP用户数据报;应用层为HTTP报文等。
本文内容源自个人自学笔记,如有问题或不足之处,敬请指正。
上一篇:
下一篇: