1、总图
udp是一个简单的、不可靠的数据报协议,而tcp是一个复杂、可靠的字节流协议
TCP的某些特性一旦理解,就很容易编写健壮的客户和服务器程序。
TCP三路握手、TCP连接终止序列、TCP的TIME_WAIT状态
套接字层提供的TCP、UDP缓冲机制。
TCP 传输控制协议,TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字(stream socket)
TCP关心确认、超时和重传之类的细节。TCP即可以是IPv4,也可以是IPv6
传输控制协议
a)tcp提供客户与服务器之间的连接
b)tcp还提供了可靠性(reliability)
b)tcp还提供了可靠性(reliability)
当TCP向另一端发送数据时,它要求对端返回一个确认。如果没有收到确认,tcp就自动重传数据并等待更长时间。在数次重传失败后,
tcp才放弃 ,如此在尝试发送数据上所花时间一般为4-10分钟
c)tcp提供流量控制
d)tcp连接是全双工的
2、三路握手
建立一个TCP连接时会发生下述情形
1)服务器必须准备好接受外来的连接。这通常通过调用socket、bind、listen函数来完成,我们称为被动打开(passive open)
2)客户通过调用connect发起主动打开(active open)。这导致客户TCP发送一个SYN分节,它告诉服务器客户将在连接中发送数据的初始序列号。
通常SYN分节不携带数据,其所在IP数据报只含有一个IP首部、一个TCP首部及可能有的TCP选项。
3)服务器必须确认(ACK)客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。
服务器在单个分节中发送的SYN和对客户SYN的ACK
4)客户必须确认服务器的SYN
3、TCP选项
MSS选项。发送SYN的tcp一端使用本选项通告对端它的最大分节大小(maximum segment size)即MSS,也就是它在本连接的每个tcp分节中愿意
接受的最大数据量。TCP_MAXSEG套接字选项提取和设置这个tcp选项
容器规模选项。 tcp连接任何一端能够通告对端的最大容器大小是65535,因为在tcp首部中相应的字段占16位。SO_RCVBUF套接字选项
时间戳选项
4、TCP连接终止
4、TCP连接终止
TCP终止一个连接则需要4个分节
1)某个应用进程首先调用close,我们称该端执行主动关闭(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
2)接收到这个FIN的对端执行被动关闭(passive close)。这个FIN由TCP确认。
3)一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字,这导致它的tcp也发送一个FIN
4)接收这个最终FIN的原发送端tcp确认这个FIN
5、TCP状态转换图
相关推荐
第2章 传输层:TCP、UDP和SCTP 第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 I/O复用:select和poll函数 第7章 套接字选项 第8章 ...
UNIX网络编程卷1:套接字联网API(第3版),含TCP,UDP,SCTP,IPv6,Unix域协议,广播,多播,密钥管理
UNIX网络编程卷1:套接字联网API(第3版),含TCP,UDP,SCTP,IPv6,Unix域协议,广播,多播,密钥管理
《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...
新的网络编程调试技术 源端特定的组播API,正是这个API使得IP组播开发被广泛使用 本书还更新和扩展了Stevens对以下关键的UNIX网络标准和技术所做的权威性的概括: TCP和UDP传输 基本的和高级的套接宇,路由的和...
第2章 传输层:TCP、UDP和SCTP 第2部 分基本套接口编程? 第3章 套接口编程简介 第4章 基本TCP套接口编程 第5章 TCP客户/服务器程序例子? 第6章 I/O复用:select和poll函数 第7章 套接口选项 第8章 基本UDP套接口...
第2章 传输层:TCP、UDP和SCTP 第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 IO复用:select和poll函数 第7章 套接字选项 第8章 基本UDP套接...
第2章 传输层:TCP、UDP和SCTP 第2部 分基本套接口编程? 第3章 套接口编程简介 第4章 基本TCP套接口编程 第5章 TCP客户/服务器程序例子? 第6章 I/O复用:select和poll函数 第7章 套接口选项 第8章 基本UDP套...
这是一部传世之作!顶级网络编程专家bill fenner和andrew m. rudoff应邀执笔,对w.... 本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
这是一部传世之作!顶级网络编程专家bill fenner和andrew m. rudoff应邀执笔,对w.... 本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
第2章 传输层:TCP、UDP和SCTP 第2部 分基本套接口编程? 第3章 套接口编程简介 第4章 基本TCP套接口编程 第5章 TCP客户/服务器程序例子? 第6章 I/O复用:select和poll函数 第7章 套接口选项 第8章 基本UDP套接口编程...
《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...
新的网络编程调试技术 源端特定的组播API,正是这个API使得IP组播开发被广泛使用 本书还更新和扩展了Stevens对以下关键的UNIX网络标准和技术所做的权威性的概括: TCP和UDP传输 基本的和高级的套接宇,路由的和...
Unix网络编程卷1,第三版,英文版。大名顶顶的Richard Stevens所写 目录: Copyright Addison-Wesley Professional Computing Series Foreword Preface Introduction Changes from the Second Edition ...
《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...
新的网络编程调试技术 源端特定的组播API,正是这个API使得IP组播开发被广泛使用 本书还更新和扩展了Stevens对以下关键的UNIX网络标准和技术所做的权威性的概括: TCP和UDP传输 基本的和高级的套接宇,路由的和...
Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。 本书全面深入地介绍了如何使用套接口API进行网络编程。...
这是一部传世之作!顶级网络编程专家Bill Fenner和Andrew M. Rudoff应邀执笔,对W....本书为UNIX网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
IP,UDP,TCP,SCTP整理总结.doc
iperf是主动测量IP网络上最大可实现带宽的工具。 它支持调整与时序,协议和缓冲区相关的各种参数。 对于每个测试,它都会报告测量的吞吐量/比特率,丢失和其他参数。