简析传输层协议——TCP、UDP协议

TCP/IP协议族的传输层协议

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

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

TCP报文格式

在这里插入图片描述

部分作用
SYN-Synchronize同步序号位,TCP需要建立连接时将该值设为1
ACK确认序号位,当该位为1时,用于确认发送方的数据
FIN-Finish/Final当TCP断开连接时将该位置为1
序列号-Sequence Number,Seq发送端为每个字节进行编号,便于接收端正确重组
确认号-Acknowledgment Number,ack(实际数值)用于确认发送端的信息
窗口大小用于说明本地可接收数据段的数目,窗口大小是可变的
补充版TCP标志位-
FIN结束标志,表示发送端已经达到数据末尾,也就是说双方的数据传送完成。
SYN用于建立连接。
ACK用于确认序号,确认接收方已成功接收到发送方的数据。
PSH表示Push操作,即数据包到达接收端后,立即传送给应用程序。
RST表示连接复位请求,用于重置错误的连接。
URG表示紧急指针域有效,用于保证TCP连接不被中断。

另外,"ACK"可能指的是TCP报文段首部中的确认标志位,而"ack"则指的是确认号字段的实际数值

TCP三次握手

在这里插入图片描述

TCP四次挥手

在这里插入图片描述

UDP协议介绍
无连接、不可靠的传输协议
花费的开销小
UDP报文的首部格式
源端口号(16)|UDP长度(16)
目标端口号(16)|UDP校验和(16)

常见协议及其端口

在这里插入图片描述

补充概念

半关闭:
当TCP链接中A向B发送 FIN 请求关闭,另一端B回应ACK之后,并没有立即发送 FIN 给A,A方处于半连接状态(半开关),此时A可以接收B发送的数据,但是A已经不能再向B发送数据。
半连接:
发生在TCP三次握手中
如果A向B发起链接,B也按照正常情况响应了,但是A不进行三次握手,这就是半连接。半连接攻击:半连接,会造成B分配的内存资源就一直这么耗着,直到资源耗尽。(SYN攻击)
半打开:
如果一方关闭或者异常关闭(断电,断网),而另一方并不知情,这样的链接称之为半打开。处干半打开的连接,如果双方不进行数据通信,是发现不了问题的,只有在通信是才真正的察觉到这个连接已经处于半打开状态,如果双方不传输数据的话,仍处于连接状态的一方就不会检测另外一方已经出现异常
解决方法:
如何解决半打开问题,引入心跳机制就可以察觉半打开。
如果需要发数据的话,这边收到之后 其实发现这个连接并不存在了,就会回复RST包告知,这个时候就需要重新建立连接了

小结:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值