目录
1.协议
概念:用于保证网络传输双方能正常通讯的一种约定
2.网络模型
2.1OSI
应用层 | 将标准的数据转换成程序需要的格式 |
---|---|
表示层 | 将设备的数据格式转成标准格式 |
会话层 | 用来管理通讯双方之间的会话 |
传输层 | 用来确保双方的数据能够进行传递 |
网络层 | 地址的管理和路由选择 |
数据链路层 | 确保相邻结点间的数据传输 |
物理层 | 数字信号转为光电信号 |
2.2TCP/IP
应用层 | 将标准的数据转换成程序需要的格式 |
---|---|
传输层 | 用来确保双方的数据能够进行传递 |
网络层 | 地址的管理和路由选择 |
数据链路层 | 确保相邻结点间的数据传输 |
物理层 | 数字信号转为光电信号 |
2.3TCP/IP网络分层模型中,各层常见协议及端口号:
应用层 | HTTP(80)、FTP(21)、SMTP、SNMP、DNS(53)、TELNET、POP3、SSH(23) |
---|---|
传输层 | TCP、UDP |
网络层 | IP、ARP、ICMP、IGMP |
数据链路层/物理层 | RIP、BGP、ARQ/PPP、HDLC |
数据传输的五个要素:
- 源地址IP
- 源地址端口号
- 目的地IP
- 目的地端口号
- 协议类型
3.UDP
3.1特点
- 无连接
- 不可靠
- 面向数据报
- 没有发送缓冲区,只有接收缓冲区。
3.2协议头内容
源端口号、目的端口号、UDP长度(UDP信息的长度,最大存储量:64k)、UDP校验和、数据
3.3使用场景
DNS、NFS
4.TCP
4.1协议头内容
16位窗口大小:接收缓冲区的大小,用来进行拥塞控制。
4.2TCP十大特性
4.2.1确认应答
保证稳定性最关键的措施。
4.2.2超时重传
策略:
- 动态的重传频率,每次重发的时间间隔是上一次的一倍(*2)。
- 当重试一定次数之后,就会停止重传。
4.2.3链接管理
四次挥手变三次,依靠的是TCP特性中的捎带应答
面试题:服务器端大量出于close_waiting状态?
答:服务器端没有正常关闭。
4.2.4滑动窗口
提升TCP性能
快重传机制
4.2.5流量控制
以结果为导向,查看接收缓冲区的大小
当接受缓冲区为0时,停止消息发送,发送检测包,每定时询问客户端接收缓冲区剩余空间大小
4.2.6拥塞控制
以当前网络状态,来作为传输大小的依靠
当TCP开始启动的时候, 慢启动阈值等于窗口最大值;
在每次超时重发的时候, 慢启动阈值会变成原来的一半, 同时拥塞窗口置回1;
4.2.7延迟应答
提升性能
策略:
- 每隔一定次数延迟应答一次
- 每隔一定时间延迟应答一次
- 注意:延迟应答的时间(200ms)不能超过超时重传的时间(500ms)
4.2.8捎带应答
在延迟应答的基础上,又一次的性能提升
能够实现三次挥手的重要机制
4.2.9面向数据流
粘包/半包问题
解决策略:
- 使用固定大小传输包(造成不必要的网络带宽压力)。
- 使用\n最为流的结束符。
4.2.10TCP异常处理机制
- 没有缓冲时间的异常:断网,断电【TCP健康监测机制】
- 有缓冲时间的异常:关机,重启【和正常关闭一样】
5.IP
4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本
6.MAC
MTU:最大网络传输大小(1500)
MSS(Max Segment Size); :TCP的单个数据报的最大消息长度
MTU:1500-8-20=1472(UDP)
7.面试题:当输入一个URL之后,会发生什么?
答:
- 效验URL正确性
- 检测本地的缓存
- 访问DNS服务器,实现域名解析
- 建立TCP连接
- 浏览器会将参数和请求信息,发送给服务器端
- 服务器得到请求的参数信息,然后再进行业务处理
- 服务器将信息返回给客户端
- 浏览器拿到响应的信息之后,通过浏览器的执行引擎,解析结果,并展示给用户
- TCP断开