计算机网络——篇四

导学

  • 传输层及以下已经提供了完整的通信服务,应用层是面向用户
    • 首先,应用层无需考虑通信问题了,可以理解成调用TCP/UDP通讯接口即可
    • 主要有两种场景:
      net1
    • 应用层软件主要定义:
      • 应用进程的报文类型,包括请求和应答
      • 报文的语法、格式
      • 应用进程发送数据的时机、规则
      • 总的来说,更关注逻辑业务,而非底层传输
  • 回顾一下传输层:
    net2

DNS

  • 域名系统(domain name system)
  • IP+端口可以唯一指定应用进程,但是谁能记住这么多的点分十进制?一般都是记忆域名例如www.baidu.com
    • 域名由字母、数字和点组成
    • 域名可分为顶级域、二级域、三级域
      net3
  • DNS的作用就是将域名转换为IP地址和端口号
  • DNS服务器工作流程:
    • 客户机发起域名解析请求,包含两种查询方式
      net4
    • 递归查询:类似递归程序,一直往下查(本地—根—顶级—权限),再回归
      net5
    • 迭代查询:本地域名服务器一个接一个问,找到答案后返回
      net6
  • 注DNS占用53端口,权限server使用TCP向主域名服务器(顶级)更新,解析域名时使用UDP

DHCP

  • 动态主机配置协议(dynamic host configuration protocol)
  • 是一个局域网协议
    • 局域网:采用NAT技术的内部网络
  • 基于UDP协议通信
  • 场景:我们周围的网络环境可能会经常变化,IP地址也会改变,不能总是人为配置吧
  • 作用:DHCP可以给我们提供当前环境的临时IP
    • Windows查看网络配置:这个自动就是用了DHCP
      net7
  • 工作流程:
    • 主机广播发现报文,例如IP全为1,DHCP收到后就知道这个主机需要分配IP
      net8
    • DHCP服务器也不是直接回应一个IP,而是告诉主机:“我有,你要不要?”
    • 主机发送请求报文,得到IP
  • 小结:你会发现这里的协议都有服务器,或者说都在定义应用功能,像网站一样等待被请求;而不是下层关注于通信过程,确保传输

HTTP

  • 超文本传输协议(HyperText Transfer Protocol)
  • 浏览器客户端访问服务器最常用的协议
    • 统一资源标志符(Uniform Resource Identifier, URI),可以唯一标识服务器的资源
    • 常见的还有统一资源定位符URL(Uniform Resource Locator),访问资源时使用
    • 区别是:只要能唯一标识资源的就是URI,在URI的基础上给出其资源的访问方式的就是URL;URL是URI的子集
    • 例子:htps://<主机>:<端口>/<服务器路径>
  • 底层由TCP协议实现:可靠的数据传输协议,C/S架构
  • Server端即Web服务器,由硬件和软件组成
    net33
  • Web服务器的处理流程:
    net34
    • 发起请求的方法很多:GET/POST/DELETE/UPDATE
      net35
    • 请求报文内容
      net36
      • 请求头中包含cookies
    • 应答报文内容:主要解释一下状态码(status code)
      net37
  • 工作结构
    • Web缓存
      • 热点数据(经常访问)和冷门数据一般遵循二八原则
      • 为了提高效率,一般将热门数据放在缓存中
      • 支持缓存的硬件:Cache、Redis等
    • 代理:客户端看不到服务器架构
      net38
      • 正向代理:
        net39
      • 反向代理:
        net40
  • CDN(Content Delivery Network:内容分发网络):加速访问
    • 由于空间距离的不同,不同地方的用户得到响应的时间不一样
      • 如图,上海访问北京的服务器就快
        net41
      • 若想让重庆深圳也能快速得到响应,可以在广州将视频图片之类的大文件信息缓存
      • 即通过中心平台的负载调度,使用各地的边缘服务器就近提供访问,减少网络拥塞
  • 爬虫:搜索引擎的本质,即拉取页面内容并索引
    • 可能会增加网络拥塞、损耗服务器资源

HTTPS

  • HTTP协议没有保护用户敏感信息的措施
  • 非对称加密算法
    • 使用一组密钥进行加密传输,用过git吗?你得把自己电脑生成的公钥送上去,本地私钥会在每次pull/push的时候解密/加密
      net42
  • 数字证书:可信任组织颁发给特定对象的认证
    • 使用https的网站需要申请证书,相当于得到一组密钥,即非对称加密
      net44
    • 加密传输的过程就交由SSL(安全套接层)完成,这是个协议
      net45
    • 重点看一下参数握手过程:
      net46
    • 第四步:
      net477
    • 即综合使用了对称加密和非对称加密
    • 双方分别生成密钥,没有传输密钥,降低了泄露的可能性
      • 将非对称转为对称是为了提高效率
  • 至此,也应该知道了HTTP和HTTPS的主要区别(常考)
    • HTTPS=HTTP+SSL
    • HTTPS端口443,HTTP端口80

小结

  • 本篇介绍应用层,主要是DNS、DHCP、HTTP、HTTPS协议;最后对HTTPS的加密传输简单解释
  • 下一篇是基础篇的最后,通过实现一个网络嗅探工具,分析IP/UDP/TCP报文,更进一步理解协议
  • 最后提一下,协议的实现基于硬件,例如使用Perl语言对路由器或服务器编程(调用硬件程序),这里只是对其功能的解读
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值