网络杂谈
线程是进程内的一个执行流 我们知道在创建子进程时,只会创建子进程的进程控制块,父进程将自己资源的一部分直接给子进程,比如虚拟地址空间中的代码段和页表;现在有一个想法,就是类似创建子进程一样,给某一个进程创建多个进程控制块,同时指向同一个虚拟地址空间,共用一个页表 将进程的代码区分为多份,同时创建多个进程控制块指向同
①当上层应用app1调用recv系统调用时,如果对等方没有发送数据(缓冲区没有数据),上层应用app1将阻塞(默认行为,被linux内核阻塞); ②当对等方发送了数据,linux内核recv端缓冲区,有数据后,内核会把数据copy给用户空间。然后上层应用app1解除阻塞,执行下一步操作。①上层应用程序app2将套接字设
① 上层应用程序app4建立SIGIO信号处理程序。当缓冲区有数据到来,内核会发送信号告诉上层应用程序app4。 ②上层应用程序app4接收到信号后,调用recv函数,因缓冲区有数据,recv函数一般不会阻塞。 ③这种用于模型用的比较少,属于典型的“拉模式”。即:上层应用app4,需要调用recv函数把数据拉进来。①上
①物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。 ②数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物
TCPIP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。源目的端口号:表示数据是从哪个进程来,到哪个进程去; 32位序号32位确认号:后面详细讲; 4位TCP报头长度:表示该TCP头部有多少个32位bit(有多少个4字节);所以TC
如果我们给一个人发送多条信息,由于网络的问题,可能会出现,乱序的问题.比如我们发送两条信息:1.你好.2.吃了吗? 由于网络问题,可能会出现接收方先接受到了吃了吗?,后接受到了你好.,这样的情况我们是不想出现的,因此确认应答机制可以很好的解决这种问题.为了解决这种问题,每次发送消息的时候,TCP数据中的字节进行