5.1.1 通信->TCP IP协议簇标准(IETF RFC 791 793):TCP(Transmission Control Protocol)、IP(Internet Protocol)
RFC 791IPv4 协议与RFC 793TCP 协议是 TCP/IP 协议簇的核心基石分别定义了网络层与传输层的标准规范二者协同构建了互联网可靠通信的基础协议总览与定位RFC 791 —— Internet Protocol (IP / IPv4)发布时间1981 年 9 月IETF Datatracker作者Jon PostelIETF Datatracker协议层级网络层OSI 第三层核心定位定义无连接、不可靠的网际数据报传输服务负责寻址、路由、分片与重组核心作用屏蔽底层网络差异实现跨网络的数据包交付是互联网的 “邮政系统”RFC 793 —— Transmission Control Protocol (TCP)发布时间1981 年 9 月IETF Datatracker作者Jon PostelIETF Datatracker协议层级传输层OSI 第四层核心定位定义面向连接、可靠的端到端字节流服务核心作用在不可靠的 IP 层之上通过确认、重传、排序、流量控制保障数据完整、有序、无差错传输RFC 791 IPv4 协议详解核心设计原则无连接Connectionless每个数据报独立路由不建立、维护连接状态不可靠Unreliable不保证送达、不保证顺序、不检测重复尽力而为Best-Effort仅当资源耗尽或网络不可达时丢弃包支持异构网络通过 ** 分片Fragmentation** 适配不同 MTU 的网络IPv4 数据报格式头部 20~60 字节0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -------------------------------- |Version| IHL |Type of Service| Total Length | -------------------------------- | Identification |Flags| Fragment Offset | -------------------------------- | Time to Live | Protocol | Header Checksum | -------------------------------- | Source Address | -------------------------------- | Destination Address | -------------------------------- | Options | Padding | -------------------------------- | Data | --------------------------------关键字段解析RFC EditorVersion4 位版本号IPv40100IHL4 位头部长度单位 4 字节最小值 520 字节Total Length16 位整个数据报总长度头部 数据最大 65535 字节Identification16 位标识同一数据报的所有分片共享此 IDFlags3 位比特 0保留必须为 0比特 1DFDon’t Fragment禁止分片比特 2MFMore Fragments更多分片最后一片为 0Fragment Offset13 位分片偏移单位 8 字节指示分片在原数据报的位置TTL8 位生存时间每经路由减 1为 0 则丢弃防环路Protocol8 位指示上层协议TCP6UDP17ICMP1Header Checksum16 位仅校验头部不校验数据区Source/Destination Address32 位源 / 目标 IP 地址核心机制寻址与路由32 位 IP 地址网络号 主机号路由器查表转发分片与重组分片当数据报 出口 MTU 且 DF0 时路由器拆分RFC Editor重组目标主机根据 ID、MF、Offset 重组RFC Editor差错处理出错时向源发送 ICMP 差错报文超时、目标不可达等RFC 793 TCP 协议详解核心设计原则面向连接Connection-Oriented传输前必须通过三次握手建立连接全双工Full-Duplex连接两端可同时收发可靠交付Reliable数据无丢失、无重复、无差错、按序到达字节流Byte Stream无边界以字节为单位编号而非消息流量控制Flow Control接收方通过滑动窗口控制发送速率TCP 报文段格式头部 20~60 字节0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -------------------------------- | Source Port | Destination Port | -------------------------------- | Sequence Number | -------------------------------- | Acknowledgment Number | -------------------------------- | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | -------------------------------- | Checksum | Urgent Pointer | -------------------------------- | Options | Padding | -------------------------------- | Data | --------------------------------关键字段解析RFC EditorSource/Destination Port16 位源 / 目标端口号标识应用进程Sequence Number32 位序列号本报文第一个字节的编号Acknowledgment Number32 位确认号期望接收的下一字节编号ACK1 时有效Data Offset4 位头部长度单位 4 字节最小 520 字节Control Flags6 位URG紧急指针有效ACK确认号有效连接建立后必须置 1PSH推送立即交付应用层RST重置连接SYN同步序列号建连FIN结束连接Window16 位接收窗口大小流量控制核心通告可接收字节数Checksum16 位校验头部 数据 伪 IP 头强校验Urgent Pointer16 位指向紧急数据末尾核心机制(1) 连接管理三次握手、四次挥手三次握手建立客户端 → 服务器SYN1, SeqxSYN_SENT服务器 → 客户端SYN1, ACK1, Ackx1, SeqySYN_RCVD客户端 → 服务器ACK1, Acky1ESTABLISHED四次挥手关闭主动方 → 被动方FIN1, SequFIN_WAIT_1被动方 → 主动方ACK1, Acku1CLOSE_WAIT被动方 → 主动方FIN1, SeqvLAST_ACK主动方 → 被动方ACK1, Ackv1TIME_WAIT → CLOSED(2) 可靠性保障累计确认Cumulative ACKAckN 表示 N 前所有字节已收超时重传未确认则重传RTT 动态计算超时时间去重与排序序列号过滤重复按序重组(3) 流量控制滑动窗口接收方在 ACK 中通告Window大小发送方已发送但未确认字节数 ≤ 接收窗口防止发送方溢出接收方缓冲区(4) 有限状态机FSM定义 11 种状态CLOSED, LISTEN, SYN_SENT, SYN_RCVD, ESTABLISHED,FIN_WAIT_1, FIN_WAIT_2, CLOSE_WAIT, CLOSING, LAST_ACK, TIME_WAIT所有操作严格按状态迁移规则执行RFC 791 / 793 关系与协议栈分层协作TCP 依赖 IP 提供主机间投递IP 承载 TCP/UDP 等传输层协议典型封装应用数据 → TCP 头 → IP 头 → 链路帧头互补定位IP连通性跨网送达TCP可靠性端到端保障历史地位与扩展RFC 791IPv4 基础被 RFC 6864 等更新未被废弃IETF DatatrackerRFC 793TCP 基础被 RFC 1122、3168ECN、2018SACK等扩展核心未变IETF Datatracker局限与演进IPv432 位地址耗尽 →IPv6 (RFC 2460)TCP效率、队头阻塞 →QUIC (基于 UDP)总结RFC 791IP是互联网的骨架解决 “发往哪、怎么转发”RFC 793TCP是互联网的血脉解决 “可靠传、有序收”二者共同构成 TCP/IP 协议簇的核心支撑了 40 余年全球互联网的底层通信是计算机网络领域最经典、影响最深远的标准
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2429771.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!