做百度移动端网站优化,公司法治企业建设,wordpress重装教程,永城网站建设网络早已成为我们日常生活的一部分#xff0c;经常使用互联网的人很难长时间内离开互联网。你是否好奇你的电脑仅仅插上一根网线#xff0c;你发给朋友的聊天信息就能准确无误的到达朋友的手机或者电脑上#xff0c;你是否好奇为何你仅仅在浏览器输入一个网址#xff0c;点… 网络早已成为我们日常生活的一部分经常使用互联网的人很难长时间内离开互联网。你是否好奇你的电脑仅仅插上一根网线你发给朋友的聊天信息就能准确无误的到达朋友的手机或者电脑上你是否好奇为何你仅仅在浏览器输入一个网址点击一下enter网页图片和视频就展现在你的眼前这一切的背后究竟是什么原理在网络编程的系列学习中我们将逐渐揭开网络神秘的面纱不仅要懂网络还知道如何编写网络程序 网络的起源 网络最初是美国军方用来通信的一种手段后来逐渐下放在民用市场被广泛使用一开始的网络是由美国政府掌管后来逐渐分配给各大运营商ISP来管理随着越来越多的人加入互联网互联网的规模也变得越来越大。网络的出现是一种必然的趋势随着人们逐渐依靠计算机来解决问题就暴露出很多问题 某人用计算机A得出计算结果要记下数据来到计算机B把A的数据结果输入进去然后再把计算机B的结果输入到计算机C中得出最终结果这个过程中虽然计算机解决了计算问题但是各个计算机之间相互独立还是很不方便 如果计算机A和计算机BC之间能够互相连接起来A计算完把结果传送给BB再传送给C这样不就不需要人跑来跑去如下图 要是此时计算机C想直接从A拿到数据直接在AC之间接线单这一个还好如果接入更多的计算机呢难不成每个计算机之间都接一条线吗成本太高了怎么更好的解决呢我们可以引入第四台计算机如下图 A把运算结果上传到服务器上B和C可以访问这个服务器获取A的数据并且以后再接入更多的计算机也不怕了这是服务器的用法之一现在的服务器有着更丰富的功能是撑起互联网大厦的支柱 那么计算机A该如何找到服务器又成了一个问题可以让A在这个局域网内进行广播当服务器收到了广播发现是在找自己于是应答建立A与服务器之间的通信这样做会带来一系列的问题。首先A是广播只要A发送消息那么局域网内的所以机器都能收到消息如果有非法计算机监听通信信息会很危险并且A发送消息时整个局域网的信道都被占用B和C都不能发送消息否则就会产生信息碰撞种种的不方便催生了交换机的诞生 交换机的原理是所有局域网内的主机都连接到交换机上当计算机A想要给服务器发送信息时只要发给交换机交换机会自动找到服务器把信息转交这样避免了信息泄露和碰撞 路由器又是个什么东西呢假设现在成都有一个局域网A上海有一个局域网B现在A和B想要进行通信两个局域网之间的互相连接就是靠路由器来实现的把一个局域网比作一个山村的话那么路由器就是离开这个山村去往外面世界唯一的通道世界上的各个路由器互相连接就构成了庞大的互联网世界 网络分层模型 上面仅仅是对互联网的一个简单描述如果仅仅是科普程度也差不多了但是作为程序编写人员我们对互联网的了解要更加深刻深入到具体的实现细节中那么首先得明白互联网的层次模型互联网共有两种层次模型一种是OSI模型一种是TCP/IP的模型 分层的目的是什么要知道在主机上随手点击一下的网络请求具体实现要经过很多层次假设你在使用浏览器输入网址后点击访问那么浏览器这个软件会将请求信息转交给OSOS会对转交信息进行一定层度的包装然后再转交给网卡网卡将请求信息转换成模拟或者波信号发送出去 在这个过程中浏览器软件负责请求网络通信OS负责将信息包装网卡负责传播信号任何一个环节出了问题就体现出分层解耦的作用了当浏览器请求出了问题并不会影响到OS和硬件每一层都有自己的工作要做当然刚学理解不了这些很正常随着对每一个层次的深入学习后再次看这个分层模型就能理解为何要这么做 实际上我们并不使用OSI模型因为在实际的程序编写上发现应用层表示层会话层之间的联系很紧密即耦合度高不便于分开处理因此TCP模型将这三个模型压缩成一个应用层我么实际上使用的就是TCP模型因为我们主要负责软件方面的因此最底层的硬件部分我们并不怎么关心所以TCP模型又可以看作是只有四层 网络的信息传送过程 网络信息传送就是指一个请求信息是如何通过层次模型层层包装最后传输给目的主机的这个过程用语言描述并不直观大家可以观看相关的视频来理解例如在b站上搜计算机网络就可以查看到相关的内容建议大家去看看找不到可以联系笔者 协议 上面那张分层图每一个分层都有对应的协议那么什么是协议呢大家都是明白协议的意思的只是不好口述出来协议说简单点就是通信双方互相约定以某一种方式进行通信以日常生活中的快递公司为例 常见的快递公司有邮政京东顺丰等当我们在网上购物商家会选择一个快递公司将货物递送出去那么快递小哥如何知道要送达到哪里呢快递公司会专门定制它们公司的快递送达协议快递小哥只要根据这个协议执行那么就能够把快递送给用户这个快递协议具体就是体现在快递单上快递单记录了该快递公司名称用户地址用户姓名用户号码等等必要信息所以快递协议是体现在快递单上的 同样的我们后面会学习TCP协议IP协议等然后你会发现这些协议都有一个报头TCP报头IP报头等和快递单是类似的协议的内容体现在报头上的 上图就是IP协议的报头每个字段的具体内容大家可以搜索查看我们这里看看这个报头内部有一个协议字段这个是什么意思这个字段是记录的是当前信息的上一个协议用的是哪个是TCP还是UDP还是OSPF协议等等 为什么当前协议还有记录上一层使用的是什么协议呢如果你看了网络信息传送过程视频你应该能想明白当目的主机收到分组信息会逐层向上传递传到IP层时它的上层有很多协议有udp有tcp那么该传给谁呢这个时候就提现到这个协议字段的作用了协议字段里记录的是哪一个协议就传给哪一个协议 以太网名称由来 平时主机上连接的网线而形成的局域网络被称为以太网那么为什么叫以太网这个奇怪的名字呢早期的物理学家发现声音的传播是依靠介质的在真空状态下无法传播声音于是就推测光的传播肯定也是要依靠介质的于是把光的传播所依靠的介质称为以太并做了大量实验想找到这种介质。后来有人科学的证明了光的传播是不需要介质的前面的实验就成了笑谈网络祖师爷起这个名字是对物理界的一种调侃或致敬不必奇怪大佬嘛能成为大佬基本很多圈子都有身影 IP和MAC地址 在网络上如何查找到具体的一台联网主机呢这就靠IP地址了IP地址就相当于主机的门牌号唯一的标识网络上的一台主机 你可能会疑惑32位的整数2的32次方也不过才40亿多怎么能满足全球50多亿的上网需求呢我们将在后面解释这部分内容不过未来的趋势是使用IPv6协议共有128位几乎可以给地球每一个沙子都分配一个ip地址不过现在IPv6的普及还需要一段时间 MAC地址唯一的标识了一台网络硬件设备MAC地址有48位 MAC地址一般是写死到网络硬件设备上的 MAC地址能标识唯一IP地址也能标识唯一那么为何还要IP地址呢直接统一用MAC地址不就好了有时候一台主机不止有一个网卡如果有多个网卡那么就会有多个MAC地址。在网络信息传输过程中IP地址是不变的 一旦确定了目的主机的IP地址就不会更改MAC地址是动态变化的每经过一个新的路由就要更新一跳的MAC地址MAC地址常用来局域网内搜寻某个主机随着对网络学的加深大家会对这两个地址有更加深刻的理解