目录
一、局域网LAN( Local Area Network)
Local 即标识了局域网是本地、局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下, 是无法通信的。
局域网组建网络的方式有很多种:基于网线直连、基于集线器组建、基于交换机组建、基于交换机和路由器组建。
二、广域网WAN(Wide Area Network)
通过路由器,将多个局域网连接起来,在物理上组成了很大范围的网络,形成了广域网。广域网内部的局域网都属于其子网。
局域网和广域网之间并没有一个严格的界限,这两个的概念是相对的。
交换机和路由器的区别:
交换机负责二层(数据链路层)转发,功能是组成一个局域网。
路由器负责三层(网络层)转发,功能是连接两个局域网。
三、网络通信基础
3.1 IP地址
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于
开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。
3.2 端口号
IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。
端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。
IP地址描述了网络上的一个主机,端口号描述了主机上的一个应用程序。
3.3 协议
网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。协议最终体现为在网络上传输的数据包的格式。
3.3.1 协议分层
当前网络通信的过程非常繁杂,里面需要约定的细节非常多。如果使用一个协议来约定所有事情,这个协议就会非常庞大和复杂,不利于实现。按照功能和定位将一个协议拆分为多个协议,让多个协议相互配合。分层之后:
上层协议不必关注下层协议的细节、任意一层的协议都可以灵活替换
如语言层不必关注电话机实现的细节、可以将语言层的汉语改为英语、电话机改为手机
四、OSI七层模型和TCP/IP五层协议
4.1 OSI七层模型和TCP/IP五层协议
物理层:主要约定了硬件的一些相关规范。如网线和网口。
数据链路层:主要负责相邻设备之间的数据传输(是指物理上的相邻)
网络层:负责任意两个节点之间的数据传输,需要关注过程中具体走了一个怎样的路线(关注过程)
传输层:负责任意两个节点之间的数据传输,不关注路线,只关注数据是不是收到了(关注结果)
应用层:应用程序要完成的逻辑,即拿到数据后打算做什么
4.2 网络设备所在分层
对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下
四层;
对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;
对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
对于集线器,它只实现了物理层;
注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层)、三层路由器(工作在TCP/IP五层模型的下三层)。
4.3 封装和分用
4.3.1 封装
当协议分层后,就涉及到封装和分用两个重要的过程。这两个过程描述了不同的协议之间是如何配合工作的。
4.3.2 分用
封装和分用不仅仅是存在发送方和接受方,中间设备(路由器和交换机)也会对数据进行封装和分用。
通常情况下,交换机只是分装到数据链路层就结束了。A的数据发送给交换机,交换机物理层进行处理,交给数据链路层,数据链路层就针对这里数据进行解析并重新打包。主要是修改里面的mac地址,也就是决定了接下来数据要发给哪个相邻的设备。
通常情况下,路由器只是分装在网络层就结束了。A的数据发给路由器,路由器物理层进行处理,交给数据链路层,数据链路层再处理,交给网络层。网络层要根据这里的目的地址,来规划接下来的传输路线,规划好了之后再重新交给数据链路层和物理层进行封装。
在实际情况中,路由器/交换机,也是有可能解析到传输层甚至应用层。