大家好,我是瑞哥,今天给大家带来的是TCP IP的介绍,越牛逼的人,基础扎实越显得重要,一栋高楼大厦,地基不牢,高空再美,也承受不了多大风雨!
网络模型
通信模型
网络
- 由资源子网和通信子网组成
- 资源子网包括主机、服务器等各种终端
- 通信子网由通信介质、网络设备组成
- 终端通过网络进行数据通信
通信模型
- 各种设备遵从相同的规则,协同工作
- 两种主要的通信模型
- OSI参考模型与TCP/IP模型
功能由协议完成
对等通信
报文封装
报文拆封
TCP/IP协议族
TCP/IP协议族
应用层
传输层
TCP/UDP报文
端口号
- 源端口随机分配,使用系统中未使用的且大于1023的端口
- 目标 端口使用知名端口,标识服务器端的进程
传输层利用TCP或者UDP报文中的端口号来区分上层的应用协议及特定的进程
网络层
IPv4报文
- 通过协议号标识上层协议
- 通过源IP标识发送方主机,通过目标 IP标识接收方主机
数据链路层
Ethernet II的帧格式
- 通过目标 MAC标识接收方,通过源MAC标识发送方
- 通过类型字段标识承载的上层协议
物理层
常见协议
TCP
- Transfer Controln Protocol 传输控制协议
- 为应用层协议提供端到端的传输服务
- 面向连接的、可靠的、有序的、流量控制的
基于TCP的应用在传输数据之前必须先由TCP建立连接,在传输过程中由TCP解决可靠性、有序性,进行流量控制,传输结束后由TCP拆除连接
通过头部字段的置值完成协议的功能
- 源端口标识发送方的进程,目的端口标识接收方的进程
- 序号保证数据传输的有序性,确认号对收到的数据进行确认
- Flag字段(8位)
- ACK,确认号标志,置1表示确认号有效,表示收到对端的特定数据
- RST,复位标志,置1表示拒绝错误和非法的数据包,复位错误的连接
- SYN,同步序号标志,置1表示同步序号,用来建立连接
- FIN,结束标志,置1表示连接将被断开,用于拆除连接
- Option字段,MSS 最大段大小,通过置位,协商能承载的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中继
- 在处于不同网段的Client和Server之间转发DHCP报文
- 路由器或三层交换机等网络设备
DHCP协议报文
Discover
Offer
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工作过程
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
|