计网复习

Application layer

HTTP概况

  1. HTTP uses TCP
  2. HTTP is stateless

Persistent/Non-persistent

  1. 分别对应1.1和1.0
  2. non-persistent: n* (2RTT+transmission time)
  3. persistent: 一个TCP发送多个对象
  4. persistent + non-pipeline: n* (RTT+transmission time)
  5. persistent + pipeline: RTT + n* transmission time

HTTP请求报文

  1. body(实体行)请求报文通常没有,也可以用来放参数

HTTP响应报文

  1. body可以为空

cookies

含义:用户-服务器状态——4个组成部分

  1. HTTP响应报文有一个cookie的首部行-服务器状态;
  2. HTTP请求报文有一个cookie的首部行-客户端状态;
  3. 用户端系统存储cookie文件,用于浏览器管理;
  4. 在Web站点维护一个后端数据库存各客户cookie。

Web caches

目标:不访问原始服务器,就满足客户的请求。

代理服务器将内容缓存下来,客户之间请求代理服务器。命中直接返回——客户端快,服务器端负载轻,网络负担也减弱。未命中继续请求原始服务器。

FTP

端口21,stateful

SMTP

  1. 命令/响应报文:ASCII码,包含状态码和状态解释。报文必须为7位ASCII码
  2. 持久连接
  3. 与HTTP比较:
    • 相同:都是ASCII形式的命令
    • 区别:HTTP拉,SMTP推;HTTP一次响应报文至多一个对象,SMTP同时把所有对象打包;HTTP有非持久连接模式。

DNS

  1. 树状结构,域名用.分隔
  2. 域与物理网络无关:(域的划分是逻辑的)
    • 一个域的主机可以不在一个网络
    • 一个网络的主机不一定在一个域
  3. Local Name Server有缓存直接返回
  4. 递归查询:根服务器负担太重。
  5. 迭代查询:根(及各级域名)服务器返回是下一个Name server的地址。学到以后可以缓存下来。
  6. 查询和响应报文格式相同
  7. 缓存:学到就缓存,TTL
  8. 使用UDP

P2P

  1. 节点可以selfish/altruistic
  2. 服务越多性能越好

Transport layer

多路复用与解复用

  1. TCP socket一个整数包含四元组、UDP socket一个整数包含二元组。
  2. TCP往下交两个东西:socket、数据内容。
  3. UDP要多交一个东西:目标端口+IP。
  4. connectionless demultiplexing: UDP

UDP

header:两个端口,长度(bytes,包括header),checksum

reliable data transfer

  1. Rdt1.0

    在可靠信道上的可靠数据传输

    下层的信道完全可靠:

    • 发送方:接收上层、封装、发送下层。
    • 接收方:接收下层、解封装、交给上层。
  2. Rdt2.0

    下层信道可能会产生反转出错:

    • 确认(ACK)、否定确认( NAK):发送方收到NAK后,发送方重传分组。
    • 采用差错控制编码进行差错检测(EDC的用处):差错控制编码、缓存->检错->反馈->相应的动作。

    状态有所增加:

    • 发送方:接收上层、封装、发送下层->等待对方反馈(NAK始终发旧的,ACK返回初始状态)
    • 接收方:接收下层、没出错、解封装、交给上层、发送ACK;接收下层、出错了、发送NAK。
  3. Rdt2.1

    ACK/NAK可能出错、丢失

    发送方在每个分组中加入序号

    仅需要0和1两个序号

    丢掉重复

  4. Rdt2.2

    无NAK,使用ACK0代替了NAK1,ACK1代替了NAK0

  5. Rdt3.0

    动机:分组可能丢失,接收方没有收到,互相等待陷入死锁

    超时重传

  6. pipelining:

    1. GBN go back N

      接收方窗口大小为1

    2. SR selective repeat

      接收方也有buffer

    3. 分组编号比特数为n时(序号空间大小),GBN协议最大窗口大小为2n-1,SR协议最大窗口大小为2(n-1)

TCP

  1. header:

    • 以字节为单位的序号(PDU第一个字节在整个字节流中的偏移量,32bit)初始序号不是从0开始的(防止冲突)
    • 确认号:此处ACK表示对当前号及以后的分组的期待(例ACK 555表示收到了554及以前的-累积确认)
  2. receiver ACK最新的序号,sender从收到最新的ACK开始发

  3. 快速重传:未超时就收到这个段的三个冗余请求——在定时器过时之前重发报文段

  4. 两次握手挑战:请求可能丢失、超时、乱序。

    • 服务器响应重发的连接请求(维护了很多虚假的半连接)
    • 重发的连接请求和连接数据都在响应完毕后到达,服务器又响应一整个虚假会话。

    三次握手:分别给初始序号,给对方确认(其中两步可以复用),至少三次握手。第三次交互往往和第一次数据传递放在一起。

    三次握手可以避免虚假半连接(发送请求方主动关闭)、避免重复响应(没有连接直接扔掉数据、新连接同时开启——初始序号的作用,可以筛选掉老的数据)

  5. flow control

    通过接收窗口告诉发送方空闲尺寸,用于让发送方控制

    receiver controls sender, so sender won't overflow receiver's buffer by transmitting too much, too fast\

    RcvWindow= RcvBuffer-[LastByteRcvd - LastByteRead]

  6. 由于大多数防火墙配置为阻止UDP通信,因此将TCP用于视频和语音通信可以使通信通过防火墙

Congestion control

  1. wasted capacity due to retransmissions

  2. 参照图片:

    • CongWin<Threshold——指数增长
    • CongWin>Threshold——线性增加
    • 三个重复的ACKs——Threshold=CongWin/2,CongWin=Threshold(减一半),之后线性增加
    • 超时事件——Threshold=CongWin/2,CongWin=1 (砍到1),进入慢启动阶段
  3. Tahoe:每次都砍到1

    Reno:3ACK砍到一半

  4. W:发生丢失事件时的窗口尺寸,平均窗口尺寸3/4W,平均吞吐量3/4(W/RTT)

header大小

IP/TCP:20

IPv6:40

UDP:8

Network layer

关键功能

  1. 转发:输入接口转发到输出接口(局部功能)
  2. 路由:选择路径到达目标主机(全局功能)——算法、协议

数据平面、控制平面

  1. 数据平面:转发(依靠路由表)——本地。传统:地址+转发表;SDN:多个字段+流表。
  2. 控制平面:路由(生成路由表)——全局。传统:路由器中实现;SDN:远程的服务器实现。
  3. 传统方式分布式计算路由表,SDN两个平面分开

网络层和传输层连接服务区别

  1. 网络层: 在2个主机之间,涉及到路径上的一些路由器
  2. 传输层: 在2个进程之间,很可能只体现在端系统上

IP全部指标都无法保证,无法建立连接,ATM有连接

路由器

  1. 路由:路由处理器(运行路由实体软件)产生路由表
  2. 转发:输入端口、输出端口、交换机(根据路由表局部转发)——真实路由器端口既可以输入也可以输出
  3. 每个路由器设备涉及三层的数据:物理层、数据链路层、网络层。最多拆分到网络层。
  4. 不存在基于起点的转发,只存在基于目的的转发

输入端口

  1. 网络层实体排队,根据路由表,排到队头根据目标IP转发到对应主机。(SDN则查流表,执行对应操作)
  2. 为转发地址空间进行划分,不同地址空间转发到不同的端口。采用最长地址前缀匹配的目标地址表项。

switch fabric(交换结构)

  1. 存在队列缓冲的原因:存在头部阻塞(Head-of-the-Line (HOL) blocking)如多入一出,匹配输入输出速率瞬时不一致性。

  2. 局部交换速率要n倍于发送速率(n为输入输出端口个数)

  3. 三种结构:memory/bus/crossbar(纵横)

输出端口

  1. 网络层:排队,排到队头转发,交给链路层网卡。
  2. 存在buffer原因:交换结构速度和输出端口瞬时速度不一致。溢出则会被抛弃掉。
  3. 存在调度规则,不一定先来的先发(保证对某些应用服务质量的支持)。
  4. 建议buffer大小:rtt*c/sqrt(n)

IP

  1. 大的IP数据报在网络上被分片,需要在接收端重新拼接起来,不同片可能经过不同的路径。有某一片(Fragment)没到,所有片全部丢弃。
  2. 相同的ID,表示属于同一个分组,不同的偏移量,表明这一片在分组中的位置
  3. offset计算方式:8字节一个偏移量,注意去掉header计算
  4. 最后一个fragment,flag = 0,否则=1
  5. 路由器IP地址一般有两个或两个以上IP地址
  6. 子网:通过交换机物理连接,不经过路由
  7. CIDR:a.b.c.d/x 某一范围的ip
  8. 子网掩码:32位,1代表网络号,0代表主机号
  9. 内网:永远不会被当做公用地址来分配,路由器也不会转发这些IP的分组。
    • Class A 10.0.0.0-10.255.255.255 MASK 255.0.0.0
    • Class B 172.16.0.0-172.31.255.255 MASK 255.255.0.0
    • Class C 192.168.0.0-192.168.255.255 MASK 255.255.255.0

DHCP

  1. 允许主机在加入网络的时候,动态地从服务器那里获得IP地址等信息
  2. 刚开始源地址0.0.0.0表示本机,目标地址255.255.255.255广播。可能有多个DHCP所以还需要第二次握手确认
  3. 运行在UDP之上
  4. 两次交互:
    • 主机广播寻找DHCP服务器
    • DHCP 服务器响应
    • 主机请求IP地址
    • DHCP服务器发送分配的IP地址、子网掩码、DNS服务器IP地址、默认网关(first-hop)服务器IP地址的四项信息

路由聚集

  1. 子网路由器向主网路由器发布通告,表明该路由器就是该子网前缀的下一条。
  2. 主网路由器向自己的ISP发布路由通告,综合多个路由信息向外发布
  3. 最长前缀匹配
  4. 聚集可以有效减少路由通告的数量,节约资源与计算代价。
  5. 不同子网掩码也可以使用同一个路由器进行聚集,如公司收购的情况,通告加入不同表项即可。

NAT

——内部有内网地址,在互联网共享一个外网地址,记录每台设备的分组对应于外网的端口即可。

动机:1.省钱(IP不够用),2.可以方便更改内部IP,3.可以更改ISP,而不用改内网IP,4.外部看不到内网情况。

IPv6

  1. IPv6不允许分片128位地址40 字节头部。分组太大了发送错误报告让源主机自己切分。

  2. 迁移:逐步升级,不能设置flag day。

  3. Tunneling:在IPv4路由器之间传输的IPv4数据报中携带IPv6数据报

    IPv6 datagram carried as payload in IPv4 datagram among IPv4 routers

Openflow

  1. : 由分组(帧)头部字段所定义(广义的分组)
  2. 流表的表项结构
    1. Rule(规则、模式):十几个字段
    2. Action(行动):各种操作
    3. Stats(状态、计数):基于包、基于字节

LS

  1. 可能会造成震荡(ocsillations)。最快路径都去选择,下一周期就会拥塞
  2. 时间复杂度O(n^2)(nlogn)
  3. message complexity:O(n^2)

DV

  1. 好消息传的快:好消息的传播以每一个交换周期前进一个路由器 的速度进行
  2. 坏消息传的慢:断线会形成环路,每次迭代代价+1,无限次之后, 到A的距离变成INF,不可达
  3. LS 和 DV 算法的比较
    1. 消息复杂度:DV传输的少,更优
    2. 收敛时间:LS更短,更优
    3. 健壮性:路由器故障时LS更健壮——错误信息影响较小

RIP

使用UDP

AS

层次路由:“autonomous systems” (AS)

  • 将互联网分成一个个AS(路由器区域)

    • 一个AS用AS Number (ASN)唯一标示
    • 一个ISP可能包括1个 或者多个AS
  • 每个区域内采用自己的路由协议算法

  • 自治区域之间运行AS间路由协议

BGP

互联网AS间路由:BGP

——BGP (Border Gateway Protocol):边界网关协议-将互联网各个AS粘在一起的胶水

  1. 两种方法:

    a. eBGP(相邻的ASes那里获得子网可达信息

    b. iBGP(将可达信息传遍到AS内部的所有路由器)

  2. BGP 会话:两个BGP路由器(peers)开机就建立半永久TCP连接,交换BGP报文,通告向不同目标子网前缀的“路径”——“路径矢量”协议,包含每一步到达子网X的跳数序列。

  3. 路由表项是由AS内和AS间的路由共同决定的。

  4. hot potato:尽快送出去,不操心域间代价

  5. 由于 BGP 路由中包含AS-PATH属性, 所以如果 BGP 对等体收到一条在 AS 路径中包含其自己的 AS 编号的路由,则使用该路由将导致环路,可以检测环路

ICMP: 因特网控制报文协议

  • 由主机、路由器、网关用于传达网络层控制信息:错误报告、Echo 请求和回复(ping)

SNMP

——自治系统(autonomous systems AS)的管理

terminology

hosts, routers: nodes

connect adjacent nodes along communication path: links

  1. wired , wireless

  2. LANs

layer-2 packet: frame

网络适配器

NIC,链路层大部分功能在硬件(Network Interface Controller)中实现,小部分在CPU上的软件中实现,因此链路层是硬件和软件交接的地方

services

  1. framing(成帧)
  2. link access(链路接入)
  3. reliable delivery between adjacent nodes
  4. error detection/correction

error detection, correction

  1. 奇偶校验:校验位

  2. 二维奇偶校验:多加一行和一列

  3. Internet checksum:加起来,进位加到末尾,取反

  4. Cyclic Redundancy Check:

    发送D,计算\(R = \frac{D*2^r}G\), 接收者检验<D,R>是否能被G整除

multiple access protocols

TDMA/FDMA

时分多路/频分多路

TDM/FDM缺陷:unused的时间帧/带宽被浪费了

Random access protocols

碰撞时等待一个随机时延,然后重发

  1. Slotted ALOHA

    每个时隙以p的概率重发

    efficiency定义为:有大量的活跃节点,长期运行成功时隙的份额

    Slotted ALOHA效率为\(Np(1-p)^{N-1}\)

    N趋近正无穷时,且取极值点p*,效率为\(1/e\) = 0.37

    decentralized, poor efficiency

  2. ALOHA

    非时隙,效率为1/2e = 0.18

  3. CSMA

    载波侦听Carrier Sense Mutiple Access

    listen before transmit

  4. CSMA/CD

    检测到碰撞后,等待一个随机时间,然后停止传输

    以太网等待K*512比特时间,K~(0,2^n-1),越来越长

    efficiency:\(\frac{1}{1+5d_{prop}/d_{trans}}\)

“Taking turns” MAC protocols

  1. polling protocol(轮询协议):主节点依次 poll 每个节点,告诉每个节点最多传多少帧(蓝牙协议使用这个)
  2. token-passing protocol(令牌传递协议):没有主节点,令牌交换,持有令牌才能传输

DOCSIS

电缆因特网接入,使用很多的协议

MAC Address

也称为LAN address,physical address

MAC地址有48位(6字节)

MAC地址是对应适配器(网络接口),因此一个主机可以有多个MAC地址,没有两个适配器具有相同的地址

一个接口对应一个MAC地址和一个IP地址

广播地址(所有适配器都接收):48个1,即FF-FF-FF-FF-FF-FF

移动时IP地址改变,MAC地址不变

Address Resolution Protocol

地址解析协议,ARP,为同一个子网上的主机和路由器接口解析IP为MAC

ARP表包含三列,IP地址,对应的MAC地址,TTL(寿命值)

ARP查询用广播地址(全1)查询子网所有接口,然后响应报文用标准帧发回

发给子网外,先用ARP查子网内路由器地址,然后路由器转发给子网外的适配器,再在目的子网中ARP查询目的MAC地址

Ethernet

以太网帧结构:

  1. preamble(前同步码,8 byte,用于区分噪音和数据进行同步,确认clockrate
  2. dest address(6 byte)
  3. source address(6 byte)
  4. type(2 byte,网络层协议类型)
  5. data(46~1500 byte)
  6. CRC效验码(4 byte)

特点:

  1. connectionless、unreliable(无回复)

  2. MAC protocol: 使用CSMA/CD来共享广播信道

    由于速度很快,几乎没有碰撞

switch

交换机,进行过滤和转发

交换机表,查询MAC地址对应的端口,也有TTL寿命

自学习功能,学习地址对应的端口,如果不知道对应端口就flood

路由器可以优化路由,交换机即插即用

Virtual LAN 虚拟局域网

motivation: 流量(广播)隔离,管理用户

  1. port-based: 某几个端口归入VLAN,只有这些端口之间可以互相访问,不同VLAN之间通过路由器访问
  2. VLAN trunking:用trunk(干线)连接的特殊端口互联不同VLAN
  3. 802.1Q frame:在dest address后新加2个2字节的VLAN标识符(一共4字节)

MPLS 多协议标签交换

  1. MPLS在IP header前插入MPLS header
  2. 只能在两个支持MPLS的路由器之间转发
  3. MPLS table:用入标签(线路号)来查询端口,快速转发

Others

802.11 帧

四个地址,地址1 receiver;地址2 sender;地址3 路由器接口MAC地址

RSA

  1. 两个大质数p,q,n = pq
  2. e与 (p-1)(q-1) 互质,选择d使得 ed-1 = k(p-1)(q-1)
  3. 公钥(n,e),加密m,得c = (m^e) mod n
  4. 私钥(n,d),解密(c^d) mod n = m

security

  1. Confidentiality 保密:消息内容不可知
  2. Authentication 认证:消息来源身份可信
  3. integrity 完整:消息是否被篡改
  4. Access and availability 可用性:消息服务是否可用

信道分配

  1. 两跳之间时间不同/颜色不同
  2. 同一个点连出去的边时间不同
posted @ 2025-06-15 23:00  lcyfrog  阅读(22)  评论(0)    收藏  举报