++面向连接的、可靠的、基于字节流的传输层通信协议 ++将应用的数据流分割成报文段并发送给目标结点的TCP层## 标题 ++数据包都有序号,对方收到则发送ACK确认,未收到则重传 ++使用校验和来检验数据传输过程中是否有误**
++URG:紧急指针标志 ++ACK:确认序号标志 ++PSH:push标志 ++PST:重置连接标志 ++SYN:同步序号,用于建立连接过程 ++FIN:finish标志,用于释放连接
为了初始化Sequence Number 的初始化值
++Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认 ++Server不断重试直至超时,Linux默认等待63秒才断开连接
++SYN队列满后,通过tcp_syncookies参数回发SYN Cookie ++若为正常连接则Client会回发SYN Cookie,直接建立连接
++向对方发送保活探测报文,如果未收到响应则继续发送 ++尝试次数达到保活探测数仍未收到响应则中断连接
++确保有足够的时间让对方收到ACK包 ++避免新旧连接混淆
因为全双工,发送方和接受方都需要FIN报文和ACK报文
对方关闭socket连接,我方忙于读或写,没有及时关闭连接 ++检查代码,特别是释放资源的代码 ++检查配置,特别是处理请求的线程配置
1.TCP面向连接有三次握手而UDP无连接是多播发布重单个点向多个点发布 2.TCP比较可靠UDP可能会丢失 3.TCP有序UDP无序 4.TCP速度比较满 UDP快比如在线广播和视频 多人在线游戏 5.量级TCP20个字节UDP8个字节
RTT和RTO ++RTT:发送一个数据包到收到对应的ACK,所花费的时间 ++RTO:重传时间间隔
++支持客户/服务器模式 ++简单快速 ++灵活 ++无连接 ++无状态
++客户端连接到Web服务器 ++发送HTTP请求 ++服务器接受请求并返回HTTP响应 ++释放连接TCP连接 ++客户端浏览器解析HTML内容
答案 DNS解析=》TCP连接=》发送HTTP请求=》服务器处理请求返回HTTP报文=》浏览器解析渲染页面=》连接结束
五种可能取值 ++1xx:指示信息–表示请求已接受,继续处理 ++2xx:成功–表示请求已被成功接受、理解、接受 ++3xx:重定向–要完成请求必须进行更进一步的操作 ++4xx:客户端错误–请求有语法错误或请求无法实现 ++5xx:服务器端错误–服务器未能实现和法的请求
Cookie简介 ++是由服务器发给客户端的特殊信息,以文本的形式存放在客户端 ++客户端再次请求的时候,会把Cookie回发 ++服务器接受到后,会解析Cookie生成与客户端相对应的内容
