计网复习笔记
小知识点
常用的编码方式(P44)
- 不归零制: 正电平代表1,负电平代表0
- 归零制: 正脉冲代表1,负脉冲代表0
- 曼彻斯特编码: 位周期中心的向上跳变代表0,位周期中心的向下跳变代表1
- 查分曼彻斯特编码: 在每一位的中心处始终都有跳变。位开始边界有跳变代表0,而未开始边界没有跳变代表1
ADSL(非对称数字用户线 Asymmetric Digital Subscriber Line)
ADSL技术是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带数字业务。其中,“非对称”是指ADSL的下行(从ISP到用户)带宽远远大于上行(从用户到ISP)带宽。
数据链路层的三个基本问题(P71)
- 封装成帧: 在一段数据的前后分别添加首部和尾部,这样构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
- 透明传输: 由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用帧定界的控制字符的比特编码一样,否则就会出现帧界定的错误。
- 差错检验: 现实的通信链路都不会是理想的,比特在传输过程中可能会出现差错。因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施。
数据链路蹭的差错检验(P75)
在数据链路层若__仅仅__使用循环冗余检验CRC差错检验技术,则只能做到对帧的无差错接收(即__无比特差错__)。但可能出现帧丢失、帧重复或帧失序。
PPP的零比特填充(P80)
- 在发送端,只要有5个连续的1,则立即填入一个0。
- 在接收端,只要发现5个连续的1时,就把这5个连续1后的一个0删除。
以太网物理层数据(P93)
以太网发送的数据都使用曼彻斯特编码的信号。
曼彻斯特编码: 位周期中心的向上跳变代表0,位周期中心的向下跳变代表1。
CSMA/CD协议(P85)
- 多点接入:说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
- 载波监听:就是用电子技术检测总线上有没有其他计算机也在发送。
- 碰撞检测:也就是“边监听边发送”,即适配器边发送数据边检测信道上的信号电压变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
截断二进制指数退避:
$ k = [重传次数,10] $
$ 重传时间 = k*2 \tau $最小帧长度:$ l = v_{发送速度}2\tau = v_{发送速度}2S_{端到端距离}/v_{传播速度} $
MAC地址(媒体访问控制)(P93)
硬件地址又称为物理地址或MAC地址,由48位二进制作为标识,其中前24位由IEEE分配(生成适配器的厂家需购买),后24位由厂家自行分配。
网络层提供的两种服务及对比
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当节点出故障时 | 所有通过故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点的时间不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
中间设备
- 物理层使用的中间设备叫做__转发器__
- 数据链路层使用的中间设备叫做__网桥或桥接器__
- 网络层使用的中间设备叫做路由器
- 在网络层以上使用的中间设备叫做网关。用网关连接两个不兼容的系统需要在高层进行协议的转换
IP地址分类
- A类地址(0):8位网络号,24位主机号
- B类地址(10):16位网络号,16位主机号
- C类地址(110):24位网络号,8位主机号
- D类地址(1110):用于多播
- E类地址(1111):保留为今后使用
IP地址的指派范围
网络类别 | 最大可指派网络数 | 第一个可指派网络号 | 最后一个可指派网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|
A | 126($2^7-2$) | 1 | 126 | $2^{24}-2$ |
B | 16383($2^{14}-1$) | 128.1 | 191.255 | $2^{16}-2$ |
C | 2097151($2^{21}-1$) | 192.0.1 | 223.255.255 | $2^8-2$ |
仅用于内部通信地址,禁止转发
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
一般不使用的特殊IP地址
网络号 | 主机号 | 源地址使用 | 目的地址使用 | 代表的意思 |
---|---|---|---|---|
0 | 0 | √ | X | 在本网络上的本主机 |
0 | host-id | √ | X | 在本网络上的某台主机host-id |
全1 | 全1 | X | √ | 只在本网络上进行广播(各路由器均不转发) |
net-id | 全1 | X | √ | 对net-id上的所有主机进行广播 |
127 | 非全0或全1的任意数 | √ | √ | 对于本地软件环回测试 |
为什么不使用MAC地址寻址通讯
没有一个很好的方式在全球范围内寻址,数据量非常大。
IPv4首部校验和的计算(P131)
IP数据报的首部按每16位分组,然后相加。最后结果取反,得到最终的首部校验和。
静态路由(P140)
- 特定主机路由:制定特定的目的主机,而非网络
- 下一跳(递归)路由:配下一跳地址
- 直连路由:配置接口
- 完全制定静态路由:配置下一跳和接口
- 默认路由
无分类编制CIDR(P141)
正式名称:无分类域间路由选择(Classless Inter-Domain Routing)
路由聚合(P143)
在路由表中利用CIDR地址块来查找目的网络,这种地址的聚合常称为路由聚合。路由聚合也称为构成超网。
ICMP差错报文类型及产生条件(P148)
- 目标不可到达: 如果在IP数据报的传送过程中,路由器发现网络出现拥塞,则路由器将向源主机发出“目标不可到达”的ICMP报文。
- 时间超时: 一个IP包从源节点出发时,其TTL值被设定一个初始值(比如255),经过一跳一跳的传输,如果这个IP包的TTL降低到零,路由器就会丢弃此包。此时,该路由器上的ICMP便会发出一个“超时(time exceeded)”的ICMP报文。
- 改变路由(重定向): 当一台主机向自己的缺省网关发送一个需要转发的数据包时,如果该网关路由器查找路由表发现有更好的路由,就会向源主机发出“重定向”的ICMP报文。
- 源抑制: 若路由器或目的主机缓冲资源耗尽而必须丢弃数据报,则每丢弃一个数据报就向源主机发送一个ICMP源抑制报文,此时,源主机必须减小发送速度。另外一种情况是系统的缓冲区已用完,并预感到将发生拥塞,则发送源抑制报文。但是与前一种情况不同,涉及的数据报尚能提交给目的主机。
IPv6的地址分类(P175)
地址类型 | 二进制前缀 |
---|---|
未指明地址 | 00...0(128位),可记为 ::/128 |
环回地址 | 00...1(128位),可记为 ::1/128 |
多播地址 | 11111111(8位),可记为 FF00::/8 |
本地链路单播地址 | 1111111010(10位),可记为 FE80::/10 |
全球单播地址 | (除上述四种外,所有其他的二进制前缀) |
IPv4向IPv6过渡的方式有两种(P176)
- 双协议栈
- 隧道技术
传输层的复用和分用
- 复用:发送方不同的应用进程都可以使用同一个运输层协议传送数据
- 分用:接收方的运输层在剥去报文的首部后能够把这些数据正确的交付目的应用进程
UDP特点
- 无连接
- 尽最大努力交付
- 面向报文
- 没有拥塞控制
- 支持一对一、一对多、多对一和多对多的交互通信
- 首部开销小
TCP特点
- 面向连接
- 每一个TCP连接只能是点对点(一对一)
- 提供可靠交付
- 提供全双工通信
- 面向字节流
理想的传输条件
- 传输信道不产生差错
- 不管发送方已多快的速度发送数据,接收方总是来得及处理收到的数据
RTT(往返时间)
从发送端发送数据完成到发送端收到确认的时间间隔
发送窗口的前后沿变化
- 后沿:不动(没有收到新的确认)和前移(收到了新的确认)
- 前沿:前移、不动(没有收到新的确认)和收缩(对方通知的窗口缩小了,TCP标准强烈不赞成这样做)
发送窗口里的内容
- 已发送的数据
- 未被发送的数据
接收窗口里的内容
- 期望接收的数据
- 未按序到达的数据
- 未到达的数据
RTO(超时重传时间)的计算(P255)
$ 新的RTT_S = (1-\alpha)(旧的RTT_S)+\alpha(新的RTT样本) $
$ 新的RRT_D = (1-\beta)(旧的RTT_D)+\beta(RTT_S-新的RTT样本) $
$ RTO = RTT_s + 4*RTT_D $
- $RTT_S$ 加权平均往返时间
- $RTT_D$ RTT的偏差的加权平均值
TCP的拥塞控制方法
- 四种方法
- 满开始
- 拥塞避免
- 快重传
- 快恢复
- 原则:只要网络没有出现拥塞,拥塞窗口就可以再增大一些,一遍把更多的分组发送出去,这样就可以提高网络的利用率
- 详细参数变化,参考P236 图5-27 TCP的拥塞控制的流程图
- 发送窗口的上限值 = $Min [rwnd, cwnd]$
TCP的连接建立(三次握手)
P238 图5-28 用三报文握手建立TCP连接
- 第一次握手(C->S):SYN=1, seq=x
- 第二次握手(S->C):SYN=1, ACK=1, seq=y, ack=x+1
- 第三次握手(C->S):ACK=1, seq=x+1, ack=y+1
TCP的连接释放(四次挥手)
P240 图5-29 TCP连接释放的过程
- 第一次挥手(C->S):FIN=1, seq=u
- 第二次挥手(S->C):ACK=1, seq=v, ack=u+1
- 第三次挥手(S->C):FIN=1, ACK=1, seq=w, ack=u+1
- 第四次挥手(C->S):ACK=1, seq=u+1, ack=w+1
DNS(域名系统)
基于UDP(用户数据报)进行通信
语法要求:
- 每一个域名都是由标号序列组成,而各标号之间用 点(英文.) 隔开
- 域名中的标号都由英文字母和数字组成
- 不区分大小写
- 标号中除连字符(-)外不能使用其他的标点符号
- 由多个标号组成的完整域名总共不超过255个字符
HTTP状态码(P272)
分类 | 描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
详细内容见 http://tool.oschina.net/commons?type=5
URL(统一资源定位符 Uniform Resource Locator)P266
组成部分:<协议>://<主机>:<端口>/<路径>
HTTP获取万维网文档的方式及其时间
- 非持续连接:每请求一个文档就要有两倍的RTT
- 持续连接
- 非流水线方式:建立TCP连接后,客户每访问一次对象都要用去一个RTT
- 流水线方式:建立TCP连接后,客户访问所有资源只需花费一个RTT
Base64编码
将二进制代码划分为一个个24位长的单元,然后把每一个24位单元划分为4个6位组。6位的二进制代码共有64种不同的值。64种值依次由大写字母、小写字母、0-9、+、/表示,最后用连在一起的等号“==”和一个等号“=”分别表示最后一组的代码只有8位或16位。(回车、换行都忽略,他们可以出现在任何地方)