大家好呀!我是reload。今天来带大家学习一下华为认证ia篇的网络参考模型部分,应用层、传输层及其对应的协议。重点是tcp协议的工作流程,如三次握手、四次挥手,也是一道非常经典的求职面试题。

一、应用和数据

应用,如我们平常使用的微信、QQ,以及其他各种各样的软件。

数据,以微信聊天为例,我们每天聊天的文本消息,发送的图片、视频等都是数据。

应用与数据的关系?应用产生数据

数据在网络设备之间是如何传递的?通过网络参考模型进行数据的封装﹐再由网络介质实现数据的传递

二、网络参考模型与标准协议

什么是网络参考模型?数据进行标准化封装的流程

1、网络参考模型的分类

1.1 OSI 参考模型

1)概述

OSI 模型,由国际化标准组织ISO 收录在ISO 7489标准中并于1984年发布。

OSI参考模型又称为七层模型,每层及其功能如下:

注:这7个层次都是在一台电脑或设备上处理的。每一个网络设备上(如手机、电脑)都会有这些模型层次。比如微信聊天,发送一段文本给好友,在发送这些数据之前,就经过了这几层模型的处理,非常快就已经做了这些数据的信息处理。

2)对上三层的理解

为了更方便理解,从我们生活中举例,如下:

应用层:对接app,对接应用,如微信。

表示层:如A通过微信发消息给好友B,B只能通过微信接收信息,而不是QQ。

会话层:如微信点开一个好友聊天页面,只能与该好友互通信息,点开过程中就建立了双方的会话连接。

3) 其余四层的理解

以现实生活中买卖双方之间的交易为例。有A、B买卖双方,如下

1.2 TCP/IP参考模型

1)概述

由于OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型

TCP/IP参考模型分为TCP/IP对等模型TCP/IP标准模型两类。

2)分层模型有什么好处?

①各个层次之间分工、界限明确,有助于各个部件的开发、设计和故障排除。

②通过定义在模型的每一层实现什么功能,鼓励产业的标准化

③通过提供接口的方式,使得各种类型的网络硬件和软件能够相互通信,提高兼容性

3)TCP/IP常见协议

HTTP(Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面。

FTP(File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。

DNS(Domain Name Service,域名解析服务):用于实现从主机域名到IP地址之间的转换。

TCP (Transmission Control Protocol,传输控制协议):为应用程序提供可靠面向连接的通信服务。目前,许多流行的应用程序都使用TCP

UDP(User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠性的保证(无连接,不可靠)。

IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接、不可靠的服务。

PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层协议,多用于广域网

Ethernet(以太网协议):一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网技术

注:更完整的可参考协议地图,如下

2、应用层、传输层及其协议

2.1 应用层

1)应用层产生的数据称为Data(数据)。

2)每种协议类型(如http、telnet)产生不同的数据。

3)不同类型的协议用端口号做区分。

2.2 传输层

1)传输层产生的数据称为Segment(数据段)。

2)TCP报文格式

bit,是数据存储的最小单位。1 Byte = 8 bit

1个bit可以描述 0/1(2^1), 2个bit可以描述 00/01/10/11(2^2)

端口的取值范围 0~65535(2^16=65536)

0~1023是知名端口,一般当作目标端口使用;1024-65535 是随机端口,一般当作源端口使用。

3、tcp协议工作流程

3.1 TCP三次握手机制

1)概述

任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。

过程整理如下图所示,重点看图中注释:

2)seq和ack的值

seq:前两次,seq随机;第三次,seq=上一个报文的ack
ack:第一次,ack=0;后两次,ack=上一个报文的seq+1

置位:将bit设置为1。不置位:将bit设置为0

3.2 TCP数据交互机制

三次握手只是建立连接,不携带数据。

理解三次握手机制后,数据交互无非是携带数据进行传送,即多了一个携带的数据大小。过程整理如下图:

3.3 TCP滑动窗口机制

TCP通过滑动窗口机制控制数据的传输速率

1)TCP是一种有序的、可靠的报文交互,存在seq和 ack号。
2)TCP具备重传机制
3)TCP根据网络质量调节数据传输
4)TCP存在window字段,表明了可以接收的数据大小

案例如下:

再来看一个案例:

注:窗口值可以自动调节每次发送报文的大小。

3.4 TCP四次挥手机制

当数据传输完成后,通过“四次挥手”机制断开TCP连接,释放系统资源

关键是两个标志位FIN和ACK,两端都要将数据传输完成,才认为是数据交互完毕。当数据交互完毕后就会触发四次挥手机制