计网笔记_1
第一章:概论
主要概念和术语,主要框架技术
总括了整体的框架和知识点,打基础,最重要。
(以互联网Internet为例)
从大的构成来看互联网,包含三个子系统:网络边缘edge – 接入网access – 网络核心core
网络的划分(由距离)
1-10m: Personal Area Network (PAN)
100m: Local Area Network (LAN)
1-100km: Metropolitan Area Network (MAN)
100km-1000km: Wide Area Network (WAN)
10000km: Internet
1.1 Internet是网际,各种网络的网络
什么是互联网?
首先,什么是网络:
包括节点和边,大小规模不限的图,包含关系、大小、形状等要素。
其次,什么是计算机网络:
有两种节点,主机节点(端end节点)和中转节点(中继器-链路层、交换机-网络层、路由器-更高层,等),把节点连在一起的边叫链路(主机到交换机:接入链路access,中转节点之间:骨干链路backbone)。
除了链路之外,不同网络设备之间还有协议protocol,每一层都有多种不同的协议。
协议:对等层的实体(peer to peer的)在通信当中需要遵守的标准或规范的集合。
最后,什么是互联网(互联网也是计算机网络的一种):
以TCP/IP协议簇协议为主的网络构成的网络叫互联网Internet,是一堆网络通过网络互连的设备构成的网络。
也可以把互联网看成分布式应用和网络基础设施两部分,通信基础设施为应用提供编程接口(通信服务)。
TCP提供面向连接的服务,UDP提供无连接的服务。
1.2 网络边缘edge:
主机、应用程序(客户端和服务器)
应用程序之间打交道的方式:客户端-服务器模式(CS模式),因为CS模式是集中式的,一旦服务器宕机,全完蛋,所以可扩展性很差(请求越多,性能越差,到一定时候断崖式下跌),另外一种方法,在文件分发中,除了标准CS模式的FTP之外,还有peer to peer模式,也就是p2p,表示对等体之间的服务,客户端可以在一定条件下充当其他客户端的服务器,是分布式的,主机既是客户端,也可以是服务器,请求多了的同时,请求的路径也多了,所以可扩展性比较强。
提供服务的方式:面向连接的服务,无连接的服务。
面向连接的通信方式:TCP/IP协议簇,应用双方先握手(打招呼),底层设施和协议做好准备,链路上的所有设备都知道要开始通信了,这是面向连接的方式。
特点:可靠保序(不重复,不丢失,不出错,不失序),流量控制,拥塞控制
无连接的服务:UDP协议为主的,把应用之间通信细分到进程和进程之间,进程之间通信不需要先握手(打招呼),直接发送数据,丢了就丢了,对方收到就回复,没收到就重新传。
特点:实时,事务性很强,很适合一些只查询一些内容的进程。
1.3 网络核心core
网络核心:路由器的网状网络,关键功能:交换switching和路由routing
基本问题:数据怎样通过网络进行传播?
线路(电路)交换circle switch、分组交换packet switch(ing)
电路交换circle switch(ing):靠信令(控制信息)来分配带宽,构建传输连接线路,形成一个独享的线路,在分配结束之前,该线路不再共享,从而预留资源,保障性能。
分配方法:时分复用TDM,频分复用FDM(电磁波的频率),波分复用WDM(广播的波段),码分复用CDM(主要在接入access中而不是核心中,CDMA)。
电路交换不适合计算机通信,因为电路交换的连接建立耗时长,计算机通信有很强的突发性,不需要独享线路,而且电路交换可靠性不强(多跳连接未必稳定)
分组交换packet switch(ing):每条链路上都使用全部带宽,不再独享一整个链路。主机之间通信传输的数据分为一个个packet,在每个交换节点上以存储转发的方式传播,链路上的这个节点在接收存储的时候,链路上的其他传过的和将传的节点就可以共享给其他的传输任务,整个链路其实是共享的。若链路速率为R bps,长度(大小)为L bps的分组(packet),存储-转发延迟:L/R s。
排队延迟:到达速率>链路传输速率,就需要排队,带来排队延迟。
另外,链路上每个节点(路由)的缓存是有限的,如果排队的包多了,路由的缓存就会用完,这往后来的包就会被丢弃。
也可以理解为一种时分复用,但是分组交换对时间的复用方式不固定,称为统计多路复用。
用延迟换取整条链路的共享性。
分组交换的传输有两种方式:数据报方式(无连接)和虚电路方式
数据报datagram的工作原理:
在通信之前,无须建立连接,有数据就传,每个分组都有独立的路由(目的地址),路由器根据分组的目标地址进行路由。
虚电路方式:
在通信之前,靠信令建立连接(虚电路表),包含每一条的路由信息,维护主机的互联状态。
网络核心的关键功能:转发和路由。
路由保存路由表,链路通过查路由表,知道包的终点(对方主机地址),再从相关端口转发出去。
1.4 接入网access和物理媒体
住宅接入:调制解调器modem
DSL方式,digital subscriber line,用电话线上网,调制解调。
线缆网络方式,有线电缆信号线,用电视信号线,但是电视信号本身是单向的,所以数字化改造成双向的,带宽共享。
电力线入网方式:电网提供网络服务,通过电力的调制解调器power modem。
光纤方式:光纤入网,直连运营商。
企业接入Ethernet:
交换机直连。
无线接入网络:
WLAN,5G。
物理媒体:
双绞线(Twisted pair)TP:两根绝缘铜线拧在一起。
同轴电缆Coaxial cable:两根同轴的铜导线。
光缆Fiber(单模/多模光纤):高速、低误码率、安全。
无线链路类型:(反射、吸收、干扰)
地面微波,LAN,wide-area(蜂窝),卫星。
通信方式:单工simplex,半双工half-duplex,双工Full-duplex
1.5 Internet结构和ISP
互联网络结构:网络的网络
端系统通过接入ISPs(Internet Service Providers)连接到互联网。
客户接入区域ISP(regional ISP),通常是地方电信公司,或者是接入企业/机构/大学的ISP,这些ISP再接入全局ISP(Global ISP),这些global ISP之间再互相连接(对等连接)保证覆盖率,或是接入到IXPs(Internet Exchange Points)。
如果需求太大,客户体量太大,谷歌百度等content provider network或叫Content Delivery Network (CDN),就会在Regional ISP较近的地方部署自己的数据中心DC data center。
Points of Presence (PoP) 接入点
1.6 分组延时、丢失和吞吐量
再路由缓冲区排队,产生延时
四种分组延时:
节点处理延时proc,排队延时queue,传输延时L/R(trans, 数据传输要多久,即数据全从发端送走),传播延时d/s(prop, 在路上的时间,收端拿到最后一bit数据的时刻 – 发端送走这一bit的时刻)
节点总延时=四种延时之和(每一跳)
传输线路流量强度I:I = La / R;
流量强度I趋近于0的时候,说明线路通畅,平均排队延时很小,而I趋近于1时,延时很大,线路近乎不通。
当I接近1的时候,平均延时陡增,计算耗时时, 公式中 I / (1 - I) 会导致时间趋于无穷,这时候网络质量就会差得离谱。
所以设计线路和协议的时候,要对这种情况进行避免和弥补。
Traceroute命令,有一个time-to-live,每到一个点,time-to-live减一,到某个节点若为0,则节点路由把进程杀掉并告诉发端,所以可以通过这一机制计算延迟。
分组丢失:
链路队列的缓存区有限。缓存区大了就意味着用户的等待时间增加,实用性降低。
吞吐量:
在源端和目标端之间传输的速率(数据量/单位时间),只计算吐出去且对方接收到的有效数据量。
瞬时吞吐量:在某时间点的瞬时速率;平均吞吐量:在一个长时间内的平均值。
瓶颈链路:一整条链路上限制吞吐量的链路。
网络安全:
攻击手段:
packet-sniffer数据包嗅探,探到然后截获packet interception数据包截获
IP spoofing:IP欺骗
Denial of service:DoS,高流量访问
防御手段:
Authentication,confidentiality,integrity checks,access restrictions,firewalls
1.7 协议层次和服务模型
服务service是功能的子集。
服务是向上层提供通信能力的,是垂直关系。
分层次,PDU协议数据单元(protocol data unit)
服务和协议的区别:
服务:低层实体向上层实体提供他们之间的通信的能力,是通过原语(primitive)操作的,垂直。
协议:对等层次的实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平。协议规定了报文传输和接收的格式format与顺序order,还规定了对报文作用的操作。
服务和协议的联系:
本层协议的实现要靠下层提供的服务来实现。
本层实体通过协议为上层提供更高级/更细致的服务。
数据单元DU data unit
SDU service data unit 服务数据单元
ICI interface control information 接口控制信息
PDU protocol data unit 协议数据单元
IDU interface data uint 接口数据单元
上层的IDU(包含头ICI和主体SDU)下来,本层拆开来的IDU,拿到SDU,加上本层的头ICI封装成PDU送给下层。
若上层来的SDU过大,可以拆开分别封装;若来的SDU过小,可以合起来封装成PDU。
分层处理和实现复杂系统的好处:
模块化,更方便地实现复杂系统。把大的问题分解成小的问题,可以有更好的标准,也可以更平滑地升级(技术升级)。
坏处:多分了层,层和层之间降低了传传输效率。
Internet协议栈:
TCP/IP协议:
应用层 - 运行应用。
Application: HTTP, IMAP, SMTP, DNS
传输层 - 细分主机到主机,完成进程到进程的区分,提供比网络层更可靠的传输。
Transport: TCP, UDP
网络层 - 端到端的传输,从源主机到目的主机,路由,传输以分组packet为单位的数据。
Network: IP, routing protocols
链路层 - 节点到节点,相邻节点间,以帧为单位传输数据,区分帧头帧尾。
Link: Ethernet, 802.11 (WiFi), PPP
物理层 - 把上层的帧frame拆成比特,数字信号到模拟信号,模拟信号到数字信号。
Physical: on the wire
ISO/OSI 参考模型
应用层
表示层presentation – 允许应用解释传输的数据(加密,压缩,机器相关的表示转换)
会话层session – 数据交换的同步,检查,恢复
传输层
网络层
链路层
物理层
(TCP/IP协议中,表示转换和数据交换给应用层做)
源主机三次封装,链路交换机两次解封装,看路由信息再打两层封装,传输,路由器做三层解封装看IP信息再打三层封装,传到目的主机,做三层解封装,拿到报文。
工作起来,整体和一个沙漏一样,网络层之上的很多协议提供的服务都基于IP协议的功能,而IP协议再负责把这些服务分散到链路层的一些协议上去。
每一层的PDU叫法不一样,
应用层叫报文message
传输层:报文段segment,TCP segment, UDP datagram
网络层:面向连接方式叫分组packet,无连接方式叫数据报datagram
链路层:帧frame
物理层:位bit