浏览器输入网址之后发生什么
1,DNS解析过程
2,三次握手
3,TLS通信
4,发送数据
5,四次挥手
TCP三次握手和四次挥手
两台计算机通信的过程
 局域网通信———交换机——MAC地址
 广域网通信———路由器——IP地址
 网关是什么
OSI七层模型
 详细介绍各层作用
表示层和会话层
数据链路层
 网卡(网络适配器)
 网卡中用于信号转换的两个设备
 调制器和解调器
 传输的信号在计算机内部是什么信号在
数据链路层
 三个基本功能及实现过程
MAC地址(硬件地址)
 一台计算机的MAC地址出厂时就被固定在网卡中了,除非网卡换了,MAC地址才换。
 MAC地址有几个字节
 MAC地址作用
 获取MAC地址
 ARP协议利用IP地址获取MAC地址的过程
 1、ARP协议先在ARP高速缓存表中找有没有目的IP对应的MAC地址,没有的话就会发送ARP请求报文,ARP协议以广播的形式发送ARP请求报文,以单播形式发送ARP响应报文
ARP是局域网协议,只适用一个网络内
单播,多播,广播
 广播:MAC6个字节全为1
交换机
 交换机中的转发表映射的是什么
 交换机属于那一层
 交换机通过缓存帧防止帧碰撞的问题
当计算机获取一个帧时,数据链路层解析完成后,怎么知道需要把数据包传给网络层的哪一个协议
 帧首部几个字段,保存什么
 帧尾部几个字段,保存什么。
网络层
 A,B,C类IP地址网络号以及主机号划分,固定的前几位。
 0
 10
 110
 各类可以支持的网络数
 每一个网络可以支持的主机数
 全零的网络号和主机号不可以分配,除了不改变位,全1的网络号和全1的主机号不可以分配
 最大网络号作为本地环回测试地址
 网络地址=网络号+子网号+全0主机号
 广播地址=网络号+子网号+全1主机号
 广播地址用于广播
 每一个网络都有一个网络地址,用于路由器寻址这个网络
 B 128~191
 C 192~223
 191233
路由器的作用
 主机怎么知道负责自己的数据包传输的路由器的IP地址———默认
 路由器和交换机
 内部交换机,外部路由器
 在传输过程中源IP地址和目的IP地址会改变吗,如果不会,那改变的是什么。
 IP,MAC
子网是怎么划分的
 如同多级页表
 从主机号中拿出固定的一些位来表示子网号
计算机怎么知道一个IP地址的子网号是哪几位
 什么是子网掩码
 子网掩码=全1网络号+全1子网号
 什么是网络地址
 网络地址不是网络号
 网络地址=网络号+子网号
 网络地址=IP地址&子网掩码
192.168.13.11/24
 这个24表示什么--子网掩码占据24位,有24个1。
 一个路由器是不是只有一个IP地址
如果说一个网络地址分给一个地方,那么世界上那么多的地方需要各自的网络地址,那么网络地址够不够分,怎么办?
 (无分类IP地址
 无分类IP地址=网络前缀+主机号
 一个IP地址后加/,/后面加上网络前缀所占位数。
 192.168.17.43/20)
 内网和外网区分
VPN和NET技术
 外网不可以通过因特网访问内网
 哪些可以作为内网使用
 10
 172.16
 192.168
 使用内网IP的网络叫专用网
同一个公司的两个不同内网怎么通过因特网通信
 网络地址转换———NET
 通过路由器进行私网IP和公网IP转换,然后进行数据加密从因特网传输。
 将原来的源私有IP地址转换为公网IP,以这个公网IP作为源IP地址发送数据。
 多个主机怎么使用同一个公网IP
 IP:端口号
 内网通信不需要因特网
IP首部
 IPv4或者IPv6
 哪个字段标识
为什么要分片
因为帧的MTU=1500字节
 数据链路层处理完可以根据帧首的协议字段将数据包发给网络层的哪个协议。
 网络层处理完数据包后发给TCP还是UDP协议处理呢。
 IP首部TTL之后有一个协议字段
ICMP
 ICMP可以单独发送数据吗
 ICMP报文分哪两种
 询问报文又分哪两种
 ICMP协议属于哪个层
如果一个数据包在发送的过程中丢失了,会发生什么
 1、在过程中
 2、当接收端在规定时间内接受不到一个数据包的全部分片时,就会……
 相同点:都要向发送端发送一个报文,提示数据包没有被正常接收。
ping
 直接跳过TCP层
 利用ICMP报文的回送请求(8)和回送回答(13)报文测试两台主机之间网络的连通性。
 ping没有通过运输层
 我们在应用层输入ping命令,回车,操作系统直接启动哪一层协议。
 如果ping之后网络不通呢
 四个字:请求超时
协议栈解析完成一个报文段之后,是在哪一层知道这个报文段要给哪个程序,给哪个程序由什么决定。
 HTTP使用的端口号
TCP首部
 每发送一个报文段都有一个表示报文段顺序的序列号和对上一个报文进行确认的确认号,这两个号在什么位置。
 发送端发送一个报文段,都会要告诉对端,本端还可以接收多少字节的数据,这个用于告诉对端的数据叫什么,在哪里---用于做流量控制的字段。
UDP和TCP的区别
 TCP怎么实现流量控制
滑动窗口=发送窗口+接收窗口
TCP怎么实现可靠传输
 协议+确认号+序列号
 TCP实现可靠传输使用哪个协议
 停止-等待协议:
 回退N帧协议:
 选择重传协议:
 序号值是多少
 确认号是不是接收到的序列号+1
 不是,那是什么
本端的发送窗口可以根据对端的接收窗口调整大小,对端表明可以接收多少,那本端就发送多少
什么是流量控制
 发送端通过控制发送窗口大小控制对端发送数据的大小的过程
 当接收端的窗口满了之后,告诉发送端停止发送数据。那么通过什么机制又可以再次发送数据?
 发送端:计时器+零窗口探测报文
什么是拥塞控制
 漏斗原理
 拥塞窗口的本质是什么?
 拥塞窗口是不是滑动窗口
 拥塞窗口是不是发送窗口
 网络出现拥塞的根据
 拥塞窗口的大小是什么时候建立的
 初始值为多少
数据包丢失就一定是网络拥塞吗?
TCP的拥塞控制
 有哪些拥塞控制算法
 5个
快速重传和快速回复算法解决了什么问题
 描述整个拥塞控制的流程
拥塞窗口和一个变量,发送窗口和接收窗口是两个缓冲区。
swnd = min(cwnd, rwnd)
怎么设置UDP可靠传输———QUIC协议
 TCP和UDP的网络编程流程
 TCP和UDP可以绑定同一个端口号吗,为什么?
 四元组
粘包的第三中解决方案--自定义消息结构=固定包头+数据
 应用层
 网络层通过协议字段知道把解析出来的报文发给运输层的哪个协议处理,那么运输层又怎么知道吧解析出来的数据交给哪个应用层的进程处理呢。
 dkh
网址(URL)最基本的三个部分
 URL和URI的区别
 DNS域名解析过程
 1、hosts文件
 2、DNS解析器缓存
 3、DNS协议+UDP协议—>最近的DNS服务器
 4、根域NS服务器
 从根域查询就需要解析域名,从不同级别域名的DNS服务器往下查询,指定查找到目的域名IP地址。
域名在因特网中以什么数据结构存储
 DNS属于那一层协议
一台计算机进入一个网络之后,它是怎么配置自己的默认网关,私有IP地址,子网掩码,DNS服务器的?
 计算机的DHCP协议想本网络的DHCP服务器发送信息配置请求报文
再说几个应用层的协议:
 FTP
HTTP
 HTTP属于哪一层协议
http方法
 http头部字段 
 connection什么作用
 close,keep-alive
 http状态码
 post和get
cookie和session
 cookie和session的本质是什么
 cookie是谁给谁做的标记
 当客户端再次访问服务器时,怎么带上自己的cookie值
 有cookie为什么还要session。
 cookie只是一个变量,无法存储大量信息,而session是一个数据结构,可以存储用户更多信息,通过cookie ID值找到session数据就可以获取用户很多数据。
 cookie和session都有生存时间
http头部字段中控制缓存的字段
 客户端获取服务端的数据会暂时缓存在自己的磁盘中
 http头部字段中控制缓存的字段服务端,客户端都有,服务端表示客户端可以缓存,而客户端的这个字段表示自己要不要直接使用缓存的数据。cache-control:max-age=0表示不使用缓存
 前进后退才使用缓存
HTTPS
 HTTPS=HTTP+TLS
 HTTPS和http的区别
http有哪些版本,什么区别?
中间人(此网站的安全证书存在问题)和抓包工具的原理
TLS握手过程
socket
 套接字接收缓冲区和发送缓冲区属于套接字属性,可以用getsocketopt和setsocketopt进行设置。
查看TCP报文的命令
 查看网卡的命令
 本地环回网卡
netstat
 netstat -a
 netstat -p 
 netstat -n
 查看指定端口进程
 netstat -anp | grip 端口号
 这个命令也可以查看当前连接的状态
 服务端可以发起关闭连接请求吗
 setsocketopt设置端口重用解决TIME_WAIT问题。
客户端进程挂了会发生什么
 FIN+RST
 客户端机器挂了会发生什么
服务端进程挂了会发生什么
 FIN+RST
 服务端机器挂了会发生什么
 超时重传多次结束连接
 保活计时器
粘包和半包问题以及解决方案
 粘包——多个数据的字节流粘合发送,没有指定消息边界,无法正确解析一个消息;
 半包——一个数据分为多个包发送,没有指定消息边界,无法正确解析一个消息;
 定义
 原因  3
 解决方案 3
 加分割符同透明传输
多路IO复用
 为什么需要多路IO复用
 select,poll,epoll原理
 什么区别
 1、拷贝
 2、数量
 3、监测方式
服务端的连接数上限由什么决定
TCP的应用层到底什么功能?
 应用层是工作在用户态的,我们的电脑和手机的软件就是应用层的功能软件,直接和用户进行交互的一层。
 说几个应用的协议:
UDP实现可靠传输是在哪一层实现的?
 说一说键入网址到显示网页的整个过程发生了什么?
 发送端:
 生成HTTP请求消息
 DNS解析
 启动协议栈
 TCP三次握手建立连接
 生成报文段
 生成数据包
 数据链路层三步作用
 网卡信号转换发送
接收端:
 网卡中断通知操作系统解析包
 层层解析
 将解析出来的http数据放入接收缓冲区,通过端口号通知对应的http进程处理这个http请求
 获取文件生成http响应报文
 再次发送数据包
发送端解析响应数据包,渲染页面
 发送端发起连接断开请求,TCP四次挥手
网卡通知操作系统解析包的过程:
 网卡接收到数据包,将数据包放入自己的缓存中,产生一个中断通知操作系统,操作系统收到这个中断之后会然CPU记录当前进程的上下文到这个进程的PCB中,然后CPU更具这个中断号在中断表中找到对应的中断处理程序,中断处理程序会去读取网卡缓存中的数据包,然后让协议栈层层解析,最后将解析出来的HTTP数据放入接收缓冲区,通过端口号通知对应的HTTP进程处理。
TCP从发送缓冲区获取的是什么数据———http消息
 传输层一定会拆分http数据吗,数据超过了多少才会拆分———mss一个报文段数据部分的大小。
 TCP窗口大小字段实际标识的是什么的大小,用来做什么?
 arp一定会发送请求吗———arp缓存
 交换机使用IP地址发送数据包还是使用MAC地址发送数据———arp协议利用默认网关的IP地址,向默认网关请求默认网关的MAC地址,交换机高速缓存表中记录的是MAC地址和对应的出口,而不是目的IP和对应出口,如果高速缓存表有记录MAC地址和这个地址对应的出口,那么就直接将数据发送给这个出口,如果没有这个MAC地址的记录,就把这个数据发送给除了数据包进入的接口的其他接口。
 如果数据包没有指定目的MAC地址,也会发送给除了数据包进入接口的其他接口,比如arp请求。
 交换机和路由器的区别:
 作用;
 路由器有自己的MAC和IP地址,因为它要进行数据包的转发。
linux系统查看系统IP,系统网卡,系统路由?
get和post的安全性和可缓存性
http的缓存
 http请求的数据缓存在哪———浏览器的缓存
 缓存的两种类型,区别和实现过程。
 强制缓存实现过程
 协商缓存实现过程:
 第一次请求服务器会为这份数据设置缓存时间,第二次请求时带上缓存时间,服务器会根据缓存时间决定发送回新数据还是304重定位让客户端直接使用本地缓存。
缓存时间是哪一端规定的
 http有哪些版本
 各个版本的区别
 是TLS还是TSL
 http的缺点
 1、什么是无状态,无状态的好处和坏处
 2、明文传输
 3、不安全
 4、不能保持长链接
 http1.0和http1.1的区别,也就是1.1在1.0上做了什么改变?
 http1.1的队头阻塞问题?
解决了请求的对头阻塞,但是存在响应的对头阻塞。
 http和https的四个区别:
 一来就先说无状态不能保持长链接
 然后再说其他两个
 简单描述TLS握手过程
 你知道抓包工具为什么可以看到明文吗,简单说一下———从安装抓包工具到回去明文
 访问一些网站时提示危险,是否要继续访问,如果继续访问会发生什么?
 说几个http1.1的缺点
 队头阻塞会导致什么
 服务器只能响应不发送
 消息头不压缩就发送———重复消息头会重复发送
 http2.0怎么解决1.1的问题:
 并发传输解决响应的队头阻塞。
但是又存在接收的数据在接收缓冲区的对头阻塞。
 使用压缩算法压缩消息头,提高发送速度;
 服务器使用http2.0可以发送数据了;
 http2丢包为什么会产生
 http3.0不使用TCP,而是使用QUIC和UDP传输数据
连接断开的问题:
 如果建立连接的通信双方长时间没有通信,会发生什么?———小林http