计算机网络基础

TCP和UDP的区别

两种协议都是工作在传输层,目地都是在网络之间传输数据。
TCP:

  1. 基于连接,连接的建立需要经历三次握手确保连接的可靠性,连接断开需要经历四次挥手,确保彻底断开。
  2. 传输数据时,TCP会将拆分的数据包通过发送缓冲区发送出去,当对方接收到数据包时会进行数据包的确认,假如数据包有缺失会要求发送方重传,保证包不丢失。

UDP:

  1. 基于非连接,简单包装一下数据包,就直接从网卡把数据包发送出去。数据包之间没有状态上的联系,所以数据包在网络传输过程中可能会产生一些丢包现象,稳定性若于TCP。但由于UDP的机制简单,所以性能损耗少,资源占用也少,传输速度快。在一些游戏,直播,视频通话等等一些场景下,UDP是上擅长与TCP的。
TCP数据传输流程

在这里插入图片描述

TCP协议会为每个连接建立发送缓冲区,对建立连接后的数据第一个字节序列号为0,后面每个字节序列号增加1,从发送缓冲区取部分数据组成发送报文,在其TCP协议头中会附带序列号和长度,接收端在接收到报文后,会进行回复确认(ACK=序列号+长度),如此能够保证发送数据不丢失。

TCP的三次握手

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

  1. 客户端在和服务端建立连接时,首先会向服务端发送一包SYN包,此为第一次握手。

  2. 当服务端接收后回复一包SYN+ACK包表示接收到连接请求,此为第二次握手。

  3. 当客户端收到服务端的SYN+ACK包后,会向服务端发送一发ACK包,表示客户端我已收到你的回复。此为第三次握手。

    三次握手保证了客户端与服务端确定了可靠的网络连接

TCP协议的四次挥手

在这里插入图片描述

  1. 当客户端需要关闭连接,会向服务端发送一包FIN包,表示要断开连接,此为第一次挥手。
  2. 服务端接收到后,会进入关闭等待状态,并回复客户端一包ACK包表示我已接收到关闭连接的请求,此为第二次挥手
  3. 接下来服务端会发送一包FIN包到客户端,表示我要关闭连接了,此为第三次挥手
  4. 客户端收到FIN包后回复ACK包,表示我已收到服务端的FIN包,你可以关闭连接了,服务端接收到FIN包后,直接关闭连接,此为第四次挥手。而客户端发送完ACK后也进入超时等待,最后关闭连接。(客户端第四次挥手需要超时等待是为了防止最后一发ACK包丢失的情况)

四次挥手断开连接保证了客户端和服务端都断开了连接

OSI七层模型

![img](https://img-blog.csdn.net/20160927104630528

物理层:主要是为设备提供原始的电信号传输(按比特来传输,即二进制传输,通过电流强弱来进行识别),常见的例如网线,集线器

数据链路层:将物理层传输的电信号(比特bit流)转换为帧进行传输,并提供链路管理(例如可靠连接链路的建立),流量控制等功能,例如网卡,交换机等。

网络层:在网络间建立逻辑链路,并转发路由数据包,例如路由器

传输层:建立连接并进行数据包的传输,例如TCP,UDP协议

会话层:会话管理,访问身份验证,例如服务器严重用户登录

表现层:提供数据格式转换服务,例如图片编解码

应用层:为应用程序提供网络请求服务的接口,例如HTTP,FTP协议等

HTTP和HTTPS的区别

HTTP是超文本传输协议,数据在网络上进行传输时,是明文传输的,所以如果数据被劫持会导致数据泄漏。而HTTPS在HTTP的基础上实现了数据的加密,即数据在网络上传输时,数据是加密的,所以即使被劫持也不容易查看到原始数据报文。实现上,HTTPS增加了一个SSL加密层。具体为当客户端请求服务器时,服务器会将证书下发到客户端(即公钥),客户端通过证书生成一个随机加密字符串,然后再传输给服务器,服务器利用私钥解密出随机字符串。后面客户端和服务器进行网络传输时,即使用这个随机字符串进行加密(对称加密)。如此保证了数据传输时的安全性。HTTPS由于增加了SSL/TLS加密层,所以性能上略逊于HTTP,同时,HTTPS由于数据加密了,不利于爬虫进行爬取,不容易被搜索引擎发现。

HTTP2.0

  1. 优化了HTTP1.x的线头阻塞问题,1.x由于请求在TCP连接中是串行的,要是前面的请求存在阻塞将会导致后面的请求都阻塞(因为HTTP是基于请求-响应模型的,上一个请求未响应,下一个请求只能阻塞)
  2. Headers头部信息允许压缩,1.x只允许压缩请求体。同时能够互相缓存头信息,减少了数据量的传输。
  3. 数据传输时,采用新的二进制传输框架进行数据的编解码传输,提升了效率。
  4. 允许服务端主动发送数据给客户端
  5. 一个TCP连接中允许存在多个请求,即共享一个TCP连接,提高了并行处理的能力,同时个别请求阻塞并不影响别的请求的处理,提高了效率
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crispin Deng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值