计算机网络-面经题整理

网络模型相关

1.OSI七层协议模型

从底向上:
物理层、链路层、网络层、传输层、会话层、表示层、应用层

2.TCP/IP五层协议模型

从底向上:
物理层、链路层、网络层、传输层、应用层

3.TCP/IP四层协议模型及各层有哪些协议?

从底向上:
数据链路层
网络层:IP
传输层:TCP、UDP
应用层:HTTP、DNS、SMTP、FTP

4.七层网络协议和四层网络协议的区别?

1.四层网络协议的应用层处理七层网络协议中会话层、表示层、应用层的功能
2.四层网络协议传输层不能总是保证在传输层可靠地传输数据包,因为其还提供一项名为UDP的选择,UDP不能保证可靠的数据包传输,而七层模型可以做到。


TCP UDP相关

1.TCP三次握手 四次挥手

TCP三次握手

image.png

1.客户端向服务器发送TCP连接请求数据包,其中同步标志SYN=1,ACK=0,初始序列号为x(等待回复)
2.服务器收到请求后,发回连确认包。SYN=1,ACK=1,ack=x+1,初始序列号为y(收到请求,等待回复)
3.客户端收到确认报文后,发送确认数据包。ACK=1,ack=y+1,序列号为x+1。完成三次握手
三次握手是为了建立可靠的通信信道,双方都确认自己和对方的发送和控制都是正常的。SYN=1表示这是个连接请求或连接接受报文,不携带数据
为什么不能变成两次?
可能会出现已失效的连接请求报文
突然又传到了服务器,服务器误认为是正常的连接请求,直接发送连接确认报文,导致TCP建立,浪费资源,因而产生错误。
TCP四次挥手

image.png

TCP连接是全双工的,因此每个方向都必须单独关闭
1.客户端发送连接请求释放报文,FIN=1,seq=u,客户端进入FIN-WAIT-1状态
2.服务器收到请求,发送确认报文。ACK=1,seq=v,ACK=u+1;
3.服务器发送完数据后,向客户端发送请求释放连接报文,FIN=1,ACK=1,seq=w,ack=u+1
4.客户端收到请求后,发送确认报文,ACK=1,seq=u+1,ack=w+1,客户端进入TIME-WAIT状态,等待2MSL后关闭,服务器收到确认后关闭
TIME_WAIT状态为什么要等待2MSL:
因为第四次的确认报文可能丢失,这个状态是用来重发可能丢失的ACK报文
为什么服务器会有CLOSE-WAIT?
因为服务器可能有数据未发送完毕,这段时间是继续发送数据的。
如果建立连接之后出现故障怎么办?
TCP有个保活计时器,通常设置为2小时,两小时内没有收到客户端发送的数据,服务器发送探测报文,每75s发送一次,10次探测报文没有反应,认为出现故障,关闭连接
TIME_WAIT存在的两个理由
1.可靠的实现TCP全双工连接的终止
2.允许老的重复的分节在网络上的流逝

2.TCP的连接状态有哪些?

TCP握手
LISTEN(服务器)
SYN-SENT(客户端)
SYN-RECIEVED(服务器)
ESTABLISHED
TCP挥手
客户端:
ESTABLISHED
FIN-WAIT-1
FIN-WAIT-2
TIME-WAIT
CLOSED
服务器:
ESTABLISHED
CLOSE-WAIT
LAST-ACK
CLOSED

3.TCP UDP区别

TCP
提供可靠的,面向连接的运输服务。传输数据前必须三次握手建立连接,数据传输结束后,四次挥手释放连接,在数据传递时,有确认应答、超时重传、滑动窗口、拥塞控制等机制保证数据传输的可靠性。适用场景:网络通信质量有很高要求的地方,如文件传输,邮件发送,远程登陆等
UDP
无连接,不提供可靠交付。
适用场景:一般用于即时通信:语音、视频、直播

4.TCP可以提供哪些可靠传输

三次握手
四次挥手
连续ARQ
拥塞控制

5.拥塞控制和流量控制

拥塞控制:
防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载,是一个全局性的控制
拥塞控制的一些方法:
1.慢启动:设置拥塞控制窗口大小为1,每收到一个ACK,窗口大小+1;每过1RTT,窗口大小*2,呈指数增长
2.拥塞避免:当拥塞窗口达到一个阈值时,窗口大小不再呈指数上升,以线性上升,避免增长过快导致网络拥塞。
无论是在慢启动还是拥塞避免阶段,只要发送方判断网络出现拥塞(没有收到确认ACK)就将拥塞窗口设置为1,阈值为拥塞时发送窗口的一半,执行慢启动算法
3.快重传:当发送方连续收到三个重复确认时,就立即重传对方尚未收到的报文段,并执行快恢复算法
4.快恢复:将窗口设置为ssthresh的大小,然后执行拥塞避免算法

流量控制:
点对点通信量的控制,主要是抑制发送端发送数据的速率,以便接收端来得及接收

6.TCP滑动窗口

TCP通过滑动窗口的概念来进行流量控制,抑制发送端发送数据的速率,以便接收端来得及接收。
窗口:对应一段发送者可以发送的字节序列。这个序列是可以改变的,接收端发给发送端自己的接受能力。然后发送端根据已确认接收的序列号和接收能力滑动窗口,一下子全部发送,等待接收端确认

7.TCP、IP协议栈在哪一层

TCP:传输层
IP:网络层


HTTP、HTTPS相关

http和https的区别

1.http协议运行在tcp上,传输的是明文;https运行在ssl上,传输的是密文
2.http连接简单,没有状态;https是ssl加密的传输,身份认证的网络协议,更安全
3.https协议需要到CA申请证书
4.http连接端口是80;https连接端口是443

http报文

1.请求报文:请求行+请求头部+请求正文
2.响应报文:状态行+响应头部+响应正文

http协议是加密的吗?

不是

http状态码

1xx:指示信息-表示请求已接收,继续处理
2xx:成功-表示请求已被成功接收、理解、接受
3xx:重定向-信息不完整需要进一步补充
4xx:客户端错误-请求有语法错误或请求无法实现
5xx:服务器错误-服务器未能实现合法的请求

http长连接

在一个TCP连接上可以传送多个请求和响应

https的加密方式,SSL连接过程

https在传统的http和tcp之间加了一层用于加密解密的ssl层
采用对称加密和非对称加密结合的方式来保护浏览器和服务端之间的通信安全。
对称加密:加密和解密都是同一个密钥。
非对称加密:密钥成对出现,分为公钥和私钥,公钥和私钥之间不能互相推导,公钥加密需要私钥解密,私钥加密需要公钥解密
SSL请求过程:

image.png

1.浏览器向服务器请求网址https://www.baidu.com
2.服务器发送非对称加密的公钥A给浏览器
3.客户端解析证书(证书无效弹出警告框)
4.客户端生产随机值,作为对称加密的密钥B
5.客户端使用服务器返回的公钥A对自己生产的对称加密密钥B进行加密,得到密钥C
6.客户端将密钥C发送给服务器
7.服务器用自己的私钥D对接收的密钥C进行解密得到对称密钥B
8.将信息和密钥B混合在一起进行对称加密
9.将加密的内容发送给客户端
10.客户端用密钥B解密信息

输入url解析过程

浏览器输入url并回车的过程以及相关协议
1.根据域名查询域名的IP地址,DNS解析
2.TCP连接
3.发送HTTP请求
4.服务器处理请求并返回HTTP报文
5.浏览器解析渲染页面
6.连接结束
不是

DNS解析过程

浏览器缓存-系统缓存(hosts文件)-路由器缓存-本地域名服务器解析域名-根服务器查询-如果还是没有命中就返回顶级域名服务器IP给本地DNS服务器。
本地DNS服务器请求顶级域名服务器解析,没有命中就返回主域名服务器给本地DNS服务器。本地DNS服务器请求主域名服务器解析域名,将结果返回给本地域名服务器。本地域名服务器缓存结果并反馈给客户端

修改host会不会导致dns更改(疑问?)

session和cookie的区别和联系

1.cookie数据存放在客户端;session数据存放在服务器
2.cookie不可靠,不重要的信息放在cookie中;session可靠,登录等重要信息放在session中
3.cookie性能比较好;session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器性能

应用层有那些协议?

DNS、HTTP、SMTP、FTP

SMTP,FTP端口号

SMTP:25
FTP:20/21

http请求get和post区别

get:
从指定资源请求数据
post
向指定资源提交要被处理的数据
状态码
1xx:指示信息-表示请求已接收,继续处理
2xx:成功-表示请求已被成功接收、理解、接受
3xx:重定向-信息不完整需进一步补充
4xx:客户端错误
5xx:服务器端错误
HTTP请求报文结构
请求行,请求头部,请求正文
HTTP响应报文结构
状态行,响应头部、响应正文

转发和重定向的区别:

转发
服务器行为
重定向
客户端行为

HTTP1.0、1.1、2.0区别

HTTP1.1与1.0的区别
1.HTTP1.1默认开启长连接,在一个TCP连接上可以传送多个HTTP请求和响应,而1.0不支持长连接
2.缓存处理也不一样
3.Host头处理也不一样
4.1.1只允许请求资源的某个部分
HTTP2.0和HTTP1.x相比的新特性
1.新的二进制格式:1.x解析是基于文本的,而2.0的协议解析采用二进制格式
2.多路复用
3.head压缩
4.服务器推送

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • 1.TCP报头格式 UDP报头格式 TCP报头格式 UDP报头格式 具体的各部分解释看 TCP报文格式详解 - ...
    杰伦哎呦哎呦阅读 2,451评论 0 5
  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,405评论 0 2
  • 1. OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层 (7层):物理层、数据链路层、...
    iCaptain阅读 2,466评论 0 4
  • 前言:不奋斗,你的才华如何配上你的任性;不奋斗,你成长的脚步如何赶上老去的速度;不奋斗,世界那么大,你靠什么去看看...
    玲儿油画工作室阅读 1,488评论 1 4
  • 2018.11.29.农历2018年10月22日 星期4晴天 1.扎根三年,坚持早起 YY频道学习第358天。 2...
    _紫霞阅读 150评论 0 0