C/C++教程

传输层的TCP和UDP

本文主要是介绍传输层的TCP和UDP,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • TCP报文段
  • TCP连接
  • UDP协议

TCP(Transmission Control Protocol)传输控制协议 ——面向控制

TCP是面向连接的、可靠的进程到进程通信的协议,TCP提供全双工服务,即数据可在同一时间双向传输

TCP报文段

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

 

 

 TCP报文段首部格式

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

确认号:用于确认发送端消息  

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

URG:紧急指针有效位  

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

PSH:标志位为1时要求接收方尽快将数据段送达应用层  

RST:当RST值为1时通知重新建立TCP连接

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

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

TCP建立连接

*图中Sep表示请求序列号,Ack表示确认序列号

 *可以用抓包软件看到网络数据的变化

 半连接

发生在TCP三次握手中,如果A向B发起连接,B也按照正常情况响应了,但是A不进行三次握手,这就是半连接。

半连接攻击:利用半连接原理,造成B分配的内存资源就一直这么耗着,直到资源耗尽(SYN攻击)

TCP断开连接

用抓包软件可以看到数据断开连接的

 

 半关闭:当TCP链接中A向B发送FIN请求关闭,另一端B回应ACK之后,并没有立即发送FIN给A,A方处于半连接状态(开开关),此时A可以接受B发送的数据,但是A已经不能再向发送数据。

常用TCP端口号及其功能

 UDP(User Datagram Protocol)用户数据报协议——面向用户

无连接,不可靠的传输协议,花费的开销小,时间少

UDP报文的首部格式

 

UDP长度:用来指UDP的总长度,为首部加上数据

校验和:用来完成对UDP数据的差错校验,它是UDP协议提供的唯一的可靠机制

常用UDP端口号及功能(一般调成默认搭建)

 

 

 

这篇关于传输层的TCP和UDP的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!