• 网络公开课1


    网络公开课1

    概念*

    常见面试题

    输入URL发生哪些事 https http1.0 2.0的区别……

    OSI七层模型 协议DNS

    传输层 三次握手 四次挥手

    http

    物理层:并不是指光纤电缆那些,那些是设备。只关心如何传输数据,传输的是比特流 0 1

    应用层:数据一般叫报文。比如ajax接口

    报文增加一些东西,把应用层的数据进行装包(增加端口)作为数据段。

    数据链路层:最终通信是通过网卡来通信的。

    物理层拿到帧,依次拆包。

    ipv6:8个16位块所组成

    ip+mac地址

    通过ip找mac

    网线传输:最多100米

    中继器:放大器

    集线器:多口中继器。安全问题 广播浪费流浪

    物理层:你给我什么我就转发什么

    链路层:交换机

    聪明一些。有一张映射表,记住端口和mac地址。

    网络层:路由器

    让2个不同的网络通信要经历网关。子网掩码

    路由器充当了网关的角色。

    每一层中比较重要的协议

    协议:就是我们所说的约定和规范

    https就是http加了安全套接层

    主要协议*

    应用层:HTTP协议 DHCP DNS

    传输层:TCP UDP

    网络层:IP ARP

     ARP协议

    ARP协议:地址转换协议

    ARP就会去做广播的操作:

    做广播,然后有一个缓存表。

    实现端到端的通信

    DHCP协议

    连上路由器,连上网:自动分配一个IP

    DNS协议

    域名 

    几个点就是几级域名

    两大种情况:

    域名被解析过了:

    自顶级域名往下 一级一级解析返回解析返回……

    扩展:UDP通信我找你你返回结束,不用创造三次握手。 域名->根服务器,查找就是递归查找

    总结:

    DNS解析有两大种情况:

    一种是这个域名已经被解析过了,我直接从缓存中取。那么缓存又分为:本地缓存。本地缓存指的是本地hosts文件和dns解析缓存。除了本地缓存,路由器也会做dns缓存,还有dns服务器中也有缓存。这个是从缓存中取的情况。

    如果没有被解析过,那么就通过域名服务器和根服务器一级一级去解析,从顶级域名开始往下递归解析,然后返回缓存起来。

    TCP UDP

    http是基于tcp的 面向有连接的

    udp是面向无连接的

    tcp特点:

    可靠。包丢了重传。在不可靠的ip层上建立了可靠的传输层,网络层很复杂,丢包了谁管,数据重发好处。

    面向连接。要3次握手

    全双工。双向沟通

    TCP数据格式组成:32位

    源端口号+目标端口号

    序列号:接收方根据序列号重组数据段

    代码实现:

    抓包软件:wireshark

    面试题:为什么TCP需要三次握手?

    为了确认双方能互相通信

    要把没发送的数据发送完毕,才能发送FIN报文。

    SYN 握手

    ACK 应答

    FIN 结束,完成

    PSH 发送数据

    HTTP协议*

    复习一下tcp的缺点:

    1.1才是标准 0.9 1.0都是过渡版本

    特点:

    基于tcp传输层

    客户端发一条数据,服务器应答。所以是半双工通信,服务器不会主动推送。

    tcp通道无法复用。一次tcp通道建立只能发一次请求。

    默认无状态。第1次和第2次之间数据有什么关系是不知道的。

    纯文本协议:

    协议本身是用可见字符去传输的。安全问题明文

    请求头和响应头

    组成结构:

    请求行

    请求头:描述我们的传输的数据内容。表单 文本 还是一张图片。

    请求体

    内容协商

    服务器返回的数据类型,数据采用什么格式压缩

    总结***重点

    首先http协议是应用层的协议,是基于tcp的,是一种请求-响应模式的半双工通信协议。

    我们工作中接触的最多的就是http报文。比如请求报文:请求行 请求头和请求体所组成。请求行很简单就是请求方式 url 和version。三者之中最有特点的字段最丰富的就是我们头部信息,请求头和响应头。像我们常用的有 content-type指明了该数据的类型mime类型,content-encoding指明了该数据是用什么格式压缩的,accept-language浏览器所接受的语言,user-agent浏览器的版本类型等信息,cookie&set-cookie,connection:keep-alive保持长连接,expires/cache-control强缓存,last-modified/etag协商缓存,有很多。

    这边主要介绍下http 1.1 2.0版本的一些改进和优化。

    1.1中最重要的改进就是connecttion:keep-alive保持长连接,实现tcp通道的复用。还有缓存策略上的优化,强缓存引入了cache-control,协商缓存引入了etag;错误状态码增加了很多;以及添加了range头支持断点续传;加入了host头

    2.0中最主要的优化就是多路复用,使得请求在tcp通道上能并行从而避免阻塞,这个是更进一步的优化。还有头压缩和服务器主动推送。2.0采用的是二进制格式数据。

    https://www.cnblogs.com/YouJeffrey/p/15334068.html

    响应码去看下

    长连接&管线化

    长连接能复用tcp通道,但是会产生队头阻塞问题。

    管线化优化:

    每个域名最多建立6个tcp连接

    请求并发,但是应答依然是按顺序的

    http缓存

    cache-control > expires

    etag > last-modified

    https

    保证密文+防止篡改

    在tcp的基础上增加了一层安全套接层

    加密方法*了解这个就够了

    1. 对称加密

    客户端和服务器端拥有一把共同的钥匙

    1. 非对称加密

    2套公钥&私钥

    1. 混合加密

    1. 数字证书和CA

    2个hash比对

    浏览器拿到的是:CA公钥 + 私钥加密后的hash

    然后把传过来的和自己解密后的进行比对

    https的目的:

    整个连接过程

    首先是client hello:发送random和session id

    服务器server hello

    一来一回。

    防攻击:如果有中间人不停发请求,服务器就会接收到一样的随机数。就说明有人在攻击。

    发送证书,我把我自己的密钥交给你

    DH参数互发。给dfharmon算法使用

    DH参数

    http2.0

  • 相关阅读:
    java面试宝典2019
    【MyBatis笔记01】MyBatis框架介绍以及开发环境搭建
    区域气象-大气化学在线耦合模式(WRF/Chem)在大气环境领域实践技术应用
    Spring-Cloud-Gateway Filter详细配置说明
    代码随想录算法训练营第五十二天| LeetCode1035.不相交的线、583. 两个字符串的删除操作、72. 编辑距离
    【软件设计模式之迭代器与组合模式】
    FT2004(D2000)开发实战之在线开发OpenCV实例
    如何训练个人的ChatGpt4
    tf.estimator
    论文写作指导手册
  • 原文地址:https://blog.csdn.net/betterangela/article/details/130913107