「计网」第一章

发布于 2022-03-19  1401 次阅读


本文为自用笔记,思维导图from王道考研,其余部分为学校课程课上笔记。如有不足请多谅解。

思维导图

硬件

广播式的网络(无线网络)

如果地址是自己的,就处理数据包,如果地址不是自己的,就忽略

  • unicast:对某个人说:特定人接受
  • broadcast:广播:所有人都接受255.255.255.255
  • multicast:组播:订阅组播地址
  • anycast:任播(会修车的一个人听着)

中断:碰一下鼠标键盘,控制总线给出中断信号

DMA(直接内存访问):磁盘和内存直接工作,绕过CPU。DMA干完了也会向CPU发中断信号

网卡:有缓冲区,存数据包

广播风暴:网上有大量的信息用广播,需要抢总线,打扰计算机。若用组播,发送到计算机网卡上只要判断一些是否订阅过,没有订阅过可以直接扔掉,不需要抢总线。

点对点的网络

point -to -point network(/。。。/p2p等)

为了从源到目的地,数据包可能会访问一个或多个中间机器

传输技术:找到最优的传输路径

image-20221031110507841

个人网络

PAN蓝牙:主要目的是将计算机和外设连接在一起,省略掉线:主从方式(master-slave)

局域网络

分布式;环形:广播式、一次只有一个人可以发;交换机

信道分配问题:

(1)静态方式:时分复用(TDM):分成离散的时间片,每个计算机只在属于自己的时间片发数据;频分复用(FDM):如电台。缺点:每台设备只能使用1/n的带宽

(2)动态分配(更合算):中心控制、无中心控制。局域网鱼如何解决信道竞争?第三章讲。

广域网络

Local Area Network(LAN)

image-20220301154504286

通信子网Subnet

交换单元Router(路由器)的功能:(1)分组交换(查路由表决定给哪个路由器发送)存储——查表——转发;(2)路由决策/路由算法

每个路由器独立地选路,根据网络拓扑结构分布地协商

(SDN?把什么抽走)

信息路径:

必须要熟用最优路径;

路由决策由路由器本地做。

image-20220301110530320

软件

协议分层

网络架构

网络组织成层状

  • 降低设计复杂度
  • 底层给高层提供服务是屏蔽细节,从而降低耦合度(解耦implemented)。(系统分层、服务界面清晰)
  • 每一层都是虚拟机virtual machine(对上层提供一个虚拟的服务

面向对象的程序设计:计算机网络是面向对象最成功的典范

特定的软件(或硬件)为用户提供服务,但对用户隐藏其内部状态和算法的细节

层、对等体、协议、接口

  1. 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体
  2. 协议:为进行网络中对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】
    语法:规定传输数据的格式
    语义:规定所要完成的功能
    同步:规定各种操作的顺序
  3. 接口(访问服务点ASP):上层使用下层服务的入口
  4. 服务:下层为上层提供的功能调用【垂直】

SDU服务数据单元:数据本体

PCI协议控制信息:控制协议操作的信息

PDU协议数据单元:对等层次之间传送的数据单元

image-20220319175046517

1、协议:上下层之间有接口,对上提供某种类型的服务,协议是层和层之间的

同层之间达成协议,包括消息的格式,怎么通信,什么时候该说什么

通信双方就如何进行通信达成的协议

2、Peers对象=同侪=对等体

一层是一个类,可以有好多个对象,很多个实体,每个实体都是硬件设备或者进程

包括不同机器上的相应层的实体称为对等体,对等体可以是进程、硬件设备

物理媒体

3、接口=语法+语义

定义哪些基本操作(语法)和服务(语义)下层可供上层使用

语法:原语操作

上下层的语法是两层之间商量好就可以了。语义一致,语法可以不同。

网络架构:确保异构计算机互联互通

实现的细节和接口的规范都不是体系结构的一部分

一、层和协议:在同层两个计算机系统中要一致,协议是实现服务的一部分,服务得一致。对于上层来说服务不变,协议只要下层一致可以任意改变

二、实现细节和上下层之间的接口规范不影响互联互通

信息流

image-20220304201041528

最高层第五层是虚拟通信,发送消息(若干个字节构成的整体)

消息M由应用程序进程生成,并提供给第4层进行传输

第四层对内容不感兴趣,址负责可靠传输。增加一个头,包括控制信息,比如序列号(流水号),或者包括大小、时间,标志这个消息。头里面加了什么内容,两个第四层要对头信息取得一致。

在消息前面放置一个标题以头消息,并将结果传递给第3层
头:控制信息,例如序列号(在某些层中,标题还可以包含大小、时间和其他控制字段)

第三层对消息的大小有限制,把从第四层来的消息切分成好几个分组(小包packets),每一包加第三层的头,加上控制信息,决定从哪根电线发送出去。网络中第三层是网络层,根据路由表查表,决定走哪根线。

第二层增加包头和包尾,为了方便在电线中传输,也就是物理层。包尾是校验盒,由协议两边商量好校验方式。

第一层是物理层

传输到对方后一层层的还原。

层的设计问题

实际在分层中需要考虑哪些问题?

可靠性?

差错控制:物理的电路并非完美。(错报)

差错检查&差错纠正;

接收方怎样根发送方说哪些东西收到了,哪些东西没有收到。(这些东西都属于协议)

路由:可能有很多路由,很多路由器,如果有坏的路由,需要找到可以工作的路由器(丢包)

乱序(乱包):接收方可能受到乱序的包

发件人如何给邮件编号
接收者如何处理无序到达的消息

地址编址?

每一层都需要编址寻址,需要一种识别发送方和接收方的机制。寻址的对方可能是一个实体(进程)

网络互通性Internetworking

规模扩展性Scalability

复用?

统计分时复用:按需分配

流量控制:两通信的双方,发送方发送得很快,接收方接受得满,怎样让接收方不要被数据淹没。接收方给发送方一个反馈

拥塞控制:大家都很忙,数据都到不了对方。一层一层发送时如果有瓶颈就会降低速度。网络发送信息告诉我拥塞了,我通过协议降低速度,防止出现彻底拥塞。

QoS(quality of service)服务指标(带宽、延迟)

安全问题(防窃听Confidentiality、防篡改Integrity、身份鉴别Authentication)

每一层都要考虑这些问题,有的问题可能是几层之间解决,并不一定每层要处理所有问题

面向连接和无连接的服务

面向连接的服务(Connection-oriented Service)

连接建立的过程(为什么要先打开文件才能用?权限的判断、怎么把磁盘块调进来等等)包括发送方、接收方、网络方,进行协商,用什么样的参数(一包的体积有多大,要求什么样的服务质量),是否进化协议

使用连接。发送方在一端推入对象(位),接收方在另一端取出它们。在大多数情况下,顺序是被保留的,以便比特按照发送顺序到达。

释放连接

无连接的服务(Connectionless Service)

写信,全地址,每一包独立地选路

每条信息(字母)都包含完整的目的地地址,每一个都是通过独立于所有其他系统的系统进行路由的

QoS(quality of service)

image-20220307142652694

image-20220307142746037

面向连接的

可靠的消息流(长短不一的若干个字节流,保证了消息的边界)

可靠的字节流(不保持边界)TCP协议的实现者可以随意把信息粘在一起

可靠的含义:受到的内容一定是对的,没有错、丢、乱。谁也不能保证受到的数据对方能够接受。

不可靠:例如数字化语音

无连接的

image-20220308100528996

服务原语Service Primitive

=上下层之间的接口

上到下高速要做什么事情

底下有什么事情告诉上层

系统调用System calls:服务是用过系统调用实现的

不止是TCP应用程序之间的调用

在操作系统内核的内部用驱动程序(一堆子程序的集合)实现

(消息系统、系统调用、驱动程序,都可以)

服务、协议、服务与协议之间的解耦

分层的参考模型有哪些

OSI参考模型

ISO:国际标准化组织 OSI:开放系统互连

分层原则:*

  1. 各层之间相互独立,每层只实现一种相对独立的功能
  2. 每层之间界面自然清晰,易于理解,相互交流尽可能少
  3. 结构上可分隔开。每层都采用最合适的技术来实现
  4. 保持下层对上层的独立性,上层单向使用下层提供的服务
  5. 整个分层结构应该能促进标准化工作

PPT:两层之间是定义良好的功能越简单越好;上下层之间信息流最小化(交互最小化)

路由器通信子网只到第三层为止。

image-20220307144922357

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参考模型

会话层和表示层是因为应用不用同一套,实际上是存在的,只是看似不存在。

image-20220308102328999

image-20220308102704847

网络层

无连接的服务

IP

出现差错是通过ICMP通知发送端

服务:

尽最大努力地投递:丢了活该。我可能会把数据弄丢。

分组路由、避免拥塞(网络通风报信、应用层减慢投递速度,不通风报信,在传输时在数据包上加标签)

传输层:

TCP(可靠的面向连接的字节流服务)

将传入的字节流分割成离散的消息
将收到的消息重组到输出流中

流量控制,响应网络层的拥塞信号

UDP(无连接的不可靠的报文服务)

大数据量通信也必须要相应网络层的拥塞控制信号

NFS早起用UDP,提供可靠的服务,但可靠性由自己保障

DNS域名解析,NTP网络时间协议:幂等模式的通信(问多少次得到的答案都一样)

对于即时交付比准确交付更重要的应用
传输语音或视频(RTP:实时传输协议)

image-20220308105132932

报文段——数据报——数据帧——比特

课程安排:1、2层期中前,3、4层期中后

image-20220308105425331

最后更新于 2022-10-31