TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

一、TCP协议

TCP协议提供的服务        

TCP  (Transmission Control Protocol)、(传输控制协议):是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接受缓存,用来临时存储数据。

TCP协议的报文段

TCP将若干个字节构成一个分组,简称报文段(Segment)。TCP报文段封装在IP数据中。

 

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP报文的首部长度20~60个字节、内容如下

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

  • 源端口号:为发送方进程对应的端口好。
  • 目标端口号:对应的是接受端的进程,接受端接受到数据段后,根据这个端口号来确定把数据送给那个应用的进程。
  • 序号当TCP从进程接受数据字节时,就把他们存储在发送缓存中,并对每一个字节进行编号。当数据到达目的后,接收端会按照这个序号把数据重新排列,保证数据的正确性。
  • 确认号:确认号是对发送端的确认信息,用它来告诉发送端这个***之前的数据段都已经收到
  • 首部长度:用它可以确定首部数据结构的字节长度。
  • 保留:这部分保留位作为今后扩展功能用。
  • URG:紧急指针有效位。
  • ACK:只有当ACK=1时,确认***字段才有效;当ACK=0时,确认***字段无效
  • PSH:标志位位1时要求接收方尽快将数据段送达应用层。
  • RST:当RST值为1时通知从新建立TCP连接。
  • SYN:同步***,TCP需要建立连接时将这个值设为1。
  • FIN:发送端完成发送任务,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1。
  • 窗口值:说明本地可接收数据端的数目,这个值的大小是可变的
  • 校验和:要来做差错控制。若两次的校验和一致,这说明数据基本是正确的,否者将认为数据以损坏,接受端将丢弃数据。
  • 紧急指针:和URG配合使用,当URG=1时有效。
  • 选项:在TCP首部可以有多达40字节的可选信息。

TCP协议的连接过程(三次握手、四次断开)

TCP是面向连接的协议,它在原点和终点之间建立了一条虚拟连接。在数据通信之前,发送端与接收端要先建立连接,等待数据发送结束后,双方在断开连接。TCP连接的每一方都是由一个IP地址和一个端口号组成的。

简单的表述就是

三次握手:PC1发送SYN请求给接收方,PC2收到请求回复一个ACK并且发送一个SYN请求,PC1接收到SYN请求回应一个ACK

四次断开:PC1发送FIN请求给接收方,PC2收到请求回复一个ACK请求,PC2发送FIN请求给发送方,PC1收到请求后回复一个ACK请求给接收方。

三次握手

第一次握手

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

第二次握手

 

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

第三次握手

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

四次断开

第一次挥手

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

第二次挥手

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

第三次挥手

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

第四次挥手

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

 

断开连接过程中,有一个半关闭的状态,PC1终止发送数据但是任然可以接受PC2的的数据。就是第一次挥手后这个状态开启。

PC2回应了PC1 一个ACK报文表示同意PC1开启半关闭状态。当PC2的数据传输完成后,不在发送数据。PC2发送FIN报文PC1回应ACK这样TCP连接就断开了

 

二、UDP协议

UDP协议提供的服务

UDP是一个无连接、不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否到达目标主机、数据是否出错。

UDP协议的报文段

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

  • 源端口号:用来标识数据发送端的进程
  • 目的端口号:用来标识数据接受端的进程
  • UDP长度:用来指出UDP的总长度,为首部加上数据。
  • 校验和:用来完成对UDP数据的差错校验,这是UDP提供的唯一可靠机制。

三、TCP与UDP的区别

TCP:可靠的、面向连接的传输协议。主要有三次握手四次断开,滑动窗口、数据分段、数据重组、数据重传机制保证数据的可靠性。

UDP:不可靠、面向无连接的传输协议,它没有什么机制保证数据的可靠性。当数据量非常大时可以通过此协议来保证数据的高效低延时。

四、TCP与UDP常用的端口以及端口号

TCP常用的一些端口:

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开

UDP常用的一些端口:

TCP与UDP协议 以TCP协议连接过程 简称三次握手 、四次断开