computer networking

课程主要内容:

  • 计算机网络和互联网
  • 应用层
  • 传输层
  • 网络层:数据平面
  • 网络层:控制平面
  • 数据链路层和局域网
  • 网络安全
  • 无线和移动网络
  • 多媒体网络
  • 网络管理

    计算网络和物联网

应用层协议:远程的进程在通信过程中应该有遵守的协议和规则。报文。
数据链路层:点到点
网络层:端到端,端口之间;路由和转发;原主机到目标主机的端对端传输
网络层:控制平面
传输层:上升到了进程,加强了网络层的传输,
传统的协议:IP 和 路由器

image-20210722132758018

1.1 什么是Internet?

网络—计算机网路—互联网,路由器工作在网络层,交换机工作在链路层;
节点:(1)主机及其上运行的应用程序;(2)路由器、交换机等网路交换设备
边:通信链路,(1)接入网链路:主机连接到互联网的链路(2)主干链路:路由器间的链路
协议:由协议支撑起来的就叫互联网(internet),对等层的实体在通信过程中应该遵循的规则。
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或其他事件方面所采取的动作。
PDU:协议数据单元,格式,长度等
从服务角度看互联网:从应用层及以下来看,所有的都叫基础设施。互联网是分布式的应用进程以及为分布式应用进程提供通讯服务的基础设施,基础设施包括:应用层以下的所有协议和应用实体。提供服务的方式是通过API,TCP/UDP。

1.2 网路边缘

网络边缘:主机、应用程序(客户端和服务器)
网络核心:互连着的路由器、网络的网络,数据交换的作用
接入网、物理媒体:有线或者无线通信链路

image-20210722171008433
端系统(主机):运行应用程序,如Web,email,在”网络的边缘”
客户/服务器模式(服务器的扩容问题):客户端向服务器请求,接收服务;如web浏览器/服务器,email客户端/服务器
对等(peer-peer)模式:很少(甚至没有)专门的服务器;如kaZaA/Emule
TCP:面向连接的服务;可靠;流量控制(流量);接收方的处理能力,以及网络路径的通行能力(拥塞控制)
UDP: 无连接的服务。不可靠。速度快。

1.3 网络核心:电路交换

网络核心:路由器的网状网络
基本问题:数据怎样通过网络进行传输?

  • 电路交换:为每个呼叫预留一条专有电路,如电话网

  • 分组交换:

    • 将要传送的数据分成一个个单位:分组
      
    • 将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端
      
    • 每段:采用链路的最大传输能力(带宽)
      
  • 线路交换不适合计算机之间的通信:
    连接建立时间长;
    计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多。即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用;
    以分组(pocket)为单位存储-转发方式:网络带宽资源不再分为一个个片(piece),传输时使用全部带宽;主机之间传输的数被分为一个个分组。比线路更浪费时间,在每个线路交换,换取到共享性。
    资源共享,按需使用:存储-转发:分组每次移动一跳
    分组交换:排队延迟和丢失
    如果到达速率>链路的输出速率:(1) 分组将会排队,等待传输;(2)如果路由器的缓存用完了,分组将会被抛弃;
    网络核心的关键功能
    路由:全局的,决定分组采用的源到目标的路径;路由表由路由实体算出来
    转发:局部的,将分组从路由器的输入链路转移到输出链路
    分组交换:统计多路复用。随机的划分时间片的方式。

  • 分组交换VS电路交换

  • 分组交换
    (1)虚电路:信令
    (2)数据报

    1.4 接入网络和物理媒体

    主要考虑接入方式、和接入网络开始讨论:

带宽是个重要问题
住宅接入:modemn 调制解调器
接入网:(1)DSL 对称
ASDL 不对称
打电话的同时可以上网。
​ (2)线缆网络
住宅接入:电缆模式,一部分带宽传上行数据,一部分带宽传下行数据
光纤种类:(1)单薄光纤(2)。。。
物理媒介:无线链路,可以分为:地面微波;wide-area; 卫星

1.5 Internet 结构和ISP

ICP:提供服务,谷歌,百度
互联网络结构:网络的网络
Tier 1 ISP Tier 1 ISP GOOGLE
IXP IXP IXP
Regional ISP Regional ISP
access ISP access ISP access ISP ……
中心:第一层ISP,覆盖率高,速率高

img

1.6 分组延时、丢失和吞吐量

分组交换:按需使用
瓶颈带宽;最小值
瞬时吞吐量:一个时间点
平均吞吐量:一段时间

1.7 协议层和服务模型

  • 各层次的协议数据单元
    应用层:报文(message)
  • 传输层:报文段(segment):TCP段,UDP数据报
  • 网络层:分组packet(如果无连接方式:数据报datagram)
  • 数据链路层:帧(frame)
  • 物理层:位(bit)

一层一层的:eg:两个异地哲学家的交流
对等层通过协议交换信息
分层:借助下层接口。层间接口向上提供更好的服务
服务的垂直的;协议是水平的
协议的目的:向上层提供更好的服务,通过本层实体交换等(交换得到的新功能),通过接口访问下层所提供的服务。
服务和服务访问点:(服务是垂直的)
通过层间接口,访问下层提供的应用。provider向服务用户以原语的形式提供服务。
层间界面的SAP:叫做服务访问点
服务类型:
面向有连接:TCP(两个用户在服务前联系)
面向无连接:UDP(一般情况下是不可靠的)
协议:同一层上对等实体之间所交换的数据包或报文的格式和含义
SAP:下层一个实体向上层提供更多的服务(原语形式)
关系:
本层协议:需要下层所提供的服务才能实现
协议目的:向上层提供更好的服务
数据单元(DU):SDU:上层我要传的东西

Internet 协议栈
物理层:把比特变成信息。把所有数字转换成物理信号
链路层;纯属物理层所提供的服务上,相邻两点传输以帧为单位的数据==相邻两点
网络层:转发和路由
传输以分组为单位的端到端的数据传送
传输层:(1)进程到进程的区分
(2)把网络层提供的不可靠服务转换成可靠服务(加强网络层的服务)
应用层:报文与报文之间的交互,实现各种网络交换
ISO/OSI参考模型
表示层:语义方面的信息,表示转换
会话层:维持会话

封装和解封装

下面是潦草指数800%的笔记*!!!!!
img
img
img

第二章 应用层

2.1 应用层原理

2.2 web 与HTTP

一些术语

  • web页:由一些对象组成
  • 对象可以是HTML文件、JPEG图像、Java小程序、声音剪辑文件等
  • web页含有一个基本的html文件,该基本HTML文件又包含若干对象的引用(链接)
  • 通过URL对每个对象进行引用
    访问协议,用户名,口令字,端口等
  • URL格式
    HTTP:超文本传输协议,不同厂商生产的服务器都遵守这个协议。使用Tcp,HTTP是无状态的,来了什么请求返回什么样的响应。并不维护客户的任何信息。
    非持久http和持久http, 持久http包括:流水和非流水

两种类型的HTTP报文:请求、响应
ASCII
HTTP请求报文格式:(1)请求(2)响应
提交表单输入:(1)post方式 (2)URL方式
用户服务状态: cookies
cookies(windows下能找到很多)能带来什么:验证、购物车、推荐、用户状态
web缓存(代理服务器)
目标:不访问原始服务器,就满足客户的请求
缓存的例子:安装本地缓存
计算缓存利用率,有缓存的延迟。不用增加带宽,并减少用户的访问时间

2.3 FTP

文件传输协议
FTP:控制连接与数据连接分开 有状态协议

2.4 Email 电子邮件

用户代理——邮件服务器——目标邮件服务器(SMTP协议),用户代理通过存储(pop3)协议从邮箱当中将邮件拉过来.
下载并删除模式,下载并保留模式

2.5 DNS(域名解析系统)

为其他应用所使用
提供域名(应用层)到IP地址的自动转换
命名、解析、维护是三个方面的问题。

2.6 P2P应用

既是服务器又是客户端,很少的服务器搭建起来
eg:流媒体、文件分发、VOIP

2.7 视频流化服务和CDN:上下文

视频由图像序列构成(帧频),图像是图像点的序列
streaming,多媒体流服务:DASH,在http上(传输层)

2.8 TCP套接字编程

socket编程:TCP;UDP

==以下是莱布尼茨手稿!!!。。。==

img

img

img

img

img

img

img

img

img

2.9 UDP套接字编程

UDP:在客户端和服务器之间没有连接

  • 没有握手
  • 发送端在每一个报文中明确地指定目标的IP地址和端口号
  • 服务器必须从收到的分组中提取出发送端的IP地址和端口号

UDP:传送的数据可能乱序也能丢失
进程视角看UDP服务:UDP为客户端和服务器提供不可靠的字节组的传送服务

第三章

3.1 概述和传输层服务

进程和进程之间以message为单位的逻辑通信
TCP向上提供的是字节流服务,UDP提供的是数据报
发送方:将应用层的报文分成报文段,再传给网络层
接收方;将报文段重组成报文,然后传递给应用层
网络层:主机到主机间的服务(IP)
传输层:传输的是端口号(TCP)
eg:Andy 和 bill 家的各自12 个孩子写信

3.2 多路复用/解复用

服务器端:TCP传输的是四元组,port是本地整数,TCP向下传的是Message 和 sock
然后源端口、目标端口、M
继续是源IP和目标IP
UDP则不同:
服务器(server):sock 和port(端口),本地IP和端口捆绑
client:目标端口和目标IP

3.3 无连接传输:UDP(用户数据报协议)

主要应用于流媒体:
UDP校验和:检测在被传输报文段中的差错

3.5 面向连接的传输:TCP(popline)

TCP在IP不可靠服务的基础上建立了rdt

  • 管道化的报文段:GBN or SR
  • 累计确认(像GBN)
  • 单个重传定时器(像GBN)
  • 是否可以接受乱序的,没有规范

TCP重传:S - R

3.6拥塞控制原理

原理:

img

第八章 网络安全

8.1 什么是网络安全

alice and bob 著名的网安模型,trudy是攻击者

8.2 加密原理

key 密文 最后变成明文
加密语言:
***对称密钥密码学:发送方和接收方的密钥相同 /key的分发 ***
DES,用AES替代DES。
块加密:block
公开密钥密码学:发送方使用接收方的公钥进行加密,接收方使用自己的密钥进行解密。
证书就是公钥的公开形式
不需要distribute这个key
RSA算法:选择密钥 *
RSA:另一个重要的特性
先用公钥,然后用私钥 ===先用私钥,然后用公钥

8.3 认证

认证:重新尝试
ap5.0;安全漏洞
中间攻击:

8.4 报文完整性

数字签名
img
报文摘要:对长报文进行公开密钥加密算法的实施需要耗费大量的时间。
多到一
固定长度,正向计算容易fingerprint,反向困难。
报文摘要算法:
散列函数算法: MD5 和 SHA-1
一车水果打成一毫升果汁,一毫升果汁足以能够代表这车水果

8.5 密钥分发和证书

报文——>报文摘要——>发送方用自己的私钥签署的报文摘要(1毫升果汁)——> 接收方用bob的公钥解这个东西
如何拿到对方的公钥是一个问题!
可信赖中介
KDC:服务器和每一个注册用户都分享一个对称式的密钥。Alice和bob在KDC通信时,知道他们自己的对称式密钥。
可靠的获得一个实体的公钥
通过带外的方式获得认证中心的公钥:CA(Certification authority)
将每一个注册实体E和他的公钥捆绑,E到CA那里注册他的公钥。
CA 用私钥签署了bob和他公钥的捆绑关系(bob的证书),Alice 需要拿到CA的公钥(带外方法)。
根证书:是未被签名的公钥证书或自签名的证书,拿到一些CA的公钥
信任树:信任证书CA颁发的证书,拿到了根CA公钥
操作系统安装自带的证书

8.6 各个层次的安全性

机密性,源端可认证性,报文完整性
私钥加密报文摘要=数字签名
PGP
ssl理论上在应用层, ssl:安全套接字层(Secure sockets layer),
为使用SSL服务的、基于TCP应用提供传输层的安全性

8.7 防火墙firewall

将组织内部网络和和互联网隔离开来,按照规则允许某些分组通过(进出),或者阻塞掉某些分组。 规则是网络管理员事先配置好的。(按照字段形式)
分组过滤:
无状态分组过滤器
有状态分组过滤器:(根据TCP/UDP头部字段匹配后,数据内部不分析)字段匹配后,connection有没有建立起来

8.8 攻击和对策

IDS:入侵检测系统
根据TCP/UDP头部字段匹配后,分析内部数据
每个网段设置一个IDS

第6章 链路层和局域网

6.1 引论和服务

目标:理解数据链路层服务的原理:

  • 纠错和检错
  • 共享广播通道:多点接入(多路访问)
  • 链路寻址层
  • LAN:以太网、VLANs
  • 可靠数据传输,流控制:done!

实例和各种链路层技术的实现
网络结点的连接方式:链路(点到点,多点连接)

结点(主机或路由器的)
帧:链路层的协议数据单元
链路:边,把结点连到一起的边
功能:把帧通过链路从一个结点传到另一个结点(点到点)
网络层:端到端
传输层:进程与进程之间的区分,加强网络服务
应用层:交换报文,实现网络应用

链路层:上下文
链路层提供的服务:

  • 成帧,链路接入:
  • 在相邻两个节点完成可靠数据传输
  • 在相邻两个节点完成可靠数据