网络协议序章
作者:谭炜
邮箱:1770997415@qq.com
浅谈对网络协议的理解
首先个人认为网络协议不是必要的,对于java开发者来说,因为我们始终是开发,开发在应用层,业务为核心,当然有是更加好的,看待问题比别人更加深层次一点,当然可能公司有需求以备不时之需。
客户端与服务器
首先字面上的意思就是客户与服务员,服务员是服务于客户的,比如客户要点5毛钱的鱼,服务员立马从厨房拿刀。
客户要点5毛钱的鱼->请求
服务员立马从厨房拿刀-> 响应
那么客户端与服务器就是如此,只不过是将人换成了电脑,跟客户与服务员的概念是一样的。
当然你也可以是服务员,服务员也可以是客户。
什么是协议?
就比如你去签订劳动协议,a公司的不交五险一金,a公司每天规定只是上8个小时,b公司又交五险一金,但是b公司想让你加班到什么时候就什么时候,那么这个合适吗?
无良公司到是老合适了,大家可能就不太爽了。
那么得需要制定劳动协议的统一,保护我们打工人,而现在国家统一了劳动协议。
那么网络协议也是一样的,计算机与计算机之间的一个通信协议,打个比方大家与外国人说话一般都会用英文,因为英文是国际统一的,与计算机之间的通信是一个道理,都统一语言。
网络的互联模型
主机a跟主机b发送消息 ,主机a的消息从应用层一直到物理层,然后主机b的接受主机a的消息从物理层到应用层。
那么这个该如何理解
很像生活中a对你说话说了一句意味深长的话,进了你的耳朵之后,然后经过你的大脑,你想了想明白原来a这么爱我,之后经过大脑包装,然后返回给a
那么为什么需要分这么多层?
从软件开发的角度出发
各层都是独立开的,可以多人同时开发,具备灵活性,出了问题可以只定位问题层,各个层都可以运用最合适的技术进行开发,当然也具备好维护好实现
如何发送给我指定的电脑
其实好比如你怎么讲话语传递给你指定的人,根据外貌声音长相,其实就是唯一的标识。
那么计算机中唯一的标识是什么呢?
根据ip地址找到电脑的mac地址然后传输被网卡接收,如果网卡发现数据中的mac地址是自己,那么就继续处理,如果不是那么就丢弃。
当然会有一个mac地址(网卡)的概念
比如你根据ip地址(相貌声音唯一标识)找到了这个人,你喊了它的名字(mac地址),别人也听见了但是你喊的不是它耳朵过滤掉了不会鸟你,而它听到了,那么就会回应你。
怎么获取对方mac地址?
也就是这么获取对方的姓名?当然是问
假设计算机a不知道计算机b的mac地址 那么就会发出广播 arp协议 针对于这个网段里面的
打个比方也就是说 你是公司新来的同事,那么自我介绍时你询问公司(网段)每一个人的名称,然后每一个人都给你回应,将相貌声音唯一标识(ip)跟mac地址(姓名)联系起来 记在大脑里
如果说别人的名字改了,你喊它不答应了,那么只能重新询问。
总结
计算机的知识是从生活中剥削出来了的,计算机是后有的,就像一个人的成就不会超过它的信念,如果想不通可以对比一下生活。