常见应用层协议

文章转自这里

基于UDP

  • TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
  • DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
阅读更多...

Linux下查看系统CPU和内存使用情况

CPU使用情况

  1. top命令

    top应该最常用的一个用来查看系统资源使用情况的命令了。

    • 第一行:当时时间、系统运行时长、当前登录用户数、系统平均负载(三个值同loadavg命令)
    • 第二行:进程总数、正在运行进程数、睡眠进程数、停止进程数、僵尸进程数
    • 第三行:CPU信息,具体包括用户空间CPU占比,内核空间CPU占比,用户进程空间内改变过优先级的进程占用CPU时间百分比,空闲CPU时间百分比,等待输入输出的CPU时间百分比,CPU服务于硬件中断的CPU时间百分比,CPU服务于软件中断的CPU时间百分比,被虚拟机偷走的CPU时间百分比。
    阅读更多...

TCP长连接与短连接

TCP的长连接和短连接

基本概念

所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。

短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。

  • 对于短连接,连接步骤通常为:连接——>数据传输——>关闭连接
  • 对于长连接,通常是:连接——>数据传输——>保持连接(心跳包)——>数据传输——>保持连接(心跳包)——>… … ——>关闭连接
阅读更多...

谈谈CPU上下文切换

概述

所谓上下文切换即:CPU从一个任务切换到另一个任务。

我们都知道,现代操作系统是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,每秒可能发生几百次上下文切换,造成多任务同时运行的错觉。

其中上下文的意思是指:某一时刻,寄存器内的数据和程序计数器的值;寄存器保留了CPU的指令,程序计数器表明了指令所在的地址,即当前指令之后立即执行的指令的地址。它们都是 CPU 在运行任何任务前,必须的依赖环境。

阅读更多...

内存管理

内存管理概述

CPU能直接访问的通用存储只有内存和处理器内置的寄存器,进程要想被执行,首先要把执行过程中所需要的数据加载到内存中。

我们先从简单的入手,一步步深入,看看如何设计一个安全高效的内存管理系统。

  • 先考虑单道程序系统,如何实现内存管理?

    这个简单,我们可以直接把程序全部加载到内存中,CPU要用到什么数据,直接拿地址去访问内存就好了。

  • 这个方案非常简单,在某些场景下是可行的。但是如果内存空间有限,放不下整个进程怎么办呢?

    略加思考,我们就能想到动态加载技术!程序运行过程中并不需要访问程序的所有代码和数据,我们只需要把一部分代码和数据加载到内存,然后程序用到什么就加载什么,如果内存不够了,把暂时用不到的数据先踢出内存,腾出一些空间给新加载进来的数据。

  • 前面的场景中,考虑的都是单道程序,如果操作系统中同时运行多个进程呢?

    唉呀,有多个程序同时运行就不太好办了!此时,我们不仅要把内存划分成多个区域,每个进程分配一个独立的区域,还要保证每个进程不能越界访问其他进程的内存空间。再考虑动态加载过程中可能存在的问题,那就更麻烦了!此时就需要用到虚拟内存技术了。

下面我们详细介绍下在操作系统的发展历程中,用到的4种内存管理机制。

阅读更多...

ICMP协议

ICMP协议概述

ICMP,即Internet Control Message Protocol网络控制报文协议,它属于网络层。

在详细介绍ICMP之前,我们先看几个问题:

问题1:http协议,当client请求的网页不存在时,server如何做?

同学们会说,这是出错的情况,当然要发送特定的Error Code,告诉client出现了什么错误, 以便让client认识到当前的情况,及时调整自己的行,或让用户来进行干预。如果没有这种错误消息通知机制 ,一旦出错,server什么也不做,只是把无法处理的请求一丢了事。简单是简单了,问题是client被闷在鼓里,一直在那里 转圈圈 等,直到用户很不满意地关闭软件,并伴随一声 靠,什么破软件!很显然,http有自己的 错误消息通知机制,由于http属于应用层,姑且称之为 应用层的错误消息通知机制。

阅读更多...

ARP协议

概述

什么是ARP协议?

ARP(Address Resolution Protocol)即地址解析协议,用于实现从IP地址到MAC地址的映射,即查询IP地址对应的MAC地址。

为什么需要ARP协议?

在网络访问层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过 MAC 地址进行定位,然后才能进行数据包的发送。

而在网络层和传输层中,计算机之间是通过 IP 地址定位目标主机,对应的数据报文只包含目标主机的 IP 地址,而没有 MAC 地址。

因此,在发送之前需要根据 IP 地址获取 MAC 地址,然后才能将数据包发送到正确的目标主机,而这个获取过程是通过 ARP 协议完成的。

ARP是哪一层协议?

基于功能来考虑,ARP是链路层协议;基于分层/包封装来考虑,ARP是网络层协议。(此方法对于ICMP协议同样管用)

阅读更多...

进程与线程

本文内容基本来自小林coding

什么是进程

进程,简单来说就是“一个运行中的程序”。为什么会出现“进程”这个概念呢?

早期的计算机系统一次只允许执行一个程序,这个程序拥有系统的所有资源。但是现代计算机系统允许将多个程序调入内存并发执行,这就要求对各种程序提供更严格的控制和更好的划分,从而产生了“进程”的概念,即执行中的程序。系统可以看作由一组进程组成:操作系统进程执行系统代码,用户进程执行用户代码。通过CPU多路复用,所有进程可以并发执行。通过进程之间的切换,操作系统能使计算机更为高效。

阅读更多...
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信