计算机网络常见的面试题

OSI,TCP/IP,五层协议的体系结构,以及各层协议
在这里插入图片描述

  • 第一层 :物理层(Physical Layer)
    机械、电子、定时接口通信信道上的原始比特流传输
  • 第二层 :数据链路层(Data Link Layer)
    物理寻址、同时将原始比特流转变为逻辑传输线路
    -第三层 : 网络层
    控制子网的运行,如逻辑编址、分组传输、路由选择
  • 第四层 :传输层
    接受上一层的数据,在必要的时候把数据进行分割,并将这些数据交给网络层,且保证这些数据段有效到达对端
  • 第五层 :会话层
    不同机器上的用户之间建立及管理会话
  • 第六层 :表示层
    信息的语法语义以及它们的关联,如加密解密、转换翻译、压缩解压缩
  • 第七层 :应用层
    将用户的操作通过应用程序转换成为服务,并匹配一个相应的服务协议发送给传输层。各种应用程序协议,如HTTP,FTP,SMTP,POP3

请简述TCP

  • 面向连接的、可靠的、基于字节流的传输层通信协议
  • 将应用层的数据流分割为报文段并发送给目标节点的TCP层
  • 数据包都有序号,对方收到则发送ACK确认,未收到则重传
  • 使用校验和来检验数据在传输过程中是否有误

说说TCP的三次握手
“握手”是为了建立连接
在这里插入图片描述
第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认

第二次我握手:服务器收到SYN包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(确定的)状态,完成三次握手

说说TCP的四次挥手
挥手是为了终止连接
在这里插入图片描述
1 . 第一次挥手:Client发送一个FINSH数据包,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态

2 .第二次挥手:Server收到FINSH数据包后,发送一个ACK给Client,确认序号为收到序号+1,Server进入CLOST_WAIT状态

3 .第三次挥手:Server发送一个FINSH数据包,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态

4 .第四次挥手:Client收到FINSH数据包后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入到CLOSED状态,完成四次挥手

说说UDP

  • 面向非连接
  • 不维护连接状态,支持通话向多个客户端传输相同的消息
  • 数据包报头只有8个字节,额外开销小
  • 吞吐量只受数据生成速率、传输速率以及机器性能
  • 尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表
  • 面向报文,不对应用程序提交的报文信息进行拆分或者合并

TCP和UDP的区别

  • TCP是有连接的,UDP是无连接的
  • TCP是可靠的,UDP是不可靠的
  • TCP 的速度比较慢,UDP的速度比较快(不需要创建连接)
  • TCP属于重量级的,UDP属于轻量级的(体现在数据包头的大小,TCP是20个字节,UDP是8个字节)

TCP的滑动窗口
TCP使用滑动窗口做流量控制和乱序重排

  • 保证TCP的可靠性
  • 保证TCP的流控特性

TCP和UDP的应用场景
==TCP:==当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。
==UDP:==当强调传输性能而不是传输的完整性时, 要求网络通讯速度能尽量的快。如:QQ语音 QQ视频等

在浏览器中输入url地址到显示主页的过程,整个过程会使用哪些协议?
在这里插入图片描述

  • DNS解析

  • TCP连接发送

  • HTTP请求

  • 服务器处理请求并返回HTTP报文

  • 浏览器解析渲染页面

  • 连接结束

     							***帅气的远远啊***
    
发布了87 篇原创文章 · 获赞 79 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41585840/article/details/105063268