2017届毕业生安卓面试题-计算机网络篇

计算机网络

即将多台计算机通过线路在网络管理协议下实现资源共享和信息传递

这里写图片描述
名词定义
IP:
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包
并把该数据包发送到更高层—TCP或UDP层
IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

TCP:
TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接(四次挥手),由于TCP是面向连接的所以只能用于端到端的通讯。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

UDP:
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。

ICMP:
ICMP与IP位于同一层,它被用来传送IP的控制信息。它主要是用来提供有关通向目的地址的路径信息


1. OSI与TCP/IP各层的结构与功能,都有哪些协议。
OSI开放式系统互联 TCP/IP传输控制协议
OSI模型有7层 TCP/IP模型有5层

OSI模型
(对应TCP/IP网接口层)
物理层:规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。
数据链路层:传输有MAC地址的帧以及错误检测功能

====================
网络层:(两个主机之间)为数据包(packets)选择路由
传输层:(两个主机的应用进程之间)提供端对端的接口=

==================
(对应TCP/IP应用层)
会话层:访问验证和会话管理等(如服务器验证用户登录)
表示层:数据格式化,代码转换,数据加密等
应用层:为操作系统或网络应用程序提供访问网络服务的接口:文件传输,电子邮件,文件服务,虚拟终端等

TCP/IP模型
网络接口层
网络层:(IP,ICMP)
传输层:(TCP,UDP)
应用层:(HTTP,FTP,DNS)

2. TCP与UDP的区别。

TCP:面向连接,从端到端和可靠的数据传递,提高IP环境下的可靠传输,流量的控制
针对可靠性高的应用
HTTP,DNS,FTP等协议应用到

UDP:不面向连接,不为IP提供可靠性、 流控或差错恢复功能
适用于可靠性要求低、传输经济的应用
DNS等协议应用到

3. TCP报文结构。
这里写图片描述

4. TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。

三次握手:
客户端发送SYN消息包请求给服务器,服务器会返回SYN+ACK确认的消息表明已经连上,
客户端收到确认消息会再发送一个SYN+ACK报文,这样三次握手,成功后就开始分配资源建立连接

为什么不是两次握手:
两次握手是不可靠的连接
如果两次握手,网络延时造成的超时请求,会再次创建一个新的无效连接,并一直保持,占用资源

四次挥手:
客户端发送中断连接请求Fin报文(表示客户端不会发送来数据了),这个时候服务端可能是处于发送数据过程中,所以服务端发送ACK报文表示自己还没准备关闭,服务端收到报文进入FIN_WAIT状态,当服务端发送数据完毕,向客户端发送一个FIN报文,表示可以断开连接,客户端再发送ACK报文,若2MSL后未响应表示服务端关闭了,客户端再关闭

自己理解:客户端断开:客户端发送Final请求报文,服务端收到final报文,发送ACK报文给服务端等待数据传输完,服务端进入Final-wait状态,服务端数据传输完成,向客户端发送Final报文,自身进入Final-wait状态
客户端发送ACK报文确认,之后连接成功断开连接

四次的目的:防止数据未加载完就断开的情况

TIMEWAIT的作用:报文请求的有效等待时间,超过就会从网络中消失

5. 请说出HTTP协议位于TCP/IP模型中的第几层?为什么说HTTP是可靠的数据传输协议?。
http位于TCP/IP中的应用层,因为http在传输层基于TCP协议而TCP协议是面向连接的可靠协议所以http可靠

6. HTTP和HTTPS的区别?

https是用SSL加密的。电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议

要比http协议安全

7. HTTP协议的结构?

请求报文:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

响应报文:状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

7. HTTP请求的完整过程?
Http请求的过程,与电脑上访问一个网页大概相同

  1. 建立TCP连接
    在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。

  2. Web浏览器向Web服务器发送请求命令
    一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。

  3. Web浏览器发送请求头信息
    浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

  4. Web服务器应答
    客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。

  5. Web服务器发送应答头信息
    正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

  6. Web服务器向浏览器发送数据
    Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

  7. Web服务器关闭TCP连接
    一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive
    TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

7. HTTP怎么处理长连接?
在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有: Connection:keep-alive。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接要客户端和服务端都支持长连接。

8. 电脑上访问一个网页,整个过程是怎么样的?
1)浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址;
2)解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;
3)浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器;
4)服务器给出相应,把对应的html文本发送给浏览器;
5)释放TCP连接;
6)浏览器将该文本显示出来。

9. Cookie与Session的作用于原理?
cookie机制:客户端保持状态。“Set-Cookie”域;cookie的内容主要包括:名字,值,过期时间,路径和域。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

session机制:服务器端保持状态。 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个);如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值