参考资料:
https://www.ietf.org/rfc/rfc9293.html#name-closing-a-connection
https://cloud.tencent.com/developer/article/1814881?from=10680
https://docs.oracle.com/cd/E19455-01/806-0916/6ja85398n/index.html#ipov-fig-30
1. TCP官方权威资料在哪里?
答:RFC https://www.ietf.org/rfc/rfc9293.html
2. TCP是什么?
答:TCP是传输控制协议,位于应用层,传输层,网络层,数据链路层的第二层。如何理解内,看得见最明显,离用户最近的就在最外层。比如某个APP可以使用,它是NIO实现的,交互要通过网络,数据传输是看不见的,在物理链路上
3. 浏览器请求一个地址到展示页面发生了什么?
答:a.解析域名获取ip(根据缓存,hosts配置,dns服务器)
b.建立TCP链接
c.设置请求头访问服务器
d.服务器根据uri找到资源,设置响应头并将数据返回到浏览器
e.浏览器断开tcp链接并加载document(js,css,img)渲染element 执行js
4. TCP如何建立链接(三次握手)?
答:three way(message) handshake ,通过发送三个报文建立链接,客户端发送SYN,服务端响应ACK和SYN,客户端建立链接响应ACK,服务端建立链接
5. TCP如何断开链接?
答:客户端close表示没有要发送的数据了。客户端发送FIN,服务端响应ACK并等待结束,服务端发送FIN,客户端响应ACK,服务端结束,客户端等待一定时间结束。