计算机网络-网络层

网络层被设计成“向上提供简单灵活的,无连接的,尽最大努力交付的数据报服务”的特性,即所传输的分组没有保证,可能出错,丢失,重复,失序,或超时。 但这样设置好处是:网络的造价大大降低(比如路由器),运行方式灵活,能够适应多种应用(即在网络层之上的传输层可以基于灵活的网络层作很多拓展工作) 异构网络互联 不同协议的网络子系统通过**中间设备(中继设备)**相互连接起来,形成更大的系统。(P135) 中继设备: 物理层:中继器,集线器(Hub) 数据链路层:网桥或交换机 网络层:路由器 网络层之上:网关 路由与转发 路由器的两功能:路由选择(确定哪一条路径 => 构建和维护路由表)和分组转发(当一个分组到达时要完成的动作 => 查询,转发以及队列管理和任务调度等)。 拥塞控制 网络进入拥塞状态的方法:观察网络吞吐量和负载的关系。 如果随着网络负载的增加,网络的吞吐量明显小于正常吞吐量(或者不增反降),则说明可能(一定)进入了拥塞状态。(注意:正常情况下,负载越高,吞吐量越大) 拥塞控制和流量控制(联系到链路层的流量控制)的区别 流量控制是在发送端和接受端点对点通信时的数据传输控制,它数局部性控制,且是接收端来控制发送端 而拥塞控制则是一个全局性的问题,它确保的是一个子网内的数据能够成功传输到彼此。 拥塞控制的方法 开环控制:静态的预防方法,系统启动后,设置的控制调度算法不能改版。 闭环控制:动态方法,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞的信息传输到合适的地方,以便调整网络系统的运行。 路由算法 静态路由算法 => 网络管理员手动配置的路由信息,它不能适应网络状态的变化。 动态路由算法 => 通过路由器之间相互传递信息并且根据一定的算法,实时更新路由表的信息。 动态路由算法的两个主要算法 距离-向量路由算法 => 实现协议RIP(路由信息协议) => 应用层协议,使用了UDP传送数据 所有结点定期地将它们的**整个路由选择表(下面统称为路由表)**传送给其所有的相邻结点。 每个结点从相邻结点拿到路由表信息后,迭代计算到每个结点的最短距离,并实时更新自己的路由表。 链路状态路由算法 => 实现协议OSPF(开放最短路径优先) => 网络层协议,使用ip数据包传递数据 每个结点(路由器)向本自治系统的所有节点发送自己和自己相邻路由器之间的链路状态,即先把信 息发送给相邻的路由器,然后通过相邻的路由器再次发送给它的相邻路由器,这样不断迭代传递,最终所有结点都能获得发送结点的相邻链路状态。 => 泛洪法 最后每个路由器都能获得自治系统内所有节点的相邻链路状态,然后按照一定的算法,更新自己的路由转发表。 所以该算法要求每个参与算法的结点都具有完全的网络拓扑信息。 层次路由 设想一下,如果对网络中众多的路由不分层次,则会使得每次转发的路由表(或链路信息)异常庞大,无论是更新还是查阅都会非常消耗性能,其次灵活性也不高,因为没有分层,导致整个路由系统必须统一协议标准,而不能“因地制宜”。 所以考虑把整个互联网划分为较小的自治系统(每个自治系统有多个局域网),每个较小的自治系统可以设置自己的路由协议,同时也需要自治系统间的协议来屏蔽不同路由协议自治系统的通信。 自治系统内使用的路由选择协议叫做内部网关协议(IGP) => 例如RIP,OSPF等 自治系统间使用的路由选择协议叫做外部网关协议(EGP) => 例如BGP等。 ipv4 ipv4分组格式如下所示 注意:有些描述存储大小的字段是有单位的,比如首部长度,总长度等,这些会在下面单独说明 首部长度单位: 32位(4Byte) 总长度:首部加数据段的总长度,单位:Byte 片位移:由于MTU的限制,ip数据报如果过长会被分片,那么该字段则表示该片段在原分组的相对位置,用于之后在目的地拼接。长度单位:8Byte,所以每个分片的长度一定是8B的整数倍(除最后一片) 网络地址转换(NAT) 将专门网络地址转换为公用地址,从而隐藏内部管理的IP地址。这样做的好处是可以增多主机的ip分配,一个局域网的主机可以用多个内网ip标识,而它们的公网地址则只需要用一个ip标识即可,而NAT就做的是这其中的转换工作。 即一台主机可以用 一个公网ip + 一个内网ip 唯一标识。...

September 13, 2021 · 1 min · 103 words · Runtus

计算机网络-链路层

链路层重点:组帧,流量控制与可靠传输机制,介质访问控制 数据链路层是在物理层提供服务的基础上为网络层提供相关服务,它能够加强物理层中比特流的传输,也能将物理层上可能会出错的物理链路改造为逻辑上无差错的数据链路,然后为网络层提供对应服务。 为网络层提供的连接服务 无确认,无连接服务。 有确认,无连接服务。 有确认,有连接服务。 需要注意的是:只要是能够连接,则一定会有确认,即不存在无确认,有连接的服务。 帧定界 数据帧的长度由首部,尾部,以及数据三者决定,而首部和尾部包含了许多控制信息,其中就包含了帧边界的标识,这就是所谓的帧定界。(注意:链路层封装的数据帧也称为组帧,它的作用就是解决帧定界,帧同步,透明传输等问题) 透明传输:接受方能够正确识别帧尾部,而不会因为数据段有和尾部相同的标识而提前结束帧识别。 下面列举几种帧定界的方法。 字符计数法。 字符填充的首位定界符法。 零比特填充的首位标志法。 违规编码法。 MTU(最大传输单元):帧数据部分长度的上线(IP数据包) 差错控制 比特传输过程中难免会遇到差错,比如1变为0,0变为1,这种差错也称为比特差错,于是需要通过编码方式对传输的比特实现差错控制,减少或避免误差。 检错编码 => 检验传输的比特是否出错 奇偶校验法 循环冗余码(CRC:Cycle Redundancy Code) 纠错编码 => 对出错的比特进行纠错 => 海明校验 流量控制 为了防止发送方的速度过于快而导致接受方来不及接收从而造成的丢帧现象出现,需要对发送方的发送数据速率作一定的限制,而流量控制的常见方法是通过接收方来控制发送方的速率(由接收方感知,如果速率过快,则返回特定的信息)。 常见的两种流量控制方法 停止-等待协议 : 发送方发送一帧后,必须等待这一帧的回复才能继续发送下一帧。 滑动窗口协议:发送方维持一组能够发送帧的集合,称为发送窗口,同理接收方也维持一组预接收帧的集合,称为接受窗口。发送窗口外的帧不会发送,接收窗口外的帧不会接收。 可靠传输机制 可靠传输同时使用确认和超时传输这两种机制来完成。 确认是指发送方发送帧后,为了确保该帧顺利到达接收方且没有出错,应该要收到对应的帧回复。 超时传输指发送方发送帧后,会启动一个定时器,如果超过一定时间还没有收到回复帧,则认为帧丢失,需要重传。 自动重传请求(ARQ:Auto Repeat reQuest) 接收方通过请求发送方重传出错的帧来恢复出错的帧。它是处理信道所带来差错的办法之一。 ARQ分类 停止-等待ARQ 后退N帧ARQ(Go-Back-N:GBN) 选择性重传(Selective Repeat:SR) => 接收方需具备缓存器,缓存出错帧之后已经到达接收方的帧。 介质访问控制(Medium Access Control: MAC) 为使用介质的每个设备与使用同一个介质的其它设备的通信隔离开来,简而言之,就是要保证各个通信设备在使用同一介质时互不干扰,这就是介质访问控制的作用。 常见的介质访问控制分为信道划分MAC(静态划分),随机访问MAC(动态分配),轮询访问MAC(动态分配)。 信道划分介质访问控制 顾名思义,按照某种标准,将信道划分为多个部分以供给多个通信设备使用,由于划分是固定的,所以也是静态划分信道的方法。 频分多路复用(FDM) 时分多路复用(TDM) 波分多路复用(WDM) 码分多路复用(CDM) => 也叫做码分多址(CDMA:Code Division Multiple Access) 随机访问介质访问控制 ALOHA协议 => 不检测,直接传,如果一段时间没收到确认,则重传。...

September 10, 2021 · 1 min · 124 words · Runtus