计算机网络总结

计算机网络

  • 传输控制层有TCP/UPD协议

 

HTTP

  • HTTP【协议】是客户端和服务器【交互】的一种通讯的格式

  • 所谓的【协议】实际上就是双方约定好的【格式】,让双方都能看得懂的东西,交互实际上就是【请求】和【响应】

HTTP各个版本之间的区别

  • HTTP1.0默认是短连接,每次于服务器交互,都需要新开一个连接

  • HTTP1.1版本最主要的是【默认持久连接】。只要客户端服务器没有断开TCP连接,就一直保持连接,可以发送多次HTTP请求;其次就是【断点传输】,利用HTTP消息头使用分块传输编码,将实体整体分块进行传输

  • HTTP/2不再以文本的方式传输,采用【二进制分帧层】,对头部进行了【压缩】,支持【流控】,最主要就是HTTP/2是支持【多路复用】的(通过单一的TCP连接【并行】发起多个的请求和响应消息)

  • HTTP1.1提出的【管线化】只能【串行】(一个响应必须完全返回后,下一个请求才会开始传输)

  • HTTP/2多路复用则是利用【分帧】数据流,把HTTP协议分解为【互不依赖】的帧(为每个帧【标序】发送,接收回来的时候按序重组),进而可以【乱序】发生避免【一定程度上】的队首阻塞问题

 

  • 但是,无论是HTTP1.1还是HTTP/2,response想要的【处理顺序】总是需要跟request请求顺序保持一致。假如某个请求response响应慢了,还是会有阻塞的问题。这受限于HTTP底层的传输协议TCP,没有办法完全解决【线头阻塞】问题

  • HTTP/3跟前面版本最大的区别就是:HTTP1.x和HTTP/2底层都是TCP,而HTTP/3底层是UDP。使用HTTP/3能够减少RTT【往返时延】(TCP三次握手,TLS握手)

 

HTTPS

  • 【安全】的HTTP协议(客户端和服务器传输链路中进行加密)

  • 客户端是需要知道服务器是不是【真实】的,所以在HTTPS中会有一个角色:CA(公信机构)

  • 服务端在使用HTTPS前,需要去认证的CA机构申请一份【数字证书】。数字证书里包含有证书持有者,证书有效期、【服务器公钥】等信息

  • CA机构也有自己的一份公私钥,在发布数字证书之前,会用自己的【私钥】对这份数字证书进行加密

  • 等到客户端请求服务器的时候,服务器返回证书给客户端。客户端用CA的公钥对证书解密(因为CA是公信机构,会内置到浏览器或操作系统中,所以客户端会有公钥)。这个时候,客户端会判断这个【证书是否可信/有无被篡改】

  • 公钥加密,私钥解密我们叫作【数字签名】(这种方式可以查看有无被篡改)

  • 解决了【认证】的问题,至少客户端能保证是在跟【真实的服务器】进行通信

 

TCP

  • 面向连接,可靠的

三次握手

 

举个例子,把客户端比作男孩,服务器比作女孩。用他们的交往来说明“三次握手”过程:

  1. 男孩喜欢女孩,写信告诉女孩:我喜欢你,和我交往吧。写完信后,焦急的等待,因为不知道信能否顺利的传达到女孩。

  2. 女孩收到男孩的情书后,心花怒放,原来我们是两情相悦,于是给男孩回信:我收到了情书,我也喜欢你,愿意和你交往。

  3. 男孩收到回信很开心,因为发出的情书女孩收到了,并且从信中知道女孩也喜欢自己,愿意和自己交往。于是又写了一份信告诉女孩:你的心意和信,我都收到了,谢谢你,我爱你!

女孩收到男孩的回信后,也很开心,之后快乐的交流起来了。

这就是通俗版的“三次握手”,期间三封信代表着“三次握手”,用来确定两个方向上的数据传输通道是否正常。

四次挥手

举个例子,把客户端比作男孩,服务器比作女孩。通过他们的分手来表达“四次挥手”过程:

  1. 男孩发现女孩变成了自己讨厌的样子,决定分手,发了一封信告诉女孩。

  2. 女孩收到信,知道了男孩要分手,怒火中烧,立马给男孩回信,分手就分手,给我点时间,我把你的东西收拾好,还给你。男孩收到女孩的回信,知道女孩要和自己分手。等待女孩把自己的东西收拾好。

  3. 过了几天,女孩收拾好了东西,于是再次写信给男孩,你的东西收拾好了,快拿走,从此恩断义绝。

  4. 男孩收到女孩第二份回信,知道女孩收拾好了东西,可以正式分手了,于是再次写信给女孩:我知道了,这就去拿。

为什么握手是三次,挥手却要四次?

因为SYN代表连接标志,ACK代表确认报文。建立连接时,服务端结束CLOSED阶段并不需要任何准备,直接返回SYN和ACK报文,开始连接。

释放连接,被动房服务器,收到服务端释放连接的请求时并不能立即释放,因为有必要的数据处理,所以服务器先返回ACK确认收到报文,经过CLOSE-WAIT阶段准备好释放之后,才会返回FIN释放报文。

为什么客户端要在TIME-WAIT阶段要等2MSL?

因为客户端发出最后的ACK确认报文的时候,不能确定服务器端是否正常收到。所以服务端在发送完ACK确认报文后,会设置一个2MSL的计时器。

UDP

  • UDP是无连接的,发送数据之前需要建立连接,不保证可靠性,面向报文。支持一对一,一对多,多对多的交互通信,首部开销小,只有8字节

五层协议

  • 五层协议的体系结构是为了接受网络原理而设计的,实际应用还是采用TCP/IP四层体系结构

 

浏览器访问url地址过程

  1. DNS解析

  2. TCP连接

  3. 发送HTTP请求

  4. 服务器处理请求并返回HTTP报文

  5. 浏览器解析渲染页面

  6. 连接结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值