第17章TCP 基本概念
2015-09-08 21:11
603 查看
TCP提供面向连接的、可靠的字节流服务。
可靠性:
① 应用数据被分隔成TCP认为最合适发送的数据块。信息单位为“报文段”Segment。
② 当TCP发出一个报文段后,它将启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个保温段。
③ 当TCP收到来自TCP连接另一端的数据,它将发送一个确认。
④ 首部和数据的检验和,覆盖整个数据报文段。
⑤ 流量控制,有固定大小的缓冲空间。
两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。称为字节流服务(byte stream service)。
TCP对字节流的内容不作任何解释。它不知道传输的数据字节流是二进制数据还是ASCII字符或者其他类型数据,对字节流的解释由TCP连接双方的应用层解释。
TCP首部
Socket 插口:IP地址 + 端口号
Socket Pair 插口对 : 客户IP地址、客户端口号、服务器IP地址、服务器端口号 。这个四元组可以唯一确定互联网络中的每个TCP连接双方。
Sequence Number 序号 :标识从TCP发端向收端发送的数据字节流,标识这个报文段中的第一个数据字节。序号是32bit无符号数,到达后从0重新开始。
ISN 初始序号 :建立TCP连接所发送的第一个包所用的序号。此时该包的SYN标识为1。
6个标识比特:
l URG 紧急指针 urgent pointer
l ACK 确认序号
l PSH 接受方应该尽快进这个报文段交给应用层。
l SYN 同步序号用来发起一个连接
l FIN 发端完成发送任务
MSS 最长报文大小(Maximum Segment Size):指明本段所能接受的最大程度的报文段。当一个连接建立时,连接的双方都要通告各自的MSS。MSS不是双方一定得协商的,可以使用默认值536字节(这个默认值允许20字节的IP首部和20字节的TCP首部以是和576字节的IP数据报)。大多数MSS为512的倍数
TCP选项:
下面是18章内容添加至此。
呼入连接请求队列:一个并发服务器调用一个新的进程来处理每个客户请求。
(1)正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被TCP接受(即三次握手成功),但是还没有被应用层所接受。注意区分TCP接受一个连接是将其放入队列,而应用层接受连接是将其从该队列中移出
(2)应用层将指明该队列的最大长度,这个值通常被称为积压值backlog。取值方范围是【0,5】
(3)当一个连接请求SYN到达时,TCP使用一个算法,根据当前连接队列中的连接数来确定是否接受这个连接。 注:积压值说明的是TCP监听的端点已被TCP接受而等待应用层接受的最大连接数,这个积压值对系统所允许的连接数或者并发服务器所能并发处理的客户数没有影响。
(4)如果对于新的连接请求,TCP监听的端点的连接队列中还有空间,TCP模块将对SYN进行确认并完成连接的建立。但应用层只有在三次握手的第三个报文段收到后才会知道这个连接。另外,当客户进程主动打开成功但服务器的应用层还不知道这个行的连接时,它可能会认为服务器进程已经准备好接收数据了,这是服务器仅将接受到的数据放在缓冲队列中。
(5)如果对于新的连接请求,连接队列中已经没有空间,TCP将不会理会收到的SYN,也不发回任何报文段。
可靠性:
① 应用数据被分隔成TCP认为最合适发送的数据块。信息单位为“报文段”Segment。
② 当TCP发出一个报文段后,它将启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个保温段。
③ 当TCP收到来自TCP连接另一端的数据,它将发送一个确认。
④ 首部和数据的检验和,覆盖整个数据报文段。
⑤ 流量控制,有固定大小的缓冲空间。
两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。称为字节流服务(byte stream service)。
TCP对字节流的内容不作任何解释。它不知道传输的数据字节流是二进制数据还是ASCII字符或者其他类型数据,对字节流的解释由TCP连接双方的应用层解释。
TCP首部
Socket 插口:IP地址 + 端口号
Socket Pair 插口对 : 客户IP地址、客户端口号、服务器IP地址、服务器端口号 。这个四元组可以唯一确定互联网络中的每个TCP连接双方。
Sequence Number 序号 :标识从TCP发端向收端发送的数据字节流,标识这个报文段中的第一个数据字节。序号是32bit无符号数,到达后从0重新开始。
ISN 初始序号 :建立TCP连接所发送的第一个包所用的序号。此时该包的SYN标识为1。
6个标识比特:
l URG 紧急指针 urgent pointer
l ACK 确认序号
l PSH 接受方应该尽快进这个报文段交给应用层。
l SYN 同步序号用来发起一个连接
l FIN 发端完成发送任务
MSS 最长报文大小(Maximum Segment Size):指明本段所能接受的最大程度的报文段。当一个连接建立时,连接的双方都要通告各自的MSS。MSS不是双方一定得协商的,可以使用默认值536字节(这个默认值允许20字节的IP首部和20字节的TCP首部以是和576字节的IP数据报)。大多数MSS为512的倍数
TCP选项:
下面是18章内容添加至此。
呼入连接请求队列:一个并发服务器调用一个新的进程来处理每个客户请求。
(1)正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被TCP接受(即三次握手成功),但是还没有被应用层所接受。注意区分TCP接受一个连接是将其放入队列,而应用层接受连接是将其从该队列中移出
(2)应用层将指明该队列的最大长度,这个值通常被称为积压值backlog。取值方范围是【0,5】
(3)当一个连接请求SYN到达时,TCP使用一个算法,根据当前连接队列中的连接数来确定是否接受这个连接。 注:积压值说明的是TCP监听的端点已被TCP接受而等待应用层接受的最大连接数,这个积压值对系统所允许的连接数或者并发服务器所能并发处理的客户数没有影响。
(4)如果对于新的连接请求,TCP监听的端点的连接队列中还有空间,TCP模块将对SYN进行确认并完成连接的建立。但应用层只有在三次握手的第三个报文段收到后才会知道这个连接。另外,当客户进程主动打开成功但服务器的应用层还不知道这个行的连接时,它可能会认为服务器进程已经准备好接收数据了,这是服务器仅将接受到的数据放在缓冲队列中。
(5)如果对于新的连接请求,连接队列中已经没有空间,TCP将不会理会收到的SYN,也不发回任何报文段。
相关文章推荐
- 使用事件驱动模型实现高效稳定的网络服务器程序
- TCP/IP TIME_WAIT状态原理
- 网络通讯基础
- HDU 3549【网络流入门--然而我还是XXX】
- HDU 3572Task Schedule(网络流)
- POJ 1459:Power Network 能源网络
- POJ 1459:Power Network 能源网络
- 网络请求时WiFi边上的菊花
- POJ 1273:Drainage Ditches 网络流模板题
- POJ 1273:Drainage Ditches 网络流模板题
- POJ 1149:PIGS 网络流经典题
- POJ 1149:PIGS 网络流经典题
- HTTP - 条件请求
- iOS 异步请求网络数据,传值问题
- 传输层(2)-TCP连接的建立和终止、TIME_WAIT状态
- 27-监管网络状态信息netstat
- 网络通信之网页源码查看 并显示屏幕上
- HTTP Status 404 - There is no Action mapped for namespace [/] and action name [login!welcome] associ
- Android第六讲——数据存储(五种)SharedPreferences、内部存储(缓存cache)、外部存储(Sdcrad)、SQLite数据库、网络存储
- HTTP学习