传输层协议TCP三次握手,四次挥手及UDP协议

传输层协议

 1、传输层

  • 传输层位于OSI参考模型的表示层和网络层之间,位于TCP/IP模型的应用层和网络层之间。
  • 主要负责向两个主机中进程的通信提供方向。定义数据传输协议的端口号,提供端到端的通信。

 2、传输层协议

  • TCP(Transmission Control Protocol)传输控制协议

   TCP是面向连接的,可靠的进程到进程的通信的协议

   TCP提供双全工服务,即数据可在同一时间双向传输

  • UDP (User Datagram Protocol)用户数据协议

   无连接,不可靠的传输协议

   花费的开销小

3、常用端口号及功能

传输层协议TCP三次握手,四次挥手及UDP协议_第1张图片

TCP协议连接的三次握手和断开的四次挥手

  1,TCP报文段

传输层协议TCP三次握手,四次挥手及UDP协议_第2张图片

序号:发送端为每个字节进行编号,便于接收端正确重组

确认号:用于确认发送端的信息

窗口大小:用于说明本地可接受数据段的条目,窗口大小是可变的

SYN:同步序号位,TCP需要建立连接时将该值设为1

ACK:确认序号位,当该位为1时,用于确认发送方的数据

FIN:当TCP断开连接时将该位置值设为1

三次握手:

传输层协议TCP三次握手,四次挥手及UDP协议_第3张图片

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

四次挥手

传输层协议TCP三次握手,四次挥手及UDP协议_第4张图片

  • 第一次挥手:客户端进程发出连接释放报文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协议提供的唯一的可靠机制

 

 

 

 

你可能感兴趣的:(网络原理)