0%

计算机网络1--TCP/HTTP相关

image-20221003100929792

TCP与UDP的区别

  1. TCP是面向连接的,UDP是无连接的;
什么叫无连接? UDP发送数据之前不需要建立连接
什么叫不可靠? UDP接收方收到报文后,不需要给出任何确认
2. TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多;
  1. TCP是面向字节流的,UDP是面向报文的;
什么意思? 面向字节流是指发送数据时以字节为单位,一个数据包可以拆分成若干组进行发送,而UDP一个报文只能一次发完。
4. TCP有拥塞控制机制,UDP一般没有(很多研究人员已经提出一种新机制,以促使数据源(包括UDP)执行自适应的拥塞控制”)。网络出现的拥塞不会使源主机的发送速率降低,这对某些实时应用是很重要的,比如媒体通信,游戏; 5. TCP首部开销(20字节)比UDP首部开销(8字节)要大 6. UDP 的主机不需要维持复杂的连接状态表
什么时候选择TCP,什么时候选UDP?
展开 对某些实时性要求比较高的情况,选择UDP,比如游戏,媒体通信,实时视频流(直播),即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失
HTTP可以使用UDP吗?
展开 HTTP不可以使用UDP,HTTP需要基于可靠的传输协议,而UDP不可靠 注:http 3.0 使用udp实现 https://zh.wikipedia.org/wiki/HTTP/3
面向连接和无连接的区别
展开

无连接的网络服务(数据报服务)– 面向连接的网络服务(虚电路服务)

虚电路服务:首先建立连接,所有的数据包经过相同的路径,服务质量有较好的保证;

数据报服务:每个数据包含目的地址,数据路由相互独立(路径可能变化);网络尽最大努力交付数据,但不保证不丢失、不保证先后顺序、不保证在时限内交付;网络发生拥塞时,可能会将一些分组丢弃;

virtual circuit

TCP如何保证传输的可靠性

  1. 数据包校验
  2. 对失序数据包重新排序(TCP报文具有序列号)
  3. 丢弃重复数据
  4. 应答机制:接收方收到数据之后,会发送一个确认(通常延迟几分之一秒);
  5. 超时重发:发送方发出数据之后,启动一个定时器,超时未收到接收方的确认,则重新发送这个数据;
  6. 流量控制:确保接收端能够接收发送方的数据而不会缓冲区溢出

HTTP和HTTPS有什么区别?

  1. 端口不同:HTTP使用的是80端口,HTTPS使用443端口;
  2. HTTP(超文本传输协议)信息是明文传输,HTTPS运行在SSL(Secure Socket Layer)之上,添加了加密和认证机制,更加安全;
  3. HTTPS由于加密解密会带来更大的CPU和内存开销;
  4. HTTPS通信需要证书,一般需要向证书颁发机构(CA)购买
Https的连接过程?

网络协议底层原理(九):HTTP - 简书 (jianshu.com)

展开
  1. 客户端向服务器发送请求,同时发送客户端支持的一套加密规则(包括对称加密、非对称加密、摘要算法);
  2. 服务器从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥(用于非对称加密),以及证书的颁发机构等信息(证书中的私钥只能用于服务器端进行解密);
  3. 客户端验证服务器的合法性,包括:证书是否过期,CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配;
  4. 如果证书受信任,或者用户接收了不受信任的证书,浏览器会生成一个随机密钥(用于对称算法),并用服务器提供的公钥加密(采用非对称算法对密钥加密);使用Hash算法对握手消息进行摘要计算,并对摘要使用之前产生的密钥加密(对称算法);将加密后的随机密钥和摘要一起发送给服务器;
  5. 服务器使用自己的私钥解密,得到对称加密的密钥,用这个密钥解密出Hash摘要值,并验证握手消息是否一致;如果一致,服务器使用对称加密的密钥加密握手消息发给浏览器;
  6. 浏览器解密并验证摘要,若一致,则握手结束。之后的数据传送都使用对称加密的密钥进行加密

总结:非对称加密算法用于在握手过程中加密生成的密码;对称加密算法用于对真正传输的数据进行加密;HASH算法用于验证数据的完整性。

输入 www.baidu.com,怎么变成 https://www.baidu.com 的,怎么确定用HTTP还是HTTPS?
展开

你访问的网站是如何自动切换到 HTTPS 的?

一种是原始的302跳转,服务器把所有的HTTp流量跳转到HTTPS。但这样有一个漏洞,就是中间人可能在第一次访问站点的时候就劫持。
解决方法是引入HSTS机制,用户浏览器在访问站点的时候强制使用HTTPS。

HTTPS连接的时候,怎么确定收到的包是服务器发来的(中间人攻击)?
展开

1.验证域名、有效期等信息是否正确。证书上都有包含这些信息,比较容易完成验证;

2.判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书,操作系统、浏览器会在本地存储权威机构的根证书,利用本地根证书可以对对应机构签发证书完成来源验证;

3.判断证书是否被篡改。需要与 CA 服务器进行校验;

4.判断证书是否已吊销。通过CRL(Certificate Revocation List 证书注销列表)和 OCSP(Online Certificate Status Protocol 在线证书状态协议)实现,其中 OCSP 可用于第3步中以减少与 CA 服务器的交互,提高验证效率

什么是对称加密、非对称加密?区别是什么?
展开
  • 对称加密:加密和解密采用相同的密钥。如:DES、RC2、RC4
  • 非对称加密:需要两个密钥:公钥和私钥。如果用公钥加密,需要用私钥才能解密。如:RSA
  • 区别:对称加密速度更快,通常用于大量数据的加密;非对称加密安全性更高(不需要传送私钥)
数字签名、报文摘要的原理
展开 - 发送者A用私钥进行签名,接收者B用公钥验证签名。因为除A外没有人有私钥,所以B相信签名是来自A。A不可抵赖,B也不能伪造报文。 - 摘要算法:MD5、SHA
-------------本文结束感谢您的阅读-------------
打赏一瓶矿泉水