博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《http权威指南》阅读笔记(二)
阅读量:6713 次
发布时间:2019-06-25

本文共 652 字,大约阅读时间需要 2 分钟。

http数据传输过程

1:查找dns,获取服务器ip地址

2:建立连接

3:发送请求报文

4:接受响应报文

5:处理响应

6:关闭连接

tcp/ip协议性能问题

延迟确认问题:由于tcp/ip协议的可靠性,接收方必须发送请求确认报文,由于请求确认报文长度短,单独发送的话浪费带宽,一般会把请求确认报文附带在请求响应报文上发送,所以请求确认报文会先放在内存缓冲区里面,等待有响应报文的时候一起发送,一般会有延迟。

tcp delay问题:对于一般情况,请求报文发送,tcp/ip软件会立即把报文组装成ip报文,发送出去,及时有大量单字节报文,也会发送出去,回给网络带来大量的拥塞。为了制止这种不道德行为,有一个算法(忘记名字),会先把数据放在缓冲区,等待凑到ip报文最大的发送字节,组装发送出去,可以设置一个延时,如果超过这个延时,还没有后续的报文需要发送,就直接发送出去。这个就是tcp delay的问题。对于实时要求比较高的互联网应用,可以关闭这个。

time_await问题:在服务器处理完请求,回关闭socket。但是考虑到后续可能在复用这个socket,回延迟一定的时间进行关闭。这个是一个历史问题,那个时候路由器比较慢,带宽也低,数据发送时间比较长,下一次发送数据的时候,如果有没有关闭的socket,可以复用。如果这个时间设置的比较长,对于http请求客户端来说,因为每次连接都是随机使用不同的端口,不会复用,会新创建一个socket,如果使用完成不立即关闭回收的话,会导致socket耗尽。

转载地址:http://vkelo.baihongyu.com/

你可能感兴趣的文章
java.util.concurrent.locks.LockSupport
查看>>
红帽加入 Node.js 基金会白金会员
查看>>
《OpenGL编程指南》一2.7 独立的着色器对象
查看>>
Ionic 3.4.2 发布,漂亮的 HTML5 移动应用框架
查看>>
Linux Kernel 4.9-rc8,4.9 分支最后一个候选版
查看>>
想开发 Android 分支?没门!
查看>>
《Web异步与实时交互——iframe AJAX WebSocket开发实战》—— 2.2 相关关键技术及工作原理...
查看>>
《Nmap渗透测试指南》—第1章1.5节Mac OS安
查看>>
重磅,企业实施大数据的路径
查看>>
linux之cp/scp命令+scp命令详解
查看>>
Spark 源码分析 -- BlockStore
查看>>
《C语言编程初学者指南》一1.7 创建并运行第一个C程序
查看>>
学习和使用 PHP 应该注意的10件事
查看>>
《Ember.js实战》——2.5 Ember.js对象模型
查看>>
《响应式Web图形设计》一第13章 响应Web设计中的图像
查看>>
shiro session 监听
查看>>
定时任务框架Quartz的新玩法
查看>>
段前缀的使用(0504)
查看>>
.NET Framework 源码
查看>>
开源大数据周刊-第6期
查看>>