计算机网络那些事------(二)

一、浏览器输入www.baidu.com后会发生什么?

(1)将域名www.baidu.com解析为IP地址

系统会将浏览器的解析请求发送到本地DNS服务器,如果缓存中有对应的解析记录,就会直接返回IP地址,如果没有的话本地DNS服务器还要向DNS根服务器进行查询

本地DNS服务器向根服务器发送DNS请求,如果根服务器经过查询,没有记录该域名及IP地址的对应关系,就会告诉本地DNS服务器,可以到域名服务器上继续查询,并给出域名服务器的地址(.com服务器)

本地DNS服务器向.com服务器发送DNS请求,.com服务器收到请求后,不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,该域名可以在baidu.com域名服务器上进行解析获取IP地址,并告诉baidu.com域名服务器的地址

本地DNS服务器向baidu.com域名服务器发送DNS请求,baidu.com服务器收到请求后,在自己的缓存表中发现了该域名和IP地址的对应关系,并将IP地址返回给本地DNS服务器

本地DNS服务器将获取到与域名对应的IP地址返回给客户端,并且将域名和IP地址的对应关系保存在缓存中,以备下次别的用户查询时使用

(2)建立TCP/IP连接(三次握手)

假设有 A 和 B 两台机器,A是客户端 ,B是服务器端

首先 B 处于LISTEN(监听状态),等待客户的连接请求

A 向 B 发送请求报文,SYN = 1, ACK = 0, 选择一个初始的序列号x

B 收到连接请求的报文,如果同意建立连接,则向 A 发送连接确认报文,SYN = 1, ACK = 1, 确认号为 x+1,同时也选择一个初始的序列号y

A 收到 B 的连接确认报文之后,还要向 B 发出确认,确认号为y+1,序列号为x+1

B 收到 A 的确认后,建立连接

为什么是三次握手?

因为信道是不可靠的,可能存在延时和丢包,而三次是满足可靠性的最小次数。

如果只有两次,假设主机A发送第一个请求包延时,主机A在等待一段时间后又重新发送一个请求包,完成数据连接并断开。这时上次发送的请求包才到达主机B,这时主机B认为又是一次连接,因此发送一个请求包给A,但是A并没有发出新的请求,因此丢失了该数据包,最后B一直等待A发送数据,浪费了资源。

除此之外,我认为三次握手更加安全,加大了攻击难度,如果是两次,一个发送,一个应答,那么攻击者可以采用IP欺骗,发动SYN洪水攻击,而且服务器端还是ESTABLISHER状态,不能进行防御,而三次握手可以限制半连接的数量来达到一个防御的作用。

(3)浏览器根据解析得到的IP地址向WEB服务器发送一个HTTP请求

(4)经路由器转发,将HTTP请求送达服务器

(5)服务器处理HTTP请求,并返回HTML文件

(6)浏览器解析HTML文件,并显示

二、简单说明什么是DNS,使用了什么协议进行传输数据的,作用是什么,在哪些情况使用哪种协议进行数据传送?

(1)DNS提供域名,IP对应关系

(2)DNS在数据传输时使用UDP和TCP两种协议

(3)DNS在进行域传送时使用TCP进行传输数据,当DNS传输数据大于512字节时,使用TCP进行数据传输,小于512字节时使用UDP进行传输

三、简述DNS解析过程

(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发送应答消息

(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发送应答消息

(3)若没有查到,则将请求发送给根域DNS服务器,并依序从根域查找顶级域,由顶级域查找二级域,二级域查找三级域,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发送应答消息,DNS服务器收到应答后先在缓存中存储,然后将解析结果发送给客户机,若没有找到,则返回错误信息

四、HTTP1.0、HTTP1.1、HTTP2.0的区别

HTTP1.0:每次请求都需要重新建立TCP连接,请求完成后立即断开与服务器的连接,这个很大程度造成了性能上的缺陷

HTTP1.1:引入了长连接(keep-alive),相较于1.0减少了连接和关闭的延迟,提高了效率,但是若干个请求还是需要串行排队处理,如果一旦某个请求超时,后面的就会被阻塞

HTTP2.0主要特点:
1.新的二进制格式传输:二进制即0和1的组合,实现方便健壮,而1.x版本是基于文本,解析存在缺陷
2.多路复用:一个连接可以有多个请求,且可以混杂在一起根据requestid来区分不同的请求,提高了连接的利用率,降低了延迟
3.header头部压缩:通讯双方各自缓存了一份header请求头表,避免了重复的header传输,且缩小了包的体积大小
4.服务端推送功能:可以服务端主动向客户端push消息

五、各种协议

  1. ICMP:因特网控制报文协议。它是TCP/IP协议的一个子协议,用于IP主机和路由器之间传递控制信息
  2. TFTP:是TCP/IP协议中的一个用来在客户端与服务器之间进行简单文本传输的协议,提供不复杂、开销不大的文件传输服务
  3. DHCP:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数的手段
  4. NAT:网络地址转换接入广域网的技术,是一种将私有地址转化为合法IP地址的转换技术
  5. HTTP:超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷,快速的方式,适用于分布式超媒体信息系统

六、TCP协议之停止等待协议

理想的传输条件有两个特点:1.信道不产生差错        2.不管发送方以多块的速度发送数据,接收方总是来得及处理收到的数据。
但是实际的网络都不具备以上两个理想条件,但是可以使用一些可靠传输协议,当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到数据的时候,及时告诉发送方适当降低数据发送速度。

停止等待协议就是每发送一个分组就停止发送,等对方确认,在收到确认之后再发送下一个分组
在这里插入图片描述
上图中的 a 是无差错情况:
(1)A发送分组M1,发送完就暂停发送,等待B确认
(2)B收到了M1就向A发送确认
(3)A在收到了确认后,就再发送M2分组
(4)同样,在收到B对M2的确认后,再发送M3

上图中的b是传输过程中出现了差错的情况下的超时重传机制
出现差错分为两种:
1.M1在传输的过程中丢失
2.B 接收 M1 时检测出了差错,直接丢弃 M1
以上两种情况,B都不会发送任何信息给A。

为解决上述场景遇到的问题,可靠传输协议是这样设计的:A 只要超过了一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面的分组,这就是超时重传。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值