一、OSI/RM---开放式的互联系统参考模式
(1)产生背景
各大厂商都有自己的私有协议;
跨厂商的设备不兼容;
用户维修成本增加;
ISO--国际标准化组织。
(2)OSI模型的通信过程
应用层:为各种应用程序提供网络服务
表示层:定义了数据的加密、解密、压缩、解压缩等格式
会话层:建立、维护我们通信双方的会话
传输层:建立端到端的连接----端口号---逻辑上的连接
知名端口号:1-1023
HTTP协议---超级文本传输协议---80
FTP协议---文件传输协议----21、22
SMTP协议----简单邮件传输协议----25---邮件发送方
pop协议----邮局协议---110---邮件接收方
telnet协议---远程登录协议----23
DNS---域名解析系统--53
TFTP协议---简单文件传输协议
动态端口号: 1024-65535 分配给不固定的服务
网络层:转发数据、提供路由
数据链路层:交换机,根据MAC地址寻址、转发数据、封装成帧、差错检测
LLC子层:逻辑链路控制子层:为传输数据提供一个安全的通道
MAC子层:媒体接入控制子层:控制线缆的传输物理层:定义一些传输标椎(线缆标准、电压标准、传输速率的标椎等)、传输电信号
(3)具体的通信过程:
封装:在原始数据的基础上加一些新的字段信息,形成一个新的数据
解封装:在最终形成新的数据的基础上,去掉一些字段信息,还原成最原始的数据。
二、TCP/IP模型----传输控制协议/互联网协议
(1)产生背景:
OSI模型划分层次太多,有的层次没有存在的必要;
OSI模型抢占市场失败;
(2)TCP协议(传输控制协议)
source port:源端口号
Desination port:目的端口号
Sequence number:序列表,标识从我本机发出去的数据的编号
Ack:确认序号,确认收到对方的消息,同时我也期望收到对方的下一条消息。
Data offset:数据偏移,
Reserved:保留,给未开发出的功能留出的空间
Window:窗口,标识收发数据的能力
checksum:校验和,检查数据的完整性
urgent pointer:紧急指针,可以让数据紧急发送
options:选项
padding:填充,
date:数据
TCP首部长度20字节
(3)TCP的机制:
TCP的三次握手
第一次握手
客户端给服务器发送一个SYN段(在 TCP 标头中 SYN 位字段为 1 的 TCP/IP 数据包), 该段中也包含客户端的初始序列号(Sequence number = x)。
第二次握手
服务器返回客户端 SYN 和ACK 段(在 TCP 标头中SYN和ACK位字段都为 1 的 TCP/IP 数据包), 该段中包含服务器的初始序列号(Sequence number = y);同时使 Acknowledgment number = x + 1来表示确认已收到客户端的 SYN段(Sequence number = x)。
第三次握手
客户端给服务器响应一个ACK段(在 TCP 标头中 ACK 位字段为 1 的 TCP/IP 数据包), 该段中使 Acknowledgment number = y + 1来表示确认已收到服务器的 SYN段(Sequence number = y)。
SYN:连接建立的标志
ACK=1,用于确认收到对方消息
TCP四次挥手:
在断开连接之前客户端和服务器都处于ESTABLISHED状态,双方都可以主动断开连接,以客户端主动断开连接为优。
第一次挥手:客户端打算断开连接,向服务器发送FIN报文,FIN报文中会指定一个序列号,之后客户端进入FIN_WAIT_1状态。也就是客户端发出连接释放报文段(FIN报文),指定序列号seq = u,主动关闭TCP连接,等待服务器的确认。
第二次挥手:服务器收到连接释放报文段(FIN报文)后,就向客户端发送ACK应答报文,以客户端的FIN报文的序列号 seq+1 作为ACK应答报文段的确认序列号ack = seq+1 = u + 1。
接着服务器进入CLOSE_WAIT(等待关闭)状态,此时的TCP处于半关闭状态,客户端到服务器的连接释放。客户端收到来自服务器的ACK应答报文段后,进入FIN_WAIT_2状态。
第三次挥手:服务器也打算断开连接,向客户端发送连接释放(FIN)报文段,之后服务器进LASK_ACK(最后确认)状态,等待客户端的确认。
服务器的连接释放(FIN)报文段的FIN=1,ACK=1,序列号seq=w,确认序列号ack=u+1。
第四次挥手:客户端收到来自服务器的连接释放(FIN)报文段后,会向服务器发送一个ACK应答报文段,以连接释放(FIN)报文段的确认序号 ack 作为ACK应答报文段的序列号 seq,以连接释放(FIN)报文段的序列号 seq+1作为确认序号ack。
之后客户端进入TIME_WAIT(时间等待)状态,服务器收到ACK应答报文段后,服务器就进入CLOSE(关闭)状态,到此服务器的连接已经完成关闭。
客户端处于TIME_WAIT状态时,此时的TCP还未释放掉,需要等待2MSL后,客户端才进入CLOSE状态。
FIN=1:连接释放的标志
传输确认机制:
TCP协议特点:
建立一个面向连接的可靠传输;
对数据分段;
进行流量控制
TCP适用场景:对传输效率要求高、对传输速率要求低
(4)UDP---用户数据协议
length:指udp头部长度+从上层传下来的数据长度
UDP协议特点:
建立一个不可靠的传输
没有流量控制、没有数据分段
UDP适用场景:对传输效率要求低、对传输速率要求高
(5)IP协议-----互联网协议
version:版本 v4或者v6
IHL:IP报文的首部长度
type of service:服务类型,标识数据的优先级
Total Length:IP头部+从上层传下来的数据长度
Identification:标识符,区分与其他的IP数据
Flags:标志位,代表数据是否需要分片
Fragment offset:片偏移
time to live:生存时间,数据每经过一个路由器,生存时间减1
protocol:协议,数据携带的上层协议
header checksum:首部校验和
source address:源地址
destionationaddress :目的地址
options:可选项
padding:填充
IP报文首部长度固定20字节
区分:
TCP的分段:1460字节---最长数据分段1500字节
IP的分片:1480字节----最大传输单元1500字节
(6)ICMP协议:----网际报文控制协议
ping命令:测试网络连通性
Echo reply:ping回复报文
Echo reply:ping请求报文
FCS:帧校验序列
PDU——-协议数据单元