概述
- 比特(bit), 字节(byte), 1 byte = 8 bit(空间上,位数上)
- kbps = 103bps
- 时延带宽积中的时延是传播时延, 单向的, 不是RTT
- 传输层是数据段; 网络层是数据报.数据链路层是数据帧
- 计算机网络就是互连的、自治的计算机集合
- 计算机网络结构: 网络边缘, 接入网络, 网络核心
- 端到端层: 传输层以上层次
- OSI各层次(共7个)功能:
- 物理层: 比特编码, 时钟同步..
- 数据链路层: 组帧, 流量控制,差错控制,访问控制,物理寻址...
- 网络层: 逻辑寻址, 路由, 分组转发
- 传输层: 连接控制,差错控制, 连接控制, 分段与重组, SAP寻址
- 会话层: 会话控制, 同步 (最薄的一层)
- 表示层: 加密/解密, 压缩/解压缩. 数据表示转换.
- 应用层: 支持用户通过软件使用网络服务
- 完成路由选择功能的层次是: 网络层
- 多路复用技术: TDM,FDM,WDM,CDM
- 采用10Mbps的HFC接入Internet可能比2Mbps的ADSL接入还慢。
- 端到端原则:网络高层次的功能应尽可能的实现在网络边缘(终端设备),网络核心框架只提供最基本的标准的服务。
- 接入网络的方式: DSL. 电缆, FTTH, 拨号和卫星,以太网, wifi, 光纤。
- 常见的物理媒体: 双绞铜线, 同轴电缆, 光纤,陆地无线电信道,卫星无线电信道。
应用层
- 网络应用体系结构,3种: C/S, P2P, 混合
- 网络应用服务需求: 可靠性, 带宽, 时延
- 不同主机进程间通讯需要进行信息交换, 进程间通信利用socket发送/接收消息实现
- 邮件发送: SMTP/ HTTP; 邮件服务器之间发送: SMTP; 邮件收取: HTTP/POP3/IMAP
- socket API中:
- 只能在服务器端调用: listen(), accept()
- 只能在客户端调用: connect()
- TCP连接不能调用:吗recvfrom(), sendto()
- 服务器端套接字绑定的IP地址是: INADDR_ANY
- P2P方式实现文件分发比C/S方式快
- 分组交换技术更适合突发数据传输的网络, 电路交换技术更适合长时间持续传输的网络.
- P2P的索引技术: 泛洪式查询, 集中式索引,层次式覆盖网络
传输层
- 流量控制: 发送方的发送速率不超过接收方的接收速率
- 拥塞控制: 当网络拥塞时减少发送方的发送速率.
- 拥塞控制两种方式: 端到端拥塞控制, 网络辅助拥塞控制
- 可靠数据传输: 不错, 不乱, 不丢
- cookie作用,4个: 标识用户,购物车,推荐, 用户会话状态信息维护
- TCP: 三次握手(连接建立), 4次挥手(连接拆除)
- TCP建立连接SYN置为1, 拆除连接FIN置为1
- DNS RR类型: A/AAAA(域名到ip), NS(根据域, 查询域权威域名服务器的主机名),MX(邮件服务器规范主机名), CNAME(主机别名到规范名) 注意:只有A/AAAA查询ip,其余都是查询主机名
- FTP使用两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。控制连接用于在两个主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“put”和“get:”文件的命令,使用端口21。数据连接用于实际传输一个文件,使用端口20。
- SMTP: 基于TCP, 服务器默认端口号25.邮件传输内容 7位ASCII; CRLF.CRLF表示报文的结束. 以下是常见命令:
- HELO 客户端为标识自己的身份而发送的命令(通常带域名)
- MAIL FROM 标识邮件的发件人
- RCPT TO 标识邮件的收件人;
- DATA 客户端发送的、用于启动邮件内容传输的命令。
- QUIT 终止会话
- 基于TCP的应用层协议有:SMTP、TELNET、HTTP、FTP, POP3, 基于UDP协议: DHCP. 混合协议: DNS
- 端口号总结:
- FTP数据端口: 20; FTP控制端口: 21
- SMTP: 25
- HTTP: 80/8080...
- HTTPS: 443
- DHCP :客户端 68, 服务器端67
- DNS: 53
- UDP也可以进行可靠数据传输, TCP不保证有序的数据传输.
- 三次重传不包括对上次数据确认的ACK, 即相同ACK出现4次才会判定为三次重传
- TCP才有三次重传, GBN和SR都没有, 且TCP的ACK回复的序号不是接收到的, 而是希望下次接收到的.
- 注意ACK只有0/1.而ack或ack_seq才有具体的数.
- 注意: GBN和SR中窗口大小应该小于帧序列的大小 - 1
- 发送周期:发送方从发送第一个数据帧开始,到接收到第一个确认帧为止。包括一个RTT和两段传输延迟.
- 最大传输速率: 一个发送周期内发送数据的量/ 发送周期. (注意发送周期中, 传播时间和传输时间不能简单相加, 他们可能是包含关系,在传播的同时也在传输)
- 信道利用率: 一个发送周期内数据发送的时间/发送周期, 信道利用率可以等于1.即一个RTT内在不断地发送数据. (注意:计算信道利用率时一定要先根据单帧计算出发送周期)
- GBN只设置一个计时器,累计重传,超时后发送expect后面所有分组; SR为每个传输分组设置计时器, 超时后只发送超时的分组.
- 发送速率最大只能等于链路带宽时才能不发生丢包,此时: W * MSS / RTT <= R ,其中W是窗口数
- UDP头部8字节, TCP头部至少20字节.
- UDP头部4部分: 源端口号, 目的端口号, 长度, 校验和.(ip地址在ip协议中, UDP不携带)
- UDP计算校验和时包括: 伪头, UDP头, 应用层数据
- 用于实现可靠数据传输的机制有: 差错编码, 计时器,重传, 序列号, ACK
- 若流量强度(traffic intensity)La/R接近于1,则平均排队延迟接近于无穷大
- MSS就是TCP数据包每次能够传输的最大数据分段。通常为1460 (1500 - 20 IP头- 20 TCP头)
网络层
- 网络层核心功能: 异构网络互联, 路由与转发, 拥塞控制
- 网络层建立的连接中间设备都参与, 但传输层建立的连接对中间设备透明
- 网络层提供的服务: 网络层无连接服务(数据报服务), 网络层连接服务(虚电路网络).
- 沿某条虚电路传输的分组,携带对应虚电路的 VCID,而不是目的地址 ; 且同一条VC ,在每段链路上的VCID通常不同(路由器转发分组时依据转发表改写/替换虚电路号 ).
- 网络层有虚电路传输和数据报传输. 他们都是分组传输. 虚电路每次建立虚拟连接, 不共享带宽, 不附带目的地址, 只带虚电路的VCID,适用于电话/传真. 数据报网络是internet采用的, 适用于智能端系统,如电脑.
- internet是数据报网络, ATM是虚电路网络.
- 转发表有多个匹配项时: 最长前缀匹配优先.
- ip所属的子网地址 = ip & 子网掩码.
- 如何确定是否进行了子网划分? 观察子网掩码是否与默认一致, 不一致则进行了子网划分
- 注意掩码形如255.255.255.0的形式, 而无类域间路由地址才形如 a.b.c.d/x
- DHCP自动获取: ip, 子网掩码, 默认网关地址, DNS服务器名和ip
- NAT中所有私有地址都替换为网关的共有ip地址, 但不同私有地址的分配端口号不同. 利用端口号16位,可区分65535个私有地址.
- NAT穿透问题, 即如何解决访问具有特定私有地址的服务器: 静态配置NAT ; 互联网网关设备协议IGD; 中继.
- ICMP是网络层协议...
- IPV6有选项字段, 只是从基本首部中提出, 换到选项首部中而已
- IPV6不能分片; IPV6中无校验和字段; IPv6不再使用掩码, 而是使用更简洁的无类域间路由.
- IPV4首部至少20字节, IPV6基本首部固定40字节
- IPV6的基本地址类型: 单播,多播,任意播.
- IPV4 32位; IPV4 128位; MAC 48位
- 全局信息: 链路状态路由算法; 局部信息: 距离向量路由算法.
- 路由表中:
- 到一个子网: 掩码为该子网的掩码.
- 到 一个特定ip: 子网掩码为255.255.255.255
- 到外网, 或其他未知网络(默认路由): 0.0.0.0 0.0.0.0 + 网关ip
- 路由协议:
- RIP: 基于UDP ;应用层协议 ; 距离向量算法
- OSPF: 基于IP ;网络层协议; 链路状态算法
- BGP: 基于半永久TCP; 应用层协议; 路径向量算法.
- BGP除了在自治系统间交换信息外,还有将这些信息散播到内部
- OSPF优点: 安全, 支持多条代价相同的路径, 支持大规模AS分层
- 同一子网直接交付, 不同子网间接交付
- 网络层没有差错校验: 网络层是“尽最大努力完整的传输数据包”,差错检测已由数据链路层实现,IP层没必要再进行一次校验。
- 链路状态算法存在震荡的可能
- 距离向量算法存在 坏消息传播慢! —“无穷计数 " 问题
- 解决无穷计数: 毒性逆转技术, 定义最大有效度量值,水平分割技术, 阻碍时钟.
- 解决IP不够: 使用无类别编址CIDR;使用NAT; 采用IPV6
- IPV6没有广播地址了, 但其有单播, 多播,任意播三种地址形式.
链路层
- MAC查询时(ARP查询时), 目的MAC为FF-FF-FF-FF-FF-FF
- ARP协议只能查询同一个子网内的主机, 同时他是一个跨网络层和链路层的协议
- 以太网数据帧大小在64-1518, 数据大小在46 -1500 字节, 其中18字节的控制信息.
- 链路层用CRC检测错误, 硬件支持快,但检测出错误后, 直接丢弃, 不发消息.
- CSMA/CD要检测出冲突,就必须满足: , 即最小数据帧L必须大于时延带宽积的2倍, 或大于(R* RTT)
- CSMA/CD效率: , 当网速极快或链路极短时, 效率接近1.(当信号传播延迟趋近0时,信道利用率趋近100%)
- CRC可以检测长度<= r位的错误.
- 以太网交换机利用CSMA/CD访问链路,发送帧 .
- 以太网转发帧时依据目的MAC地址, 自学习时依据源MAC地址.
- 仅路由器可以进行路由优化, 但也仅有它不能即插即用和直通连接.
- 802.11无线网模式:
- 基站设施网络模式: 主机和基站(AP)构成
- 自组网模式: 只有主机
- 无线网为什么不能使用冲突检测: 隐藏站, 信号衰落.
- 802.11数据帧有4个地址字段 : 地址4用于自主网络, 谁收谁是地址1, 谁发谁是地址2, 地址3是剩余地址.
- CSMA/CA中一个主机从期望发送到接收方正确接收最快需要多久?(忽略传播,传输时延): DIFS + 3 SIFS
- 以太网交换机有两种交换模式:
- 直通式交换机: 只检查48位目的MAC地址
- 存储转发式交换机: 先存储整个帧, 检查后再发送
- Ethernet交换机实质上是一个多端口的网桥
- 对于网络负载很轻的无线网络,Polling协议比FDMA的信道利用率高
- 以太网最大帧为1518,MTU为1500.
物理层
- 以太网使用的编码方式就是曼切斯特码
- 差分曼切斯特码: 局域网中经常使用,抗干扰性比较好.可以实现自同步
- Nyquist 信道容量公式:
- 香农信道容量公式: , 其中S/N通常用分贝表示, 而
各种协议
应用层
传输层
传输控制协议(TCP,Transmission Control Protocol)
用户数据报协议(UDP,User Datagram Protocol)
网络层
IPV4协议
举例:
上图TTL有误,TTL为一个字节,8位, 最大为255
IPV6协议
虚电路信令协议(signaling protocols) : 用于VC的建立、维护与拆除
数据链路层
地址解析协议,即ARP(Address Resolution Protocol)
以太网帧结构
8个字节的前导码一般不考虑, 故以太网数据帧一般是 18B控制信息 + (46 ~1500)的数据信息
802.1q
虚拟局域网中,802.1q协议为经过中继端口转发的帧增加/去除额外的首部域