【计算机网络】知识体系构建以及常见考题汇总
1、思维导图
1.1、概念
网络:是一套完善体系、是一个联通计算机的网状集合
计算机网络定义:将 多个独立 计算机系统 之上的应用软件 利用通信设备以及线路 进行资源共享、数据通信、分布式处理、提高可靠性、负载均衡的完善系统是网络。
功能:资源共享、数据通信、分布式处理、提高可靠性、负载均衡
组成:软件(多个独立 计算机系统 之上的应用软件 )、硬件(通信设备以及线路)、协议(以什么方式/规范进行)
因为 组成结构 分为不同 工作部分 :详细如图
1、边缘部分:(独立计算系统搭建 软件 是通信主体、提供资源共享)资源共享的方法:1、C/S方式 2、P2P方式,详细见知识扩展;
2、核心部分 :(硬件(通信设备以及线路例如路由器)提供连通数据通信);
工作部分:
不同工作部分功能:
参考资料:
https://blog.csdn.net/qq_41286942/article/details/123767458
https://blog.csdn.net/weixin_43848614/article/details/125245063
https://blog.csdn.net/weixin_54937212/article/details/123721131
https://baijiahao.baidu.com/s?id=1742445950506020281&wfr=spider&for=pc
https://blog.csdn.net/qq_54151955/article/details/123611608
知识扩展:
(1)独立计算机 资源共享 的方法:1、C/S方式 2、P2P方式
服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。
服务器负责数据的管理,客户机负责完成与用户的交互任务。
P为英文Peer to Peer的简写,意为对等网络,
P2P技术不像传统计算机网络技术,中心服务器并不是必须的。
通过互联网直接交互,每台终端既充当着服务器又充当着客户端的角色即终端。
2、重点部分
2.1、TCP/IP 网络模型&OSI
两种模型功能对比
每层对应的协议以及设备:
(注:综合百度查询,以及网卡功能分析,网卡具有网卡驱动,一定属于网络接口层;一半属于物理层,一半属于属于数据链路层)
(注:Ping的工作协议在应用层,不涉及数据传输工作,所以用不到运输层的TCP/UDP协议,只需要网络/网际层的 ICMP协议(面向无连接的协议,用于传输控制信息包括:报告错误,交换受限控制和状态信息等))
具体交互过程图示
数据报文:展现是IP头+TCP头+应用数据(网络层结构)
参考资料:
https://blog.csdn.net/zhanduo0118/article/details/112310536
mac与IP的重要性
http://t.zoukankan.com/snooker-p-9678860.html
2.2、URL网址到网页显示?以小林coding为主,补充资料为辅
HTTP与HTTPS区别
(超文本传输协议)HTTP(明文),端口80
(安全套接字层超文本传输安全协议)HTTPS(SSL/TLS依靠证书来验证服务器的身份+HTTP协议)端口443
(2)采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织ca权威机构申请
(3)传输证书(公钥+证书信息)
(4)客户端解析证书,是有客户端的TLS来完成的,首先会验证公钥是否有效
(5、6)随机生成的数作为私钥,用公钥加密私钥(即随机数)传给服务器端,服务器端用公钥解密私钥(即随机数)
(7、8)那么用私钥(即随机数)作为公钥加密传输信息给客户端,客户端可用私钥(即随机数)解密信息
注:其中用的都是对称加密方法:相同密钥加密和解密;对应的是非对称加密方法
https://blog.csdn.net/qq_35642036/article/details/82788421
POST 和 GET的 区别
HTTP的底层传输层协议是TCP/IP,GET/POST都是使用TCP链接,都是一种传递数据方式;GET可以加Request Body ,POST也可以在URL中添加参数。实现是可以的。
HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET、POST、PUT、DELETE
GET产生一个TCP数据包;POST产生两个TCP数据包。但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。1、浏览器会把http header和data一并发送出去,服务器响应200(返回数据)。2、浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
GET把参数包含在URL中,POST通过request body传递参数,不会被用户看见
get是从服务器上获取数据,post是向服务器传送数据。
get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
https://blog.csdn.net/song854601134/article/details/111053528
域名解析DNS服务器
DNS域名系统。将域名和IP地址相互映射的一个分布式数据库,DNS使用UDP端口53。
因为IP地址记起来不方便
域名的层级关系类似一个树状结构:
根 DNS 服务器(.)
顶级域 DNS 服务器(.com)
权威 DNS 服务器(server.com)
IP(多网卡)->MAC(ARP)->网卡->交换机->路由器
IP包封装需要填写源地址IP、已知目标地址IP
当存在多个网卡时,在填写源地址 IP 时,就需要判断到底应该填写哪个地址。这个判断相当于在多块网卡中判断应该使用哪个一块网卡来发送包。
查看系统路由表,通过每个网卡的子网掩码 和 目标ip 进行与运算的出 对应的网卡的ip地址(因为同一网段子网掩码一样,那么网络号一致;用目标地址ip和子网掩码得出目标ip的网络号,只有在同一个网段才能发送消息)
如果没有匹配的网卡,后续就把包发给默认网关路由器,Gateway 即是路由器的 IP 地址
填写目的ip的mac如何获取:
https://baike.baidu.com/item/ARP/609343?fr=aladdin
1、ARP查询本机路由表信息:确定访问目的主机的所需转发的ip是xxx;
2、在本机ARP缓存中IP地址和MAC地址的对应关系
3、如果本机没有映射,将询问转发ip的mac地址,然后将ARP请求帧广播到本地网络上的所有路由器,找到有这个ip的路由器,然后返回自己的mac地址
网卡驱动属于数据链路层:获取网络包之后,会将其复制到网卡内的缓存区中,接着会在其开头加上报头和起始帧分界符,在末尾加上用于检测错误的帧校验序列。
网卡属于物理层,将数字信号二进制数转化为电信号,在网线传输
交换机属于二层设备(数据链路层)。里的模块将电信号转换为数字信号。只做数据包的缓存和转发到对应端口
交换机的端口不具有 MAC 地址;只维护一个mac 和端口对应的表,不对mac头进行修改
交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。
路由器属于三层设备(网络层),路由器的各个端口都具有对应的 MAC 地址和 IP 地址
路由器就会去掉包开头的 MAC 头部,然后会根据 MAC 头部后方的 IP 头部中的内容进行包的转发操作。
转发操作,查询路由表:目标ip和子网掩码做与运算,找到转发的网络号(子网),
如果有网关ip,则未到终点,继续找路由器转发,封装目标ip,然后找到对应接口ethx(mac地址)封装包发送出去。
如果没有网关ip,则网络号对应的就是网关,其下都是主机,那么封装的目标ip,然后找到对应接口ethx(mac地址)封装包发送出去。
整个传输过程中,IP数据报头部中原地址ip和目标地址ip都不会发生变化。