计算机网络体系结构是计算机网络的各层及其协议的集合
采用分层的体系结构
优点:降低复杂度,易于研究和处理,各层之间是独立的,灵活性好,易于实现和维护,能促进标准化的工作
缺点:会降低效率,产生额外的开销
a.OSI的七层协议体系结构的概念清楚,理论也较完整,但它即复杂又不实用,没有得到市场的认可
b.TCP/IP 获得了更广泛的应用
各层完成的主要功能
主机1向主机2发送数据时数据在各层的封装
物理层(主要考虑比特编码、比特同步、比特传输)
一、传输媒体:
a.导引型(有线)
(1)双绞线 ------最常用 范围几到十几公里
(2)光缆 ------通信容量非常大,传输损耗小,中继距离长,抗雷电和电磁干扰 性能好,无串音干扰,保密性好,体积小,重量轻
(3)同轴电缆 ------抗干扰性好,广泛应用于传输较高速率的数据
b.非导引型(无线)
(1)短波
(2)微波
二、信道复用:
a.频分复用FDM(将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带)
b.时分复用TDM(将时间划分为一段段等长的时分复用帧,用户在每一个 TDM 帧中占用固定序号的时隙。)
c.统计时分复用STDM(STDM 帧不是固定分配时隙,而是按需动态地分配时隙。)
d.波分复用WDM(光的频分复用。使用一根光纤来同时传输多个光载波信号)
e.码分复用CDM(通过编码区分不同用户信息,实现不同用户同频、同时传输 点击跳到另一篇博看查看详细)
三、数据通信系统:
链路层(主要考虑数据封装成帧,透明传输,差错控制、流量控制、物理寻址等问题)
一、数据链路层面对的三个基本问题
(1)封装成帧:
a.面向字节,把帧看做字节集,如BISYNC、PPP、DDCMP协议
b.面向比特,把帧看做比特集,如HDLC协议
HDLC用特定的比特序列01111110表示帧的开始与结束。
在链路空闲时也发送这个序列,以保证发送方和接收方的时钟同步
发送方,若消息体中发出5个连续的1,则在发送下一比特之前插入一个0
c.基于时钟,光网络上远距离传输数据的主要标准
(2) 透明传输(避免错误找到帧边界):
a.字节填充
b.字符填充
(3)差错控制:
a.循环冗余(广泛应用于数据链路层)
如:
b.奇偶校验
c.校验和(多用于应用层和传输层)
二、数据链路层信道
(1)点对点信道
a.PPP协议
(2)广播信道
a.CSMA/CD载波监听多点接入/碰撞检测协议(用于总线型网络中)
b.CSMA/CA载波监听多点接入/冲突避免协议(用于无线网络中,无线网络存在节点隐藏问题,不能够检测冲突)
1.送出数据前,监听媒体状态,等没有人使用媒体,维持一段时间后,才送出数据。由於每个设备采用的随机时间不
所以可以减少冲突的机会。
2.送出数据前,先发送一段小小的请求传送报文(RTS : Request to Send)给目标端,等待目标端回应 CTS: Clear to Send 报文后
才开始传送。 利用RTS-CTS握手(handshake)程序,确保接下来传送资料时,不会被碰撞。同时由於RTS-CTS封包都很小,
让传送的无效开销变小。
网络层(主要考虑两个端系统的数据分组交付、逻辑寻址、路由、分组转发等)
一、互联网的路由选择协议
自治系统AS:一个AS对其他AS表现出的是单一的和一致的路由选择策略
(1)内部网关协议IGP/域内路由选择(一个自治系统内)
①路由信息协议RIP(好消息传播快,坏消息传播慢,收敛慢,使用UDP数据报发送)
a.仅和相邻路由器交换信息
b.交换的信息是自己的路由表(路由表-----目的主机所在网络:下一跳地址)
c.按固定时间交换信息
②开放最短优先权OSPF(收敛快但复杂适合规模大的自治系统,使用IP数据报发送)
a.使用可靠的(ACK确认)洪泛法向本自治系统所有路由器发送消息
b.发送的消息是与本路由相邻的所有路由器的链路状态(链路状态说明本路由和哪些路由相邻及该链路的度量
c.只有在链路状态发生改变时才发送(但每隔一段时间刷新数据库中的链路状态)
(2)外部网关协议EGP/域间路由选择(自治系统间)
①BGP-4
二、网际协议IP
IPv4数据报
①版本(表示IP协议的版本)
a.IPv4(点分十进制)
b.IPv6(冒号十六进制)
相比IPv4:
1、更大的地址空间
2、扩展的地址层次结构
3、灵活的首部格式
4、改进的选项
5、允许协议继续扩充
6、支持即插即用(不需DHCP)
7、IPv6首部改成8字节对齐
IPv4向IPv6的过度策略:(只能逐步演进)
1、使用双协议栈(使一部分主机装有两个协议栈)
2、使用隧道技术(把IPv6数据报封装成IPv4数据报)
②片偏移占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位
③生存时间——占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。
④协议——占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程
⑤IP地址
IPv6地址除单播多播外还有任播,任播的目的站是一组计算机,但交付时只交付其中一个
1.划分子网
2.构造超网
三、地址解析协议ARP(从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。)
四、网际控制协议ICMP(允许主机或路由器报告差错情况和提供有关异常情况的报告。)
①ICMP差错报告报文
1.终点不可达
2.超时
3.参数问题
4.改变路由(重定向)
②ICMP询问报文
1.回送请求和回答报文
2.时间戳请求和回答报文
五、网际组管理协议IGMP(让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组)
IP多播可以大大节约网络资源
传输层(主要考虑主机端口(应用进程)间的通信,复用分用功能)
①协议端口号/端口(Port):用于标识进程,用十六位端口号进行标志,只具有本地意义
a.服务器端使用的端口号
1.熟知端口:一般为0~1023
2.登记端口,数值为1024~49151,为没有熟知端口号的应用程序使用,须在IANA登记
b.客户端使用的端口号(也叫短暂端口号)
②套接字socket = (IP地址 : 端口号)
一、用户数据报协议UDP:不可靠的、无连接的、面向数据报(不拆分应用层报文)、可多对多
功能:
①复用和分用:当传输层收到网络层的UDP数据报时,根据首部中的目的端口,把UDP数据报上交到相应的应用进程
②差错检验
用户数据报首部:
二、传输控制协议TCP:可靠的、面向连接的、面向字节流,一对一,全双工,使用套接字
功能:
①可靠传输
可靠传输的工作原理:
1.停止等待协议/自动重传请求AQR协议(信道利用率低)
a.发送完一个分组就停止发送,等待对方确认再发送,超时没收到确认则重传
b.超时重传时间的选择很复杂,TCP采用了一种自适应算法-----Karn算法
2.滑动窗口协议/连续ARG协议(信道利用率高)
a.发送方维持一个发送窗口SWS,位于发送窗口内的分组可连续发送,不需等待确认
b.接收方维持一个接受窗口RWS表示能接受的无序帧上限,接收方可采取选择确认SACK(这样只需重传
丢失的分组,而不是丢失的分组后的所有分组),接收方一般采取累积确认
RWS=1,则接收方不缓存任何错序到达的帧
RWS=SWS,则接收方能够缓存发送方传输的任何帧
②流量控制(让发送方发送的速率不要过快,既要让接收方来得及接受,也不要使网络发生拥塞)
流量控制的实现原理:接收方告诉发送发自己的接受窗口,当窗口为零时发送方不再发送数据
该做法存在的问题:
1.可能发生死锁(B向A发送了零窗口报文后又有了缓存空间,于是B向A发送接受窗口为400的报文,
但该报文丢失,B等待窗口不为零报文 ,A等待B发送数据,产生死锁)
解决方法:TCP为每个连接设有一个计时器,收到零窗口报文时开始计时,计时到期发送探测报文,探 测接收方此时的窗口
2.发送方糊涂窗口综合症(发送方TCP每收到一个字节就发送,使得传输效率极低)
解决方法:Nagle算法
3.接收方糊涂窗口综合症(接收方应用进程读取一个字节就向发送方发送窗口更新报文)
解决方法:让接收方等待一段时间,使得或者接收缓存已有足够空间容纳一个最长的报文段,或者等
到接收缓存已有一半空闲的空间。只要出现这两种情况之一,接收方就发出确认报文,
并向发送方通知当前的窗口大小。
③拥塞控制(防止过多的数据注入到网络)
拥塞控制的实现原理:发送方维持一个拥塞窗口CWND(Congestion Window)
发送方的发送窗口=min(公告窗口值,拥塞窗口值)
拥塞窗口的维护:
慢开始:TCP连接初始化时,以及超时重传后(且门限值减半),由一开始指数递增(发送方每收到一个ACK
就将窗口值加一)
拥塞避免:到达门限值时,加一递增
快重传:收到三个相同的ACK但还没有超时时立即重传
快恢复: 收到三个相同的ACK但还没有超时窗口减半,加一递增
TCP连接建立(三报文握手)
TCP连接释放(四报文握手)
TCP数据报首部:
应用层(直接为应用进程提供服务)
每一个应用层协议都是为了解决某一类应用问题。
一、域名系统(DNS,Domain Name System)
二、文件传输协议(FTP,File Transfer Protocol)
三、简单文件传输协议(TFTP,Trivial File Transfer Protocol)
四、网络文件系统(NFS,Network File System)
五、远程终端协议TELNET
六、超文本传输协议(HTTP,HyperText Transfer Protocol)