OSI 七层网络模型 | TCP/IP 四层概念模型 | 对应网络协议 |
应用层 | 应用层 | HTTP、TFTP、FTP、NFS、WAIS、SMTP |
表示层 | Telnet、Rlogin、SNMP、Gopher | |
会话层 | SMTP、DNS | |
传输层 | 传输层 | TCP、UDP |
网络层 | 网络层 | IP、ICMP、ARP、RARP、AKP、UUCP |
数据链路层 | 数据链路层 | FDDI、Ethernet、Arpanet、PDN、SLIP、PPP |
物理层 | IEEE 802.1A、IEEE 802.2 到 IEEE 802.11 |
在数据链路层,不改变网络实际拓扑,在逻辑上切断某些链接,使得主机到所有其他主机的路径是无环路的树状结构,从而消除兜圈子现象,避免广播风暴
数据链路层协议,载波监听、多点接入、碰撞检测
工作原理可总结为:先听后发,边听边发,冲突停止,延迟重发
具体工作原理:在发数据前,先监听总线是否空闲,若总线忙,则不发送;若总线空闲,则将数据发送到总线上。在发送数据的过程中,工作站边发送边监听总线,判断是否发生碰撞。若无碰撞,则继续发送数据直到传递完毕;若发生冲突,则立即停止发送数据,并发送一个加强碰撞数据,以便使网络上所有工作站都知道发生了冲突。然后等待一个预定的随机时间,且在总线为空闲时,再重新发送未发完的数据。
总线型以太网使用 CSMA/CD 方式传输数据
CSMA/CD 报文时间间隔
以太网端到端的往返时间 2t 为争用期,争用期时间通常取 51.2 us。对于 10Mb/s 的以太网,在争用期内可发送 512bit,即 64 字节。r*[0,....,(2^k-1)],r 为争用期倍数,k 为重传次数。
数据链路层属于不可靠传输
1)对物理层传输的比特流做帧定界,规定从哪里开始到哪里结束
2)透明传输。做帧定界时是用比特的不同组合,可能出现帧头帧尾与中间数据重复的问题,通过字符转义、比特插入等方法完成透明传输
3)差错检验。检验收到的帧在物理层传输的时候有无比特级别的错误
数据链路层通过 MAC 地址访问同一个网络共享总线的用户
网络与网络之间连接需要靠网络层,网络层也不确保可靠传输,只是尽最大努力交付
网络层协议有 IP网际协议,这是TCP/IP体系中两个最重要协议之一,与其配套使用的三个协议分别是:ARP 地址解析协议、ICMP 网际控制报文协议、IGMP 网际组管理协议
虚拟互联网是逻辑互联的网络,互连起来的各种物理网络的异构性本来就是客观存在的。IP 协议就可以使性能各异的网络从用户角度看起来是一个统一的网络
网络连接起来要使用一些中间设备,中间设备又称为中间系统或中继系统
物理层中继系统:转发器
数据链路层中继系统:网桥、桥接器
网络层中继系统:路由器
网桥和路由器的混合物:桥路器
网络层以上中继系统:网关
全世界存在各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够相互通信就必须进行非常复杂的硬件地址转换工作,因此这几乎是不可能完成的事
IP 编址把这个问题解决了。连接到互联网的主机只需要各自拥有一个的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便。ARP 的复杂过程都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
因此,在虚拟的 IP 网络上用 IP 地址进行通信给广大的计算机用户带来了很大的方便
IP 数据报由 首部 和 数据 两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。固定部分后面是一些可选字段,其长度是可变的
IP 协议可以支持多种协议,其中可以封装 ICMP、IGMP、TCP、UDP、OSPF... 由协议字段指出应将数据部分交给哪个进程
注意:IP 数据报的首部没有地方可以用来指明“下一跳路由的 IP 地址”,而是在路由表中;当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入 IP 数据报,而是送交下层的网络接口软件;网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址换成硬件地址,并将此硬件地址放在数据链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
上述以 IPv4 为例,IPv6 的首部长度固定为 40 字节,称为基本首部
实现通过对方的 IP 地址(域名)寻找对方的 MAC 地址的网络层协议。(解析自动进行,对用户来说是完全透明的)
作用:从网络层使用 IP 地址解析出数据链路层使用的硬件地址。解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一局域网上,就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器转发给下一个网络。
流程:主机 A 要向主机 B 发送数据
1)主机 A 首先查看自己的 ARP 表,如果找到了主机 B 的 MAC 地址,则直接对 IP 数据报进行帧封装,发送给主机 B;
2)主机 A 在 ARP 表中找不到主机 B 的 MAC 地址,则缓存数据报,接着以广播的方式发送一个 ARP 请求报文。ARP 请求报文带上源 IP 地址和源 MAC 地址(主机 A 的信息),目标地址为主机 B 的IP 地址,和全零的目标 MAC 地址。广播时,该网段上所有主机都可以收到该请求,但只有被请求的主机 B 会处理请求
3)主机B 比较自己的 IP 地址和 ARP 请求报文中的目标 IP 地址,若相同,将 ARP 请求报文中的主机 A 的 IP 地址及 MAC 地址存入自己的 ARP 表中,然后以单播的方式发送 ARP 响应报文给主机 A,其中包含了主机 B 的 MAC 地址
4)主机 A 收到 ARP 响应报文后,将主机 B 的 MAC 地址加入到自己的 ARP 表中,用于后续报文的转发,同时将 IP 数据报进行封装后发送出去
网络层协议,允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,ICMP 报文是装在 IP 数据报中,作为其中的数据部分。作用是为了更有效转发 IP 数据报和提高交付成功的机会,但也不能实现可靠传输
ICMP 报头只有 8 字节,简单报告差错。
ICMP 报文有两种:
1)ICMP 差错报告报文
终点不可达,没法转发;时间超时,无法到达对方;参数问题;改变路由,重定向
如:A 向 B 发送数据,R1 却向 R2 转发,R2 向 R1 发送错误报告并告知要从 R3 走(重定向),R1 向 R3转发数据
不发送 ICMP 差错报告的情况:
1、对 ICMP 差错报告报文不再发送 ICMP 差错报文;2、对第一个分片的数据报的所有后续数据报片都不发送 ICMP 差错报告报文;3、对具有多播地址的数据报都不发送 ICMP 差错报文;4、对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文
2)ICMP 询问报文
回送请求和回答报文;时间戳请求和回答报文
应用:
ping 使用 ICMP 的回送请求和回答报文来测试两个主机之间的连通性,发送 4 个数据包,回送也是 4 个
Traceroute 利用数据报中的 TTL 字段 和 ICMP 时间超过差错报告报文实现从源点到终点的路径跟踪。目前为了不消耗大量资源一般会拒绝 ICMP 请求,为了保护网络安全也会拒绝 tracert 查看到具体网络 ip 地址的路径
采用单播方式向 90 台主机传送同样的视频节目需要发送 90 个单播
采用多播方式,只需要发送一次到多播组,路由器复制分组。局域网具有硬件多播功能,不需要复制分组。当多播组的主机数很大时(如成千上万个),采用多播方式就可明显地减去网络中各种资源地消耗
为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP。
连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有组成员,需要使用多播路由器选择协议
1)多协议:
MPLS 上层可以采用多种协议,如 IP,IPX。可以使用多种数据链路层协议,如 PPP,以太网,ATM 等
2)标记:
为了实现交换,可以利用面向连接的概念。每个分组携带一个叫标记的小整数,标记在 IP 数据报外面,交换机(即标记交换路由器)根据该标记对分组进行转发。
3)交换:
表示转发时不再上升到第三层查找路由表来转发分组,而是根据标记在第二层用硬件转发
作用:减少查表次数,节约查表时间,使网络层数据转发效率变高
MLPS 并没有取代 IP,而是一种 IP 增强技术。其支持面向连接的服务质量;支持流量工程,平衡网络负载;有效支持虚拟专用网 VPN
路由转发 IP 报文的依据是路由表,通过匹配路由表里的路由项来实现对 IP 报文的转发
在路由表中,每一条路由最主要的是目的网络号地址和下一跳地址。路由表没有给分组指明到某个网络的完整路径,而是指出某个网络应当先到某个路由器(即下一跳),在达到下一跳路由器后,再继续查找其路由表,明确下一步应该到哪个路由器,以此直到最后达到目的网络
路由器分组转发过程:
1)从数据报首部提取目的主机地址 D,得出目的网络地址 N
2)若网络 N 与路由器直接相连,则把数据报直接交付目的主机;否则间接交付
3)若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器
4)若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器
5)若路由表中有一个默认路由,则把数据报传送给路由表所指明的默认路由
6)若以上都不满足,报告转发分组出错
简单来说:当路由器收到一个 IP 报文,将报文中的目的地址提取出来,然后与路由表项包含的目的地址进行比较。如果与某路由项中的目的地址相同,则认为与此路由项匹配,进行数据转发,如果没有路由项能够匹配,则丢弃该报文
路由协议指数据报转发方式的网络层协议
静态路由:需要指定下一跳
动态路由:有 RIP、OSPF、BGP 协议,配置后动态学习路由条目
路由协议可分为域内路由选择和域间路由选择
域内路由选择:RIP、OSPF 协议
域间路由选择:BGP 协议
协议 | RIP | OSPF | BGP |
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离向量 | 链路状态 | 路径向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换结点 | 和本结点相邻的路由器 | 网络中所有路由器 | 和本结点相邻的路由器 |
交换内容 | 当前本路由器知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态 | 首次,整个路由表 |
非首次,有变化的部分 |
RIP 协议是一种分布式的基于距离向量的路由选择协议。仅和相邻的路由器交换信息,交换当前本路由器知道的全部信息(即路由表),并固定时间间隔交换一次
RIP 协议中每经过一个路由器,跳数就加 1。RIP 认为一个好的路由就是经过路由器的数目少。RIP允许一条路径最多只能包含 15 个路由器,距离的最大值为 16 时相当于不可达,即 RIP 协议只适用于小型互联网。
RIP 协议为什么不能实现最佳路径?
RIP 不能在两个网络之间同时使用多条路由。RIP 会选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由
特点:好消息传播快,坏消息传播慢。当网络出现故障时,要经过较长时间(如数分钟)才能将此信息传到所有路由器
OSPF 协议是一种分布式链路状态路由算法。OSPF 协议在本自治域系统中用泛洪法向所有路由器发送信息,交换本路由器相邻所有路由器的链路状态,并且当链路状态发生变化时交换一次
OSPF 将一个自治系统划分为若干个更小的范围,叫做区域。区域内进行路由信息更新,然后区域之间再进行信息交换。OSPF 适用规模小的网络。
OSPF 不用 UDP 而是直接用 IP 数据报传送,其构成的数据报很短,可以减少路由信息的通信量
BGP 协议是一种基于路径向量路由选择协议,是不同自治系统的路由器之间交换路由信息的协议,常用 BGP-4。与本结点相邻的路由器交换信息,首次交换整个路由表信息,之后交换有变化部分的信息
在 BGP 中,路由器对使用 179 端口的半永久 TCP 连接来交换选路信息
路由器 | 交换机 |
网络层,根据 IP 地址寻址,处理 TCP/IP 协议 | 数据链路层,根据 MAC 地址寻址 |
提供防火墙服务 | 不提供防火墙服务 |
连接不同的网络 | 端口扩展,扩大局域网接入点 |
交换机每个端口独享带宽,集线器每个端口共享带宽
交换机本身就是一种二层设备,所有的接口组成一个广播域。但是在VLAN配置后,每一个VLAN组成一个广播域。因此VLAN是划分广播域的一种技术
网络层是主机之间提供逻辑通信
传输层提供应用进程之间端到端的逻辑通信
一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。说明传输层具有复用和分用功能。
根据应用程序的不同需求,传输层需要有两种不同的传输协议,面向连接的 TCP 和无连接的 UDP
小提示:端口。可以通过端口查找应用进程,端口使用 16 位端口号进行标识。端口号具有本地意义,用于标识本计算机应用层中的各种进程。两个计算机中的进程要互相通信,不仅要知道对方的 IP 地址(用于找到对方计算机),而且还要知道对方的端口号(用于找到对方计算机中的应用进程),这样就能找到唯一主机的唯一进程。
假设 A 为发送方,B 为接收方
回顾:
停止等待协议:每发送完一个分组就停止发送,等待对方确认。收到确认后再发送下一个分组
自动重传请求 ARQ:通常 A 最终总是可以收到对所有发出分组的确认,如果 A 不断重传分组但总收不到确认,说明通信线路太差,不能进行通信。其中重传请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。
连续 ARQ 协议,具有滑动窗口协议,是 TCP 协议的精髓所在
发送方维持的发送窗口是指位于发送窗口内的分组都可以连续发送出去,不需要等待对方的确认,以此提高信道利用率。连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
接收方采用累积确认的方式,不必对收到分组逐个发送确认,而是对按序到达的最后一个分组发送确认,表示到这个分组为止的所有分组都已正确收到了。优点:容易实现,即使丢失也不必重传;缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息
(1)流量控制
往往是指点对点通信量的控制,是个端到端的问题(接收端控制发送端)
主要是靠接收方告知发送方接收窗口大小来控制发送窗口大小。所要做的就是抑制发送端发送数据的速率,以便接收端来得及接收
(2)拥塞控制
防止过多的数据注入到网络中,使网络的路由器链路不过载。前提是网络能够承受现有的网络负荷。
拥塞控制是一个全局性的过程,涉及到所有的主机、所有路由器,以及降低网络传输性能有关的所有因素。
分组丢失是网络发生拥塞的征兆,但不是原因。在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因
特征点 | TCP(传输控制协议) 单位:TCP 数据报 |
UDP(用户数据报协议) 单位:UDP 报文或用户数据报 |
是否连接 | 面向连接 具有 TCP 三次握手和四次挥手过程 |
面向非连接,无连接 |
传输可靠性 |
可靠 具有可靠的连接机制 |
不可靠 没有连接和确认机制,会丢包,会出错 |
应用场景 | 传输数据量大 |
传输数据量小 |
速度 | 慢 传输效率低 |
快 传输效率高 |
第一次握手:客户端向服务器发送请求报文,标志位 SYN=1,初始序列号 seq=x
第二次握手:服务器收到请求报文后,同意建立连接,发送确认报文,标志位 SYN=1,ACK=1,确认号字段为 ack=x+1,初始序列号为 seq=y
第三次握手:客户端接收到确认报文后,向服务器发送确认报文。标志位 ACK=1,序列号为 seq=x+1,确认号字段为 ack=y+1
采用三次握手主要是为了防止已失效的连接请求报文突然又传送到了,因而产生错误
第一次挥手:客户端发送释放连接的请求,标志位 FIN=1,序列号 seq=u
第二次挥手:服务器收到释放连接报文后,发送确认报文,标志位 ACK=1,序列号 seq=w,确认号 ack=u+1
第三次挥手:服务器向客户端发送释放连接报文,标志位 FIN=1,序列号 seq=v,确认号 ack=u+1
第四次挥手:客户端接收服务器发送的释放连接报文,发送确认报文,标志位 ACK=1,确认号 ack=v+1,序列号 seq=u+1
客户端等待时间为 2MSL,如果没有重复收到第三次挥手的释放连接请求,说明连接真正释放
应用层用于解决某一类应用问题。应用层的具体内容就是规定应用进程在通信时所遵循的协议
基于 UDP 协议
作用:域名和 IP 地址的相互映射
端口:53
任何一个连接在互联网上的主机或路由器都有一个唯一的层次结构的名字,即域名
给各个级别的域名设置服务器,再到服务器上查想访问域名的 IP 地址,域名是不会封装在任何一个数据报中
基于 TCP 协议
FTP 提供交互式的访问,允许客户指明文件的类型和格式,并允许文件具有存取权限。FTP 屏蔽了各计算机系统的细节,因而适用于在异构网络中任意计算机之间传送文件。
FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求
端口号:当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的端口 21、服务器进程用自己传送数据的端口 20
基于 UDP,因此 TFTP 需要有自己的差错改正措施
是一个小且易于实现的文件传送协议,只支持文件传输而不支持交互
基于 TCP
使用网络虚拟终端 NVT 格式
端口 23
与 FTP 相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接
标识万维网上各种文档,使每一个文档在整个互联网的范围内具有唯一标识符 URL
基于 TCP 进行可靠传输
端口号:80
HTTP 是无状态协议,基于客户服务器端的架构(通过可靠的链接交换信息,是无状态的请求/响应协议)
HTTP 是无连接的,限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,立即断开连接。采用这种方式可以节省传输时间
1xx 表示通知信息的,如请求收到了或正在进行处理
2xx 表示成功,如接受或知道了
3xx 表示重定向,表示要完成请求还必须采取进一步的行动
4xx 表示客户的差错,如请求中有错误的语法或不能完成
5xx 表示服务器差错,如服务器失效无法完成请求
万维网使用 Cookie 来跟踪用户
Cookie 表示在 HTTP 服务器和客户之间传递的状态信息
使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能跟踪该用户在该网站的活动
http 下 cookie 是明文传递的
https 下 cookie 是加密传送的
cookie 有大小限制
用户可以主动禁止 cookie
B/S 模式
发送邮件协议:SMTP,端口 25
MIME 是对 SMTP 的补充,可以同时传送多种类型的数据
读取邮件协议:POP3,端口 110 和 IMAP
基于 UDP
客户/服务器模型
作用:允许一台计算机加入新的网络和获取 IP 地址时不用手动参与
当 DHCP 服务器接收来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置
端口:67
例如:上网需要一个唯一的ip,但是营运商不会给唯一的一个 ip 给你,因为家庭宽带会每隔一段时间自动更新一次ip,所以这个唯一只是'上网需要一个唯一的 ip
C/S
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的需求,如实时运行性能,服务质量等。网络管理常称为网管
管理信息结构 SMI,管理信息库 MIB