计算机网络--基础知识总结

一、网络层次

osi模型层次
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

osi物理层作用
进行从数据位到电信号的转换

osi会话层的作用
为网络上两个设备提供协议个方法,实现会话来相互通信

osi网络层的作用
负责数据路由,分组交换和网络拥塞控制。路由器在此层运行

TCP/IP网络模型
物理层,数据链路层,网络层,传输层,应用层

什么是数据封装
在通过网络传输信息之前将信息分解成更小可管理块的过程,将源和目标地址与奇偶校验附加到标题

在OSI参考模型方面,TCP/IP 应用层的等同层或多层是什么?
TCP/IP应用层实际上在OSI模型上具有三个对等体:会话层,表示层和应用层。

netstat
命令,查看有关连接当前TCP/IP设置的有用信息

二、协议

什么是RIP
路由信息协议,又路由器将数据从一个网络发到另一个网络。
将其路由表广播到网络中的所有其他路由器来有效管理路由数据,以跳数为单位确定网络距离

什么是DoS攻击
拒绝服务(DoS)是攻击者(黑客)试图阻止合法用户访问服务的任何类型的攻击。在 DoS 攻击中,攻击者通常会发送过多的消息,要求网络或服务器对具有无效返回地址的请求进行身份验证。

OSPF是什么
开放最短路径有限,使用路由表确定数据交换的最佳路径的链路状态路由协议

DHCP
动态主机配置协议,自动为网络上的设备分配IP地址,先检查任何设备尚未占用的可用地址,将其分配给网络设备

ARP
地址解析协议,将已知的IP地址映射到MAC层地址

匿名FTP是什么?
匿名FTP是授予用户访问公共服务器中的文件的一种方式。允许访问这些服务器中的数据的用户不需要识别自己,而是以匿名访客身份登录。

什么是ICMP?
ICMP是Internet控制消息协议。它为TCP/IP协议栈内的协议提供消息传递和通信。这也是管理由PING等网络工具使用的错误信息的协议。

DNS
域名系统(DNS)是建立在分布式数据库上的分层命名系统。该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何

什么是SMTP?
SMTP是简单邮件传输协议的缩写。该协议处理所有内部邮件,并在TCP/IP协议栈上提供必要的邮件传递服务。

三、地址

什么是子网掩码?

什么是私有IP地址
专用IP地址被分配用于内部网。这些地址用于内部网络,不能在外部公共网络上路由。这些确保内部网络之间不存在任何冲突,同时私有IP地址的范围同样可重复使用于多个内部网络,因为它们不会"看到”彼此。

什么是MAC地址
MAC媒介访问控制,可以唯一地标识网络上的设备。它也被称为物理地址或以太网地址。MAC地址由6个字节组成。

如何识别给定IP地址的IP类?
通过查看任何给定IP地址的第一个八位字节,您可以识别它是A类,B类还是C类。如果第一个八位字节以0位开头,则该地址为Class A.如果以位10开头,则该地址为B类地址。如果从110开始,那么它是C类网络。

** A,B和C类网络中的最大网络和主机是什么?**
对于A类,有126个网段和每个网段连接16,777,214个主机
对于B类,有16,384个网段和每个网段连接65,534个主机
对于C类,有2,097,152个网段和每个网段连接254个主机

IP地址的分类
  IP地址是指互联网协议地址,是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用,为特殊地址。

每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。A~E类地址的特点如下:

A类地址:以0开头,第一个字节范围:0~127;

B类地址:以10开头,第一个字节范围:128~191;

C类地址:以110开头,第一个字节范围:192~223;

D类地址:以1110开头,第一个字节范围为224~239;

E类地址:以1111开头,保留地址

四、设备

什么是链接?
指两个设备之间的连接,包括连接的电缆类型和协议

什么是骨干网?
骨干网络是集中的基础设施,旨在将不同的路由和数据分发到各种网络。

什么是节点?
值连接发生的点,可作为网络一部分的设备

什么是NIC
网络接口卡(网卡),每个网卡有自己的MAC地址,用于标记网络上的设备

什么是代理服务器
防止外部用户获取内部网络IP地址

五、面试题

Http和Https的区别
  Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:

  • 端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443;
  • 资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;
  • 开销:Https通信需要证书,而证书一般需要向认证机构购买;
    Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。

三次握手与四次挥手

(1). 三次握手(我要和你建立链接,你真的要和我建立链接么,我真的要和你建立链接,成功):

  • 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
  • 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
  • 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
    三次握手          
     (2). 四次挥手(我要和你断开链接;好的,断吧。我也要和你断开链接;好的,断吧):
  • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。此时TCP链接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接收。
  • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
    在这里插入图片描述

为什么TCP链接需要三次握手,两次不可以么,为什么?

为了防止 已失效的链接请求报文突然又传送到了服务端,因而产生错误。

客户端发出的连接请求报文并未丢失,而是在某个网络节点长时间滞留了,以致延误到链接释放以后的某个时间才到达Server。这是,Server误以为这是Client发出的一个新的链接请求,于是就向客户端发送确认数据包,同意建立链接。若不采用“三次握手”,那么只要Server发出确认数据包,新的链接就建立了。由于client此时并未发出建立链接的请求,所以其不会理睬Server的确认,也不与Server通信;而这时Server一直在等待Client的请求,这样Server就白白浪费了一定的资源。若采用“三次握手”,在这种情况下,由于Server端没有收到来自客户端的确认,则就会知道Client并没有要求建立请求,就不会建立链接。

TCP协议如何来保证传输的可靠性

TCP提供一种面向连接的、可靠的字节流服务。其中,面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信;而字节流服务意味着两个应用程序通过TCP链接交换8bit字节构成的字节流,TCP不在字节流中插入记录标识符。

对于可靠性,TCP通过以下方式进行保证:

  • 数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时TCP发送数据端超时后会重发数据;
  • 对失序数据包重排序:既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。TCP将对失序数据进行重新排序,然后才交给应用层;
  • 丢弃重复数据:对于重复数据,能够丢弃重复数据;
  • 应答机制:当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;
  • 超时重发:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;
  • 流量控制:TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP使用的流量控制协议是可变大小的滑动窗口协议。

Get与POST的区别

GET与POST是我们常用的两种HTTP Method,二者之间的区别主要包括如下五个方面:

(1). 从功能上讲,GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源;

(2). 从REST服务角度上说,GET是幂等的,即读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求对资源的改变并不是相同的;进一步地,GET不会改变服务器上的资源,而POST会对服务器资源进行改变;

(3). 从请求参数形式上看,GET请求的数据会附在URL之后,即将请求数据放置在HTTP报文的 请求头 中,以?分割URL和传输数据,参数之间以&相连。特别地,如果数据是英文字母/数字,原样发送;否则,会将其编码为 application/x-www-form-urlencoded MIME 字符串(如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII);而POST请求会把提交的数据则放置在是HTTP请求报文的 请求体 中。

(4). 就安全性而言,POST的安全性要比GET的安全性高,因为GET请求提交的数据将明文出现在URL上,而且POST请求参数则被包装到请求体中,相对更安全。

(5). 从请求的大小看,GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的。

TCP与UDP的区别
  TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议,它们之间的区别包括:

TCP是面向连接的,UDP是无连接的;

TCP是可靠的,UDP是不可靠的;

TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多的通信模式;

TCP是面向字节流的,UDP是面向报文的;

TCP有拥塞控制机制;UDP没有拥塞控制,适合媒体通信;

TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大;

从输入网址到获得页面的过程

(1). 浏览器查询 DNS,获取域名对应的IP地址:具体过程包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存、读取本地的Host文件和向本地DNS服务器进行查询等。对于向本地DNS服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(此解析具有权威性);如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(此解析不具有权威性)。如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或者迭代查询;
  
  (2). 浏览器获得域名对应的IP地址以后,浏览器向服务器请求建立链接,发起三次握手;

(3). TCP/IP链接建立起来后,浏览器向服务器发送HTTP请求;

(4). 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;

(5). 浏览器解析并渲染视图,若遇到对js文件、css文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源;

(6). 浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。

SQL 注入
  SQL注入就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

SQL注入攻击的总体思路:
  (1). 寻找到SQL注入的位置
  (2). 判断服务器类型和后台数据库类型
  (3). 针对不通的服务器和数据库特点进行SQL注入攻击

DNS域名系统工作原理

1.查询 浏览器、操作系统 缓存。
2.请求 本地域名服务器
3.本地域名服务器未命中缓存,其请求 根域名服务器。
4.根域名服务器返回所查询域的主域名服务器。(主域名、顶级域名,如com、cn)
5.本地域名服务器请求主域名服务器,获取该域名的 名称服务器(域名注册商的服务器)。
6.本地域名服务器向 名称服务器 请求 域名-IP 映射。
7.缓存解析结果

HTTP常见状态码

200 :请求成功,成功返回网页
301 :资源(网页等)被永久转移到其它URL
302 :资源(网页等)被临时转移到其它URL
304 :请求未修改、命中缓存
401 :未授权
403 :服务器拒绝请求
404 :请求的网页或资源不存在
500 :内部服务器错误,无法完成请求
502 :错误网关
503 :请求未完成,服务器临时过载或宕机
504 :网关超时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值