为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【九月打卡】第11天 经典网络协议与数据包

【九月打卡】第11天 经典网络协议与数据包

2022.09.20 23:38 192浏览

课程名称:(打造简历金牌项目)Vue+Go 开发企业级微服务网关项目
课程章节:第二章
课程讲师:牛儿吃草

课程内容
图片描述
图片描述
HTTP协议

  • GET /HTTP/1.1

  • HOST www.baidu.com

  • User-Agent: curl/7.55.1

  • Accept: */

  • HTTP/1.1 200 OK

  • Accept-Ranges bytes

  • Cache-Control: private,no-cache,no-store,proxy-revalidate,no-transform

  • Connection: keep-alive

  • Content-Length: 2381

  • Content-Type: text/html

WebSocket 握手协议

  • Get /chat HTTP/1.1

  • Host: server.example.com

  • Upgrade: websocket

  • Connection: Upgrade

  • Sec-WebSocket-Key: dGhlIHN…==…

图片描述

TCP为啥需要三次握手以及四次挥手?

  • 三次握手的最主要的目的是保证连接是双工的,可靠更多的是通过重传的机制来保证的。(双工是指数据发送和接收是可以同时执行的,并且连接的双方都可以进行发送和接收)

  • 因为连接是全双工的,所以双方必须都收到对方的FINISH包以及确认才可以关闭。所以才有了四次挥手。

图片描述
图片描述
为啥time_wait要等待2MSL?

  • MSL:Maximum Segument Lifetime,30秒——1分钟

  • 保证TCP协议的全双工连接能够可靠关闭

  • 保证这次连接的重复数据段从网络中消失

为啥会出现大量的close_wait?

  • 首先close_wait一般出现在被动关闭方。

  • 并发请求太多导致。(如果发送大量的请求,然后服务端对应的间隙的数据处理时间没有跟上它这个并发,就会出现一个close_wait状态)。

  • 被动关闭方没有及时释放端口导致。

TCP——流量控制(UDP不需要)

  • 因为UDP是一种非连接的一种不可靠的通讯,所以在UDP上每一次发送都需要绑定一个IP和端口,但发送出去之后就不需要确认了,也就是不需要进行三次握手,流量控制和拥塞控制也就不需要了

  • 由于通讯双方,网速不同。通讯方任意一方发送过快都会导致对方消息处理不过来,所以就需要把数据放到缓冲区当中。

  • 如果缓冲区满了,发送方还在疯狂发送,那接收方只能把数据包丢弃,因此我们需要控制发送速率。

  • 我们缓冲区剩余大小称之为接收窗口,用变量win表示。如果win=0,则表示发送方停止发送。
    图片描述

TCP为啥需要拥塞控制?

  • 流量控制和拥塞控制是两个概念,拥塞控制是调节网络的负载。

  • 接收方的网络资源繁忙,因未及时相应ACK导致发送方重传大量数据,这样将会导致网络更加拥堵。

  • 拥塞控制是动态调整win的大小,不只是以来缓冲区大小,确定窗口大小。

TCP拥塞控制

  • 慢开始和拥塞避免

    图片描述

  • 快速重传和快速恢复
    图片描述

课程收获: 感谢老师讲解了经典的网络协议,包括经典协议与数据包,HTTP,WebSocket等等,以及TCP三次握手,四次挥手,流量控制,拥塞控制等,加深了我对计算机网络的理解。


点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
手记
粉丝
0
获赞与收藏
0

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

50篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

146篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消