计算机网络
来源:互联网 发布:申报数据库免费吗 编辑:程序博客网 时间:2024/05/16 10:11
考虑一家跨国银行,巴黎有一个IPv6网,伦敦也有IPv6网,但是连接两处的是IPv4,网,解决该
问题的方法称为隧道技术。
巴黎主机构建IPv6数据包,传到IPv4时,直接将该数据用IPv4头封装,到达伦敦后提取出来
类比,汽车从巴黎出发去伦敦,在法国境内可以靠自己马力前进,到达英吉利海峡时,呗装到高速列车
,经过海底铁路隧道到达英国(汽车不允许直接在隧道行驶),然后到了隧道另一端,提取出来后又可以靠自己的马力前进
隧道应用于那些因为其他网络而隔离的主机和网络,称为覆盖网络
缺点是 无法到达位于隧道的主机(数据包无法从隧道中逃生),-----》VPN的优势
互联网路由
两级路由算法,域内(intradomain)或者内部网关(interior gateway protocol)协议
域间(interdomain)或者外部网关(exterior gateway protocol)协议--->边界网关协议 BGP Border Gateway Protocol
每个网络独立于所有网络运营,这样的网络称为自治系统(AS,Autonomous System)默认模型————ISP网络
数据包分段
以太网 1500字节 802,11协议 2272字节 IP 65515字节
主机一般倾向于传输大的 数据包,可以降低开销,比如浪费在头字节的带宽,
大数据包要穿过小的网络时 路径最大传输单元 MTU Path Maxinum Transmission Unit
1.保证不会出现这个问题,难以实现
2.允许路由器分段,{a,透明分段,通过路由器后直接被组装起来,然后继续传输分割,适应不同的线路的MTU,后续网络根本感觉不到发生过分段,b,分段后每一个段当作原始的数据包来对待,重组过程只在目的主机}
非透明分段优点是路由器做的工作少。IP采用的思想:给每一个段一个序号,数据包内绝对字节偏移量和一个是否到达数据包末尾的标志位 27 0 1 AB CDEFGHIJ -> 27 0 0 ABCDEFGH 27 8 1 IJ (0,1表示标志位)
这个设计任然存在问题,由于段的存在,开销可能比透明分段高,任何一个段的丢失都将导致整个数据包的丢失,对主机,分段带来了更大的突发
********************************************************************************************************在网络中避免分段 路径MTU发现
每个IP数据包发出时在头部设置一个比特,指示不允许对该数据分段。
如果路由器接收的数据包太大,生成一个报错数据包发送给源端,然后丢弃该数据包,源端处理出错数据包,在源端进行分段,使得适合在线路传输,如果前进又遇到更小的MTU,重复以上过程
优点在于 源端知道可以发送多大的数据包 缺点在于 可能增加发送数据包的启动延迟
是否存在更好的设计:?考虑路由器把超出MTU的数据包简单拦腰截断,继续往下发送,确保接受方尽可能尽快了解
MTU(从传过来的数据量),同时接受部分数据
源端(1400)----------------------》(路由)---------------------------------》(路由)----------------------------》目标端 900
| | 1400 | 1200 |
| ----------Try1200--------------- |
| |
----------------------Try 900--------------------------------------|
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- 计算机网络
- SqL SERVER 语句执行方式差别
- shutdown for linux
- [Python模块学习]使用base64模块进行二进制数据编码
- 动态规划算法解最长公共子序列LCS问题
- 代理设计模式之静态代理与动态代理
- 计算机网络
- 获取VirtualBox COM对象失败,Unable to start the virtual device
- C++实验14
- Vue.js基本使用之双向绑定
- jQuery-个人学习记录(2)
- 用Java设计实现Python中的生成器
- PHP方法实现1-9数列中添加‘+’,‘-’或'',使和为100,并输出数列
- 流程控制语句——if选择结构语句
- Python装饰器3