TCP、UDP、HTTP、HTTPS、Socket协议之间的联系

mac2026-09-01  8

简单说说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的区别

最新回复(0)