常问计算机网络面试题(⊙o⊙)…
1.MAC地址
Media Access Control
背景:
48比特位
12个16进制
前6位由IEEE(美国电气和电子工程协会)分配,后六位由厂商分配
作用:
转发数据链路层的数据帧给网络层
2.IP地址和子网掩码
子网掩码:划分IP地址
IP地址 = 网络号 + 主机号
例如:192.168.0.x/4 可以表示为
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
计算子网掩码:
子网掩码换算为二进制以后11111。。。。那一串就是用于控制ip属于同一网络段的(黄色区域),剩余部分即可用于分配
3.TCP的三次握手和四次挥手
TCP位于传输层,用于客户端与服务器端建立连接
三次握手:
- 客户端发送SYN(synchronization),生成Seq=1000(Sequence)给服务器端
- 服务端发送SYN=2000 ,ACK(acknowledgement) = seq(接受客户端1000) + 1 = 1001
- 客户端建立连接,发送seq=1001 , ack = ack(接受服务器端2000) + 1 = 2001 给服务器端
四次握手:
- 客户端发送FIN+ACK (seq=2000,ack=1000)给服务器端
- 服务器端发送ack(seq=1000,akc=2001)回复客户端收到关闭,但是还没有准备好
- 服务器准备好关闭连接,发送FIN + ACK给客户端
- 客户端确认收到,发送ack(seq=2001,ack=1001)给服务器端,关闭连接
4.TCP和UDP的区别
TCP面向连接,UDP面向无连接
UDP程序结构简单
TCP面向字节流,UDP是基于数据包的
TCP保证数据的正确性,UDP可能丢包
TCP保证数据顺序,UDP不保证