1、HTTP是什么?
HTTP:超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
2、TCP/IP协议的工作流程?
TCP/IP协议的工作流程如下:
●在源主机上TCP/IP协议的工作流程如下:
●在源主机上,应用层将一串应用数据流传送给传输层。
●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
●在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
●网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
●传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。
●在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。,应用层将一串应用数据流传送给传输层。
●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
3、什么是http协议?
Ip协议位于网络层,TCP/UDP协议位于传输层,HTTP位于应用层,下图:
说明:
1.TCP是传输协议,主要解决数据如何在网络中传输;HTTP协议是应用层协议,是TCP协议的上层协议,主要用于客户端与服务器之间的数据传输
2.Socket是对TCP协议的封装,是一个调用的接口
4、怎么发起HTTP请求?
其实发起一个HTTP请求就是建立一个socket连接,只不过HTTP请求是无状态且短链接的协议,浏览器是建立socket链接之前,先根据DNS服务器去把域名解析成对应的IP地址,将IP地址和默认的80端口(https请求和http类似,只不过他用的是443端口的证书)与服务器建立一个socket链接
5、DNS是指(Domain Name System)请用简单的语言描述其工作原理
当DNS客户机需要查询程序中使用的名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括3条信息,以指定服务器应回答的问题。
1. 指定的DNS域名,表示为完全合格的域名
2. 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型
3. DNS域名的指定类别
6、TCP和UDP的区别, 什么时候使用TCP协议,什么时候使用UDP协议;
TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。简单的说TCP注重数据的安全,而UDP数据传输快点,但安全性一般。
a.对数据可靠性的要求。对数据要求高可靠性的应用需选择TCP协议,如验证,密码字段的传送都是不允许出错的,而对数据的可靠性要求不那么高的应用可选择UDP传送;
b.应用的实时性。TCP协议在传送过程中要使用三次握手、重传确认等手段来保证数据传输的可靠性。使用TCP协议会有较大的延迟,因此不适合对实时性要求较高的应用,如VOIP、视频监控等。相反,UDP协议则在这些应用中能发挥很好的作用。
c.网络的可靠性。由于TCP协议的提出主要是解决网络的可靠性问题,它通过各种机制来减少错误发生的概率,因此,在网络状况不是很好的情况下需选用TCP协议(如在广域网等情况),但是若在网络状况很好的情况下(如局域网等)就不需要采用TCP协议,而建议选择UDP协议来减少网络负荷。
7、浏览器怎么解析HTTP请求?
HTTP请求由三部分组成:请求行、请求头、请求正文
常见请求头:
1、GET 2、Host 3、Accept 4、user-Agent 5、Connection 6、Accept-Language
响应头常用信息:
1、状态行 2、Set-Cookie 3、Server
8.在浏览器中输入www.baidu.com后执行的全部过程
答:1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。 2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。 3、客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。 4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
9.DNS域名系统,简单描述其工作原理。
答:当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。 面向连接和非面向连接的服务的特点是什么? 面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。 非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。
10.TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
答:建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。 (1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。 (2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。 (3)采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。
断开连接的4次握手,具体如下:
断开连接的一端发送close请求是第一次握手,另外一端接收到断开连接的请求之后需要对close进行确认,发送一个消息,这是第二次握手,发送了确认消息之后还要向对端发送close消息,要关闭对对端的连接,这是第3次握手,而在最初发送断开连接的一端接收到消息之后,进入到一个很重要的状态time_wait状态,这个状态也是面试官经常问道的问题,最后一次握手是最初发送断开连接的一端接收到消息之后。对消息的确认。
11.了解交换机、路由器、网关的概念,并知道各自的用途
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转 送。路由工作在OSI模型的第三层——即网络层,例如网际协议。
网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。
12、各种协议的介绍
ICMP:因特网控制报文协议。它是TCP/IP协议族的一个子协议,用在IP主机路由器之间的传递控制消息
TFTP:是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
HTTP:超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式适用于分布式超媒体信息系统
DHCP:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。
NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有地址转化为合法IP地址的转换技术。
DHCP协议:一个局域网的网络协议,使用UDP协议工作,用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中意管理的手段。