首页 > 技术文章 > 传输层相关知识

guohaojun 2021-05-19 19:26 原文

一、TCP协议介绍

TCP和UDP协议
TCP(Transmission Control Protocol)
传输控制协议
UDP(User Datagram Protocol)
用户数据报协议

二、TCP报文格式

TCP协议
TCP是面向连接的,可靠的进程到进程通信的协议
TCP提供全双工服务,即数据可在同一时间双向传输
TCP报文段
TCp将若干个字节构成一个分组,叫报文段(Segment)
TCP报文段封装在IP数据报中

TCP报文段:

序号:发送端为每个字节进行编号,便于接收端正确重组
确认号:用于确认发送端的信息
窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的
SYN:同步序号位,TCP需要建立连接时将该值设为1
ACK:确认序号位,当该位为1时,用于确认发送方的数据
FIN:当TCP断开连接时该位置为1

三、TCP三次握手

四、TCP四次挥手

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

半连接:
发生在TCP三次握手中
如果A向B发起链接,B也按照正常情况响应了,但是A不进行三次握手,这就是半连接。
半连接攻击:半连接,会造成B分配的内存资源就一直这么耗着,直到资源耗尽。(SYN攻击)

半打开:
如果一方关闭或者异常关闭(断电,断网),而另一方并不知情,这样的链接称之为半打开。处于半打开的连接,如果双方不进行数据通信,是发现不了问题的,只有在通信是才真正的察觉到这个连接已经处于半打开状态,如果双方不传输数据的话,仍处于连接状态的—方就不会检测另外—方已经出现异常
解决方法:
如何解决半打开问题,引入心跳机制就可以家觉半打开。
如果需要发数据的话,这边收到之后其实发现这个连接并不存在了,就会回复RST包告知,这个时候就需要重新建立连接了!

五、UDP协议介绍

UDP协议:
无连接,不可靠的传输协议
花费的开销小

UDP报文的首部格式

UDP长度:用来指出UDP的总长度,为首部加上数据
校验和:用来完成对UDP数据的差错校验,它是UDP协议提供的唯一可靠机制

六、常见协议及其端口

常用的TCP端口及其功能:

常见的UDP端口号及其功能:

推荐阅读