计算机网络

计算机网络学习笔记。

基础

  • 计算机网络功能:数据通信、资源共享、分布式处理(hadoop)、提高可靠性、负载均衡
  • 计算机网路组成:硬件、软件、协议/边缘部分、核心部分/通信子网、资源子网
  • 计算机网络分类:广域网、城域网、局域网、个人区域网/公用网、专用网/电路交换、报文交换、分组交换/总线型、星型、环型、网状型/广播式网络、点对点网络
  • 法定标准OSI与事实标准TCP/IP
  • 传输速率:单位10^3换算,单位b/s
  • 传输带宽:最高数据率
  • 传输吞吐量:单位时间内通过的数据量,由链路上的总和
  • 时延发送时延(=数据长度/信道带宽)传播时延(=信道长度/电磁波传输速率)、排队时延、处理时延
  • 时延带宽积:单位bit,以比特为单位的链路长度,表示某段链路现在有多少比特。
  • 往返时延RTT越大可以发送数据越多,包括传播时延x2+末端处理时间
  • 利用率:信道利用率和网络利用率,当利用率接近1时,时延将急剧增大(堵车)

分层结构

  • 计算机网络的分层基本原则:独立、清晰、可分割、下层对上层服务、标准化
  • 分层结构
    • 实体:对等实体处于同一层
    • 协议:对等实体间的数据交换而建立的规则、标准或约定称为网络协议(语法、语义、同步)
    • 接口:(访问服务点SAP)上层使用下层服务的入口
    • 服务:下层为上层提供的功能调用(垂直)
    • SDU:服务数据单元
    • PCI:协议控制信息
    • PDU:协议数据单元,PDU = PCI + SDU
  • 分层形式:7层OSI参考模型、TCP/IP参考模型、方便记忆的5层参考模型
  • ISO/OSI参考模型:从下到上:物 联 网 输 会 示 用,信息从上到下再从下到上,在中间系统不经过上四层,上四层叫端到端通信,下三层叫点对点通信
    • 应用层:所有能和用户产生网络流量的程序,FTP、SMTP、HTTP
    • 表示层:用于处理在两个系统中交换信息的表示方式,JPEG、ASCII
      • 数据格式变换
      • 数据加密解密
      • 数据压缩与恢复
    • 会话层:建立同步,向表示层实体、用户进程提供建立连接并在连接上有序的传输数据,建立、管理、终止会话以及建立同步点/校验点实现同步,ADSP、ASP
    • 传输层:负责端到端通信,可靠传输、差错控制、流量控制、复用分用,TCP/UDP
      • 复用:多个进程同时使用下层服务
      • 分用:下层(传输层)把收到的信息分别交付给上面应用层的相应进程
    • 网络层:路由控制(最佳路径)、流量控制、差错控制、拥塞控制,IP/IPX/ICMP/IGMP/ARP/RARP/OSPF
    • 数据链路层:上层的数据组装成帧、差错控制(帧错+位错)、流量控制、访问接入控制,SDLC/HDLC/PPP/STP
    • 物理层:透明传输、物理媒体、单位比特,传输方式包括单工、半双工、双工,定义传输速率,比特同步,RJ45、802.3
  • TCP/IP四层参考模型
    • 应用层:HTTP/FTP/DNS
    • 传输层:TCP/UDP
    • 网际层:IP
    • 网络接口层:Ethernet、ATM、Frame Relay
  • OSI和TCP/IP区别
    • 相同:都分层,都有独立协议栈、都实现异构网络互联
    • 不同:网络层(都实现无连接),OSI无连接+面向连接,TCP/IP无连接;传输层(都实现面向连接),OIS面向连接,TCP/IP无连接+面向连接
  • 五层参考模型:应用层(报文)、传输层(报文段)、网络层(数据报)、数据链路层(帧)、物理层(比特)

物理层

  • 物理层:机械特性(引脚)、电气特性(电压、速率、距离)、功能特性(电平含义)、规程特性(规程和时序)
  • 典型数据通信模型:信源->数字信号->调制解调器->模拟信号->广域网(传输系统)->模拟信号->调制解调器->数字信号->信宿
  • 数据:信息实体
  • 信号:数据在传输过程中的存在形式,包括数字信号和模拟信号
  • 信源/信宿:起点,终点
  • 信道:传输媒介,有方向,数字/模拟、有线/无线
  • 单工:1条信道,没有反向;半双工:2条信道,分时;全双工:两条信道,可同时
  • 串行传输(速度慢、远距离)与并行传输(速度快、近距离)
  • 码元:一个固定时长的信号波形,二进制码元只包括0和1状态,除此之外还要M(2^n)进制码元;1码元可以携带多个比特的信息量
  • 码元速率1 波特(baud) = 1 码元/s,表示一秒内可以向信道传输的码元数目,不同的传输速率可以有相同的码元速率(码元进制不同的情况下)
  • 信息传输速率:表示单位时间内数字系统传输的二进制码元(等同于比特数)的个数。
  • 信息传输速率 = 码元传输速率 x 码元携带的比特数 bit/s
  • 奈氏准则 – 解决内忧(码间串扰)
    • 失真:码元传输速率越大、距离越远、遭受越大、传输介质差都会加强失真
    • 码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象。
    • 奈氏准则:在理想(无噪声)低通条件下,为避免码间串扰,极限码元传输速率为2W Baud,W是信道带宽,单位Hz
    • 传输速率上限 = 2Wlog2 (V) bit/s
    • 奈氏准则只给出码元传输速率的限制,提高码元携带的比特数可以进一步提高整体的传输速率
  • 香农定理 – 解决外患(噪声)
    • 信噪比:衡量噪声对信号的影响 = 10lg(S/N) dB
    • 香农定理:在带宽受限且有噪声的信道中,为不产生误差,信息的传输速率的上限值 = Wlog2 (1 + S/N) bit/s, S/N 为信噪比。
  • 基带信号:来自信源的(数字)信号,送到数字信道上传输;宽带信号:调制后,送到模拟信道上传输(远距离)
  • 编码:数据转数据信号;调制`:数据转模拟信号
    • 数字数据编码采用数字发送器,调制采用调制器
    • 模拟数据编码采用PCM编码器,调制采用放大器调制器
  • 数字数据编码为数字信号:
    • 非归零编码NRZ:难以保持同步,0低电平,1高电平
    • 曼彻斯特编码:包括了时钟自同步,数据传输速率只有调制速率的一半。
    • 差分曼彻斯特编码:同1异0,主要增加了抗干扰性
  • 数字数据通过调制器转为模拟信号的原理:
    • ASK:调幅
    • FSK:调频
    • PSK:调相
    • QAM:调幅+调相
  • 模拟数据PCM编码器转数字信号:
    • 高保真:PCM
    • 包括:抽样、量化、编码
  • 模拟数据调制为模拟信号:频分复用技术
  • 物理层传输介质:导向型、非导向型传输介质
    • 导向型:
      • 双绞线:非屏蔽双绞线UTP、屏蔽双绞线STP
      • 同轴电缆:传输距离更远
      • 光纤:光脉冲(全反射),损耗小
    • 非导向型传输的信号:
      • 无线电波,穿透强
      • 微波:频带范围高
      • 红外线、激光
  • 物理层设备
    • 中继器:对信号再生还原(再生数字信号),延长传输距离
    • 集线器:(多口中继器):再生、放大信号(星型拓扑),广播

传输层及协议

  • 传输层:只有主机才有的层次,处于第四层
    • 功能:
      • 进程与进程之间的逻辑通信
      • 复用与分用
      • 对收到的报文进行差错检错
  • 两大协议:
    • TCP:面向连接的传输控制协议,不提供广播、多播,可靠面向连接、时延大,适用于大文件
    • UDP:无连接的用户数据报协议,不可靠,无连接,时延小,适用于小文件
  • 寻址与端口:端口是传输层的SAP,标识主机的应用进程,只具有本地意义
  • 端口长度16bit,共65536个,其中服务端使用0-1023作为熟知端口号,1024-49151作为登记端口号,客户端使用49152-65535作为客户进程动态选择的端口号
  • 常用熟知端口号:FTP 21,TELNET 23,SMTP 25,DNS 53,TFTP 69,HTTP 80,SNMP 161
  • 套接字Socket = 主机IP地址+端口号的组合,套接字唯一标识了网络中一个主机和它上面的进程。
  • UDP协议:
    • 特点:无连接、不保证可靠交付、面向报文,只增加UDP首部(开销小,8Byte),无拥塞控制适合实时应用
    • 首部格式:8B,包括16位源端口号2B,16位目的端口号2B,16位UDP长度2B,16位UDP检验和2B,数据段(>=0)
    • 接收方分用时,找不到对应的目标端口,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文
    • UDP校验:
      • 伪首部:包括源IP,目的IP,0,17,UDP长度(UDP首部+UDP数据段长度);伪首部只在计算时出现,不对外传送
      • 校验过程:

  • TCP协议:
    • 特点:
      • 面向连接、点对点、可靠有序不丢不重、全双工通信的发送缓存与接收缓存、面向字节流
      • TCP首部格式:
  • TCP连接传输三个阶段:连接建立、数据传送、连接释放,分为服务器与客户。
  • TCP连接的 三次握手
    1. 客户端发送连接请求报文段,无应用层数据,SYN = 1,seq = x(随机产生)
    2. 服务器端为连接分配缓存与变量,并发送确认报文段,允许连接,无应用层数据,SYN = 1,ACK = 1,seq = y(随机),ack = x+1
    3. 客户端为该TCP连接分配缓存与变量,并向服务器端返回确认的确认,可以携带数据,SYN = 0,ACK = 1,seq = x+1,ack = y+1
  • SYN洪泛攻击:攻击者不确认TCP的回复,大量攻击使得服务器宕机,解决方法:SYN cookie
  • TCP连接的 四次挥手
    1. 客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。FIN = 1,seq = u
    2. 服务器端回送一个确认报文段,客户到服务器这个连接方向的连接就释放了–半关闭状态,ACK = 1,seq = v,ack = u+1
    3. 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接,FIN = 1,ACK = 1,seq = w,ack = u+1
    4. 客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。ACK = 1,seq = u+1,ack = w+1
  • TCP可靠传输
    • 实现机制:校验(与UDP伪首部反码计算方式类似)、序号、确认、重传
      • 序号:发送方发送一定字节后,接收方将向发送方发送确认接收报文,并告知发送方应当继续发送的字节序号,在某个报文异常时,就算后面的报文提前到达,接收方也会持续请求发送方发送最小累加的序号,直到重发接收到后,更新到最新要接收的报文的序号的确认报文(此时提前接收到的就相当于发送了确认,不用重新发送确认报文)
      • 确认与重传:TCP的发送方在规定的时间(重传时间)内没有收到确认就要重传已发送的报文段。(超时重传)
        • 重传时间过短,增大网络负载,过长则空闲时间过大
        • 自适应RTTs算法(加权平均往返时间):持续计算第一次、第二次……的往返时间。
      • 冗余ACK
        • 产生原因:部分报文段提前到达,而重传报文段持续等待重传时间过长
        • 原理:每当比期望序号大的失序报文段到达时,接收方发送一个冗余ACK,指向下一个期待字节的序号。当发送方接收到3个对于某个接收方没收到的报文段的前一个报文段的冗余ACK(这个ACK指向没收到的报文段),发送方认为该报文段已经丢失,重传这个没收到的报文段。(快速重传机制
        • 结果:对于某个丢失的报文段,发送方不用一直等接收方确认,而可以接着发后面的报文段,降低重传等待时间。
  • TCP的流量控制:
    • 目的:控制发送方的发送速率,防止过快而丢包
    • 滑动窗口:(类似链路层)