计算机网络
2023-12-26 18:57:04 35 举报
AI智能生成
计算机网络
作者其他创作
大纲/内容
<b>网络层</b>
网络层服务
网络层核心任务
将<b><font color="#f15a23">数据分组</font></b>从源主机送达到目的主机
主要功能
路由选择与分组转发:解决最佳路径
异构网络互连:路由器
拥塞控制:开环控制与闭环控制
数据交换技术
电路交换:需要建立一条专用的物理通信路径。【优】时延小,有序,无冲突。<br> 【缺】建立连接时间长,效率低,灵活性差
报文交换(基本上被分组所替代):采用储存转发方式,数据交换单位是报文。【优】无需建立连接,动态分配线路,多目标服务<br> 【缺】有转发时延,因报文大小无限制,需要较大的缓存空间
<font color="#c41230">分组交换(包交换)</font>
存储转发,数据分组,大小合理且相等
数据报
无连接,随时发送,最大努力交付,没有可靠性,没有按序到达,每个分组都有发送和接收端的地址
虚电路
建立一条逻辑上的虚电路,<font color="#c41230">每个分组的辅助信息中</font><font color="#16884a"><b>没有目的地址</b></font><font color="#c41230">但是有通过的虚电路号</font>
虚电路上每个结点都维持一张虚电路表,表中又打开的虚电路信息,前后结点
<font color="#c41230">致命缺点:若链路每一环出现问题,则整个链路崩塌</font>
路由算法与路由协议
静态路由:人工配置,难度和复杂度高
动态路由
<b>链路状态</b>路由选择算法LS
<b><font color="#c41230">【与隔壁发所有】</font></b>收敛快
<b><font color="#0076b3">全局式路由选择算法</font></b>,每个路由器计算路由时,需构建整个网络拓扑图
利用Dijkstra算法求源端到目的端网络的最短路径
D(v)
到本次迭代为止,源结点(计算结点)到目的结点v的当前路径距离
P(v)
到本次迭代为止,在源结点到目的结点v的当前路径上,结点v的<b>前序结点</b><br>
如果路径上只有两个结点,则该值就是最后一个结点。<br> 例如:X→Y,P(y)就是y<br>
c(x,y)
结点x与结点y之间直接链路的费用,如果x和y之间没有之间链路相连,则c(x,y)=∞
S
<b>结点的集合</b>,用于存储从源结点到该结点的最短路径已求出的结点集合。<br>
初始值只有源结点本身<!--EndFragment-->
<b>距离-向量</b>路由选择算法DV
<b><font color="#c41230">【与隔壁发所有】</font></b>收敛慢、会存在回路
基础是Bellman-Ford方程(简称<b>B-F方程)</b>
网络中每个结点x,<b>估计</b>自己到网络中结点y的最短距离,记为Dx(y),称为结点x的<b>距离向量</b>
<b><font color="#c41230">层次路由(Internet路由选择协议)</font></b>
自治系统内使用内部网关协议 IGP
路由信息协议 RIP【<b><font color="#c41230">应用层</font></b>】<br>基于距离-向量
<b>较小的AS</b>(自治系统),适合小型网络
RIP报文,封装进UDP数据报
RIP特性
RIP在度量路径时采用的是<b>跳数</b>(每个路由器维护自身到其他每个路由器的距离记录)
RIP的费用定义在源路由器和目的子网之间
RIP被限制的网络直径不超过<b>15跳</b>
和隔壁交换所有的信息,30<b><font color="#c41230">主动</font></b>一次(广播)
开放最短路径优先协议 OSPF【<b><font color="#c41230">网络层</font></b>】<br>基于链路状态
<b>较大规模的AS</b> ,适合大型网络
直接封装在<b>IP数据</b>报传输
链路变化时才<b><font color="#c41230">被动</font></b>更改信息
优点
安全
支持多条相同费用路径
支持区别化费用度量
支持单播路由和多播路由
分层路由
自治系统之间使用外部网关协议 EGP
边界网关协议 BGP【<b><font color="#c41230">应用层</font></b>】<br>基于距离-向量
寻找一条好路由:首次交换全部信息,以后只交换变化的部分
BGP封装进<b>TCP</b>报文段
四种报文
OPEN(打开)报文,用来与BGP对等方建立BGP会话
UPDATE(更新)报文,用来通告某一路由可达性信息,或者撤销已有路由
KEEPALIVE(保活)报文,用于对打开报文的确认,或周期性地证实会话的有效
NOTIFICATION(通知)报文,用来通告差错
重要协议
IPv4协议
概念
IP网际协议是 Internet <b>网络层最核心</b>的协议
如何<b>封装</b>上层协议(如UDP、TCP)的报文段
Internet网络层<b>寻址</b>(IP地址)以及如何转发IP数据报
IP数据报格式
1
版本
4位,IP协议的版本号
首部长度
4位,IP数据报的首部长度
20B-60B
区分服务
8位,用来指示期望获得哪种类型的服务 (服务类型)
数据报长度
16位,IP数据报的总字节数
2
标识
16位,标识一个IP数据报。
每产生一个IP数据报,IP协议的计数器加1
用途
在IP数据报<b>分片和重组</b>过程中用于标识属于同一IP数据报
该字段<b>不可唯一标识</b>一个IP数据报
源IP地址
目的IP地址
标识
标志
3位(只有2位有意义),DF 禁止分片 MF 更多分片
DF 禁止分片
0 允许分片
1 禁止分片
MF 更多分片
0 未被分片或分片的最后一片
1 是分片且不是最后一个
DF MF<br>
0 0
分片的最后一片
0 1
分片且不是最后一片
1 0
未被分片
<strike>1 1 </strike>
<strike style="">不存在</strike>
IP数据报分片
最大传输单元 MTU
数据链路层帧能承载的最大数据量
数据报分片的原则
尽可能少分片
一个最大分片可封装的数据字节数最好是8的倍数
片偏移量
13位,以8B为单位
表示一个IP数据报分片与原IP数据报的数据的<b>相对偏移量</b>
当该字段值为0时,且 MF =1 ,则表示这是一个IP分片且是第一个分片
3
生存时间
8位,表示IP数据报在网络中可以通过的路由器数或跳步数(经过一个路由器-1,变成0则丢弃)
上层协议
8位,指示该IP数据报封装的是哪个上层协议
TCP 6
UDP 17
首部校验和
16位,实现对IP数据报首部的差错校验
源IP地址
32位,发出IP数据报的源主机的IP地址
目的IP地址
32位,IP数据报需要送达的主机的IP地址
可选字段
长度可变,0-40B
数据
存放IP数据报封装的传输层报文段
IPv4编址
IP地址的三种标记方式
<b><font color="#c41230">点分十进制标记法</font></b>
192.1.3.1
二进制标记法
11000000 00000001 00000011 00000001<br>
【十转二进制转换】:十进制数*从上往下*“除2取余”,*从后往前,不够8位用零补*写成二进制
【二转十】:*从后往前的8位二进制,依次对应(2^0+2^1+2^2+2^3+2^4+2^5+2^6+2^7)*,加总可得十进制数
十六进制标记法
0xC0A80165<br>
IP地址分配
32bit =4B 【<<b>网络部分 Net ID</b>><<b>主机部分 Host ID</b>>】
前缀
<<b><font color="#16884a">网络号</font></b>>
用户描述主机所归属的网络
分类地址:定长前缀
无类地址:前缀长度不变
后缀
<<b><font color="#16884a">子网号</font></b> <b><font color="#16884a">主机号</font></b>>
用于表示主机在网路中的唯一地址
分类地址
分类寻址
A、B、C 类地址可以用于标识网络中的主机或路由器
D类地址作为组广播地址
E类是地址保留
特殊地址
【主机全0】本网络本身、【主机全1】本网络广播、【0.0.0.0】本网络本主机<br>【255.255.255.255】整个网络的广播,因为广播域的隔离,还是表示本网络广播
私有地址
这部分分类地址可以在内网使用,但不能在公共互联网上使用
网段类别:A【10.0~10.255】 B【172.16~172.31】 C【192.168.0~192.168.255】因特网中路由器不转发目的地址为私有地址二点数据报
<b>网络地址转换NAT</b>
使私有地址在公共Internet上正常通信
NAT 工作原理
从内网出去的IP数据报,将其IP地址替换为NAT服务器拥有的合法的公共IP地址,<br>并将替换关系记录到<b>NAT转换表中</b>
从公共互联网返回的IP数据报,依据其目的的IP地址检索<b>NAT转换表</b>,<br>并利用检索到的内部私有IP地址替换目的IP地址,然后将IP数据报转发到内部网络
子网划分
子网化
将一个<b>较大的子网划分为多个较小子网</b>的过程 <b>大变小</b>
超网化
将具有较长前缀的<b>相对较小的子网合并为一个</b>具有稍短前缀的<b>相对较大的子网</b> <b>小变大</b>
<b><font color="#c41230">子网掩码</font></b>
子网掩码位数 是32 位
定义一个子网的网络前缀长度:【网络号部分】为1,【主机号部分】为0,与IP地址相‘与’得到网络号
计算题
已知某主机地址和子网掩码
假设某子网中的一个主机的IP地址是203.123.1.135,子网掩码是 255.255.255.192
子网地址:<b>子网掩码和主机地址按位 与运算</b>(&)
与运算:0&0=0; 0&1=0; 1&0=0; 1&1=1;<br>
11001011 01111011 00000001 10000111 203.123.1.135 <br>11111111 11111111 11111111 11000000 255.255.255.192 <br>11111111 11111111 11111111 10000000 255 255 255 128/26<br><br>即<b>子网地址为 255 255 255 128/26</b>
广播地址:<b>子网掩码的反码与主机地址按位 或运算</b>(||)
反码:1变为0;0变为1
或运算:0||0=0 ;1||0=1; 0||1=1; 1||1=1<br>
<div>11111111 11111111 11111111 11000000 255.255.255.192</div><div>00000000 00000000 00000000 00111111 反码</div><div>||</div><div>11001011 01111011 00000001 10000111 203.123.1.135 </div><div>=</div><div>11001011 01111011 00000001 10111111</div><div>1+2+8+64+128=203</div><div>1+2+8+16+32+64=123</div><div>1+2+4+8+16+32+128=191<br><br>即 <b>广播地址为 203.123.1.191</b></div>
IP地址总数
IPv4 地址共32位,分为网络位 (前缀)和 主机位(后缀)
通过子网掩码可以确定网络位,则主机位为32-网络位 <br>如:225.225.225.192 可以得出来 前缀为26位,后缀为6位
IP地址总数=2^主机位 ,即 2^(32-网络位)
如:225.225.225.192 网络位为26,主机位为6 <br><br><b>则IP地址总数为2^6=64个</b>
可分配的地址总数
在IP地址总数中提前子网地址占一个,广播地址占一个<br>
子网地址占头
广播地址占尾
所以可分配IP地址总数:IP地址总数-2
可分配地址范围
子网地址:203.123.1.128(占头)
广播地址:203.123.1.191(占尾)
可用主机IP:203.123.1.129 ~ 203.123.1.190<br>
无分类域间路由选择(CIDR):路由聚合【把多个子网相同最长网络前缀作为网络号】,减少路由表项数,提高路由效率<br>
动态主机配置协议(DHCP):【<b><font color="#b71c1c">传输层</font><font color="#c41230">UDP</font></b>】整个过程全是广播的方式
需要IP的主机(广播发现报文)—>DHCP服务器(提供报文)—>主机(DHCP请求报文)—>DHCP服务器(确认报文)
网际控制报文协议(ICMP):【<b><font color="#c41230">网络层</font></b>】提高交付成功的机会,报告差错和异常
差错报告报文
终点不可达:数据无法交付
源点抑制:拥塞丢数据
时间超时:TTL为0时丢弃
参数问题:首部字段不正确时
路由重定向:可通过更好的路由
询问报文
回送请求和回答报文
PING:测试两个主机的连通性
时间戳请求和回答报文
IPv6协议:从根本上扩充地址空间
格式特点
128bit = 16B
<font color="#c41230">只有源节点才能分片,路径中的路由器不能分片。 首部长度必须是8B的整数倍。 没有校验但更安全</font>
IPv4到IPv6的迁移
双协议栈
网络结点同时具备发送IPv4与IPv6数据报的能力
隧道技术
把IPv6的数据报封装到IPv4数据报中的数据部分(解决IPv6通信中经过IPv4路由器的问题)
IP组播和移动IP
IP组播【<b><font color="#c41230">基于UDP</font></b>】
需要组播路由器,简历组播转发树。主机只发一份数据。 <b><font color="#c41230">数据报协议字段是2</font></b>
IGMP与组播路由选择协议 <b><font color="#c41230">IGMP是TCP/IP的一部分</font></b>
移动IP
把分组自动的投递给移动结点
功能实现
移动结点:具有永久IP地址的移动结点
移动代理
本地代理:在移动结点的永久居所中代表移动节点执行移动管理功能的实体
外部代理:在外部网络中帮助移动节点完成移动管理功能的实体
网络层设备
路由器
具有多个输入/输出端口的专用计算机,获取与维护路由信息以及转发分组
功能
路由选择:根据所使用的路由选择协议构造路由表(涉及多个路由器)
分组转发:处理通过路由器的数据流,查询转发表转发。(只涉及单个路由器)
<b><font color="#c41230">能隔离广播和冲突域</font></b>
网络层拥塞控制
网络拥塞
用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的总需求超过了网络固有的容量
网络负载在<b>膝点</b>附近时,吞吐量和分组平均延迟达到理想的平衡,网络的<b>使用效率最高</b>。<br>
发生拥塞的原因<br>
缓冲区容量有限
传输线路的带宽有限
网络结点的处理能力有限
网络中某些部分发生了故障
网络层拥塞控制措施
流量感知路由
权值根据网络负载动态调整,可以将网络流量引导到不同的链路上,均衡网络负载
准入控制
广泛应用于<b>虚电路网络</b>的拥塞预防技术
基本思想:对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立该新虚电路
流量调节
在网络发生拥塞时,通过调整发送方发送数据的速率来消除拥塞
路由器如何感知发生了拥塞?
通过路由器输出端口的排队时延
路由器感知到拥塞时,如何通知其上游结点,<br>并且使上游结点降低发送速率?
抑制分组
感知到拥塞的路由器选择一个被拥塞的数据报,<br>给该数据报的源主机返回一个抑制分组
背压
抑制分组在从拥塞结点到源结点的路径上的每一跳,都发挥抑制作用
负载脱落
有选择地主动<b>丢弃(序号大的)</b>一些数据报,来减轻网络负载,从而缓解或消除拥塞
<b>数据链路层</b>
功能服务
数据链路
网络中两个结点之间的<b>逻辑通道</b><br>实现控制数据传输协议的硬件(网卡)和软件加到链路上所构成的
无确认无连接
有确认无连接
有确认面向连接
<b>组帧</b>
帧头(帧首)
发送结点和接收结点的<b>地址信息、定界字符</b>
<b><font color="#0076b3">帧:封装网络层IP数据报</font></b>
帧尾
用于差错检测的差错编码
<b>流量控制</b>
限制发送方的数据流量,使其不超过接收方的接收能力
<b>差错控制</b>
差错控制
差错的产生
信号在信道传输过程中,会受到各种<b>噪声</b>的干扰,从而导致传输<b>差错</b>
<b><font color="#0076b3">帧错</font></b>
丢失
重复
错序
<b><font color="#0076b3">位错</font></b>
<b>随机噪声</b>(全局性,信道固有):随机差错
提高<b><font color="#0076b3">信噪比</font></b>,对<b><font color="#662c90">传感器</font></b>下手
<b>冲击噪声</b>(局部性,外界引起,是<b><font color="#c41230">产生差错的主因</font></b>):突发差错
<b>差错编码技术</b>
差错编码的基本原理
在待传输数据信息基础上,附加一定的<b><font color="#0076b3">冗余信息</font></b>
冗余信息:与数据信息建立某种关联关系
复制一次、复制两次等
复制一次:待传输数据为10,传输数据+冗余信息:10<b>10</b>
复制两次:待传输数据为10,传输数据+冗余信息:10<b>1010</b>
差错控制的<b><font color="#c41230">比特错</font></b>
<b><font color="#c41230">检错编码</font></b>
<b>奇偶校验码</b>
奇校验码
使得<b>编码后</b>的码字中<b>1的个数为奇数</b>
偶校验码
使得<b>编码后</b>的码字中<b>1的个数为偶数</b>
<b>CRC 循环冗余码</b>
基本思想:把二进制位串看成是<b>系数为0或1的多项式系数</b>
例题:假设CRC编码采用的生成<b>多项式G(x)=x⁴+x+1</b>,请为位串<b>10111001</b>进行CRC编码校验。
第一步:写出多项式对应的位串:<b>G(x)=1·x⁴+0·x³+0·x²+1·x¹+1·x⁰</b> ,取其系数即10011(5位,<b>阶</b>为5-1=4)<br>
第二步:多项式G(x)的<b>阶为r</b>,则添加r个0 待编码位串: 10111001——<b>10111001</b>0000<br>
第三步:用得到的新的待编码位串(<b>10111001</b>0000)除以多项式对应的比特串(10011)<br>
<b><font color="#c41230">“异或”(同0异1逻辑运算)</font></b>
第四步:得到<b><font color="#c41230">余数/冗余码/FCS帧检验序列(1001)</font></b>添加在待编码位串后,即<b><font color="#0076b3">CRC编码后的码,最终发送的数据</font></b>:<b>10111001</b>1001
接收端把每条帧都除以同样的除数,得到余数
为0,帧无错,接受
不为0,帧差错,丢弃
检错过程由硬件实现,处理迅速,不会延误数据传输
<b><font color="#c41230">纠错编码</font></b>
<b><font color="#662c90">具体知道哪一位错</font></b>
<b>海明码(又称汉明码)</b>
发现<b>双比特错</b>,纠正<b>单比特错</b>
工作流程:确定<b>校验码位串 r</b> 及其位置-->求出校验码值-->检错并纠错
<b><font color="#c41230">海明不等式: 2^r≥k+r+1</font></b> <b> 冗余码</b>(<b><font color="#c41230">校验码</font></b>)<b>位串:r</b> 数据比特位串:k 海明码位串:r+k
介质访问控制协议(MAC)
使得结点之间的通信不会发生干扰的情况<br>
MAC(Media Access Control)协议的根本任务:解决信道的<b>共享问题</b>
MAC协议分类
静态划分信道
<b><font color="#c41230">多路复用的基本思想:信道按时空划分(复用器与分解器),分配结点,通信时只使用独立信道资源,避免干扰</font></b><br>
频分多路复用 FDM
把多路基带信号调制到不同频率的载波上,再叠加成一个复合信号
例:用船载着机动车和非机动车过河
时分多路复用 TDM
把物理信道按时间分成若干时间片,轮流分配
例:机动车和非机动车交替驶入公路
波分多路复用 WDM
传输不同波长的光信号
例:飞机和机动车都在AB两点间运输XY两种货物
码分多路复用 CDM
用不同编码区分各路原始信号
例:在机动车道用车来同时运输XY两种货物
动态分配信道
随机访问MAC协议
<b><font color="#c41230">谁抢到信道谁用,易冲突</font></b>
ALOHA协议
<b>最早的,最基本</b>的<b>无线数据通信协议</b>
纯ALOHA
<b style="color: rgb(196, 18, 48);">不听就发</b><font color="#000000">,吞吐量低、效率低</font>
当冲突碰撞,等待一个随机时间重传
时隙ALOHA
同步时间,划分等长的间隙,各站点只能在时隙开始才发
CSMA
CS载波监听:<b><font color="#c41230">先听后发</font></b>
MA多路访问:<b><font color="#0076b3">总线型网络</font></b>
根据监听策略不同
非坚持CSMA
先监听,空则发;<b><font color="#c41230">若满则放弃监听</font></b>,等待一个随机时间,再监听
1-坚持CSMA
先监听,空则发;若满,再监听;若碰撞则等待一个随机时间,再监听
P-坚持CSMA(用于时分信道)
先监听,<b><font color="#c41230">空则以P的概率发</font></b>;若不发,则一直监听;若满则等待下一个时隙,再监听
CSMA/CD
<b style="color: rgb(196, 18, 48);">先听后发</b><font color="#000000">、</font><font color="#0076b3"><b>总线型有线以太网</b></font>
CD碰撞检测:<b><font color="#c41230">边发边听</font></b>,<b><font color="#0076b3">半双工</font></b>
若发现冲突则停止发送,并发一个<b>48bit</b>的拥塞信号
帧的传输时延≥RTT,规定以太网的最小帧长为<b>64B</b>
二进制指数退避算法:参数k<10,重传次数≤16,站点随机数r∈[0, (2^k)-1]
CSMA/CA
<b style="color: rgb(0, 118, 179);">无线局域网</b><font color="#000000">(尽量而非完全避免碰撞)</font>
避免冲突
<b><font color="#c41230">先听后发</font></b>
RTS/CTS帧握手
可选的碰撞避免机制,解决“隐蔽站”问题
1、空则发RTS(request to send)
2、接收端收到RTS,将响应CTS(clear to send)
3、发送端收到CTS,开始预约信道(通知其他站点自己需要的传输时间)并发送数据帧
4、接收端收到数据帧,将用CRC来检验,数据正确则响应ACK帧
5、发送端收到ACK帧,开始下一数据帧发送
若未收到ACK则一直重传,或者到达重发次数(采用<b><font color="#0076b3">二进制指数退避算法</font></b>来确定随机的推迟时间)
轮询访问MAC协议
<b><font color="#c41230">既不冲突,发送时又占全部带宽</font></b>
集中式控制(依次轮叫)
系统有一个主机负责调度其他通信站接入信道,从而避免冲突
轮询开销、等待延迟、单点故障
分散式控制(令牌传递)
令牌以固定次序交换,是一种特殊的比特帧,代表了站使用信道的许可<br>
在网络负载高的信道空闲时,一直在信道上传输
<b>令牌开销、等待延迟、单点故障</b>
局域网
局域网定义
<b>LAN</b>(Local Area Network) 局部区域网络:采取<b>分布式控制</b>和<b><font color="#0076b3">广播式链路</font></b>,覆盖面积小,网络传输速率高,传输的误码率低
<b>IEEE 802</b>
逻辑链路控制(Logical Link Control ,LLC)子层 【<font color="#924517">名存实亡</font>】
介质访问控制(Media Access Control ,MAC)子层
<b><font color="#c41230">决定局域网的主要素</font></b>
<b><font color="#0076b3">网络拓扑</font></b>
总线型拓扑
<b><font color="#0076b3">传输介质</font></b>
双绞线、同轴电缆
电磁波
<b><font color="#c41230">介质访问控制方法</font></b>
CSMA/CD
令牌总线
令牌环网
局域网分类
<b><font color="#0076b3">Ethernet</font>以太网IEEE802.3</b>
概识
1、目前为止最流行的<b><font color="#0076b3">有线局域网技术</font></b>
2、以太网<b>第一个</b>广泛部署的高速局域网
3、以太网<b>数据速率快</b>
4、以太网硬件价格<b>便宜</b>,网络造价成本低
以太网功能服务
<b style="color: rgb(0, 118, 179);">无连接</b><font color="#000000">:发送方和接收方之间无“</font><b style=""><font color="#000000">握手过程</font></b><font color="#000000">”</font>
<b style="color: rgb(0, 118, 179);">不可靠传输</b><font color="#000000">:不对发送方的数据帧</font><b style="color: rgb(0, 0, 0);">编号</b><font color="#000000">,接收方不向发送方进行</font><b style="color: rgb(0, 0, 0);">确认</b><font color="#000000">,差错帧直接丢弃,差错纠正由</font><b style=""><font color="#0076b3">高层负责</font></b>
以太网帧结构
类型:标识上层协议
2字节
目的地址和源地址:MAC地址
每个6字节
数据:封装的上层协议的分组
46~1500字节
CRC :循环冗余码
4字节
以太网最短帧
以太网帧最短64字节
以太网帧除了数据部分18字节
数据最短46字节
以太网技术
分类
传输介质
传输速率
标准
10Base-5(经典以太网)
粗同轴电缆
10Mbit/s
IEEE 802.3
10Base-T
非屏蔽双绞线 UTP
10Mbit/s
IEEE 802.3
100Base-T(高速以太网)
UTP
100Mbit/s
IEEE 802.3u
<b><font color="#0076b3">WLAN</font>无线局域网IEEE802.11</b>
WIFI是其中的一种技术应用
数据链路层寻址与ARP寻址
MAC地址(物理地址、局域网地址)
MAC地址长度为6字节,48位
MAC地址具有唯一性,每个<b>网络适配器</b>对应一个MAC地址
通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或 : 连接起来
MAC广播地址:FF-FF-FF-FF-FF-FF
地址解析协议 ARP
为网卡(网络适配器)的IP地址到对应的硬件地址提供动态映射
基本思想
在每一台主机中设置<b>专用内存区域</b>,称为<b><font color="#0076b3">ARP高速缓存(也称ARP表)</font></b><br>
ARP 查询分组
通过一个<b>广播帧</b>发送的
ARP 响应分组
通过一个<b>单播帧</b>发送的
ARP 是<b>即插即用</b>的,一个ARP表是自动建立的,不需要系统管理员来配置
广域网
点对点协议(PPP协议)
点对点链路、面向字节、无纠错、无编号、无流量控制、不可靠、全双工
三类功能(<b>成联网</b>)
成帧
链路控制协议 LCP
启动线路
检测线路
协商参数
关闭线路
网络控制协议 NCP
协商网络层选项
高级数据链路控制协议(HDLC协议)
点对点和多点、面向比特、有编号、CRC检验、可靠、全双工
帧格式
6字节
控制位的不同
信息帧(I格式 Information):传输数据
监控帧(S格式 Supervisory):差错控制、流量控制
无序号帧(U格式 Unnumbered):链路的建立、拆除
站
主站:发送命令帧
从站:发送响应帧
复合站:具有以上两种功能
数据操作方式
正常响应:非平衡的结构,从站只有在主站的许可后才能响应
异步平衡:平衡结构
异步响应:非平衡结构,但是从站未被允许也传输
数据链路层设备
网桥
处理对象是帧,把多个以太网链接成一个更大的以太网
能隔离冲突域,不能隔离广播域
分类
透明网桥:选择的不是最佳路由,使用生成树算法
源路由网桥:选择的是最佳路由(时间最佳),使用发现帧来探测
交换机
应用最广泛的数据链路层设备,可看成是<b><font color="#000000">多接口网桥</font></b>
冲突域看交换机结点,广播域看路由器结点
直通式:只检测帧的目的地址(6B),接收后立即传出去,无法支持具有不同速率的端口
存储转发式:先把帧缓存,并检查是否正确,支持不同速率端口,可靠性高,但延迟大
<b>物理层</b>
数据通信系统模型
数字通信和模拟通信
数据通信系统的构成
数据通信方式
三种数据传输方向
两种传输时空顺序
数据同步技术
异步通信:发送<b>字符</b>,不需建立同步时钟,实现简单,适用低速网络。
同步通信:发送<b>数据块</b>,双方建立同步时钟,实现复杂,适用高速网络
信道与信道容量
信道定义
通信系统中<b>连接</b>发送端与接收端的通信设备,实现从发送端到接收端的信号传送
狭义信道:信号传输介质。
广义信道
包括信号传输介质和通信系统的一些变换装置
编码信道
数字信号由编码器<b>输出端</b>传输到译码器<b>输入端</b>经过的部分
不包括编码器和译码器
调制信道
从调制器的<b>输出端</b>传输到解调器的<b>输入端</b>经过的部分
不包括调制器和解调器
信道传输特性
随机参数信道(随参信道)
信号通过信道发生畸变是<b>时变的</b>
大部分<b>无线信道</b>(依靠<b>地波和天波传播的无线电信道</b>)
1、信号的传输衰减随时间随机变化
2、信号的传输时延随时间随机变化
3、存在多径传播现象
恒定参数信道(恒参信道)
信号通过信道发生畸变是<b>恒定的</b>
各种<b>有线信道和部分无线信道</b>(<b>微波视线传播链路</b>)
1、对信号幅值产生固定的衰减
2、对信号输出产生固定的时延
连续信道容量(调制信道)
奈氏准则(奈奎斯特定理)
理想低通(<font color="#c41230">无噪声</font><font color="#000000">,带宽受限</font>)
避免<b><font color="#662c90">码间串扰</font></b>(若传输速率超过上限,无法正确识别码元,导致信息失真)
<b><font color="#0076b3">极限码元传输速率</font></b>
<b>香农定理</b>
<font color="#c41230">有噪声</font><font color="#000000">、带宽受限</font>
<b><font color="#0076b3">极限信息传输速率</font></b>
数据编码与调制
数字数据编码为数字信号
基带传输
基带传输基本概念
<b>基带信号</b>:没有经过调制直接转换成原始信号,可以用在低通特性的信道(有线信道)中进行传输
码元
用一个<b><font color="#0076b3">固定时长</font></b>的信号波形(数字脉冲),代表<b><font color="#0076b3">不同离散数值,可携带的比特信息量</font></b>
是<font color="#662c90"><b>数字信号的计量单位</b></font>,所在时长为<b><font color="#0076b3">码元宽度</font></b>
离散状态有M个(M>2),即M种不同的信号波形,称<b><font color="#0076b3">M进制码元</font></b>
信道带宽
又称码元速率、波形速率、调制速率、符号速率,<font color="#0076b3"><b>表示单位时间内数字通信系统所传输的码元个数(又称脉冲个数或信号变化次数)</b></font>
即1s传输的码元
单位:<b style="color: rgb(102, 44, 144);">波特(Baud) </b><font color="#000000">公式: </font><b style="color: rgb(102, 44, 144);"> 1Baud=1码元/s</b>
码元速率与进制数无关
信息传输速率
表示单位时间内数字通信系统传输的码元个数
即1s传输的比特
单位:bit/s 公式: <b><font color="#662c90">Baud (码元速率)</font></b><font color="#662c90"><b> × log₂M (进制码元的每个码元可携带的比特)</b></font>
数字基带传输编码
数字基带信息码型<br>
1、非归零码【NRZ】
高1低0,易实现,但无法检错、无法判断开始结束
2、归零码【RZ】
处于低电平状态非常多,信道使用率低
3、反向不归零码【NRZI】
<b>下一个</b>电平跳变表示0,电平不变表示1
4、4B/5B码
用5个比特编码4个比特,其他作为控制码,编码效率可达80%
5、差分码(相对码)
相邻电平有无跳变
数字传输<b>基带传输码</b>
信号交替反转码 AMI
用3种电平进行编码
0:零电平表示
1:<b>交替</b>用正电平和负电平表示
双相码(又称<font color="#c41230">曼彻斯特码</font>)
脉冲<b>持续时间</b>的<b>中间时刻</b>都要进行电平跳变,作为时钟信号,可实现<b><font color="#0076b3">同步通信</font></b>
每个<b><font color="#0076b3">时钟周期</font></b>被调成2个电平,高到低平表示1,低到高平表示0
原来1个<b><font color="#0076b3">码元</font></b>被分成2个码元,但只有1位<b style="color: rgb(0, 118, 179);">比特</b><font color="#000000">,</font><b style=""><font color="#c41230">信息传输速率只有调制速率的1/2</font></b>
差分双相码(<font color="#c41230">差分曼彻斯特码</font>)
【区别】下一个时钟周期开始:<b>电平相同表示0,异表示1</b>
<b><font color="#0076b3">抗干扰性</font></b>强于曼彻斯特码,常用于<b><font color="#0076b3">局域网</font></b>等高速传输
频带传输
频带传输基本概念
无线信道:是带通特性。只能利用基带信号去<b>调制</b>与对应信道传输特性相匹配的载波信号
数字编码与调制
数字解调:在接收数据端需要将调制到载波信号中的数字基带信号卸载下来,还原为数字基带信号的过程。
数字频带传输系统
实现<b><font color="#0076b3">调制、传输与解调</font></b>的传输系统
频带传输中三种调制方式(数字数据调制为模拟信号)
二进制数字调制
数字调制的基本方法
利用数字基带信号控制载波信号的某个(或某些)参数的变化
利用0或1控制载波的<b>幅值、频率或相位</b>
幅移键控(ASK):调制载波的幅值
频移键控(FSK):调制载波的频率
相移键控(PSK):调制载波的相位
二进制<b>幅</b>移键控(2<b>A</b>SK)
二进制<b>频</b>移键控(2<b>F</b>SK)
二进制<b>相</b>移键控(2<b>P</b>SK)
二进制数字调制性能
频带利用率
频移键控最低
误码率
相移键控误码率最低;幅移键控误码率最高
对信道特性的敏感性
幅移键控最敏感
多进制数字调制
数据传输速率Rb (bit/s) 与码元传输速率RB (Baud) 以及进制数M之间的关系为 <br>
Rb=RBlog2 M
正交幅值调制
<b><font color="#0076b3">幅值相位</font></b>联合键控(APK)
基本思想是:二维调制技术,对载波信号的<b><font color="#0076b3">幅值和相位</font></b>同时进行调制的联合调制技术。
优点:频带利用率高;抗噪声能力强;调制解调系统简单;
传输距离近用<b><font color="#c41230">基带传输</font></b>,远则用<b><font color="#c41230">频带传输</font></b>
模拟数据编码为数字信号
PCM脉码调制(扫描f采样>2f带宽、量化数值、二进制编码)
模拟数据调制为模拟信号
例:广播-->收音机(将人的模拟声波,用放大器调制成高平模拟声波,最后由解调器还原人的声波)
物理层设备
中继器
同一局域网的再生信号
两端口的网段必须同一协议
5-4-3规程: 10BASE-5以太网中,最多串联4个中继器,5段中只能有3个连接主机
集线器
同一局域网的再生、放大信号(多端口的中继器)
半双工,不能隔离冲突域也不能隔离广播域
物理层传输介质
接口规程
概述
物理层主要任务
在传输介质上实现<b>无结构比特流</b>的传输。
规定<b>数据终端设备(DTE</b>)和<b>数据通信设备(DCE)</b>之间接口的相关特性
特性
机械特性
指明通信实体间硬件连接口的机械特点
例如:常用的电源插头的尺寸、引线和引脚数量
电气特性
规定了物理连接上,导线的电气连接及有关电路特性
例如:信号的电平、电压范围、阻抗匹配
功能特性
指明物理接口各条信号线的用途等
例如:数据信号线、控制信号线
规程特性
通信协议,指明利用接口传输比特流的全过程
例如:事件执行顺序
导引型传输介质(有线信道)<br>
双绞线
两根相互绝缘的铜线并排绞合在一起
屏蔽双绞线( STP ):性能好、价格高、安装工艺复杂。
<b> 非屏蔽双绞线(UTP):使用更普遍</b>
同轴电缆
对外界干扰具有较好的屏蔽作用,具有较好的抗电磁干扰性能。
目前多用于<b><font color="#662c90">有线电视网络</font></b><br>
光纤
基本原理是利用了光的全反射现象
光波传输模式
单模光纤:远距离
多模光纤:近距离
优点
光纤<b><font color="#0076b3">信道容量</font></b>非常大,最高可达100 Gbit/s。
传输损耗小,中继距离长,对远距离传输特别经济。
抗雷电和电磁干扰性能好。
无串音干扰,保密性好,也不易被窃听或截取数据。
体积小,重量轻。
非导引型传输介质(无线信道)<br>
自由方向传播
<b>电磁波</b>频率、通信距离与位置的不同
地波传播
2MHz以下
沿地表
天波传播(电离层反射波)
2-30MHz
距离地表60-400km
视线传播
高于30MHZ
电离层之上
固定方向传播
微波
地面微波接力通信
卫星通信
红外线、激光
<b>计算机网络概述</b>
基础概念
计算机网络定义
计算机网络是<b>互连的、自治的</b>计算机的集合
<b>互连</b>:利用通信链路连接相互独立的计算机
<b>自治</b>:互连的计算机系统<b>彼此独立</b>,不存在主从或者控制与被控制的关系
协议的定义
协议三要素
语法
定义实体之间交换信息的<b>格式与结构 { 例:二进制0110010101 }</b>
语义
定义实体之间交换信息的<b>控制信息 { 把二进制字符串分割再传输,每段的意义 }</b>
时序(同步)
定义实体之间交换信息的<b>顺序</b>以及如何匹配或适应彼此的<b>速度</b>
<b>网络协议</b>:网络通信<font color="#c41230"><b>对等实体</b></font>之间在数据交换过程中需要遵循的<b>规则或约定</b>
HTTP
标准的分类
法定标准(OSI):权威机构制定、正式合法
<b>事实标准(TCP/IP)</b>:某些公司的产品竞争中占据主流
计算机网络的功能
在不同主机(分布式处理)之间实现快速的<b>数据通信</b>,通过信息交换,计算机网络可以实现<b>资源共享</b>这一个<b>核心功能</b>
硬件资源共享
计算资源(CPU)
存储资源
打印机与扫描仪I/O
例如:云存储、云计算
软件资源共享
网络主机远程访问使用服务器上运行的各类大型软件
例如:大型办公软件、大型数据库系统
SaaS:软件即服务
数据资源共享
各类信息通过互联网发布分享
例如:信息检索、新闻浏览
计算机网络的分类
按覆盖范围分类
个域网
随身穿戴设备、便携设备通过无线技术构成的小范围网络
PAN(Personal)
局域网
通常部署在办公室、办公楼、厂区、校区等局部区域内
LAN(Local)
城域网
覆盖一个城市范围的网络
MAN(Metropolitan)
广域网
跨越更大的地理空间,实现异地城域网的互连
WAN(Wide)
按拓扑结构分类
星形拓扑结构
路由器
一个中央结点,网络中的主机通过点对点通信链路与中央结点连接
适用网络
个域网
局域网
如果中央结点挂了,则所有主机都不能使用
如果某个主机出现通信问题,可以很好判断出问题来源的结点
总线型拓扑结构<br>
网络采用一条<b>广播信道</b>作为公共传输介质。所有结点均与总线连接,结点间的通信均通过共享的<b>总线</b>进行
适用网络
早期局域网
环形拓扑结构<br>
利用通信链路将所有结点连接成一个闭合的环
适用网络<br>
早期局域网
城域网
网状拓扑结构<br>
网络中的结点通过多条链路与不同的结点直接相连接
适用网络<br>
广域网
核心网络
比较靠谱,即使有个网络断了,也是可以通信的
复杂、费用高
树形拓扑结构<br>
可以看作是总线型拓扑或星形拓扑结构网络的扩展
适用网络<br>
目前的局域网
根节点出现问题时,其子节点都会存在问题
混合型拓扑结构<br>
由两种以上简单拓扑结构网络混合连接而成的网络
适用网络<br>
绝大数实际网络
按交换方式分类
电路交换网络
报文交换网络
分组交换网络
按网络用户属性
公用网
面向公众开放的网络
私有网
某个组织出资建设专门面向该组织,不向公众开发
例如:银行专用网络
计算机网络的组成
组成部分:硬件、软件、协议
工作方式
网络边缘(硬件、软件)
连接到网络上的计算机、服务器、智能手机、智能传感器、智能家电等称为<b>主机</b>或者<b>端系统</b>
C/S客户端客户服务器方式
P2P对等方式
网络核心(协议)
由通信链路互连的<b>分组交换设备(路由器和交换机)</b>构成的网络。<br>
作用
实现网络边缘里主机之间的中继与转发
功能组成
<b>资源子网</b>:资源处理与共享【实现该功能设备和软件的集合】
<b>通信子网</b>:数据通信【各种传输介质、通信设备、相应的网络协议组成】
计算机网络的性能
速率与带宽
速率
网络<b>单位时间内</b>实际传送的<b>数据量,</b>用以描述网络传输数据的<b>快慢</b>
速率单位换算【区别存储大小单位】
比特 bit/s(位每秒)<br>千 1Kbit/s=10^3bit/s<br>兆 1Mbit/s=10^6bit/s<br>吉 1Gbit/s=10^9bit/s<br>太 1Tbit/s=10^12bit/s<br>
带宽
在<b>通信和信号处理领域</b>,指信号的频带宽度,单位:Hz(赫兹)。<br>
<span style="font-size: inherit;">在</span><b style="font-size: inherit;"><font color="#f68b1f">计算机网络领域</font></b><span style="font-size: inherit;">,指一条信道的<font color="#f68b1f">最高数据</font></span><b style="font-size: inherit;"><font color="#f68b1f">速率</font>(链路的入口,理想情况下注入的速率)</b><span style="font-size: inherit;">,单位:bit/s(位每秒)</span><br>
吞吐量
在单位时间内<b>源主机</b>通过网络向<b>目的主机实际送达</b>的数据量(<b>链路速率的总和</b>),记为Thr。<br> 单位:bit/s或B/s(字节每秒)<br> 1B=8bit
时延
分组从网络中的一个结点到达另一结点所需要的<b>时间</b>
跳<br>
通常将连接两个结点的直接链路称为一个“跳步”。
分组每跳传输过程中主要产生4类<b>时间延迟</b>:<br>
结点排队时延。dq<br>
分组在交换结点内被交换道输出链路,等待从输出链路发送到下一个结点的时间。<br>
结点发送时延。dt<br>
分组在输出链路发送时,从发送第一位开始,到发送完最后一位需要的时间。<br>
dt=L / R<br> L:分组长度,单位:bit<br> R:链路带宽(即速率),单位:bit/s<br>
传播时延。dp<br>
信号从发送端出来,经过一段物理链路到达接收端需要的时间。<br>
dp=D / V<br> D:物理链路长度,单位:m<br> V:信号传播速度,单位:m/s<br>
结点处理时延。dc<br>
交换设备检查分组是否有差错,确定如何转发分组的时间。<br>
时延带宽积
物理链路的<b>传播时延</b>与<b>链路带宽</b>的乘积,记为G。
公式
G=传播时延×链路带宽=dp × R <br> 传播时延的单位:s 带宽的单位: bit/s<br><b> 时延带宽积的单位:bit</b><br>
丢包率
丢失分组和发送分组之比。反映网络的<b>拥塞程度</b>
(发送分组数-丢失分组数)/发送分组数
<font color="#c41230">计算机网络的体系分层结构</font>
定义
计算机网络所划分的<b>层次</b>以及<b>各层协议</b>的集合
OSI参考模型
ISO国际标准化组织:开放系统互连(Open System Interconnection, OSI )参考模型<br>
七层(具体意义参考P7)
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
特点
数据<b>由上到下</b>层层封装传递,且<b>下层为上层提供服务</b>
<b><font color="#16884a">虚拟通信</font></b>:对等层不直接进行通信
<b><font color="#16884a">实通信</font></b>:物理层的两个端点进行物理通信
中间系统:只实现<b>物理层、数据链路层和网络层</b>功能
<b><font color="#924517">端到端层(高层协议)</font></b>:传输层、会话层、表示层、应用层
<b><font color="#924517">结点到结点层</font></b>:物理层、数据链路层、网络层
有关术语
数据单元
在层的实体之间传送的比特组
协议数据单元PDU
对等层之间传输的数据单元
应用层 -> 报文(报应)<br>表示层<br>会话层<br>传输层 -> 数据段或报文段(段传)<br>网络层 -> 分组或包(布络分)<br>数据链路层 -> 帧(帧链)<br>物理层 -> 比特流或位流(物流)
服务访问点
相邻层间的服务是通过其接口面上的服务访问点进行的
<b>每个SAP有唯一的地址号码</b>
服务原语
请求、指示、响应、证实
七层与四层区别
TCP/IP参考模型
应用层 -> 报文
应用层
表示层
会话层
www服、文件传输、电子邮件
常用的网络
www服务:HTTP
文件传输:FTP
电子邮件:SMTP和POP3
传输层 -> 报文段
传输层
面向连接、提供可靠数据流传输的传输控制协议:TCP<br>无连接、不提供可靠数据传输的用户数据协议:UDP<br>
网络互联层 -> 数据包
网络层
TCP/IP参考模型核心。IP协议,ICMP(互联网控制报文协议)<br>
网络接口层 ->帧
数据链路层
物理层
提供给网络互联层一个访问接口<br>
五层参考模型
描述计算机网络中<b>最常用、最接近实际网络</b>的参考模型
应用层
报文
传输层
报文段
网络层
数据报
数据链路层
帧
物理层
比特流
<b>应用层</b>
网络应用模型
客户/服务器(C/S)模型
客户机之间不能通信
网络应用程序间的基本通信过程
<b>服务器</b>为客户机提供服务,且可同时为多个客户机服务
各计算机的地位不等,<b>服务器</b>可通过权限管理客户机
P2P模型
每个结点 既是客户机,又是服务器
客户机(服务器)之间可以自由共享文档
域名系统(DNS)【C/S,UDP,端口53】
域名服务器
存储并完成自己所管辖范围内主机的 域名 到 IP 地址的映射
域名解析的顺序
【1】浏览器缓存,【2】找本机的hosts文件,【3】路由缓存,【4】找DNS服务器(本地域名、顶级域名、根域名)->迭代解析、递归查询
文件传输协议(FTP)【C/S,TCP,控:21 数:20】
功能
<b><font color="#c41230">实现不同主机系统的交互式访问,允许客户指明文件的类型和格式</font></b>
提供远程文件管理,匿名方式共享
<b>FTP服务器组成</b>
<b><font color="#c41230">一个</font></b>主进程:接收新请求
<b><font color="#c41230">若干</font></b>从属进程:处理单个请求
控制连接(端口21):传输控制信息(连接、传输请求),以<b><font color="#c41230">7位ASCII码的格式</font></b>。<b><font color="#c41230">整个会话期间一直打开</font></b>
数据连接(端口20):连接客户端和服务器端的数据传送进程(要修改服务器的数据)
电子邮件【C/S,TCP,SMTP:25 POP3:110】
邮件系统
用户代理:用户与电子邮件系统的接口(富文本编辑,界面操作)
邮件服务器【<b><font color="#c41230">核心</font></b>】:以C/S的方式发送和接收邮件
发送和读取协议:发送用SMTP;接收用POP3
IMAP:支持跨设备跨域处理同一邮件<br>MIME:支持多媒体及本国语言
【发送方】—SMTP—【服务器】—SMTP(TCP)—【服务器】—POP3—【接收方】
电子邮件格式:<b><font color="#c41230">收件人邮箱名@邮箱所在主机域名</font></b> MaricoCheung@163.com
万维网(WWW)【C/S,TCP,端口80】
万维网结构
浏览器:web应用的客户代理
统一资源定位符:URL = <b><font color="#c41230">对象的主机域名(或IP地址)</font></b> + <b><font color="#c41230">对象的路径名</font></b><br> www.processon.com /diagrams.html
web服务器:储存管理供用户请求浏览的web页面
超文本传输协议(HTTP):基于客户和服务器交互的协议
超文本传输协议(HTTP)
HTTP:面向事务的应用层协议、无状态无记录,一般主机由文本文件Cookie来记录
HTTP 连接
<b><font color="#c41230">浏览器向服务器发收报文前,先建立TCP连接</font></b><br>
HTTP使用TCP连接方式(HTTP自身无连接)
非持久连接
单条串行连接
多条并行连接
持久连接
非流水:单条串行请求
流水线:多条并行请求
HTTP 报文
请求报文
请求方法
GET:请求读取URL标识的信息,返回主体内容
POST:给服务器添加信息
HEAD:请求读取URL标识的信息的首部,<b><font color="#c41230">只</font></b>返回报文头
OPETION:请求一些选项的信息
PUT:在指明的URL下存储一个文档
响应报文<br>
常用状态码
100:【continue】已收到请求的初识部分,请客户端继续
200:【ok】成功,所请求信息在响应报文中
301:【moved permanently】重定向
400:【bad request】客户端请求错误
404:【not found】客户端请求的资源,在服务器上不存在
451:【unsupported media type 】不支持的媒体类型
505:【http version not supported】请求使用的http 版本,服务器不支持
Cookie:网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据
<b>传输层</b>
传输层提供的服务
功能
<b><font color="#c41230">提供进程之间的通信【</font><font color="#31a8e0">端到端</font><font color="#c41230">】</font></b>
面向通信的最高层,面向用户功能的最底层
(记忆口令:吩咐刘墉寻差错 可靠)
对应用层报文进行<b>分</b>段和重组
面向应用层实现<b>复</b>用与分解
实现端到端的<b>流</b>量控制
<b>拥</b>塞控制
传输层<b>寻</b>址
对收到的报文进行<b>差错</b>检测(首部和数据部分都检错)
实现进程间的端到端<b>可靠</b>数据传输控制
套接字与端口
典型的网络应用编程接口是<b>套接字(Socket)</b>
Socket 编程基础
Socket API 函数
创建套接字
socket()
应用接口 在 应用层到传输层
UDP
数据报类型套接字
SOCK_DGRAM
不可靠协议
TCP
流式套接字
SOCK_STREAM
可靠协议
应用接口 在 应用层到网络层
原始套接字
SOCK_RAW
绑定套接字的本地端点地址
bind()
设置监听
listen()
建立连接
TCP客户端:connect()
TCP服务端:accept()
接受数据
TCP:recv()
UDP:recvfrom()
发送数据
TCP:send()
UDP:sendto()
关闭套接字
close()
对于一个传输协议,需要为其接口分配特定的编号,标识该【<b><font color="#c41230">套接字</font></b>】,该编号称为【<font color="#c41230">端口号</font><b>】</b>
<b><font color="#c41230">套接字</font></b> =“<b>IP 地址+端口号</b>”唯一标识网络中一台主机上的一个应用进程
16 bit(65536)个不同的端口号
服务器端口号
【熟知端口号】0-1023
常用:【DNS <b><font color="#c41230">53</font></b> UDP】【FTP <b><font color="#c41230">20/21</font></b> TCP】【SMTP <b><font color="#c41230">25</font></b> TCP】【POP3 <b><font color="#c41230">110</font></b> TCP】【HTTP <b><font color="#c41230">80</font></b> TCP】<br>【HTTP <b><font color="#c41230">443</font></b>】【TFTP <b><font color="#c41230">69</font></b>】【SNMP <b><font color="#c41230">161</font></b>】【TELNET <b><font color="#c41230">23</font></b>】
【登记端口号】1024-49151
客户端端口号
【暂时随机端口号】49152-65535
传输层的复用与分解
复用与分解
多路复用
在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,<br>并为每个数据块封装上首部信息(包括用于分解的信息)构成报文段,<br>然后将报文段传递给网络层
多路分解
在目的主机,传输层协议读取报文段中的字段,标识出接收套接字,<br>进而通过该套接字,将传输层的报文段中的数据交付给正确的套接字。
多路复用与多路分解(复用与分解/复用与分用)<br>
支持<b>众多应用进程</b>共用同一个传输层协议,<br>并能够将接收到的数据准确交付给<b>不同的应用进程</b>
无连接的多路复用与多路分解
用户数据协议(UDP)
Internet 提供<b>无连接服务</b>的传输层协议
UDP 套接字二元组
目的IP地址
目的端口号
面向连接的多路复用与多路分解
传输控制协议(TCP)
Internet 提供面向<b>连接服务</b>的传输层协议
TCP 套接字四元组
源IP地址
源端口号
目的IP地址
目的端口号
<b><font color="#ffff99">停-等协议</font></b>与<b><font color="#ffff99">滑动窗口协议</font></b>
可靠数据传输基本原理
不可靠传输信道在数据传输中可能发生的情况
比特差错
1001——1000
乱序
数据块1、3、2、4
重传
数据块1、2、2、3
丢失
数据块1、2、4
基于不可靠信道实现可靠数据传输采取的措施
差错检测
利用编码实现数据包传输过程中的比特差错检测
确认
接收方向发送方反馈接收状态<br>
ACK 肯定确认
NAK 否定确认
重传
发送方重新发送接收方没有正确接收的数据
序号
确保数据按序提交
计时器
解决数据丢失问题
实现数据可靠传输
自动重传请求协议ARQ
停-等协议
流水线协议(管道协议)
滑动窗口协议
GBN协议
SR协议
<b><font color="#0076b3">停止-等待协议【</font><font color="#c41230">Ws=1,Wr=1</font><font color="#0076b3">】</font></b>
工作流程
发送方发送经过差错编码和编号的报文段,等待接收方的确认
接收方如果差错检测无误且序号正确,则接收报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK
发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段
最简单的自动重传请求协议
ARQ协议
<b><font color="#c41230">性能差 ,信道利用率低</font></b>
滑动窗口协议
流水线协议(管道协议)
允许发送方在没有收到确认前连续发送<b>多个分组</b>
<b><font color="#0076b3">发送窗口 Ws</font></b>
发送方可以发送未被确认分组的最大数量
<b><font color="#0076b3">接收窗口 Wr</font></b>
接收方可以缓存的正确到达的分组的最大数量
发送方和接收方可以<b><font color="#0076b3">缓存多个分组</font></b>
增加分组序号
<b><font color="#0076b3">后退N帧协议GBN【</font><font color="#c41230">Ws≥1,Wr=1</font><font color="#0076b3">】</font></b>
<b><font color="#0076b3">发送端缓存</font></b>能力高,可以在没有得到确认前发送多个分组
<b><font color="#0076b3">接收端缓存</font></b>能力很低,<b><font color="#16884a">只能接收1个按序到达的分组</font></b>,不能缓存未按序到达的分组
乱序到达的分组直接丢弃
GBN发送方响应事件:<br>
上层调用。发送数据时,发送方先检查发送窗口是否已满
收到ACK确认帧 。GBN 采用<b><font color="#c41230">累积确认</font></b>方式<br>(即发送方收到ACKn时,表明接收方正确接收序号n及<n的所有分组)
计时器超时。发送方只使用一个计时器
<b><font color="#0076b3">选择重传协议SR【</font><font color="#c41230">Ws>1,Wr>1</font><font color="#0076b3">】</font></b>
<b><font color="#0076b3">发送端缓存</font></b>能力高
<b><font color="#0076b3">接收端缓存</font></b>能力高
只重传出错帧
SR发送方响应事件:
上层调用。发送数据时,发送方先检查发送窗口是否已满
收到ACKn确认帧 。SR协议采用逐个确认方式
计时器超时。发送方对每个分组进行计时
用户数据报协议 UDP
特点
无连接
没有拥塞控制,不影响主机发送效率
尽最大努力交付,不保证可靠传输
数据报结构
<b>首部</b>
8B,四字段/2B<b><font color="#c41230">【源端口 | 目的端口 | UDP长度 | 校验和】</font></b>
<b>数据字段</b>
应用数据
校验和
检测UDP报文段从源到目的地传送过程中,数据是否发生了改变
若改变则直接丢弃,交付给上层并提交错误报告
计算规则
所有参与运算的内容按16位对齐求和
计算的内容包括3部分
UDP伪首部(只做计算用不交付)
源IP地址
4字节
目的IP地址
4字节
协议号
1字节
全0
1字节
UDP长度
2字节
UDP首部
应用数据
求和过程中遇到溢出(进位)都被回卷
即进位与和的最低位再相加
最后得到的和取反码,就是UPD的校验和,填入UDP数据报的校验和字段
传输控制协议 TCP
特点
面向字节流
应用进程先<b><font color="#c41230">建立连接</font></b>
可靠交付(有序,不重复,无丢失)
全双工通信(每条TCP连接只能一对一)
<b><font color="#c41230">报文段结构</font></b>
最大报文段长度:报文段中封装的<b>应用层数据</b>的最大长度。<br>
首部
源端口号字段,目的端口号字段:占16位。复用和分解上层应用的数据
序号字段、确认序号字段:占32位
序号字段SEQ:TCP的序号是对每个应用层数据的<b>每个字节</b>进行编号
确认序号字段ACK_SEQ:<b>期望</b>从对方接收数据的字节序号,即该序号对应的字节尚未收到
首部长度字段:占4位。指出TCP段的首部长度,以<b>4字节为计算单位</b>
保留字段:占6位。保留为今后使用,目前值为0
URG、ACK、PSH、RST、SYN、FIN各占1位。为标志位字段;<br> 各占1位,取值为0或1;<br> 紧急URG=1,紧急指针字段有效,优先传送。<br><b> 确认ACK=1,确认序号字段有效;ACK=0时,确认序号字段无效。</b><br> 推送PSH=1,尽快将报文段中的数据交付接收应用进程,不要等缓存满了再交付。<br> 复位RST=1,TCP连接出现严重差错,释放连接,再重新建立TCP连接。<br><b> 同步SYN=1,该TCP报文段是一个建立新连接请求控制段或者同意建立新连接的确认段<br>终止FIN=1,TCP报文段的发送端数据已经发送完毕,请求释放连接。<br></b>
接收窗口字段:占16位。向对方通告我方接收窗口的大小。实现TCP的流量控制
校验和字段:占16位
计算方法与UDP校验和的计算方法相同
紧急指针字段:占16位
URG=1时,才有效。指出在本TCP报文段中紧急数据共有多少个字节
选项字段长度可变,最短为0字节,最长为40字节
填充字段,取值全为0,目的是为了整个首部长度是4字节的整倍数
首部总结要点
序号字段
TCP的序号是对每个应用层数据的<b>每个字节</b>进行编号
确认序号字段
期望从对方接收数据的字节序号,即该序号对应的字节尚未收到。用ack_seq标识
TCP段的首部长度最短是<b>20</b>B ,最长为60字节。但是长度必须为4B的整数倍
<b><font color="#c41230">TCP连接管理</font></b>
建立连接(三次握手)
为什么需要三次握手
第一次握手:客户发送请求,此时服务器知道客户能发
第二次握手:服务器发送确认,此时客户知道服务器能发能收
第三次握手:客户发送确认,此时服务器知道客户能收
第一次
客户向服务器发送连接请求段
SYN=1
建立连接请求控制段
seq=x
表示传输的报文段的第一个数据字节的序列号是x,<br>此序列号代表整个报文段的序号
客户端进入 SYN_SEND (同步发送状态)
第二次
服务器发回确认报文段
SYN=1
同意建立新连接的确认段
ACK=1
确认序号字段有效
seq=y
服务器告诉客户端报文段序号是y
ack_seq=x+1
表示服务器已经收到客户端序号为x的报文段<br>准备接受客户端序列号为x+1的报文段
服务器由LISTEN进入SYN_RCVD (同步收到状态)
第三次
客户对服务器的同一连接进行确认
ACK=1
确认序号字段有效
seq=x+1
客户此次的报文段的序列号是x+1
ack_seq=y+1
客户期望接受服务器序列号为y+1的报文段
当客户发送ack时,客户端进入ESTABLISHED 状态
当服务收到客户发送的ack后,也进入ESTABLISHED状态
第三次握手可携带数据
拆除连接(四次挥手)
第一次
客户向服务器发送释放连接报文段
FIN=1
发送端数据发送完毕,请求释放连接
seq=u
传输的第一个数据字节的序号是u<br>
客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态)
第二次
服务器向客户发送确认段
ACK=1
确认字号段有效
seq=v
服务器传输的数据序号是v
ack_seq=u+1
服务器期望接收客户数据序号为u+1
服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待)
客户端收到ACK段后,由FIN_WAIT_1进入FIN_WAIT_2<br>
第三次
服务器向客户发送释放连接报文段
FIN=1
请求释放连接
ACK=1
确认字号段有效
ack_seq=u+1
表示服务器期望接收客户数据序号为u+1
seq=v+1
表示自己传输的第一个字节序号是v+1
服务器状态由CLOSE_WAIT 进入 LAST_ACK (最后确认状态)
第四次
客户向服务器发送确认段
ACK=1
确认字号段有效
seq=u+1
表示客户传输的数据序号是u+1
ack_seq=v+1+1
表示客户期望接收服务器数据序号为v+1+1
客户端状态由FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,进入CLOSED状态
服务器在收到最后一次ACK后,由LAST_ACK进入CLOSED
TCP流量控制
<b><font color="#c41230">接收方发送确认报文的时候会给出接收窗口(rwnd)</font></b>,<b><font color="#16884a">发送方的发送窗口min{rwnd,swnd}</font></b>
<b><font color="#c41230">TCP拥塞控制</font></b>
慢开始和拥塞避免
<b><font color="#16884a">【慢开始】</font></b>拥塞窗口从1指数增长
到达阈值时进入【<b><font color="#16884a">拥塞避免】</font></b>,变成+1增长
<b><font color="#16884a">【超时】</font></b>,阈值变为当前cwnd的一半(不能<2)
再从<b><font color="#16884a">【</font></b><font color="#16884a" style="font-weight: bold;">慢开始】</font>,拥塞窗口从1指数增长
快重传和快恢复
发送方连续收到<b><font color="#662c90">3个冗余ACK</font></b>,执行【<b style="color: rgb(102, 44, 144);">快重传】,</b><font color="#381e11">不必等计时器超时</font>
执行【<b><font color="#662c90">快恢复</font></b>】,阈值变为当前cwnd的一半(不能<2),并从此<b><font color="#0076b3">新的ssthresh</font></b>点进入【<b><font color="#662c90">拥塞避免】</font></b>
0 条评论
下一页