- 浏览: 1529267 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
一直以来人们总爱将TCP和IP合在一起来讲是因为它们之间的密切关所至。同时我们也知道IP工作於网路层而TCP则工作於传送层故此它们的封包格式却是不一样的。
TCP封包格式
下面就让我们看一看TCP封包的格式
Source Port (16) | Destination Port (16)
Sequence Number (32)
Acknowledgment Number (32)
Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)
Checksum (16) | Urgent Pointer (16)
Options (0 or more 32 bit words + padding)
DATA
...
今次我不再为每一个TCP封包部件撷取样板了只打算略略讨论一下它们的名称和定义
Source Port & Destination Port
如果我们将IP比喻成地址那麽Port可以说是门口了试想一下一座大楼有前门後门侧门送货的门出货的门倒垃圾的门扔死尸的门等等乱七八糟的门...... 那麽一个IP地址也有着好多个各种功能的port而每一个port都被不同的服务倾听着就好比看门人一样。下面是一些常用port和其对应的服务有兴趣的朋友可以在Linux的/etc/services这个档案找到它们
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
www 80/tcp http # WorldWideWeb HTTP
www 80/udp # HyperText Transfer Protocol
pop-3 110/tcp # POP version 3
pop-3 110/udp
其实port号码可以随您喜欢任意指定给哪些服务使用但为了避免“找错门口”的情形出现(除非您故意想躲起来)人们将一些比较常用的服务(Well known services)的port号码固定下来了。但是在TCP资料传送过程中可能同时要处理一个以上的封包程式也会建立多个port来避免突。在两台主机进行资料传送的时候来源地的port和目的地的port都必须让TCP知道才行。
Sequence Number
发送序号。当资料要从一台主机传送去另一台主机的时候发送端会为封包建立起一个初始号码然後按照所传送的位元组数依次的递增上去那麽下一个封包的序号就会使用递增之後的值来作为它的序号了。这样接收端就可以根据序号来检测资料是否接收完整了。
Acknowledgement Number
回应序号。当接收端接收到TCP封包之後通过检验确认之後然後会依照发送序号产生一个回应序号发出一个回应封包给发送端这样接收端就知道刚才的封包已经被成功接收到了。
可是如果由於网路状况或其它原因当封包的TTL值达到期限时接收端还没接收到回应序号就会重发该个被以为丢失了的封包。但如果刚好重发封包之後才接收到回应呢这时候接收端就会根据序号来判断该封包是否被重发送如果是的话很简单将之丢弃不做任何处理就是了。
Data Offset
这是用来记录标头固定长度用的和IP封包的IHL差不多如果options没设定的话其长度就是20byte用十六进位表示就是 0x14了。
Reserved
这是保留区间暂时还没被使用。
Contral Flag
控制标记。一个有六个它们分别是
Urgent data
当URG被设定为1的时候就表示这是一个携有紧急资料的封包。
Acknowledgment field significant
当ACK为1的时候表示此封包属於一个要回应的封包一般都会为1。
Push function
如果PSH为1的时候此封包所携带的资料就会被直接上递给上层的应用程式而无需经过TCP处理了。
Reset
如果RST为1的时候表示要求重新设定封包再重新传递。
Synchronize sequence number
如果SYN为1时表示要求双方进行同步沟通。
No more data fro sender (Finish)
如果封包的FIN为1的时候就表示传送结束然後双方发出结束回应进而正式终止一个TCP传送过程。
Window
我们都知道MS Windows是什麽东西但这里的Window却非作业系统的“视窗”哦我们称这里的视窗为“滑动视窗(Sliding Window)”。为什麽我们需要使用视窗呢
正如您刚才看到的TCP封包会通过SQN和ACK序号来确保传送的正确性但如果每一个封包都要等上一个封包的回应才被发送出去的话实在是太慢和难以接受的。这样我们可以利用Sliding Window在传送两端划分出一个缓围规定出可以一次性发送的最大封包数目
当TCP传送建立起来之後两端都会将window的设定值还原到初始值比方说每次传送3个封包。然後发送端就一次过发送三个封包出去然後视窗则会往後移动三个封包填补发送出去之封包的空缺。如果接收端够顺利也能一次处理接收下来的三个封包的话就会告诉发送端的window值为3但如果接收端太忙或是其它因素影响暂时只能处理两个封包那麽在视窗里面就剩下一个封包然後就会告诉发送端window值为2。这个时候发送端就只送出两个封包而视窗就会往後移动两个封包填补发送出去的空缺。您明白为什麽这个视窗会“滑动”了吧
Chechsum
当资料要传送出去的时候发送端会计算好封包资料大小然後得出这个检验值封包一起发送当接收端收到封包之後会再对资料大小进行计算看看是否和检验值一致如果结果不相称则被视为残缺封包会要求对方重发该个封包。
Urgent Pointer
还记得刚才讲到Control Flag的时候我们提到一个URG的标记吗如果URG被设定为一的时候这里就会指示出紧急资料所在位置。不过这种情形非常少见例如当资料流量超出频宽的时候系统要求网路主机暂缓发送资料所有主机收到这样的信息都需要优先处理。
Option
这个选项也比较少用。当那些需要使用同步动作的程式如Telnet要处理好终端的交互模式就会使用到option来指定资料封包的大小因为telnet使用的资料封包都很少但又需要即时回应。
Option的长度要麽是0要麽就是32bit的整倍数即使资料不足数也要使用标头中没有的资料来填够。
下面我们撷取一个TCP封包看看您能从其中解读出什麽意思
UDP还是TCP
在TCP/IP的网路IP封包会透过ICMP协定来检测对方的存在而确保最大可能性的正确传送。不过在传送层里面除了TCP这个协定之外我们还使用另一个传输协定就是UDP (User Datagram Protocol)他和TCP最大的分别是不侦测对方的存在就直接将资料送给对方而假设对方会自行接收。
这样对那些需要大楼资料存取而又不要求可靠传输的程式如声音传递可以省却双方的沟通和确认时间从而提高资料传输量。使用UDP的程式协定例如有DNSSNMPNFSBOOTP等等。
协定 优点 缺点
TCP 传送稳定资料传送成功率高。 速度比较慢。
UDP 传输量大迅速。 不稳定容易遗失资料。
发表评论
-
客户端用https连接服务器的一点心得
2016-05-11 17:13 541转自:http://dannyyuan.blog.51ct ... -
解决PKIX:unable to find valid certification path to requested target 的问题
2016-05-11 17:11 922转自:http://blog.csdn.net/ ... -
cookie的secure、httponly属性设置
2014-03-04 16:19 17205转载自:http://www.cnblogs ... -
框架注入漏洞
2014-02-27 16:21 73232 详细描述 攻击者有可能注入含有恶 ... -
链接注入漏洞
2014-02-27 16:20 18728详细描述 “链接注入”是修改站点内容的行为,其方式为将外 ... -
XSS跨站脚本攻击在Java开发中防范的方法
2014-02-27 16:14 4218详细描述 跨站脚本攻击(也称为XSS)指利用网站漏洞从用 ... -
XSS跨站脚本攻击在Java开发中防范的方法
2014-02-27 09:48 7801转自:http://hi.baidu.com/hkr_tam ... -
HTTP 1.1状态代码及其含义
2011-10-20 10:16 1482下表显示了常见 ... -
使用X.509数字证书加密解密实务(三)-- 使用RSA证书结合对称加密技术加密长数据
2010-03-03 17:00 2269上一章节讨论了如何 ... -
使用X.509数字证书加密解密实务(二)-- 使用RSA证书加密敏感数据
2010-03-03 16:52 2831源自:http://www.cnblogs.com/chnk ... -
使用X.509数字证书加密解密实务(一)-- 证书的获得和管理
2010-03-03 16:40 3293源自:http://www.cnblogs.com/chnki ... -
X.509 数字证书结构和实例
2010-03-03 16:36 2973源自:http://www.cnblogs.com/chnki ... -
CA基本常识:X.509标准
2010-03-03 16:21 4686原文连接: http://www.cnblogs.com ... -
安全认证相关文档
2010-03-02 15:59 1086PKCS#11 中文手册 -
openssl使用手册
2009-08-04 10:28 7417OpenSSL有两种运行模式 ... -
JA-SIG(CAS)学习笔记1
2009-07-15 01:16 1361实验步骤: STEP 1,搭 ... -
公钥系统_数字签名_数字证书工作原理入门 (转)
2009-02-24 07:27 2147公钥系统 / 数字签名 / 数字证书工作原理入 ... -
详解公钥、私钥、数字证书的概念
2009-02-05 15:59 3440http://pepa.iteye.com/blog/2509 ... -
CA系统、证书常识
2009-02-05 15:58 14961.什么是CA CA是Certi ... -
密钥库文件格式(Keystore)和证书文件格式(Certificate)
2009-02-05 15:56 3247密钥库文件格式【Keystore】 格式 : ...
相关推荐
2. **封包解析模块**:将捕获到的原始数据按照TCP或UDP的协议格式进行解析,提取出如源IP、目标IP、端口号、数据内容等关键信息。 3. **封包修改模块**:根据需求,对解析后的数据内容进行修改,可能包括替换特定...
TCP_UDP封包拦截接口\TCP通信.exe ...................\UDP通信.exe ...................\安装钩子DLL.exe ...................\mydll.dll ...................\mydll.e ...................\TCP通信.e .........
下面将详细讨论TCP协议、TCP类以及如何在编程中创建和发送TCP封包。 TCP是互联网协议套件(TCP/IP)的一部分,它提供了一种面向连接的、可靠的、基于字节流的通信服务。在TCP中,数据被分割成多个小的数据段(封包...
當遇到「發送端」狂送資料時,因為TCP不會一筆資料一筆資料封包傳送,因為太快了,TCP會先把全部的資料一起打包,做一個封包來傳送,這會造成「接收端」收到一個大封包,如果接放端不知道這是很多筆資料所包成的,必...
TCP_UDP封包拦截接口,拦截封包数据的程序源码
例如,TCP封包的拦截可以用于检测特定端口的通信,或者分析数据传输的速率和延迟;UDP封包的拦截则常用于监控多播和广播消息,以及实时应用如在线游戏或视频流。 封包拦截接口的工作原理通常是这样的:当数据包在...
例如,一个基本的TCP封包格式包括源端口、目标端口、序列号、确认号、数据偏移量、保留字段、控制标志、窗口大小、校验和以及紧急指针。其中,`DATA`字段是我们关注的重点,因为它是实际传输的信息。 在WPE教程中,...
为了解决这些问题,我们需要理解并实现TCP的封包和解包机制。 1. **粘包问题解决方案**: TCP的Nagle算法在一定程度上加剧了粘包现象,因为它会合并小的数据段以减少网络上的小包传输。为了解决这个问题,通常采用...
封包对比工具能够帮助我们深入探究这些细节,比如检查HTTP请求、TCP/IP头部信息、加密的SSL/TLS数据等。 天龙封包可能是指一个特定的封包分析或对比工具,或者是在某个游戏(如《天龙八部》)中的特定用语。由于...
它包含了数据、源地址、目的地址以及控制信息等,通过网络协议如TCP/IP进行传输。封包工具能够让我们看到这些封包的内容,帮助我们理解网络通信的过程。 2. **发送封包**: 这个功能允许用户模拟网络通信,向指定的...
本资源利用TCP/IP协议搭建了socket的客户端和服务端,自定义了一种数据包格式,在服务端和客户端之间进行传输,有详细的封装数据包和解封装数据包流程,工程是VS2012编译的,有需要的同学尽情下载。先启动服务端再...
介绍Linux防火墙的配置与使用。本章目标:学习完本章你将能够理解 IP 协议的工作原理熟练使用 iptables 来配置防火墙1. IP 协议介绍IP(Int
在TCP/IP协议栈中,封包分为多个层次,如链路层的Ethernet、网络层的IP、传输层的TCP/UDP等,每个层次都有自己的头部信息,用于指定目标地址、传输协议等。 2. 封包拦截 封包拦截通常是通过驱动程序或者中间件在...
在IT领域,网络通信是至关重要的部分,而封包抓取技术则是理解网络通信过程、调试网络应用或分析网络数据的关键工具。C++作为一种强大的编程语言,被广泛用于开发网络应用,包括网络封包的抓取和解析。本文将深入...
例如,如果我们想查看TCP封包的序列号: ```python for packet in packets: if packet.haslayer(TCP): tcp_layer = packet[TCP] print(f"Sequence Number: {tcp_layer.seq}") ``` 此外,`p1.py`可能是一个实现...