JavaWeb TCP协议

        TCP协议是传输层协议的重点协议,对数据的传输进行一个详细的控制,对数据传输提供的管控机制,主要体现在:安全和效率。在保证安全的前提下,尽可能提高传输效率。

TCP协议结构

 说明:

(1)源/目的端口号:表示数据时从哪个进程来,到哪个进程去;

(2)32位序号/32位确认号:序号表示给发送的每一个数据,进行编号;确认号是如果当前的报文时一个普通报文,确认序号不生效;如果是应答报文,确认序号表示应答的哪个普通报文;

(3)4位TCP报头长度:TCP头部还有多少个4个字节,最大位15*4;

(4)6位标志位:确定状态。URG,紧急指针是否有效;ACK,确认号是否有效;PSH,读取在TCP缓冲区的数据;RST,对方要求重新建立连接,称为复位报文段;SYN,请求建立连接,称为同步报文段;FIN,通知将要关闭,称为结束报文段;

(5)16位窗口大小:一次最多发送数据量大小;

(6)16位校验和:校验数据是否正确;

(7)16位紧急指针:标记哪些部分是紧急数据。

TCP协议的可靠性机制

        TCP协议的几个特点:有连接、可靠传输、面向字节流、全双工。其中,可靠传输是TCP最核心的部分,TCP内的很多机制,都是在保证可靠传输。可靠传输指的是发送方发送过去后,接收方收没收到,自己是清楚的,而不是发送之后,对方一定能收到。UDP协议就是不可靠传输。那么,如何保证可靠性?使用确认应答的模式,发送方发送过去后,接收方如果接收到,就需要回应。

确认应答

        当我给女神发消息的时候,如果我收到女神的回信,那么说明对方是一定收到了的;如果我没收到,估计是对方没看到,或者是对方看到了,但是没理我。这就叫确认应答的方式。发送的消息比较少的时候,还好点,但是消息比较多了,可能出现以下的情况。

        很明显,女神回复的“可以”是针对“今晚能一起吃个饭吗”的回答,而“滚”是针对能不能做女票的回答。 还有一种情况,就是网络中常说的后发先至,后发的可能先到,先发的可能后到。

        这样的情况下,不能通过顺序,来判断当前的应答报文在应答哪个数据。不过,整个过程可以做一个调整,在报文前加一个标记。对于做女票,回复的什么,对于吃饭,回复的什么。更简单的,可以做编号。

        可靠性不等于安全性,和安全性没有任何的关系。安全性指的是数据被截获之后,不容易理解内部的意思或者被篡改,是通过加密来做到的。

        确认应答,要针对数据进行编号,然后才能明确,应答报文是在应答哪个数据。TCP通过引入“序号”来减少后发先至

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值