`
oolala
  • 浏览: 99742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
09c341db-7f05-3f2b-a572-9ee69a5d8a77
unix环境高级编程
浏览量:21655
社区版块
存档分类
最新评论

UNIX网络编程卷一:2传输层:TCP UDP SCTP

 
阅读更多
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)
         当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连接终止
    TCP终止一个连接则需要4个分节
    1)某个应用进程首先调用close,我们称该端执行主动关闭(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
    2)接收到这个FIN的对端执行被动关闭(passive close)。这个FIN由TCP确认。
    3)一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字,这导致它的tcp也发送一个FIN    
    4)接收这个最终FIN的原发送端tcp确认这个FIN
    

 

 
5、TCP状态转换图


 
  • 大小: 39.2 KB
  • 大小: 90.1 KB
  • 大小: 42.2 KB
分享到:
评论

相关推荐

    UNIX网络编程 卷1:套接字联网API

    第2章 传输层:TCP、UDP和SCTP 第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 I/O复用:select和poll函数 第7章 套接字选项 第8章 ...

    UNIX网络编程卷1:套接字联网API(第3版)part2

    UNIX网络编程卷1:套接字联网API(第3版),含TCP,UDP,SCTP,IPv6,Unix域协议,广播,多播,密钥管理

    UNIX网络编程卷1:套接字联网API(第3版)part1

    UNIX网络编程卷1:套接字联网API(第3版),含TCP,UDP,SCTP,IPv6,Unix域协议,广播,多播,密钥管理

    Unix 网络编程 卷1 第三版 源代码

    《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...

    UNIX网络编程卷2进程间通信

    新的网络编程调试技术 源端特定的组播API,正是这个API使得IP组播开发被广泛使用 本书还更新和扩展了Stevens对以下关键的UNIX网络标准和技术所做的权威性的概括: TCP和UDP传输 基本的和高级的套接宇,路由的和...

    UNIX网络编程 第2卷 进程间通信.pdf(带书签)

    第2章 传输层:TCP、UDP和SCTP 第2部 分基本套接口编程? 第3章 套接口编程简介 第4章 基本TCP套接口编程 第5章 TCP客户/服务器程序例子? 第6章 I/O复用:select和poll函数 第7章 套接口选项 第8章 基本UDP套接口...

    UNIX网络编程卷1:套接字联网API(第3版)part1 共2部分

    第2章 传输层:TCP、UDP和SCTP 第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 IO复用:select和poll函数 第7章 套接字选项 第8章 基本UDP套接...

    UNIX网络编程 第2卷 进程间通信 带完整书签

    第2章 传输层:TCP、UDP和SCTP 第2部 分基本套接口编程? 第3章 套接口编程简介 第4章 基本TCP套接口编程 第5章 TCP客户/服务器程序例子? 第6章 I/O复用:select和poll函数 第7章 套接口选项 第8章 基本UDP套...

    UNIX网络编程.卷1:套接字联网API(第3版)

    这是一部传世之作!顶级网络编程专家bill fenner和andrew m. rudoff应邀执笔,对w.... 本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。

    UNIX网络编程.卷1:套接字联网API

    这是一部传世之作!顶级网络编程专家bill fenner和andrew m. rudoff应邀执笔,对w.... 本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。

    UNIX网络编程卷2进程间通信(第2版)

    第2章 传输层:TCP、UDP和SCTP 第2部 分基本套接口编程? 第3章 套接口编程简介 第4章 基本TCP套接口编程 第5章 TCP客户/服务器程序例子? 第6章 I/O复用:select和poll函数 第7章 套接口选项 第8章 基本UDP套接口编程...

    UNIX网络编程卷1英文第三版 pdf 源码

    《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...

    UNIX网络编程卷1套接字联网API.part2.rar

    新的网络编程调试技术 源端特定的组播API,正是这个API使得IP组播开发被广泛使用 本书还更新和扩展了Stevens对以下关键的UNIX网络标准和技术所做的权威性的概括: TCP和UDP传输 基本的和高级的套接宇,路由的和...

    UNIX Network Programming Volume 1, Third Edition (Unix网络编程卷1第3版英文版)

    Unix网络编程卷1,第三版,英文版。大名顶顶的Richard Stevens所写 目录: Copyright Addison-Wesley Professional Computing Series Foreword Preface Introduction Changes from the Second Edition ...

    UNIX网络编程

    《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...

    UNIX网络编程卷1套接字联网API.part1.rar

    新的网络编程调试技术 源端特定的组播API,正是这个API使得IP组播开发被广泛使用 本书还更新和扩展了Stevens对以下关键的UNIX网络标准和技术所做的权威性的概括: TCP和UDP传输 基本的和高级的套接宇,路由的和...

    UNIX网络编程 卷2 进程间通信(第2版)

    Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。 本书全面深入地介绍了如何使用套接口API进行网络编程。...

    (第3版)UNIX网络编程_卷1_套接字联网API_卷一

    这是一部传世之作!顶级网络编程专家Bill Fenner和Andrew M. Rudoff应邀执笔,对W....本书为UNIX网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。

    IP,UDP,TCP,SCTP整理总结.doc

    IP,UDP,TCP,SCTP整理总结.doc

    cpp-iperf3一个TCPUDP和SCTP网络带宽测量工具

    iperf是主动测量IP网络上最大可实现带宽的工具。 它支持调整与时序,协议和缓冲区相关的各种参数。 对于每个测试,它都会报告测量的吞吐量/比特率,丢失和其他参数。

Global site tag (gtag.js) - Google Analytics