TCP/IP不是协议,而是一个协议族的统称,包括了IP协议(网际协议)、ICMP协议(Internet互联网控制报文协议)、TCP协议(传输控制协议)、UDP(用户数据报协议)以及IGMP协议(Internet组管理协议)等。是Internet最基本的协议。

二、TCP/IP协议的层结构

  TCP/IP协议采用四层结构,分别是应用层、传输层、网络层和数据链路层。

  1、OSI七层网络模型与TCP/IP四层结构的关系。

  

 

   2、应用层

    应用层决定了向用户提供应用服务时通信的活动。

  3、传输层

    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

  4、网络层(网络互连层)

    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

   5、链路层

    用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

三、TCP/IP的三次握手

  在建立TCP连接时,需要采用“三次握手”。目的:连接服务器指定端口号,建立TCP连接。

  1.建立连接时,客户端发送syn包(syn=j),客户端进入同步连接(SYN_SENT)状态。(syn—同步序列编号)。

  2.服务器收到syn包,确认客户端的syn(ack=j+1),同时服务器自己也发送一个syn包(syn=k)即syn+ack包,服务器进入同步连接(SYN_SENT)状态。

  3.客户端收到syn+ack包,向服务器发送ack(ack=k+1)包,此包发送完毕,客户端和服务端均进入TCP连接成功状态(ESTABLISHED)。

四、TCP/IP的四次挥手

  目的:断开客户端与服务器的TCP连接

  1.客户端发送释放连接报文,停止数据发送。释放报文首部FIN=1,序列号Seq=u,客户端进入终止等待(FIN-WAIT-1)状态

  2.服务器收到释放连接报文,向客户端发出确认报文,ACK=1,ack=u+1,序列号Seq=v,服务器进入关闭等待(CLOSE-WAIT)状态。

  3.客户端收到服务器的确认,客户端进入终止等待(FIN-WAIT-2)状态,等服务器端发送连接释放报文。

  4.服务器端将最后的数据发送完毕,发送释放报文,进入最终确认(LAST-ACK)状态。

  5.客户端收到释放报文后,发出确认,进入时间等待(TIME-WAIT)状态,在此时TCP还未释放连接

  6.服务器收到确认,进入CLOSED状态,撤销TCP连接,客户端进入CLOSED状态。

  time-wait状态经过2MSL(最大报文生存时间)才能返回closed状态