计算机网络
由于没有系统的学过计算机网络,因此只能总结一些常见的计算机网络的面试题。
一. OSI参考模型
OSI参考模型分为7层:
- 物理层:负责0,1比特流,代表电压的高低;
- 数据链路层:负责物理层面的互连节点之间的通信传输,数据帧的生成和传输;
- 网络层:将数据传输到目标地址,这一层主要负责寻址和路由选择;
- 传输层:负责两个节点(例如两台计算机)之间的数据传输,起着可靠传输的作用;
- 会话层:通信管理,负责建立和断开连接(数据流通的逻辑通路),以及数据的分割等数据传输相关的管理;
- 表示层:主要负责格式转换,将应用处理的信息转换为适合网络传输的格式;
- 应用层:针对特定的应用协议,包括文件传输,电子邮件,远程登陆等协议
二. TCP/IP分层模型
- 硬件(物理层):
TCP/IP的最底层是负责数据传输的硬件。 - 网络接口层(数据链路层):
接口层使用以太网的数据链路层进行通信。 - 互联网层(网络层):
互联网层使用IP协议,IP协议基于IP地址转发数据。IP协议使用IP地址作为主机的标识,IP协议是非可靠性传输协议。
三. TCP/IP数据示例
会话层:TCP数据;
传输层(IP数据):TCP包首部(源端口号和目标端口号)+TCP数据;
网络层(以太网数据):IP包首部(发送端IP地址和接收端IP地址)+IP数据;
数据链路层:以太网首部(发送端MAC地址和接收端MAC地址)+以太网数据;
整个数据包的格式为:
数据链路层 | 网络层 | 传输层 | 会话表示层 |
---|---|---|---|
发送端MAC地址+接收端MAC地址+以太网类型 | 发送端IP地址+接收端IP地址+协议类型 | 源端口号+目标端口号 | 数据 |
MAC地址:Media Access Control, 物理地址
IP地址:识别主机和路由器,IP地址分类:
A类:0.0.0.0 ~ 127.0.0.0, 首位以0000开头;
B类:128.0.0.0 ~ 192.255.0.0, 首位以1000开头;
C类:192.0.0.0 ~ 233.225.225.0, 首位以1100开头;
D类:234.0.0.0 ~ 239.255.255.255, 首位以1110开头;
地址分类 | 网络标识 | 主机标识 |
---|---|---|
A | 前8位 0000 | 后24位 |
B | 前16位 1000 0000 | 后16位 |
C | 前24位 1100 0000 0000 | 后8位 |
D | 前32位 1110 0000 0000 0000 |
广播地址: 将主机标识全改为1.
端口号:同一台计算机的不同应用程序的程序地址
传输层的两个主要协议:
TCP:Transmission Control Protocal(传输控制协议).
面向有连接的可靠传输协议,保证了两端的主机之间的通信可达,能够处理传输过程的丢包乱序等情况。(七次收发包,三次握手,四次挥手)
UDP: User Datagram Protocal(用户数据报协议).
面向无连接的传输协议,不关注对端是否收到了传送的数据,常用于广播通信或者视频通信领域。
三次握手,四次挥手:
1. ACK (Acknowledgement Flag) 确认应答;
2. SYN (Synchronization Flag) 同步序列号;
3. FIN (Finish Flag) 用于断开连接;
client
SYN_SEND ——> ESTABLISHED ——> FIN_WAIT_1 ——>FIN_WAIT_2
——>TIME_WAIT
server
LISTEN ——> SYN_REVD——> ESTABLISHED——>
CLOSE_WAIT ——> LAST_ACK ——> CLOSED
为什么三次握手?
为了防止已经失效的报文又突然突然传到了服务器,从而产生错误。
为什么四次挥手?
保证客户端和服务器端都完整执行,客户端有权向服务器端发送FIN表示自己要断开连接,同样地,服务器端也有权向客户端发送FIN表示自己也要断开连接。
未完待续