目录

  • 1 课程简介
    • 1.1 课程介绍
    • 1.2 考核方式
    • 1.3 教学大纲
    • 1.4 参考书目
    • 1.5 教学日历
    • 1.6 知识结构
  • 2 作业
    • 2.1 作业1
    • 2.2 作业2
    • 2.3 作业3
    • 2.4 作业4
    • 2.5 作业5
    • 2.6 作业6
    • 2.7 作业7
    • 2.8 作业8
    • 2.9 上机报告提交
    • 2.10 调研报告
    • 2.11 课程设计
  • 3 第一次课
    • 3.1 计算机网络
      • 3.1.1 什么是计算机网络(理解)
      • 3.1.2 网络协议(重点)
      • 3.1.3 通信模型
    • 3.2 网络体系结构(重点)
      • 3.2.1 分层体系结构
      • 3.2.2 OSI参考模型
      • 3.2.3 TCP/IP协议模型
      • 3.2.4 五层体系结构
  • 4 第二次课
    • 4.1 IP层概述
    • 4.2 IP地址及子网划分
    • 4.3 路由聚合
    • 4.4 第一周内容提纲
  • 5 第三次课
    • 5.1 数据报结构
    • 5.2 IP 数据报分片
    • 5.3 章节测试
    • 5.4 作业
  • 6 第四次课
    • 6.1 地址解析协议ARP/RARP
    • 6.2 ICMP协议
    • 6.3 IPv6基础
    • 6.4 packet tracer 仿真
    • 6.5 章节测试
  • 7 第五次课
    • 7.1 IP路由概述
    • 7.2 路由选择算法
    • 7.3 内部网关协议
    • 7.4 外部网关协议BGP-4
    • 7.5 仿真
    • 7.6 章节测试
  • 8 第六次课
    • 8.1 传输层概述
    • 8.2 UDP
    • 8.3 TCP
      • 8.3.1 连接建立与释放
      • 8.3.2 可靠数据传输
    • 8.4 章节测试
  • 9 第七次课
    • 9.1 流量控制
    • 9.2 拥塞控制
  • 10 第八次课
    • 10.1 网络编程基础
    • 10.2 socket API编程概述
    • 10.3 socket API函数介绍
    • 10.4 作业
  • 11 第九次课
    • 11.1 客户服务器编程模型
    • 11.2 客户端编程
    • 11.3 服务器编程
    • 11.4 作业
  • 12 第十次课
    • 12.1 MFC与Qt简介
    • 12.2 windows 套接字接口类
      • 12.2.1 CAsyncSocket类
      • 12.2.2 CSocket类
      • 12.2.3 作业
  • 13 第十一次课
    • 13.1 IP组播
    • 13.2 组播路由选择
    • 13.3 网际组管理协议
    • 13.4 IGMP配置仿真
  • 14 第十二次课
    • 14.1 应用层协议概述
    • 14.2 DNS协议
    • 14.3 HTTP协议
    • 14.4 FTP协议
    • 14.5 远程登陆
    • 14.6 课下作业
  • 15 第十三次课
    • 15.1 章节测验
    • 15.2 Qt实现应用层编程
    • 15.3 邮件传输协议
  • 16 第十四次课
    • 16.1 自举与自配置
      • 16.1.1 BOOTP协议
      • 16.1.2 DHCP协议
    • 16.2 网络管理概述
  • 17 第十五次课
    • 17.1 SNMP网络管理模型
    • 17.2 MIB与SMI
    • 17.3 SNMP协议工作原理
  • 18 第十六次课
    • 18.1 网络安全概述
    • 18.2 网络安全技术
      • 18.2.1 数字加密
      • 18.2.2 数字签名
      • 18.2.3 数字证书
  • 19 网络安全(二)
    • 19.1 安全协议
      • 19.1.1 SSL
      • 19.1.2 IPSec
    • 19.2 课程总复习
  • 20 第20次课(上机)
    • 20.1 上机一
    • 20.2 上机二
    • 20.3 上机三
    • 20.4 上机四
    • 20.5 上机五
  • 21 课程设计
    • 21.1 课程设计内容说明
TCP

一、定义:

    TCP协议:传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,保证了端到端数据传输的可靠性。

  • 面向连接。TCP连接的建立采用的是一种客户机/服务器工作模型。

  • 提供全双工数据传输服务。一对一,点对点

  • 提供面向字节流的服务


二、报文结构与封装

格式说明:20-60B

  • 伪首部:与UDP报文一致,协议号是6

  • 序列号(sn):本报文段所发送数据的第一个字节的编号,32位,数据过大时有回绕

  • 确认号(ack):下一个报文段的第一个字节数据的编号(下一个报文的序列号)

  • 偏移(首部长度):该字段的单位是32bit,即:4个字节。

  • 标志位(flags):控制字段,用于TCP的流量控制、连接的建立和终止以及表示数据的传送方式

                   

  • 窗口大小:配合TCP中的流量控制算法实现流量控制

  • 校验和:校验伪首部+首部+数据

  • 紧急指针:相对与当前数据段第一个字节的偏移量

  • 可变部分:最多40B。最大报文段长度 MSS(4B —— 0204 05B4)、窗口扩大选项(3B——0303 01) 、时间戳选项(STT,10B——080A XXXX XXXX YYYY YYYY)、选择确认选项




三、数据编号与TCP分段

    1、编号:应用层数据进入缓存,产生随机数作为第一字节的编号

    2、TCP分段:应用层数据过大时,通信双方在建立连接时会协商出MSS(最大报文段长度),对应用层数据进行分段发送,形成多个TCP报文段。每个报文段中第一个字节的编号即为当前报文段的序号。

MSS——链路MTU与接收缓存