传输层协议TCP三次握手,四次挥手及UDP协议
Posted ‘朱砂痣’、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传输层协议TCP三次握手,四次挥手及UDP协议相关的知识,希望对你有一定的参考价值。
传输层协议
1、传输层
- 传输层位于OSI参考模型的表示层和网络层之间,位于TCP/IP模型的应用层和网络层之间。
- 主要负责向两个主机中进程的通信提供方向。定义数据传输协议的端口号,提供端到端的通信。
- TCP(Transmission Control Protocol)传输控制协议
TCP是面向连接的,可靠的进程到进程的通信的协议
TCP提供双全工服务,即数据可在同一时间双向传输
- UDP (User Datagram Protocol)用户数据协议
无连接,不可靠的传输协议
花费的开销小
3、常用端口号及功能
TCP协议连接的三次握手和断开的四次挥手
序号:发送端为每个字节进行编号,便于接收端正确重组
确认号:用于确认发送端的信息
窗口大小:用于说明本地可接受数据段的条目,窗口大小是可变的
SYN:同步序号位,TCP需要建立连接时将该值设为1
ACK:确认序号位,当该位为1时,用于确认发送方的数据
FIN:当TCP断开连接时将该位置值设为1
三次握手:
TCP是一个双向连接。
- 第一次握手:客户端发送报文,SYN=1,表示想要和服务器建立连接,该报文的序号是X。此时客户端进入SYN_SENT状态
- 第二次握手:服务器收到,并回应ACK=1,表明客户端发送的报文有效,其确认号是X+1,表示回应的是序号为X的报文的。并同时发送SYN=1,表明想和PC1建立连接,该条建立连接的请求报文序号为Y。此时,服务器进图SYN_RECV状态。
此时客户端与服务器进入半连接状态。半连接状态,服务器在等待客户端的回应,会产生进程,占用内存。而当大量客户端与服务器处于半连接状态,就会消耗大量的服务器内存。这就是DDOS攻击
- 第三次握手:客户端收到,并回应ACK=1,表明服务器发送的报文有效,其确认号是Y+1,表明回应的是序号为Y的报文的。客户端的seq=X+1,表明是第X+1次发送报文。发送完毕,客户端和服务器进入ESTABLISHED
四次挥手
- 第一次挥手:客户端进程发出连接释放报文FIN=1,ACK=1,停止发送数据。Seq=X,Ack=Z。客户端进入FIN_WAIT-1状态
- 第二次挥手:服务器收到连接释放报文,发出确认报文,ACK=1。Seq=Z,Ack=X+1。此时服务端进入到CLOSE_WAIT状态。客户端接口报文,进入FIN_WAIT-2状态。此时,处于半关闭状态。服务端可以发送数据,客户端只可以发送ACK应答报文。
- 第三次挥手:服务端将最后数据发送完毕后,发送释放报文。FIN=1,ACK=1。Ack=X,Seq=Y。 服务端进入LAST_ACK状态。
- 第四次挥手:客户端收到服务器的连接释放报文后,发出确认。ACK=1,确认号Ack=Y+1,序号Seq=X+1
UDP协议(了解)
UDP的报文格式:
源端口号(16) 目标端口号(16) UDP(16) UDP校验和(16)
UDP长度:用来指出UDP的总长度,为首部加上数据
校验和:用来完成UDP数据的差错校验,它是UDP协议提供的唯一的可靠机制
以上是关于传输层协议TCP三次握手,四次挥手及UDP协议的主要内容,如果未能解决你的问题,请参考以下文章