天天看点

as打包app连不上网络_计算机网络-网络层

网络层

在多路复用的时候,我们曾经利用过IP,但是在运输层却没有IP的痕迹,这是因为IP是在网络层上的内容

  • 传输层:连接服务在网络边缘的端系统
  • 网络层:端系统和网络核心的路由器

在网络层当中,我们会第一次根实际的路由器相关联和物理设备联系到一起,在IP层封装后,我们就知道传输的主机是哪个了

  • 从发送方主机传输报文段到接收方主机
  • 发送方和接收方,分别打包和拆封数据包
  • 路由器根据 IP数据报的头部字段,根据目的IP对数据报转发

网络层从功能的角度来看可以分为两种

  • 转发 讲分组从路由器输入端口转移到正确的输出端口 立交桥从哪个出口下
  • 路由 确定 分组从发送方传输到接收方 旅游的整体路线
从运输层以下的层次都不建立连接

网络层可以提供的服务:

  • 确保交付
  • 时延上限
  • 有序分组交付
  • 确保最小带宽 能保证在一定时延内到达
  • 确保最大时延抖动 各个包之间到达间隔基本相同

因特网网络层服务:

  • 尽力而为
  • 分组间的定时不能保证 时间不能确定
  • 接收顺序与发送顺序不一定相同
  • 传送的分组不能保证最终交付

简单来讲,就是什么都不能确定,那我们保证个啥,就保证个每迷路,数据不会丢8

虚电路

在因特网的服务之前,我们介绍和因特网相对的虚电路技术,类似UDP和TCP技术

一个连接,一个无连接 虚电路会给通讯预留一些资源 (专用资源)

数据报网络

  • 路由器不需要维护端到端的状态
  • 使用 目的主机的地址 IP进行分组转发

数据报转发表

每个服务器不维护所有信息,通过最长前缀匹配完成输出端口的查找

路由器转发表只维护转发状态信息

从一个系统到另外一个系统当中可能选择不同的路径

路由器体系

输入端口:根据最长前缀匹配确定转发的输出端口 排队

  • 线路端接模块 物理层接口
  • 数据链路处理模块 链路层接口
  • 查找和转发模块 根据数据报目标地址,根据最长前缀匹配 找到需要转发的接口 选择处理器直接把备份保存在输入端口,可以实现分布的决策

交换结构只转换到对应的端口

  • 内存结构 通过内存读入,效率很低 受读取速率影响
  • 总线结构,只能有一条数据快速运动,导致阻塞,受总线速率的限制
  • 纵横式,多条链路都可以用 速率比较快
  • 线头阻塞 好几个队列当中前面的呗阻塞,导致后面的内容被延迟

输出端口

和输入端口形式对称,如果交付速率快于运输速率,内存溢出,则会出现

丢包

现象

IPV4报文格式

  • IP版本号 和HTTP的类似
  • 首部长度(从哪里开始变成数据)
  • 服务类型(略)
  • 长度 总共长度有多少(从报文头部到最后)
  • 标识符
  • 标志 是否是末尾 完成重组
  • 段偏移(相对地址+基地址)
  • 寿命 不能让报文在网络内一直存在 在经历很多个路由器就消失

IPV4编制方法:

IP地址由网络号和主机号构成

只有路由器可以区分网络号 二层交换机不可以

由32位比特组成 A类地址第一位为0 B类前两位为10 依次类推

问题在于A类地址过多,后面D类地址太少

关于IP地址分配

ICANN 国际组织 负责互联网地址的空间划分

NIC 具体执行分配任务 属于盈利机构 并且完成一些仲裁的任务

as打包app连不上网络_计算机网络-网络层

这个不太好说,就直接给一个例图8

一些特有的地址

全0表示初始化地址(等待分配地址) 全1表示广播地址

本地地址 127.0.0.1-127.255.255.254 用来测试用

私有地址 10. 172.16. -172.31. 192.168. 局域网访问使用的路由

刚才提到网络的划分网问题,为了实现更好的切割,提出了子网划分的概念

从主机号当中借用若干个比特作为子网号 剩下作为主机号

总体上看,能使用的IP地址不变,但是可以做更多的划分

但是还是有人觉得AB类网络划分没什么意义于是提出了误分类遇见路由 只通过子网划分的方式来划分不同的网络

DHCP动态主机配置协议:

  • DHCP DISCOVER 主机广播
  • DHCP OFFER 服务器的消息响应
  • DHCP REQUEST 主机请求IP地址
  • DHCP ACK 服务器确定
  • DHCP RELEASE 终止确定

工作流程:

  1. 服务器67号端口等待报文
  2. 客户端从端口68发送发现报文(想要IP地址)
  3. 收到DHCP的服务器都可以提供offer 收到多个offer
  4. 根据得到的OFFER 获得IP 并返回对应的DHCP服务器确认信息
  5. 如果快超时了应该发送request信息,请求更多的时长
  6. 如果DHCP服务器返回NACK 必须停止 重新申请IP地址
as打包app连不上网络_计算机网络-网络层

虽然增加了子网掩码,但是还是无法避免资源枯竭的问题,所以提出了

NAT

技术

  • 对外只有一个IP地址
  • 本地网络内该百年设别的IP地址不需要通知外部世界
  • 在NAT内部 对IP地址进行转化

数据平面上,我们主要通过IP的角度来介绍网络蹭,但是实际上是怎么传递的呢?

控制平面

  • 默认路由器:与主机直接相连路由器
  • 源路由器:默认路由器
  • 目的路由器:目的主机的默认路由器

在网络当中设定的算法分别是

  • 全局路由算法 dijstra为代表 比较简单就不多介绍了 不能同时更新,否则容易产生震动 导致信息无法达到目的
  • 分布式路由算法 迭代的方式在网络当中传输 不需要整个网络的拓扑信息 逐步算出费用

    代表:距离向量算法 (离散的弗洛伊德算法)

    • 分布式
    • 迭代
    • 异步
    • 自我终结

dx(y) = min{c(x,v) + dv(y)} 多次重复发送直到停止

缺点:坏消息传递的慢,好消息传递的快 因为min

解决方法: 毒性逆转

比较LS(全局)和DV算法:

LS容易产生震荡 需要知道全局信息 容易收敛 共享信息 健壮性好

DV容易产生回路 存在不连接的问题 收敛慢 信息存在局部性 部分坏信息会无限传递

之前介绍的都是内部的扁平选择 事实上我们是需要层级的对整个系统进行管理

每个区域内的路由器会形成组合集成 自治系统

区域内路由协议在内部进行传递

  • RIP 路由信息协议 距离向量(根据 最短跳数 确定)
  • OSPF协议 开放最短路径优先 利用dijkstra计算并通告到整个自治域单中 进行传输 通过IP协议传输

层次OSPF结构

在内部再划分一个层次的结构 增加自治域的本地网络

域间选择协议BGP

  • 域间选择的任务
    • 可以通过转达哪几个区域到达
    • 需要经有哪个边缘路由器
  • BGP为每个AS提供一个手段
  • 允许一个子网向因特网其他部分同样存在
  • 热土豆原则 选择域内最短的路径原则
  • 路径选择的组成 通告前缀时,包含BGP属性
  • 前缀+属性=路由 AS-PATH :包含前缀已经通告过的得一些AS NEXT-HOP 指出到达下一个AS的及具体AS边界(只有最后一个是具体的边界内容)

    next-HOP是AS-PATH起使的路由器接口的IP地址 即要到起使点的AS需要的路由器

BGP会话与通告

  • 路由器对TCP连接来交换选路信息
  • 当AS2 通告一个前缀给AS1 说明新增可以转载的路径,然后在域名通过iGBP协议进行传递(类似域内广播)

真实的路由选择算法:

  • 路由被指派一个本地偏好值作为属性 不止是AS-PATH和next-hop
  • 从余下的路径当中选择最短AS-PTH的路由