之前我们通过学习 数据链路层 和 网络层 知道了一个计算机有两个地址:MAC地址和IP地址,有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。
现在面临的问题是,同一台主机上有许多程序都需要用到网络。比如,你一边浏览网页,一边与我QQ聊天。当一个数据包从互联网上发到你电脑的时候,它怎么知道,这是表示网页的内容,还是表示聊天的内容?
也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。是浏览器呢还是QQ?这个参数就叫做”端口”(PORT),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口(比如浏览器就监听80端口),所以不同的程序就能取到自己所需要的数据。
“端口”是0到65535之间的一个整数,正好16个二进制位。不管是浏览网页还是QQ聊天,应用程序会随机选用一个本地端口,然后与服务器的相应端口联系。
“传输层”的功能,就是建立”端口到端口”的通信(PORT)。相比之下,”网络层”的功能是建立”主机到主机”的通信(IP)