关于三次握手的一些问题

在网上看到了一面试题:输入一个网站后发生了什么,想问一下关于传输层的三次握手的问题:
(1)浏览器通过HTTP解析URL生成请求报文是在三次握手之后还是在其之前?
(2)三次握手里ACK,SYN,序号Seq包的传输也是按照:
客户端传输层->网络层->数据链路层->物理层->服务器的物理层->数据链路层->网络层->传输层
这样的顺序吗,还是直接是客户端传输层->服务器传输层这样的?
(3)三次握手后,两者就可以交换数据了,这里说的数据是指单单指的是TCP 报文段吗?还是说逐层往下最后封装成的数据帧?还是说是其他的东西?

阅读 2k
3 个回答

1、当然是之后,HTTP 是建立在 TCP 之上的,你 HTTP 都开始传输报文了当然是 TCP 已经建连(即握手)了。

2、建议从头学计算机网络这门课,重点看 OSI 相关。

3、TCP。

  1. 先解析URL获取相应的域名,然后进行DNS解析获取IP地址,再进行三次握手建立通信
  2. 不能这么说把,ACK,SYN属于传输层的东西,网络层将其接收并打包封装。
  3. 开始发送Http请求报文
首先是解析URL
    这里面就有 hsts
    然后检查命中缓存
然后是解析DNS
    检查DNS缓存
    一层层往上找DNS
然后才是应用层生成http报文
然后才是交由传输层
    传输层建立链接
        这个时候才握手
    然后生成报文,交给下一层
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进