频道栏目
首页 > 资讯 > 网络协议 > 正文

http协议学习笔记(2)

17-09-15        来源:[db:作者]  
收藏   我要投稿

http是应用层协议,TCP是传输层协议,http连接时基于TCP连接的

过程:根据URL通过DNS找出要访问的服务器的IP地址,然后创建套接字,客户端与服务器间进行TCP连接(三次握手),客户端发送请求报文,带有SYN标签,服务器收到后返回一个ACK应答包,并发送一个带有SYN标签的包,客户端收到后,返回ACK包确认连接成功(现代TCP栈在第三次握手的时候就已经开始发送数据),建立连接后发送数据。

TCP延迟算法:如果规定时间内没有收到ACK包就会进行重连。ACK应答包实际上非常小,所以允许在第三次握手时携带数据,通常延迟100到200毫秒,等待数据,如果没有数据要携带,那么就会单独发送ACK应答包

产生的问题:

1、发送数据是很快的,大部分时间都浪费在建立连接的过程中。TCP的首部和标记占40个字节,如果只发送少量的数据会浪费,所以设计了Nagle算法,只有数据到达最大容量时才会进行发送。但TCP连接建立后,并不会直接发送http数据,而是发送http请求报文,但请求报文很小,不能占满容量,所以一定会等待100到200毫秒,造成了很大的时间延迟

2、TCP慢启动,建立连接后TCP会限制最大速度,一段时间后才能提速,用于防止过载和拥塞,也造成了一定的延迟

解决方法:1、设置参数TCP_NODELAY,禁用nagle算法

2、持久连接

相关TAG标签
上一篇:HADOOP:java简单的访问HDFS文件
下一篇:Tensorflow实现一个完整的CNN例子
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站