计算机网络面试复习

OSI是一个开放性的通信系统互连参考模型,它是一个定义得非常好的协议规范 (7层协议模型)只是理论框架 没有实现

1、物理层 传输比特流 (网卡,网线,集线器,中继器,调制解调器)

2、数据链路层 物理寻址,将原始比特流转变成逻辑传输路线,即 帧 (网桥,交换机)

3、网络层 数据成为 数据报文 (路由器)

4、传输层 协议有 TCP (稳定安全) UDP (不安全)将数据分割为较小的数据包 进行传输

5、会话层 建立通信,自动签收包等

6、表示层 解决不同操作系统的通信问题,如加密解密、转换翻译、压缩解压缩

7、应用层

四层协议 TCP/IP

1、应用层: 应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

2、传输层: 在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

3、网络层: 负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

4、网络接口层(物理层以及数据链路层): 接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

TCP三次握手

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

三次握手面试回答:

第一次握手指的是 客户端向服务器发送一个syn包,携带seq序号为x到服务器,并进入SYN_SEND状态,等待服务器确认。

第二次握手指的是:服务器收到客户端请求,确认客户端请求,发送 syn+ack包,序号为y,ACK为 x+1

第三次握手指的是:客服端收到服务器确认,发送syn+ack包给服务器代表确认链接。此时,seq为x+1,ACK为y+1

SYN超时

服务器收到客户端的SYN,回复SYN-ACK的时候未收到ACK确认,服务器不断重试向客户端发送ACK,直至超时。

建立连接后:保活机制 (确保是否在链接,否则中断连接

TCP四次挥手

第一次挥手:客户端发送一个FIN并进入FIN_WAIT1状态

第二次挥手:服务器接收到客户端发送的FIN并发送ACK,此时服务器进入CLOSE_WAIT状态;客户端收到被动关闭方的ACK后,进入FIN_WAIT2状态

第三次挥手:服务器发送一个FIN并进入LAST_ACK状态

第四次挥手:客户端收到被动关闭方发送的FIN并发送ACK,此时客户端进入TIME_WAIT状态,经过2MSL时间后关闭连接;服务器收到主动关闭方的ACK后,关闭连接

为什么有TIME_WAIT状态

确保有足够的时间让对方收到ACK包
避免新旧链接数据混乱

为什么需要四次握手?

因为TCP连接是全双工的连接,因此服务器以及客户端各都都需要一个FIN请求以及一个ACK请求,2+2=4,看起来像4次挥手

UDP的特点(传输快,无重传机制)

1、面向非连接,不维护连接状态,支持同时向多个客户端传输相同信息
2、数据包报头只有8字节,额外开销小
3、数据传输不可靠

HTTP特性:

无连接:是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

无状态:服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器

浏览器输入URL的访问,所经历的步骤:
1、域名解析,找到ip
2、tcp三次握手,建立连接
3、发送http请求,获取数据
4、返回数据,渲染页面
5、释放连接

http的Get请求和Post请求的区别

Get请求将请求参数放置URL中,Post放在报文体中

Get请求可以被缓存、被存储,而Post请求不行

Get请求安全性较差,因为所发送的数据是 URL 的一部分。POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。但是post请求参数放在body中也是明文显示

Get请求向 URL 添加数据;URL 的长度是受限制的。而Post请求参数大小无限制

Cookie和Session的区别

Cookie由服务器发送客户端特殊的信息,以文本形式存在客户端。用Cookie识别用户。

Session是保存在服务器上的。客户端保存SessionId实现方式:cookie实现 URL回写实现

Session相对Cookie更加安全

若考虑服务器负担,Cookie比Session更加轻量级

Http和Https的区别

Https需要CA申请证书,需要费用
Https密文传输,Http明文传输
Https默认使用443端口,Http使用80端口
Https=Http+加密+认证+完整性保护,安全性比Http高

DoS攻击(SYN泛洪攻击)

其实最常用的一个手段就是优化主机系统设置。比如降低SYN timeout时间,使得主机尽快释放半连接的占用或者采用SYN cookie设置,如果短时间内收到了某个IP的重复SYN请求,我们就认为受到了攻击。我们合理的采用防火墙设置等外部网络也可以进行拦截。

基础知识

TCP报文头(20字节,传输层)

源端口 以及目的端口 各占2字节

Sequence Number 占4字节 报文段的序号

ACK Number 期望下次收到的报文号 例如 本次发送 序号为201开始 数据长度为100,则ack为 201+100=301

TCP Flags

URG: 紧急指针标志

PSH: push标志

RST: 重置连接标志

SYN: 同步序号,用于建立连接过程

FIN: 完成标志,用于释放连接

ACK: 确认序号标志

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值