一:传输层
一:TCP
1:TCP协议的特点
特点:有连接,面向字节流,可靠传输(重点),全双工
2:TCP协议格式
eg:附上一张图,自己领会
3:TCP核心特性
a:可靠传输实现机制
1: 确认应答
a:含义:
保证可靠性传输的最核心的机制
当我给女神发短信邀请她吃饭时,无法确保短信是否被收到,当女神回复给我消息时,我才知道女神收到信息了.所以,确保应答,是可靠性最核心的机制.
b:后发先至
1):为什么会出现 "后发先至"?
原因:网络上从A====>B中间的路径很多
两个包,从A====>B走的路线不一定相同!!
2):怎样解决"后发先至"?
针对数据进行编号.
上述图中,涉及普通报文和应答报文,该如何区分?
通过上述图示的6个标志位进行判断;ACK======>代指应答报文
ACK为0,代表是一个普通报文,只有32位序号是有序的
ACK为1,代表是一个应答报文,32位序号和确认序号是有效的.
序号和确认序号之间没有联系,每一个都有自己的规律!!!
确认应答,是TCP保证可靠性的最核心机制!!!
c:丢包
如果出现丢包?====>导致得不到主机B的应答=====>主机A 进行等待,如果等不到,即超过一定的时间之后,由主机A 进行重传.
d:超时重传的两种情况:
情况1:发的消息本身丢包了 情况2:应答报文丢包了
在情况2下,同一条消息(1-1000)收到两次!!!接收方收到数据之后,需要对重复的数据进行去重.
把重复的数据丢弃掉,保证应用程序,调用inputStream.read的时候,读到的不会重复.
那么,该如何进行去重?=====>TCP的序号作为依据=====>序号一样,即可以进行去重.
b:连接管理
为什么要将B的中间两条信息进行合并?
原因:封装和分用.合并之后节省了封装和分用的过程,降低了成本,提高了效率.
面试三次握手简易图解:
------------------------------------------------未完待续-------------------------------------------------------------