DNS服务器之顺藤摸瓜
拿 www.google.com.来举例。其实可以类比为找朋友。
- 首先本机通过自己设置的最近的DNS服务器去找寻根域名,本机问道根域名服务器,你认不认识www.google.com,跟服务器答道我不认识,但是我认识com域名服务器.
- 同理,问com域名服务器,你是否认识www.google,com域名解析器答道,我认识存放google的域名解析器.
第一章和第二章的总结
注意,双引号内的部分即还不确定的部分,待完善
- 解析域名:从第一章节的浏览器解析url开始,浏览器将输入的url交由DNS服务器解析域名,拿到域名背后的ip地址。
- 与服务器建立通信:分为connection,write,read,close四个阶段,建立通信的过程需要三次握手,以及通过查找服务器的对应端口号建立套接字。建立好了通信之后就可以进行下一个阶段-发数据包了。住:建立通信的阶段也在发包,只不过主要有IP头部,MAC头部等,但是发的包中没有数据。其实发包的种类也有很多,ACK包等。
- 生成包,发包过程中各个硬件的相互协调:涉及到的软硬件有网卡,网卡驱动,协议栈。其中协议栈可以认为是操作系统的一个部分,
它掌管着TCP/IP/UDP,发送的数据包需要经过他所掌管的这几个协议进行加工,也就是给数据包加入头部信息(数据信息、控制信息)。网卡有ROM,MAC,ROM中存放着网卡出场时设置的全世界唯一的MAC地址,MAC作为一种控制层。 - 协议栈中的TCP/IP:IP只管发送包,IP头部信息含有接送方的IP地址。
第一章和第二章中待回顾的问题
- 表示网络包收件人的接收方IP地址是位于IP头部还是TCP头部?
- 端口号用来指定服务器程序的种类,他是位于TCP头部还是IP头部?
- 会对包是否正确送达进行确认的时TCP还是IP?
- 根据IP地址查询MAC地址的机制叫什么?
- 在收到ACK号之前继续发送下一个包的方式叫什么?
协议栈与操作系统的关系?以及协议栈与TCP/IP/UDP的关系?
表示网络包收件人的接收方IP地址位于IP头部,但是该信息并不是由IP产生,而是由应用程序生成,然后,应用程序交给TCP层,再由TCP层交给IP层,IP层再给数据包封装头部。
- TCP头部
书2.3.3- ARP机制,拿一个子网来说,发送方在查询MAC地址时,首先通过广播的方式,向子网内的所有设备问:“谁的ip地址是xxxxx”,符合条件的设备答道:”我的ip地址符合,我的mac地址是xxxx”,不符合条件的设备即使收到了该条信息也不做回复。
- 滑动窗口方式,该方式是指接收方在没有收到发送方返回的ACK包之前,继续发送下一个数据包,这样可以提升通信的效率,但是发送两个数据包之间的间隔需要按规则来设定,不能过大也不能过小。
自主探索ip
- 当启用了代理服务器的时候去访问url,remote adrress:127.0.0.1:1080 代表的是本地代理端口,也就是本机从代理服务器获取数据的端口。
- 若不启用代理服务器,那么客户端会去访问真实的url
- 无论是否使用了代理服务器,浏览器在加载一次页面之后,会将部分数据存入内存缓存,下次访问的时候会从内存中获取。





