首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

静态链接和动态链接

一、前言 编译型语言生成可执行文件的过程包括编译和链接。编译包括预处理、编译和汇编三个步骤。而链接则根据发生时间不同分为静态链接和动态链接。...三、静态链接 上面提到链接分为静态链接和动态链接,静态链接先于动态链接出现,动态链接属于计算机发展较后期出现的技术。两者没有优劣之分,只是各自有各自适用场景。...而这个过程就是静态链接(动态链接出现之后对链接的叫法)。 3.2 原理 由多目标文件链接形成静态库,反之静态库也可以简单看成是一组目标文件的集合。 链接器在进行链接时以目标文件为单位。...动态链接的基本思想是把程序按照模块拆分为各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而不是像静态链接那样在链接时将所有的模块组成一个可执行文件。...(这个链接过程和静态链接类似)形成可执行程序。

14210

一台服务器​最大并发TCP连接数多少?百万链接?

在 tcp 应用中,server 事先在某个固定端口监听,client 主动发起连接,经过三路握手后建立 tcp 连接。那么对单机,其最大并发 tcp 连接数是多少呢?...如何标识一个 TCP 连接 在确定最大连接数之前,先来看看系统如何标识一个 tcp 连接。...client 最大 tcp 连接数 client 每次发起 tcp 连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他 tcp 连接共享。...因此,65535 代表 Linux 系统支持的 TCP 端口号数量,在 TCP 建立连接时会使用。 TCP 怎么建立连接,与端口号是什么关系?...近期热文 如何在Linux中删除软链接 图解TCP,UDP,流量控制,拥塞控制,一次看懂 如何学习 Linux 内核网络协议栈 100 个网络基础知识普及,看完成半个网络高手!

7.2K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何优化高并发TCP链接中产生的大量的TIME_WAIT的状态

    我们来看下TCP的状态机图: ? 通过上图,我们可以看到TIME_WAIT状态是在tcp断开链接时产生的,因为TCP连接是双向的,所以在关闭连接的时候,两个方向各自都需要关闭。...TIME_WAIT状态过多的危害 TIME_WAIT状态是TCP链接中正常产生的一个状态,但凡事都有利弊,TIME_WAIT状态过多会存在以下的问题: (1)在socket的TIME_WAIT状态结束之前...此时系统几乎停转,任何链接都不能建立。...允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收...优化完内核参数后,可以执行sysctl -p命令,来激活上面的设置永久生效 方式二:调整短链接为长链接 短连接和长连接工作方式的区别: 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次

    28.1K54

    HttpClient源码阅读——探索Tcp链接建立时机及http请求发送时机

    HttpClient源码阅读——探索Tcp链接建立时机及http请求发送时机 首先说明一点:我阅读源码一般都不是通篇阅读,而是抓住某一个关键问题,然后一步步跟踪下去,所以阅读源码的过程中会忽略一些我不太关注的部分源码...MainClientExec 因为我们的关注点是tcp链接建立的时机及http请求发送的时机,因此其他几个不相关的执行器暂时先不做分析,先来侧重了解一下MainClientExec这个执行器。 ?...execute方法是MainClientExec执行器的核心方法,这里首先向链接池请求一个链接,刚开始我以为是在这里创建的TCP链接,然而抓包结果显示这里并没有(没有发起三次握手),断点一步步往下走,然后在...链接建立完毕后,接着一步步向下走,直到requestExecutor.execute(request, managedConn, context)执行完毕才发起了http请求,并拿到了response响应信息

    96920

    TCP链接状态转移

    链接建立 TCP链接建立使用'three-way handshake': TCP A TCP B 1....),且收到的TCP数据ACK了一个还没收到的数据,或者数据包含的安全级别或comparement与要求的不符,RST将作为回复,链接状态保持不变 3.假设链接在任何一个同步状态(ESTABLISHED,...状态 TCP链接释放 CLOSE操作意味着后续没有数据要发送了,由于TCP的全双工特性,因此发送CLOSE操作的一方可以继续执行RECEIVE操作,直到对方已经关闭链接,以此来保障TCP链接的优雅关闭。...链接关闭主要有以下3种场景: 1.TCP链接的一方用户主动通过CLOSE操作通知链接关闭 TCP A...(2 MSL) CLOSED 2.TCP从网络中收到FIN消息 TCP收到一个不是通过CLOSE主动发起的FIN消息,这时收到FIN的一方可以ACK这个FIN并告知用户链接正在关闭。

    1.4K30

    TCP长链接介绍

    1.定义 TCP连接以后不主动断开连接.区别于短链接(三次握手四次分手算一次短链接),优点是避免短时间内重复连接所造成的信道资源以及网络资源的浪费 2.长连接断开的原因 进程被杀死 NAT超时 网络状态发生变化...但是这么做有个弊端:破坏了IP的端到端通信 为了维持这种映射关系必然需要一张映射表,在会话静默的这段时间,NAT网关会进行老化操作(节省资源),那么TCP连接很有可能断开,这就和长链接冲突 3.维持长链接方法...心跳保活 (注意,心跳机制和轮询机制还是有区别的.心跳机制是在一个TCP连接上进行的,轮询是每隔一段时间进行一次TCP请求) 心跳机制的理论方案 ?...协议自带 KeepAlive 的机制是否可替代心跳机制 无法替代.原因:TCP KeepAlive机制 的作用是检测连接的有无(死活),但无法检测连接是否有效。...“连接有效”的定义 = 双方具备发送 + 接收消息的能力 6.demo展示 (伪代码) public class NativeTcpClient { /** * 保存发送的tcp指令集

    1.5K30

    软链接和硬链接

    2 深入探析软链接和硬链接本质 软链接相当于Windows下的快捷方式,修改软链接文件,源文件内容也会改变,修改源文件内容,软链接文件内容随之改变。删除软链接不影响源文件,删除源文件软链接文件失效。...修改硬链接文件,源文件内容也会改变,修改源文件内容,硬链接文件内容随之改变。删除硬链接文件,源文件无影响;删除源文件,硬链接文件无影响。 那么软链接和硬链接这些特性是怎么来的呢?...软链接是指向文件名的 硬链接是指向inode的 一个分区就是一个文件系统,软链接可以跨分区而硬链接不可以跨分区。 这是因为不同分区可以有相同的文件名,但是inode唯一标识一块block。...硬链接是指向inode编号的,假如说我现在有一个1.txt的inode编号为12345,该文件在磁盘分区1上面。...我们知道,在文件系统中,inode block中有一个指针,软链接的指针就是指向源文件的文件名的。 实际上,在每个目录中都有两个隐藏文件,.是当前目录的硬链接,..是上一级目录的硬链接。

    32510

    软链接和硬链接

    软链接-符号链接:相当于windows的快捷方式。 创建命令: ln s 文件名 软链接的名字 ln-link s-soft 特点: 1.在linux中,软链接文件的颜色为浅蓝色。...2.软链接的大小为原文件的文件名大小,即路径长度。 3.软链接仅可在当前路径下使用,即和原文件在同一目录下。创建时最好给出原文件的绝对路径。 4.目录也可创建软链接,方法同上。...如上述的图片中,在这样形式的创建方式下如果将同一级目录下的软链接移动到其他目录下(与原文件不在同一个目录下),软链接会发生失效。...此外,如果原文件被删除,那么软链接也会发生失效,毕竟它只是一个快捷方式而已。 硬链接:在linux上,一以切皆文件。那么如何给出文件名,找到其在磁盘上的对应位置呢?...5.不能对目录创建硬链接文件,因为担心出现死递归创建的问题。

    2.3K10

    LINUX: 在不重启各自socket程序情况下, 断开ESTAB的TCP链接

    一说起TCP, 就是什么三次握手, 四次挥手. 而这次想讨论的是: 在不重启各自socket程序情况下, 将ESTABLED链接断开 ???..., 就能互相通信了 那么如何断开这个链接呢?...0.0.0.0/0 tcp dpt:5555 reject-with tcp-reset Chain FORWARD (policy ACCEPT) target prot...上面的方法所用到就是最后一种标志:RST重置链接 所以总得而言, iptables的DROP行为, 能够阻止链接的建立, 但是对于已经建立起来的链接, 顶多只能阻止数据的传输, 但是不能断开链接, 链接的断开应该只有下面几种可能...: socket 的主动close, 也就是发送 fin报文 ( 应用层程序或者内核 ) TCP链接的超时自动断开 ( 这个过程可能会比较耗时 ) 伪造报文发送RST 除了上面的条件, 还有一个点需要注意的

    2.6K41

    链接 动态链接 静态链接

    要想了解底层,链接是一个不得不过的一关,我总结了下学习的心得,首先要了解链接器到底是如何工作的,链接器分为两类,一个是静态链接,一个是动态链接,先来讲解静态链接,静态链接要干两件事: 符号解析 目标文件定义和引用符号...链接器通过把每个符号定义与一个存储器位置联系起来,然后修改所有对这些符号的引用,使得它们指向这个存储器位置,从而重定位这些节。 静态链接的输入文件是一系列的目标文件,输出是可执行的目标文件。...,每一个节经过链接会变成段,段对应的是执行相关的,而且段对应的是可执行目标文件的ELF文件,现在就来看看经过静态链接生成的可执行目标文件的ELF文件格式,这里面都是以段作为术语的: 可执行目标文件的ELF...这就是一个静态链接器如何将一个可重定位文建变成可执行目标文件从而运行到平台上。 动态链接有是怎么回事呢?...,这个过程就叫做动态链接。

    3.2K30

    Linux硬链接,软链接

    通过mkdir命令创建一个新目录,其硬链接数应该有2个,因为常见的目录本身为1个硬链接,而目录下面的隐藏目录.(点号)是该目录的又一个硬链接,也算是1个连接数。...软链接(符号链接) 类似windows中的快捷方式,可以快速连接到目标文件和目录,称为软链接,或符号链接 首先看看怎么创建一个软链接,只需在ln命令后加一个s选项即可 ln -s 源文件 新的目标文件...那软链接和硬链接的区别有哪些?...软链接其实再创建一个独立的文件,但是文件会让数据的读取指向它链接的那个文件。即软链接会写上链接文件的文件名。...但硬链接文件还能输出的原因是inode还存在,删除了原文件只是让inode的链接数减少1。所以要当inode的链接数变为0时,inode才会被系统回首,文件的内容才会被删除。

    10.7K20

    友情链接:先友情后链接,不是为了链接而链接

    友情链接? 我相信大多数博客圈的博主们都会在自己的博客中开设“友情链接”栏目,与别人交换网站链接,目的是什么?...我对于“友情链接”的理解是,双方是生活中活网络上的好友,并非陌生人;在这种基础上交换的网站链接。既然叫做友情链接,则应该建立在友情的基础上交换,无友情何来友链一说?...甚至有人直接将群名片改为:自己的网站+“换链接”。诸如此类的现象很多,不一一详说。我想表达的是,以这样的方式换来的链接,不是友情链接,纯粹的就是链接,要更多这样的,不如到网上买。 友情链接!...那么如何正确交换友情链接呢?我个人总结了以下几点: 1、切记,交换的是友情链接。不管是你还是对方提出交换友链的请求,都应建立在友情基础上。...同时我也建议各位博主朋友多检查检查自己的友情链接,一来是查看对方网站是否正常运行和更新;二来是查看对方网站是否还保留自己的链接。

    1.7K00

    软链接和硬链接

    linux基础 要理解链接,首先要理解以下inode inode 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。...链接数,即有多少文件名指向这个inode 文件数据block的位置 硬链接 硬链接是指多个文件指向同一个inode,相当于是文件的副本,删除其中任意一个文件并不会删除文件实体,只有删除了所有源文件和所有对应的硬链接文件才会删除文件实体...看起来是不是很像c++里的共享指针 软连接 软链接是指生成一个快捷方式,新建一个inode,inode指向源文件路径,删除了源文件,软链接文件依然存在,只是不能打开文件了,软链接文件和源文件类型不同

    2.1K10

    硬链接与符号链接

    软链接 同时查看下这3个文件的inode值 最左侧表示每个文件的inode值, 可以看出来, 硬链接文件与原文件的inode值相同, 软链接文件生成了新的inode值....使用stat命令分别查看三个文件信息 可以看到原文件和硬链接文件的信息是一样的, 而软链接的信息就是不同的. 而且软链接的内容大小是12, 这12个字符是什么信息呢?...总结: 软链接占用实际的磁盘块空间, 软链接中存储的是原文件名称 接下来我们把软链接都删除, 只保留原文件和硬链接, 以及再新增一个1.txt文件 通过ll 命令查看文件大小共计20K....也是运用了硬链接的原理,给文件创建一个硬链接, 然后就可以把原文件删除了....创建硬链接失败 创建软链接成功 总结: 软链接可以跨分区创建, 硬链接不可以跨分区创建 即便两个分区是相同的文件系统也不可以跨分区创建硬链接, 是机制不允许, 并不是文件系统的区别.

    2.5K20
    领券