Chinaunix

标题: TCP和UDP套接字问题 [打印本页]

作者: aijoex    时间: 2009-06-23 19:03
标题: TCP和UDP套接字问题
今天看书看到套接字部分,始终没有理解。

书上写道:
接收主机的传输层实际上并没有直接将数据交付给进程,而是通过一个中间套接字来传递数据。套接字是进程和传输层之间的“门户”,由于一台主机上有多个进程在运行,也就有多个套接字。这些套接字都应该有唯一的标示符。

主机上的每个套接字都被分配一个端口号,当传输层报文段到达主机时,传输层通过检查报文段头部的目的端口号字段,定位到相应的套接字,然后将数据通过该套接字交付给相应进程。

一个UDP套接字是由一个包含目的ip地址和目的端口号的二元组来标识的。如果两个UDP报文有不同的源IP地址或者源端口号,只要他们具有相同的目的IP地址和目的端口号,就会被定向到同一个套接字,数据被交给同一进程。

一个TCP套接字是由一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识的。与UDP不同的是,即使两个TCP报文段的目的IP地址和目的端口号相同,只有他们的源IP地址和源端口号不同的话,他们将被定向到不同的套接字。


--------------------------------

我的问题是,为什么UDP使用二元组来标识,而TCP使用四元组来标识? 这个对使用TCP服务的web应用 和使用UDP服务的DNS等 有什么影响呢? 谢谢。

[ 本帖最后由 aijoex 于 2009-6-23 19:15 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2