网络通信学习
- 并发
- 并行
- 同步
- 异步
- 通信过程
- 网络层
- 传输层
- 应用层
- 数据包组成
并发
- 并发 指计算机可以同时执行多项任务。
- 要完成并发,可以像下图一样通过单核处理器对时间片管理,经过一定时间后执行另一个任务,这个过程称为进程或线程的上下文切换。
- 要完成并发,可以像下图一样通过单核处理器对时间片管理,经过一定时间后执行另一个任务,这个过程称为进程或线程的上下文切换。
并行
- 并行则应该像下图那样,同时执行任务。
- 要完成并行,可以通过多核处理器,像下图一样并行的执行任务,而不用等上一个任务完成后再进行下一个。
- 要完成并行,可以通过多核处理器,像下图一样并行的执行任务,而不用等上一个任务完成后再进行下一个。
同步
- 同步是一个任务完全执行完之后再执行下一个任务,因此没有并发和并行的概念。
异步
- 异步是在执行A的时候,可以同时执行B,而不必等待A完成。
- 上面针对并行和并发的例子都属于异步。
- 对于多核处理器可以通过多线程来实现真正的并行。
- <常用于计算密集的任务>
- 对于单核处理器也可以通过回调函数的机制来实现异步的并发(单线程的异步编程)。
- <对于I/O密集的任务如web开发等常用此方法>
通信过程
- 网络通信自下而上分为:
- 物理层: 物理介质中传输信息(网线、光纤)。
- 链路层: 同一网段通信(MAC地址、交换机)。
- 网络层: 不同网段通信(路由器、IP地址)。
- 传输层: 数据包到达计算机后到达具体的软件(端口)。
- 应用层: 具体的应用。
- DNS: 把相应的域名转化为相应的IP地址。
- IP地址: 由网络号和主机号组成
- 子网掩码: 告诉计算机哪些是网络号哪些是主机号。
- 将子网掩码和IP地址都转化为二进制后,子网掩码的1对应的就是IP地址的网络号。
网络层
- 两种特殊的IP地址:
- 广播地址:主机位全为1(向该地址发送数据包,网段中所有设备都会收到)
- 网络地址:主机位全为0(表示这个网络)
- 网关: 软件层的路由器,是到其他网段的出口,也就是路由器接口IP地址。
- 若目标IP在同一网段可以直接通信不需要网关,否则需要。
- 例子:IP<192.168.1.76>;网关<192.168.255.256>
- 参考文献
- ARP协议: 根据IP地址查看MAC地址。
传输层
- TCP协议: 面向连接的(3次握手4次挥手)
- 是可靠的,有重传机制,纠正乱序。
- UDP协议: 没有重传,也不可靠,但是速度快,占用资源少
- DNS协议的传输层就是UDP协议。
应用层
- DHCP协议: 自动配置设备IP。
- DNS协议: 根据域名查询其指向IP。
- HTTP协议: 请求网页要用到的协议。
数据包组成
- 数据包: 帧头由:链路层的源、目标MAC地址;网络层的源、目标IP地址;传输层的源、目标端口构成;帧尾才是要传输的数据。
- NET: 网络地址转换。
- 将源IP转化为公网IP,才可以进行英特网的通信。(一般我们的电脑通过路由器等进行NET转化了IP和端口后,就可以进行英特网的通信了)
- ※※※
- IP地址是一个抽象地址,所以其实需要MAC地址才能通信(MAC地址是网卡出厂就写好的机器的唯一物理地址)。
- 网络层虽然看起来是基于IP通过路由进行连接,但实际上是通过对IP匹配的MAC地址才能进行配对传输的。