Linux-计算机网络

1.OSI七层模型

OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和管理网络通信的过程。

OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。

2.常见协议解释

2.1核心协议家族(TCP/IP协议族)

2.1.1IP协议-网络地址

互联网的地址系统,为每个设备分配唯一IP地址,负责将数据包从源主机路由到目标主机。

作用:给每台设备一个地址,让数据知道往哪送

特点:只管送,不管是否送到

类比:快递单上的收件地址

2.1.2TCP&UDP-两种传输方式

TCP

面向连接的可靠传输协议,通过三次握手建立连接,确保数据按序、完整、不丢失地送达。

特点:保证送到,不丢件

工作方式:

1.先打电话确认(三次握手)

2.每送一包都要对方签字确认

3.按顺序摆放包裹
使用场景:网页浏览、邮件、文件传输

UDP

无连接的快速传输协议,不保证可靠交付,适合对实时性要求高的应用如视频流、游戏。

特点:只管送,不保证送到工作方式:

1.直接扔包裹,不确认

2.可能丢件,可能乱序

3.速度飞快
使用场景:视频通话、在线游戏、直播

2.2应用层常见协议

2.2.1HTTP/HTTPS-网页浏览器协议

HTTP

超文本传输协议,定义客户端与服务器如何交换网页内容,是万维网数据通信的基础。

HTTP:普通明信片

内容谁都能看

地址栏:http://

HTTPS

HTTP的安全版本,通过SSL/TLS加密传输数据,保护通信隐私和完整性。

HTTPS:加密挂号信

内容加密,只有收件人能看地址栏:https://(有锁图标)

用途:所有网站访问

2.2.2DNS-网络'电话本'

域名系统协议,将人类可读的域名转换为机器可识别的IP地址

问题:记IP地址太难(如:142.250.189.46)解决:DNS把域名转成IP

流程:

你输入"google.com

→DNS查询 →"142.250.189.46'

访问这个IP

2.2.3DHCP-自动分配地址

动态主机配置协议,自动为网络中的设备分配IP地址等网络参数。

场景:进咖啡厅连wiFi过程:

手机:"这里wiFi,给我个地址!路由器:"用192.168.1.100吧"手机:"好的,谢谢"

作用:自动获得IP,不用手动设置

2.2.4SMTP/POP3/IMAP-电子邮件协议

SMTP协议 :简单邮件传输协议,负责发送和转发电子邮件。

POP3/IMAP协议邮件接收协议,POP3将邮件下载到本地,IMAP在服务器管理邮件并支持多设备同步。

发邮件:SMTP(寄信局)

你的邮件 → SMTP服务器 对方邮箱

收邮件:

POP3:全部下载到本地,服务器删除IMAP:在服务器查看,可多设备同步

类比:

POP3 = 把信箱里信都拿回家IMAP =在邮局看信,信还在邮局

2.2.5FTP-文件传输

文件传输协议,专门用于在两台计算机间可靠地传输文件。

作用:专门传大文件

特点:有登录账号密码

场景:网站上传文件到服务器

2.3局域网协议

2.3.1ARP-地址翻译官

地址解析协议,将网络层的IP地址解析为链路层的MAC地址。

问题:网络用IP地址,但网卡认MAC地址

解决:ARP把IP转成MAC

过程:

电脑:"谁有IP 192.168.1.1?'

路由器:"是我,MAC是AA:BB:CC:DD:EE:FF"

电脑:"好的,记下了"

3.完整上网流程

1.【DHCP】获得IP地址

"路由器,给我个地址!

2.【DNS】查百度IP

"wm.baidu.com = 110.242.68.4"
3.【ARP】查路由器MAC地址

"IP 192.168.1.1是谁?"
4.【TCP】建立可靠连接

三次握手:"你好-你好-开始"
5.【HTTP】发送网页请求

"给我百度首页"
6.【HTTP】接收网页内容

显示百度页面

4.端口

端口是传输层的逻辑地址标识,用于区分同一IP地址上不同应用程序的网络通信端点,实现IP协议中端到端的多路复用与多路分解功能。

端口的作用对象是计算机上的应用,IP联通后,应用程序与应用程序之间通过端口来通信,比如发送微信消息不会跑到浏览器而是到对方微信

5.常见网络设备

路由器管"内外联通",交换机管"内部互通",防火墙管"安全守卫",AP管"无线覆盖"

6.tcp三次握手四次挥手

三次握手

|--------------------------------------------------------------------------------------------------------------------------------------|
| 第一次握手(客户端→服务器) * 客户端发送:SYN=1, seq=x * 含义:"我想和你建立连接,我的初始序号是x" * 服务器状态变化:CLOSED → SYN-RCVD |
| 第二次握手(服务器→客户端) * 服务器发送:SYN=1, ACK=1, seq=y, ack=x+1 * 含义:"我同意连接,我的初始序号是y,已收到你的x" * 客户端状态变化:SYN-SENT → ESTABLISHED(半连接) |
| 第三次握手(客户端→服务器) * 客户端发送:ACK=1, seq=x+1, ack=y+1 * 含义:"确认收到你的y,可以开始通信了" * 服务器状态变化:SYN-RCVD → ESTABLISHED |
[TCP三次握手]

四次挥手

|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| 第一次挥手(主动方→被动方) * 发送:FIN=1, seq=u * 含义:"我没有数据要发送了,请求关闭连接" * 主动方状态:ESTABLISHED → FIN-WAIT-1 |
| 第二次挥手(被动方→主动方) * 发送:ACK=1, seq=v, ack=u+1 * 含义:"收到你的关闭请求,但我可能还有数据要发" * 被动方状态:ESTABLISHED → CLOSE-WAIT * 主动方状态:FIN-WAIT-1 → FIN-WAIT-2 |
| 第三次挥手(被动方→主动方) * 发送:FIN=1, ACK=1, seq=w, ack=u+1 * 含义:"我也没数据了,可以关闭了" * 被动方状态:CLOSE-WAIT → LAST-ACK |
| 第四次挥手(主动方→被动方) * 发送:ACK=1, seq=u+1, ack=w+1 * 含义:"确认关闭,连接终止" * 被动方状态:LAST-ACK → CLOSED * 主动方状态:FIN-WAIT-2 → TIME-WAIT → CLOSED |
[TCP四次挥手]

7.数据包的传输过程

相关推荐
浩浩测试一下17 分钟前
WAF绕过之编码绕过特性篇
计算机网络·web安全·网络安全·网络攻击模型·安全威胁分析·安全架构
AI逐月21 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁23 分钟前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
MMME~1 小时前
Ansible Playbook高效自动化实战指南
网络·自动化·ansible
数据安全科普王1 小时前
从 HTTP/1.1 到 HTTP/3:协议演进如何改变 Web 性能?
网络·其他
舰长1151 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
学***54231 小时前
如何轻松避免网络负载过大
开发语言·网络·php
weixin_395448911 小时前
main.c_cursor_0129
前端·网络·算法
路由侠内网穿透.1 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独1 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3