我在面向连接的TCP和无连接的UDP之间感到困惑所以请有人澄清这一点.
两台计算机之间的每次通信,无论其TCP还是UDP都是通过数据包.两个对等体之间没有硬连线,无论是TCP还是UDP.那么为什么TCP被称为面向连接只是因为它在没有收到确认的情况下重新发送数据包或者在数据包内嵌入序列号?
什么是连接的实际含义?两个通信对等体之间的路径上的路由器是否已预订一段时间来接受该特定连接的数据包?
编辑
你什么时候说两点建立联系?
谢谢
连接只是两个端点之间的虚拟通路.使用TCP,您可以打开连接并开始发送数据.它保证按顺序到达另一端(假设网络没有失败).然后关闭连接.
在连接期间,两端相互通信,确认收到数据包,以确保没有丢失或重复.
使用UDP,它略有不同.你基本上只是用一个目的地址抛出一个包,它可能会或可能不会到达 - 这是UDP中的U(不可靠).
您不应该认为TCP的连接会导致所有采用相同物理路径的数据包.如有必要,它们将在问题区域周围布线.
对于您的更新,在发生以下情况后建立连接:
一个SYN
数据包已经被从发起方发送的.
响应者已发送回SYN-ACK
数据包.
发起者已经发回了另一个ACK
数据包.
这是TCP的会话建立协议.数据包本身是正常数据包,标题中设置了SYN
和/或ACK
标志.
关于TCP(以及其他协议)的开创性书籍是史蒂文斯,如果你想要一个死树版本,请给自己一个副本 - 我已经有这么多年了.或者,当然,还有维基百科的东西.对于偶然的询问者来说,这两者都非常重要,但是如果你有兴趣深入了解它是非常值得的 - 我自己喜欢这本书,它在我的书架上与Knuth排在一起.
是的,TCP嵌入了序列号,并进行了大量其他处理,以"模拟"通过面向数据包的无连接网络上的专用点对点连接.
UDP没有; 每个数据报完全独立于任何其他数据报传递.