TCP/IP协议基础

一、理论知识总结

1.TCP/IP协议栈

1.1 物理层

作用:负责处理 “纯硬件信号”,把二进制数据转成物理介质能传输的电信号、光信号等,是网络通信的 “最底层硬件基础”。

协议 / 标准:

       100Base - TX/1000Base - T:以太网有线传输标准,规定网线(如双绞线)的电气特性、传输速率(百兆 / 千兆),家庭 / 企业网常用。

       V.35/G.703:广域网(比如运营商专线)常用的物理接口标准,定义接口的电气信号、引脚功能,让路由器等设备能对接运营商网络。

       G.707/G.984:和光纤传输相关,涉及光信号的复用、帧结构等,是光纤通信(比如 PON 网络、SDH 网络)的底层物理规范。

1.2 数据链路层

作用:给物理层传输的信号 “打包成帧”,加入 MAC 地址(设备物理地址),实现同一局域网内设备的直接通信,还要做 “错误检测”(比如帧校验)。

协议:

       Ethernet(以太网):最常用的局域网协议,定义帧格式(目标 MAC、源 MAC、数据、校验等),办公网、家庭 WiFi 本质也是基于以太网逻辑。

       PPP(点对点协议):广域网常用,比如早期拨号上网、企业专线,负责在 “点到点链路”(如两根网线直连的设备)上封装数据,支持认证(密码验证)。

       HDLC(高级数据链路控制):类似 PPP,但更偏向 “纯链路层”,曾用于运营商骨干网,现在少用,主要给其他协议做基础。

       Frame Relay(帧中继):老广域网技术,把数据打成 “帧” 在运营商网络里快速转发,适合批量数据传输,现在逐步被 IP 网络取代。

       ATM(异步传输模式):曾追求 “语音、数据、视频都能高效传”,把数据切成固定小 “信元”,但因成本高、适配性差,被更灵活的 IP 技术替代。

       X.25:很古老的广域网协议,强调 “高可靠性”(疯狂错误校验),但传输慢、效率低,早已淘汰,常当 “网络发展历史案例”。

1.3 网络层

作用:解决 “跨网络通信”,给数据加IP 地址(比如 192.168.1.1),让数据能 “找路”(路由)到其他网络,是 “跨网段通信” 的核心。

协议:

         IP(网际协议):给每个设备分配逻辑 IP 地址,定义数据包格式(源 IP、目标 IP、TTL 等),让数据能跨网络传输,是网络层 “灵魂”。

        ARP(地址解析协议):解决 “IP 地址 ↔ MAC 地址” 转换,比如你电脑要给同局域网另一设备发数据,用 ARP 查对方 “IP 对应的 MAC 地址”,才能在数据链路层通信。

       ICMP(互联网控制消息协议):辅助 IP 工作,比如 ping 命令就是用 ICMP 发包,检测网络通不通;还有 “网络拥塞通知”“路由重定向” 也靠它。

1.4 传输层

作用:负责端到端(比如你的手机 App ↔ 服务器程序)的可靠 / 高效传输,区分 “哪个应用程序用网络”(靠端口号,比如 80 对应网页、443 对应加密网页 )。

协议:

       TCP(传输控制协议):追求 “可靠传输”,像寄快递 “保价、跟踪、丢件重发”。会三次握手建立连接、确认数据是否收到、重传丢失包,适合文件下载、网页浏览(不能丢数据)。

       UDP(用户数据报协议):追求 “高效传输”,像 “短信”—— 发了不管对方收没收到,速度快、开销小,适合视频通话、直播(偶尔丢包不影响整体,要速度)。

1.5 应用层

作用:直接给 “应用程序” 提供网络服务,把 “网络数据” 转成 App 能看懂的内容(比如网页、邮件),是用户最直接接触的层。

协议:

       DHCP(动态主机配置协议):自动给设备分配 IP 地址,家里路由器给手机发 “192.168.1.x” 就是靠 DHCP,不用手动设置 IP。

       DNS(域名系统):把 “域名(比如 baidu.com)” 转成 IP 地址,你输网址能访问,多亏 DNS 解析成服务器 IP。

       Telnet:老远程登录协议,用明文传用户名密码,不安全,现在被 SSH 取代,常用来测试设备远程连接。

       HTTP(超文本传输协议):网页传输基础,浏览器和服务器传网页、图片、视频靠它,HTTPS 是加密版更安全。

       FTP(文件传输协议):用来传文件(比如从本地电脑传文件到服务器),分普通 FTP(明文)和 SFTP(加密)。

       TFTP(简单文件传输协议):比 FTP 更简单、开销小,适合设备初始化(比如路由器刷固件)传小文件。

       SMTP(简单邮件传输协议):发邮件用的,把你写的邮件传到邮件服务器,收邮件常用 POP3/IMAP(图里没列,但流程相关 )。

       SNMP(简单网络管理协议):管理网络设备(比如路由器、交换机),管理员用它查设备状态、改配置、收告警。

小结:

       物理层:管 “硬件信号”,让数据能在网线 / 光纤里传。

       数据链路层:管 “局域网内通信”,加 MAC 地址、组帧。

       网络层:管 “跨网通信”,加 IP 地址、找路由,ARP 转 IP 和 MAC,ICMP 辅助查错。

       传输层:管 “端到端传输”,TCP 可靠、UDP 高效,用端口区分应用。

       应用层:管 “应用服务”,直接对接 App,各种协议实现网页、邮件、文件传输等功能。

2. IP协议特点

① IP是无连接的,在传输数据之前不需要建立连接。

② IP提供的是尽力而为的服务,超过转发能力时直接丢弃。
 
③ IP数据包在网络中的传送是无序的,在转发过程中,不考虑到达接收端的顺序,每个数据包单
独进行路由(即单独选择到达目的地的路径)。
 
④ IP分组传送是不可靠的,发送端只管发送数据,不关心接收端是否收到数据,IP的可靠性需要上层协议来解决。

3. IP包头结构

3.1 基础结构(固定 20 字节起)

       版本:4 位,标识 IPv4(值为 4 ),区分协议版本。

       包头长度:4 位,单位为 4 字节(如 20 字节包头对应值为 5 ,带选项时更长 )。

       服务类型:8 位,用于 QoS(前 3 位 IP 优先级、前 6 位 DSCP ,标记数据优先级 )。

       报文长度:16 位,IP 包总长度(包头 + 数据)单位字节

3.2 分片控制(应对数据包过大)

       当 IP 包超过链路 MTU(最大传输单元,如以太网默认 1500 字节 ),会分片传输,依赖以下字段重组:

       标识符(16 位):同一原始包的分片,标识符相同,标记 “同属一包”。

       标志位(3 位):

              DF(第 2 位):DF=1 禁止分片,DF=0 允许分片

              MF(第 3 位):MF=1 表示后续还有分片,MF=0 为最后一个分片。

        分段偏移量(13 位):分片在原始包中的位置(单位 8 字节 ),确保重组顺序。

3.3 传输控制

        TTL(存活时间):8 位,每经过 1 个路由器减 1 ,防止数据包在网络中无限循环(值为 0 则丢弃 )。

        协议:8 位,标识上层协议(如 TCP=6 、UDP=17 ,让 IP 包知道交给谁处理 )。

        包头校验和:16 位,校验包头完整性,发现损坏则丢弃包。

3.4 地址与扩展

        源 / 目标 IP 地址:各 32 位(IPv4 地址 ),标记数据的起点和终点。

        选项 + 填充:可选扩展字段(如记录路由、时间戳 ),需填充到 4 字节整数倍,保证包头对齐。

小结:

        IP 包头是数据包的 “指挥中心”,用版本、地址确定通信规则,靠分片、TTL 保障传输,借协议、校验和衔接上下层,让数据在网络里 “有序、可控、准确” 地从源到目标 。

4. MTU与IP分片

4.1 MTU 是什么?(最大传输单元)

  • 链路层 MTU:链路层能传的最大 “帧”(含链路层头部),比如以太网默认 1500 字节,超过就得分片 / 丢弃。
  • 网络层 MTU:网络层能传的最大 “包”(含网络层头部,如 IP 包头 ),受链路层 MTU 限制。

4.2 Cisco 设备的 MTU 规则(重点!网络工程师必懂)

Cisco 路由器 / 交换机转发数据包时,进出接口都检查 MTU,规则分两种场景:

       ① 只配 MTU 命令:影响所有类型报文(IP、MPLS 等)的转发,限制 “二层净载荷” 最大长度(默认 1500 字节 )。

       ② 同时配 MTU + IP MTU/MPLS MTU:

            IP MTU 只管 IP 报文,MPLS MTU 只管 MPLS 报文;

            普通 MTU 命令不再影响 IP/MPLS 报文,只限制其他类型(比如纯二层帧 )。

4.3 IP分片的触发与规则(数据包 “拆包 - 重组” 逻辑)

        分片标识: 标识符、标志位(MF)、分段偏移量 标记分片,确保目标主机能 “拼回原包”。

小结:

         MTU 是链路 / 网络层 “单次能传的最大数据量”,Cisco 设备严格检查进出接口 MTU ;IP 包超 MTU 时,DF=1 则丢包,DF=0 则分片(仅目标主机重组 ),核心是让大数据包 “拆得开、拼得回”,保障跨网络传输。

5. TCP协议

5.1 TCP协议概述

        TCP(传输控制协议)是 TCP/IP 协议族中传输层的核心协议之一,用于在网络中实现可靠的数据传输 。

5.1.1 TCP 是面向连接的,数据传输需要经过建立连接、传输数据、断开连接三个阶段

        面向连接:类比打电话,要先拨通(建立连接),通话中交流内容(传输数据),最后挂断(断开连接),通过三次握手建立连接、四次挥手断开连接,保障通信双方状态同步 。

        三个阶段:是 TCP 通信的基本流程,建立连接为数据传输做准备,确保双方就绪;传输数据是核心,交互实际信息;断开连接释放资源,避免占用。

5.1.2 全双工通信,数据可在同一连接上同一时间内双向流动

       全双工:如同两个人面对面聊天,你说你的、我说我的,互不干扰,TCP 连接里发送端和接收端能同时收发数据,提升通信效率,比如浏览器下载网页时,服务器发数据,浏览器也能发确认消息 。

5.1.3 TCP 提供有序的数据传输,接收端按字节对数据进行确认

       有序传输:TCP 给每个字节数据编号(序列号),接收端按编号重组,像快递按顺序投递,确保应用层拿到的数据是整齐、无乱序的 。

       按字节确认:接收端收到数据后,回复确认报文(含期望下一个字节序号),让发送端知道数据已妥收,若没收到确认,发送端会重传,保障可靠 。

5.1.4 TCP 数据传输是可靠的,包头中含有校验和可对数据进行校验,并具有超时重传机制重传丢失的数据

       校验和:TCP 包头里的校验和字段,发送端计算数据和包头的校验值,接收端重新计算比对,若不一致,认为数据出错丢弃,触发重传,检测传输错误 。

       超时重传:发送端发数据后启动定时器,超时没收到确认,就重传数据,应对网络丢包、延迟等,保证接收端拿到完整数据 。

5.1.5 TCP 提供高质量的传输服务,通过滑动窗口机制实现流量控制

       滑动窗口:接收端告知发送端自己的接收缓冲区大小(窗口大小),发送端据此调整发送数据量,避免发送过快,接收端缓冲区溢出,像交通信号灯控制车流,保障数据平稳传输 。

5.1.6 TCP 适合于可靠性要求高的应用

       因为 TCP 有连接管理、有序传输、校验和、重传、流量控制等机制,能保障数据准确、完整送达,像文件下载(FTP)、网页浏览(HTTP 基于 TCP)、邮件收发(SMTP)等,丢包或乱序会导致文件损坏、网页加载异常,所以用 TCP 。

小结:

       TCP(传输控制协议)是传输层核心协议,面向连接,通信分建立连接、传输数据、断开连接三阶段,支持全双工双向同时收发;靠序列号、确认机制保障有序传输,用校验和、超时重传实现可靠传输,借滑动窗口流量控制,为文件下载、网页浏览等可靠性要求高的应用,提供准确、稳定的数据传输服务 。

5.2 TCP包头结构核心字段分析

5.2.1 端口号(源端口 + 目标端口,各 16 位 )

       作用:区分同一设备上的不同应用程序。比如浏览器用 80/443 端口访问网页,QQ 用随机端口通信。

       范围:0 - 65535 ,其中 0 - 1023 是知名端口(如 HTTP=80 、FTP=21 ),系统级应用常用;1024+ 是动态端口,普通程序按需分配。

5.2.2 序列号与确认号(均 32 位 )

       序列号(Sequence Number):给发送的每个报文段编唯一号,是该段 “第一个字节的编号”。

        例:传 5000 字节文件,首字节编号 10001 ,若分 5 段、每段 1000 字节,则 5 段序列号依次为 10001、11001、12001、13001、14001 ,对应数据范围 10001 - 11000 、11001 - 12000 等。

       确认号(Acknowledgment Number):接收方期望下一个字节的编号,用于告诉发送方 “我收到了哪些数据,接下来该发啥”。

       例:收到序列号 10001 - 11000 的报文段,确认号填 11001 ,表示 “已收到到 11000 字节,下一个要 11001”。

注意:IP编号从0开始,TCP编号不一定从0开始。

5.2.3 报头长度(4 位 )

       表示 TCP 包头占多少个 “4 字节块”。因包头可能含 “选项” 字段(0 或 32 位 ),需用此标识实际包头长度(默认 20 字节,对应值为 5 ;含选项时更长 )。

5.2.4 窗口(16 位 )

       滑动窗口的 “接收窗口大小”,单位字节。接收方用它告诉发送方 “我还能收多少数据”,实现流量控制(避免发送方发太快,接收方缓存溢出 )。

5.2.5 校验和(16 位 )

       对 TCP 包头 + 数据做校验,检测传输中是否出错。若校验失败,接收方直接丢弃报文段,触发发送方重传。

5.2.6 编码位(TCP Flag,6 个关键标志 )

        SYN(同步):建立连接时用,SYN=1 表示 “请求建立连接”(三次握手第一步:客户端发 SYN 包 )。

        ACK(确认):确认号有效标识,ACK=1 时确认号才起作用三次握手后,ACK 常为 1 )。

        FIN(结束):FIN=1 表示 “请求断开连接”(四次挥手时,主动关闭方发 FIN 包 )。

        RST(复位):RST=1 强制重置连接,用于处理异常(如连接超时、资源冲突 )。

        PSH(推送):PSH=1 时,接收方立即把数据交给应用层,不缓存(加速交互,比如实时通信 )。

        URG(紧急):URG=1 时紧急指针有效,标记报文段里有 “紧急数据”(需优先处理 )。

5.3 TCP包头的核心作用总结

TCP 包头是 “可靠传输的指挥中心”,通过以下机制保障通信:

       ① 端口号:精准区分应用,让数据 “对号入座”。

       ② 序列号 + 确认号:给数据 “编序号、确认收”,实现有序传输 + 可靠确认,确保接收方拿到完整、不乱序的数据。

       ③ 窗口:动态调节发送速度,避免 “发太猛、收不下”,实现流量控制。

       ④ 校验和:检测数据完整性,发现错误直接丢包重传。

       ⑤ 编码位:用标志位控制连接状态(建立、断开、复位 ),还能处理紧急 / 推送数据,让 TCP 适配不同场景(如网页浏览、文件传输、实时通信 )。

小结:

       TCP 包头靠 “编号确认、动态调速、状态控制”,实现可靠、有序、可控的端到端传输,是 HTTP、FTP 等应用 “不丢包、不乱序” 的核心保障 。

5.4 TCP工作机制

5.4.1 TCP 连接建立(三次握手)

过程:

       Host A 发 SYN=1, SEQ=X → 请求建立连接,告诉 Host B “我要连你,初始序号是 X”。

       Host B 回 SYN=1, ACK=1, SEQ=Y, ACK=X+1 → 同意连接,同时发自己的初始序号 Y ,并确认收到 A 的 X(期望下一个序号是 X+1 )。

       Host A 回 ACK=1, SEQ=X+1, ACK=Y+1 → 确认 B 的连接请求,告诉 B “我收到你的 Y 了,下一个要 Y+1”。

作用:三次交互让双方同步 “初始序号”,确认彼此 “能发能收”,为可靠传输打基础。

5.4.2 TCP MSS(最大分段大小)

基本逻辑:

        三次握手时,双方交换 TCP MSS(如 Host A 说 “我能收 1460 字节的分段”,Host B 说 “我能收 1452 字节” ),避免发送的分段过大导致分片 / 丢包。

网络干预场景:

        若网络有特殊 MTU 限制(如中间路由器 MTU 小 ),可通过 ip tcp adjust-mss 命令修改 MSS ,强制缩小分段大小,解决 “大报文传不过去” 的问题。

5.4.3 TCP 数据传输机制

传输确认:

       Host A 连续发多个数据段(带 SEQ 序号 ),Host B 回 ACK 确认(如 A 发 SEQ=1、1025、2049…,B 回 ACK=4097 ,表示 “收到到 4096 字节,下一个要 4097” ),保障数据有序、不丢。

超时重传:

       若某数据段(如 SEQ=1025 )丢失,Host A 发完启动定时器(RTT ),超时没收到 ACK 就重传该段,确保 B 收到完整数据。

双向传输:

       TCP 是全双工,Client 和 Server 可同时收发数据,双方都有自己的 SEQ、ACK ,独立确认传输。

5.4.4 TCP 连接断开(四次挥手 / 三次挥手)

四次挥手(常规流程):

        Host A 发 FIN=1, SEQ=P → 请求断开,告诉 B “我没数据发了”。

        Host B 回 ACK=1, ACK=P+1 → 确认 A 的断开请求,但可能还有数据要发,先不关闭。

        Host B 发 FIN=1, SEQ=Q → 告诉 A “我也没数据了,同意断开”。

        Host A 回 ACK=1, ACK=Q+1 → 确认 B 的断开请求,连接关闭。

三次挥手(优化场景):

       若 B 回 FIN 时直接带 ACK(合并步骤 ),可简化为三次交互,快速释放连接。

5.4.5 TCP 流量控制(滑动窗口)

核心逻辑:

       接收方(Host B )通过 ACK 里的 win(窗口大小 )告诉发送方(Host A )“我还能收多少数据”。

       若网络拥塞,B 减小窗口(如 win=2048 ),A 就少发数据;传输稳定后,窗口再慢慢增大,避免 “发太猛,收不下”。

小结:

       TCP 靠 “三次握手建连接、四次挥手断连接” 管理通信状态;用 序列号(SEQ)、确认号(ACK) 保障数据有序、不丢;借 超时重传 应对网络丢包;通过 MSS 协商 适配网络 MTU ;以 滑动窗口 实现流量控制,让发送速度匹配接收能力。

       简单说:TCP 把 “连接管理、有序确认、丢包重传、流量适配” 全流程打通,用一套机制实现可靠、可控、高效的端到端传输,成为文件下载、网页浏览等场景的 “幕后保障”。

二、子网划分作业总结

1. 子网掩码 255.255.240.0,判断 150.150.0.0、150.150.0.8、150.150.8.0、150.150.16.0 是否合法。

先计算子网掩码的“块大小”,再逐一验证每个IP对应的那个段是否是块大小的倍数。

2. 在一个分公司中,目前有5个部门A至E,其中:A部门有10台PC(Host,主机),B部门20台,C部门30台,D部门15台,E部门20台,然后公司总部分配了一个总的网段192.168.2.0/24给你,作为网络的管理者,你的任务是为每个部门划分单独的网段,你该怎样做呢?

3. 就是要某单位要求有个部门,要建立6个子网,3个部门50台,1部门25台,2部门都是10台,有一个C类地址是192.168.1.0,求个子网的网络地址和广播地址及子网掩码。

4. 某中型企业的网络设备与主机数量下图所示。请根据该公司的具体情况为该公司作IP地址规划;(附加题)(请尽量节省地址)

变长子网掩码划分

这类 企业网子网划分 题目,核心是 “按需分配、避免地址浪费”,解题步骤可总结为 4 步:

步骤 1:明确需求,排序部门

        列出每个部门的主机数量,并按 “从多到少” 排序(优先满足大部门,防止大部门地址不够 )。

步骤 2:计算每个部门需要的地址数

步骤 3:确定子网掩码,分配网段

步骤 4:验证地址不重叠

三、实验知识总结(真机)

DHCP中继实验

实验拓扑图:

二层交换机配置:

三层交换机配置:

路由器配置:

测试:

实验小结:

容易忘记的配置命令:

① 配置三层交换机的路由接口时,要先no sw关闭二层接口;

② 路由器的接口应该先打开,no shutdown;

③ 路由器的静态路由配置,ip route 192.168.10.0 255.255.255.0 192.168.1.1

                                            ip route 192.168.20.0 255.255.255.0 192.168.1.1

④ 模拟器的接口和真机接口不一定相同,比如三层交换机真机接口是f1/0/0、f1/0/1等,而模拟器接口是f0/0、f0/1等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值