一.TCP/IP协议
1.定义
TCP/IP协议是互联网通信的核心标准,通过分层设计将数据的封装、寻址、传输、和路由流程统一规范,核心目的就是让不同的网络设备可以可互联互通。
TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议族, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
通俗易懂来讲就是你在某宝买了一个东西,打包成快递最后送到你家上的流程
二.OSI七层模型、TCP/IP四层模型(协议框架)
两者区别:
-
OSI模型(Open Systems Interconnection)
- 理论模型:由国际标准化组织(ISO)提出,目标是统一全球网络标准,强调严格的层次划分和协议规范。
- 学术导向:追求理论完整性,但实际应用较少。
-
TCP/IP模型
- 实践驱动:起源于互联网早期(如ARPANET),基于实际需求(如跨异构网络通信)发展而来。
- 实用优先:简化分层,直接服务于现实中的互联网。
1.工作原理
发送方(又高到底逐层封装发送):
-
应用层(第7层)
- 生成原始数据(如HTTP请求、邮件内容)。
- 示例:用户发送邮件时输入“Hello, World!”。
-
表示层(第6层)
- 数据加密、压缩、编码转换。
- 示例:将文本转为UTF-8编码,并启用TLS加密。
-
会话层(第5层)
- 管理会话(如建立/维持连接)。
- 示例:为邮件会话分配唯一ID,跟踪通信状态。
-
传输层(第4层)
- 分割数据为段(Segment),添加端口号和序列号。
- 示例:TCP协议将数据分段,附加源端口(如1024)和目标端口(如SMTP的25)。
-
网络层(第3层)
- 添加IP地址,封装为包(Packet)。
- 示例:附加源IP(192.168.1.2)和目标IP(邮件服务器的IP)。
-
数据链路层(第2层)
- 添加MAC地址,封装为帧(Frame),附加帧头和帧尾(如FCS校验)。
- 示例:源MAC(00:1A:2B:3C:4D:5E)和目标MAC(路由器MAC)。
-
物理层(第1层)
- 转为比特流(0/1信号),通过物理介质传输。
- 示例:网卡将帧转化为电信号或光信号发送。
接收方(由低到高逐层解封):
-
物理层
- 将电信号/光信号还原为比特流。 -
数据链路层
- 校验帧完整性(通过FCS),剥离MAC地址头部。 -
网络层
- 检查IP地址,决定是否接收或转发。 -
传输层
- 按序列号重组数据段,确保顺序正确(TCP协议)。 -
会话层
- 根据会话ID恢复通信上下文。 -
表示层
- 解密数据、解压缩或转换编码格式。 -
应用层
- 将原始数据传递给用户程序(如邮箱客户端显示邮件内容)。
2.OSI七层结构模型
理论:
层级 | 名称 | 定义与核心作用 | 典型协议/技术 | 通俗比喻 |
---|---|---|---|---|
7. 应用层 | 用户交互接口 | 直接为应用程序提供网络服务(如网页、邮件)。 | HTTP、FTP、SMTP | 用户使用的“手机APP” |
6. 表示层 | 数据翻译官 | 处理数据格式(加密、压缩、编码转换)。 | TLS/SSL、JPEG、ASCII | 翻译外文为母语的“翻译器” |
5. 会话层 | 会话管理者 | 建立、维护和终止会话连接(如保持登录状态)。 | NetBIOS、RPC | 电话通话的“接线员” |
4. 传输层 | 端到端传输管家 | 确保数据可靠传输(分段、重组、流量控制)。 | TCP(可靠)、UDP(快速) | 物流公司的“全程跟单员” |
3. 网络层 | 跨网络导航员 | 通过IP地址实现跨网络寻址和路由选择。 | IP、ICMP、BGP | 快递的“全国分拣中心” |
2. 数据链路层 | 局域网快递员 | 管理同一局域网内设备通信(MAC地址寻址、帧校验)。 | 以太网、Wi-Fi、ARP | 小区内的“快递柜” |
1. 物理层 | 信号搬运工 | 传输原始比特流(电信号、光信号、无线电波)。 | 网线、光纤、Wi-Fi射频 | 公路和卡车等“运输工具” |
实操:
1. 应用层(第7层)
作业:使用curl
命令访问一个HTTP网站(如https://blog.csdn.net/2502_91292282?type=blog),观察返回的网页内容。这里用Win+R输入CMD或者Powershell命令工具都行
Bash
curl
https://blog.csdn.net/2502_91292282?type=blog
解析:应用层直接面向用户,curl
模拟浏览器发送HTTP请求,获取网页内容。 答案:命令会返回HTML代码,显示网页的原始内容。
2. 表示层(第6层)
作业:用OpenSSL工具加密一段文本(如Hello
),生成Base64编码。
Bash
echo "Hello" | openssl enc -base64
解析:表示层处理数据格式转换,Base64是常见编码方式。 答案:输出类似SGVsbG8K
,解码后可还原为Hello
。
3. 会话层(第5层)
作业:通过netstat
或ss
命令查看当前系统的TCP会话。
Bash
netstat -ant | grep ESTABLISHED # Linux
ss -t state established # Linux
Powershell
Get-NetTCPConnection -State Established # Windows
解析:会话层管理连接状态,命令显示已建立的TCP会话(如SSH、浏览器连接)。 答案:输出包含IP地址和端口号,如192.168.1.2:443
表示与服务器的HTTPS连接。
拓展:powershell命令工具中nsuplookup命令可以将域名转ip,或者ip转域名
例如:
4. 传输层(第4层)
作业:使用nc
(netcat)工具测试端口连通性。
Bash
nc -zv www.google.com 80
解析:传输层负责端到端通信,测试目标端口(如80)是否开放。 答案:若显示succeeded!
表示端口可达,否则可能被防火墙拦截。
5. 网络层(第3层)
作业:用ping
和traceroute
(或tracert
)命令追踪到目标IP的路由路径。
Bash
ping 8.8.8.8 traceroute 8.8.8.8 # Linux
Powershell
Test-Connection 8.8.8.8 # Windows(等效ping) tracert 8.8.8.8 # Windows
解析:网络层通过IP地址跨网络寻址,traceroute
显示数据包经过的路由节点。 答案:输出显示每跳(hop)的IP和延迟,最终到达目标IP。
6. 数据链路层(第2层)
作业:使用arp -a
命令查看本地ARP缓存表(IP与MAC地址映射)。
Bash
arp -a
# Linux/Windows通用
解析:数据链路层依赖MAC地址通信,ARP协议解析局域网内设备的MAC地址。 答案:输出类似192.168.1.1 at 00:1a:2b:3c:4d:5e
,显示本地设备的MAC地址表。
7. 物理层(第1层)
作业:查看网卡物理连接状态(如是否插网线、Wi-Fi信号强度)。
Bash
ethtool eth0 # Linux查看有线网卡状态 iwconfig # Linux查看无线网卡信号
Powershell
Get-NetAdapter | Select-Object Name, Status, LinkSpeed # Windows
解析:物理层处理硬件信号,命令显示网卡是否连通及传输速率。 答案:若Link detected: yes
(Linux)或Status: Up
(Windows)表示物理连接正常。