计算机网络知识梳理(FAQ)

计算机网络概述

因特网的五个层次:
应用层 HTTP SMPT FTP
运输层 TCP UDP
网络层 IP
链路层
物理层

七层 ISO OSI 参考模型:
应用层
表示层
会话层
运输层
网络层
链路层
物理层

如何评价网络性能?

时延、丢包、吞吐量
时延、丢包:获取两个主机之间的 IP 连通情况可以使用 mtr(ping 和 traceroute),使用 ping.pe 可以评估目标主机在全球不同 ISP 的连通情况。
image.png
吞吐量:使用 iftop
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行 iftop 到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
DNS 情况:nslookup
TCP 端口:telnet

实际案例:

  1. 问卷投放后高峰期打开慢,经排查后台 IO 监控,使用网络检测工具实时查看网络情况,查看静态文件 js 文件容量,最终解决方案为将静态文件放到 CDN
  2. 梯子不稳定,使用 https://ping.pe/ 发现是特定网络下不稳定,切换接入网即可使用。

HTTP2 相对于 HTTP1.x 有什么新特性,HTTP1.x 对应的优化方案是什么?

HTTP2 通过支持完整的请求与响应复用来减少延迟,通过有效压缩 HTTP 报头字段将协议开销降至最低,同时增加对请求优先级和服务器推送的支持。

  • 单一长连接:减少建立连接的开销。三次握手在高延迟的场景下影响较明显,慢启动则对文件类大请求影响较大。
  • 二进制分帧层机制:实现了多路复用,去除线头阻塞(Head-Of-Line Blocking),请求重置,请求优先级等特性。
  • 报头压缩:采用 HPACK 来压缩请求头和响应头,降低协议开销
  • 服务端推送

HTTP2 介绍:https://segmentfault.com/a/1190000015030944
对应优化方案:

  • 为了去除线头阻塞
    • 并发请求:每个域名六个并发连接
    • 域名散列:一个网站使用多个域名
    • 阻塞渲染:css 放头部 js 放底部
  • 为了减少协议开销
    • 合并请求:异步接口合并,资源内联,减少请求数量

image.png

FTP 协议与 HTTP 协议的区别?

FTP 使用两个并行的 TCP 连接来传输文件,一个是控制连接,一个是数据连接。FTP 的控制信息是带外传送的,HTTP 是带内发送控制信息的。
FTP 是有状态的,HTTP 是无状态的。

SMTP 协议与 HTTP 协议的区别?

SMTP 是一个推协议,HTTP 是一个拉协议,要拉取邮件服务器里的邮件,需要使用 POP3、IMAP 或 HTTP 这种拉协议。
SMTP 的报文都使用 7 位 ASCII 码格式,HTTP 没有这个限制。

传输层的功能是什么?

传输层解决的基本问题是 1. 进程间数据交付(多路复用多路分解) 2. 差错检测
可以解决问题是 1.拥塞控制 2. 流量控制 3. 可靠通信 4. 差错控制/差错恢复
流量控制和拥塞控制的区别在于,拥塞控制是应对 IP 网络拥塞,流量控制是应对发送方发送和接收方读取速率不一致。

简述 TCP 和 UDP 的区别

面向连接的服务
无连接服务

可靠数据传输机制

检验和:检验错误
定时器:超时重传
序号:按顺序编号防止乱序
确认/否认:ack
窗口、流水线:提高发送效率,窗口长度必须小于等于序号空间大小的一半

TCP 三次握手和四次握手

建立连接 three-way handshake:

  1. 客户端发出 SYN 报文段 Synchronize Sequence Numbers
  2. 服务端接受 SYN 报文段,发出 SYN&ACK 报文段
  3. 客户端接受 SYN&ACK 报文段,发出新报文段确认建立连接,可以携带数据

关闭连接 :

  1. 客户端发出 FIN
  2. 服务端接受 FIN,发出 ACK
  3. 服务端发出 FIN
  4. 客户端接受 FIN,发出 ACK

image.png
image.png

TCP 拥塞控制机制

加性增,乘性减
慢启动乘性增,拥塞避免加性增,重复包乘性减,超时从头开始

image.png

IP 协议简述

ARP 协议简述

其他

端系统 end system
主机 host
客户机 client
服务器 server
通信链路 communication link
分组交换机 packet switch
路由器 router
链路层交换机 link-layer switch
因特网标准 internet standard
因特网工程任务组 IETE
请求评论 request for comment RFC
内联网 intranet
分布式应用程序 distributed application
对等应用程序 P2P application
协议 protocol
接入网 access network
边缘路由器 edge router
物理媒体 physical medium 双绞线、同轴电缆、光纤、无线电等等
尽力而为 best effort
电路交换 circuit switching
频分多路服用 FDM
时分多路服用 TDM
分组交换 packet switching
报文 message
报文段 segment
数据报 datagram
帧 frame
分组 packet
存储转发传输机制 store-and-forward transmission 存储转发时延
输出缓存 output buffer 输出队列 排队时延
丢包 packet lost
统计多路复用 statistical multiplexing
转发表 forwarding table
时延:节点总时延 total node delay 处理、排队、传输、传播
吞吐量 throughput
分层体系结构
协议栈 protocol stack

套接字 socket
控制连接 control connection
数据连接 data connection
递归查询 recursive query
迭代查询 iterative query
资源记录 Resource Record RR
套接字编程=客户机/服务器应用程序开发
流 stream

运输层/所有计算机网络的多路复用与多路分解 multiplexing demultiplexing
可靠数据传输 reliable data transfer
可靠数据传输协议-比特交替协议 alternating-bit protocal
流水线技术 pipelining
回退 N 步 Go-back-N GBN/滑动窗口 sliding window
选择重传 selective repeat SR
累计确认 cumulative acknowledgment
基于事件的编程 event-based programming 基于事件驱动 FSM 状态转移
最大报文段长度 maximum segment size MSS 应用层长度
最大传输单元 maximum transmission unit MTU
捎带 piggybacked
统计学 指数加权移动平均 EWMA
流量控制服务 flow-control service
拥塞控制 congestion control

其他工具

nmap 端口扫描器

坚持原创技术分享,您的支持将鼓励我继续创作!