TCP 首部格式如下:
网络层 IP 首部中的目的 IP 地址是怎么获取的?_协议栈
可以看到 TCP 首部里面是没有 IP 地址相关的字段的。那么当数据包经过网络层的时候,网络层加一个 IP 首部,这个首部中的 IP 地址是从哪来的呢?

答案:
通过 ​​​http://www.baidu.com​​​ 访问一个域名时,首先通过 DNS 获取到 IP ,之后就可以把 HTTP 的传输工作交给操作系统中的协议栈。应用程序(浏览器)通过调用 Socket 库,来委托协议栈工作。Socket 中会用到这个 IP 来与服务器建立 TCP 连接(因为建立连接,肯定得知道服务器的位置)。 网络层中的 IP 可以通过socket中获得。具体的细节请移步看这篇:​TCP Socket 编程原理详解 - 拾月凄辰

网络层 IP 首部中的目的 IP 地址是怎么获取的?_首部_02

网络层 IP 首部中的目的 IP 地址是怎么获取的?_协议栈_03

参考文章:​​《图解网络v3.0》-小林coding​