网络协议如何理解,有何作用?
把网络协议想象成人与人之间的礼仪行为,不同的场合有不同的礼仪行为,人是实施不同礼仪行为的主体。同样,网络设备是实施网络协议的主体,网络设备通过运行网络协议与其他的网络设备进行交流。同样的道理,你的电脑想要与网络设备交流,也要与网络设备一样运行网络协议,网络协议也是一个软件,是以系统组件的方式安装在你的电脑的操作系统里的。想象一下,你想在你的电脑上通过QQ与朋友聊天的前提是不是你的电脑和朋友的电脑上都安装有QQ这个软件?我一直觉得对于计算机网络初学者来说,知道“为什么这么做”比“知道怎么做”更重要,虽然经历知道“为什么这么做?”的过程很痛苦,但一旦过了这个阶段,“知道怎么做”也就水到渠成了。但是对于初学者来说,真没必要那么深入地学习网络协议的细节,你只需要理解常见协议(例如HTTP、FTP、DHCP、DNS、ARP等常见协议)的工作过程,你理解了这些协议,理解其他的协议就是依葫芦画瓢,虽然计算机网络很讲究知识的积累,但如果你一开始把太多的精力放在了解细节上就会陷进只见树木不进森林的境地。 例如,数据包的结构,浏览一下各字段的作用就可以了,能记住就记住,记不住也没关系,你只需要先重点理解ip头部里的目的地址、源地址和tcp头部里的目的端口号、源端口号。 在日常生活中,我们要传递信息,以前最常用的手段是邮寄信件,想象一下你写信寄信的过程,写信产生数据,寄信传递数据,标准的信件格式是要在信封上写“收信人地址”和“寄信人地址”(由此引入IP地址),“收信人地址”对应数据包里IP头部中的“目的ip地址”,“寄信人地址”对应数据包里IP头部中的“源ip地址”,写上寄信、收信两个地址就可以保证信件可以邮寄到目的地了。 但信件邮寄到目的地址后由谁来收?从上面这封信的收件人地址检索到这个地址是“某公司”的,某公司里可能住着几万人,那你这封信是邮寄给居住某公司里的那个人的?收件人不明确,邮局就算帮你把信件送到这个地址,也没办法帮你投递到具体的收信人。因此,我们邮件信件需要填写“收件人姓名”、“收件人地址”和“寄件人姓名”、“寄件人地址”的组合,这样才能保证信件能准确投递到具体的收件人手中。 所以我们要在信件上添加收信人姓名和寄信人姓名(由此引入端口号),这个时候收件人姓名就对应数据包里TCP协议头部中的目的端口号,寄信人姓名对应数据包里TCP协议头部中的源端口号。 |