TCP/IP是互联网相关的各类协议族的总称。
TCP/IP协议族里面是按层次分为应用层、传输层、网络层和数据链路层。
应用层决定了向用户提供应用服务时通信的活动,例如FTP和DNS,以及HTTP协议处于应用层。
传输层有两个性质不同的协议:UDP和TCP。
TCP/IP通信传输流
发送端在层与层之间传输数据,每经过一层时必定会打上一个该层所属的首部信息。反之,接受端在层与层传输数据时,每经过一层会把相应的首部信息去掉。这种把数据信息包装起来的方法称为封装 (encapsulate)。
TCP的三次握手
TCP位于运输层,提供可靠的字节流服务。字节流服务是指,为了方便传输,把大块数据分割成以报文段(segment)为单位的数据包,采用三次握手策略,握手过程采用TCP的标志——SYN和ACK,确保数据能够到达目标。
三次握手过程。发送端首先发送一个带有SYN标志的数据包给对方,接受端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带有ACK标志的数据包,代表“握手”结束。
TCP的四次挥手
天无不散宴席,TCP连接也是同样。参与一条TCP连接的两个进程任何一方都能终止连接。
如图所示,客户应用进程发起一个关闭连接命令,客户TCP相服务器进程发送一个含有特殊的TCP报文段,即这个特殊报文段首部的一个标志位 FIN比特
被设置为1。
服务器收到该报文段后,就向对方发送一个确认报文段。
然和,服务器发送自己的终止报文段,其FIN比特
被设置为1。
最后,该客户对这个服务器的终止报文段进行确认,并发送一个确认报文段。至此两台主机资源都被释放。
Fighting!