本文共 1441 字,大约阅读时间需要 4 分钟。
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议
将若干个字节构成一个分组,叫报文段(Segment)
将报文段封装在IP数据报中 IP首部+TCP报文段
 源端口号:为发送方进程对应的端口号 目标端口号:对应的是接收端的进程,根据这个端口确定数据送给那个应用程序的进程 序号 :TCP每个方向的编号都是相互独立的,当字节都被编上号后,TCP给每个报文指派一个序号 确认号:对发送端的确认信息 首部长度:确定首部数据结构的字节长度,一般是20字节,最大可达到60字节 保留:扩展功能,待使用 控制位:6个控制位 URG ACK PSH RST SYN FIN URG:紧急指针有效位 ACK:ACK=1 有效 PSH:标志位=1 时要求接收方尽快将数据送达到应用层 RST:RST=1 通知重新建立TCP连接 SYN:同步序号位 ,建立连接时 SYN=1 FIN:发送端完成任务后,需要断开时 FIN=1 窗口大小 会根据网络的带宽 校验和 : 校验是否完整 紧急指针:当URG=1 才有效 选项:在TCP首部可以有多达40字节的可选信息   TCP建立连接的三次握手:
 第 1 次握手建立连接时,客户端向服务器发送 SYN 报文(SEQ=x,SYN=1),并进入 SYN_SENT 状态,等待服务器确认 第 2 次握手实际上是分两部分来完成的,即 SYN+ACK(请求和确认)报文。 服务器收到了客户端的请求,向客户端回复一个确认信息(ACK=x+1) 服务器再向客户端发送一个 SYN 包(SEQ=y)建立连接的请求, 第 3 次握手,是客户端收到服务器的回复(SYN+ACK 报文)。此时,客户端也要向服务器发送确认包(ACK),完成 3 次握手   TCP断开连接的四次挥手:
 第一次挥手:A数据传输完毕需要断开连接,A的应用进程向B发出报文段(FIN = 1),并停止再发送数据,等待B的确认。   第二次挥手:B收到连接释放报文段后即发出确认报文段(ACK=1,),B进入半关闭等待状态,而A收到B的确认后,等待B发出的报文段。
第三次挥手:当B数据传输完毕后,B发出连接释放报文段(FIN = 1,ACK = 1),等待A 的最后确认。
第四次挥手:A收到B的连接释放报文段后,对此发出确认报文段(ACK = 1,),A进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSE状态。

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。
UDP协议:1)无连接、不可靠的传输协议 2)花费的开销小UDP报文的首部格式:
 源端口号:用来标识数据发送端的进程 目标端口号:用来标识数据接收端的进程 UDP长度:用来指出UDP的总长度,为首部加上数据 UDP校验和:用来完成对UDP数据的加错校验,是UDP协议提供的唯一的可靠机制。   
转载地址:http://vpbe.baihongyu.com/