通过上次讲解网络层定义的三个非常重要的协议,分别是:arp协议、ip协议和路由协议。知道了网络层可以实现数据的转发,2个机器实现数据包的基本传输。
虽然网络层能达到一个数据包的基本转发,但是当一个数据特别多、特别大的时候,没办法保证数据的完整性。
要引入一个传输层实现数据包传输的完整性。传输层通过定义了tcp协议和udp协议。并且还定义了端口,用来寻找相应的应用程序,找到对应的应用程序,来对数据进行正确得处理。
端口是基于tcp协议和udp协议来实现的。
一、TCP协议
tcp协议:传输控制协议,顾名思义,就是要对数据的传输进行一定的控制。
tcp协议头部组成结构:
图片来自网络
数据的封装和解封装的过程:网络层传过来的一个ip数据包,到了传输层后,传输层会给我封装一个tcp的头部信息。tcp的头部信息包括:一个端口号、源端口、目的端口、序号、 确认号、标志位。
源端口、目的端口:用来寻找相应的应用层协议的,找到相应的应用程序处理tcp的数据包。
二、TCP协议实现的原理和过程
TCP协议再往上层走,除了会话层和表示层,就是应用层了。如果在浏览器里访问一个百度的页面,我的本机浏览器和百度服务器之间进行了简单的交互和链接。
刚才用浏览器访问,是通过http或者https协议,这两个协议是基于tcp协议的。
http或者https协议是应用层协议,传输层是tcp协议。所以能看到客户端访问百度服务器,百度服务器给我返回了百度的页面。这样的过程,在底层就是tcp协议在支撑,所以tcp协议完成了这个交互过程,才有http或者https协议的交互和链接。
三、TCP协议链接
客户端发起向百度服务器的请求,其实是底层先发起了一个tcp的链接请求:是tcp三次握手。tcp四次挥手是断开链接的过程。