计算机网络原理笔记(更新中......)

第一节 计算机网络基本概念

定义:计算机网络是互连的,自治的计算机的集合

协议:数据交换过程中的规则

协议三要素:语法(信息的格式与结构),

语义(交换需要发控制信息以及其含义),

时序(交换信息的顺序,以及如何匹配适应彼此的速度)

计算机网络功能:硬件资源共享、软件资源共享、信息资源共享

分类:按覆盖范围分:个域网、局域网、城域网、广域网

           按拓扑结构:星形、总线、环形等

           按交换方式:电路交换网络、报文交换网络、分组交换网络

           按网络用户属性:公用网、私有网

第二节 计算机网络结构

①网络边缘:所有端系统

②接入网络:网络边缘的端系统与网络核心的连接与接入

③网络核心:由通信链路互连的分组交换设备构成的

网络的作用是实现网络边缘中主机之间的数据中继与转发

第三节 数据交换

交换结点和传输介质的集合称为通信子网,即网络核心

①电路交换

通过中间交换结点,为两台主机之间建立一条专用通信线路称为电路,结束后拆除

特点:独占线路,实时性高,信道利用率低

②报文交换

以报文为单位在交换网络的各结点之间以存储-转发方式传送。

特点:不需要建立连接,转发时才占用相应的信道,需要缓冲存储,报文需要排队,增加延时。

③分组交换

将一个完整报文拆分成若干分组,分组传输过程通常也采用存储-转发。

特点:交换设备存储容量要求低,交换速度快,可靠传输效率高,更加公平

分组长度的确定:延迟时间,误码率

第四节 计算机网络性能

1.速率与带宽

速率:单位时间传送数据量(bit/s)也叫传输速率或数据速率

带宽:信号具有的频带宽度,频率范围,Hz

2. 时延

数据从网络中一个结点到另一个结点所需要的时间

分类:结点处时延、排队时延、传输时延、传播时延

3. 时延带宽积

一段物理链路的传播时延与链路带宽的乘积

4. 丢包率

评价网络性能指标,反映拥塞程度

丢包率=丢失分组总数/发送分组总数

5. 吞吐量

单位时间从源主机通过网络实际送达数据量

第五节 计算机网络体系结构

分层:功能划分若干层,层次按协议信息交换

体系结构:划分层次及各层协议的集合

①OSI参考模型

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

②TCP/IP参考模型

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

③五层参考模型

应用层、传输层、网络层、链路层、物理层

  • 第二章 网络应用

第一节 计算机网络应用体系结构

三种类型

1. 客户/服务器(C/S)结构

通信只在客户与服务器之间进行,客户与客户之间不进行直接通信

2. P2P(Peer to Peer)结构

每个对等端都同时具备C/S应用的客户与服务器的特征,是一个服务器与客户的集合体,对等端之间直接通信(即可以请求服务也可以提供服务)

3. 混合结构

既有中心服务器的存在,又有对等端(客户)间的直接通信

第二节 网络应用通信基本原理

C/S通信基本原理:服务点运行的是服务器进程,被动地等待客户请求服务;客户端运行地是客户进程,主动发起通信,请求服务器进程提供服务。应用进程间遵循应用层协议交换应用层报文。

第三节 域名系统(DNS)

一、层次化域名空间

(便于查找,便于管理)

 

二、域名服务器

1. 域名解析

将域名映射为IP地址地过程

2. 域名服务器

为了实现域名解析,需要建立分布式数据库(就是很多服务器),存储网络中域名与IP地址地映射关系数据,这些数据库存储在域名服务器上,域名服务器根据用户地请求提供域名解析服务。

3. 域名服务器分类

根域名服务器、顶级域名服务器、权威域名服务器、本地域名服务器

三、域名解析过程

  1. 递归查询:如果查不到,服务器再向另一个服务器发出请求,一级一级地查

 2.迭代查询:如果查不到告诉客服端,客服端在去另一个服务器查询

 第四节万维网应用

一、万维网应用结构

 二、HTTP

概念:超文本传输协议,定义浏览器如何向web服务器发送请求以及Web服务器如何向浏览器进行响应。

版本:HTTP/1.0和HTTP/1.1

HTTP连接:

非持久连接(建立TCP连接,发送一个请求,服务器响应后,TCP连接就释放)一个连接传输一个对象

持久连接(只建立一个TCP连接,传输多个对象)

HTTP报文
请求报文——从客户向服务器发送请求报文。


响应报文——从服务器到客户的回答。

 三、Cookie

Cookie中文名称为小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。
弥补了HTTP协议无状态性的不足,有利于进行用户跟踪并提供针对性的服务,但也带来一些安全问题。

 

第五节 Internet电子邮件

1.电子邮件系统结构

 2.SMPT

SMTP是Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。
SMTP使用传输层TCP实现可靠数据传输,端口号25
SMTP通过3个阶段的应用层交互完成邮件的传输,分别是握手阶段邮件传输阶段关闭阶段
SMTP的基本交互方式是SMTP客户端发送命令,命令后面可能携带参数,SMTP服务器对命令进行应答。

 3.电子邮件格式与MIME
 

 4.邮件读取协议

①第三版的邮局协议(Post Office Protocol-Version 3,POP3)客服端服务器形式,邮件下载到本地
②互联网邮件访问协议(Internet Mail Access Protocal,IMAP)直接通过指令操作邮箱,直接操作服务器上的内容
③HTTP   不依赖特定邮件客户端软件
 

第六节 FTP

文件传送协议(FTP):在互联网的两个主机间实现文件互传的应用层协议。
C/S模式,采用控制连接(21端口)传输控制命令数据连接(20端口)传输文件内容
(文件可能很大,如果要发送控制命令必须要等文件传输完成,分两条可以让控制命令及时传输,控制,操作更高效)

第七节 P2P应用

P2P应用的优势:充分聚集利用了端系统(对等方主机)的计算能力以及网络传输带宽,对服务器的以来很小

第八节 Socket编程基础

Socket接口模型(调用传输层提供的网络服务)

 Socket接口可以调用UDP,TCP服务
SCOK_DGRAM <----> UDP:无连接的服务,不需事先建立连接,不可靠但是成本低速度快高效
SCOK_STREAM <---->  TDP:事先建立连接,很可靠
SOCK_RAW直接调用网络层

第三章 传输层

第一节 传输层的基本服务

一、传输层功能

核心任务是为应用进程之间提供端到端(从一个应用进程到另一个应用进程)的逻辑通信服务

主要功能包括:
传输层寻址;
应用层报文的分段和重组;
报文的差错检测;
进程间的端到端可靠数据传输控制;
面向应用层实现复用与分解;
端到端的流量控制:
拥塞控制;

传输层协议提供逻辑通信服务;
传输层协议只需在端系统中实现;(网络边缘,主机终端等)
通信的真正端点并不是主机,而是主机中运行的应用进程

二、传输层寻址与端口

1. 用统一的寻址方法对应用进程进行识别——端口号。  (根据端口号判断数据给哪一个应用进程)
2. 在全网范围内利用“IP地址+端口”唯一标识一个通信端点(应用进程)。

3. 传输层端口号为16位整数,包含三类端口:

(1)熟知端口号,数值为0~1023 。(分配给固定的应用程序,一般指服务端程序,例:POP3:TCP 110,SMTP:TCP 25,HTTP:TCP 80,DNS:UDP 53端口)
(2)登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。(分配给固定的应用程序)
(3)客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。(不固定)

三、无连接服务与面向连接服务

1. 无连接服务——数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送。(无法确定相关信息)——UDP

2. 面向连接服务——在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,数据传输结束后还需要再拆除连接。——TCP

第二节 传输层的复用与分解

多路复用与多路分解:是传输层的一项基本功能,支持众多应用程序共用同一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程。

多路复用:发送方每个主机都由多个应用进程要运行,每一个对应一个端口把要发送的数据放到端口当中进行排队,传输层检查每一个端口看哪一个端口有数据了取出来然后进行封装,把封装的数据教给下面的网络层
多路分解:接收方运输层接收到数据后,通过数据中携带的目的端口号,来判断数据应该放到哪个端口中,应用进程再从端口中取出数据

一、无连接的多路复用与多路分解 

UDP套接字:<目的IP地址,目的端口号>
UDP套接字的端口号是UDP实现复用与分解的重要依据。

二、面向连接的多路复用与多路分解

TCP套接字(标识一条TCP连接):<源IP地址,源端口号,目的IP地址,目的端口号>
当一个TCP报文段从网络层到达一台主机时,该主机根据这4个值来将报文段分解到相应的套接字。(按照连接来进行多路复用与分解)

第三节 停——等协议与滑动窗口协议

(解决如何保证通信的可靠性的问题)

一、可靠数据传输基本原理

实现可靠数据传输的措施:

1. 差错检测:利用差错编码实现数据包传输过程中的比特差错检测。
2. 确认:接收方向发送方反馈接收状态。
3. 重传:发送发重新发送接收方没有正确接收的数据。
4. 序号:确保数据按序提交。
5. 计时器:解决数据丢失问题。  

二、停-等协议

停-等协议的主要特点就是每发送一个报文段后就停下来等待接收方的确认。

停-等协议的基本工作过程是:
1. 发送方发送经过差错编码和编号的报文段,等待接收方的确认;(发送并等待确认
2. 接收方如果正确接收报文段,即差错检测无误且序号正确,则接收报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK;(接收并确认/否认
3. 发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段。(继续发送/重发

三、滑动窗口协议

1. 停-等协议的主要性能问题:
停止-等待机制降低了信道利用率

2. 解决方法:
流水线协议或管道协议——允许发送方在没有收到确认前连续发送多个分组。
3.流水线协议的改进:
增加分组序号范围;
发送方和(或)接收方必须缓存多个分组

4.典型的流水线协议:滑动窗口协议

 两种具有代表性的滑动窗口协议:
1. 回退N步(GO-Back-N,GBN)协议:
发送端口窗口大小较大,可以在未得到确认前连续发送多个分组;但接收窗口大小仅为1,只能接收1个按序到达的分组,未按序到达的分组或者某个分组差错,就会引起发送方重发该分组及其之后的所有分组。

2.选择重传(Selective Repeat,SR)协议:
增加接收方缓存能力(接收窗口>1),缓存正确到达但失序的分组,仅要求发送方重传未被接收方确认的分组,等缺失分组到达后一并向上层按序提交。

第四节 用户数据协议(UDP)

用户数据报协议UDP是Internet传输层协议,提供无连接、不可靠、数据报尽力传输服务。

一、UDP数据报结构

1. 源和目的端口:用于UDP实现复用与分解。
2. 长度字段:在UDP报文段中的字节数(首部和数据的总合)
3.校验和:接收方用来检测报文段是否出现了差错。

二、UDP校验和

 计算校验和:
1.对所有参加运算的内容(包括UDP报文段)按16位(16位对齐)求和;
2.求和过程中遇到的任何溢出(即进位)都被回卷(即进位与和的最低为再加);
3.最后得到的和取反码。

第五节 传输控制协议(TCP)

一、TCP报文段结构

源端口:发送该报文的发送方应用程序端口号地址
目的端口:16位,接收这个数据的接收方应用进程的端口号
序号:标识这个TCP报文在整个应用报文中的序号
确认号:当把数据发给接收方后,接收方会返回一个确认的信息在TCP协议中返回的确认信息中会携带一个确认号,确认号的目的是告诉发送方哪个编号的数据已经收到了,接下来希望发送方发送哪些序号的数据
数据偏移:一个TCP报文被拆分成相同序号的数据报之后数据在原来报文中的位置
保留:保留字段等待以后被使用
URG:紧急指针位用来表示在特殊情况下,紧急指针可以有效,取1时,紧急指针有效,取0时,无效
ACK:确认位,ACK位为1时,确认号有效
PSH:通知TCP协议对数据进行快速提交
RST:复位,重新进行TCP连接
SYN:同步请求位,发送连接请求时,要和对方协商初始的序号
FIN:通信结束之后进行拆除连接,为1是通知对方拆除连接
窗口:和滑动窗口有关系,告诉对方滑动窗口,缓存窗口有多大,进行流量控制,双方协商可以改变
检验和:对数据进行校验
选项:只规定了最大报文段选项
填充:保证TCP报文协议的首部大小是4字节的倍数,首部有20字节的固定大小

二、TCP连接管理

连接建立——三次握手(三次通信)

1. SYN连接请求(第一次握手,客户端向服务端发送SYN连接请求或者叫做同步请求)
2. SYNACK确认(第二次握手,服务端返回响应信息,发送同步确认)
3. ACK确认(第三次握手,客户端完成最后一次确认,完成整个握手)

刚开始客户端的端口是关闭的,要发送连接请求时必须要进入打开状态,当请求发送之后进入SYN-SENT状态,当收到对方的确认信息再发送一个确认信息之后,进入ESTAB-LISHED状态。
刚开始服务器端的端口也是关闭的,打开之后进入监听状态LISTEN,接受请求返回确认之后进入SYN-RCVD状态,当对方的第三次握手接收到之后进入ESTAB-LISHED状态连接建立状态。

客户端向服务端发送连接请求,首先服务端要打开监听端口进入监听端口,客户端打开临时端口
通过这个端口发送连接请求,第一次通信客户端向服务端发送一个报文,连接请求,SYN=1表示同步请求,seq=x表示序列号部分设置一个值x,x表示客户端发送服务器端所有的数据以x作为起始编号,之后从x开始一次接收数据。服务端接收到同步请求后,如果可以建立连接,返回一个确认,确认位ACK置为1,确认号ack的值为x+1,表示x编号的数据收到了,接下来要给我发送x+1的数据,同时服务器端也携带一个同步请求SYN=1,告诉客户端服务器段起始数据编号seq=y。客户端收到响应后返回第三次握手信息包含一个确认ACK=1,确认号ack的值为y+1,表示y编号的数据收到了,接下来要给我发送y+1的数据,连接就建立成功了,接下来要按照双方协商好的参数进行数据传送。

TCP断开连接的过程——四次挥手(双方要进行四次的数据交换)

 数据传输完成之后要进行TCP连接断开,连接释放请求可以由A发起也可以由B发起。以A发送连接释放请求为例,首先A发送一个连接释放请求,在这个报文中FIN位置为1,表示这是一个连接释放请求,同时携带一个序号,A发送给B的所有报文都要携带序号seq=u,B收到之后返回一个确认信息。此时,A到B的连接断开,B到A的连接还没有断开,当B到A的数据传输完成之后,B向A发送释放连接请求,A向B发送释放连接请求的确认信息,这之后A进入TIME-WAIT阶段,B马上关闭连接。

三、TCP可靠数据传输

1.TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器等。

2.TCP的可靠数据传输时基于滑动窗口协议、但是发送窗口大小动态变化。
(1)封装TCP报文段
(2)发出一个报文段后启动一个计数器
(3)通过校验和发送数据差错
(4)通过序号重新排序,丢弃重复的报文段
(5)流量控制 

四、TCP流量控制

1. TCP协议利用窗口机制实现流量控制,但不是简单的滑动窗口协议。

2. TCP连接建立时,双方都为之分配了固定大小的缓冲空间;TCP的接收端只允许另一端发送其缓冲区所能接纳的数据。
(1)接收端在给发送端发送确认段时,通告接收窗口大小
(2)发送端在接下来发送数据段时,确保未确认段的应用层数据总量不超时接收端通告的接收窗口大小,从而确保接收端不会发生缓存溢出。

五、TCP拥塞控制

1. 窗口机制:通过调节窗口的大小实现对发送数据速率的调整。

2. 窗口调整的基本策略:
AIMD(Additive Increase, Multiplicative Decrease)加性增加,乘性减小;
网络未发生拥塞时,逐渐“加性”增大窗口大小,当网络拥塞时“乘性”快速减小窗口大小。

3. TCP的拥塞控制算法:包括了慢启动、拥塞避免、快速重传和快速恢复4部分。

第四章 网络层

第一节 网络层服务

网络层的主要作用式将网络层数据报从源主机送达目的主机。
主要功能包括:
1. 转发:分组从输入接口转移到输出接口;
2.路由选择:决定分组经过的路由或路径。

完成网络层路径选择和转发工作的主要式路由器,路由器的内部结构如下:
 

 

第二节 数据报网络与虚电路网络

一、数据报网络

(不可靠,效率比较高,成本低)

数据报网络:按照目的主机地址进行路由选择的网络。
特点:
1. 无连接;
2. 每个分组作为一个独立的数据报进行传送,路径也可能不同;
3. 分组可能出现乱序和丢失。

二、虚电路网络

(可靠,效率低)

虚电路网络再网路层提供面向连接的分组交换服务。
特点:
1. 建立一条网络层逻辑连接
2. 不需要为每条虚电路分配独享资源(区别于电路交换);
3. 根据虚电路号沿虚电路路径按序发送分组。

第三节 网络互连与网络互联设备

一、异构网络互连

异构网络:两个网络的通信技术和运行的协议不同。
异构网络互连的基本策略:
1. 协议转换;
2. 构建虚拟互联网络。

 二、路由器

结构:

 

第四节 网络层拥塞控制

一、网络拥塞

拥塞:一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的总需求超过了网络固有的容量。
原因:
1. 缓冲区容量有限;
2. 传输路线的带宽有限;
3. 网络结点的处理能力有限;
4. 网络重某些部分发生了故障。

二、流量感知路由

流量感知路由:根据网络负载动态调整,将网络流量引导到不同的链路上,均衡网络负载,从而延缓或避免拥塞发生。
解决网络负载的震荡现象:
1. 多路径路由;
2. 缓慢转移流量至另一链路。

三、准入控制

准入控制:是一种广泛应用于虚电路网络的拥塞预防技术。
基本思想:
对新建虚电路进行审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立新虚电路。
拥塞状况的量化:基于平均流量和瞬时流量。

四、流量调节

1. 感知拥塞
2. 处理拥塞:将拥塞信息通知到上游结点。
处理方法:
(1)抑制分组:给拥塞数据报的源主机返回一个抑制分组。
(2)背压:让抑制分组在从拥塞结点到源结点的路径上的每一跳,都发挥抑制作用。

五、负载脱落

负载脱落:路由器主动丢弃某些数据报。
如何选择要丢弃的数据报:
1. 丢弃新分组:如GBN
2. 丢弃老分组:如实时视频流

第五节 Internet网络层

一、IPv4协议

IP数据报格式:
IP首部固定部分20字节

 IP数据报分片
标识:判断这些分片是否属于同一个IP数据报
标志:判断是否为最后一个分片
片偏移:判断各分片的先后顺序

二、IPv4编址

IPv4地址长度:32位二进制
点分十进制标记法

 分类地址:A、B、C、D、E五类
特殊地址、私有地址

 A、B、C三类分配给主机和终端使用。结构是网络号(IP地址所在网络的编号)+主机号,图上紫色部分为网络号,黄色部分是主机号。通过最高位可判断类别,如最高位是0的为A类,10的是B类等等。

子网划分:
将一个较大的子网划分为多个较小子网的过程。
较大子网具有较短的网络前缀,较小子网具有稍长的前缀。
超网:将具有较长前缀的相对较小的子网合并为一个具有稍短前缀的相对较大的子网。
子网掩码:用来定义一个子网的网络前缀长度

网络地址15.65.154.0/26中,26表示前缀长度,子网掩码中1的个数(32位中前26位都是1)
1. 查找转发表:IP地址15.65.154.130和子网掩码进行与运算得出子网地址,与网络地址进行比较是否相同
2.最长前缀匹配:如果匹配到多个相同的结果,取最长前缀的那个网络地址。

 三、动态主机配置协议

动态主机配置协议——DHCP
为网络内的主机提供动态IP地址分配服务。
1. DHCP服务器发现(在网络中广播一个信息,寻找DHCP服务器)
2. DHCP服务器提供(DHCP服务器进行响应)
3. DHCP服务器请求(选择一个DHCP服务器进行请求)
4. DHCP确认

DHCP服务器进行IP地址分配

 四、网络地址转换

网络地址转换NAT——使用私有地址访问互联网
1. 从内网进入互联网的IP数据报:
将其源IP地址替换为NAT服务器拥有的合法的公共IP地址,同时替换源端口号,并将替换关系记录到NAT转换表中;
2. 从互联网返回的IP数据报:
依据其目的IP地址与目的端口号检索NAT转换表,得到内部私有IP地址与端口号,替换目的IP地址和目的端口号,然后将IP数据报转发到内部网络。

五、ICMP

互联网控制报文协议(ICMP):
在主机或路由器间,实现差错报告。
ICMP差错报告报文共有5种:
终点不可达、源点抑制、时间超时、参数问题和路由重定向等。
ICMP询问报文:
回声(echo)请求/应答(检测网络的连接性能ping命令等)、时间戳(timestamp)请求/应答。

六、IPv6
1. 解决IPv4地址耗尽的问题。
2. IPv6报文首部长度固定40字节。
3. IPv6地址长度128位。
4. IPv4到IPv6的迁移:
    双协议栈
    隧道

第六节 路由算法与路由协议

一、链路状态路由选择算法

链路状态路由选择算法是一种全局式选择算法。每个路由器通过从其它路由器获得的链路状态信息构建出整个网络的拓扑图。
计算最短路径——Dijkstra算法

 二、距离向量路由选择算法

每个结点基于其与邻居结点间的直接链路距离,以及邻居交换过来的向量,计算并更新其到达每个目的结点的最短距离,然后将新的距离向量再通告给其所有邻居,知道距离向量不再改变。
Bellman-Ford方程:

 三、层次化路由选择

(层次化:自治系统间的路由协议,自治系统内的路由协议)

实现大规模网络路由选择最有效的、可行的解决方案。
划分自治系统:
网关路由器
自治系统间路由协议

四、Internet路由选择协议

1. 内部网关协议(自治系统内的路由协议)

(1)RIP:
基于距离向量路由选择算法,跳数作为距离度量,最大距离不超过15跳,每30秒交换

(2)OSPF:
基于链路状态路由选择算法。

2. 外部网关协议: 
BGP


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值