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

Posted ‘朱砂痣’、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传输层协议TCP三次握手,四次挥手及UDP协议相关的知识,希望对你有一定的参考价值。

传输层协议

 1、传输层

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

 2、传输层协议

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

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

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

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

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

   花费的开销小

3、常用端口号及功能

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

  1,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协议的主要内容,如果未能解决你的问题,请参考以下文章

网络 传输层 | UDP协议与TCP协议详解(三次握手及四次挥手滑动窗口拥塞控制)

TCP和UDP的区别(三次握手四次挥手全过程图解)

TCP协议的三次握手与四次挥手

一篇文章搞明白TCP协议的三次握手四次挥手

网络 之 三次握手&四次挥手 介绍

三次握手与四次挥手