TCP/IP协议

1. OSI与TCP/IP分层对比

图片.png

TCP/IP层次组合很难用OSI的七层模型来套用,它是OSI模型的浓缩,将原来的七层模型合并为四层协议的体系结构,自顶向下分别是应用层、传输层、网络层和网络接口层,没有OSI参考模型的会话层和表示层,一般认为TCP/IP的会话和表示功能是在传输层或应用层上完成的。

在发送端,数据由应用产生,它被封装在传输层的段中,该段再封装到网络层报文包中,网络层报文包再封装到数据链路帧,以便在所选的介质上传送。当接收端系统接收到数据时,是解封装过程。当数据沿着协议栈向上传递时,首先检查帧的格式,决定网络类型,去掉帧的格式,检查内含的报文包,决定传输协议。数据由某个传输层处理,最后数据递交给正确的应用程序。

image

应用层

在应用层包含了不同类型的应用进程,如:telnet远程登录、FTP文件传输等。

image

传输层

传输层主要为两台主机上的应用程序提供端到端的通信服务。在TCP/IP协议族中,有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小数据块(数据段)交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时间等。由于传输层提供了高可靠性的端到端的通信服务,因此应用层可以忽略掉所有这些细节。
而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。

TCP三次握手/建立连接

TCP是面向连接的传输层协议,所谓面向连接就是在真正的数据传输开始前要完成连接建立的过程,否则不会进入真正的数据传输阶段。
TCP的连接建立过程通常被称为三次握手(three-way handshake),过程如下:请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)。这个SYN段为报文段1。 服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。 客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)。 这三个报文段完成连接的建立。


图片.png

TCP四次握手/终止连接

一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独进行关闭。当一方完成它的数据发送任务后就发送一个FIN来终止这个方向连接。当一端收到一个FIN,它必须通知应用层另一端已经终止了那个方向的数据传送。所以TCP终止连接的过程需要四个过程,称之为四次握手过程。


图片.png

你可能感兴趣的:(TCP/IP协议)