1.TCP和UDP的区别
a.TCP基于有连接,UDP基于无连接
b.TCP保证可靠传输,UDP不保证可靠传输
c.TCP基于流模式,UDP为数据报模式
d.TCP为点到点,UDP为1对1,1对多或多对多
2.TCP和UDP的应用场景
TCP:数据要准确传递的场景,HTTP,HTTPS,FTP等协议
UDP:网络电话,视频等,RIP,DHCP等基于广播的协议
3.TCP的三次握手和四次握手
三次握手在连接时:
1). 客户端发送SYN包, 客户端变成SYN_SENT状态
2). 服务端收到SYN包,确认客户端的SYN包后,发送SYN和ACK包,进入SYN_RECV状态
3). 客户端收到服务端的SYN和ACK包后,向服务端发送ACK包,进入ESTABLISHED状态,完成握手
accept发生在三次握手后
四次握手在断开时:
1). 客户端发送FIN, 客户端变成SYN_SENT状态
2). 服务端收到FIN包,返回一个ACK包
3). 服务端关闭和客户端的连接,发送一个FIN包给客户端
4). 客户端发送ACK确认
为什么断开是四次,因为TCP是全双工通信,可以半关闭,所以要防止另一个继续发送数据,两边都得关闭
TIME_WAIT状态是四次挥手时客户端在2,3步的状态
TIME_WAIT又称为2MSL等待状态,MSL是系统中定义的最大报文生存时间,任何TCP报文在网络中生存时间超过这个值就必须被丢弃。
等待MSL的原因是防止最后一个ACK丢失后可以进行重发,如果ACK丢失后,服务器会重发FIN。
4.UDP建立可靠连接
设置重传机制
5.TCP滑动窗口
提高发送效率
6.TCP的拥塞控制
a.) 慢启动 快重传 快恢复
7.TCP的超时和重传
8.OSI 7层网络模型
应用层:为应用程序提供服务
表示层:数据格式转化,数据加密
会话层:建立,管理和维护
传输层:建立,管理和维护端到端的连接
网络层:IP选址以及路由选址
数据链路层:提供介质访问和链路管理
物理层:实现最终信号的传输
9.TCP/IP的五层模型
应用层:
传输层:
网络层
数据链路层:
物理层: