基本知识点

1.OSI参考模型(七层体系结构)

物理层 - 数据链路层 - 网络层 - 运输层 - 会话层 - 表示层 - 应用层

2.TCP/IP体系结构(四层体系结构)

网络接口层 - 网际层IP - 运输层(TCP/UDP) - 应用层(FTP/SMTP/HTTP/TELNET…)

物理层

1.奈氏准则

理想低通信道最高码元传输速率 = 2W Baud(即每赫兹理想低通信道最高码元传输速率每秒2个码元)

2.香农定理

信道的极限传输速率C = Wlog2(1+S/N),W为带宽,S为平均功率,N为高斯噪声功率,S/N也称为信噪比

3.物理层之下的传输媒体

双绞线 同轴电缆 光缆

4.调制器和解调器

调制器:基带数字信号波形转为模拟信号的波形

解调器:将经过调制器变换的模拟信号恢复成原来的数字信号

5.采样定理

只要采样频率不低于电话信号最高频率的2倍,就可以从采样脉冲信号无失真地恢复出原来的电话信号。

6.信道复用技术

频分复用FDM 时分复用TDM

码分多址CDMA:每个用户可以在同样的时间使用同样的频带进行通信。

7.单工 半双工 全双工

8.基带和宽带

基带信号指将数字0,1直接用两种不同电压来表示,然后运到线路上传输。宽带信号指将基带信号调制后形成频分复用模拟信号。

9.基带信号 - 曼彻斯特编码信号 - 差分曼彻斯特编码

曼彻斯特编码:一个码元拆2个,码元1前高后低,码元0相反

差分曼彻斯特编码:一个码元拆2个,码元1前半个与上一个码元的后半个一样,码元0相反。

数据链路层

1.链路和数据链路(除了一条物理链路外还需要加一些通信协议控制数据的传输)

2.数据链路层3个基本问题 帧定界 透明传输 差错检测

3.帧定界

帧的数据部分的上限 <= MTU(最大传输单元),SOH(0x01)和EOT(0x04)分别指示帧的开始和结束。

4.透明传输(数据的比特组合必须是不受限制的)

方法1:字节插入

net1

方法2:比特插入

5.差错检测

误码率:传输错误的比特与传输总比特数的比率

CRC(Cyclic Redundancy Check):循环冗余检验

CRC是检错方法并不能纠错,FCS(Frame Check Sequence)是冗余码。

计算冗余码(余数R)的方法:先补0(n个)再对生成多项式取模。

CRC只能表示以接近1的概率认为它没有差错。但不能做到可靠传输。可靠传输还需要确认和重传机制。

生成多项式P(X):CRC-16,CRC-CCITT,CRC-32

6.停止等待协议:解决死锁使用超时计时器。对重复帧的处理:丢弃,再次发送确认帧。向上面的网络层提供了可靠传输。是一种ARQ的差错检测方法。

7.发送窗口大于1的ARQ:连续ARQ和选择重传ARQ

连续ARQ又称Go-back-N ARQ,意思是出现差错必须重传时,要回走n个帧,即使是已经传送正确的数据帧也要重传。(仅因这些正确帧那面有一个错误)

滑动窗口:(解决连续ARQ中一旦某个帧出错要重传之后许多帧,浪费时间,增大开销,因此我们对发出去但未被确认的帧的数目加以限制)包括发送窗口和接收窗口。为了减少开销,连续ARQ还执行捎带确认的机制。发送窗口Wt<= 2^n-1(n代表用几比特编号),接收窗口Wr=1。

选择重传ARQ:需要缓存空间,一般不使用。

接收窗口Wr<=2^n/2 当接收窗口Wr为最大值时 Wt=Wr=2^n/2 这种收发两端窗口按规律向前移动,也称为滑动窗口协议。(连续ARQ,选择重传ARQ,停止等待都是)

6.PPP协议

ppp帧格式

注:当协议字段为0x0021时,信息字段为IP数据报,不超过1500字节

字节填充:转义符为0x7D

0比特填充:5个连续的1插入1个0

7.HDLC协议:可以实现可靠传输

局域网

1.按网络拓扑结构分:星形网、环形网(令牌环形网)、总线网、树形网。

2.以太网

DIX EthernetV2以太网标准成为主流

802的数据链路层划分:逻辑链路控制LLC子层 + 媒体接入控制MAC子层

以太网提供的服务是不可靠的交付,即尽最大努力交付。因为采用无连接,数据帧不编号,也不要求对方确认。对有差错的帧的重传有高层来决定。

CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection):载波监听多点接入/碰撞检测

用于协调同一时间只能允许一台计算机发送信息,否则就会相互干扰的问题。

电磁波在1km电缆的传播时延约5us。使用CSMA/CD协议,一个站不能同时发送和接收,因此不能实现全双工。

争用期:2τ 51.2us 最短有效帧长为64字节

截断二进制指数退避算法:基本退避时间了2τ k=min{重传次数,10} r=random(0~2^k-1) 重传所需时延为r倍的基本退避时间

3.MAC帧格式(以太网V2)

net3

4.VLAN

局域网网段构成的与物理位置无关的逻辑组。克服了广播风暴

5.快速以太网参数a=τC/L。a为总线的单程传播时延和帧的发送时延之比 C为数据率 L为帧长,a远小于1,信道利用率越高

6.无线网CSMA/CA

城域网

网络层提供的服务:无连接的数据报和面向连接的虚电路

数据报优点:128字节作为一个分组,迅速经济。主机承担端到端的差错控制和流量控制。

虚电路:每个分组无需携带完整的目的地址,分组按顺序交付,网络负责差错控制和流量控制。

使用默认路由简化转发表。

拥塞:Σ对资源的需求 > 可用资源

拥塞控制是一个全局性的过程,涉及到所有主机路由器。 流量控制往往指端到端之间点对点通信量的控制。

拥塞过程:轻度拥塞 - 拥塞 - 死锁(直接死锁,重装死锁:因为路由器缓存引起的拥塞)

ATM(异步传递方式):建立在电路交换和分组交换的基础上一种面向连接的快速分组交换技术。

网络层(IP层)

1.中继(中间设备):

物理层中继系统:转发器 数据链路层中继系统:网桥或桥接器 网络层中继系统:路由器 网络层以上的中继系统:网关。由于历史原因,TCP/IP的文献中将路由器称为网关。

2.协议:IP协议及与之配套的4个协议

ARP(Address Resolution Protocol)地址解析协议:IP地址 -> MAC地址 RARP(Reverse Address Resolution Protocol)逆地址解析协议:MAC地址 -> IP地址 ICMP(Internet Control Message Protocol)因特网控制报文协议 IGMP(Internet Group Management Protocol)因特网组管理协议

3.IP地址分类:1.基本分类的IP地址(两级) 2.子网的划分(三级) 3.无分类编址(构造超网)

4.IP地址使用范围:

net4

注:1.主机数减2的原因是因为主机号全0代表该IP地址是本主机所连接到的单个网络地址;主机号全1代表本网络上的所有主机。 注:2.A类地址网络数-2的原因是:第一,网络号全0是个保留地址代表本网络;第二,网络号为127(01111111)保留为本地软件环回测试。

注1:D类IP地址网络号固定位为1110 用于多播;E类IP地址网络号固定位为11110,为保留地址。

5.IP地址和硬件地址

网络层的IP数据报交给数据链路层被封装成MAC帧,MAC帧的源地址和目的地址变为硬件地址

6.ARP(IP地址 -> MAC地址)

使用IP地址并不能直接用来通信,因为IP地址只是主机在抽象的网络层中的地址。最终要传到数据链路层封装成MAC帧才能发送到实际的网络。 因此不管使用什么协议最终需要的还是硬件地址。

每个主机拥有一个ARP高速缓存(存放所在局域网内主机和路由器的IP地址到硬件地址的映射表)

举例:A发送B (1).A在ARP Cache中查到B的MAC地址,写入MAC帧发往此B

(2).没查到,A向本局域网广播ARP请求分组,内容包括自己的地址映射和B的IP地址

(3).B发送ARP响应分组并写入A的映射(单播的方式)

ARP Cache映射项目具有一个生存时间。

7.IP数据报格式

固定部分 20字节

版本 - 首部长度 - 服务类型 - 总长度 - 标识 - 标志 - 片偏移 - 生存时间 - 协议 - 首部检验和 - 源地址4B - 目的地址4B - 可变部分4B

标识:一个计数器,用来产生数据报的标识。

标志字段:3位 MF=1后面还有分片 DF=0允许分片

IP分片 MF DF 片偏移

协议:占1个字节

首部检验和:反码算数运算,不采用CRC

8.划分子网:IP地址:网络号 - 子网号 - 主机号;(子网号是在两级分类编址中的主机号中划出的)

子网掩码:网络号子网号置1(相当于CIDR中的网络前缀)主机号置0,这样子网掩码与IP地址相与即可算出网络地址。

划分子网下的路由器转发算法:

(1)从收到的数据报的首部提取目的IP地址D

(2)先判断是否为直接交付。对与路由器相邻的子网进行检查。用各网络子网掩码与D相与,查看是否匹配。若是,直接交付(D 转化为物理地址,数据报封装成帧发送出去。)转发结束。若否,为间接交付,执行(3)

(3)若路由表中有目的地址D的特定主机路由,则将数据报传给该路由,否则,执行(4)

(4)对路由表的每一行(目的网络地址、子网掩码、下一跳地址),将其中的子网掩码与D相与,结果为N。若N与该行目的网络地址匹配,则 将该数据报传给该行指明的下一跳路由器,否则,执行(5)

(5)若路由表中有一个默认路由,则传给默认路由,否则,执行(6)

(6)报告分组转发出错

9.无分类编址CIDR(CLassless Inter-Domain Routing 无分类域间路由选择)

无分类的两级编址:格式:网络前缀 - 主机号

路由聚合也称为构造超网因为一个CIDR地址块可以表示很多地址。

最长前缀匹配:从匹配结果中选择具有最长网络前缀的路由

10.ICMP(Internet Control Message Protocol)因特网控制报文协议

包括ICMP差错报文和ICMP询问报文

ICMP差错报文的类型:终点不可达 源点抑制 时间超过 参数问题 改变路由

ICMP询问报文的类型:回送请求和回答 时间戳请求和回答 掩码地址请求和回答 路由器询问或通告

应用层服务Ping使用了ICMP回送请求和回答报文,是应用层直接使用网络层ICMP的例子。没有通过运输层的TCP或UDP

11.路由选择协议

自治系统AS:自治系统有权自主地决定在本系统类采用何种路由选择协议。

路由选择协议分为两类:内部网关协议IGP(Interior Gateway Protocol)主要有RIP和OSPF

外部网关协议EGP(External Gateway Protocol)主要是BGP-4

RIP(Routing Information Protocol):分布式的基于距离向量的路由选择协议

RIP的距离也称为跳数,RIP允许一条路径上最多包含15个路由器,因此距离为16相当于不可达。

RIP仅和相邻路由交换信息,交换的是当前路由器知道的全部信息,即自己的路由表。按固定的时间间隔交换。

RIP协议是收敛的,所谓收敛指自治系统中的所有结点都得到正确的路由选择信息的过程。最终使得每一个路由器到 每一个目的网络的路由都是最短的。

优点:实习Ian简单,开销简单。缺点:“好消息传得快,坏消息传得慢”。

RIP使用运输层UDP(520端口)进行传送,因此RIP的位置在应用层。但转发用户数据报的过程在网络层完成的。

OSPF(Open Shortest Path First开放最短路径优先):分布式的基于链路状态协议

1.使用洪范法向本自治系统内所有路由器发送信息。

2.发送的信息是与本路由器相邻的所有路由器的链路状态。

3.只有链路状态发生变化时,路由器才使用洪泛法向所有路由器发送信息(而RIP是不管网络拓扑有无变化,路由器间都要定期交换路由表信息)

由于频繁交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,在全网范围内是一致的。

OSPF更新过程收敛的快。

OSPF不用UDP而直接用IP数据报发送。可见OSPF的位置在网络层。

负载均衡:在代价相同的路径上分配通信量,这叫多路径间的负载均衡。

外部网关协议BGP(Border Gateway Protocol:边界网关协议):基于路径向量路由选择协议。

目标:力求选择一条比较好的路由。并非寻找最佳。

BGP发言人需要建立TCP连接(端口179),然后在此连接上交换报文以建立BGP会话。

BGP发言人需要同时运行BGP协议和内部网关协议

BGP解决了基于距离向量路由选择算法中的“好消息传得快,坏消息传得慢”这一问题。

BGP-4一共4种报文:打开包文 更新报文 保活报文 通知报文

12.IGMP(因特网组管理协议)

13.虚拟专用网

专用地址

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地址在本机构内部使用,也叫可重用地址。

隧道技术实现虚拟专用网VPN(Virtual Private Network)

分类:内联网VPN 外联网VPN

内联网外联网都采用TCP/IP

14.NAT(Network Address Translation)

使用本地地址的主机在和外界通信时都要在NAT路由器上将本地地址转换成全球地址。

15.解决IP地址耗尽的方法

(1)采用无分类编址CIDR,使IP地址分类更合理 (2)采用NAT转换 (3)IPv6 16.在网络层,IP数据报的首部检验和字段只检验首部是否出差错而不检验数据部分。

运输层

运输层提供应用进程间的逻辑通信。它使应用进程看见的就好像是在两个运输层实体间一条端到端的逻辑通信信道。

当运输层采用TCP时,尽管下面的网络是不可靠的,但这种逻辑通信信道相当于一条全双工的可靠信道。可以做到报文的无差错、 按序、无丢失、无重复。

单单面向连接只是可靠的必要条件,不充分。还需要其他措施,如确认重传,按序接收,无丢失无重复。

熟知端口:

20 FTP数据连接
21 FTP控制连接
22 SSH
23 TELNET
25 SMTP
53 DNS
69 TFTP
80 HTTP
161 SNMP

UDP重要

UDP的优点:

1.发送之前无需建立连接,减小了开销和发送数据的时延

2.UDP不使用拥塞控制,不使用可靠交付,因此主机不需要维护复杂的参数表、连接状态表

3.UDP用户数据报只有8个字节的首部开销,而TCP要20字节。

4.由于没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(IP电话等实时应用要求源主机以恒定的速率发送数据)

Table,使用TCP和UDP的应用

net5

注:TFTP:Trivial File Transfer Protocol

UDP的过程:

1.服务器进程运行着,等待TFTP客户进程的服务请求。客户端TFTP进程启动时,向操作系统申请一个临时端口号,然后操作系统为该进程创建2个队列, 入队列和出队列。只要进程在执行,2个队列一直存在。

2.客户进程将报文发送到出队列中。UDP按报文在队列的先后顺序发送。在传送到IP层前给报文加上UDP首部,其中目的端口后为69。然后发给IP层。 出队列若溢出,则操作系统通知应用层TFTP客户进程暂停发送。

3.客户端收到来自IP层的报文时,UDP检查报文中目的端口号是否正确,若正确,放入入队列队尾,客户进程按先后顺序一一取走。若不正确,UDP丢弃该报文,并请ICMP发送”端口不可达“差错报文给服务器端。入队列可能会溢出,若溢出,UDP丢弃该报文,不通知对方。

服务器端类似。

UDP首部:源端口 - 目的端口 - 长度 - 检验和,每个字段22字节。

IP数据报检验和只检验IP数据报的首部,而UDP的检验和将首部和数据部分一起都检验。

TCP重要

TCP报文段是面向字节的数据流。

TCP首部:20字节固定首部

确认比特ACK,ACK=1 确认号字段才有效;同步比特SYN:SYN=1 ACK=0表示一个连接请求报文段;终止比特FIN,FIN=1时要求释放连接。

窗口:A根据TCP缓存空间的大小确定自己的接收窗口大小。A发送给B的窗口字段写入该值。作为B的发送窗口的上限。

选项:最大报文段长度MSS,MSS告诉对方TCP:我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。若主机未填写,默认为536字节。

TCP的可靠是使用了序号和确认。存放副本。

TCP报文段的发送时机:1.维持一个变量等于MSS,缓存达到就发送 2.发送端应用进程指明要发送,即TCP支持的PUSH操作。3.设定计时器

接收端根据自身资源情况控制发送端发送窗口的大小。

接收端窗口rwnd(receiver window):接收端根据目前接收缓存大小设置的窗口值,是来自接收端的流量控制

拥塞窗口cwnd(congestion window):是发送端根据自己估计的网络拥塞程度设置的窗口值,是来自发送端的流量控制

发送端的窗口=Min(rwnd, cwnd)

慢开始算法:cwnd设置为1个MSS,每收到一个确认,将cwnd+1,逐步增大cwnd,使分组注入网络的速率更加合理。

慢开始门限:ssthresh,当cwnd < ssthresh,执行慢开始算法;cwnd > ssthresh,改用拥塞避免算法。 cwnd = ssthresh时,都可以。

拥塞避免算法使发送端的拥塞窗口每经过一个RTT增加一个MSS(而不管在此期间收到多少ACK),这样,拥塞窗口cwnd按线性规律增长,比 慢开始算法拥塞窗口增长速率缓慢很多。(加法增大)

无论是慢开始还是拥塞避免,只要发送端发现网络出现拥塞(根据是没有按时收到ACK或者收到重复ACK),就开始将慢开始门限ssthresh设置为 出现拥塞时拥塞窗口值的一半。拥塞窗口cwnd置为1,执行慢开始算法。(乘法减小)

上述TCP确认都是通过捎带确认执行的。

快重传:发送端一连收到三个重复的ACK,即可断定分组丢失,不必等待重传计数器,立即重传丢失的报文。

快恢复:当发送端收到3个重复的ACK时,乘法减小,ssthresh变为一半。但是cwnd不是置为1,而是ssthresh+3MSS。若收到的重复ACK 为n(n > 3),则cwnd=ssthresh+n*MSS.在使用快恢复算法时,慢开始算法只在TCP连接建立时使用。若收到了确认新的报文段的ACK,就将

TCP的重传机制

每发送一个报文段,就对这个报文段设置一次计时器。新的重传时间=γ*旧的重传时间。

TCP连接建立和释放的过程

SYN置1和FIN的报文段要消耗一个序号。

客户端连接状态变迁:CLOSED -> 主动打开,发送SYN=1 -> SYN_SENT -> 收到服务器的SYN=1和ACK时,发送三次握手的最后一个ACK -> ESTABLISHED -> 数据传送 -> 主动关闭 -> 发送FIN=1,等待确认ACK的到达 -> FIN_WAIT_1 -> 收到确认ACK后时,一向连接关闭 -> FIN_WAIT_2 ->收到服务器发送的FIN=1报文,响应,发送四次挥手的的最后一个确认ACK -> 这时另一条连接也关闭了,进入TIME_WAIT状态 -> 经过2倍报文寿命,TCP删除连接记录 -> 回到CLOSED状态

服务器端连接状态变迁:CLOSED -> 被动打开 -> LISTEN -> 收到SYN=1的报文,发送SYN=1和确认ACK -> 进入SYN_RCVD -> 收到三次握手 的最后一个确认ACK -> ESTABLISHED -> 数据传送 -> 数据传送完毕,收到FIN=1 -> 发送确认ACK并进入CLOSED_WAIT -> 发送FIN=1给客户端 -> LAST_ACK -> 收到客户端的ACK -> 删除连接记录 -> 回到CLOSED状态

应用层

1.DNS

2.电子邮件:用户代理,邮件服务器,协议 其中SMTP用于发送邮件,POP3用于接收邮件。

3.HTTP请求报文和响应报文:开始行 首部行 实体主体

4.BOOTP和DHCP:Dynamic Host Configuration动态主机配置协议。需要IP地址的主机向DHCP服务器广播,源IP全0 目的主机IP全1,DHCP查找配置信息,若找到,返回,若找不到,从服务器IP地址池取一个地址分配给该计算机。

5.SNMP 简单网络管理协议

网络安全

常规密钥密码体制:加密密钥和解密密钥是相同的密码体制,又称对称密钥体制。DES(Data Encryption Standard)和IDEA(International Data Encryption Algorithm)。

公开密钥密码体制:为了解决常规密钥体制的密钥分配问题和对数字签名的需求。

RSA公开密钥密码体制

原理:根据数论,寻求两个大素数比较简单,而把两个大素数的乘积分解及其困难。

数字签名:需要保证一下三点

(1)接受者能够核实发送者对报文的签名 (2)发送者事后不能抵赖对报文的签名 (3)接收者不能伪造对报文的签名

防火墙:是由软件硬件构成的系统,用来在两个网络之间实施接入控制策略。

完,作者:、insomnia

微博@梦回少年rann

To Be Continued…

本文系本人个人公众号「梦回少年」原创发布,扫一扫加关注。