点击上方“Java知音”,选择“置顶公众号”
技术文章第一时间送达!
1. OSI七层模型
总结一下:
由传输层加上双方的端口号
由链路层加上双方的MAC地址,并将数据拆分成数据帧
每一层的协议
SSL工作在哪层
表示层
2. TCP/IP模型
TCP/IP模型实际上是OSI模型的一个浓缩版本,它只有四个层次:
传输层,对应着OSI的传输层
网络接口层,对应着OSI的数据链路层和物理层
OSI模型的网络层同时支持面向连接和无连接的通信,但是传输层只支持面向连接的通信;TCP/IP模型的网络层只提供无连接的服务,但是传输层上同时提供两种通信模式。
3. 说一下TTL
Time To Live
数据包再传输过程中每经过一个路由器,TTL就减1,直到TTL=0时,数据包被丢弃,并发送ICMP报文通知源主机防止重复发送。
4. ping和tracert命令用的什么协议
ICMP
5. MTU是什么
最大传输单元。
由于不同硬件的物理特性不同,对数据帧的最大长度都有不同的限制,这个最大长度称为MTU。
(然后通过路由对IP报文进行分片完成传输。)
6. 三次握手
6.1 部分报头信息声明
seq: 序列号,表示数据第一个字节的序号
ack: 确认序列号,表示期望收到的第一个字节的序号
6.1.1 FLAG位
常用的由SYN、ACK、FIN。
SYN:用作建立连接时的同步信号。
ACK:用于对收到的数据进行确认。
FIN:表示后面没有数据需要发送,连接需要关闭。
6.2 握手过程
第一次握手:客户端发送数据包将SYN置1,表示希望建立连接,seq=x。发完后进入SYN_SEND状态。
第二次握手:服务器收到请求后,通过SYN确认是建立连接请求,然后发送一个响应包,将SYN=1 ACK=1 seq=y ack=x+1,然后进入SYN_RCVDz状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
7. 为什么要三次握手?
防止请求超时导致脏连接。
8. 两次握手会怎样?
如果两次握手就创建连接,传输完数据并释放连接后,第一个超时的连接请求才到达服务器,服务器会认为是客户端创建新连接的请求,然后创建连接。此时客户端的状态不是SYN_SENT,所以会直接丢弃服务器传来的确认数据,导致最后只是服务器单方面建立了连接。
9. 四次挥手
这个图不好画,网上找了一个。
服务器应答ACK告诉客户端可以断开,但是要等我把数据发送完喽。注意这时候客户端进入FIN_WAIT_2状态。
客户端收到后,给服务器发送ACK确认收到,然后自己进入TIME_WAIT状态。
经过2MSL,客户端没有收到服务器传来的报文,则确定服务器已经收到最后的ACK信号,连接正式释放。
四次挥手白话文:
服务器:噢,好的知道了,不过要等等,我还有一些数据没传完,我传完了告诉你。
客户端:收到(我得再等等,要确认我哥收到了我的回复)
为什么不直接关闭而是进入TIME_WAIT呢?
防止失效请求。(为了防止已失效的连接的请求数据包和正常的混淆)
10. TCP和UDP区别
11. 常用端口以及对应服务
12. 在浏览器中输入网址之后执行会发生什么?
客户端发起http/https请求,然后交给传输层
网络层加上双方的ip地址信息,并负责路由分发。
有问题或者有漏掉的部分可以在评论区提出。
13. IP地址的分类
A类地址:以0开头,第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
B类地址:以10开头,第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头,第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
内部地址:10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。
14. ARP是什么协议,简单语言解释一下工作原理
地址解析协议。
广播发送ARP请求,单播发送ARP响应。
15. DHCP协议有什么作用
一个局域网的网络协议,使用UDP协议工作,用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
16. 子网掩码的作用
子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
通过IP和子网掩码计算网络号(笔试题)
计算出IP二进制和子网掩码的二进制,然后取与
通过IP和子网掩码计算主机号(笔试题)
将子网掩码的二进制取反,然后与IP的二进制取与。
注:该面试题系列文章后续收录至公众号菜单栏,面试季专栏
加入Java知音技术交流,戳这里:
更多Java技术文章,尽在【Java知音】网站。
网址:www.javazhiyin.com ,搜索Java知音可达!
看完本文有收获?请转发分享给更多人
原文始发于微信公众号(Java知音):