OSI——解决不同厂商间数据不兼容性
将数据的产生过程分为了7层(提出了分层思想)
OSI七层参考模型:
7、应用层
6、表示层
5、会话层
(上三层:控制/应用层面)
4、传输层
3、网络层
2、数据链路层
1、物理层
(下四层:数据层面)
应用层:最高层。接收用户的数据。人机交互的接口,面向的应用程序。(数据要有对应的协议,应用层定了这些服务:HTTP、DHCP、DNS、SMTP等)
表示层:将应用层接收的数据,逻辑语言转换为二进制语言。(数据的编码解码,加密解密)
语言:1.自然语言
2.编码语言
3.机器语言(二进制语言)
会话层:管理通信。针对传输的每一种数据建立一条会话虚链接(虚:只有本端,没有对端)
传输层:定义数据的传输方式,以及定义用于在数据层面区分不同流量。
- 区分不同流量:通过传输层端口号进行区分(不同的端口号代表了不同的流量)
端口号范围:0~65535(不包含0)
端口号分类:静态/知名端口号(1~1023)
动态端口号(1024~65535)
静态端口号与流量之间存在一一对应并绑定的关系。
常见端口号:
ssh---远程访问服务TCP 端口22
Telnet---远程访问服务TCP端口 23
超文本传输协议(HTTP)---TCP端口 80
加密--安全
HTTPS---TCP端口 443
TCP还是UDP是由协议来决定
TCP:传输控制协议,是一种面向连接的可靠传输协议。(面向连接、速度慢)
到了传输层进行TCP封装。
UDP:用户数据报协议,是一种非面向连接的不可靠传输协议。(无连接、速度快)
可靠传输方式----保证传输完全传输(给对方)
需要一些机制来保证可靠,,所以会导致传输效率比较低。。
能用可靠传输尽量用可靠传输。。
不可靠传输方式----不保证数据传输(数据可能会丢失)
传输效率较高。。
适合使用不可靠传输的数据(的特点):
- 大数据;
- 同步性要求高;
- 对数据的丢失不敏感。
Eg: 语言、视频这些数据都是使用不可靠传输的方式。
(各有利弊,适应传输不同数据)
*TCP
如何保证可靠传输?
- 确认机制(每传输一个数据,询问是否收到,即收到数据就反馈)
- 重传输机制(若没收到则重传)
什么是面向连接?------- 面向连接是在传递数据之前进行协商,确保数据在后续的发送过程中双方能够发送以及能够接收到数据。
如何保障面向连接?------- TCP三次握手机制
三次握手:(需要保证握手的可靠性)
(第一个数据包)客户端: syn+request ----对服务器端同步请求;
(第二个数据包)服务器端:ACK+syn+request ----表确认并且对客户端同步请求;
(第三个数据包)客户端:ACK ----表确认;
第二个包会对第一个包进行确认,第三个包会对第二个包进行确认。。即,,第一个和第二个是可靠包。。第三个包中包含隐式确认。。
确认机制:
有明确回复的----显示确认
没有明确回复的----隐式确认(也是双方约定好的)
三次握手目的:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。
四次断开:(断开会话机制)
客户端:FIN ---- 发送终止报文
服务器端:ACK ---- 确认
服务器端:FIN ---- 发送终止报文
客户端:ACK ---- 确认
TCP数据结构:
TCP优化机制:(提高传输效率)
- 重排序;(收到数据并按顺序给数据排序)
- 滑动窗口机制。
TCP主要应用环境:web浏览器、电子邮件、FTP等协议。
UDP:用户数据报协议,是一种非面向连接的不可靠传输协议。
特点: 1.无连接(没有三次握手不需要提前进行协商)2.不可靠传输(尽力而为) 3.简单 4.低开销.
UDP主要使用环境:视频流、IP语音(VOIP)
MTU:最大传输单元 ,默认为1500字节
PDU : 协议数据单元,(数据在不同层的表现形式)
4层PDU(即传输层)称为 segment --分片/数据报文
只有下四层有PDU。。
抓包:使用wireshake抓包工具分析TCP UDP数据结构
单位:
bit----比特(最小单位)
1000bit=1Kbit
1000Kbit=1Mbit
1000Mbit=1Gbit
1000Gbit=1Tbit
1000Tbit=1Pbit
1000Pbit=1Ebit
…
byte----字节 1字节=8比特
1000Byte=1KByte
1000KByte=1MByte
…
1个汉字=2字节
速率单位: 100Mbps --- 一秒传递100M比特的数据
100MBps --- 一秒传递100M字节的数据
网络层:编址、寻址(路由)
IP:互联网协议
编址协议: IPV4、IPV6、IPX、Appletalk 等
IPV4:互联网协议版本4 ,采用了32个二进制进行标识
2^32次方, 接近43亿个IP地址。
组成方式:32个二进制
书写方式:点分十进制
完整的IP地址:IP地址部分+网络掩码
IP地址:32个二进制,0和1组成
网络掩码:32个二进制,连续的1和连续的组成,连续的1代表网络位,连续的0代表主机位。
网络位 主机位
1101 1000.0001 0001.0000 0001.0000 0001(共32位,被分成四组,每组8个)
216.17.1.1(将每组的二进制转换为对应的十进制数)
二进制 十进制
0000 0001=1
0000 0010=2
0000 0100=4
0000 1000=8
0001 0000=16
0010 0000=32
0100 0000=64
1000 0000=128
128 64 32 16 8 4 2 1
0001 0011.1101 0101.0101 0101.0100 1010
19.213.85.74
将IP地址和网络掩码化为十进制,并对应起来,
由全1对应的是网络位,全0对应的是主机位。