我要成为高手

计算机网络概述

层次划分

OSI参考模型
应用层 为用户或应用程序服务的接口
表示层 负责数据的表示、翻译和格式化
会话层 会话和对话控制
传输层 端到端的可靠数据传输服务
网络层 解决异构网络的问题
数据链路层 解决可靠性、解决共享信道
物理层 解决比特流在信道上传输的可行性
TCP/IP概念层次
应用层
传输层
网际层
网络接口

传输层:数据段

网络层:分组

数据链路层:数据帧

物理层:比特

[!TIP]

玛德莫名其妙

因特网采用TCP/IP体系结构

协议

网络协议的三要素

  • 语法:数据或控制信息的数据结构
  • 语义:协议元素的含义
  • 时序:信息的每一个单元或事件的传送或执行顺序

性能指标

速率:b/s bps

带宽:单位Hz,和bps本质一样

吞吐量:单位时间通过网络的实际数据量

信道利用率:有数据通过时间/总时间

物理层

基本概念

信道:向某个方向传输信息的媒体

信号:数据的电气或电磁表现

码元:时间轴上的一个信号编码单元

波特:码元传输速率单位

比特率:数据传输速率

编码方式

image-20241228202933127

曼彻斯特:先低后高为0,先高后低为1

差分曼彻斯特:前半个码元电平与前一个码元后半个相同为1,反之为0。(保持为1,取反为0)

尼奎斯特和香农公式

尼奎斯特:理想低通信道,无噪声

C=2Wlog2MC:传输率b/sW:带宽HzM:信号电平级数2W是码元最高传输速率M是码元能代表几种数据C = 2Wlog_2M\\ C:传输率 b/s\\ W:带宽Hz\\ M:信号电平级数\\ 2W是码元最高传输速率 M是码元能代表几种数据

香农公式:非理想信道计算

C=Wlog2(1+SN)C:传输率,b/sW:带宽,HzSNdb:信噪比,dBSN=10SNdb/10若带宽W=3KHz,信噪比30dBC=3000log2(1+103)=30000b/sC=Wlog_2(1+\frac{S}{N})\\ C:传输率,b/s\\ W:带宽,Hz\\ \frac{S}{N_db}:信噪比,dB\\ \frac{S}{N}=10^{\frac{S}{N_{db}}/10}\\ 若带宽W=3KHz,信噪比30dB C=3000*log_2(1+10^3)=30000b/s

数据链路层

如何在有差错的线路上,进行无差错传输

组帧,以7E开头(01111110)

基本功能:

  • 链路管理:数据链路的建立、维护和释放
  • 定界与同步:能够从接受到的比特流当中准确的区分出一帧的开始和结束
  • 差错控制:纠错和差错检测
  • 流量控制:调节通讯双方通讯速度
  • 寻址:确保每一帧能够到达正确的目的端

差错检测和纠正

奇偶校验

原始数据最后增加一个比特位,让结果中1的个数为奇数(奇校验)或者偶数(偶校验)

原始数据11010采用偶校验 👉新数据为110101

循环冗余校验(CRC)

约定一个多项式G(x)假设为x^4+x+1,即10011

在带校验数据后补上4个0(因为Gx最高阶为4)

带校验数据1101011011→11010110110000

模2除法把带校验数据除以G(x)

[!WARNING]

不是除法!

image-20241229143856682

最后结果为1101,0110,1111,10

数据链路层协议

假设没有出错可以使用:

具有最简单流量控制的协议

发送方:

  1. 取数据帧
  2. 送到数据链路层发送缓存
  3. 发送
  4. 等待
  5. 接受到接收节点的确认信息,转到1

接收方

  1. 等待
  2. 收到数据帧,存到缓存
  3. 缓存上交到主机
  4. 发送确认信息到发送方
  5. 转到1

image-20241229144818995

停止等待协议

image-20241229144955608

一个比特可表示 0 1 两种不同的序号

确认帧带有序号,ACKn表示n-1号帧已经收到,期望接收第 n号帧

ACK1表示收到0号帧;ACK0表示收到1号帧

发送方

image-20241229152149769

接收方

image-20241229152209500

停止等待协议流图

image-20241229152854873

RTT:往返时延TD:分组的发送时延TA:确认的发送时延RTT:往返时延\\ T_D:分组的发送时延\\ T_A:确认的发送时延

连续ARQ:后退N帧协议GBN

image-20241229161544583

接收端只按序接收数据帧:收到出错的DATA2后,虽然收到了Data3-5但是要丢弃,并且重传ACK2(因为DATA2出错,希望得到DATA2)

发送端计时器超时重传:等不到ACK3,超时后从DATA2开始全部重传

选择重传协议

接收端的滑动窗口大于1,

发送端超时没有收到ACK(n) 就重发 Data(n),不会全部重发

滑动窗口

连续 ARQ协议中,接收窗口大小为1

  • 只有当收到的帧的序号与接收窗口一致时才能接收该帧
  • 收到一个序号正确的帧,接收窗口就向前滑动,同时发送ACK

接收窗口向前滑动→发送确认→发送窗口可能向前滑动

当用 n 个比特进行编号:滑动窗口最大 2^n - 1

发送窗口 接收窗口
停止等待协议 1 1
连续ARQ(后退N帧协议) >1 1
选择重传协议 >1 >1

信道利用率

T(发送周期):从开始发送数据到收到第一个确认帧为止

信道利用率=LC×1TLC:发送数据所用时长L:T时间内发送的数据数量C:发送传输率信道利用率=\frac{L}{C}\times\frac{1}{T}\\ \frac{L}{C}:发送数据所用时长\\ L:T时间内发送的数据数量\\ C:发送传输率

HDLC和PPP

主站:负责控制整个链路的操作由主站发出的帧为命令

从站:在主站的控制下进行操作由从站发出的帧为响应

链路结构

非平衡:一个主站多个从站

平衡:两个组合站

HDLC

真的。。。会考?吗?

考研不考。

image-20241229192411603

PPP:点对点

不是总线型,不适用CSMA/CD

用于广域网

image-20241229192309151

异步传输采用转义法,填入转义字符0x7D

同步传输采用零比特填充法,连续5个1后填入1个0

局域网的数据链路层

信道共享技术

随缘看看?

静态划分:

  • 频分复用:不同频率上传输
  • 时分复用:带宽一样,变成多个时间片依次发送
  • 波分复用:的频分复用
  • 码分复用:每个端都有个自己的码,互相正交。发1则把码发出去,发0则发取反码。

动态媒体介入控制:

  • 随机接入:ALOHA(接收方判断冲突,发送方超时重传)、CSMA
  • 轮询:令牌环网传递令牌,有空令牌的才发,收到令牌看是不是给自己的,不是接着传,是的话复制一份接着传,转一圈发现没出错就变成空令牌(负载严重时能较好的工作)

CSMA/CD

CMSA

CS:载波监听,发送前会先检测总线上是否有人发数据

MA:多点接入,多个计算机接在一个总线

1-坚持CSMA:空闲就发,忙则一直监听,冲突则等待一个随机时间再监听

非坚持CSMA:空闲就发,忙则等待一个随机时间再监听

p-坚持CSMA:空闲则以p概率发,1-p概率等下一个时间单位再发;忙则一直监听;冲突则等待一个时间单位再监听

[!NOTE]

这是重点

CD

CD:碰撞检测

image-20241229202154923

为了检测冲突,最小帧长为 2 * Prop * 传输速率(确保传完之前能检测到碰撞)

Prop = 线路长度/电磁波在传播速度

2Prop为争用期,也称碰撞窗口

以太网取51.2μs为争用期,对于10Mb/s的以太网,成勇气可以发送512bit也就是64字节。若前64字节没有冲突,那么后续也不会冲突。

以太网取64字节为最短有效帧长

发生碰撞后,推迟一段时间才能发送,基本退避时间一般取争用期2T

k = min[重传次数, 10],从[0,2^k -1]随机取一个r,重传等待的时间为r倍的2T

当重传达到16次还是不成功,说明网络拥挤,直接抛弃此帧报告出错。

MAC地址

48位Mac地址,每一台主机都有独立标识符,通常是12个十六进制数来表示

mac地址举例(01:23:45:67:89:AB)

目的地址和源地址都是6字节(48位)

类型指明网络层使用的协议,因为64字节为最短有效帧长(上面说了),所以数据段最短为46字节

FCS:采用CRC校验

image-20241229220712926

为什么没有结束的“后导”码:采用曼彻斯特编码,发送的时候1为前高后低,0为前低后高;发完了直接就没信号了,电平不变

局域网和VLAN

VLAN是虚拟局域网

创建VLAN后交换机转发表形如:

MAC地址 端口
A的地址 1
B的地址 2
C的地址 3
VLAN ID 端口
1 1
1 2
2 3

交换机之间建立VLAN发送数据会在数据帧插入VLAN标记

image-20241230141150645

网桥

网桥会通过数据 学习 不同地址对应的接口。

image-20241230143307475

  • 使用网桥能够隔开各个网段的碰撞域
  • 扩大物理范围
  • 提高可靠性
  • 过滤通信量,增大吞吐量

但是只能用于用户不太多的局域网,

  • 广播信息过多会产生广播风暴

其他概念

交换机:学习、转发、过滤

冲突域:任意时刻,一个碰撞域中,只能有一个站在发送数据

广播域:同一广播包能到达的所有设备集合

交换机和路由器

交换机能划分冲突域,不划分广播域

路由器可以划分广播域

网络层

网络层功能:

  • 路由选择和分组转发,找到最佳路径
  • 异构网络的互联
  • 拥塞控制
  • 尽最大可能交付
  • 不可靠传输!
image-20241230173853910

因特网采用数据报形式

为什么要有IP地址和MAC地址两种地址:

IP 地址解决了设备在大规模网络中的定位和路由问题,适用于网络间通信。

MAC 地址解决了局域网中设备的物理标识和直接通信问题。

MAC地址是固定的,无法适应网络位置变化,难以支持跨网络分组转发

IP数据报

image-20241230174447326
  • 首部长度:记录数据报头部长度。单位是4Byte也就是32bit。因为报文头部固定部分长度为20B,所以首部长度最少是5(0101),最大为15(1111)
  • 区分服务:服务的类型
  • 总长度:整个IP数据报文长度。单位是1Byte,所以IP报文理论最大上限长度是2^16-1 = 65535 Byte
  • 生存时间:TTL,没经过一个路由器-1
  • 协议:image-20241230175457883

数据报分片

数据链路层有最大长度限制,所以需要把IP数据报文分片。

image-20241230192714482

假如数据长度2200字节,MTU现在设定最大820字节,IP头部20字节,那么需要分成(820,820,620)三个片

image-20241230193107372
  • 标识:确定不同分片对应的的数据报文,为了后续拼接

  • 标志:占三个位:空位 DF MF;

    • DF=1禁止分片,DF=0允许分片;
    • MF=1表示后面还有分片,MF=0代表是最后一个分片
  • 片偏移以 8Byte 为单位image-20241230215535927

[!IMPORTANT]

奇奇怪怪的单位

首部长度:以4Byte为单位

总长度:以1Byte为单位

片偏移:以8Byte为单位

IP地址划分

image-20241230222944661

image-20241231143140233

0.0.0.0 缺省路由 可作为源地址,不可以作为目的地址
255.255.255.255 广播地址 不可作为源地址,可以作为目的地址
网络位全0 网络内,本机IP地址的主机部份 可作为源地址,不可以作为目的地址
主机号全0 代表网络的地址 不可作为源地址,不可以作为目的地址
主机号全1 网络内广播 可作为源地址,不可以作为目的地址
127.x.x.x 本地软件Loopback测试 可作为源地址,可以作为目的地址

不同网段的私有IP地址:仅能内部使用

地址类别 地址范围 网段个数
A 10.0.0.0 - 10.255.255.255 1
B 172.16.0.0 - 172.31.255.255 16
C 192.168.0.0 - 192.168.255.255 256

IP子网掩码

image-20241231150034788

子网掩码与IP地址相与,即可获得网络地址

例:

子网掩码255.255.192.0;IP地址141.14.72.24

网络地址为:141.14.64.0

[!WARNING]

易错例题

主机ip为180.80.77.55;掩码255.255.252.0,发送广播分组的目的地址为

1111 1100

0100 1101

0100 1100=76 但是广播地址要给主机号全变成1,所以是:

0100 1111 . 11111111

结果:180.80.79.255

无分类编址CIDR

消除了传统A、B、C类地址和划分子网的概念

image-20241231155327072

全0:本网络;全1:广播

image-20241231155457787

构成超网

image-20241231155943052
  • .00100000.
  • .00101000.
  • .00110000.
  • .00111000.
  • 最后构成35.230.32.0/19

最长前缀匹配

查路由表若有多个匹配结果,则发给有最长网络前缀的路由

ARP和ICMP协议

image-20241231172034292

ARP

在网络层,发送方只知道对方的IP地址,所以:

首先检查ARP缓存看有没有已经存好的地址,没有就用FF-FF-FF-FF-FF-FF发送广播ARP请求分组,收到请求的主机响应,返回MAC地址,随后发送方得到MAC地址。

如果是跨交换机,发送方得到的是交换机的MAC地址。交换机会再接着发

image-20241231170051028

四种典型情况:

  1. 主机A发送到本网络主机B:用ARP找到B的硬件地址
  2. 主机A发送给另一网络的主机B:用ARP找到本网络的一个路由器硬件地址
  3. 路由器发给本网络主机A:用ARP找到A的硬件地址
  4. 路由器发送给另一网络的主机B:用ARP找到本网络的另一个路由器硬件地址

**RARP:**很神奇喔,自己不知道自己IP地址,要通过自己的MAC地址询问服务器自己的IP是多少

DHCP

给主机动态分配IP,是应用层协议,用UDP

ICMP

ICMP报文装填在IP报文数据部分,但是是网络层协议

为了报告差错和异常,可以用来ping、traceroute

image-20241231172532499
  • 类型
  • 代码:拓展
  • 检验和:检验首部
ICMP差错报文
  1. 终点不可达:路由器或主机无法交付报文
  2. 源点抑制:拥塞而丢弃
  3. 时间超过:当路由器收到生存时间TTL=0的数据报文时,先丢弃该报文,再向远点发送时间超过报文
  4. 参数问题:路由器或目的主机收到的首部字段有误,发送参数问题报文
  5. 改变路由(重定向):路由器发送该报文到主机,让主机知道下次的数据包应该发送给另外的路由器(可能是更好的路由)

差错报文的ICMP数据字段

image-20241231173246830

[!NOTE]

差错报文不再发送差错报文

对第一个数据分片后的后续分片不发送ICMP差错报文

对具有组播地址的数据报不发送ICMP差错报文

特殊地址(127.0.0.0或0.0.0.0)不发送ICMP差错报文

ICMP询问报文
  1. 回送请求和回答报文
  2. 时间戳请求和回答报文

IGMP

提供带多播组标识的路由,让整个网络都支持多播

用于管理主机与多播组的关系

路由选择协议

内部网关西医:RIP、OSPF

外部网关协议:BGP

RIP协议

距离:跳数。从路由器到直接相连的网络距离为1,经过一个路由器+1

距离最大为16,一条路由最多只能包含15个路由器。RIP只适用于小型网络

image-20241231195543964

格式

网络 距离 下一跳

每30s和邻居交换一次路由信息,交换的信息是本路由器的全部信息。

  1. 把地址为X的路由器中发来的RIP报文中所有项目,地址改为X,距离为报文中距离+1
  2. 对修改后的RIP报文中每一个项目进行:
    • 路由表没有对应Net,填入
    • 路由表有对应Net,
      • 若原有下一跳是X,直接替换
      • 若原有下一跳不是X,比较距离,保留短的
  3. 若180s没收到X发来的更新路由表信息,把X对应表项距离设置为16,意思是不可达
IP首部 UDP首部 RIP报文

RIP报文在UDP的数据报中,所以RIP是应用层协议

一个RIP报文最多传送25个路由表项,如果表项太多需要发多个RIP报文

RIP中好消息传的快、坏消息传的慢,解决方案:

  • 水平分割:禁止把一条路由信息从收到这条路由信息的接口广播出去
  • 保持:当一个网络不可达后,一段时间内忽略其他路由发来的该网络信息
  • 触发更新:一旦网络不可达,直接广播,不等待下一个广周期到

OSPF协议

用了Dijkstra的最短路径SPF算法

OSPF使用洪泛法,向所有服务器发送

直接使用IP报文发,没有UDP包装,是网络层协议

只有链路状态变化,才会发送信息

OSPF不使用RIP的距离,使用“度量”metric

存储全网拓扑结构图

OSPF还会划分区域

image-20241231233656203

BGP

外部通讯协议

用TCP

PPT里没有

传输层

传输层功能:

  • 应用进程之间的逻辑通信
  • 复用和分用(复用:不同进程可用同一个协议;分用:接收方传输层剥去首部课正确交付)
  • 检错检测
  • 提供面向连接和无连接的传输协议

端口号

1-65535其中:

1-1024:熟知端口,用于常用应用程序,如ftp 21,smtp 25等

1024-49151:注册端口

49152-65535:客户端进程动态生成

嵌套字Socket格式 = IP地址:端口号

UDP

无连接不可靠(只会尽最大努力交付),简单,包头小

首部简单:

1735711096881

UDP报文长度:头部加上数据

校验部分添加伪首部校验

UDP常见应用:

  • DNS域名服务
  • SNMP简单网络协议
  • RIP路由信息协议
  • P2P点对点通信

TCP

面向连接,可靠有序,不丢失不重复

全双工通信,面向字节流

TCP报文头部

image-20250101144607767
  • 每个端口占16位(1-65535)
  • 序号:表示本报文发送的数据第一个字节的序号,注意是字节的序号
  • 确认号:期望收到的下一个报文的第一个数据字节的序号。若为N,则说明N-1位置的数据都已经收到
  • 数据偏移:就是首部长度,单位是4字节
  • 保留字段:全为0
  • 6个控制位
    • URG紧急位:置为1时,说明是紧急文件,要尽快发送【发送方紧急】
    • ACK确认位:=1确认号有效,建立连接后应该一直为1
    • PSH推送位:=1时接收方应尽快接受并交付【接收方紧急】(不考)
    • RST复位:=1表明连接严重差错,要释放连接(不考)
    • SYN同步位:=1时表明这是一个连接请求/接受报文
    • FIN终止位:=1时表明发送方数据已经发完,要求释放连接
  • 窗口发送方的接收窗口,即发送放现在允许对方发送的数据量,单位1字节
  • 校验和:检验首部+数据,要加上12B伪首部(其中伪首部第四个字段为6)image-20250101202339846 伪首部长这样
  • 紧急指针:URG=1时有意义,本报文段紧急数据的字节数
  • 选项:长度可变,可以有最大报文长度、窗口扩大、时间戳等
  • 填充:使得首部是4字节(32位)的整数倍

TCP连接管理

连接建立→数据传送→连接释放

TCP连接建立(三次握手协议)

image-20250101151837970
  1. 客户端发送连接请求【同步位SYN=1,初始序号seq=x(随机)】,无应用层数据,客户端进入SYN-SENT(同步已发送)状态
  2. 服务器若同意,返回确认报文段【同步位SYN=1,确认位ACK=1,序号seq=y(随机),确认号ack=x+1】,无应用层数据,服务器进入SYN-RCVD(同步收到)状态
  3. 客户端返回确认的确认【同步位SYN=0,确认位ACK=1,序号seq=x+1,确认号ack=y+1】,客户端为TCP分配缓存和变量,可携带应用层数据

TCP连接释放(四次握手)

image-20250101152842674
  1. 客户端发送连接释放报文【终止位FIN=1,序号seq=u(等于前面的序号+1)】,进入FIN-WAIT-1状态
  2. 服务器返回确认报文段【确认位ACK=1,序号seq=v,确认号ack=u+1】,服务器进入CLOSE-WAIT(半关闭状态),这个时候服务器还能向客户端发送数据
  3. 服务器发完数据,发出连接释放报文【终止位FIN=1,确认位ACK=1,序号seq=w,确认号ack=u+1】,进入LAST-ACK(最后确认)状态
  4. 客户端返回确认报文段【确认位ACK=1,序号seq=u+1,确认号ack=w+1】,客户端等待2 * MSL(最长报文段寿命)的时间后,彻底关闭

TCP可靠传输

网络层不可靠

传输层TCP实现可靠传输

序号

每个字节都有一个序号

序号字段是第一个字节的序号

确认

发送方发完了数据先放进缓存,直到确认了再删

重传

  • **超时重传:**TCP采用一种自适应算法,记录一个报文段发出的时间和确认的时间,时间差为RTT(往返时间),TCP会维护一个加权平均往返时间RTTS,随着样本值变化而变化。超时重传时间略大于RTTs
  • **冗余ACK:**每当比期望序号打的失序报文段到达,发送一个冗余ACK,指明期待收到的下一个序号,发送方收到了这个ACK后立刻重传不用等超时

TCP流量控制

哦又是熟悉的协议!

停止等待协议

image-20241229152854873

信道利用率U=TDTD+RTT+TA信道利用率U=\frac{T_D}{T_D+RTT+T_A}

流水线传输

这不是我们滑动窗口吗

image-20250101171246593

字节为单位的滑动窗口

  1. 根据接收方给出的窗口值,构造自己的发送窗口
  2. 发送数据
  3. 收到确认前移

发送窗口并不总是和接收窗口一样大(因为时间滞后)

发送窗口取接受窗口和拥塞窗口的最小值

发送缓存用于暂时存放准备发的发送数据和TCP发出但没确认的数据

接收缓存用于存没按序到达的数据和被接受但没被应用读取的数据

image-20250101173640333

报文中窗口参数 rwnd 单位字节

TCP有一个计时器,如果收到rwnd=0后,会启动计时器,一段时间后发送零窗口探测报文段,对方会再次给出当前窗口值

TCP拥塞控制

[!NOTE]

重要喔

未按时收到确认就判定为拥塞

拥塞控制控制多个发送方,流量控制控制单个发送方

发送窗口取接收窗口rwnd和拥塞窗口cwnd较小的一个

慢开始和拥塞避免

慢开始:

先预设一个ssthresh值

发送方A先令cwnd=1,发一个,收到B的确认后cwnd乘以2变成2;再收到变成4

cwnd指数增长,直到cwnd >= ssthresh 即慢开始门限改为使用 阻塞避免算法

*注意:*如果乘以2大于ssthresh,那么只能取ssthresh,不能指数增大超过门限

阻塞避免算法:

每收到1条确认,cwnd只+1,线性增长

遇到网络拥塞:

把ssthresh设置为拥塞时cwnd值的一半,然后让cwnd=1重新慢开始

image-20250101200956320

快重传和快恢复

image-20250101201343117

为了尽早重传:

如果连续收到三个重复的冗余ACK确认,立即重传相应的报文段

ssthresh调整为当前cwnd的一半,这个时候不会慢开始,采用快恢复

快恢复:

直接把cwnd设置为当前cwnd的一半,跳过慢开始阶段,直接开始拥塞避免加法增大

应用层

应用模型

C/S模型

服务器永久提供服务,永久性访问地址/域名

服务器处于接受请求状态,收到客户机请求后处理,发送结果

客户机之间不通信

可扩展性不佳

P2P模型

莫得服务器,全是客户机,都可以请求服务,都可以提供服务

任意两点都可以直接通讯,节点可能改变IP地址

可扩展性好

网络健壮性强,失去一个节点也不会网络失效

域名解析DNS系统

使用UDP

www.baidu.com

顶级域名:

国家顶级域名:cn、us、jp

通用顶级域名:com、net、org…

二级域名:

上述例子中的baidu

image-20250101211437736

根域名服务器:知道所有顶级域名服务器的IP地址

顶级域名服务器:一个顶级域名有很多顶级域名服务器,可以获取顶级域名下属二级域名

权限域名服务器:负责一个区的域名服务器

本地域名服务器:发送DNS请求的时候会先查询本地域名服务器

  1. 主机向本地域名服务器查询
  2. 本地域名服务器向根域名服务器查询,得到顶级域名服务器地址
  3. 本地域名服务器向顶级域名服务器查询,得到权限域名服务器地址
  4. 本地域名服务器向权限域名服务器查询,得到最终要访问的IP地址
  5. 本地域名保存IP地址,返回给主机

FTP文件传送协议

适用于不同操作系统中传输

使用C/S协议模式

使用TCP实现可靠传输

  1. ftp服务器启动
  2. 客户端登录ftp服务器,输入用户名密码或者匿名登陆
  3. 服务器启动一个新的从属进程【包含控制进程和数据传输进程】
    • 21号端口控制连接:控制发不发、终止等
    • 20号端口数据连接:传文件的
      • 主动模式:连接后客户端随机开一个端口,服务器通过端口20连接客户端【默认主动】
      • 被动模式:连接后服务器随机开一个端口,客户端连接到服务器端口
  4. 开始传输

电子邮件

image-20250101221119568

使用TCP

STMP推送邮件到服务器

POP3或IMAP从服务器拉取邮件

STMP步骤:

  1. 发送方发到发邮件服务器
  2. 发邮件服务器与接收方建立TCP连接
  3. 发邮件服务器问STMP服务器是否有收件人
  4. 传输邮件
  5. 释放连接

SMTP只能发ASCII码,所以要使用MIME来把非ASCII码转化为7位ASCII码

**POP3或者IMAP协议:**收取邮件

HTTP协议和www.

URL形式

协议://主机:端口/路径

http协议是超文本传输协议,语言HTML

HTTP采用 TCP 为传输层协议,但HTTP协议本身是无连接的

非持久连接:

image-20250101225428059

持久连接:

image-20250101225402193

HTTP请求报文面向文本,所以报文中每一个字段都是ASCII码串

  1. 浏览器分析URL
  2. 浏览器向DNS请求解析IP地址
  3. 获得IP地址
  4. 浏览器与服务器建立TCP连接
  5. 浏览器发出取文件命令GET /index.htm
  6. 服务器给出响应发文件
  7. TCP连接释放
  8. 浏览器显示

请求报文

image-20250101225839920

响应报文

image-20250101225853337

1xx表示通知信息

2xx表示成功(如200、202)

3xx表示重定向(如301)

4xx表示客户差错(如404)

5xx表示服务器差错

完结撒花

我要成为高手