zoukankan      html  css  js  c++  java
  • 【计算机网络】-网络层-网络互联

    【计算机网络】-网络层-网络互联

    互联将多个不同的网络合并成一个更大的网络,多种不同网络长期存在,需要网络互联

    网络的不同之处

    网络层上可能出现一些差异,不同网络差异可能很大,从而使互联网络变得复杂

    • 当一个数据包在到达目的网络前必须经过一个或多个外部网络时,在网络接口处会出现很多问题。例
    • 面向连接的网络经过无连接的网络时,这些数据包可能要被重新排序,这是发送方不期望的,而接收方也不准备处理顺序问题
    • 如何通过一个最大数据包为1500字节的网络传递一个8000子节的数据包
    • 对于不同的网络,差错控制、流控制和拥塞控制通常也是不一样

    网络如何连接起来

    物理层
    中继器和集线器
    只是简单将数据为从一个网络搬移到另一个网络。它们只不过重新生成模拟信号,并不理解有关数字协议方面的内容

    数据链路层
    网桥和交换机
    可以接收帧,检查MAC地址,并且将帧转发到另一个不同的网络中

    网络层
    路由器(router)
    在网络之间存储-转发数据包,能够转换数据包格式
    能够处理多种协议的路由器称为多协议路由器

    传输层
    传输网关(transport gateway)
    两个传输层连接之间的接口

    应用层
    应用网关(application gateway)
    可以翻译消息的语义

    用一个共同的网络层来互连不同的网络

    交换机和路由器的区别

    • 交换机整个帧是以MAC地址为基础进行传输的;不必理解数据包中所使用的网络层协议
    • 路由器从帧中提取出数据包,然后利用数据包中的网络地址来决定他的目标去向,必须理解数据包中所使用的网络层协议

    隧道技术

    源和目的主机所在网络类型相同,连接它们的是一个不同类型的网络,可以采用隧道技术相连

    工作过程
    巴黎的主机构造一个包含伦敦IPv6地址的包,将该包发送到连接巴黎IPv6网络到IPv4网络上的多协议路由器
    当该多协议路由器获得IPv6包后,它把该包用一个IPv4头封装,封装后的IPv4包指向多协议路由器另一边的IPv4,该网络与伦敦的IPv6网络相连
    当这个包裹着的包到达伦敦路由器,原来的IPv6包被取出来,并发送到最终的目标主机

    总结

    • 通过中间网络连接两个网络包被封装在中间

    • 隧道类比:隧道被视为一个单一的连接数据包只能在端部输入和退出。

    数据包分段

    每种网络或链路都对最大数据包长有限制的原因:

    • 硬件,如以太网帧的长度限制
    • 操作系统,如所有的缓冲区都是512字节
    • 协议,例如数据包长度域的比特个数
    • 遵从某一个国家(或国际)标准
    • 期望将“因错误而引入的重传次数”减少到某种程度
    • 希望避免一个数据包占用信道时间过长

    由于许多原因,网络有不同的包大小限制,通过碎片和重组发送的大数据包,大数据包经过小数据包网络时,网关要将大数据包分成若干段(fragment),每段作为独立的数据包传输。

    段重组策略

    透明分段

    分段重组过程对沿途后续的其它网络透明
    网关将大数据包分段后,每段都要经过同一出口网关,并在那里重组,例:ATM网络

    带来的问题

    • 出口网关需要知道何时所有数据包都到齐
    • 所有数据包必须从同一出口网关离开
    • 大数据包经过一系列小数据包网络时,需要反复地分段重组,开销大

    非透明分段

    分段重组过程对其它网络不透明,中间网关不做重组,而由目的主机做

    带来的问题

    • 对主机要求高,能够重组
    • 每个段都要有一个数据包头,网络开销增大
    • 对数据包作划分时,分段必须按照能够重构原始数据流的方式编号

    分段编号

    偏移量法(IP采用)
    定义一个基本段长度,使得基本段能够通过所有网络
    数据包分段时,除最后一个段小于等于基本段长度外,所有段长度都等于基本段长度
    一个数据包可以含有若干个基本分段

    数据包头中数据包包括:原始数据包号、分段号、最后段指示位,其中
    分段号:指当前分段在原始数据包中的偏移量
    最后段指示位:指示是否是最后一个分段

    (a)原始数据包,包含10个数据字节;
    (b)当通过一个最大数据包长度为“8个净荷字节+头部”的网络后的分段;
    (c)当通过一个最大数据包长度为5的网络后的分段

  • 相关阅读:
    Redis 在 分布式项目中 的小应用--分布式锁 模拟session 分布式自增id
    自动生成swagger 前后端分离 对接文档
    利用IDEA 把maven工程中spring-boot的某个模块打成jar包
    利用SQL语句,把本地Excel文件批量导入mysql数据库,做测试数据使用
    Java常用API-String类
    网络编程模型及TCP、UDP编程设计
    计算机网络模型构架分析
    多线程程序的设计详解
    多进程、进程间通讯设计
    Linux 文件编程、时间编程基本函数
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11916836.html
Copyright © 2011-2022 走看看