计网笔记-计网总结-计网复习提纲-计网部分面经

计网部分面经

网络层

​ ARP地址解析协议,ARP攻击协议工作前提,其所在的网络是一个善良的网络,每台主机应答时使用的都是真实身份,但ARP应答的IP地址和MAC地址信息是可以伪造,即ARP欺骗。

怎么知道应该在MAC帧首部填入什么硬件地址

  • 采用地址解析协议ARP,ARP协议划归网络层
  • 网络层使用IP地址但在链路上实际传输数据最终使用硬件地址
  • 解决办法:每台主机设有ARP高速缓存,里面存有本局域网上各主机和路由器的IP地址到硬件地址映射表
  • ARP对高速缓存中每一个映射地址项目都设置生存时间,超过生存时间的项目直接删除,因为防止某个主机更换硬件地址(即网络适配器)后,其他主机找不到它
  • 如何得到IP地址相应硬件地址:通过广播ARP请求分组,对应主机收到后回复ARP响应分组
  • ARP是解决同一个局域网上主机或路由器的IP地址和硬件地址映射问题
  • 你要转发到另外网络上的主机,直接发送往路由器,不需要知道远程主机的硬件地址

​ 什么是ICMP协议,它的作用是什么?

​ 它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、时间戳、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

网络互连中间设备

  • 物理层中间设备叫转发器(集线器)
  • 数据链路层中间设备 网桥或桥接器(交换机)
  • 网络层中间设备 路由器
  • 网络层以上中间设备 网关

​ 路由器和交换机的区别

  • 工作层次不一样,交换机工作在数据链路层,路由器工作在网络层
  • 寻址依据不一样,交换机基于MAC地址寻址,路由器基于IP地址寻址
  • 转发数据对象不同,交换机转发数据帧,路由器转发分组报文(IP数据报
  • 交换机分割冲突域,不划分广播域,即隶属于一个交换机的主机属于一个局域网,通过路由器连接的主机可能属于不同广播域,所以路由器可以划分广播域
运输层
  • SYN(synchronous建立联机)
  • ACK(acknowledgement 确认)
  • PSH(push传送)
  • FIN(finish结束)
  • RST(reset重置)
  • URG(urgent紧急)Sequence number(顺序号码)
  • ack Acknowledge number(确认号码)
  • seq (Sequence 序号)
请你说明一下,TCP协议的4次握手。

​ 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。是当一方完成它的数据发送任务后就能发送一个FIN报文来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

​ TCP的连接的拆除需要发送四个报文,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

​ (1)客户端A发送一个FIN报文,用来关闭客户A到服务器B的数据传送。

​ (2)服务器B收到这个FIN,它发回一个ACK报文,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

​ (3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

​ (4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1,然后等待2MSL时间才关闭连接。

请你解释一下TCP为什么可靠一些

​ 三次握手,超时重传,滑动窗口,流量控制,拥塞控制。

TCP三次握手建立连接
应用层
http请求中的304状态码

​ 304 是服务端对客户端有缓存到没有被服务器修改过的请求资源的一种响应。

	在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是客户端请求的资源,同时有一个Last-Modified的属性标记此文件在服务器端最后被修改的时间。客户端第二次请求此URL时,根据HTTP协议的规定,浏览器会向服务器传送If-Modified-Since报头,询问该时间之后文件是否有被修改过。两个时间戳的格式如下:

	Last-Modified:Last-Modified : Fri , 12 May 2006 18:53:33 GMT

	If-Modified-Since : Fri , 12 May 2006 18:53:33 GMT

	如果服务器端的资源没有变化,则自动返回 HTTP 304(==Not Changed==)状态码,==内容为空==,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

​ 对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,不会包含 Last Modified 信息,浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

HTTP状态码502、504

​ 502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应

​ 504:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应

http请求报文的方法
  • GET 读取URL标志信息
  • POST:给服务器添加信息(提交表单)
  • PUT:给指明URL存储一个文档
  • DELETE:删除指定URL标志的资源
  • 等等 P272
http1.1和1.0的区别
  • http/1.0每一次请求一个文档都需要2倍RTT,链接下载后就释放TCP连接,HTTP/1.1使用持续连接,与服务器发送响应后一段时间仍保持连接,在使用流水线方式请求所有资源只需要1个往返时间RTT,非流水线方式每访问一个对象需要1倍往返时间(与下方一样)

  • 长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。

  • 缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

  • 带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

  • 错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

  • Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

http和https的区别
  1. https协议要申请证书到ca,需要一定经济成本;
  2. http是明文传输,https是加密的安全传输;
  3. 连接的端口不一样,http是80,https是443;
  4. http连接很简单,没有状态;
  5. https是ssl加密的传输,身份认证的网络协议,相对http传输比较安全。
浏览器从接收到一个URL,到最后展示出页面,经历了哪些过程。

​ 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面

请你说明一下,SSL四次握手的过程

1、 客户端发出请求

首先,客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。

2、服务器回应

服务器收到客户端请求后,向客户端发出回应,这叫做SeverHello。

3、客户端回应

客户端收到服务器回应以后,首先验证服务器证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不一致、或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

4、服务器的最后回应

服务器收到客户端的第三个随机数pre-master key之后,计算生成本次会话所用的"会话密钥"。然后,向客户端最后发送下面信息。

(1)编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。

(2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。

至此,整个握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用普通的HTTP协议,只不过用"会话密钥"加密内容。

纯手打不易,希望点赞支持

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值