如上图所示,主机与N1网络相连,服务器与N2网络相连,N1和N2通过路由器相连,下面用分层的思想模拟主机进程发送请求给服务器,服务器处理后返回信息再由主机进程接受的过程:
- 应用层按照HTTP协议构建一个HTTP请求报文
- 运输层给HTTP报文添加一个TCP首部,称为TCP报文段,报文段内容如下:
- 网络层给TCP报文添加一个IP首部,成为IP数据报,主要是使得数据报可以在互联网中传输,即被路由器转发,IP数据报内容如下:
- 数据链路层给IP数据报添加一个首部和一个尾部成为帧,首部使得帧可以在一段链路上传输,可以被目的主机接收,尾部用于让目的主机检查是否有误码
- 物理层将帧转换成比特流,如果网络是以太网,还会在比特流前加入前导码,用于让目的主机做好接收的准备,最后将比特流转换成相应的信号发送到传输媒体 ,信号通过传输媒体到达路由器的物理层。
- 路由器中物理层将信号转换为比特流,然后去掉前导码并将帧交给链路层
- 链路层去掉帧的首部和尾部变成IP数据报交给网络层
- 网络层解析IP数据报的首部,提取出目的网络的地址,然后查找自身的路由表确定转发端口,准备转发
- 网络层再将IP数据报交给链路层,链路层加上首部和尾部形成帧
- 物理层接收帧并转换为比特流,同时加入前导码,转换为信号发送到传输媒体,信号通过传输媒体到达服务器的物理层。
- 服务器的物理层接收信号转换为比特流,然后再逐层处理最后得到HTTP响应报文
- 服务器对HTTP响应报文进行处理并给主机发送HTTP相应报文,流程和上述类似。
- 协议:控制两个对等实体进行逻辑通信的规则的集合。逻辑通信实际并不存在,是一种假设的通信,便于单独研究某一层的通信。
- 协议的三要素:
- 语法:定义所交换信息的格式,下图示IP数据报的格式,每个格子称为字段或者域,语法定义了这些小格子的长度和顺序。
- 语义:定义收发双方所要完成的操作
- 同步:定义双方的时序关系,如下图就是TCP收发双方的时序关系
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下面一层所提供的服务。
- 协议是“水平的”,服务是“垂直的”。
- 实体看得见相邻下层所提供的服务,但是并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的。
- 在同一系统中相邻两层的实体进行交互(即交换信息) 的地方,通常称为服务访问点 SAP (Service Access Point)。SAP 是一个抽象的概念,它实际上就是一个逻辑接口。
- 服务访问点:在同一系统中相邻两层的实*换信息的逻辑接口,用于区分不同的服务类型。
- 数据链路层的服务访问点为帧的“类型”字段。
- 网络层的服务访问点为IP数据报首部中的“协议字段”。
- 运输层的服务访问点为“端口号”。
- 服务原语:上层使用下层所提供的服务必须通过下层交换一些命令,这些称为服务原语。
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
- 多个SDU可以合成为一个PDU;一个SDU也可以划分为几个PDU。