标签:
TCP是一个面向连接的协议,在发送数据之前,必须在双方之间建立一条连接。
TCP数据封装在IP数据报中
TCP包首部
下面简单说明部分字段的作用:
端口号:通讯双方由IP地址和端口号标识。
4位首部长度:表示TCP协议头的长度,以4字节为单位。因此TCP最长协议头是4×15=60字节,如果没有选项字段,TCP协议头最短20字节。
6个标志比特含义:URG:紧急指针有效; ACK:确认序号有效; PSH:接收方应尽快将这个报文段交给应用层; RST:重新连接; SYN:同步序号用来发起一个连接; FIN:发端完成发送任务
窗口大小:提供TCP的流量控制
检验和:由发端计算和存储,由收端进行验证
TCP通讯时序图
以上便是建立连接三次握手的具体过程。在TCP通讯中,如果一方接收到对方发来的段,读出其中的目的端口号,发现本机并没有进程使用此端口,就会应答一个包含RST位的段给另一方。
在数据传输过程中,ACK和确认序号是非常重要的,应用程序交给TCP协议发送的数据会暂存在TCP层的发送缓冲区中,发出数据包给对方之后,只有收到对方应答的ACK段才知道该数据包确实发送到了对方,可以从发送缓冲区中释放掉了。如果因为网络故障丢失了数据包或者丢失了对方回复的ACK段,经过等待超时后的TCP协议自动将发送缓冲区中的数据包重发。
建立连接是三次握手,关闭连接通常需要4段,服务器的应答和关闭连接请求通常不合并在一个段中,因为有连接半关闭的情况,这种情况下客户端不能发给服务器,但服务器还能发给客户端。
TCP协议通过“滑动窗口”机制进行流量控制。
标签:
原文地址:http://www.cnblogs.com/chinhao/p/4632682.html