简单说说TCP的三次握手
**传输控制协议TCP简介
++面向连接的、可靠的、基于字节流的传输层通信协议
++将应用的数据流分割成报文段并发送给目标结点的TCP层## 标题
++数据包都有序号,对方收到则发送ACK确认,未收到则重传
++使用校验和来检验数据传输过程中是否有误**

TCP Flags
++URG:紧急指针标志
++ACK:确认序号标志
++PSH:push标志
++PST:重置连接标志
++SYN:同步序号,用于建立连接过程
++FIN:finish标志,用于释放连接


为什么需要三次握手才能建立起连接
为了初始化Sequence Number 的初始化值
首次握手的隐患----------SYN超时
++Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认
++Server不断重试直至超时,Linux默认等待63秒才断开连接
针对SYN Flood的防护措施
++SYN队列满后,通过tcp_syncookies参数回发SYN Cookie
++若为正常连接则Client会回发SYN Cookie,直接建立连接
建立连接后,Client出现故障怎么版办
保活机制
++向对方发送保活探测报文,如果未收到响应则继续发送
++尝试次数达到保活探测数仍未收到响应则中断连接



原因
++确保有足够的时间让对方收到ACK包
++避免新旧连接混淆
为什么需要四次握手才能断开连接
因为全双工,发送方和接受方都需要FIN报文和ACK报文
服务器出现大量CLOSE_WAIT状态的原因
对方关闭socket连接,我方忙于读或写,没有及时关闭连接
++检查代码,特别是释放资源的代码
++检查配置,特别是处理请求的线程配置
UDP简介
UDP报文结构


TCP和UDP的区别
结论
1.TCP面向连接有三次握手而UDP无连接是多播发布重单个点向多个点发布
2.TCP比较可靠UDP可能会丢失
3.TCP有序UDP无序
4.TCP速度比较满 UDP快比如在线广播和视频 多人在线游戏
5.量级TCP20个字节UDP8个字节
TCP的滑动窗口
RTT和RTO
++RTT:发送一个数据包到收到对应的ACK,所花费的时间
++RTO:重传时间间隔



HTTP简介
超文本传输协议HTTP的主要特点
++支持客户/服务器模式
++简单快速
++灵活
++无连接
++无状态

请求/响应的步骤
++客户端连接到Web服务器
++发送HTTP请求
++服务器接受请求并返回HTTP响应
++释放连接TCP连接
++客户端浏览器解析HTML内容
在浏览器地址栏键入URL,按下回车之后经历的流程
答案
DNS解析=》TCP连接=》发送HTTP请求=》服务器处理请求返回HTTP报文=》浏览器解析渲染页面=》连接结束
HTTP状态码
五种可能取值
++1xx:指示信息–表示请求已接受,继续处理
++2xx:成功–表示请求已被成功接受、理解、接受
++3xx:重定向–要完成请求必须进行更进一步的操作
++4xx:客户端错误–请求有语法错误或请求无法实现
++5xx:服务器端错误–服务器未能实现和法的请求

GET请求和POST请求的区别

Cookie和Session的区别
Cookie简介
++是由服务器发给客户端的特殊信息,以文本的形式存放在客户端
++客户端再次请求的时候,会把Cookie回发
++服务器接受到后,会解析Cookie生成与客户端相对应的内容



HTTP和HTTPS的区别








本文深入探讨了TCP与UDP两种传输层协议的特点与区别,详细解释了TCP的三次握手建立连接和四次挥手断开连接的过程,以及UDP的无连接特性。同时,对比了TCP与UDP在可靠性、速度、数据包大小等方面的差异。
5060

被折叠的 条评论
为什么被折叠?



