七LWIP学习笔记之传输控制协议(TCP)

一、协议简介

1、TCP的必要性

2、TCP的特性

3、连接的定义

4、数据流编号

5、滑动窗口

二、TCP报文

1、报文格式

2、TCP选项

3、紧急数据

4、强迫数据交互

5、报文首部数据结构

三、TCP连接

1、建立连接

2、断开连接

3、复位连接

4、TCP状态转换图

5、特殊的状态转换  

四、TCP控制块

1、控制块数据结构

2、控制块链表

3、接收窗口

4、发送窗口

五、TCP编程函数

1、控制块新建

2、控制块绑定

3、控制块监听

4、控制块连接

5、发送数据

6、关闭连接

7、其他函数

六、TCP输出处理

1、报文段缓冲

2、报文段构建

3、报文段发送

七、TCP输入处理

1、TCP层函数调用流程

2、报文输入

3、TIME_WAIT状态的报文处理

4、LISTEN状态的报文处理

5、SYN攻击

6、TCP状态机函数

7、TCP数据输入

八、可靠的传输服务

1、超时重传与RTT估计

2、慢启动与拥塞避免

3、快速重传与快速恢复

4、糊涂窗口与避免

5、零窗口探查

6、保活机制

7、TCP定时器

九、测试程序

原文地址:https://www.cnblogs.com/qinzhou/p/8386173.html

时间: 2024-10-11 15:59:40

七LWIP学习笔记之传输控制协议(TCP)的相关文章

《Linux内核分析》第七周学习笔记

<Linux内核分析>第七周学习笔记 可执行程序的装载 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [学习视频时间:1小时35分钟 实验时间:1小时 撰写博客时间:2小时] [学习内容:共享库和动态链接.exec系统调用的执行过程.可执行程序的装载] 一.预处理.编译.链接和目标文件的格式 1.1 可执行程序如何得来?

20165326 java第七周学习笔记

第七周学习笔记 MySQL(数据管理系统)学习 知识点总结: 不能通过关闭MySQL数据库服务器所占用的命令行窗口来关闭MySQL数据库. 如果MySQL服务器和MySQL管理工具驻留在同一台计算机上,主机名可以是localhost或127.0.0.1. JDBC是允许用户在不同数据库之间做选择的一个抽象层.JDBC允许开发者用JAVA写数据库应用程序,而不需要关心底层特定数据库的细节. 查询操作: 向数据库发送SQL查询语句,先用statement声明对象,已创建的连接对象调用creatSta

LwIP学习笔记——STM32 ENC28J60移植与入门

0.前言 去年(2013年)的整理了LwIP相关代码,并在STM32上"裸奔"成功.一直没有时间深入整理,在这里借博文整理总结.LwIP的移植过程细节很多,博文也不可能一一详解个别部分只能点到为止. [本文要点] [1]不带操作系统的LwIP移植,LwIP版本为1.4.1. [2]MCU为STM32F103VE,网卡为ENC28J60. [3]移植过程重点描述ethernetif.c和LwIP宏配置等. [4]一个简单的TCP echo例子. [5]力求简单,没有DHCP功能,甚至没有

Python学习笔记__16.2章 TCP编程

# 这是学习廖雪峰老师python教程的学习笔记 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 1.客户端 大多数连接都是可靠的TCP连接.创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器. 1.1.创建一个基于TCP连接的Socket,获取新浪首页 # 导入socket库: import socket # 创建一个socket,AF_INET

机电传动控制第七周学习笔记——PLC

上周末体测所以忘了写每周的学习笔记(⊙﹏⊙),所以我先行卖个萌. PLC算是不可不知的一类控制方式了,现在开始正式地学习它让我感到很激动.然而老师上课给了习题做,所以错过了一些课程内容,不过学习笔记嘛,课后自学的和查阅的应该也算. 一.基本构成 1.电源部件 可编程逻辑控制器的电源在整个系统中起着十分重要的作用.因为中央处理单元等等用的都是直流电,而且还需要电源部件消除电压波动,温度变化对输出电压的影响等等,保护元件.电源内部还有备用电池防止断电时RAM信息丢失. 2.中央处理单元(CPU) 中

Linux内核分析——第七周学习笔记20135308

第七周 可执行程序的装载 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么来的 C代码—>预处理—>汇编代码—>目标代码—>可执行文件 .asm汇编代码 .o目标码 a.out可执行文件 预处理负责把include的文件包含进来及宏替换工作. 2.目标文件的格式ELF (1)常见的ELF格式文件: (2)ABI——应用程序二进制接口 在目标文件中,他已经是二进制兼容,即适应二进制指令. (3)ELF中三种目标文件: 一个可重定位(relocatable)文件保存着代码和

计算机网络 学习笔记-传输层:TCP协议简介

概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面4n字节是根据需要而添加的. 20字节的固定部分: 源端口和目的端口:分别写入源端口号和目的端口号 序号:0-(2^32-1),本报文段数据的第一个字节的序号,用来解决乱序问题 确认序号:期望收到对方下一个报文段的第一个数据字节的序号,用来解决丢包问题 数据偏移:TCP报头长度,包括固定的20字节和

HTML第七天学习笔记

今天主要是学习如何使用JS,第一个就是先是使用JS输出"Hello world" 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta http-equiv = "content-type" content = "text/html; charset=UTF-8"> 5 <title>Document</ti

Linux课程第七天学习笔记

####################3.gateway####################1.路由器(略) 2.网关路由器上和自己处在同一个网段的那个ip 3.设定网关systemctl stop NetworkManager    ##"NetworkManger"服务会记录网卡原来的信息,要先stopvim /etc/sysconfig/network    ##全局网关GATEWAY=网关ip vim /etc/sysconfig/network-scripts/ifcf