【问题标题】:tcp: where is the 3way handshake implementedtcp:3way 握手在哪里实现
【发布时间】:2012-04-06 06:01:23
【问题描述】:

谁实现了3way握手过程(syn - syn+ack - ack),操作系统(内核)自动,应用程序的开发者?

在 web 服务器 web 浏览器环境中,apache 是否被编程为在到达时发送 SYN+ACK 包或 SYN 包?我想不通,因为我知道如何使用 scapy 发送原始数据包,但我不知道谁管理这个......

谢谢

【问题讨论】:

    标签: tcp linux-kernel kernel


    【解决方案1】:

    谁实现了 3way 握手过程(syn - syn+ack - ack), 操作系统(内核)自动,应用程序的开发者?

    当然不是应用程序。它已经完成,但是你的操作系统的 TCP/IP 堆栈部分的实现

    在web服务器web浏览器环境中,是apache编程的 在到达或 SYN 数据包时发送 SYN+ACK 数据包?

    应用服务器使用底层操作系统设施进行网络通信。您描述的部分完全由操作系统的 TCP/IP 实现来完成

    我知道如何发送原始数据包

    是的,但是在发送原始数据包时,您只能“形成”帧中通常不“可见”/不可访问的数据。您无需定义流程或进行任何其他控制。

    【讨论】:

    • 开发者能否在他们的应用中实现自己的 TCP 机制?
    • 那么 python-scapy 是如何构造一个数据包并将其与所有字段值之王一起发送的......?这不使用底层操作系统设施吗?
    • 从文档来看,python-scapy 与 Linux 内核交互,可能使用 libpcap 等,类似于 Wireshark 的工作方式。确实存在较低级别的 API(即发送原始数据包),但有时(?)它们需要 root 权限。
    • @pufos:我不确定你在这里真正问的是什么。一般来说,最低级别的网络应用程序使用使用操作系统的 TCP 堆栈实现的套接字。这部分对程序员是透明的。有应用程序虽然可以“操纵” TCP 以例如攻击网络或服务器。这些在原始级别上运行并且可以发送例如多个 SYN 等来淹没服务器。还有其他有助于监控网络流量的方法。但这就是你要找的吗?因为我认为你想问一般的网络编程问题。
    • @pufos:它使用与 TCP/UDP 正交的原始套接字
    猜你喜欢
    • 2014-12-07
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多