TCP协议笔记
Posted 一只懒懒的coder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP协议笔记相关的知识,希望对你有一定的参考价值。
Preface
最近在JavaNIO相关的知识,由于JavaNIO的Socket底层是使用c的socket函数,而socket则是对底层协议的抽象;所以想学好socket就必须学好底层协议。
这篇文章采用的是前文讲述的“思维导图学习法”的方式来进行学习,正好能一起学习思维导图的用法,有描述的不正确的地方希望各位多多指正!!
TCP协议
我们带着三个问题来认识下TCP协议:
基本特性是什么?
怎么连接的?
数据是怎么通信的?
基本特性
连接过程
连接阶段包含了两个角色:
client
server
连接过程包括:
建立连接:三次握手
断开连接:四次挥手
重点:为什么是三次握手或四次挥手?(ps:面试常问的题,可以结合过程和我这里标记的答案一起理解下)
数据通信
数据通信方式:
拆包发送:将一个数据包拆分成N个小包发送出去
失败重传:失败了会重新发送该小数据包,关键字:
RTO
,RTT
拥塞控制:网络保护的一种手段,
cwnd
和ssthresh
两个变量,四种算法来控制整个协议包发送的流控策略
以上是关于TCP协议笔记的主要内容,如果未能解决你的问题,请参考以下文章