计算机网络模型与TCP/UDP协议
主要有三个网络模型:OSI七层参考模型、TCP/IP四层模型、TCP/IP五层模型
一、 OSI七层参考模型
是国际标准化组织【International Standard Organization】于1984年颁布的开放系统互联OSI【Open System Interconnection】参考模型。
- 物理层
完成相邻节点之间的原始比特流传输,主要负责“0”和“1”电信号传输 - 数据链路层
负责上层数据封装成固定格式的帧。规定解读方式:多少个0和1算一组?每个信号有什么意义?它在物理层的上方,确定了0和1的分组方式。
(1)以太网
“以太网”规定,一组电信号构成一个数据包,叫做“帧(Frame)”;每一帧分成两个个部分:标头(Head)和数据(Data)。1500 MTU
因此,数据链路层链路层的数据包就叫“以太网数据包”,他由“标头”和“数据”两部分组成——其中,“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等。
(2)MAC地址
上面我们提到,以太网数据包的“标头”包含了发送者和接受者的信息,那么,发送者和接受者是如何标识的呢?
以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡,传送到另一块网卡,网卡的地址,就是数据包的发送地址和接受地址,也叫MAC地址【图2】。
每块网卡出厂的时候,都有全世界独一无二的MAC地址,长度是48位的二进制,通常用12个十六进制数表示。前6个十六进制是厂商编号,后6个是该厂商的网卡流水号,有了MAC地址,就可以定位网卡和数据包的路径了。
二、OSI七层模型与TCP/IP模型
三、TCP/IP参考模型
- TCP/IP【传输控制协议、网络互连协议】
是一系列协议的集合 - 对应网络协议
注释: HTTP[超文本传输协议]、FTP【文件传输】 SMTP【简单邮件传输】DNS【域名解析】TFTP、SNMP
TCP【传输控制协议】 UDP【用户数据报协议】 TCP协议更加稳定可靠,UDP协议传输速率更高 ICMP[网际控制报文协议] ;
IGMP[网际组管理] IP、ARP[地址解析]RARP[逆地址解析]
四、数据传输过程
-
数据封装过程
-
数据解封装过程
-
PDU【协议数据单元】
是同层之间传递的数据单位;
-
网络中各层典型设备
五、TCP协议和UDP协议
(一)TCP(Transmission Control Protocol )传输控制协议
- 特点
(1) 面向连接、可靠的进程到进程通信的协议;
(2) 全双工;
(3) 临时存储数据 - TCP报文段的首部格式
注释: 源端口:发送方进程对应的端口号【16字段】 目标端口:接收端的进程,接收后根据此端口确定数据送给那个应用程序
控制位:URG:紧急指针有效位; ACK:当ACK=1时,确认序列号才有效 PSH:标志位1时要求接收方尽快将数据送达应用层;
RST:RST=1时,要求重新建立TCP连接; SYN:同步序号位,SYN=1时表示TCP需要连接;
FIN:发送端完成发送任务位,FIN=1时表示断开连接;
- TCP连接的三次握手:PC1–>PC2
(1) 第一次握手
PC1向PC2发送连接请求:SYN=1,其他5个控制位全为“0”
(2) 第二次握手【分两部分,但会合并在一个数据包中】
PC2收到PC1请求,向PC1回复确认消息;同时,PC2向PC1发送连接请求。
ACK=1,其他5个控制位全为“0”;确认序列号是PC1初始序列号+1
SYN=1,其他5个控制位全为“0”
(3) 第三次握手
PC1收到PC2回复,也发送一个确认信息;连接完成。
ACK=1,其他5个控制位全为“0”;确认序列号是PC2初始序列号+1;
(4) TCP三次握手示意图
- TCP断开连接【四次挥手】
客户端向服务器发送FIN=1,ACK=1的报文段
服务器向客户端返回ACK=1报文段
服务器向客户端发送FIN=1,ACK=1的报文段
客户端向服务器返回ACK=1的报文段
(1)TCP断开连接四次挥手示意图
- TCP端口及其应用
(二)UDP协议
-
概述
是一个无连接、不保证可靠性的传输层协议,日常生活中多用UDP传输数据,正因为其无连接便可传输数据,使得数据传输效率与速度极大的提高。如QQ、微信、游戏语音,直播等 -
UDP首部格式
校验和:检验数据差错,是UDP唯一可靠机制
-
UDP常用端口