计算机网络课程要点整理

下文中出现的页数都出自《计算机网络》(第7版 谢希仁著)

一、概述

1.1 网络体系结构

1.1.1 OSI(法律上的国际标准)

  • 7层&作用(由上到下)

    应用层:文件传输、管理

    表示层:确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密

    会话层:负责在网络中的两节点建立,维持和终止通信,在一层协议中,可以解决节点连接的协调和管理问题

    运输层:定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是根据接收方接收数据的快慢程度,规定适当的发送速率,解决传输效率及能力的问题

    网络层:控制子网的运行,如逻辑编址,分组传输,路由选择最小单位——分组(包)报文

    数据链路层:主要是对物理层传输的比特流包装,检测保证数据传输的可靠性,将物理层接收的数据进行MAC地址的封装和解封装,也可以简单的理解为物理寻址。交换机就处在这一层

    物理层:主要对物理连接方式,电气特性,机械特性等制定统一标准传输比特流

  • 概念清楚但复杂不实用

1.1.2 TCP/IP(事实上的国际标准)

  • 4层

  • 应用层、运输层、网际层、网络接口层

1.1.3 五层协议

  • 作用(由上到下)

    应用层:通过应用进程间的交互完成特定网络应用。应用层协议:DNS,HTTP,SMTP等。报文在这一层交换

    运输层:TCP(可靠)/UDP

    网络层:IP

    数据链路层:同上1.1.1

    物理层:同上1.1.1


1.2 三种交换

  • 电路交换:一方发起呼叫,独占一条物理线路。通信时双方一直占用该线路。优点是时延低、实时性强、交换设备成本低。缺点是线路利用率低、通信效率低、不同类型终端间不能通信

  • 报文交换:将用户的报文存储在交换机的存储器中。当所需要的输出电路空闲时,再将该报文发向接收交换机或终端,它以“存储——转发”方式在网内传输数据。优点是中继电路利用率高,可以实现不同速率、规程的终端间通信。缺点是实时性差、传输时延大、占用交换机大量内存外存

  • 分组交换:采用动态复用的技术。比电路交换的电路利用率高,比报文交换的传输时延小,交互性好

1.3 其它概念

  • 为何要分层?P29

  • 网络协议三要素:语法、语义、同步

  • 带宽、时延

  • 协议&服务:使用本层服务的实体只能看见服务,看不见下层的协议(书详细)

  • 客户、服务器指的是应用进程

二、物理层

2.1 信道通信方式

  • 单工:只要单方向的发送,无反向交互

  • 半双工:双向发送,但不可同时发送

  • 双工:可以同时发送

2.2 奈奎斯特&香农公式

  • 码元速率极限值B与信道带宽的关系:B=2*H(Baud)

  • C=2Hlog2N(bps) N为一个码元所取得离散值个数(无噪声)

  • 信噪比=10log10(S/N)

  • 信道极限传输速率C=Wlog2(1+S/N)(bit/s)(有噪声)

2.3 中继器和集线器的工作原理

  • 中继器:原理是信号再生和还原,扩大网络传输距离

  • 集线器:实质上是一个多端口的中继器,在网络中只起到信号放大和转发作用,目的是扩大网络的传输范围

三、数据链路层

3.1 数据帧的概念和可靠传输

  • 数据帧:数据链路层的协议数据单元,它包括三部分:帧首部,数据部分,帧尾部

  • 可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。传输差错分两类:比特差错和传输差错(丢失、重复、失序),没有这两类差错才能算可靠传输。CRC检验能实现无比特差错,但实现不了无传输差错。传输差错可通过帧编号、确认重传机制实现。数据链路层的协议都不是可靠传输(这里会有歧义。现在,对于通信质量良好的线路,数据链路层不使用确认和重传机制,即不要求它提供可靠传输,出现差错时由上层协议如TCP完成。对于通信质量差的线路,要求提供可靠传输)

3.2 差错检测

3.2.1 奇偶检验

根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。

  • 缺点:奇偶校验位是一种错误检测码,但是由于没有办法确定哪一位出错,所以它不能进行错误校正。发生错误时必须扔掉全部的数据,然后从头开始传输数据。在噪声很多的媒介上成功传输数据可能要花费很长的时间,甚至根本无法实现

  • 优点:它是使用一位数据能够达到的最好的校验码,并且它仅仅需要一些异或门就能够生成

3.2.2 循环冗余检验

P74

  • 求添加在数据后面的n位余数:在要传输的数据后面要补n位0. n=除数的位数-1.做除法得到要添加的余数

  • 做减法时用异或

  • 把余数添加后,做除法,若余数不为0则表明有错误被检测到

3.3 CSMA/CD

  • 多点接入:总线型网络

  • 载波监听:不停地检测信道的空闲情况

  • 冲突/碰撞检测:边发送边监听

  • 发送“冲突加强信号”,确保足够的冲突持续时间,以便让所有用户都知道现在发生了冲突


    由此判断CSMA/CD只能进行半双工通信

3.3.1 截断二进制指数退避

P88

  • 争用期:一个站在发送完数据以后,只有通过争用期的“考验”,即经过争用期还没有检测到碰撞,才能肯定这次发送不会发生碰撞。具体的争用期时间为51.2微秒,对于10Mbit/s以太网,在争用期内可以发送512比特,所以也可以说争用期是512比特时间。这种时间单位与数据率密切相关

  • 重传应推后r倍的争用期。r从[0,1,… ,(2^k-1)]里随机选一个。k=Min[重传次数,10]

  • 以太网规定了最短帧长64字节。(发送的数据很短会填充到64字节)所以若发生碰撞一定是在发送数据的前64字节,换句话说,凡是长度小于64字节的帧都是由于碰撞(冲突)而终止的无效帧

  • 最小帧长=总线传播时延 * 数据传输速率 *2

  • 当发送数据的站检测到碰撞后,除了停止发送以外,还要再发送一个人为干扰信号(冲突加强信号32bit或48bit)

  • 帧间最小间隔:9.6微秒=96比特时间。检测到信道空闲后,如果在这96比特时间内信道都保持空闲的话就可以发送帧

3.4 MAC地址/MAC帧

  • 6字节48位

  • 实际上是适配器地址,当适配器接入到一台计算机中时,适配器上的“地址”就变成了这台计算机的MAC地址

  • MAC帧长不少于64字节

3.5 交换机&网桥

  • 网桥:在数据链路层扩展以太网,最初人们使用网桥,它对收到的帧根据其MAC帧的目的MAC地址进行转发(查找网桥中的地址表)和过滤。用网桥相连的网段仍然是同一个局域网(网络号一样)

  • 交换机实质:多接口的网桥。每个接口与一台主机或另一个交换机相连,以全双工工作

  • 通过交换机进行通信的主机都是独占传输媒体,无碰撞地传输数据。

3.6 链路层协议

  • 回退n帧:一次发多个帧,如果有错误,从那个发生错误的帧开始及其之后所有的帧全部再重新发送。复杂度低,但是不必要的帧会再重发,所以大幅度范围内使用的话效率不高

  • 滑动窗口:没收到接收方确认的情况下可以连续把窗口内的数据都发送出去(注意是可以,但也不一定是都发出去,可以发一部分)

  • HDLC:可靠传输

  • PPP:简单、应用广泛

四、网络层

4.1 IP数据报的格式和分片

P128

  • IP协议规定所有主机或路由器都必须能接收长度不大于576字节的数据报。当主机需要发送长度超过576字节的数据报时,应当先了解目的主机能否接受这样长的数据报(是否超过MTU值),否则要进行分片

  • 标志位(首部第二行16-18位):最低位MF=1表示后面还有分片,MF=0表示这是若干数据报分片中的最后一片。中间一位DF=0时才允许分片

  • 片偏移(首部第二行19-31位):表示某个分片在原分组中的相对位置。以8个字节为偏移单位。即每个分片的长度都应该是8字节(64位)的整数倍

4.2 IP地址

  • IP地址::={<网络号>,<主机号>} 32位

  • 指派范围:P121

  • 当一台主机连接到两个网络上时,该主机就必须同时具有两个相应的IP地址(网络号不同)

  • 广播地址:将主机号全部设置为1

  • 主机号:将网络号(包括子网号)全部设置为0

4.3 子网划分

  • 划分子网是一个单位内部的事情,本单位以外的网络看不见这个网络由多少个子网组成,对外仍然表现为一个网络

  • 划分方法:从主机号借用若干位作为子网号。IP地址::={<网络号>,<子网号>,<主机号>}

  • 增加了灵活性,但减少了能够连接在网络上的主机总数

4.4 子网掩码

  • 默认子网掩码:IP地址中的网络号对应位置全为1,其余为0

  • 核心在于让子网掩码和IP地址按位与(AND),能得到子网的网络地址(这样保留了子网号,并清零了主机号)

  • 注意区分子网数和可用子网数(-2)

4.5 CIDR

  • 无分类地址

  • IP地址::={<网络前缀>,<主机号>}

  • 斜线记法:在IP地址后面加上“/”,然后写上网络前缀所占的位数

  • CIDR地址块:网络前缀相同的连续IP地址(这种地址的聚合常称为路由聚合)

  • 地址掩码:一串1和一串0组成。1的个数就是网络前缀的长度(即/后面的数字)

  • 核心思想在于:用一个地址(斜线记法)就代表了很多个地址,简化了路由表的查找。把直接的查找分成了好几步,一步步找到目的地址

  • 最长前缀匹配:查找路由表时可能会得到不止一个匹配结果,我们应当从中选择具有最长网络前缀的路由

4.6 ARP(地址解析协议)

要搞懂ARP,就要先搞懂IP地址和MAC地址的关系。在OSI模型中,网络层及以上使用IP地址(逻辑地址),数据链路层和物理层使用MAC地址(硬件地址)。发送数据时,数据由上至下,到数据链路上传输。IP数据报交给数据链路层时被封装成为了MAC帧。接收数据时,剥去MAC帧的首部和尾部以后上交网络层,网络层才能找到IP数据报及其中有用的信息。


ARP就是根据IP地址(网络层)获取MAC地址(数据链路层)的一个协议。


全世界各式各样的网络使用不同的硬件地址,为了通信就要进行复杂的硬件地址转换工作(调用ARP)。IP地址把这种转换工作“屏蔽”了,这样互联网上的主机只需要有一个IP地址即可。

  • ARP缓存保存IP-MAC地址之间的映射关系

  • 如果ARP无相应缓存,则发送广播请求MAC地址

  • 使用生存时间定期删除更新

4.7 ICMP(网际控制报文协议)

  • 用于在IP主机、路由器之间传递控制信息

  • 可用于测试两台主机之间的连通性(探测PING)

4.8 路由表、路由器的工作原理

  • 在互联网上转发分组时,是从一个路由器转发到下一个路由器

  • 当路由器需要和其他路由器连接时,连接的每个路由器都有若干个不同的IP地址(个数视连接的路由器个数决定)

  • 路由表由许多条路由组成。每一条路由最主要的信息是:(目的网络地址,下一跳地址)

  • 分组转发算法:如果目的地址是和此路由器直接相连的某个网络地址就直接交付(通过ARP协议把目的地址转换为MAC帧发送),否则根据网络地址确定下一跳地址。如果没有找到指明的下一跳路由器,则发送给默认路由(如果有)

4.9 RIP

  • 基于距离向量的路由选择协议

  • 使用UDP数据报

  • 允许一条路径最多包含15个路由器。“距离”=16时即不可达,故只适用于小型网络

  • 选择最短路由(“距离”最短),不会考虑时延等因素

  • 仅和相邻路由按固定的时间间隔交换信息,交换的信息是当前本路由器知道的全部信息(自己的路由表),交换后更新路由表

  • 好消息传播快,坏消息传播慢

  • 实现简单,开销小


    路由表更新(交换)的原则是找出到每个目的网络的最短距离。这种更新算法称为距离向量算法。

4.9.1 距离向量算法

P155

  • 先把地址为X的路由器发送来的RIP报文距离都+1,并把下一跳地址改成X

  • 对比接收的路由表,目的网络没有的就添加。有的话要看下一跳路由器是否一致。若一致就替换,不一致比较距离,比原来距离短就替换

4.10 OSPF

  • 基于链路状态的协议

  • 使用IP数据报

  • 与RIP不同:不只是向相邻路由器发送信息,而是向本自治系统内所有路由器发送信息,交换的信息是和本路由器相邻的所有路由器的链路状态。不是按固定时间发送,而是只有当链路状态发生变化时才发送

  • 更新过程收敛快

五、运输层

5.1 TCP

  • 面向连接

  • 提供可靠交付

  • 全双工通信,有拥塞控制

  • 点对点(一对一)的连接

  • 面向字节流

  • 资源开销大

  • 报文段结构:P217

  • 三/四次握手:P238

5.1.1 TCP拥塞控制

  • 慢开始:达到ssthresh前,cwnd每次翻倍

  • 拥塞避免:达到ssthresh后,cwnd每次加1

  • 快恢复:3-ACK(对同一报文的重复确认)之后把ssthresh设为当前cwnd/2,并设cwnd=ssthresh,然后开始执行拥塞避免算法

  • 快重传:3-ACK,发送方收到3个报文的重复确认后就认为需要重传

  • 超时:把ssthresh设为当前cwnd/2,并设cwnd=1

  • 发送方窗口上限=Min[cwnd,rwnd]

5.2 UDP

  • 无连接

  • 不可靠交付

  • 面向报文(保留报文边界)

  • 无拥塞控制

  • 支持多种交互通信(一对一、一对多、多对一、多对多)

  • 首部开销小

5.3 端口、套接字

P206

  • 端口:通信的终点是进程,但实际上我们只要把所传送的报文交到目的主机的某个合适的端口,剩下交付进程的工作交给TCP/UDP完成即可。端口即应用层(各种协议进程)和运输层(运输实体)之间进行层间交互的一种地址

  • 计算机要相互通信,要知道IP地址(为了找到对方的计算机),也要找到对方的端口号(为了找到对方计算机中的应用进程)

  • 套接字socket=(IP地址:端口号)。是TCP连接的端点

六、应用层

6.1 DNS

  • 域名到IP地址的解析

  • 各域名服务器的作用

  • 主机向本地域名服务器的查询一般采用递归查询

  • 本地域名服务器向根域名服务器的查询一般采用迭代查询

  • 在这里插入图片描述

6.2 SMTP(邮件传送)POP3(邮件读取)HTTP

  • SMTP不使用中间的邮件服务器

  • POP3用于用户从POP3服务器读取邮件
    (为了找到对方计算机中的应用进程)

猜你喜欢

转载自blog.csdn.net/weixin_44765402/article/details/112165829