- 浏览: 250345 次
- 性别:
文章分类
最新评论
参考文章如下:
http://www.iteye.com/topic/1110883?page=2
第一次数据包交互过程
18:18:49.344878 IP 10.210.214.51.54042 > 10.210.214.51.8000: P 1:7(6) ack 1 win 1025 <nop,nop,timestamp 1350350382 1350345381> 0x0000: 4500 003a 96e9 4000 4006 e1c9 0ad2 d633 E..:..@.@......3 0x0010: 0ad2 d633 d31a 1f40 1071 3443 0fde a75a ...3...@.q4C...Z 0x0020: 8018 0401 c237 0000 0101 080a 507c b62e .....7......P|.. 0x0030: 507c a2a5 6865 6c6c 6f20 P|..hello. 18:18:49.345069 IP 10.210.214.51.8000 > 10.210.214.51.54042: . ack 7 win 1024 <nop,nop,timestamp 1350350382 1350350382> 0x0000: 4500 0034 05ff 4000 4006 72ba 0ad2 d633 E..4..@.@.r....3 0x0010: 0ad2 d633 1f40 d31a 0fde a75a 1071 3449 ...3.@.....Z.q4I 0x0020: 8010 0400 c231 0000 0101 080a 507c b62e .....1......P|.. 0x0030: 507c b62e P|.. 18:18:49.345209 IP 10.210.214.51.54042 > 10.210.214.51.8000: P 7:14(7) ack 1 win 1025 <nop,nop,timestamp 1350350382 1350350382> 0x0000: 4500 003b 96ea 4000 4006 e1c7 0ad2 d633 E..;..@.@......3 0x0010: 0ad2 d633 d31a 1f40 1071 3449 0fde a75a ...3...@.q4I...Z 0x0020: 8018 0401 c238 0000 0101 080a 507c b62e .....8......P|.. 0x0030: 507c b62e 776f 726c 640d 0a P|..world.. 18:18:49.345417 IP 10.210.214.51.8000 > 10.210.214.51.54042: . ack 14 win 1024 <nop,nop,timestamp 1350350383 1350350382> 0x0000: 4500 0034 0600 4000 4006 72b9 0ad2 d633 E..4..@.@.r....3 0x0010: 0ad2 d633 1f40 d31a 0fde a75a 1071 3450 ...3.@.....Z.q4P 0x0020: 8010 0400 c231 0000 0101 080a 507c b62f .....1......P|./ 0x0030: 507c b62e P|.. 18:18:49.345483 IP 10.210.214.51.8000 > 10.210.214.51.54042: P 1:13(12) ack 14 win 1024 <nop,nop,timestamp 1350350383 1350350382> 0x0000: 4500 0040 0601 4000 4006 72ac 0ad2 d633 E..@..@.@.r....3 0x0010: 0ad2 d633 1f40 d31a 0fde a75a 1071 3450 ...3.@.....Z.q4P 0x0020: 8018 0400 c23d 0000 0101 080a 507c b62f .....=......P|./ 0x0030: 507c b62e 6161 6161 6161 6161 6161 0d0a P|..aaaaaaaaaa.. 18:18:49.345586 IP 10.210.214.51.54042 > 10.210.214.51.8000: . ack 13 win 1025 <nop,nop,timestamp 1350350383 1350350383> 0x0000: 4500 0034 96eb 4000 4006 e1cd 0ad2 d633 E..4..@.@......3 0x0010: 0ad2 d633 d31a 1f40 1071 3450 0fde a766 ...3...@.q4P...f 0x0020: 8010 0401 c231 0000 0101 080a 507c b62f .....1......P|./ 0x0030: 507c b62f P|./
这里没有出现延迟
第二次就出现了延迟
18:18:49.345784 IP 10.210.214.51.54042 > 10.210.214.51.8000: P 14:20(6) ack 13 win 1025 <nop,nop,timestamp 1350350383 1350350383> 0x0000: 4500 003a 96ec 4000 4006 e1c6 0ad2 d633 E..:..@.@......3 0x0010: 0ad2 d633 d31a 1f40 1071 3450 0fde a766 ...3...@.q4P...f 0x0020: 8018 0401 c237 0000 0101 080a 507c b62f .....7......P|./ 0x0030: 507c b62f 6865 6c6c 6f20 P|./hello. 18:18:49.385257 IP 10.210.214.51.8000 > 10.210.214.51.54042: . ack 20 win 1024 <nop,nop,timestamp 1350350423 1350350383> 0x0000: 4500 0034 0602 4000 4006 72b7 0ad2 d633 E..4..@.@.r....3 0x0010: 0ad2 d633 1f40 d31a 0fde a766 1071 3456 ...3.@.....f.q4V 0x0020: 8010 0400 c231 0000 0101 080a 507c b657 .....1......P|.W 0x0030: 507c b62f P|./ 18:18:49.385367 IP 10.210.214.51.54042 > 10.210.214.51.8000: P 20:27(7) ack 13 win 1025 <nop,nop,timestamp 1350350423 1350350423> 0x0000: 4500 003b 96ed 4000 4006 e1c4 0ad2 d633 E..;..@.@......3 0x0010: 0ad2 d633 d31a 1f40 1071 3456 0fde a766 ...3...@.q4V...f 0x0020: 8018 0401 c238 0000 0101 080a 507c b657 .....8......P|.W 0x0030: 507c b657 776f 726c 640d 0a P|.Wworld.. 18:18:49.385380 IP 10.210.214.51.8000 > 10.210.214.51.54042: . ack 27 win 1024 <nop,nop,timestamp 1350350423 1350350423> 0x0000: 4500 0034 0603 4000 4006 72b6 0ad2 d633 E..4..@.@.r....3 0x0010: 0ad2 d633 1f40 d31a 0fde a766 1071 345d ...3.@.....f.q4] 0x0020: 8010 0400 c231 0000 0101 080a 507c b657 .....1......P|.W 0x0030: 507c b657 P|.W 18:18:49.385504 IP 10.210.214.51.8000 > 10.210.214.51.54042: P 13:25(12) ack 27 win 1024 <nop,nop,timestamp 1350350423 1350350423> 0x0000: 4500 0040 0604 4000 4006 72a9 0ad2 d633 E..@..@.@.r....3 0x0010: 0ad2 d633 1f40 d31a 0fde a766 1071 345d ...3.@.....f.q4] 0x0020: 8018 0400 c23d 0000 0101 080a 507c b657 .....=......P|.W 0x0030: 507c b657 6161 6161 6161 6161 6161 0d0a P|.Waaaaaaaaaa.. 18:18:49.385968 IP 10.210.214.51.54042 > 10.210.214.51.8000: F 27:27(0) ack 25 win 1025 <nop,nop,timestamp 1350350423 1350350423> 0x0000: 4500 0034 96ee 4000 4006 e1ca 0ad2 d633 E..4..@.@......3 0x0010: 0ad2 d633 d31a 1f40 1071 345d 0fde a772 ...3...@.q4]...r 0x0020: 8011 0401 c231 0000 0101 080a 507c b657 .....1......P|.W 0x0030: 507c b657 P|.W
第二次发送的过程
1.客户端 发送 hello --> 服务端 此时立刻发送 2.服务端由于没有处理完逻辑,暂时不发送数据,因此ack就延迟了40毫秒,从tcpdump的时间戳可以看到,超时以后服务端发送ack包 3.客户端将没有发送完的数据发送给服务端 4.服务端收到了数据,发送ack应答 5.服务端处理完逻辑后发送返回的数据 6.客户端对服务端数据做ack应答 从这里可以看到延迟出现在第二次 客户端发送包的时候,尽管上次的java代码已经发送了,但此时数据还在内核中,没有真正的发送,因此 客户端在 read数据的时候会出现一次停顿,这个停顿就是等待服务端返回数据 而服务端又等待客户端内核中的数据, 等到40毫秒超时后,服务端返回了一个ack应答,于是客户端内核将剩余的数据发送,之后就正常了
发表评论
-
OAuth总结
2016-12-22 16:15 290登录新浪微博授权过程 url如下 ... -
TCP的未来和性能
2014-06-23 12:44 920路径MTU发现 TCP的路径MTU发现按照如下方式 ... -
TCP的超时和重传
2014-06-19 08:59 1475对于每连接,TCP管理4个不同的定时器: 1 ... -
TCP的keepalive
2014-06-08 12:38 1294TCP的keepalive 一般是服务端开启这个功 ... -
TCP的数据交互
2014-06-05 22:04 1050小包的交互 如果 ... -
TCP连接的建立和终止
2014-06-01 21:46 1623TCP数据包格式: TCP ... -
DNS协议
2014-05-25 17:48 428参考: DNS迭代查询与递归 ... -
ARP和RARP
2014-05-24 18:40 677ARP(地址转换协议) 格式如下: 以太网的数据 ... -
TCP协议总结
2013-06-07 18:58 1126TCP传输控制协议 TCP提供一种面向连接的、可靠的字节流服务 ... -
网络协议 汇总
2013-04-15 14:07 889互联网协议入门(一) http://www.ruanyifen ... -
IP数据包分析
2013-04-12 14:11 1189IP数据报格式 http://wenku.baidu.com/ ... -
TCP发送过程 数据包
2013-03-29 13:31 1543发送数据 13:18:29.402741 IP 10.21 ... -
DNS协议
2013-02-22 17:15 787dns的A ,cname,mx,ns type意思,以及用ns ... -
无线网络
2013-02-06 10:10 652WCDMA/LTE调制方式入门 http://blog.job ... -
TCP连接建立和关闭 数据包
2012-09-11 19:17 1479连接建立 10:56:08.947939 I ... -
TCP协议
2012-09-10 12:41 909TCP/IP传输层,你懂多少? http://java-mz ... -
TCP/IP
2012-02-01 13:34 193TCP/IP传输层,你懂多少? http://java-mzd ... -
http协议
2012-01-14 12:23 756http响应头介绍 http://minghaitang.it ...
相关推荐
- `TCP_NODELAY`: 如果定义,则不延迟发送来合并数据包。 - `TCP_KEEPALIVE`: 定义了keep-alive选项,用于维持空闲连接。 - `TCP_KEEPDEFAULT`: 7200 秒 (2 小时),默认的keep-alive探测发送前的等待时间。 - `...
- 发送方:使用TCP的`push`操作或设置合适的TCP选项,如TCP_NODELAY,强制立即发送数据,减少数据包的合并。 - 接收方:优化程序设计,确保接收进程能快速处理接收的数据,避免缓冲区堆积。可以使用固定长度或带有...
书中的技巧可能包括:正确设置套接字选项,如SO_REUSEADDR和TCP_NODELAY,以优化连接性能;使用非阻塞I/O或多路复用I/O模型(如select、poll、epoll)来提高并发处理能力;以及掌握TCP流量控制和拥塞控制机制,确保...
6. **选项设置**:TCP协议允许设置各种选项,如TCP_NODELAY(禁用Nagle算法以减少延迟),sock展示了如何使用setsockopt()和getsockopt()函数来设置和查询这些选项。 7. **多线程编程**:为了同时处理多个连接,...
4. **日志记录**:可以记录TCP连接的相关信息,便于监控和分析。 5. **超时设置**:通过`proxy_timeout`可以设置与后端服务器的连接超时时间。 6. **Proxy Protocol**:如果开启`proxy_protocol`选项,Nginx会传递...
10. **套接字选项**:TCP套接字有许多可设置的选项,如SO_RCVBUF和SO_SNDBUF用于设置接收和发送缓冲区大小,TCP_NODELAY禁用Nagle算法以减少延迟。 本实例提供的源代码应该涵盖了服务器端和客户端的实现,包括如何...
"log_tcp_源码"这个主题显然涉及到对TCP协议的源代码分析,特别是关于TCP参数的使用以及如何通过TCP发送数据包。 TCP参数在通信过程中扮演着关键角色,它们用于调整连接性能、可靠性以及拥塞控制等方面。以下是一些...
此外,理解和应用TCP选项,如TCP_NODELAY(禁用Nagle算法)、TCP_KEEPALIVE(维持连接活性)等,也是提高网络通信效率和稳定性的重要手段。 在网络层,IP协议处理数据包的路由和分片,而ICMP(Internet Control ...
通过设置TCP选项(如TCP_NODELAY)可以调整Nagle算法,优化小数据包的发送效率。 3. **可靠性**:TCP通过序列号、确认应答、重传机制确保数据的可靠性。如果数据包未收到确认,TCP会自动重发,直到接收到确认或达到...
在IT行业中,网络通信是软件开发中的重要组成...通过分析和学习TCPDemo的代码,我们可以更深入地理解C#中TCP通信的实现细节,并将其应用于自己的项目中。这不仅有助于提升网络编程技能,还能为解决实际问题提供参考。
2. **套接字选项**:理解和正确使用套接字选项如SO_REUSEADDR、SO_LINGER、TCP_NODELAY等,可以改善网络连接的性能和行为。 3. **缓冲区管理**:理解如何合理设置接收和发送缓冲区大小,有助于优化数据传输速度,...
2. 分析`tcp_info.tcpi_state`字段,它包含了TCP连接的状态码。 在Windows环境中,虽然没有直接对应的`TCP_INFO`结构体,但我们可以使用`WSAIoctl()`函数配合`SIO_TCP_CONNINFO`控制代码来获取相似信息。这个函数...
8. **高级主题**:可能会涉及TCP选项(如TCP_NODELAY)、套接字选项(如SO_REUSEADDR)、以及SSL/TLS加密通信。 9. **案例分析**:通过实际的服务器和客户端示例,演示如何构建完整的网络应用,如简单的HTTP服务器...
6. **套接字选项和属性**:Socket对象有许多可配置的选项和属性,如`NoDelay`(禁用Nagle算法)、`ReceiveBufferSize`和`SendBufferSize`(设置缓冲区大小),可以根据需求调整以优化性能。 7. **异常处理**:在...
这是因为ACK NoDelay模式下,TCP立即发送确认,减少了等待确认的时间,从而提高了包交换速率。 测试方案三将服务器放在一个CPU核心上,而两个客户端则运行在另一个核心上,采用双核CPU进行双向传输,仍使用ACK ...
setsockopt(m_hSocket, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); ``` #### 十二、滑动窗口 - **定义**:一种流控机制,允许发送方在停止等待确认前可连续发送多个分组。 - **工作原理**:根据接收方提供的...
9. **性能优化**:可能会涉及到TCP选项的设置,如TCP_NODELAY(禁用Nagle算法)以减少小包延迟,或者根据实际需求调整TCP缓冲区大小。 10. **安全性**:虽然这个项目没有明确提到,但实际应用中,传输数据的安全性...
通过阅读和分析`client.c`和`server.c`源代码,你可以深入理解TCP连接的建立、维护以及数据传输的细节,这将对你的网络编程技能有极大的提升。同时,这个基础可以作为进一步学习高级网络编程,如HTTPS、WebSocket等...
1. TCP连接优化:调整TCP缓冲区大小、启用TCP_NODELAY选项(禁用Nagle算法)等方法可以改善网络传输效率,减少延迟。 2. 压缩:启用Redis的压缩功能,如LZF或Snappy,可以减小数据在网络中的传输体积,但会增加CPU...
这个程序的主要目标是检测网络上指定主机的开放端口,这在网络安全分析、系统调试和渗透测试中非常常见。 首先,我们需要理解TCP端口扫描的基本原理。TCP(传输控制协议)是互联网协议栈中的关键部分,它为两台...