计算机网络简单总结

一.长连接与短连接

最近在看dubbo的官方文档,里面提到zookeeper 与provider直接是基于长连接来实现通信的. 那么什么是长连接,什么又是短连接?

其实这两个概念很好理解.长连接是 当客户端与服务端一旦连接后保持持续通信的连接方式.而短连接是当数据传输完毕后即关闭的方式,所以每次数据的处理都没有什么联系.这也是http协议没有状态的原因

而两种连接方式最大的区别就在于,相较于长连接,短连接会更加的安全.  长连接多用于需要频繁连接进行传输的场景,这样会减少双方建立连接的次数 减少三次握手的执行次数,而在dubbo服务中,zookeeper注册中心会频繁的执行请求指向provider. 如果使用短连接会极大的增加网络传输成本,影响consumer的执行效率

二.http与https协议

https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密

       1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

在web项目的开发中   如果同一个网页引用的链接中包含了两种不同的协议  会造成跨域问题 

解决方式一般可以通过不明确声明协议  这样内层链接便会使用外部的协议   或者将两个协议下的链接使用成一样的

三.三次握手与四次挥手

三次握手是个老生常谈的问题.之前一直没能彻底弄清楚  现在总结一下

三次握手指的是客户端与服务端连接时,需要进行三次状态确认才能完成一次连接的建立. 也就是说需要进行三次通信. 第一次由客户端向服务端发送信息 用来请求连接  此时包中会存在两个值 SYN=1 SEQ=X(SYN=1是固定的  SEQ值得是此次通信的随机码或者叫序列号)    服务端接收到包后进行解析并返回报文   SYN=1  ACK=X+1  SEQ=Y(ACK可以理解为服务表示确认的状态)   最后客户端收到报文后  返回 ACK=Y+1 SEQ=Z  由此完成三次握手.

图片来源如示.

说完三次握手 简单说下四次挥手

 因为客户端与服务端建立连接是全双工的   所以,对于每一方来说 断开链接既要断开接收数据的连接也要断开发送数据的链接.

过程大致是这样的,当数据传输完毕后,会由一方先发出讯息 表示传输完毕.然后另一方表示接收完毕 并关闭接收通道 再将自己接收完毕的消息传给发送方 发送方由此关闭传送通道  如此两次叫做四次挥手.   写的有点笼统  基本是这个原理罢了

四.TCP/IP协议

首先简单说下TCP协议与UDP协议.  不知道各位大佬们在学习计算机网络的时候是什么感受. 我是挺蒙圈的而已.概念记了又忘,忘了再记很浪费时间,所以当时理解的时候就拿qq的文件传输做了个类比.  比如在线传输就叫TCP协议   转成离线传输就是UDP协议.

当然这只是一个简单理解. 下面介绍其概念

TCP最主要的特点 : 1.是面向连接的运输层协议  2.一条连接只能有两个端点  3.提供全双工的可靠交付 4.面向字节流

UDP的特点:1.UDP是无连接的 2.UDP使用尽最大努力交付 3.UDP是面向报文的 4.没有拥塞控制 5 .支持一对一和一对多传输

6.首部开销很小只有8字节 而TCP协议有20个字节(包含各种传输信息)

先总结到这里  随后有遇到的问题再进行更新

猜你喜欢

转载自blog.csdn.net/MiyaGi_/article/details/84789445