保研资料:计算机网络

基本知识

计算机网络:计算机技术和通信技术相结合的产物,独立自治、相互连接的计算机集合。分为硬件、软件、协议;广域网城域网局域网;广播、点对点;资源子网、通信子网。
电路交换、报文交换、分组交换。
拓扑结构:总线型(信息传输不存在路由和转发的问题,总线长度和连接的设备数受到限制,容易冲突)、星形、环形、网状,树状,混合型。(分析点:拓扑结构简单、健壮性好、便于管理、成本低)
指标:速率、带宽、吞吐量、时延。
计算机网络的体系结构:计算机网络的各个层次及其协议的集合。
码元:数字信号的计量单位。
奎纳斯定理:理想低通信道中,为了避免码间串扰(高频分量不能通过信道),极限码元传输速率为2W波特。
香农定理:带宽受限且有噪声干扰时的极限数据传输数率。Wlog(1+信噪比)。
无线介质:无线电波(WLAN)、微波、红外线、激光。
ALOHA协议:发送前不进行监听。
路由转发算法:1.检查特定主机路由;2.进行按位与,找到下一跳;3.转发给默认路由。
RIP使用UDP的520号端口;OSPF:网络层协议,仅链路状态变化时,才洪泛;OSPF划分区域、OSPF 对于不同类型的业务可计算出不同的路由;BGP是基于TCP的应用层协议,除了首次外,只交换有变化的部分;
端口号:熟知端口号、登记端口号(供没有熟知端口号的应用程序使用)、客户端端口号。

分层原则

原则:不同等级的抽象建立一层、功能相近的分在一层、每层的功能明确、边界信息要尽量少、层次数量应适当。
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
优点:各层之间是独立的、灵活性好、结构上可分割、易于实现和维护、有利于标准化工作;
缺点:降低效率;功能重复出现。
HTTP与HTTPS
安全性:HTTP不安全,因为它以明文形式传输数据,容易遭受中间人攻击。HTTPS则通过SSL/TLS加密数据包,提高了传输过程的安全性;
端口号:HTTP通常使用80端口,而HTTPS使用443端口;
性能:HTTP的页面响应速度通常比HTTPS快,因为HTTPS在建立连接时需要更多的步骤,包括SSL握手,这会增加延迟;
证书:HTTPS需要使用CA(证书颁发机构)颁发的SSL证书来验证服务器的身份,而HTTP不需要;

七层模型

OSI开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI)。分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
相似之处:都分层且相似、都基于独立的协议栈、都可解决异构网络互联。
不同:OSI通用性良好,适合描述各种网络;OSI在网络层支持无连接和面向连接的通信,传输层仅面向连接;TCP没有区分物理层和数据链路层。OSI 协议体系结构概念清楚,理论也较完整,但它过于复杂没有得到商业应用。
每一层的协议如下:

物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)

数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)

网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)

传输层:TCP、UDP、SPX

会话层:NFS、SQL、NETBIOS、RPC

表示层:JPEG、MPEG、ASII

应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

物理层:负责如何将计算机连接到通信媒体上。

数据链路层:处理相邻节点的数据传输。(提供物理地址寻址、数据的成帧(分段传输,错误隔离,误差校验,数据恢复)、流量控制、差错控制(处理损坏、丢失、重复、乱序。方法:错误检测、编号确认、自动重复请求、超时重传)、链路管理、透明传输等功能)
LCC子层:向上屏蔽底层网络差异。提供三种服务。
介质访问控制子层:局域网中各结点是对称的,并支持广播,需要多点平衡配置。对共享信道的访问管理。分为静态分配、动态分配(竞争、无冲突<如令牌环>、有限竞争<在低负载下用竞争法获得较短的延迟,在高负载下用无冲突技术获得良好的信道效率>)。

网络层:任意节点的数据传输,负责数据包从源到宿的传递。(分组交换、路由转发、拥塞控制、流量控制、网际互连)

传输层:提供端到端的报文传递,服务点的寻址、拆分和组装、连接控制。

会话层:建立、管理和终止会话(会话协议数据单元SPDU)

表示层:对数据进行翻译、编码和变换。(表示协议数据单元PPDU)

应用层:处理用户的数据和信息、完成用户所希望的实际任务。
img.png
img_1.png
img_2.png
img_3.png
img_4.png

不同网络设备

三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
DTE(Data Terminal Equipment)是具有数据处理能力及发送和接收数据信息能力的设备。
DCE(Data Circuit-Terminating Equipment)是能够通过网络发送和接收模拟或数字信号形式数据的设备。
网桥:过滤通信量、扩大了物理范围、可连接不同MAC层的局域网。
以太网交换机:即插即用。

协议选择

HDLC:0比特填充
IEEE 802:违禁编码法、曼彻斯特编码。以太网对于检查出的无效 MAC 帧简单丢弃,无需重传。
802.11 停止等待协议
滑动窗口协议:循环重复使用有限的帧序号、接收窗口驱动发送窗口的转动、累积确认。

字段

Ipv4长度字段:20-60字节。
Ipv6长度字段:不包含头部的长度。
UDP首部长度:全部长度。
TCP数据偏移:首部长度,20-60字节。MSS:TCP的数据字段最大长度

编码方式

数字信号:归零编码、非归零编码、反向归零编码、曼彻斯特编码、差分曼彻斯特编码;
模拟信号:幅移键控、频移键控(抗干扰强)、相移键控、正交调幅。
基带信号:来自信源的信号,未进行频谱搬移和变换。包含有较多的低频成分,甚至有直流成分。
带通信号:使用载波信号传输基带信号的过程称为调制(modulation)。
码分复用:复用时根据码型结构的不同来实现信号分割的多路复用,用户使用同一频率,占用相同的带宽。
循环冗余校验码常用于数据链路层。通信双方约定一个生成多项式G(x),最高阶为m。

同步异步

同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。
异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。

CSMA/CD

CSMA/CA

有连接有确认。

IP

IP层引入ICMP来进行流量控制、差错控制,并将错误或是信息交给上层处理。
拥塞控制:开环控制、闭环控制(显式反馈:拥塞点发警告;隐式反馈:源端主动判断)。方法:预分配缓冲区、丢弃包、限制网内包数量。
服务质量保证方法:过度配置、流量整形(调节网络数据流平均速率和突发性速率)、数据包调度。
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
早期IP 地址的设计确实不够合理:地址空间的利用率有时很低、两级的 IP 地址不够灵活。提出了划分子网(缩小广播域、充分利用地址资源。问题:仍然浪费、路由表爆炸)、CIDR、NAT等。

DHCP

为什么固定用户端端口号:DHCP服务器不知道客户端IP地址,它知道的是DHCP客户端的端口号。因此,DHCP服务器以等于10000的客户端端口号广播分组。如果所有DHCP客户端都没有为DHCP应用程序分配端口号10000,则可能有些客户端正在端口号10000上运行另一个应用程序。来自DHCP服务器的数据包将被传递到错误的客户端应用程序。因此,DHCP最好使用众所周知的端口号。

TCP

TCP可进行分段(按MSS)和组合、拼接和分割:假设有一份数据,较大,且在TCP层不分段,如果这份数据在发送的过程中出现丢包现象,TCP会发生重传,那么重传的就是这一大份数据(虽然IP层会把数据切分为MTU长度的N多个小包,但是TCP重传的单位却是那一大份数据)。
TCP的可靠传输:可靠传输是一种确保数据在通信过程中不丢失、不损坏且按正确顺序到达目标地的机制。关键技术:序号与确认、超时重传、滑动窗口(跟踪发送字节的状态)、校验和。
TCP的流量控制:滑动窗口。
TCP的拥塞控制:慢启动、冲突避免、快重传、快回复。
四种计时器:重传计时器、持久计时器(窗口为0时)、保活计时器(长连接场景,例如无数据传输时发送探测报文)、关闭状态计时器。
UDP 适用于实时性好的应用,如视频通话、直播、在线游戏、DNS查询等。

TCP与UDP的区别

(1)TCP(传输控制协议)是一种面向连接的、可靠的(有序,无差错,不丢失,不重复)、基于字节流的传输层协议。UDP(用户数据报协议)是一种无连接的、不可靠的、基于数据报(一次一个报文,既不合并,也不拆分)的传输层协议。
(2)TCP由于需要连接、要保证可靠性,通常更慢;UDP 不需要连接(不需要保存缓存、参数、序号等)、不需要保证可靠性,通常更快,首部开销小。
(3)TCP 以连续字节流的方式发送,因此数据会按顺序到达;UDP每个数据报独立,且有明确的边界。顺序发送的数据报可能会乱序到达接收方。
(4)TCP 需要保证可靠性,所以头部更大;UDP 不需要保证可靠性,所以头部更小。
TCP只能是点对点的(一对一)。UDP支持一对一、一对多、多对一和多对多的交互通信。

三次握手、四次挥手

三次握手可以确保双方都知道自己和对方具有接收和发送的能力,二次握手不能确定发送方的接受能力。
三次握手可以防止历史连接的建立。对比三次握手,两次握手下,服务器多了一次连接的建立和销毁,增大了开销。

为什么需要2MSL

关闭时客户端需要进入TIME_WAIT状态,经过2MSL(最大报文段生存时间)才能关闭的原因:
为了保证 A 发送的最后一个 ACK 报文段能够到达 B,使B按正常步骤关闭; 2MSL就是一个发送和一个回复所需的最大时间(无响应时重发FIN,2MSL是一个ACK和新的FIN的时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收)。
防止 “已失效的连接请求报文段”出现在下一次连接中。

DNS域名解析

域名全称是一个从该域到根的标签序列,以“ . ”分离这些标签。
使用代理技术:数据存储分散化、管理权分散化。

FTP

用于在两台异构的主机间传输文件,可靠性由TCP保障。
主要功能是减少或消除不同操作系统下处理文件的不兼容性。
TFTP:因使用UDP协议,可用于分发程序或文件。

HTTP

超文本(Hypertext)是一种文本显示技术,它允许通过链接(通常称为超链接)从一个文档跳转到另一个文档或文档中的特定部分。
Gmail:基于万维网的电子邮件(用户与邮件服务器之间的邮件通过HTTP发送或接收)。
WWW:是一个分布式超文本系统。使Internet中不同计算机的文件相互链接。有用的事物用URL标识。WWW是无数个网络站点和网页的集合,构成了英特网最主要的部分。
HTTP是无连接、无状态的。
HTTP能使用持续链接(HTTP1.1)。
img_5.png

P2P、CS模型

CS:主从式架构,服务器可以为多个客户服务。服务器通常在性能强大的计算机上,客户端一般在普通的个人计算机上。各计算机地位不平等,服务器能管理客户机和整个网络;客户机间不能直接通信;可扩展性差,支持的客户机数量有限。服务器必须始终处于运行状态才有可能提供服务。
P2P:P2P 进程在通信时并不区分服务的请求方和服务的提供方;减轻了服务器的压力,提高了系统效率;客户机之间能够直接共享文档;可扩展性好;网络健壮性强。
BS:界面统一,使用简单:客户端只需要安装浏览器软件;可扩展性好:采用标准的TCP/IP和HTTP协议,具有良好的扩展性。
服务器进程工作方式:循环方式(一次一服务进程)、并发方式(基于TCP,同时多进程)。

IMAP

可创建文件夹,在不同文件夹之间移动邮件、只下载报文的某些部分。

为什么出现IPv6,和IPv4相比有什么优点?

IPv6的可以解决IPv4地址短缺的问题。IPv6还增加了更多的功能和特性,改进首部的格式,快速处理/转发数据报,提供更高效的路由和更好的网络配置灵活性,同时还支持更多的安全特性。
优点:
(1)大规模地址空间:IPv6采用128位地址,相较于IPv4的32位地址,IPv6的地址空间巨大到几乎无限。
(2)改进的性能和效率:IPv6在头部格式和地址分配方式上进行了优化,减少了路由器和主机处理数据包的开销,提高了网络性能和传输效率。
(3)增强网络的安全性:IPv6在设计时考虑了一些安全机制的加强,例如IPSec(IP Security)协议的原生支持,提供了对数据传输的认证、加密和完整性校验,增强了网络的安全性。

IPv6和IPv4相比,报文首部的变化?

(1)IPv6取消了首部长度字段,因为IPv6首部长度固定40字节。
(2)IPv6取消了区分服务字段,IPv6数据报首部中的通信量类和流表号字段实现了区分服务字段的功能。
(3)IPv6取消了总长度字段,改为有效载荷长度字段。这是因为IPv6数据报的首部长度是固定的40B,只有后面的有效载荷长度是不变的。
(4)IPv6取消了标识、标志、片偏移字段,因为这些功能已经包含在IPv6数据报的分片扩展首部中。
(5)IPv6把生存时间TTL字段改成跳数限制字段,这样名称与左右更加一致。
(6)IPv6取消了协议字段,改用下一个首部字段。
(7)IPv6取消了首部检验和字段,加快路由器处理IPv6数据报的速度。
(8)IPv6取消了选项字段,改用扩展首部来实现选项功能。

为什么有MAC地址还需要IP地址?

(1)各式各样的网络使用不同的硬件地址,IP地址的作用是屏蔽异构网路的差异,使得不同网络之间的设备可以进行信息交互。
(2)网络的数量远远小于主机的数量。
(3)在设备还没有IP地址的时候(或者分配IP地址的过程中),我们还需要用MAC地址来区分不同的设备。
(2)IP地址的本质是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一跳的地址,每一次经过个路由器都会改变。
(3)分别用MAC地址和IP地址表示物理地址和逻辑地址方便网络分层,使得网络层和数据链路层的协议可以更灵活地替换。
因为路由器的隔离,IP网络无法通过广播MAC地址来完成跨网段寻址。

访问链接后会发生什么?

(1)解析URL
首先解析URL,如果URL协议、域名、IP不合法,会直接交给搜索引擎。然后检查URL中是否又非法字符(空格、#和?),则对非法字符进行转义后在进行下一过程。

(2)缓存判断
按照浏览器缓存→操作系统缓存→路由器缓存的顺序进行检查,如果缓存中找到结果直接返回。

(3)DNS解析
如果缓存未命中,首先进行DNS解析,将域名转换为IP。按照本地DNS服务器→本地DNS服务器→根域名服务器→顶级域名服务器→权威域名服务器的顺序递归查询,得到IP。

(4)ARP解析
客户端通过ARP协议获取目标IP的MAC地址。ARP解析的过程:检查ARP缓存→局域网内发送ARP广播→目标设备回复ARP单播→更新ARP缓存。
(5)建立TCP连接
客户端创建socket,绑定本机IP和端口,通过三次握手建立TCP连接,如果使用的是HTTPS协议,三次握手结束后还要TLS的四次握手。
(6)发送HTTP/HTTPS请求和响应
连接建立后,浏览器会向服务器发送HTTP/HTTPS请求。可以使用GET、POST等方法。服务器收到请求后,处理并返回响应给客户端。
(7)浏览器渲染
解析HTML,构建DOM树;解析CSS,构建CSSOM树;CSSOM树与DOM树合并成渲染树,然后进行布局与绘制。

如何提高一个文件的下载速度,如何加速网络传输?

(1)文件下载
① 多线程下载。将文件划分成若干块,客户端用多线程下载不同块,下载完成后再拼接起来。
② 减少传输量。对服务端发送的内容压缩传输(如 GZIP)。

(2)通用办法
① 应用层:可以使用HTTP/2并发地发送多个请求的各个帧,然后在接收方得到帧后根据是否是同一个流来进行组装。可以使用使用QUIC协议,直接基于UDP实现低延迟传输,抗丢包能力强。
② 传输层:增大TCP缓冲区大小,并设置缓冲区大小为时延带宽积。
③ 网络层:升级网络设备,增大带宽。

协议概览

1.ARP协议:
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。(名词解释写到这就行)(地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。)
2.DHCP协议:
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
3.DNS协议:
域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
4.TCP协议:
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。
TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
5.HTTP协议:
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
6.POP协议:
POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。常用的是第三版 ,所以简称为POP3。POP3仍采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端,而Server(服务器)则是网管人员进行管理的。举个形象的例子,Server(服务器)是许多小信箱的集合,就像我们所居住楼房的信箱结构,而客户端就好比是一个人拿着钥匙去信箱开锁取信一样的道理。
7.ICMP协议:
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
8.UDP协议:
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768 [1] 描述了 UDP。
Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。
9.FTP协议:
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
10.SMTP协议:
SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
11.TELNET协议:
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法
12.IMAP协议:
IMAP(Internet Message Access Protocol)以前称作交互邮件访问协议(Interactive Mail Access Protocol),是一个应用层协议。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。