我正在玩Wireshark来调试我正在处理的一些物联网家庭自动化项目。我想我会从更多地了解HTTP和TCP/IP如何实际工作中受益。我发现的大多数解释都将HTTP描述为“骑在TCP/IP之上”,但我更具体地询问实际发送的内容。TCP/IP和HTTP如何协同工作?
这是我拍摄的客户机/服务器交互的例子:
Client: [SYN]
Server: [SYN, ACK]
Client: [ACK]
如果我到目前为止明白,他们现在已经成功地建立TCP连接。虽然,下一次捕获显示我
Client: POST /whatever
Server: 200 OK
好吧,现在我迷路了。检查该捕获表明我在一个帧中都有以太网,IP,TCP和HTTP层。它是否真的很简单,客户端在TCP数据包结束后添加一堆文本,并将这些额外的字节喷到路由器上?据推测,这可以解析TCP/IP并相应地转发它?这是我混乱的根源。 “乘坐在最上面”是否意味着(在物理意义上)HTTP只是在TCP数据包之后在同一帧中发送的一系列字节?在这种情况下,HTTP是否被认为是TCP/IP的有效载荷?
,当然还有完成
Server: [FIN, ACK]
Client: [ACK]
Client: [FIN, ACK]
Server: [ACK]
//In this case the server terminates the connection.
编辑:下方的评论者提出了一个问题,这使得我感觉好像我一直没对我要求什么,我很清楚。假设我可以站在我的客户端和服务器之间(或者在我的客户端和路由器之间以及路由器和服务器之间再次站立)。当人们不得不通过物理介质物理地发送原始数据(校验和,纠错码等)时,忽略考虑的因素,实际流量在时间方面会是什么样子?我会看到以太网层的字节,然后是ip层,tcp,http等字节吗?
HTTP只是TCP的数据,但我不知道你为什么一直说'*在TCP数据包之后'。通过TCP发送的数据通过* TCP数据包发送*。 – EJP
我的意思是说,在某些时候,我的客户端(传感器)只是通过无线方式向路由器发送一个字节流。路由器解释这些脚本并与他们做一些事(将它们转发给服务器)。该字节流可以用一些有用的方式解释。如果您要从传感器的天线发送出一个字节的字节流,它会看起来像[以太网] [IP] [TCP] [HTTP]吗?(当然,除非我认为是很多纠错码,校验和等)。 – brenzo
如果您从天线发送信息,它将是Wi-Fi,帧将是Wi-Fi帧,而不是以太网帧。 Wi-Fi和以太网是两种完全不同的数据链路协议。 –