协议笔记

1.QQ及时通信软件既使用UDP也使用TCP

  • 登录过程,客户端采用TCP协议向服务器发送消息,HTTP协议下载信息。登录之后,会有一个TCP连接来保持在线状态。
  • 和好友发消息,客户端采用UDP协议,但是需要通过服务器转发。腾讯为了确保传输消息的可靠性,采用上层协议来保证可靠传输:如果客户端收到UDP发送的消息,需要使用UDP发送一个应答包,以此保证消息可以无遗漏传输。
  • 在内网中两个客户端传文件,QQ采用P2P技术,不需要服务器中转。

2.TCP长连接为什么要发送心跳包

因为当电脑连接上网络时,运营商分配给电脑的IP只是一个内网的IP,手机要连上Internet必须要通过运营商的网关进行IP转化,这个网关称为NAT,电脑连接Internet是将运营商的内网ip和端口与外网相互映射来完成的。
但是运营商为了减少网关NAT映射表的负荷,当一个链路有一段时间没有通信时,就会删除对应表,造成链路中断,这个时间一般为五分钟,所以长连接后台需要定时发送心跳包来维持长连接。
同时,长连接的心跳周期不能设置的太长,否则长连接会被释放掉,造成客户端的重连和登录,同时也不能设置太短,太短会加重服务器的负担。

3.GET和POST在TCP阶段的不同

  • 对于GET请求,浏览器会把http头部和数据部分一起发送出去,服务端响应200(返回数据)
  • 对于POST请求,浏览器会先发送http头部,服务器响应100 continue,浏览器再发送数据部分,服务端响应200(ok)
  • 并不是所有的浏览器都会在POST中发送两次包,Firefox只发送一次
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,491评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,483评论 6 174
  • 定义 网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议主要由三个要素组成:语义、语法及时...
    FlyAndroid阅读 4,629评论 0 10
  • 参考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麦子阅读 8,073评论 0 14
  • 在过去的几天时间里面,我主要集中精力实现Contest 的的Rank以及Status功能 Rank实现代码####...
    LJCgeorge阅读 3,843评论 0 0

友情链接更多精彩内容