TCP面向连接可靠传输、UDP、三次握手、报文解析

TCP是一种面向连接的协议,通过三次握手确保连接,并提供可靠传输,包括序号、确认序号、窗口大小等机制防止数据丢失或乱序。而UDP则是无连接的,不保证数据可靠性,但具有更快的速度和更高的效率,常用于实时传输如语音、视频。RTP协议常与UDP配合,确保数据分片的顺序重组。
摘要由CSDN通过智能技术生成

TCP面向连接协议,为应用程序提供可靠传输(传输时必须建立一种连接关系)

面向连接:即应用程序在决定使用TCP作为四层封装的时,数据传输前要先通过“三次握手”机制。 

可靠传输:即在TCP会话建立好后,通过使用TCP内部的各种机制保证数据传输的可靠性

        TCP报文解析:

端口号:用于标识该数据由哪种应用程序发,哪种应用程序收

序号:防止分片乱序(防止网络传输过程中不同分片由于网络延迟而导致接收顺序错乱)

确认序号:确认收到对端发来的TCP报文(每次收到后,在报文序列号基础上+1回复

部首长度:通常20字节(由于有个可变长度的选项和填充项,长度范围实际在20~60字节不等[要满足能被4整除,不够填充项补充])

保留位:全为0,没人用,可忽略

标志位:涵盖六个控制信息

        [1]URG紧急位:表希望紧急处理该TCP的连接

        [2]SYN同步位 & [3]ACK确认位:于TCP建立会话时三次握手使用

        [4]PSH推动位:=1:表接收报文发生拥塞后,不需要排队,加急处理报文

        [5]RST复位位:重置TCP连接

        [6]FIN终止位:表TCP会话结束,终止TCP连接

窗口大小:TCP每一次传输的数据量。即为防止使用TCP应用传输数据时因网速过快导致网络拥塞,双方在发送数据前做的一个协商的预留空间

        window滑动窗口机制:根据接收方接受数据的能力,调整发送数据的窗口大小

根据接收方接收数据的能力,调整发送数据的窗口大小。

校验和:校验整个TCP报文(报头和数据)

紧急指针:=1,优先处理该TCP连接(且标志位URG紧急位也必须=1才生效)

        三次握手(面向连接):

 

(ack=seq+1;ack'=seq+ack;)

        举个栗子:(x+2:序列号)(假设数据500bit)

                A传输三段数据:     [1]seq=x+2;  [2]seq=(x+2)+500; [3](x+2)+1000; 

                →接收方B               若回复的ack=(x+2)+1000+1;则数据接收正常。

                                                若回复的ack=(x+2)+500+1;则代表接收异常,

                届时无论之后的分片是否接收正常,都会从丢失的分片开始重传

         可靠性(可靠传输)≠安全:

1:通过sequence number序号字段对分片进行标号

2:通过确认机制防止丢包

3:通过window窗口滑动窗口机制防拥塞做流控

4:通过校验和检查数据完整性,防止报头被篡改

5:通过重传机制丢包了重传,保障了传输的可靠性

UDP面向非连接协议,不可靠传输(传输时无需建立连接关系)

没有sequence和acknowledgement所以无法确定一个可靠的连接关系,因此基于udp的应用层app发送数据时,不需要考虑建立连接关系,只负责发送数据即可。

        UDP报文解析:

端口号:用于标识该数据由哪种应用程序发,哪种应用程序收

长度:8bit定长(包括报头和数据的整个数据段长度)

校验和:用于满足报头长度被4整除,多余(UDP没有重传机制,发现报文错误直接丢弃)

 UDP和TCP相比它的优点

1.报头小:UDP长度8bit,不占用宽带,TCP至少20bit;

2.速度快:不需要三次握手四次握手,直接传;

3.效率高:不需要等待对端确认;

4.支持的应用类型更广泛:因为没有那么多可靠机制的限制,所以UDP既可以单播,也可以组播传输;

5.没有重传机制:有好有坏,如语音、视频这些场合重传了声音画面叠加,反而影响效果;

6.不用担心基于三次握手的各种攻击(例如TCP的SYN泛洪攻击):黑客只完成一/两次握手,不完成三次握手,服务器便会处于半开连接状态,加上TCP协议本身没有任何计时器限制超时,只要黑客愿意,连接就永远存在。利用这点,黑客可以建立无数个连接,直到耗尽服务器资源,导致程序宕机;

注:UDP协议通常会配合RTP协议结合使用

RTP实时传输协议:报文长度12bit,包含序列号字段,可以让UDP的数据分片按正常顺序重组。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值