当使用Java程序进行通信时,HTTP、TCP数据包在哪里创建?

当使用Java程序进行通信时,HTTP、TCP数据包在哪里创建?,java,http,tcp,network-programming,tcp-ip,Java,Http,Tcp,Network Programming,Tcp Ip,当我编写一个与HTTP端点/服务器对话的Java程序时,理想情况下,我会使用某个库使用该库提供的类创建HTTP请求并进行调用 我试图找出网络堆栈中每一步的数据包创建的确切位置?当我使用这些HTTP库时,这些库是否有HTTP数据包创建句柄?是他们把所有的HTTP头信息放在一起,附加数据并创建数据包的吗 那么TCP数据包在哪里组装?它是在内核级别完成的吗?创建的HTTP数据包是否由jvm提交给内核网络模块,内核是否用TCP信息等包装数据包 我正试图画出一幅清晰的图画,描述每一件事情发生的地方,这样我

当我编写一个与HTTP端点/服务器对话的Java程序时,理想情况下,我会使用某个库使用该库提供的类创建HTTP请求并进行调用

我试图找出网络堆栈中每一步的数据包创建的确切位置?当我使用这些HTTP库时,这些库是否有HTTP数据包创建句柄?是他们把所有的HTTP头信息放在一起,附加数据并创建数据包的吗

那么TCP数据包在哪里组装?它是在内核级别完成的吗?创建的HTTP数据包是否由jvm提交给内核网络模块,内核是否用TCP信息等包装数据包

我正试图画出一幅清晰的图画,描述每一件事情发生的地方,这样我就可以弄清楚我到底想把我的一个项目想法放到哪里去

谢谢你
沙比尔

当我使用这些HTTP库时,这些库是否有HTTP数据包创建句柄

没有HTTP数据包这样的东西。有HTTP请求和响应。见下文

是他们把所有HTTP头信息放在一起,附加数据并创建数据包的吗

库创建标题。应用程序提供数据

那么TCP数据包在哪里组装

没有TCP数据包这样的东西。有TCP段和IP数据包(以及以太网帧等)。见下文

它是在内核级别完成的吗

创建的HTTP数据包是否由JVM提交给内核网络模块

基本上是的

内核用TCP信息包装数据包,等等


对。具体来说,网络堆栈的TCP层提供TCP头和段ISDI,IP层提供IP头和打包等。

谢谢您,请原谅我在网络堆栈的所有段中使用header这个词。您没有这样做。您对所有数据层都使用了“packet”一词。