多任务就是操作系统可以同时运行多个任务,至少同时有3个任务正在运行
多任务实现的3种方式:多进程模式;多线程模式;多进程+多线程模式
注意点:
并发:指的是任务数>CPU核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行
(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)
并行:指的是任务数<=CPU核数,即任务真的是一起执行的
线程访问全局变量
在一个进程内所有线程共享全局变量,方便在于多个线程间共享数据
缺点:线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)
七层模型,亦称OSI(Open System Interconnection)
参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,
一般称为OSI参考模型或七层模型
它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
物理层:建立、维护、断开物理连接。(由底层网络定义协议)
数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择 ,协议有:ICMP IGMP IP(IPV4 IPV6)
传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
会话层
建立、管理、终止会话。(在五层模型里面已经合并到了应用层),对应主机进程,指本地主机与远程主机正在进行的会话
表示层:数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层),格式有,JPEG、ASCll、EBCDIC、加密格式等
应用层:网络服务与最终用户的一个接口,协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。
端口是通过端口号来标记的,端口号只有整数,范围是从0到65535,按照一定的规定进行分配。
知名端口是众所周知的端口号,范围从0到1023, 如果一个程序需要使用知名端口的需要有root权限。
动态端口的范围是从1024到65535
之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。
动态分配是指当一个系统程序或应用程序程序需要网络通信时,
它向主机申请一个端口,主机从可用的端口号中分配一个供它使用。
当这个程序关闭时,同时也就释放了所占用的端口号
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议。
在通信开始之前,不需要建立相关的链接,只需要发送数据即可
TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)
是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义
TCP通信需要经过创建连接、数据传送、终止连接三个步骤。
创建一个基于udp的网络程序:
创建客户端套接字
发送/接收数据
关闭套接字
完成一个tcp服务器的功能,需要的流程:
socket创建一个套接字
bind绑定ip和port
listen使套接字变为可以被动链接
accept等待客户端的链接
recv/send接收发送数据
TCP的特点:
1.面向连接
2.可靠传输
1)TCP采用发送应答机制
2)超时重传
3)错误校验
4)流量控制和阻塞管理
TCP与UDP的区别
面向连接(确认有创建三方交握,连接已创建才作传输。)
有序数据传输
重发丢失的数据包
舍弃重复的数据包
无差错的数据传输
阻塞/流量控制