TCP/IP协议以及创建和断开

来源:互联网 发布:淘宝域名助手下载 编辑:程序博客网 时间:2024/05/22 05:26

 TCP/IPTransmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准

应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等

传输层:TCP,UDP

网络层:IP,ICMP,OSPF,EIGRP,IGMP

数据链路层:SLIP,CSLIP,PPP,MTU

[ISO分成七层:应用、表示、会话、传输、网络、数据链路、接口]



建立tcp需要三次握手,断开连接的话需要四次挥手。

TCP协议三次握手:

《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误

1.客户端——(SYN=1,Seq=Client_isn)——服务端;

2.服务端——(SYN=1,Seq=Service_isn,Ack=Client_isn+1)——客户端

3.客户端——(SYN=0,Seq=Client_isn+1,Ack=Service_isn+1)——服务端


断开连接四次挥手:


1.客户端向服务器发送FIN报文:FIN=1,序号seq=上一个最后传输的字节序号+1=u,发送后,客户端进入FIN-WAIT-1状态。

2.服务器接收到该报文后,发送一个确认报文:令ACK=1,确认序号ack = u+1,自己的报文序号seq=v,发送后,服务器进入  CLOSE-WAIT状态。

3.此时TCP连接进入连接半关闭状态,服务器可能还会向客户端发送一些数据。

4.客户端收到来自服务器的确认之后,进入FIN-WAIT-2状态。等待服务器发送连接释放报文。

5.如果服务器已经没有要发送的数据,则释放TCP连接,向客户端发送报文:令FIN=1,ACK=1,确认号ack =u+1,自己的序号  seq = w(w可能等于v也可能大于v),服务器进入LAST-ACK状态。

6.客户端收到服务器的连接释放报文后,对该报文发出确认,令ACK=1,确认号ack=w+1,自己的序号seq=u+1,发送此报文  后,等待2个msl时间后,进入CLOSED状态。

7.服务器收到客户端的确认后,也进入CLOSED状态并撤销传输控制块。


客户端状态变化:未连接----->SYN-SEND----->ESTABLISHED----->FIN-WAIT-1----->FIN-WAIT-2----->TIME-WAIT----->CLOSED

服务器状态变化:未连接----->SYN-RCVD----->ESTABLISHED----->CLOSE-WAIT----->LAST-ACK----->CLOSED


socket

socket是在应用层和传输层之间的一个抽象层(是"打开—读/写—关闭"模式的实现),它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。


来源:

http://www.cnblogs.com/rond/p/3565113.html


阅读全文
0 0
原创粉丝点击