说明:本人写的仅供学习使用,不保证正确率,仅供参考
1、(问答题) 描述用户点击一个URL后,主机与服务器产生的动作。
1 输入网址
2 浏览器查找域名的IP地址(DNS解析)
因为ip地址不容易记忆,所以一般会使用域名(如www.baidu.com)作为网址。DNS解析就是将域名翻译成IP地址的过程。
3 建立TCP连接
建立TCP需要三次握手才能建立:
A : 你好我是A,你能听得到我说话吗?(第一次握手:客户端向服务器发送建立连接请求)
B : 听到了,我是B,你能听到我说话吗?(第二次握手:服务器向客户端发送接到连接请求)
A : 可以,听到了 (第三次握手:客户端对服务器的接受状态进行回应)
4 发送http请求
5 接收响应
6 页面渲染
7 关闭TCP连接(或者也可能保持连接:之前说到的 websocket 是一次长连接)
关闭TCP需要四次挥手才能断开:
(1)客户端告诉服务器断开连接
(2)服务器告诉客户端收到
(3)服务器告诉客户端已关闭连接
(4)客户端确认并回应
2、(问答题) 描述DNS解析的工作过程。
域名解析总体可分为一下过程:
(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
(2) 如果没有, 就向上级域名服务器进行查找, 依次类推
(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
3、(问答题) 描述TCP四次挥手工作过程。
1、刚开始双方处于ESTABLISHED状态。
2、客户端要断开了,向服务器发送 FIN 报文,在 TCP 报文中的位置如下图:
发送后客户端变成了FIN-WAIT-1状态。注意, 这时候客户端同时也变成了half-close(半关闭)状态,即无法向服务端发送报文,只能接收。
3、服务端接收后向客户端确认,变成了CLOSED-WAIT状态。
4、客户端接收到了服务端的确认,变成了FIN-WAIT2状态。
5、随后,服务端向客户端发送FIN,自己进入LAST-ACK状态,
6、客户端收到服务端发来的FIN后,自己变成了TIME-WAIT状态,然后发送 ACK 给服务端。
注意了,这个时候,客户端需要等待足够长的时间,具体来说,是 2 个 MSL(Maximum Segment Lifetime,报文最大生存时间), 在这段时间内如果客户端没有收到服务端的重发请求,那么表示 ACK 成功到达,挥手结束,否则客户端重发 ACK。
4、(单选题) www.baidu.com中的顶级域名是什么?( C)
A.
www
B.
baidu
C.
com
5、(单选题) TCP是通过什么机制控制传输速率的?(D )
A.
确认机制
B.
重传机制
C.
排序机制
D.
滑动窗口机制
6、(多选题) TCP实现数据的可靠和有序传输依靠什么?( B)
A.
序列号
B.
确认序列号
C.
源端口号
D.
目标端口号
7、(多选题) TCP头部中有哪些标识位参与TCP三次握手?(ABC )
A.
SYN
B.
ACK
C.
FIN
D.
RST
8、(单选题) 下列不属于TCP/IP模型内容的是(C )
A.
应用层
B.
网络接口层
C.
会话层
D.
传输层
9、(单选题) 下列不属于OSI/RM参考模型内容的是(C )
A.
应用层
B.
网络接口层
C.
会话层
D.
表示层