三次握手
四次挥手
三次握手,四次挥手相关问题
问:TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
答:1.握手过程看上图。2.如果采用二次握手,则可能收到客户端申请的已经失效的连接。
问:SYN Flood攻击是什么原因?
答:三次握手的缺陷:第二次握手时候会出现,SYN Timeout
问:四次挥手释放连接时,等待2MSL的意义?
答:1.保证ack传过去。2.消除网络中所有其他的包。
问:为什么需要四次挥手才能断开连接?
答:全双工,FIN,ACK
问:出现大量的CLOSE_WAIT的原因?
答:服务器忙于读写。
在浏览器中输入www.baidu.com后执行的流程
1.浏览器查找域名的 IP 地址,请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。
2、如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。
3、查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根域名服务器进行查询。
4、根域名DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到顶级域服务器上去继续查询,并给出顶级域服务器的地址。这种过程是迭代的过程。
5、本地DNS服务器继续向其他域名服务器发出请求,在这个例子中,请求的对象是.com域名服务器。.com域名服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。
6、最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址220.181.27.48对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。
网络部分:
1.应用层DNS解析域名发起HTTP请求报文(域名 to IP)
2.传输层TCP分割成报文段并加端口
3.网络层查找MAC地址(路由器)(IP、ICMP、ARP、RARP)(IP to MAC)
4.网络接口层。在找到对方的MAC地址后,就将数据发送到数据链路层传输,由数据链路层的网桥、交换机根据mac地址进行端口转发,再由物理层的中继器、集线器进行信号传输放大等。这时,客户端发送请求的阶段结束
5.服务器接收数据。接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在传输层通过TCP协议将分段的数据包重新组成原来的HTTP请求报文。
6.服务器响应请求,返回HTTP响应
7.服务器返回相应文件
8.浏览器方面:页面渲染,显示HTML
附大佬总结的:https://github.com/wangliguo123321/learningNote-interview/blob/master/learningNote/studyDiary/计算机网络.md