思维导图
硬件
广播式的网络(无线网络)
如果地址是自己的,就处理数据包,如果地址不是自己的,就忽略
- unicast:对某个人说:特定人接受
- broadcast:广播:所有人都接受255.255.255.255
- multicast:组播:
订阅
组播地址 - anycast:任播(会修车的一个人听着)
中断:碰一下鼠标键盘,控制总线给出中断信号
DMA(直接内存访问):磁盘和内存直接工作,绕过CPU。DMA干完了也会向CPU发中断信号
网卡:有缓冲区,存数据包
广播风暴:网上有大量的信息用广播,需要抢总线,打扰计算机。若用组播,发送到计算机网卡上只要判断一些是否订阅过,没有订阅过可以直接扔掉,不需要抢总线。
点对点的网络
point -to -point network(/。。。/p2p等)
为了从源到目的地,数据包可能会访问一个或多个中间机器
传输技术:找到最优的传输路径
个人网络
PAN蓝牙:主要目的是将计算机和外设连接在一起,省略掉线:主从方式(master-slave)
局域网络
分布式;环形:广播式、一次只有一个人可以发;交换机
信道分配问题:
(1)静态方式:时分复用(TDM):分成离散的时间片,每个计算机只在属于自己的时间片发数据;频分复用(FDM):如电台。缺点:每台设备只能使用1/n的带宽
(2)动态分配(更合算):中心控制、无中心控制。局域网鱼如何解决信道竞争?第三章讲。
广域网络
Local Area Network(LAN)
通信子网Subnet
交换单元Router(路由器)的功能:(1)分组交换(查路由表决定给哪个路由器发送)存储——查表——转发;(2)路由决策/路由算法
每个路由器独立地选路,根据网络拓扑结构分布地协商
(SDN?把什么抽走)
信息路径:
必须要熟用最优路径;
路由决策由路由器本地做。
软件
协议分层
网络架构
网络组织成层状
- 降低设计复杂度
- 底层给高层提供服务是屏蔽细节,从而降低耦合度(解耦implemented)。(系统分层、服务界面清晰)
- 每一层都是虚拟机virtual machine(对上层提供一个虚拟的服务)
面向对象的程序设计:计算机网络是面向对象最成功的典范
特定的软件(或硬件)为用户提供服务,但对用户隐藏其内部状态和算法的细节
层、对等体、协议、接口
- 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。
- 协议:为进行网络中对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】
语法:规定传输数据的格式
语义:规定所要完成的功能
同步:规定各种操作的顺序 - 接口(访问服务点ASP):上层使用下层服务的入口
- 服务:下层为上层提供的功能调用【垂直】
SDU服务数据单元:数据本体
PCI协议控制信息:控制协议操作的信息
PDU协议数据单元:对等层次之间传送的数据单元
1、协议
:上下层之间有接口,对上提供某种类型的服务,协议是层和层之间的
同层之间达成协议,包括消息的格式,怎么通信,什么时候该说什么
通信双方就如何进行通信达成的协议
2、Peers
对象=同侪=对等体
一层是一个类,可以有好多个对象,很多个实体,每个实体都是硬件设备或者进程
包括不同机器上的相应层的实体称为对等体,对等体可以是进程、硬件设备
物理媒体
3、接口=语法+语义
定义哪些基本操作(语法)和服务(语义)下层可供上层使用
语法:原语操作
上下层的语法是两层之间商量好就可以了。语义一致,语法可以不同。
网络架构
:确保异构计算机互联互通
实现的细节和接口的规范都不是体系结构的一部分
一、层和协议:在同层两个计算机系统中要一致,协议是实现服务的一部分,服务得一致。对于上层来说服务不变,协议只要下层一致可以任意改变
二、实现细节和上下层之间的接口规范不影响互联互通
信息流
最高层第五层是虚拟通信,发送消息(若干个字节构成的整体)
消息M由应用程序进程生成,并提供给第4层进行传输
第四层对内容不感兴趣,址负责可靠传输。增加一个头,包括控制信息,比如序列号(流水号),或者包括大小、时间,标志这个消息。头里面加了什么内容,两个第四层要对头信息取得一致。
在消息前面放置一个标题以头消息,并将结果传递给第3层
头:控制信息,例如序列号(在某些层中,标题还可以包含大小、时间和其他控制字段)
第三层对消息的大小有限制
,把从第四层来的消息切分成好几个分组(小包packets)
,每一包加第三层的头
,加上控制信息,决定从哪根电线发送出去
。网络中第三层是网络层,根据路由表查表,决定走哪根线。
第二层增加包头和包尾
,为了方便在电线中传输,也就是物理层。包尾是校验盒,由协议两边商量好校验方式。
第一层是物理层
。
传输到对方后一层层的还原。
层的设计问题
实际在分层中需要考虑哪些问题?
可靠性?
差错控制
:物理的电路并非完美。(错报)
差错检查&差错纠正;
接收方怎样根发送方说哪些东西收到了,哪些东西没有收到。(这些东西都属于协议)
路由
:可能有很多路由,很多路由器,如果有坏的路由,需要找到可以工作的路由器(丢包)
乱序
(乱包):接收方可能受到乱序的包
发件人如何给邮件编号
接收者如何处理无序到达的消息
地址编址?
每一层都需要编址寻址,需要一种识别发送方和接收方的机制。寻址的对方可能是一个实体(进程)
网络互通性Internetworking
规模扩展性Scalability
复用?
统计分时复用:按需分配
流量控制:两通信的双方,发送方发送得很快,接收方接受得满,怎样让接收方不要被数据淹没。接收方给发送方一个反馈
拥塞控制:大家都很忙,数据都到不了对方。一层一层发送时如果有瓶颈就会降低速度。网络发送信息告诉我拥塞了,我通过协议降低速度,防止出现彻底拥塞。
QoS
(quality of service)服务指标(带宽、延迟)
安全问题
(防窃听Confidentiality、防篡改Integrity、身份鉴别Authentication)
每一层都要考虑这些问题,有的问题可能是几层之间解决,并不一定每层要处理所有问题
面向连接和无连接的服务
面向连接的服务(Connection-oriented Service)
连接建立的过程(为什么要先打开文件才能用?权限的判断、怎么把磁盘块调进来等等)包括发送方、接收方、网络方,进行协商,用什么样的参数(一包的体积有多大,要求什么样的服务质量),是否进化协议
使用连接。发送方在一端推入对象(位),接收方在另一端取出它们。在大多数情况下,顺序是被保留的,以便比特按照发送顺序到达。
释放连接
无连接的服务(Connectionless Service)
写信,全地址,每一包独立地选路
每条信息(字母)都包含完整的目的地地址,每一个都是通过独立于所有其他系统的系统进行路由的
QoS(quality of service)
面向连接的
可靠的消息流(长短不一的若干个字节流,保证了消息的边界)
可靠的字节流(不保持边界)TCP协议的实现者可以随意把信息粘在一起
可靠的含义:受到的内容一定是对的,没有错、丢、乱。谁也不能保证受到的数据对方能够接受。
不可靠:例如数字化语音
无连接的
服务原语Service Primitive
=上下层之间的接口
上到下高速要做什么事情
底下有什么事情告诉上层
系统调用System calls:服务是用过系统调用实现的
不止是TCP应用程序之间的调用
在操作系统内核的内部用驱动程序(一堆子程序的集合)实现
(消息系统、系统调用、驱动程序,都可以)
服务、协议、服务与协议之间的解耦
分层的参考模型有哪些
OSI参考模型
ISO:国际标准化组织 OSI:开放系统互连
分层原则:*
- 各层之间相互独立,每层只实现一种相对独立的功能
- 每层之间界面自然清晰,易于理解,相互交流尽可能少
- 结构上可分隔开。每层都采用最合适的技术来实现
- 保持下层对上层的独立性,上层单向使用下层提供的服务
- 整个分层结构应该能促进标准化工作
PPT:两层之间是定义良好的功能越简单越好;上下层之间信息流最小化(交互最小化)
路由器通信子网只到第三层为止。
L1:物理层,在通信信道到传输bits,bytes。电器特性(electronic),多少伏特代表0,多少伏特代表1?时间(timing),每一个0和1的时间是多长,时间差怎么解决,到底是多少个1?连接怎么建立、关闭?通信媒体(medium),每个设备有不同的特性,从方波调制成正弦波,调制解调器。
L2:数据量子(电路)层(每台机器及其近邻之间的协议)
直接邻居是点到点:Point-to-Point,中间没有转化设备,用通信设备直接连接在一起。区别于端到端End-to-End
把输入数据打破成数据帧data frames(实际上可能不需要打破)
如果数据是可靠的,接收器回复确认帧ACK
流量控制:保持快速的发送者不让慢速的接收机淹没在数据中
广播式的网络:如何控制对共享信道的访问
L3:控制子网的操作
整个子网的操作,网络的操作,存储——查表——转发
路由怎么造路由表:静态的,由人来设置;会话路由,跟哪个地方通信,就选择一个路径,之后就不用查表了,只用查一次路由表例如:打电话;高度动态的:
拥塞问题
服务质量
完全不同的网络层面连接在一起
L4:传输层transport
题外话:传输transmit,传送transport
端到端e-to-e(从源到目的端跨越好几个路由器转发)的最底层
你对上层提供什么服务
一、无差错的服务
L5:会话层session layer
用户之间可以建立一个会话(逻辑上有意义的一次连接,并非通信上的一次连接)
断点续传,同步
令牌管理不用管
L6:表示层presentation
语法、语义:逻辑上有意义的内容计算机怎么表达(编码)?
语义semantics:含义。语法syntax:编码方式。
例如:语言编码。对象状态、配置信息:XML/JSON。网页HTML超文本标记语言。ans.1抽象标记表示。MIB库,网络管理信息库。
L7:应用层
用户通常需要的各种协议
例如:文件传输,电子邮件,HTTP(超文本传输协议,更超文本没什么关系,本质上是会话层协议)
TCP/IP参考模型
会话层和表示层是因为应用不用同一套,实际上是存在的,只是看似不存在。
网络层
无连接的服务
IP
出现差错是通过ICMP通知发送端
服务:
尽最大努力地投递:丢了活该。我可能会把数据弄丢。
分组路由、避免拥塞(网络通风报信、应用层减慢投递速度,不通风报信,在传输时在数据包上加标签)
传输层:
TCP(可靠的面向连接的字节流服务)
将传入的字节流分割成离散的消息
将收到的消息重组到输出流中
流量控制,响应网络层的拥塞信号
UDP(无连接的不可靠的报文服务)
大数据量通信也必须要相应网络层的拥塞控制信号
NFS早起用UDP,提供可靠的服务,但可靠性由自己保障
DNS域名解析,NTP网络时间协议:幂等模式的通信(问多少次得到的答案都一样)
对于即时交付比准确交付更重要的应用
传输语音或视频(RTP:实时传输协议)
报文段——数据报——数据帧——比特
课程安排:1、2层期中前,3、4层期中后
Comments NOTHING