计算机网络
三次握手的目的
建立可靠的通信通道,确认客户端和服务器端双方的接收发送功能都正常。
第一次握手:客户端什么也不能确认,服务器端确认对方发送正常,自己接收正常
第二次握手:客户端确认自己发送、接收正常,对方接收、发送正常;服务器端确认对方发送正常,自己接收正常
第三次握手:客户端确认自己发送、接收正常,对方接收、发送正常;服务器端确认自己发送、接收正常,对放接收、发送正常。
第二次握手为什么要传回SYN和ACK?
第二次握手接收端传回发送端发送的SYN是为了告诉客户端,我接收到的消息就是你所传输的消息,表明从客户端到服务器端的通信通道是正常的。而传回SYN则是为了确认从服务器端到客户端的通信通道是正常的。
客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答表示接收到了这个消息,最后客户机再以 ACK(Acknowledgement)消息响应。这样在客户机和服务器之间才能建立起可靠的 TCP 连接,数据才可以在客户机和服务器之间传递。
为什么要四次挥手
断开一个TCP连接需要“四次挥手”
- 客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送
- 服务器-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号
- 服务器-关闭与客户端的连接,发送一个FIN给客户端
- 客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1
TCP和UDP协议的区别
TCP是面向连接的可靠传输方式,以字节流的形式传输,传输效率慢,所需资源多
UDP是无连接的尽最大努力交付的不可靠传输方式,以数据报的方式传输,传输效率快,所需资源少
UDP一般用于即时通信,比如QQ语音、视频、直播等
TCP在传送数据前必须先建立连接,数据传送结束后要释放连接,TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 一般用于文件传输、发送和接收邮件、远程登录等场景。
TCP协议如何保证有效传输?
1、应用数据被分成最适合发送的数据块
2、TCP会给发送的每一个包进行编号,接收方对数据包进行排序,将有序数据传送给应用层
3、校验和:检测数据在传输过程中的任何变化,如果收到的校验和有差错,TCP将丢弃该报文段并不确认收到这个报文段
4、TCP的接收端会丢弃重复的数据
5、流量控制:TCP连接的双方都有一个固定大小的缓存空间,接收端只允许发送端发送接收端缓存区能容纳的数据。当接收方来不及处理发送端的数据时,会提示发送方降低发送的速率,防止丢包。TCP使用滑动窗口实现流量控制。
6、拥塞控制:当网络拥塞时,减少数据的发送
7、ARQ协议(自动重传请求):为了实现可靠传输,每发送一个分组就停止发送,等待接收方确认(回复ACK)后再发送下一个分组。
8、超时重传:当TCP发出一个数据段,会启动一个定时器,等待接受方确认收到这个报文段,如果没能及时收到确认,发送端会重新发送这个报文段。
连续ARQ协议:为了提高信道利用率,发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。
**拥塞控制:**慢开始、拥塞避免、快重传和快恢复
慢开始:由小到大逐渐增大发送窗口,cwnd(拥塞窗口)初始值为1,每经过一次传播cwnd加倍
拥塞避免:拥塞避免算法的思路是让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送放的cwnd加1.
快重传与快恢复(FRR):一种拥塞控制算法,它能快速恢复丢失的数据包。没有 FRR,如果数据包丢失了,TCP 将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了 FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。如果短时间大量丢包,FRR就不适用了。
在浏览器中输入url地址到显示主页的过程
- DNS解析
- TCP连接
- 发送HTTP请求
- 服务器处理请求并返回HTTP报文
- 浏览器解析渲染页面
- 连接结束
URI和URL的区别
- URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。
- URL(Uniform Resource Location) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。
URI的作用像身份证号一样,URL的作用更像家庭住址一样。URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。
HTTP和HTTPS的区别
端口:http默认端口80,https默认端口443
安全性:HTTP协议是明文传输,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
|