IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 还是用图解比较特彻!打基础必备的TCP IP知识介绍 -> 正文阅读

[网络协议]还是用图解比较特彻!打基础必备的TCP IP知识介绍

大家好,我是瑞哥,今天给大家带来的是TCP IP的介绍,越牛逼的人,基础扎实越显得重要,一栋高楼大厦,地基不牢,高空再美,也承受不了多大风雨!

网络模型

通信模型

网络
  • 由资源子网和通信子网组成
  • 资源子网包括主机、服务器等各种终端
  • 通信子网由通信介质、网络设备组成
  • 终端通过网络进行数据通信
通信模型
  • 各种设备遵从相同的规则,协同工作
  • 两种主要的通信模型
  • OSI参考模型与TCP/IP模型

功能由协议完成

每个协议完成各自特定的功能

对等通信

通信双方相同协议之间交换协议报文

报文封装

发送方由上而下逐层添加协议头部

报文拆封

接收方由下而上逐层去除协议头部

TCP/IP协议族

TCP/IP协议族

应用层

传输层

TCP/UDP报文

TCP报文格式

端口号

  • 源端口随机分配,使用系统中未使用的且大于1023的端口
  • 目标 端口使用知名端口,标识服务器端的进程


传输层利用TCP或者UDP报文中的端口号来区分上层的应用协议及特定的进程

网络层

IPv4报文

  • 通过协议号标识上层协议
  • 通过源IP标识发送方主机,通过目标 IP标识接收方主机

数据链路层

Ethernet II的帧格式

  • 通过目标 MAC标识接收方,通过源MAC标识发送方
  • 通过类型字段标识承载的上层协议

物理层

常见协议

TCP

  • Transfer Controln Protocol 传输控制协议
  • 为应用层协议提供端到端的传输服务
  • 面向连接的、可靠的、有序的、流量控制的

基于TCP的应用在传输数据之前必须先由TCP建立连接,在传输过程中由TCP解决可靠性、有序性,进行流量控制,传输结束后由TCP拆除连接

通过头部字段的置值完成协议的功能

TCP报文格式

  • 源端口标识发送方的进程,目的端口标识接收方的进程
  • 序号保证数据传输的有序性,确认号对收到的数据进行确认
  • Flag字段(8位)
    • ACK,确认号标志,置1表示确认号有效,表示收到对端的特定数据
    • RST,复位标志,置1表示拒绝错误和非法的数据包,复位错误的连接
    • SYN,同步序号标志,置1表示同步序号,用来建立连接
    • FIN,结束标志,置1表示连接将被断开,用于拆除连接
  • Option字段,MSS 最大段大小,通过置位,协商能承载的TCP数据的大小
建立连接

TCP通过三次握手建立连接

HTTP案例

基于TCP的应用程序如HTTP,必须先由TCP通过三次握手建立连接,才能传输数据

抓包

MSS
  • Maximum Segment Size 最大段的大小
  • 只在建立连接时置位,用于协商双方能接收的段 (segment)的大小(TCP的数据部分)
  • MSS=MTU-TCP头部-IP头部,可以根据需要人为调整

RST
  • Reset the connection 重置连接
  • 用于复位因某种原因导致的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误
  • Rst可能被接收方或者中间设备置位

RST置位的原因

  • 服务器端口没有打开(listen)
  • 服务器响应太慢,用户终止连接
  • 网络攻击
  • 其他
抓包

拆除连接
  • TCP通过FIN置位为1表示拆除连接
  • 四次握手拆除双向连接

抓包

FTP

  • File Transfer Protocol 文件传输协议
  • 使用基于TCP的两个端口号,标识两个连接
    • 控制连接
    • 数据连接
  • 两种传输模式
    • Port模式 主动模式
    • Passive模式 被动模式
两个连接

控制连接

  • 端口号21
  • 在客户端和服务器之间传输控制命令及命令执行信息。
  • 在整个FTP会话期间一直保持打开

数据连接

  • 用于传输数据,包括数据上传、下载、文件列表发送等

传输模式

主动方式

  • 在建立数据连接的过程中,由服务器主动发起连接
  • 客户端通过控制连接向服务器发送PORT命令,告诉服务器该客户端用于传输数据的临时端口号
  • 传送数据时,服务器通过TCP端口号20与客户端的临时端口建立数据传输通道,完成数据传输

被动方式

  • 在建立数据连接的过程中,由客户端主动发起连接
  • 客户端通过控制连接向服务器发送PASV命令,告诉服务器进入被动方式。服务器选择临时端口号并告知客户端
  • 当需要传送数据时,客户端主动与服务器的临时端口号建立数据传输通道,完成数据传输

DHCP

  • Dynamic Host Configuration Protocol 动态主机配置协议
  • 动态分配IP地址、子网掩码、网关、DNS等信息
  • 客户端向服务器提出申请,服务器返回相应信息
  • DHCP报文由UDP封装,目标 端口67,源端口68
DHCP组件

服务器

  • 能提供DHCP功能的服务器、网络设备

客户端

  • 需要动态获得IP地址的终端

DHCP中继

  • 在处于不同网段的Client和Server之间转发DHCP报文
  • 路由器或三层交换机等网络设备
DHCP协议报文

Discover

  • Client向Server发出请求,第一个报文

Offer

  • Server对DISCOVER报文的响应

Request

  • Client对OFFER报文的回应,或者是Client续延IP地址租期时发出的报文

ACK

  • Server对Client的Request报文的确认响应报文

DECLINE

  • 当 Client发现Server分配给它的IP地址无法使用,将发出此报文,通知 Server禁止使用该IP地址

NAK

  • Server对Client的REQUEST报文的拒绝响应报文

RELEASE

  • Client主动释放Server分配给它的IP地址的报文

INFORM

  • Client已经获得了IP地址,发送此报文,为了从Server处获取其他的一些网络配置信息
工作过程

租约更新

DHCP Relay的工作过程

DHCP报文

ARP

Address Resolution Protocol 地址解析协议

  • 将IP地址解析为MAC地址
  • IP地址和MAC地址的映射关系存储在ARP表中

ARP报文

  • ARP request
  • ARP reply
ARP工作过程

ARP通过ARP Request和ARP Replay报文学习到IP对应的MAC地址

IP:192.168.0.1
MAC:00d0.f800.0001

IP:192.168.0.2
MAC:00d0.f800.0002

特殊的ARP

免费ARP Gratuitous ARP作用

  • 探测其他设备的IP地址是否与本机IP地址冲突
  • 设备改变了硬件地址,通过发送免费 ARP报文通知其他设备更新ARP表项

原理

  • Gratuitous ARP是arp request的一种,是广播报文
  • 报文中携带的senderIP和target IP都是本机IP地址,sender MAC是本机MAC地址
  • 收到应答就说明地址冲突
测试工具

Ping

  • 测试网络的连通性及通信质量
  • 发送方发送ICMP echo request
  • 接收方收到后,回应ICMP echo reply

Tracert

  • 探测到target 主机所经过的三层设备的接口IP
  • 源主机发送到target IPTTL置1的探测包
  • 中间设备收到探测包,TTL减1,如果等于0,则丢弃探测包,并向源回应超时错
  • 源主机收到ICMP超时错,TTL在上一个探测包的基础上加1
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:51:07  更:2021-07-24 11:52:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:35:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码