网络模型
应用层
传输层:TCP
网络层:IP
网络接口层
linux如何收发网络包?
TCP:保证可靠性,流量控制维护状态信息
作用:
特点:
头部格式
序列号,确认应答号,控制位
TCP连接
TCP四元组
最大TCP连接数
文件描述符限制
内存限制
linux中查看TCP状态
netstat -napt
TCP连接建立
三次握手和状态变迁
过程:
为什么是三次,不是二次?四次?
1.初始化socket,序列号和窗口大小,并建立连接。
2.避免历史连接
3.同步初始序列号(为什么TCP每次初始化序列号不同?)
序列号作用:
4.避免资源浪费:建立多个冗余的无效连接,造成资源浪费
为什么IP分片之前还需要TCP分片
丢失三次握手分别会发送什么?
第一次丢失?
第二次丢失?
第三次丢失?
什么是 SYN 攻击?如何避免 SYN 攻击?
TCP 连接断开
TCP 四次挥手过程和状态变迁
为什么挥手需要四次?
丢失四次挥手分别会发送什么?
第一次丢失?
第二次丢失?
第三次丢失?
第四次丢失?
为什么TIME_WAIT等待的时间是2MSL?
为什么需要TIME_WAIT状态?
1.防止连接中的数据
2.保证被动关闭连接的一方,能能被正确关闭
TIME_WAIT过多危害?
如何优化?
建立了连接,但客户端出现故障怎么办?
保活机制
避免历史连接
为什么TCP每次初始化序列号不同?
初始序列号如何随机产生
TCP机制
重传,滑动窗口,流量控制,拥塞控制。