计算机网络概述
summary_2018/12
net
1、常见的概念
1.1、互联网、ISP
- 网络负责把主机连接起来,而互联网负责把不同的网络连接起来。
- ISP:Internet接入提供商ISP作为提供接驳服务的中介,需投人大量资金建立中转站,租用国际信道和大量的当地电话线,购置一系列计算机设备,通过集中使用,分散压力的方式,向本地用户提供接驳服务。个人或者机构向ISP缴纳一定的费用就可以接入互联网。
1.2、主机间的通信方式
- 客户服务器(C/S):客户端是服务请求方,服务端是服务提供方。
- 对等(P2P):对等网络,网络中的计算机没有C/S之分,每台计算机均是服务的提供者,也是服务的获取者。(去中心化、可拓展性、健壮性、负载均衡、隐私保护)
1.3、电路交换、报文交换、分组交换
- 电路交换:电路交换用于电话通信系统,通信过程中会一直占用,两个用户通信时要专门建立一条物理链路,但是对实际对线路的使用率极低,通常不到10%。过程:
建立连接->使用连接(一直占用)->释放连接
- 报文交换:采用存储转发方式,整个报文一起转发:
客户发送报文->电报中心接受报文、存储、等待、转发->客户接受报文
- 分组交换:分组交换也采用存储转发的方式,允许将一个报文信息分为多个分组分别进行转发(选择最合适的方式),每个分组携带目的地址、源地址,分组信息等等,然后在目的地进行重组。
1.4、时延
1、排队时延:分组在路由器中排队等待的时间,取决于网络的拥堵情况。
2、处理时延:对收到的分组进行分析,比如提取首部、选择对应的路由。
3、发送时延:路由器将分组发送到链路上所需要的时间:取决于分组长度和链路传输速率。
4、传播时延:分组在链路上传输所需的时间。
1.5、计算机网络体系结构
1.5.1、TCP/IP五层结构
- 应用层:为特定的网络应用程序提供对应的的服务,比如http、ftp、SMTP等等
- 运输层:提供端到端的透明传输,用户不用关心下层的的具体实现而可以使用该服务。除此之外还要保证数据的可靠传输(编号、确认重传)、差错控制与流量控制、拥塞控制(滑动窗口机制)。
数据单元称为“报文”
- 网络层:解决不通子网的连通问题、为报文进行选路、转发;还要负责网络拥塞控制(避免某一个子网的分组过多)等等。
- 数据链路层:在不可靠的物理媒介上提供可靠传输,包括物理寻址、封装成帧、差错检测(首部校验和)等等。
数据单元称为“帧”
- 物理层:为数据链路层提供传输媒介,尽可能的屏蔽掉物理层的的电气、机械等物理特性。
1.5.2、OSI七层结构
- 表示层:提供数据格式的转换服务,解决采用不同编码的计算机能相互理解数据的内容,采用抽象的数据格式来定义数据,表示层负责管理这些数据格式、并将计算机内部的格式转化为网络通信中的统一格式。比如加密、解密就是在表示层完成。
- 会话层:负责进程间通信会话的管理,创建、管理销毁等等。
1.6、数据在各层之间的传递
!
2、物理层
2.1、通信方式
- 根据信息在传输线上的传输方式可分为:
- 单工通信:只能向一个方向传输数据
- 半双工通信:两个方向可以交替传输
- 全双工通信:可以同时向两个方向传输
2.2、基带调制、带通调制
3、数据链路层
3.1、常见概念
- 链路(link ):从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。
- 数据链路(data link):除了有一条物理线路外,还有一些必要的通信协议来控制数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- MAC地址:MAC 地址是链路层地址,长度为6字节(48位),用于唯一标识网络适配器(网卡)。一台主机拥有多少个网络适配器就有多少个 MAC 地址。
- 局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
3.2、基本问题
3.2.1、封装成帧
- 将网络层传递下来的报文加上首部和尾部构成一个数据链路层的基本数据单元,表示帧的开始和结束
!
3.2.2、透明传输
- 透明即不存再的意思。由于网络层传递下来的报文中也可能存在帧的首部、尾部相同的字符,可能会导致数据的不正常截断,因此需要传输的数据内容应该被当作透明的,不会被当作帧的首部和尾部。因此我们需要通过转义实现,常用两种方式:
字节填充/0比特填充
!
3.2.3、差错检测
- 比特差错、传输差错
- 比特差错:链路传输不能保证完全百分之百的正确可能出现0变成1,也可能出现1变成0。
- 传输差错:比如数据丢失、重复等等,这是运输层需要完成的事情。
- 数据链路层需要的差错校验需要保证的是没有比特差错,即收到的数据都是正确的,而不正确的数据直接丢弃,由运输层保证。使用循环冗余检验(CRC)的检错技术,在硬件上完成校验,速度很快,不影响数据的传输。
3.3、信道分类
3.3.1、广播信道
- 使用一对多的通信方式,多个主机均可以发送信息,需要使用专门的协调方式进行控制来防止碰撞。比如信道复用技术、CSMA/CD 协议。
3.3.2、点对点信道
- 点对点进行通信,不会发生碰撞,使用ppp协议进行控制。
3.4、信道复用技术
3.4.1、信道复用技术
- 频分复用
- 时分复用
- 统计时分复用
- 频分复用、时分复用在使用过程中会一直占用信道,但在实际通信过程中,却不需要一直占用信道,因此效率都不是很高。统计时分复用改进了这个缺点。
- 波分复用
- 码分复用
- 原理:为每个用户分配一个唯一的码片序列(chipping sequence),传输“0”用“-1”表示、“1”用“+1”表示。各用户使用相同频率载波,利用各自码片序列编码数据。
- 在接受端根据自己的码片计算结果:结果为0的是其它用户发送的数据,结果为1的是用户发送的比特1,结果为-1的是用户发送的比特0。
- 缺点:实际传输的数据是需要传输的数据的m倍。
3.5、CSMA/CD
3.5.1、概念
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection)即带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测)。
- 多点接入:许多主机以多点的方式连接到总线上。
- 载波监听:每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
- 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。
3.5.1、具体算法:
1、记端到端的传播时延为τ,最先发送的站点最多经过2τ就可以知道是否发生了碰撞,称2τ为争用期。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
// 步骤:
1、从离散的整数集合【0,1,……(2^k-1)】中随机取一个数,记为r,重传应推后的时间就是r倍的争用期。k=Min[重传次数,10]
2、当重传次数不超过10时,参数k等于重传次数;当重传次数超过10时,k就不再增大一直等于10。
3、当重传16次仍然不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向上层报告。
3.5.3、深入探究(最短帧64字节)
- 在这个算法中,存在一个问题是,在小于争用期的时间内已经发送完了数据,由于数据已经传输完,而不能终止传送进行重传,为了避免这种情况,需要保证在争用期内数据未传输完以太网规定了一个最短帧的长度为64个字节,即512bit。(对于10Mb/s的以太网)
- 协议规定了基本退避时间为2t,具体的争用期时间通常取51.2us,对于10Mb/s的以太网,在争用期内可发送512bit,即64字节。
3.6、PPP协议
- 互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
- 帧格式:
F 字段为帧的定界符
A 和 C 字段暂时没有意义
FCS 字段是使用 CRC 的检验序列
信息部分的长度不超过 1500
4、网络层
4.1、概述
- 网络层是互联网的核心,使用ip协议把所有网络连接起来;为上层提供灵活、无连接、尽最大努力交付的数据报服务。
- 常用的协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
4.2、IP数据报格式
1、版本 : 有 4(IPv4)和 6(IPv6)两个值;
首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是4字节。因为首部固定长度为20字节,因此该值最小为 5。如果可选字段的长度不是4字节的整数倍,就用尾部的填充部分来填充。
2、区分服务 : 用来获得更好的服务,一般情况下不使用。
3、总长度 : 包括首部长度和数据部分长度。
4、生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
5、协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
6、首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
7、标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
8、片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
4.3、IP 地址编址方式
- 为满足IP地址的需求,IP地址的分类经历了3个阶段:分类、子网、CIDR
4.3.1、分类
- IP地址由两部分构成网络号+主机号:IP 地址 ::= {< 网络号 >, < 主机号 >},同一类IP地址网络号、主机号具有相同的长度。
4.3.2、子网
- 从主机号中拿出一部分当作子网,比如对A、B类这种大型网络进行切分,变成3级网络。IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}
- 比如:
- 要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
- 外部网络察觉不到子网的存在。
4.3.3、CIDR