共计 2176 个字符,预计需要花费 6 分钟才能阅读完成。
当你停下来劳动的时候别忘了他人还在奔跑
计算机之间是如何通信的?
晚期:联机
以太网:局域网与交换机
IP 地址和 IP 协定
- 规定网络地址的协定叫 ip 协定,它定义的地址称之为 ip 地址,宽泛采纳的 v4 版本即 ipv4,它规定网络地址由 32 位 2 进制示意;
- IP 地址就像是咱们的家庭住址一样,如果你要写信给一个人,你就要晓得他(她)的地址,这样邮递员能力把信送到;
- 范畴 0.0.0.0-255.255.255.255;
- 一个 ip 地址通常写成四段十进制数,例:192.168.1.1
IP 地址划分类
其中 A、B、C3 类(如下表格)由 InternetNIC 在寰球范畴内统一分配,D、E 类为非凡地址。
分类 | IP 地址范畴 | 公有 IP 地址范畴 |
---|---|---|
A 类 | 1.0.0.0~127.255.255.254 | 10.0.0.0–10.255.255.255 |
B 类 | 128.0.0.1~191.255.255.254 | 172.16.0.0–172.31.255.255 |
C 类 | 192.0.0.1~223.255.255.254 | 192.168.0.0–192.168.255.255 |
然而随着 Internet 的飞速发展,这种划分计划的局限性很快显现出来,大多数组织都申请 B 类网络地址, 导致 B 类地址很快就调配完了,而 A 类却节约了大量地址。
针对这种状况提出了新的划分计划, 称为 CIDR(Classless Interdomain Routing)
域名
只管 ==IP 地址 == 可能惟一地标记网络上的计算机,但 IP 地址是一长串数字,不直观,而且用户记忆非常不不便,于是人们又创造了另一套字符型的地址计划,即所谓的域名地址。IP 地址和域名是一一对应的,这份域名地址的信息寄存在一个叫域名服务器 (DNS,Domain name server) 的主机内,使用者只需理解易记的域名地址,其对应转换工作就留给了域名服务器。域名服务器就是提供 IP 地址和域名之间的转换服务的服务器。
一个 IP 地址能够对应多个域名,一个域名只能对应一个 IP 地址。
例如当用户在浏览器输出域名时,浏览器首先申请 DNS 服务器,将域名转换为 IP 地址,而后将转换后的 IP 地址反馈给浏览器,而后再进行理论的数据传输。
个别状况 DNS 服务器失常运行的时候,咱们用域名或者 IP 地址都能连贯到网络中的设施,然而 DNS 服务器挂了的时候,你就会发现只能应用 IP 地址来拜访该设施了,所以 IP 地址其实比域名更加的通用。
端口
如果把 IP 地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,然而一个 IP 地址的端口能够有 65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范畴是从 0 到 65535(2^16-1)。
- 同一个计算机中每个程序对应惟一的端口,这样一个计算机上就能够通过端口辨别发送给每个端口的数据了,换句话说,也就是一个计算机上能够并发运行多个网络程序,而不会相互之间产生烦扰。在硬件上规定,端口的号码必须位于 0-65535 之间,每个端口惟一的对应一个网络程序,一个网络程序能够应用多个端口。
- 一个网络程序运行在一台计算上时,不论是客户端还是服务器,都是至多占用一个端口进行网络通讯。在接收数据时,首先发送给对应的计算机,而后计算机依据端口把数据转发给对应的程序。
网络通讯
网络通讯基于“申请 - 响应”模型。
- 在网络通讯中,第一次被动发动通信的程序被称作客户端 (Client) 程序,简称客户端,而在第一次通信中期待连贯的程序被称作服务器端 (Server) 程序,简称服务器。
- 一旦通信建设,则客户端和服务器端齐全一样,没有实质的区别。
- 其实很容易就了解客户端和服务器端的,QQ,咱们用的腾讯的,在咱们这里就是客户端程序,而服务器端程序在腾讯那边,为大量的 QQ 用户服务,这种网络编程构造也成为客户端 / 服务器构造,C/ S 构造。
- 切实运行很多程序时,没有必要应用专用的客户端,而须要应用通用的客户端,例如浏览器,应用浏览器作为客户端的构造被称作浏览器 / 服务器构造,也叫做 Browser/Server 构造,简称为 B/S 构造。
协定
网络协议为计算机网络中进行数据交换而建设的规定、规范或约定的汇合。
网络编程就是运行在不同计算机中两个程序之间的数据交换。在理论进行数据交换时,为了让接收端了解该数据,计算机比拟笨,什么都不懂的,那么就须要规定该数据的格局,这个数据的格局就是协定。
在理论的网络程序编程中,最麻烦的内容不是数据的发送和接管,因为这个性能在简直所有的程序语言中都提供了封装好的 API 进行调用,最麻烦的内容就是协定的设计以及协定的生产和解析,这个才是网络编程中最外围的内容。
通信形式
在现有的网络中,网络通讯的形式次要有两种:
- TCP(传输控制协议)形式
- UDP(用户数据报协定)形式
在网络通讯中,TCP 形式就相似于拨打电话,应用该种形式进行网络通讯时,须要建设专门的虚构连贯,而后进行牢靠的数据传输,如果数据发送失败,则客户端会主动重发该数据;而 UDP 形式就相似于发送短信,应用这种形式进行网络通讯时,不须要建设专门的虚构连贯,传输也不是很牢靠,如果发送失败则客户端无奈取得。
两者区别:
- 重要数据应用 TCP 形式进行传输;
- 大量的非核心数据应用 UDP 形式进行传输;
- 因为 TCP 形式须要建设专用的虚构连贯以及确认传输是否正确,所以应用 TCP 形式的速度略微慢一些,而且传输时产生的数据量要比 UDP 略微大一些。