获得徽章 1
- #青训营笔记创作活动# 12.8 day1 限流这部分在之前django的学习中有过浅浅的了解,但是没有实际用过,在学校的项目里可用的地方不是很多,或许在微生活重构的意见反馈部分可以加上评论1
- #青训营笔记创作活动# day2 最近在做驾驶舱的项目的时候发现自己sql能力不够呀 看完这篇文章后对mysql的索引有了一定的认识,还顺便学习了B树。评论1
- #青训营笔记创作活动# day2 看完之后总结一下: 是通过广播,向DHCP服务器要ip地址。关于offer阶段为何可以是单播,貌似是服务端通过DHCP协议字段“chaddr”(客户端填入)获得mac地址,服务器端给客户端分配的IP地址则填充在“yiaddr”(Your IP Address)中,有了客户端的IP、MAC地址,就可以完成整个IP报文的封装,将DHCP Offer发给客户端了。还要好好学习计网的知识呀展开评论1
- #青训营笔记创作活动# day3 http协议下,客户端不发送请求,服务端就不会主动响应。对于需要服务器主动推送数据到客户端的场景不友好;websocket协议的建立实际上在TCP三次握手后的第一次http请求中携带一些升级协议的请求头,服务端根据请求头中的base64码根据公开的算法解码成字符串,发送给客户端,客户端将base64码用公开的算吗解码后得到的字符串与服务端发来的字符串一致,则协议升为websocket。
websocket为了解决TCP”双全工“下可能产生的粘包问题,使用 数据头(内含payload长度) + payload data 的数据格式来传输。
websocket继承了TCP双全工的优点,解决了粘包问题,适用于需要服务器和客户端(浏览器)频繁交互的大部分场景。比如网页/小程序游戏,网页聊天室,以及一些类似飞书这样的网页协同办公软件。展开评论1 - #青训营笔记创作活动# day4 TCP为什么慢:为了满足可靠性,TCP设计了各种重传机制,拥塞控制机制,流量控制机制,乱序重排机制,分段机制,连接机制等等,这些都是耗时的操作。
UDP为什么快:基本上没有上述机制,即使丢包,也不会重传。(就是这么任性)
为什么UDP有的时候会比TCP快:TCP在传输数据时是将一个数据包分成多个数据包(分段机制),这样即使丢包也不需要全部重传,只要重传丢失的包即可。
UDP虽然是无连接的,没有重传机制,但在很多使用场景下,一般还是会在应用层上做一些重传机制(KCP,QUIC等)。但UDP在传输数据时是将整个数据包进行传输,没有分段机制,一旦发生丢包,就需要将整个数据包重新传递。展开评论1