一、OSI参考模型
编号 | 分层名称 | 功能 | 协议 |
---|---|---|---|
7 | 应用层 | 针对特定应用的协议 | HTTP |
6 | 表示层 | 设备固有数据格式和网络标准数据格式的转换 | |
5 | 会话层 | 负责建立和断开通信连接 | |
4 | 传输层 | 负责可靠传输 | TCP.UDP |
3 | 网络层 | 地址管理与路由选择 | IP,ARP,ICMP,DHCP,NAT |
2 | 数据链路层 | 互连设备之间传送和识别数据帧 | PPP |
1 | 物理层 | 界定连接器和网线的规格 |
RFC(Request for Comment)
二、数据链路层
1、MAC地址
用于识别数据链路中互联的节点,一般用十六进制数表示。
MAC地址长48比特。
第1位:单播地址(0)/多播地址(1)
第2位:全局地址(0)/本地地址(1)
第3~24位:由IEEE管理并保证各厂家之间不重复
第25~48位:由厂商管理并保证产品之间不重复
2、PPP(Point to Point Protocol)点对点
即1对1连接计算机的协议,位于数据链路层。
常用于电话线。
PPP中包含两个协议:一个是不依赖上层的LCP协议(Link Control Protocol),另一个是依赖上层的NCP协议(Network Control Protocol)。如果上层是IP,此时的NCP也叫做IPCP(IP Control Protocol)。
协议 | 功能 |
---|---|
LCP | 建立和断开连接、设置最大接收单元、设置验证协议以及设置是否进行通信质量的监控 |
IPCP | 设置IP、设置是否进行TCP/IP首部压缩 |
PPP连接时,会验证用户名密码,需要用到验证协议,而验证协议有两种,分别为PAP(Password Authentication Protocol)和CHAP(Challenge handshake Authentication Protocol)。
3、VPN(虚拟专用网络)
用于连接距离较远的区域,包含 IP-VPN 和 广域以太网。
服务 | 特点 |
---|---|
IP-VPN | 在IP网络上使用MPLS(服务提供商网络)技术构建VPN |
广域以太网 | 在作为数据链路层的以太网上利用VLAN(虚拟局域网)实现VPN |
三、网络层
1、IP
面向无连接。包含IP寻址、路由以及IP分包与组包。
2、IPv4地址
(1)由32位正整数来表示,由网络号+主机号组成。
IP地址分类 | 首位 | 网络号 | 主机号 | 地址范围 | 主机地址上限 |
---|---|---|---|---|---|
A类地址 | 首位为0 | 8位 | 24位 | 0.0.0.0~127.0.0.0 | 16777214个 |
B类地址 | 首位为10 | 16位 | 16位 | 128.0.0.0~191.255.0.0 | 65534个 |
C类地址 | 首位为110 | 24位 | 8位 | 192.0.0.0~239.255.255.0 | 254个 |
D类地址 | 首位为1110 | 32位 | 0位 | 224.0.0.0~239.255.255.255 | 没有主机标识 |
(2)广播地址:用于在同一个链路中相互连接的主机直接发送数据包。
将IP地址中的主机地址全部设置为1,就成了广播地址。
3、子网掩码
是一种识别码,将原来A类、B类、C类地址的主机地址作为子网地址,把原网络继续分为多个物理网络。
也是32位数字,对应IP地址网络标识部分的位全部为1,对应IP地址主机标识部分的位全部为0。
4、IPv4首部
字段 | 名称 | 比特 | 功能 |
---|---|---|---|
首部长度 | IHL:Internet Header Length | 4 | 表明IP首部的大小 |
区分服务 | TOS:Type of Service | 8 | 用来表明服务质量 |
总长度 | Total Length | 16 | 表示IP首部与数据部分合起来的总字节数 |
标识 | ID:Identification | 16 | 用于分片重组 |
片偏移 | FO:Fragment Offset | 13 | 用来标识被分片的每一个片段相对于原始数据的位置 |
生存时间 | TTL:Time To Live | 8 | 指可以中转多少个路由器 |
协议 | Protocol | 8 | 表示IP首部的下一个首部隶属于哪个协议 |
首部校验和 | Header Checksum | 16 | 用来确保IP数据报不被破坏 |
源地址 | Source Address | 32 | 表示发送端IP地址 |
目标地址 | Destination Address | 32 | 表示接收端IP地址 |
5、IP协议相关技术
协议 | 功能 |
---|---|
DNS | 将域名解析成IP地址 |
ARP | 从IP地址定位MAC地址 |
RARP | 从MAC地址定位IP地址 |
ICMP | 确认IP包是否成功送达目标地址 |
DHCP | 连接网络时自动获取IP地址 |
四、传输层
1、端口号
端口号是传输层中的程序地址,用来识别同一台计算机中进行通信的不同应用程序。
服务器 | 端口号 |
---|---|
FTP | 21 |
SSH | 22 |
SMTP | 25 |
HTTP | 80 |
仅凭目标端口识别某一个通信是远远不够的,需要通过IP地址、端口号、协议号进行通信识别。
2、UDP
UDP(User Datagram Protocol),利用IP提供面向无连接的通信服务,随时发送数据。
字段 | 名称 | 长度(位) | 功能 |
---|---|---|---|
源端口号 | Source Port | 16 | 表示发送端端口号 |
目标端口号 | Destination Port | 16 | 表示接收端端口号 |
包长度 | Length | 8 | 保存UDP首部的长度跟数据的长度之和 |
校验和 | Checksum | 16 | 确保UDP数据不被破坏 |
3、TCP
面向有连接,只有在确认通信对端可以存在时才会发送数据。
字段 | 名称 | 长度(位) | 功能 |
---|---|---|---|
源端口号 | Source Port | 16 | 表示发送端端口号 |
目标端口号 | Destination Port | 16 | 表示接收端端口号 |
序列号 | Sequence Number | 32 | 指发送数据的位置 |
确认应答号 | Acknowledgement Number | 32 | 指下一次应该收到的数据的序列号 |
数据偏移 | Data Offset | 4 | TCP首部的长度 |
保留 | Reserved | 4 | 为了以后扩展时使用 |
控制位 | Control Flag | 8 | 从左到右分别是CWR,ECE,URG,ACK,PSH,RST,SYN,FIN |
CWR | Congeston Window Reduced | 1 | CWR=1,降低包的发送速度 |
ECE | ECN-Echo | 1 | ECE=1,通知通信对方,从对方到这边的网络有拥塞 |
URG | Urgent Flag | 1 | URG=1,表示包中有需要紧急处理的数据 |
ACK | Acknowledgement Flag | 1 | ACK=1,确认应答的字段变为有效 |
PSH | Push Flag | 1 | PSH,表示需要将受到的数据立刻传给上层应用协议 |
RST | Reset Flag | 1 | RST=1表示TCP连接中出现异常必须强制断开连接 |
SYN | Synchronize Flag | 1 | 用于建立连接,SYN=1表示希望建立连接 |
FIN | Fin Flag | 1 | FIN = 1,表示今后不会再有数据发送,希望断开连接 |
窗口大小 | Window Size | 16 | 用于通知从相同TCP首部的确认应答号所指位置开始能够接收的数据大小 |
校验和 | Checksum | 16 | 确保TCP数据不被破坏 |
三次握手,四次挥手的情况如下:
三次握手中客户端的ACK:防止因网络延迟原因而造成服务器端的无效等待。
四次挥手中服务器端的FIN:当服务器端发送完数据后才会向客户端发出FIN。
五、应用层
协议 | 功能 |
---|---|
TELNET | 远程连接 |
SSH | 加密的远程登录 |
FTP | 两个相连的计算机之间进行文件传输 |
SMTP | 发送邮件 |
POP3 | 接收邮件 |
IMAP | 接收邮件,让电子邮件可以发送静态图像、动画、声音、程序等 |
HTTP | 用户访问web页的URI |
IPsec | 对VPN的数据进行加密 |
TLS/SSL | 互联网加密协议 |
HTTPS | 使用TLS/SSL的HTTP |