计算机网络

牧云@^-^@ 提交于 2019-12-06 16:36:12

五层协议:

应用层:通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则;这里进程指的是正在运行的程序。进程指的是主机正在运行的程序。

运输层:负责向两台主机中进程之间的通信提供通用的数据服务。一台主机之间同时运行多个进程,因此运输层之间分用和复用的功能。

网络层:负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把传输层产生的报文段或封装成分组或者包进行传送用户数据。因为在网络层主要应用的是IP协议,所以分组也叫作IP数据包。

数据链路层:两个相邻节点传输数据时,数据链路层将网络层传下来的IP数据报组装成帧。

物理层传输:物理层传输的单位是比特。

 

网络层:

地址解析协议‘(ARP)

网络控制报文协议ICMP

网络组管理协议 IGMP

网络层以上使用的中间设备叫做网关

虚拟互联网络:逻辑互联网络,利用IP协议可以将性能各异的网络在网络层上看上去是一个网络

互联网可有多种网络异构而成

只包含一种线路的网络称为:无编号网络,现在也常常不分配网络地址

MAC帧在传送时使用的原地址和目的地址都是硬件地址,就是数据链路层和物理层使用的

脱去MAC的首部和尾部,此找到头部的和尾部的IP地址:放在IP数据报的头部

ARP:知道机器的IP地址,需找到相对应的硬件地址。从网络层使用的IP地址,解析出在数据链路层使用的硬件地址

ARP高速缓存:存放着局域网中IP地址到MAC地址的映射

在自己所在局域网中广播ARP请求,找到目的主机的MAC地址,或者广播ARP请求,找到本局域网的一个路由器的硬件地址

为什么有了IP地址还需要MAC地址:

1、各式各样网络存在着不同的硬件地址

2.非常复杂的硬件地址转换工作

生存时间:跳数

--------------------------------------------------------

IP转发分组的流程:

只要目的网络是其他网络,就一律选择默认路由,把数据包转发给间接路由器,再由它转发到下一个路由器

分组转发算法:

1.从数据报的首部提取目的主机IP地址D,得出目的网络地址N;

2.若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要在经过其他的路由器直接将数据交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据包封装成MAC帧,在发送此帧);否则就是间接交付。执行3;

3.若路由器表中有目的地址为D的特定主机路由,则把数据报传送到路由表所指明的下一跳路由器,否则执行4

4.若路由表中有到达网络N的路由,则把数据报传送到路由表中的所指明的下一跳路由器;否则执行5

5.若路由表中有一个默认路由,则把数据报传送到路由表所指明的默认路由器;否则执行6;

6.报告转发分组出错

 ---------------------------------------

RIP内部网关协议:

一种基于分布式的基于距离向量的路由选择协议

RIP允许一天路径最多只能包含15个路由器,由此距离等于16时即相当于不可达。RIP使用小型互联网

特点:

1.仅和相邻路由器交换信息

2.路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表

3.按固定的时间间隔交换路由信息

RIP协议使用的距离矢量算法

对每一个相邻路由器发送过来的RIP报文,进行以下步骤:

1.以地址为X的相邻路由表发来的RIP报文,先修改报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的的“距离”字段都加1.每一个项目都有3个关键数据。

目的网络N,距离d,下跳路由器是x;

2.对修改后的RIP报文中的每一个项目,进行以下步骤:

     若原来的路由器表中没有目的网络N,则把该项目添加到路由表中

    否则(即在路由表中有目的网络N,这时就再查看下一跳路由器地址)

           若下一跳路由器地址是X,则把收到的项目替换成原来路由表的项目。

           否则(即这个网络是:到目的网络N,但是下一跳路由器不是X)

                    若收到的项目中的距离d小于路由表中的距离,则进行更新。

                     否则什么也不做。

3.若3分钟还没有收到相邻路由器的路由更新表,则把此相邻路由器记为不可达的路由器,即把距离置为16(距离为16表示不可达)

4.返回。

-----------------------------------------------------------------

 内部网关协议OSPF

 使用Dijkstra提出的最短路径算法

特点:

1.向本自制系统中所有路由器发送消息。使用洪泛法。

2.发送的信息是与本路由器相邻的路由器的链路状态。这是路由器所知道的部分信息。

3.只有当链路状态发生变化时,路由器才想所有路由器用红犯法发送此消息。

更新过程收敛得快。

 --------------------------------------------------------------------------------

运输层:

两台主机在相互通信:应用进程在相互通信;

端到端通信。

UDP用户数据报协议(不可靠),不需要先建立连接

TCP 传输控制协议(可靠),需要先建立连接,数据传送结束后释放连接

--------------------------------------------------------

分用:接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程

复用:发送方不同的应用进程都可以使用同一个运输层传输协议(加上适当的首部)

软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。

------------------------------------------------------

端口:

出现的原因:把特定机器上运行的特定进程指明为互联网最后通信的终点是不可以的,因为进程的建立和的某个合适的目的端口,剩下的工作就由T撤销都是动态的,通信一方无法识别。

解决方案:在运输层使用协议端口号。虽然通信的重点是应用程序,但只要把所传送的报文交到目的主机,剩下的工作就由UDP,TCP来完成。

在协议栈层间抽象的协议端口是软件端口。软件端口是各种协议进程与运输实体之间进行层间交互的一种地址。

UDP:有目的端口和源端口

TCP:

特点:

面向连接的运输层协议

每一条TCP连接智能有两个端点,连接只能是点对点的

TCP提供可靠交付的服务

提供全双工通信:通信双方的应用进程在任何时候都能发哦送数据。

面向字节流:流:流入到进程或从进呈流出的字节序列。

---------------------------------------

TCP连接:

TCP把连接作为最基本的抽象。

每一条TCP连接都有两个端点,端点叫做套接字或插口,TCP连接唯一被套接字确定。

理想的传输条件: 1.传输信道不产生差错。 2.不管发送方以多快的速度发送数据,接收方总是来得及处理接受到的数据。

------------------------------------------、

停止等待协议:

1.无差错情况。A发送M1分组1给B,等待B的确认。B收到M1向A确认。然后A收到B的确认之后再发下一个分组给A

2.出现差错:B接收M1时检测出了差错,就丢弃M1,其他什么也不做(不通知A收到有差错的分组),也可能是M1在传输过程中丢失了,,B森么也不知道。这两种情况下,B不会发送任何信息。A只要超过一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面的分组。叫做超时重传。要实现这个,发送一个分组时设计一个超时计时器。如果在超时计时器到时之前就收到了对方的确认,就撤销设置。

3.确认丢失和确认迟到:如果B所发送的对于M1的确认丢失了,A在设定的超时重传时间内没有收到确认,并无法知道自己发送的发呢组出错,丢失,或者是B发送的确认丢失了。因此A又重传了。这时B又收到了重传的分组M1,这时B采取两个i行动:

1.丢弃这个重复的分组M1,不向上层交付。

2.向A发送确认,不能认为已经发送过确认就不在发送,因为A之所以重传M1就表示A没有收到对M1的确认。

通常A最后中总是收到对所有发出的分组的确认,如果A不断重传分组但总是收不到确认,说明通信线路太差,不能进行正常能够通信。

上述操作,就可再不可靠的网络上实现可靠的通信。叫ARQ自动重传请求。

-------------------------------------

连续ARQ协议:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!