面试中一些常见计算机网络题

OSI的七层协议

应用层:访问网络服务的接口(HTTP协议,DNS,SMTP协议)
表示层:提供数据格式转换服务
会话层:建立端连接并提供访问验证和会话管理
传输层:提供应用程序之间的逻辑通信(TCP和UDP)
网络层:为分组交换网上的不同主机提供通信服务(路由器,防火墙)
数据链路层:在通信实体间建立数据链路连接(网卡,网桥,二层交换机)
网络层:为数据端设备提供原始比特流的传输设备(中继器,集线器)

TCP/IP的四层协议

TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。从协议分层 模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。
面试中一些常见计算机网络题_第1张图片

TCP和UDP区别

传输控制协议TCP(Transmission Control Protocol):面向连接的传输层协议,提供可靠交付服务,每一条TCP连接只能是点对点的,提供全双工通信,面向字节流
用户数据报协议UDP(User Datagram Protocol):无连接,尽最大努力交付,面向报文的,没有拥塞控制,支持一对一,一对多,多对一和多对多的交互通信,首部开销小

三次握手

第一次握手:主机 A 发送位码为 syn=1,随机产生 seq number=1234567 的数据包到服务器,主机 B 由SYN=1知道,A要求建立联机;
第二次握手:主机 B 收到请求后要确认联机信息,向 A 发送 ack number=(主机 A 的 seq+1),syn=1,ack=1,随机产生seq=7654321 的包
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码 ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功
面试中一些常见计算机网络题_第2张图片

四次挥手

TCP 建立连接要进行三次握手,而断开连接要进行四次。这是由于 TCP 的半关闭造成的。因为 TCP 连 接是全双工的(即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭。这个单 方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个FIN来向另一方通告将要终止这个 方向的连接。
1) 关闭客户端到服务器的连接:首先客户端 A 发送一个 FIN,用来关闭客户到服务器的数据传送, 然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u
2) 服务器收到这个FIN,它发回一个ACK,确认号ack为收到的序号加1。
3) 关闭服务器到客户端的连接:也是发送一个FIN给客户端。
4) 客户段收到FIN后,并发回一个 ACK报文确认,并将确认序号seq设置为收到序号加1。
首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 主机A发送FIN后,进入终止等待状态, 服务器B 收到主机 A连接释放报文段后,就立即 给主机A发送确认,然后服务器B就进入close-wait 状态,此时TCP服务器进程就通知高 层应用进程,因而从A到 B的连接就释放了。此时是“半关闭”状态。即A不可以发送给 B,但是B 可以发送给A。此时,若B 没有数据报要发送给A了,其应用进程就通知TCP释 放连接,然后发送给A连接释放报文段,并等待确认。A发送确认后,进入time-wait,注 意,此时TCP连接还没有释放掉,然后经过时间等待计时器设置的 2MSL后,A才进入到 close状态。
面试中一些常见计算机网络题_第3张图片

HTTP 原理

HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接, 这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服 务器端不保留连接的有关信息.HTTP 遵循请求(Request)/应答(Response)模型。客户机(浏览器)向 服务器发送请求,服务器处理请求并返回适当的应答。所有 HTTP连接都被构造成一套请求和应答。

HTTP传输流程

1 :地址解析
如用客户端浏览器请求这个页面:http://localhost.com:8080/index.htm 从中分解出协议名、主机名、 端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:
协议名:http
主机名:localhost.com
端口:8080
对象路径:/index.htm
在这一步,需要域名系统DNS 解析域名localhost.com,得主机的 IP地址。
2 : 封装 HTTP请求数据包
把以上部分结合本机自己的信息,封装成一个HTTP请求数据包
3 : 封装成 TCP包并建立连接
封装成TCP包,建立TCP连接(TCP的三次握手)
4 : 客户机发送请求命令
建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资 源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。
5 : 服务器响应
服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或 错误的代码,后边是MIME 信息包括服务器信息、实体信息和可能的内容。
6 : 服务器关闭 TCP连接
服务器关闭 TCP 连接:一般情况下,一旦 Web 服务器向浏览器发送了请求数据,它就要关闭 TCP 连 接,然后如果浏览器或者服务器在其头信息加入了这行代码 Connection:keep-alive,TCP 连接在发送 后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求 建立新连接所需的时间,还节约了网络带宽。

HTTPS

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP通道,简单讲是 HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。其所用 的端口号是443。 https协议需要到CA申请证书

你可能感兴趣的:(java面试)