计网
This is a page about »计网«.
计算机网络–面试常见问题(自用)
网络结构
- 七层模型&协议
物理层,传输单位bit,IEE802.3、CLOCK、RJ45 数据链路层,传输单位帧,MAC、VLAN、PPP 网络层,传输单位包,IP、ARP、ICMP 传输层,传输单位报文,TCP、UDP 会话层,输出单位SPDU,RPC、NFS 建立、管理、终止会话 表示层,传输单位PPDU,JPEG、ASII 对数据翻译、加密、压缩 应用层,传输单位APDU,FTP、HTTP、DNS
- TCP/IP 4层模型
网络接口层,MAC、VLAN 网络层,IP、ARP、ICMP 传输层,TCP、UDP 应用层,HTTP、DNS、SMTP
常见的网络协议
tcp、udp
- 特点:
- tcp 三次握手/四次挥手
- 常见 专有名词,TIME_WAIT(作用、弊端、如何优化)
- tcp 可靠传输
- 数据包校验
- 对失序数据包重排
- 丢弃重复数据
- 应答机制
- 超时重发
- 流量控制
- 拥塞控制(满开始、拥塞避免、快重传、快恢复)
- 流量控制
发送方控制发送速率
- 滑动窗口
什么是滑动窗口 tcp 采用滑动窗口进行流量控制
- 拥塞控制
什么事拥塞控制 tcp 拥塞控制
- tcp 粘包
发送方粘包
发送方与接收方保持长连接(短连接不存在粘包问题) 过小数据合并发送,这个合并的过程再发送缓冲区进行,数据发送出来就已经是粘包状态
接收方产生粘包
read、recv 无法一次全部读出,然后下一个数据又到放入缓冲区末尾,等读取的数据就是一个粘包
如何解决粘包问题
分包机制,特殊字符控制、在包头首部添加数据包的长度
注意使用netty框架就会有专门的编码器和解码器解决拆包和粘包问题
- 基于tcp&udp 常见的协议
tcp
- http 80 https 443
- ftp 21
- telnet 23
- smtp 25
udp
- tftp 69
- dns 53
- snmp 161 4.dhcp 服务器发送从67发出,客户端从68发送
http
无状态连接
cookie、session、jwt http1.0、http1.1、http2.0
http 长连接
http 的结构
http 的方法
forward & redirect
get & post
https
在浏览器输出url 到显示主页到过程
- 浏览器解析 url 是否合法
- 浏览器检查是否有缓存(有三层缓存,浏览器缓存、系统缓存、路由器缓存)
- 发送http 请求前,先进行域名解析,先从本地,再根域名服务器再是顶级域名服务器依次二级…
- 浏览器向服务器发送tcp 三次握手,建立连接
- 握手成功,浏览器向服务器发送http请求
- 服务器接收请求,把响应结果发送给浏览器
- 浏览器接收,并响应,如果没有缓存则缓存。
- 浏览器根据服务器发送的响应数据做web 页面展示
未完待续…