网络是什么
相关资料
一个非常好的课程视频:韩立刚计算机网络(老师讲的非常好!如果你想全面系统的了解计算机网络通信,推荐推荐!)
书籍:《网络是怎样连接的》
(写的也不是很清晰,相对而言可以看看)
第一章:浏览器
1.我需要访问一个网址。
- 那么我的电脑即客户端,先得表达出我的意愿。
- 当我向浏览器输入网址时,故事开始了。浏览器相当于我的秘书,我是老板。
- 我输入网址,个人秘书浏览器开始工作。首先生成我的需求(老板要浏览哪个网站)
- 然后浏览器要去找网站的地址(即IP地址),相当于现实中的对方公司地址
- 找到 网站地址之后把我的需求告诉对方————我们老板要看你们家网站的信息。(浏览器生成HTTP请求消息,委托操作系统 (电脑)发送消息,操作系统调用网络组建和Socket查地址把请求发送出去)
可观文章【打开一个网页背后都发生了什么?】
2. 具体分析
我(电脑
)要拜访我的一个朋友(百度
)
但是我不知朋友家的地址(IP)
我就去警察局查(域名管理
)
警察查到了告诉我
我去找我的朋友(访问百度)
路程太遥远,中转了好几次(路由器
)
2.1 生成请求消息——web浏览器现身
我们在网址栏输入的 www.baidu.com 这类网址,就属于URL(统一资源定位符,理解成坐标)的一种。当我们在网址栏输入搜索时,此时浏览器:
1. 解析你输入的位置,找到“http”——用什么协议,即规则。以及“baidu.com”——确定访问的位置
2. 生成请求的消息:用什么方法(获取文本还是表单的协议)要做什么(要文本、要图片?)
3. 查(IP)地址,你要发给谁?
2.2 IP地址查询——DNS上场
地址:
IP地址,相当于你的地址数字编号。(你的大名)
域名:方便人去记忆的名字,baidu.com这类(你的小名)
发地址之前必须知道对方的地址是多少。而人性化设置的域名,并不能高效查找地址。这里使用IP地址
1. 电脑里面内置了DNS解析器(相当于本地邮局查邮政编码)
2. DNS根据某种协议(类似于http)向DNS服务器(类似于各地仓库调货机制,谁有?)查询IP
3. 电脑里面内置了最近的DNS服务器的IP地址,问 域名xxx 的 IP地址 是多少?请告诉我。
4. 服务器查表得知IP地址。(常用的可以自己也缓存一份,并且定期更新,提高效率)
2.3 发送消息——Socket开工
**Socket库相当与网络工程承建队。专门负责建立临时通讯传输公路。**
1. 我这边先创建套接字(桥梁这头开工),而服务端的套接字是在固定的端口(一直都存在,等待被连接)
2. 连接桥梁(我把我的地址告诉对方:IP、端口、描述符即本套接字即独一无二的标识)
3. 传输数据,完工断开。
2.4 个人疑问
1. DNS服务器在哪?为什么可以内置在电脑里面,地址不会变吗?
答:可观文章【[浅谈dns域名解析过程](https://zhuanlan.zhihu.com/p/58108010)】
相当于有13个根域名服务器(IP,不是只有13台)根域名服务器的IP地址永远不变。电脑里面的是解析器,
我们能达的第一个服务器是本地DNS服务器(IP在电脑设置了)。本地DNS一般是指你电脑上网时IPv4
或者IPv6设置中填写的那个DNS,可以自己指定,或者是DHCP自动分配的。如果你的电脑是直连运营
商网络,一般默认设置情况下DNS为DHCP分配到的运营商的服务器地址。
2. 谁在统管网络?(就像类似于我们国家,到底谁在真正决定我们国家的那些决策?)
网络是所有计算机服务器互联形成的东西。只是一个概念。同一交换机下的两台电脑可以相互访问,这就是
一个基本的网络,我们的网络不过是更多的交换机串联而成。一个又一个局域网,经过运营商(移动联通电信)
的拼接,构成了国内互联网,不同国家网络再拼接,构成了我们的互联网。网络运营商的作用类似于修建网络高速公路(骨干网),
把所有局域网连接在一起。运营商负责架设光纤和骨干网来完成局域网出口数据至运营商机房的数据传输,
再由运营商机房中心的设备完成对城域网数据的相互交换,由运营商在机房内部完成对各局域网各来至其它
外省运营商数据的处理及交换。 从而构架起了中国国内的网络数据传输
3. 端口号不会不够用吗?
端口号就是具有网络功能的应用软件的标识号(相当于电脑通信时的该进程的门牌号),
0-1023是公认端口号,即已经公认 定义或为将要公认定义的软件保留的,而1024-65535(2^16)
是并没有公共定义的端口号,用户可以自己定义这些端口的作用。
4. 数据的传输如何做到这么快?
远距离用光缆传输(光纤通信),传输的是光。所以快。只是通信过程中间会经过很多路由器,
或者叫做节点。这些点会少许减缓传输速度,因为大家的通信是建立在协议上的。最终来说,
一个网络报文从一点通过网络传输至另一点,大约需要几毫秒至几千毫秒不等。
第二章:协议栈、网卡
1. 第一章讲到发送消息,那么具体是如何发送的呢?
- 自顶向下依次是应用程序,里面包括Socket库、DNS可以解析 IP地址。
- 往下就是操作系统的范围:协议栈,里面规定了一系列的发送接收的方式、规则,数据该如何拆分、打包,它们是规则的制定者。
- 再往下就是驱动程序,需要驱动底层的硬件开工。
- 最底层的苦力就是硬件网卡,它们负责了具体的数据收发。
2. 引申到现实生活中,具体的一项工作的执行,或许辛苦但不难。难的是idea
,怎么做?
TCP/IP协议,即是一个规则,规定怎么做。
规定了一系列的how,考虑到各种情况,发送中断、数据丢失、数据冲突阻塞、数据安全等等。。。具体由很多执行细节,但是我觉得并不需要具体了解那么清楚,一方面会忘记,另一方面太抽象————大概就是按照某种规定,将数据打包发送。实现数据的传输和消息的发送。 规则是 TCP/IP协议栈定,执行由底层的硬件——网卡负责,网卡将信息转换成电信号(通信原理)。
三、第三章:确定发送路径————集线器、交换机、路由器
- 集线器:将客户端的请求广播出去(类似于电磁波无线通信)
- 路由器:按IP找路线,相当于确定快递运送下一站走哪最好(路由:也就是寻找数据包从发送方到接收方的路径)
- 交换机:IP地址确定局域网,MAC地址确定局域网中的具体设备。接收过程,当有发给本地局域网内一台主机的数据包时, 换机接收下来,然后把数据包中的IP地址按照“表”中的对应关系映射成MAC地址,转发到对应的MAC地址的主机上