一看就懂TCP/IP协议族全析

2023-11-15

TCP/IP协议族

计算机与网络设备要相互通信,双方就必须基于相同的方法。如何探测到通信目标、由那一边现发起通信、使用哪种语言、使用那种操作系统、怎样结束通信等都需要事先确定。不同的硬件、操作系统之间的相互通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议。而与互联网相关联的协议集合起来总称为TCP/IP协议族。

图:TCP/IP是互联网各类协议族的总称

TCP/IP的分层管理

TCP/IP协议族里最重要的一点就是分层。TCP/IP协议族暗层次可以氛围以下五层:应用层、传输层、网络层、数据链路层、实体层。

图:TCP/IP的分层

把TCP/IP层次化的好处有很多。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分成之后只需把改变的曾替换掉即可。八个层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。

实体层

实体层就是把电脑连接起来的物理手段,它主要规定了网络的一些电气特性。

链接层

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。

1.以太网协议

早起的时候,每家公司都有自己的电信号分组方式。逐渐的,一种叫做以太网的协议,占据了主导地位。

以太网协议规定,一组电信号构成一个数据包,叫做(frame)。每一帧分成两个部分:标头(Head)和数据(Data)。“标头”包含数据的一些说明项,比如发送者、接受者、数据类型等;“数据”则是发送的具体内容。

图:数据包

2.MAC地址

以太网规定,如网设备,必须有网卡接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址就是数据包的发送地址和接收地址,被称为MAC地址。

3.广播

如何从一块网卡获知另一块网卡地址,首先采用的是一种ARP协议(Address Resolution Protocol)获取对应的MAC地址,然后以太网采用了一种很原始的方式,向所有的本网内所有计算机发送,让每台计算机自己判断对应的MAC地址是否与自己一样,如果一样,就接受这个包,做进一步处理,负责就丢弃这个包。这种发送方式就叫做广播(Broadcasting)。

在同一局域网内,PC1发送的数据包以广播的形式进行发送,当匹配对象PC2接收到请求之后,就可以将PC1的IP和MAC映射信息存储在本地的【ARP缓存表】,既然知道PC1在哪里,就可以返回ARP单播回应包。

网络层

互联网是无数个子网络共同组成的一个巨型网络,如果在同一个子网络,就采用广播的方式发送,否则就采用路由方式发送。这就导致了网络层的诞生。他的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。

网络层用来处理在网络上流动的数据包。数据包是网络层传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据传送给对方。

1.IP协议

IP协议的作用是把各种数据包传送给对方。而要确保数据确实发送到对方哪里,则需要满足各类条件。其中最主要的条件是IP地址和MAC地址。IP地址指明了节点被分配到的地址,MAC是网卡所属的固定地址。 IP地址可更换,但MAC地址基本上不会更改。

互联网上的每一台计算机,都会分配一个IP地址。这个地址分为两部分,前一部分代表网络,后一部分代表主机。判断两台计算机是否属于同一个子网络,需要用到另一个参数子网掩码,它是一个32位地址,它只有一个作用,就是将某个IP地址划分成网络地址主机地址两部分,如果两台电脑的网络地址部分相同,则可以判定他们在同一个子网络。

2.ARP协议

IP间的通信依赖MAC地址。在网络上,通信双方不在同一局域网内,事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理。而在同一局域网内,我们可以使用ARP协议(Address Resolution Protocol),获取对方的MAC地址。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查处对应的MAC地址。

3.IMCP协议

IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误——比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。

传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在同一个电脑中接收到发送给不同软件的数据包,则需要依靠端口(port)来区分是发给具体某个软件,它其实是一个网卡的程序编号。传输层的功能就是建立在“端口到端口”的通信。在传输层有两个性质不同的协议:TCP(Transmission Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)。

TCP协议

tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的,面向字节流。TCP协议将大快数据分割成报文段(segment)为单位的数据包进行管理,为了确保无误的将数据发送到目标处,TCP协议采用了三次握手(three-way handshaking)策略。握手中使用了TCP的标志(flag)-SYN(synchronize)、ACK(acknowledgement)和seq(sequence)。

 

图:TCP数据发送流程图

TCP三次握手过程

第一次握手:客户端发送一个含有同步序列号的标志位给服务器请求建立连接,同时客户端进入SYN_SENT状态。发送报文的同时也启动一个定时器,等待服务器确认收到这个报文段,如果不能及时收到一个确认,将重新发送这个报文段。这次握手总共做了两件事:我要和你通信、你可以用seq=x作为起始数据段来回应我。

第二次握手:服务端收到这个报文段,需要对报文段进行确认,设置ACK=x+1,seq=y,让客户端以这个序列号作为起始数据段来进行回应,这时服务器进入SYN_RECV状态。这次握手总共做了两件事:你可以和我通信、你可以用seq=y作为起始数据段来回应我。

第三次握手:客户端收到服务器的确认报文段,会先进性确认,如果收到的报文检验有差错,那么就会丢弃这个报文段,如果检验无误,则会对服务器进行回复,设置ACK=Y+1。这时客户端与服务端都进入ESTABLISHED状态,完成TCP三次握手。

若握手过程中某个阶段莫名中断,TCP协议会再次以相同顺序发送相同的数据包。

TCP四次分手

第一次分手:当客户端完成数据传输后,会对服务器发送一个FIN报文段,客户端进入FIN_WAIT_1状态。表明数据发送结束。

第二次分手:服务器收到客户端发送来的FIN报文段,会返回一个ACK报文段,ACK加一,客户端进入FIN_WAIT_2状态,意思就是我同意你的关闭请求。

第三次分手:服务器向客户端发送FIN报文段,请求关闭连接, 服务器进入LAST_ACK状态。

第四次分手:客户端收到服务器发送的FIN状态,会向服务器发送ACK报文段,ACK加一,客户端进入TIME_WAIT状态,服务器收到ACK报文段后,就关闭连接;此时,客户端等待2MSL后依然没有收到回复,则证明服务器已正常关闭,那好,客户端也可以关闭连接了。

客户端应用程序的状态迁移图

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

服务器的状态迁移图

CLOSED->LISTEN->SYN_RECE->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

UDP协议

UDP 是一种面向无连接,且不可靠的协议,在通信过程中,它并不像 TCP 那样需要先建立一个连接,只要(目的地址,端口号,源地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据。它仅仅提供了校验和机制来保障一个报文是否完整,若校验失败,则直接丢弃报文,不做任何处理。

图:UDP Service-Client关系图

TCP与UD片间的区别

1、tcp是面向连接的,可靠性高;udp是无连接的,可靠性较低;

2、由于tcp是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差;同时过程复杂,也使其易于被攻击;而udp无连接,无建立连接的过程,因而实时性较强,也稍安全;

3、在传输相同大小的数据时,tcp首部开销20字节;udp首部开销只有8个字节,tcp报头比udp复杂,故实际包含的用户数据较少。tcp无丢包,而udp有丢包(注:网速的提升导致现在丢包率很低),故tcp开销大,udp开销较小;

4、每条tcp连接只能是点到点的;udp支持一对一、一对多、多对一、多对多的交互通信。

5、TCP对系统资源要求较多,UDP对系统资源要求较少

采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制(注:UDP本身并不具有重传机制),能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。如果对实时性要求高和高速传输的场合下需要使用udp;如果需要传输大量数据且对可靠性要求高的情况下应该使用tcp;在可靠性要求较低,追求效率的情况下应该使用udp。

应用层

应用层决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和DNS服务(Domain Name System,域名系统)服务就是其中两类。而HTTP协议也处于该层。

DNS

DNS(Domain Name System)服务提供了域名到IP地址之间的解析服务。计算机可以被赋予IP地址,也可以被赋予主机名和域名。比如www.18yk.com。我们通常使用主机名或者域名来访问对方的计算机,而不是直接通过IP地址访问。这就需要DNS服务来为我们将它们转换成IP地址,DNS协议通过域名的查找IP地址,会逆向从IP地址反差域名服务。

图:DNS工作流程图

HTTP协议

HTTP(Hyper Text Transfer Protocol)超文本传输协议,是一种建立在TCP上的无状态连接,也是我们日常用的最多的一种协议。

图:HTTP协议工作流程图

URI

URI(Uniform Resource Identifier)统一资源标识符,RFC2396分别对这 3 个单词进行了如下定义:

Uniform :规定统一的格式可方便处理多种不同类型的资源, 而不用根据上下文环境来识别资源指定的访问方式。另外, 加入新增的协议方案(如http:或ftp:) 也更容易。

Resource :资源的定义是可标识的任何东西。 除了文档文件、 图像或服务(例如当天的天气预报) 等能够区别于其他类型的, 全都可作为资源。 另外, 资源不仅可以是单一的, 也可以是多数的集合体。

Identifier :表示可标识的对象。 也称为标识符。

RFC3986列举了几种URI的常用语法格式:

1.tp://ftp.is.co.za/rfc/rfc1808.txt

2.http://www.ietf.org/rfc/rfc2396.txt

3.ldap://[2001:db8::7]/c=GB?objectClass?one

4.mailto:John.Doe@example.com

5.news:comp.infosystems.www.servers.unix

6.tel:+1-816-555-1212

7.telnet://192.0.2.16:80/

8.urn:oasis:names:specification:docbook:dtd:xml:4.1.2

TCP/IP通信传输流

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收段则往应用层上走。以HTTP举例说明:

发送端

首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。为了传输方便,在传输层(TCP协议)把从应用层收到的数据(THTTP请求报文)进行分割,并根据各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP协议),增加作为通信目的地的MAC地址后转送给链路层。这样一个网络通信请求就准备齐全了。

接收端

接受端的服务器在链路层接收到数据,按顺序往上层发送,一直到应用层。当传输到应用层才算真正接收到由客户端发送过来的HTTP请求。

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之。接收段在层与层传输数据时,每经过一层会把对应的首部消去。而这种把数据信息包装起来的做法被称为封装(encapsulate)。

 

感言:到这里TCP/IP协议族就暂时告一乱落。写作的目的主要是最近在阅读《图解HTTP》这本书籍时产生了一些心的,并通过在网上查找相关资料进行整理总结,将之记录下来,与大家共享,也方便以后自己查阅。若其中有何错误漏洞,请大家不吝赐教。

参考资料1:https://blog.csdn.net/u011957758/article/details/72353485

参考资料2:https://www.jianshu.com/p/0cf648510bce

参考资料3:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一看就懂TCP/IP协议族全析 的相关文章

  • python实现——处理Excel表格(超详细)

    目录 xls和xlsx 基本操作 1 用openpyxl模块打开Excel文档 查看所有sheet表 2 1 通过sheet名称获取表格 2 2 获取活动表 3 1 获取表格的尺寸 4 1 获取单元格中的数据 4 2 获取单元格的行 列 坐
  • 睿智的目标检测56——Pytorch搭建YoloV5目标检测平台

    睿智的目标检测56 Pytorch搭建YoloV5目标检测平台 学习前言 源码下载 YoloV5改进的部分 不完全 YoloV5实现思路 一 整体结构解析 二 网络结构解析 1 主干网络Backbone介绍 2 构建FPN特征金字塔进行加强
  • Arria 10上进行DDR3管脚分配

    本文介绍下DDR3的管脚分配 其它系列的DDR管脚分配也基本一样的 FPGA型号 10AX027H4F34I3SG DDR3型号 MT41J128M16JT 125 QuartusI Prime18 0 首先介绍下A10器件能支持的DDR系
  • 图像处理和图像识别中常用的matlab函数

    下面仅给出函数的大概意思 详细用法见 help 函数名 或 matlab help 1 imread read image from graphics file 2 imshow display image in Handle Graphi
  • MySQL高性能及性能优化技巧---更适合开发人员

    更新次数 更新时间 首发 2021 10 25 第一次更新 2021 10 26 1 删除了书中大量不必要的存储引擎类型 2 摘要完毕Mysql架构与历史部分 第二次更新 2021 10 29 1 摘要基准测试内容 2 删除了大量对概念的举
  • hdu 6208 The Dominator of Strings

    Problem acm hdu edu cn showproblem php pid 6208 Meaning 有 n 个字符串 问是否能找到其中一串 使得其它串都是它的子串 Analysis 如果存在这个串 那它一定是 n 个中的最长串
  • LeetCode刷题记录 字节跳动题库

    1 两数之和 哈希 一遍遍历 3 无重复字符的最长子串 哈希 流动窗口 双指针 因为右端点的位置一定不会朝左边走 建议再看看同类型的题目 2 两数相加 题 42 接雨水 单调递减栈 核心思想 对于每个点找其左边和右边第一个大于或等于它的点
  • 程序员最美的情人节玫瑰花,JAVA代码实现的3D玫瑰噢

    用纯javascript脚本编写的神奇3D圣诞树 令人印象深刻 2月14日情人节就要来临了 还是Roman Cortes 这次他又带来了用javascript脚本编写的红色玫瑰花 用代码做出的玫瑰花 这才是牛逼程序员送给女友的最好情人节礼物
  • idea自动去除导入但未使用的包

    使用idea开发过程中通常我们可能会引入某个包使用但是在后续更改中这个包就不需要了 一个个去除很麻烦 他每个java文件去除的快捷键是ctrl shift o 如果想要更智能的方法我们可以做如下配置 1 使用ctrl alt s进入sett
  • 【机器学习-分类】决策树预测

    我用一些机器学习的算法对数据进行一个分类 下面是一些需要用到的基础代码 以决策树为例 并不包括针对项目的模型处理和修改 留作记忆学习 对于数据划分训练集直接省略 def Tree score depth 3 criterion entrop
  • 论文笔记 Graph Attention Networks

    2018 ICLR 1 intro 1 1 GCN的不足 无法完成inductive任务 inductive任务是指 训练阶段与测试阶段需要处理的graph不同 通常是训练阶段只是在子图上进行 测试阶段需要处理未知的顶点 GGN 的参数依赖
  • SQL注入1(联合注入)

    数据库基础 一 数据库的操作 1 基本语句 mysql u xxx 进入mysql show databases 查看所有库名 use XXX 进入某个库 show tables 查看库的表 查询语句 select 数据操作语句 inser
  • echarts分割柱形图实现渐变电量效果柱状图

    先看下效果图是这个样子的 和普通的柱状图最明显的区别就是需要做成类似于电池格电量显示效果 目录 1 官网找例子 2 改造示例 3 全部代码 4 初始效果和完成效果对比 1 官网找例子 首先到Echarts官网找到基础的柱状图 官网初始opt
  • ZABBIX实践(三) window下的Agent端部署以及服务端汉化

    Zabbix 可以监控的对象非常多 支持的操作系统也很多 主流的linux和windows是平时接触最多的系统 本节说明一下zabbix 在windows下如何安装和配置 1 目标 1 在windows上安装zabbix agent 并且进
  • 用python做透视表_python制作数据透视表pivot_table方法详解

    数据透视表 Pivot Table 是一种交互式的表 可以进行某些计算 如求和与计数等 所进行的计算与数据跟数据透视表中的排列有关 之所以称为数据透视表 是因为可以动态地改变它们的版面布置 以便按照不同方式分析数据 也可以重新安排行号 列标
  • 3.2.spring boot 日志框架logback使用示例

    给类路径下放上每个日志框架自己的配置文件即可 SpringBoot就不使用他默认配置 slf4j 的了 logback xml 直接可被日志框架识别 logback spring xml 日志框架就不直接加载日志的配置项 由SpringBo
  • fx5u 脉冲输出指令PLSY(DPLSY)4种写法

    本文描述三菱FX5U的 脉冲输出指令PLSY DPLSY 4种写法 都有效 第一行 设置脉冲输出频率 第二行 DPLSY D0 K0 K1 FX5U 第二个参数是脉冲数量 设置为K0表示一值输出脉冲 第三个参数是轴号K1 表示Y0脉冲输出
  • C语言——数据在内存中的存储(上)

    数据在内存中的存储 1 数据类型的介绍 之前已经介绍过C语言中的基本数据类型了 主要有 char 字符数据类型 short 短整型 int 整形 long 长整型 long long 更长的整形 float 单精度浮点数 double 双精
  • Win10下AI CC 2019安装教程(超级详细-小白版)

    下载 Adobe Illustrator CC 2019 百度网盘下载地址 链接 https pan baidu com s 1i5MeAOu8 wrSep0nOy8OCA 提取码 k9gm 打开上面链接 用百度网盘软件下载 安装 右键压缩
  • 设计模式:建造者模式

    无论是在现实世界中还是在软件系统中 都存在一些复杂的对象 它们拥有多个组成部分 如汽车 它包括车轮 方向盘 发送机等各种部件 而对于大多数用户而言 无须知道这些部件的装配细节 也几乎不会使用单独某个部件 而是使用一辆完整的汽车 可以通过建造

随机推荐

  • NoSQL数据库简介

    目录 1 NoSQL数据库概述 2 NoSQL适用场景 3 NoSQL不适用场景 4 缓存数据库 1 Memcached 2 Redis 3 mongoDB 5 列式数据库 1 行式存储数据库和列式存储数据库 1 行式存储数据库 2 列式存
  • Redis Hyperloglog(浅析)

    在Redis中 每个HyperLogLog键只需要花费12KB内存 就可以计算接近2 64个不同的基数 HyperLogLog只能统计基数的大小 也就是数据集的大小 集合的个数 他不能存储元素的本身 不能向set集合那样存储元素本身 也就是
  • mybatis实战教程(mybatis in action),mybatis入门到精通

    原文地址 http blog csdn net techbirds bao article details 9233599 这个mybatis教程也不错 http limingnihao iteye com blog 781671 MyBa
  • String和StringBuilder、StringBuffer

    1 Srring 对于String来说 是把数据存放在了常量池中 因为所有的String 默认都是以常量形式保存 且由final修饰 因此在线程池中它是线程安全的 因为每一个String当被创建好了以后 他就不再发生任何变化 但是它的执行速
  • Qt中的多线程使用

    Qt提供了许多用于处理线程的类和函数 我们可以在从其中选择一种合适的来实现 总结下来一共有4种 QThread QThreadPool and QRunnable Qt Concurrent WorkerScript QML 下面就通过示例
  • android 卸载残留代码,安卓手机怎么彻底清除卸载残留文件夹?如何彻底删除安卓手机上的残留软件[多图]...

    小伙伴们在清理手机垃圾的时候会出现卸载的软件还留有没用的文件夹 但也不知道哪个文件是否能删除 是否有用 不知道哪些是没用的垃圾 并且还会占用很多的内存 接下来就由果粉客为大家详细介绍下安卓手机彻底清除卸载残留文件夹的方法吧 打开手机 文件管
  • 【云原生之kubernetes实战】Kompose工具的安装使用

    云原生之kubernetes实战 Kompose工具的安装使用 一 Kompose工具介绍 二 检查本地k8s环境 1 检查工作节点状态 2 检查kubectl版本 3 检查系统pod状态 三 安装Kompose 1 创建安装目录 2 下载
  • mybatis xml中枚举类

    1 枚举类 package com cloud constant import lombok AllArgsConstructor import lombok Getter Title Type java ProjectName com s
  • c#ThreadPool 线程池的使用

    一 设置线程池的最大最先线程数量 ThreadPool SetMaxThreads 16 16 设置线程池最大线程数量 ThreadPool SetMinThreads 8 8 ThreadPool GetMaxThreads out wo
  • 剑指offer 学习笔记 二叉树的深度

    面试题55 二叉树的深度 1 输入一棵二叉树 求该树的深度 只需遍历整棵树的每一条路径找出最长的即可 以下代码中的树结构为 include
  • .777勒索病毒数据恢复

    引言 在当今数字化时代 勒索病毒威胁日益严峻 其中 777 勒索病毒 是近期备受关注的一种恶意软件 本文91数据恢复将介绍 777 勒索病毒 的特点和工作原理 并探讨在遭受该病毒攻击后 被加密的数据文件如何进行恢复 如不幸感染这个勒索病毒
  • 初时Python博大精深

    Python是解释型语言 编译型vs解释型 编译型优点 编译器一般会有预编译的过程对代码进行优化 因为编译只做一次 运行时不需要编译 所以编译型语言的程序执行效率高 可以脱离语言环境独立运行 缺点 编译之后如果需要修改就需要整个模块重新编译
  • 卸载阿里云的mysql_阿里云linux上,记一次mysql重装——卸载,安装 mysql 5.7

    上一次的挖矿病毒可是搞惨我了 虽然勉强清掉了 但是不知道为什么mysql后来无法登录了 找了一切办法来解决 from百度 然并卵 好吧 重装 1 备份 备份原来的数据库 里面有我的所有数据库脚本文件 一一拷出来 root jun cd us
  • ABTest灰度发布

    ABtest一个总的目的和意图是 判断哪种种UI或rerank策略更优 通过事实的依据 CTR或下单率 判断哪种策略更符合用户的习惯和需求 我们经常会面临多个设计方案的选择 比如app或pc端某个界面的某个按钮是用红色还是用蓝色 是放左边还
  • mysql生成随机时间,随机整数

    SELECT FLOOR 7 RAND 6 取7到12的随机整数 包括7到12 SELECT FLOOR 12 rand 13 取12到24的随机整数 包括12到24 LPAD FLOOR 0 RAND 23 2 0 取0 24之间的随机数
  • JUC-13. JMM

    想了解更多JUC的知识 JUC并发编程合集 1 Java内存模型 JMM Java内存模型Java Memory Model 简称JMM 本身是一种抽象的概念 并不真实存在 它描述的是一组规则或规范 通过规范定制了程序中各个变量 包括实例字
  • 凌乱的日期

    import java util ArrayList import java util Arrays import java util Collections import java util HashSet import java uti
  • ubuntu安装驱动 USB转转串口 232串口 PL2303 DB9

    ubuntu安装驱动 USB转串口 RS232串口 PL2303 DB9 工具 安装软件minicom minicom功能快捷键 minicom的使用 cutecom软件安装 cutecom使用 工具 因为我使用的是rs232串口设备芯片为
  • 6.Docker容器底层实现了解与安全机制

    原文地址 点击直达 文章目录 0x00 底层实现 基本架构 简述I O设备 1 命名空间 2 控制组 子系统之Devices 子系统之cpuset 子系统之cpu 子系统之cpuacct 子系统之memory 子系统之blki
  • 一看就懂TCP/IP协议族全析

    TCP IP协议族 计算机与网络设备要相互通信 双方就必须基于相同的方法 如何探测到通信目标 由那一边现发起通信 使用哪种语言 使用那种操作系统 怎样结束通信等都需要事先确定 不同的硬件 操作系统之间的相互通信 所有的这一切都需要一种规则