计算机网络的组成:从组成看,计算机网络主要由三大部分组成:硬件(hardware),软件(software),协议(protocol)。从工作方式看:可分为边缘部分(edge part)和核心部分(core part)。从功能组成来看:计算机网络由通信子网(Communication Subnetwork)和资源子网(Resource Subnetwork)组成
计算机网络的功能:
按分布范围分类:广域网(WAN):几十千米到几千千米。城域网(MAN):几个街区或整个城市。局域网(LAN):几十米到几千米。个人局域网(PAN):约十米。
按传输技术分类:广播式网络(Broadcast Network):所有计算机共享公共信道。点对点网络(Peer-to-Peer Network):每条物理线连接一对计算机
按拓扑结构分类:总线形网络,星形网络,环形网络,网状形网络
按交换技术分类:电路交换网络,报文交换网络,分组交换网络(packet switch network)
按传输介质分类:有线网络,无线网络
计算机网络的性能指标:
时延(Delay):发送时延(Transmission Delay):传输一个数据分组从开始的时间到该分组最后一个bit发送完毕结束的时间。传播时延 (Propagation Delay):一个bit从链路一端到另一端所需时间。处理时延 (Processing Delay):分析地址,进行差错检验花费的时间。排队时延 (Queuing Delay):进入路由器的等待时间,当传输链路已达到可以同时传输的最大值,此时再有新的用户加入传输则会导致队列增长。
往返时延(Round-Trip Time ,RTT):从发送端开始发送数据,到发送端收到接受端确认的时间(中间可能包括了以上四种时延的组合)
吞吐量(Throughput):单位时间通过网络的数据量
速率(Data Rate):传输数据的速率,把最高数据率称为带宽(Bandwidth)
时延带宽积(Bandwidth-Delay Product):指发送的第一个bit到达终点时,此时一共发送了多少bit。时延带宽积=传播时延×信道带宽
分层结构:基本原则是让每层实现一种相对独立的功能,相互交流尽可能少。保持下层对上层的独立性,上层单向使用下层提供的服务。两个主机通信时,同一层在逻辑上有一条直接信道,不经过下层直接传输数据。
协议,接口与服务:
只有先实现本层协议,才能向上层提供服务
服务的分类:
ISO/OSI模型:
TCP/IP模型:
TCP/IP和OSI模型的不同:
客户/服务器模型(C/S):有一个总是打开的主机称为服务器,服务器一直处于接受请求状态,当其他客户机发送请求,服务器接收请求后,给予对应服务。
P2P模型:相比于C/S模型,P2P模型中网络的传输内容不再保存在中心服务器,而是分配到每个节点,每个节点都具有上传和下载的功能
层次域名空间:因特网采用层次树状结构命名法,采用这种命名法,任何一个链接到因特网的主机都有一个唯一的层次结构名称,即域名。如www.cskaoyan.com中com为顶级域名,cskaoyan和www分别为二,三级域名。
注意事项:
域名服务器:因特网的域名系统被设计出一个联机分布式的数据库系统,采用C/S模型。域名到IP地址的解析是由域名服务器上的程序完成的。主要有四种域名服务器:根域名服务器,顶级域名服务器,权域名服务器,本地域名服务器。
域名解析过程:域名解析是指把域名映射成IP地址或把IP地址映射成域名的过程,前者称为正向解析,后者叫反向解析。当客户端需要域名解析时,会通过本机DNS客户端构造请求报文,以UDP数据包的形式发往本地域名服务器。
域名解析的方式:递归查询,递归与迭代相结合查询
FTP工作原理:FTP提供交互式访问,采用C/S工作方式,使用TCP可靠的传输服务。一个FTP可以为多个客户进程服务。FTP的服务器进程由两大部分组成:主进程:负责接收新的请求。从属进程:负责处理单个请求。
控制连接和数据连接:使用两个并行TCP连接:
电子邮件组成结构:
MIME(多用途网络邮件扩充):解决语言格式问题
SMTP和POP3:SMTP采用TCP连接,端口号为25,使用MAIL命令开始,QUIT命令退出。POP3使用C/S工作方式,在传输层使用TCP,端口号为110,有两种工作方式:下载并保留服务器文件,下载并删除服务器文件。
万维网:WWW,是一个分布式联机信息存储空间,由全域“统一资源定位符”(URL)对资源进行标识,采用超文本传输协议(http)
万维网内核:
HTTP操作过程:
常见的应用层程序:
应用程序 | FTP数据连接 | FTP控制连接 | TELNET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP |
---|---|---|---|---|---|---|---|---|---|
使用协议 | TCP | TCP | TCP | TCP | UDP | UDP | TCP | TCP | UDP |
熟知端口号 | 20 | 21 | 23 | 25 | 53 | 69 | 80 | 110 | 161 |
传输层的功能:
复用和分用:复用是指发送方不同的应用进程都使用同一个传输层协议传送数据。分用是指接收方的传输层在剥去报文的首部后能够把数据正确分配给目的应用进程。
端口的作用:端口能让应用层的数据向下交付给传输层,以及让传输层知道应将报文段中的数据向上通过端口交付给应用层相应的进程
端口号:分为熟知端口号(0-1023):这些端口号被分配给TCP/IP等最重要的应用程序。登记端口号(1024-49151):这类端口号必须先登记,才能使用。短暂端口号(49151~65535):仅供客户端使用
套接字:端口号拼接到IP地址构成套接字Socket
UDP数据包:UDP仅在IP的数据包服务上增加了两个基本服务:复用分用和差错检验。
UDP优点:
UDP首部格式:具有16位源端口号,16位目的端口号,16位UDP长度,16位UDP检验和(共8字节)
UDP校验:在计算校验和时,会在UDP数据包前面临时添加12B的伪首部,来进行校验和计算。伪首部不参与数据传送,只是用来计算校验和。
TCP协议特点:TCP是在不可靠的IP层上实现的可靠的数据传输协议,TCP是TCP/IP体系中非常复杂的一个协议,主要特点如下:
TCP报文段:TCP传送的数据单元称为报文段,TCP报文段可以用来运载数据,也可以用来建立连接,释放连接和应答。一个TCP报文段分为首部和数据两个部分,整个报文段作为IP数据包的数据部分,封装在IP数据包中,其首部的前20B是固定的。
TCP首部:
TCP连接管理:TCP连接有三个阶段:连接建立,数据传送和连接释放。TCP采用C/S方式进行连接建立。
TCP的连接建立通常经历三个步骤,称为三次握手:
TCP的连接释放通常经历四个步骤,称为四次挥手:
TCP可靠传输:主要是通过三个条件来满足:
TCP流量控制:传输层和数据链路层流量控制的区别是:传输层定义端到端用户间的流量控制,数据链路层定义两个中间相邻节点的流量控制。数据链路层的滑动窗口协议的窗口大小不能动态变化,而传输层可以动态变化。
拥塞控制和流量控制的区别:拥塞控制是控制全局数据量,使网络能够承受现有的网络负载。而流量控制是针对点对点间的通信量控制,抑制发送速率,使接收端能够来得及接收。
接收窗口Flow 和拥塞窗口Congestion:接收窗口rwnd是根据目前接收缓存大小所许诺的最新窗口值,反映接收方容量。拥塞窗口cwnd是发送方根据自己估算的网络拥塞程度设置的窗口值,反映网络容量。发送窗口上限值=min[rwnd,cwnd]
TCP拥塞控制:
慢开始和拥塞避免:TCP刚连接好时,先令cwnd=1,每收到一个新报文段的确认cwnd+1,这样逐步增大发送方的cwnd,使诸如网络速率更合理。如一开始cwnd=1,发送一个报文段确认后,cwnd=2,第二次可以发送两个报文段,都确认后,cwnd=4,一直下去就可以达到规定的慢开始门限ssthresh(阈值),然后改用拥塞避免算法:每经过一个往返时延RTT就把cwnd+1,而不是加倍,即转换为线性增长。
网络拥塞的处理:发送方判断出现拥塞,就把慢开始门限设置为出现拥塞时的发送方cwnd值的一半,然后把cwnd置1,重新启动慢开始算法。如最开始ssthresh=16,经过慢开始算法后,采用拥塞避免算法,当cwnd=24时出现拥塞,此时设置ssthresh=12,cwnd=1,重新开始慢开始算法。
快重传和快恢复:快重传:当发送方连续收到三个重复的ACK报文时,直接重传对方未收到的文段,不必等待重传计时器超时。快恢复:当发送方连续收到三个冗余ACK,把ssthresh设置成此时cwnd的一半,然后此时直接把cwnd设置为ssthresh的值,开始拥塞避免算法,不用慢开始。
异构网络互联:TCP/IP体系在网络互联上采用的做法是在网络层(IP层)采用标准化协议,但是相互连接的网络可以是异构网络
路由与转发:路由器主要完成两个功能:一是路由选择(确定路径),二是分组转发(当一个分组到达时采取的动作),前者会根据路由选择协议构造出路由表,并定期更新维护。后者处理通过路由器的数据流,关键是转发表查询,转发及相关的队列管理和任务调度。
拥塞控制:保证子网能承载所达到的流量,全局性
静态路由算法(非自适应路由算法):由网络管理员手动配置路由信息,当网络拓扑结构或链路状态发生变化时,也需要手动进行修改。
动态路由算法(自适应路由算法):路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。这些路由会在一定的时间间隙里不断更新。
距离-向量路由算法:所有结点定期将他们的路由选择表传送给所有与之直接相邻的结点,路由选择表里包括:路径目的地,路径代价(距离),在下面情况会更新路由选择表:1,被通告有一条新加入的路由,2,发来的路由信息中,发现有一条到达目的地的路由更短
链路状态路由算法:此方法要求每个参与算法的结点都具有完全的网络拓扑信息,他们执行下面两项任务:1,主动测试所有邻接结点的状态,两个共享一条链接的结点是相邻结点,他们链接同一条链路。2,定期将链路状态传播给其他路由节点。链路状态路由算法主要有三个特征:
层次路由:因特网将整个互联网划分为比较小的自治系统,每个自治系统有权自主决定本系统采用何种路由选择协议,若两个自治系统需要通信,则需要一种系统间的路由协议来屏蔽差异。因特网把路由协议分为两类:
IPv4分组格式:
IP数据包分片:一个数据链路层数据包能承载的最大数据量称为最大传送单元(MTU),不同的数据链路层协议有不同的MTU,IP分片涉及一定计算。
IP数据报分片例题:一个长为4000B的数据包(首部20B,数据部分3980B),到达一个路由器,需要转发到一条MTU=1500B的链路上。
答:每个分片最大能发送1480B的数据(有20B的头部),故能分为三片。第一片:MF=1,DF=0,代表可分片且右侧仍有分片,片偏移为0,有效数据为1480B.第二片:MF=1,DF=0,片偏移为185(1480/8)有效数据为1480B.第三片:MF=0(右侧已经没有剩余分片),DF=0,片偏移=370,有效数据为1020B(3980-2×1480)
网络层转发分组的流程:
IPv4地址与NAT:IPv4的基本格式举例:192.168.1.10。共有四部分,每部分占8位,所有每部分最大可为255.按网络号占用将IPv4地址分为5类:
主机号全为0表示网络本身。主机号为1表示网络的广播地址,也称直接广播地址,可以通过该地址为连接到网络的所有主机传输信息。
127.0.0.0保留为环回自检地址,0.0.0.0表示本网络上的本主机,255.255.255.255表示整个TCP/IP网络的广播地址,但由于路由器对广播域的隔离,255.255.255.255等效于本网络的广播地址
网络地址转换(NAT)是指通过将专用网络地址转换为共用地址,从而对外隐藏内部管理的IP地址,NAT路由器至少有一个有效的外部全球地址,使用本地地址主机和外界通信时,NAT路由器使用NAT转换表将本地地址转换为全球地址,私有IP网段:
子网掩码:是一个与IP地址相对应的二进制串,1对应IP地址的网络号和子网号,0对应主机号。只需要将IP地址与子网掩码按位与,就能得到相应网络的子网地址。
无分类域间选择(CIDR):CIDR使用网络前缀来代替子网络的概念,因此IP地址的无分类两级编址为IP=<网络前缀>,<主机号>.使用CIDR时路由表由“网络前缀”和“下一跳地址”组成。查找时可能获得多个匹配结果,此时具有最长前缀的网络路由就是最具体的结果
变长子网类型题目例:对于128.14.32.5/20这个地址,计算出他的网络前缀
答:由20可以知道,前20位是网络前缀,即网络号,是1.经计算:IP=10000000.00001110.00100000.00000101.掩码=11111111.11111111.11110000.0000000000。二者按位与后得到网络地址为:10000000.00001110.00100000.00000000.由于后12位全0的是主机号,所以网络前缀就是前20位=10000000.00001110.0010
IP地址与硬件地址:IP地址是网络层及以上使用的地址,存放在IP数据包的首部,硬件地址(MAC地址)是数据链路层使用的地址,存放在MAC帧的首部。数据封装后,数据链路层看不到数据包组中的IP地址。
地址解析协议ARP:工作原理,假设主机A向主机B发送IP数据包:
动态主机配置协议(DHCP):常用于给主机动态分配IP地址,提供了即插即用的联网机制,DHCP是应用层协议,基于UDP,DHCP服务器和DHCP客户端的交换过程如下:
网络控制报文协议(ICMP):ICMP报文种类有两种,即ICMP差错报告报文和ICMP询问报文
ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源路由器报告差错和异常:终点不可达(路径有误),源点抑制(路由器主机过于拥塞),时间超过。
不应发送差错报告报文的情况:1,对ICMP差错报告报文不再发送ICMP差错报告报文。2,第一个分片的数据报片的所有后续数据报片都不再发送ICMP差错报文。3,对具有组播地址的数据包都不发生ICMP差错报告报文。
分八段,每段由一个十六进制数编号:如0010 0000 0000 0001:0000 1101 1011 1000:… 编码后变为2001:0db8:…
IPv6的特点:
移动IP:基于IPv4的移动IP定义三种功能实体:移动结点,本地代理,外部代理。
移动IP通信流程:
组播的概念:有的程序需要把一个分组发给多个目标主机,不是让源主机一个个发送给目标主机,而是让源主机把单个分组发给组播地址,由组播地址标识一组地址。使用因特网组管理协议IGMP来加入组播组。
IP组播地址:使用D类地址格式(224.0.0.0~239.255.255.255),组播可分为两种:一种只在本局域网内进行硬件组播,一种在因特网范围内进行组播
IGMP与组播路由算法:
路由信息协议RIP:RIP规定:
RIP特点:仅和相邻路由器交换信息,交换的信息是当前路由器知道的所有信息(自己的路由表),按固定时间间隔交换信息
开放最短路径优先协议OSPF:基本特点:
OSFP是网络层协议,不使用TCP,UDP,而是之间用IP数据包传输(首部协议字段为89),而RIP是应用层协议,他在传输层使用UDP。通过信息交换,最终能建立一个链路状态数据库(路由拓扑图),每个路由器根据这个数据库,采用Dijkstra算法计算自己到各目的网络的最优路径(代价最小),来优化自己的路由表
边界网关协议BGP:用于不同自治系统路由器间交换信息的协议。BGP采用路径向量路由选择协议(而不是距离向量协议和链路状态协议),这种协议使得他会尽力寻找一条较好的能抵达目的地的路由(不一定是最佳)。BGP是基于TCP的应用层协议。
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换结点 | 和本结点相邻的路由器 | 网络中的所有路由器 | 和本结点相邻的路由器 |
交换内容 | 当前本路由器知道的所有信息,路由表 | 相邻的所有路由器的链路状态 | 首次:整个路由表;非首次:变化部分 |
数据链路层的功能主要是为网络层提供服务:
帧计数:
字符计数法:是指在帧头部使用一个计数字段来表明帧内字符数,目的结点可以根据此字符数来确定帧结束的位置。
字符填充的首尾定界符法:符填充法使用特定字符来定界一帧的开始SOH与结束EOT,在数据内部若有特殊字符,则需添加转义字符ESC作为标注,表示该字符是数据内的内容,而不是本身需要识别的字符
例:a)网络层发送一串数据:SOH | A EOT ESC B | EOT (此处用“ | ”来分隔真正的开始和结束符)。 b)数据链路层对数据进行处理填充: SOH | A ESC EOT ESC ESC B | EOT 可见在数据内部EOT,ESC前都被添加了一个ESC,来表示读取时,他们至少数据内部的内容,本身不参与此次数据的编译。c)接收方传送给网络层的数据:SOH | A EOT ESC B | EOT 数据内部的ESC又被重新解标识,发送原始数据给网络层
零比特填充的首尾标志法:使用01111110来标志一帧的开始和结束(6个1),而对于数据,数据链路层中每遇到5个“1”就会自动在后面+一个0,来避免标志混淆,而接收方做该过程的逆操作,每接收到五个1,就自动删除其后面紧跟的0
例:原始数据(为了便于理解,手动找出了11111数据组):0110 11111 11111 0 11111 0010 传输数据:0110 111110 1111100 111110 0010
违规编码法:如曼彻斯特编码:规定数据中用“高-低”电平表示“1”,“低-高”电平表示“0”,而“高-高”,“低-低”电平违规,不存在于数据组中,则可以令“高-高”表示开始,“低-低”结束,就不会混淆
检错编码:奇偶校验码,循环冗余码,海明码(纠错编码)
滑动窗口机制:窗口指的是每次能发送或接收数据包大小
信道划分介质访问控制:
频分多路复用(FDM):将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术
时分多路复用(TDM):将一条物理信道按时间分为若干时间片,轮流分配给多个信号使用,每个时间片只能一个信号使用
波分多路复用(WDM):即光的频分多路复用,利用光纤传播不同波长(频率)的光信号,由于波长不同,各路光信号互不干扰,最后再用波长分解器将各路波长分解出来
码分多路复用(CDM):采用不同的编码来区分各路原始信号,如A的码片序列为00011011,则对于A站,发送比特1就是发送00011011,发送比特0就是发送11100100.按惯例习惯将码片序列中的0写为-1,1写为+1,所以A的码片序列为S=(-1-1-1+1+1-1+1+1)
设还有B站,其码片序列为T=(-1-1+1-1+1+1+1-1).假设A,B站向C站分别发送数据1,0.A站发送向量S=(-1-1-1+1+1-1+1+1)B站发送向量-T=(+1+1-1+1-1-1-1+1).二者在公共信道上线性叠加后得到S-T=(0 0-2+2 0-2 0+2).到达C站对向量解码:A数据等于S叉乘S-T(8),B数据等于T叉乘S-T(-8),最后得到的结果除以码片位数就能得到发送数据,A(1),B(-1,-1即0)
ALOHA协议:纯ALOHA协议:网络中站点需要发送数据时可以不进行检测就发送数据,若在一段时间未收到确认,则被认为发生了冲突,发送站点需要等待一段时间才能再发送;时隙ALOHA协议:规定只能在每个时隙开始才能发送一个帧,避免了用户发送数据的随意性,减少了数据冲突的可能性。
CSMA协议:一个结点要发送数据时首先侦听信道
信道状态 | 1-坚持 | 非坚持 | p-坚持 |
---|---|---|---|
空闲 | 立即发送数据 | 立即发送数据 | 以概率p发送数据,以概率1-p推迟到下一个时隙发送 |
忙 | 继续坚持监听 | 放弃侦听,等待下一个随机时间侦听 | 持续侦听,直到信道空闲 |
随机访问介质访问控制:
CSMA/CD协议:载波侦听多路访问/碰撞检测,遵循“先听后发,边听边发,冲突停发,随机重发”
适配器从网络层获取一个分组,封装成以太网帧,放入适配器缓存,准备发送
如果适配器侦听信道空闲,则开始发送帧。若信道忙,则持续侦听,直到空闲,然后发送
发送过程中,适配器持续检测信道,若无碰撞则顺利发送,若检测到碰撞,则中止发送,并发送拥塞信号
中止发送后,适配器执行指数退避算法
设单次端到端的传播时延为τ,在A端发送帧后至多经过2σ后就知道所发生的帧有没有产生碰撞(因为若在期间发生碰撞,说明B端在0 为使得A端能够确保知道数据是否发生碰撞,规定A数据的发送时间必须大于争用期2τ,才能保证在数据发完之前就已经检测到数据碰撞,故会规定一个最小帧长(总线传播时延×数据传输速率×2),来确保帧的发送时间足够长. 以太网规定争用期长度为51.2微秒,为解决发生后的冲突,CSMA/CD采用二进制指数退避算法来解决碰撞问题。
二进制指数退避算法:
在无线局域网环境下CSMA/CD协议不能简单搬用:一是因为无线介质信号强度动态变化范围大,检测不便,二是无线通信存在隐蔽站问题,可能检测不到
轮询访问介质访问控制:
在轮询访问中,用户不能随机发送信息,而是要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道分配,只能同时有一个结点在使用信道
局域网基本概念和结构:局域网常见拓扑结构有四类:总线形网络,星形网络,环形网络,网状形网络。局域网的主流传输介质是双绞线。局域网的介质访问控制方法主要是CSMA/CD,令牌总线/令牌环
以太网与IEEE 802.3:以太网采用总线型拓扑结构,所有计算机共享一条主线,以广播形式发送信息,采用CSMA/CD来对总线进行访问控制。以太网采用两项措施简化通信:1.无连接的工作方式:不编号,不确认,尽最大努力交付数据,不可靠服务。2.发送数据采用曼彻斯特编码信号。
计算机与外界局域网的连接是通过插入主机箱的网络接口卡,每块网卡都有唯一地址MAC(介质访问地址或硬件地址)
以太网的MAC帧:地址:通常使用6字节MAC地址。数据:46-1500字节,以太网帧要求必须满足最小长度64字节,数据较少时必须加以填充
高速以太网:
广域网:通常指覆盖范围广的长距离网络。局域网使用的协议主要在数据链路层,而广域网主要在网络层
PPP协议组成:
PPP协议状态:
HDLD协议:HDLD有三种站类型:主站,从站,复合站
数据操作方式:
PPP和HDLC的区别:
网桥:多个以太网通过网桥连接形成一个更大的以太网,原来的以太网就成为一个网段(LAN).网桥工作在链路层的MAC子层,可以使各网段称为隔离开的碰撞域
网桥的基本特点:1,具备寻址和路径选择能力。2,从源网络接收帧,采用目的网络的介质访问控制协议向目的网络转发该帧。3,可使用不同物理层,可互联不同局域网。
透明网桥(可能不是最佳路由):假设有一需转发帧:
源路由网桥(最佳路由):路由选择由源站负责,源路由生成过程如下:
以太网交换机主要采用两种交换模式: