美文网首页
常见面试题-计算机网络

常见面试题-计算机网络

作者: leon4ever | 来源:发表于2018-01-30 19:12 被阅读567次

    一、简述TCP/UDP的区别

    TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
    两者的区别大致如下

    • TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
    • TCP提供可靠的服务(数据传输),UDP无法保证
    • TCP面向字节流,UDP面向报文
    • TCP数据传输慢,UDP数据传输快

    二、请简单说一下你了解的端口及对应的服务?

    端口 服务
    21 FTP(文件传输协议
    22 SSH
    23 Telnet远程登录
    25 SMTP简单邮件传输协议
    53 DNS域名服务器
    80 HTTP超文本传输协议
    110 POP3邮件协议3
    443 HTTPS
    1080 Sockets
    1521 Oracle数据库默认端口
    3306 MySQL服务

    三、TCP的三次握手

    在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。


    TCP流程.jpg
    1. 第一次握手:建立连接,客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x,然后客户端进入SYN——SEND状态,等待服务器确认
    2. 第二次握手:服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(sequence number + 1);同时,自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态
    3. 第三次握手:客户端接收到SYN_ACK报文段。然后将ACK number设为y+1,向服务器发送ACK报文段,这个报文段发送完毕之后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。

    四、有哪些私有(保留)地址?

    • A类:10.0.0.0 - 10.255.255.255
    • B类:172.16.0.0 - 172.31.255.255
    • C类:C类:192.168.0.0 - 192.168.255.255

    五、IP地址分类

    IP地址分类.jpg

    IPv6采用128位,首部固定为40字节

    六、在浏览器中输入网址之后执行会发生什么?

    • 查找域名对应的IP地址。这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPNDS缓存,根域名服务器
    • 浏览器向IP对应的web服务器发送一个HTTP请求
    • 服务器响应请求,发回网页内容
    • 浏览器解析网页内容

    更加详细的说法,以百度为例,来自牛客网

    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数据包到达服务器的地址。

    如果你想要更加深入的了解这个过程,点击阅读:从输入网址到显示网页的全过程分析

    七、简单解释一些ARP协议的工作过程

    1. 首先,每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
    2. 当源主机要发送数据时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址
    3. 当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
    4. 源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

    八、OSI七层模型

    OSI七层模型详解

    OSI七层模型.gif

    九、TCP/IP四层模型

    参考http://www.cnblogs.com/BlueTzar/articles/811160.html

    十、HTTP 协议包括哪些请求?

    • GET:对服务器资源的简单请求
    • POST:用于发送包含用户提交数据的请求
    • HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头
    • PUT:请求文档的一个版本
    • DELETE:发出一个删除指定文档的请求
    • TRACE:发送一个请求副本,以跟踪器处理进程
    • OPTIONS:返回所有可用的方法,检查服务器支持哪些方法
    • CONNECT:用于SSL隧道的基于代理的请求

    十一、简述HTTP中GET和POST的区别

    从原理看:

    • GET用于信息获取,应该是安全和幂等的
    • POST请求表示可能修改服务器上资源的请求

    从表面上看:

    • GET请求的数据会附在URL后面,POST的数据放在HTTP包体
    • POST安全性比GET安全性高

    相关文章

      网友评论

          本文标题:常见面试题-计算机网络

          本文链接:https://www.haomeiwen.com/subject/pxiqzxtx.html