我知道IP頭有源地址和目的地址。如果是這樣,那麼爲什麼我需要TCP源地址和目標地址? IP和TCP源和目標地址可以不同?或者TCP目的地址不是真正的目的地址。如果不是那麼爲什麼我需要TCP目的地址?爲什麼我需要TCP源和目標地址?
-1
A
回答
2
TCP地址被稱爲端口。見RFC 793, Transmission Control Protocol:
要允許許多進程的單個主機內同時使用TCP 通訊設施,將TCP提供了一組的每個主機內 地址或端口。與網絡 和來自互聯網通信層的主機地址連接,形成一個 套接字。一對插座唯一標識每個連接。那 是,一個套接字可以同時用於多個連接。
雖然第3層的IP地址會將數據包傳送到主機,但第4層的TCP地址會將數據段傳送到主機中的進程。
2
IP和TCP地址字段不重疊。
IP頭包含源和目標服務器的IP地址(例如,167.206.112.138是Optimum Online的DNS服務器的IP地址)。 IP地址允許您的路由器以及數據包路由上的所有中間路由器將您的數據包直接轉發到其目標服務器,或者轉發到另一個距離更近的路由器。一旦IP數據包到達其目標服務器,它必須被轉發到正在運行的服務(進程)。這就是目標端口進來的地方,這些信息在TCP頭部(以及UDP頭部)。因此,IP將使您從一臺機器轉到另一臺機器,並且TCP/IP和UDP/IP通過添加端口號讓您訪問特定服務或進程。
相關問題
- 1. 爲什麼我們需要和打印IP地址
- 2. 爲什麼sin6_family需要IPv6地址?
- 3. 爲什麼源地址在IP標頭中的目標地址之前?
- 4. iPhone開發的目標是什麼?爲什麼我需要不同的目標?
- 5. 爲什麼我們需要一個返回地址?
- 6. 爲什麼我們需要MAC地址來傳輸數據報?
- 7. 爲什麼我們需要在hdfs-site.xml中設置rpc地址
- 8. 爲什麼我們需要設置發佈地址[network.host]的值
- 9. 我爲什麼要使用TCP Client和TCP Listener?
- 10. 爲什麼我們需要fieldset標籤?
- 11. 爲什麼需要光標?
- 12. 爲什麼需要浮標?
- 13. 使用ruby packetfu發送原始TCP數據包 - 需要目標MAC地址?
- 14. 爲什麼我們需要BeginGetResponse和BeginRead?
- 15. 爲什麼我們需要Bower和Nuget?
- 16. 爲什麼我們需要ClassMethods和InstanceMethods?
- 17. 爲什麼我們需要目標C中的協議?
- 18. 爲什麼我需要「&」?
- 19. 爲什麼我需要android.permission.ACCESS_CHECKIN_PROPERTIES
- 20. 爲什麼我需要extern?
- 21. 爲什麼我需要MEX?
- 22. 爲什麼我不需要
- 23. 爲什麼我需要OleDbCommand.Prepare()?
- 24. 需要幫助獲取TCP端口號和IP地址在C
- 25. 將memcpy中的源地址和目標地址對齊
- 26. 爲什麼我會看到數據包的源和目標不是我的IP地址
- 27. 爲什麼我的python TCP服務器需要綁定到0.0.0.0而不是localhost或它的IP地址?
- 28. 什麼是網站地圖,爲什麼我需要它?
- 29. 爲什麼我們需要DTD和其他地方的「實體」
這是一個非常好的答案,特別是對於第一個答案。 (第一篇文章評論)它非常詳細,很容易閱讀。 –