标签:《计算机网络教程:自顶向下方法》(2012)作者:Behrouz A.Forouzan, 读书笔记
P29 套接字地址
为什么要把套接字地址单独拿出来写篇笔记?因为我个人觉得某个问题会比较有意思,这个问题会在稍后提到。
我们需要以TCP/IP协议簇的标识符来定义套接字地址。
为啥非得是它们的标识符?仔细想想,物理层没地址,数据链路层的标识符是MAC地址;网络层的是IP地址;传输层的是端口。而且现在我们常用的也是用IP地址+端口的形式去访问后端也好,传数据也好,总之就是用于数据的交换。
- 这里有个很有意思的问题:应用层的地址是什么?如果应用层之间建立连接,那么这两个应用层通过什么地址来传输数据呢?
- 网页地址(www.baidu.com),邮箱地址(abc@example.com)这些都是具体地址(Specific Address)。应用层则是通过这些具体地址来传输数据的。
- 至于为啥不用具体地址作为标识符,因为像网页地址其实就是协议+主机名+主机路径,主机名最后还是映射到一个IP地址上,邮箱地址也是通过DNS去查找对应的IP地址。那不如一开始就用IP地址+端口。
这意味着套接字地址应该是一个IP地址和一个端口号的组合。
由于套接字定义了通信终端,我们可以说套接字是由一对套接字地址标识的,这一对套接字地址分别是本地套接字地址和远程套接字地址。
说白了,套接字(接口)需要用套接字地址来表明谁是接收方,谁是发送方。再通过这个接口将应用层的数据将传给传输层,最后再一路走到目的主机的传输层。目的主机的应用层再将这个信息通过套接字(接口)读取出来。