Linux网络基础IP、端口、协议

我们两清 提交于 2020-03-01 06:10:55

网络发展史

独立模式:计算机之间相互独立。
网络互联: 多台计算机连接在一起,完成数据共享。
局域网LAN:计算机数量更多了, 通过交换机和路由器连接在一起。
广域网WAN:将远隔千里的计算机都连在一起。
所谓 “局域网” 和 “广域网” 只是一个相对的概念。

IP

IP地址:网络中一个主机的编号。唯一标识一台主机。
类型:uint32_t (无符号4个字节的一个数字)
IP地址的数量是有限的。不到43亿。

多个主机使用同一个IP地址传输数据,在每一个网关设备(路由器)上进行地址转换,路由器使用自己的地址将数据发送出去,别人就会将数据回复到路由器上,然后路由器再回复给主机。
因此在每一个网关设备上的网络地址转换之后,才能实现共用IP地址通信的操作。
网络地址转换的技术就叫做NAT技术
在当前IP地址不够用的情况下,实现大众互联网络通信就是通过IP地址动态分配DHCP技术以及地址转换技术实现。

IPV4:DHCP-动态地址分配。谁上网给谁分配IP地址,不上网就不分配。
IPV6:一个IP地址有128位。并不向前兼容IPV4,因此IPV6推广非常缓慢。

IP地址保证数据能从一个主机发送到另一个主机(ip地址是网络中主机的标识)。
但是数据到达对端主机之后,如何保证qq的数据就是qq进行处理,而不是别的程序处理?
因此数据当中就还必须标识哪些数据应该由哪个应用程序进行处理。

端口

端口:在一台主机上对进程的一个唯一标识。
类型:unit16_t
端口号范围:0-65535
每一条数据中不但有原IP地址、目的IP地址,还有源端口,目的端口。
标识数据是从哪个主机上的 哪个进程发出的,要到哪个主机的哪个进程来进行处理。
一个端口只能被一个进程占用。
例如主机上的抖音和qq都使用了8888端口。若这时候主机收到一条数据,目的端口8888,操作系统就不知道数据该给谁了。
但是一个进程可以使用多个端口。

网络通信实际上也是两个进程间的通信,只是这个进程间通信不局限于同一台主机。

网络通信中如何传输数据:

小明给小红发了一条消息:我想你了。 (二进制)
当前宽带的数据传输实际上是一种电信号的传输。 (高低电平)
而这种电信号的传输就比较依赖于网络通信设备:网卡。网卡将电信号转换为数字信号。
网卡有不同的厂商,对电信号的接收以及解析都有不同之处。有可能出现因为数据格式转换不一样,导致双方无法实现通信。
为了实现网络互联,因此数据格式就需要做出统一标准:协议。

协议:数据格式的约定
网络通信协议:网络通信中数据格式的
约定

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!