Sockets 谷歌为它收到的每个请求打开多少个套接字?
以下是我最近在一家知名网络软件公司的面试经历。有人问我关于连接TCP层和web请求的问题,这让我很困惑。我真的很想知道专家对答案的看法。这不仅仅是关于面试,还涉及对网络工作原理的基本理解(或者应用层和传输层的串扰,如果有的话)Sockets 谷歌为它收到的每个请求打开多少个套接字?,sockets,networking,tcp,request,port,Sockets,Networking,Tcp,Request,Port,以下是我最近在一家知名网络软件公司的面试经历。有人问我关于连接TCP层和web请求的问题,这让我很困惑。我真的很想知道专家对答案的看法。这不仅仅是关于面试,还涉及对网络工作原理的基本理解(或者应用层和传输层的串扰,如果有的话) 采访者:告诉我当你在幕后工作时发生的过程 我打开一个浏览器,在其中键入google.com Me:发生的第一件事是创建一个套接字 由{SRC-IP,SRC-PORT,DEST-IP,DEST-PORT,PROTOCOL}标识。这个 SRC-PORTnumber是浏览器给定
google.com
Me:发生的第一件事是创建一个套接字
由{SRC-IP,SRC-PORT,DEST-IP,DEST-PORT,PROTOCOL}
标识。这个
SRC-PORT
number是浏览器给定的随机数。通常是TCP/IP协议
连接协议(建立三方握手)。现在
客户端(我的浏览器)和服务器(谷歌)都已准备好处理
请求。(TCP连接已建立)google.com
对来自其他网站的其他请求开放
客户。建立与谷歌的联系也是如此
其他用户
我:我不知道谷歌是如何处理的。但是在一个典型的插座中
通信,它是阻塞到最小程度记者:告诉我当我打开一个浏览器并在其中键入google.com时,幕后发生的过程 Me:首先创建一个套接字,由{SRC-IP,SRC-PORT,DEST-IP,DEST-PORT,PROTOCOL}标识 否。连接由元组标识。套接字是连接的端点 SRC端口号是浏览器给定的随机数 不,由操作系统决定 通常采用TCP/IP连接协议(建立三方握手)。现在客户端(我的浏览器)和服务器(谷歌)都准备好处理请求了。(TCP连接已建立) 记者:等等,什么时候会有名字解析 我:是的,对不起。它应该在创建套接字之前发生。DNS名称解析首先要获得google的IP地址 采访者:是否为DNS名称解析创建了套接字 我:嗯,我真的不知道。但我所知道的DNS名称解析是一个连接较少的解析。这不是TCP,而是UDP。只有一个请求-响应周期发生。(为DNS名称解析创建了一个新套接字) 任何合理实现的浏览器都会将整个任务委托给操作系统的套接字库,其内部功能取决于操作系统。在转到DNS服务器之前,它可能会查看内存中的缓存、文件、数据库、LDAP服务器等一些内容,而DNS服务器可以通过TCP或UDP来完成。这不是一个好问题 采访者:google.com对其他客户的其他请求是开放的。你和顾建立联系也是如此