常见TCP/IP面试题(边学边补充)

1. OSI与TCP/IP各层的结构与功能,都有哪些协议。

(1)OSI:七层模型。

①物理层:在物理信道上实现原始比特流的传输。(以太网, IEEE 802.2 等)

②数据链路层:实现无差错地将数据帧从一个节点传送到下一个相邻节点。(Wi-Fi(IEEE 802.11) , WiMAX(IEEE 802.16),  GPRS, HDLC, PPP 等协议)

③网络层:实现将数据分组从源站通过网络传送到目的站,即网络上一台主机与另一台主机之间的数据传输。(IP, ICMP, IGMP, ARP, RARP, OSPF 等协议)

④传输层:实现源端到目的端数据的传输,即某主机的某进程与另一台主机的某进程之间的数据传输。(TCP, UDP 等协议)

⑤会话层:实现在不同机器上用户建立、维护和终止会话关系。即会话层对会话提供控制管理服务、会话同步服务等。(ZIP, ASP, SSH 等协议)

⑥表示层:确保各种通信设备能够互相操作,不及考虑其数据的内部表示。即确保即使各种通信设备其数据的内部表示不同,但仍然能相互正确操作。(SSL等协议)

⑦应用层:使用户能够访问网络,为各类应用提供相应的服务、提供各种用户接口支持服务。应用层不是应用程序,应用层是一个为应用程序提供各类应用支持的服务层。(HTTP, FTP, SMTP, POP3, DHCP, DNS等协议)

(2)TCP/IP:四层模型。

①网络接口层:对应物理层和数据链路层。

②网络层

③传输层

④应用层:包括会话层、表示层、应用层。


2. TCP与UDP的区别。
(1)TCP:面向连接,可靠的,速度慢,效率低。

 

(2)UDP:无连接、不可靠、速度快、效率高。

 

当进程需要传输可靠的数据时应使用TCP,当进程需要高效传输数据,可以忽略可靠性时应使用UDP协议。

 

3. TCP报文结构。
常见TCP/IP面试题(边学边补充)_第1张图片
 

参考:http://www.360doc.com/content/12/1218/10/3405077_254718387.shtml

 

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

参考:http://blog.csdn.net/whuslei/article/details/6667471/

TimeWait作用:

1。防止上一次连接中的包,迷路后重新出现,影响新连接
  (经过2MSL,上一次连接中所有的重复包都会消失)
2。可靠的关闭TCP连接
  在主动关闭方发送的最后一个ack(fin) ,有可能丢失,这时被动方会重新发
  fin, 如果这时主动方处于CLOSED 状态 ,就会响应rst 而不是ack。所以
  主动方要处于TIME_WAIT 状态,而不能是CLOSED 。
TIME_WAIT 并不会占用很大资源的,除非受到攻击。
还有,如果一方send 或recv 超时,就会直接进入CLOSED 状态


5. TCP拥塞控制。

 

(1)在通信子网出现过多数据包的情况,使得网络的性能下降,甚至不能正常工作,这种现象就称为拥塞。

 

(2)网络拥塞的成因主要有三:1、处理器的速度太慢。2、线路容量的限制。3、节点输出包的能力小于输入包的能力。

(3)拥塞控制与流量控制是相关的,流量控制在数据链路层对一条通信路径上的流量进行控制,其的是保证发送者的发送速度不超过接收者的接收速度,它只涉及一全发送者和一个接收者,是局部控制。拥塞控制是对整个通信子网的流量进行控制,其目的是保证通信子网中的流量与其资源相匹配,使子网不会出现性能下降和恶化、甚至崩溃,是全局控制。

(4)拥塞控制的最终目标是:1、防止由于过载而使吞吐量下降,损失效率;2、合理分配网络资源;3、避免死锁;4、匹配传输速度。

(5)对拥塞控制,可用的方法有两类:开环控制和闭环控制。
1、开环控制的思想是通过良好的设计避免拥塞问题的出现,确保拥塞问题在开始时就不可能发生。开环控制方法包括何时接受新的通信何时丢弃包、丢弃哪些包。其特点是在作出决定时不考虑网络当前的状态。
2、闭环控制的思想是反馈控制。即通过将网络工作的动态信息反馈给网络中节点的有关进程,节点根据网络当前的动态信息,调整转发数据包的策略。闭环控制过程包括三部分: ①监视系统  检测网络发生或将要发生拥塞的时间和地点。②报告  将监视中检测到的信息传送到可以进行拥塞控制的节点。③决策  调整系统的操作行为,以解决问题。

(6)对应于开环控制的方法有:(基于拥塞预防)

1、预定缓冲区 2、合理分配缓冲区 3、通信量整形法(A、许可证算法,B、漏桶算法,C、令牌漏桶算法。)

对应于闭环控制的方法有:(基于拥塞抑制,即拥塞出现或即将出现时采取适当的措施进行控制,直到消除拥塞)

1、阻塞包法。 2、负载丢弃法

 

6. TCP滑动窗口与回退N针协议。

(1)常见TCP/IP面试题(边学边补充)_第2张图片

(2)go-back-N:为了提高信道的利用率和传输的效率,在未收到确认信息时允许发送方连续发送N帧数据,收方的缓冲区只能存放一帧数据。当接收方检测出出错的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。因为对接收方来说,由于这一帧出错,就不能以正常的序号向它的高层递交数据,对其后发送来的N帧也可能都不能接收而丢弃。GO-BACK-N可能将已正确传送到目的地的数据帧再重传一遍,这显然是一种浪费。为了不出现二义性发方的窗口大小不得大于2n-1。

参考:http://www.cnblogs.com/hupp/p/4857093.html

 

7. Http的报文结构。

(1)HTTP请求报文
一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

常见TCP/IP面试题(边学边补充)_第3张图片

(2)HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。

 

 


8. Http的状态码含义。

常见的如下:

  • 200 请求已完成 2XX状态码均为正常状态码返回。
  • 401 未授权 请求要求进行身份验证。登录后,服务器可能会对页面返回此响应。
  • 403 已禁止 服务器拒绝请求。
  • 404 未找到 服务器找不到请求的网页。例如,如果请求是针对服务器上不存在的网页进行的,那么,服务器通常会返回此代码。 
  • 415 不支持的媒体类型 请求的格式不受请求页面的支持。
  • 500 服务器内部错误 服务器遇到错误,无法完成请求。

具体的可以参考:

  • https://www.cnblogs.com/operationhome/p/9242842.html
  • https://blog.csdn.net/xk1761299425/article/details/83745709


9. Http request的几种类型。


10. Http1.1和Http1.0的区别


11. Http怎么处理长连接。


12. Cookie与Session的作用于原理。


13. 电脑上访问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP。


14. Ping的整个过程。ICMP报文是什么。


15. C/S模式下使用socket通信,几个关键函数。


16. IP地址分类。


17. 路由器与交换机区别。

 

你可能感兴趣的:(常见TCP/IP面试题(边学边补充))