前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >还是用图解比较特彻!打基础必备的TCP IP知识介绍

还是用图解比较特彻!打基础必备的TCP IP知识介绍

原创
作者头像
网络技术联盟站
修改2021-07-23 09:56:02
6690
修改2021-07-23 09:56:02
举报

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

TOC

网络模型

通信模型

网络
  • 由资源子网和通信子网组成
  • 资源子网包括主机、服务器等各种终端
  • 通信子网由通信介质、网络设备组成
  • 终端通过网络进行数据通信
通信模型
  • 各种设备遵从相同的规则,协同工作
  • 两种主要的通信模型
  • OSI参考模型与TCP/IP模型
功能由协议完成
每个协议完成各自特定的功能
每个协议完成各自特定的功能
对等通信
通信双方相同协议之间交换协议报文
通信双方相同协议之间交换协议报文
报文封装
发送方由上而下逐层添加协议头部
发送方由上而下逐层添加协议头部
报文拆封
接收方由下而上逐层去除协议头部
接收方由下而上逐层去除协议头部

TCP/IP协议族

TCP/IP协议族

应用层

传输层

TCP/UDP报文

TCP报文格式
TCP报文格式

端口号

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

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

网络层

IPv4报文

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

Ethernet II的帧格式

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

物理层

常见协议

TCP

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

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

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

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

代码语言:txt
复制
IP:192.168.0.1
MAC:00d0.f800.0001
代码语言:txt
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 网络模型
    • 通信模型
    • TCP/IP协议族
      • TCP/IP协议族
        • 应用层
          • 传输层
            • TCP/UDP报文
              • 端口号
                • 网络层
                  • IPv4报文
                    • Ethernet II的帧格式
                      • 物理层
                      • 常见协议
                        • TCP
                          • FTP
                            • DHCP
                              • ARP
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档