协议栈

第一章计算机网络和因特网-day02

穿精又带淫゛_ 提交于 2020-04-07 05:53:46
1.互联网中的时延:处理时延、排队时延、传输时延、传播时延。   处理时延:检查分组首部和决定该分组导向何处的时间。   排队时延:分组在链路上等待传输的时延。   传输时延:分组经过路由器与交换机的过程的时延。   传播时延:分组在链路中的总延迟称为传播时延。 排队时延会导致丢包。 2.丢包:在队列中如果队列满了之后,后续到达的分组将会被路由器丢弃。 3.计算机网络中的吞吐量:是整个网络链路中的瓶颈链路的传输速率。 4.协议分层: 设计协议,以分层的方式组织。某层向它的上一层提供服务,即一层的服务时该层执行某些动作或者直接下层的服务来提供服务。 缺点:1.冗余的底层功能。2.某层的功能可能需要仅在其他某层才有的信息(比如时间戳)。 协议栈:所有层的协议加起来称为协议栈。 典型的协议栈:物理层、链路层、网络层、运输层、应用层。 报文:在应用层交换的信息分组称为报文。 运输层有两个运输协议:TCP与UDP。 网络层具有ip协议,所有的网络层的因特网组件必须运行ip协议,而且网络层还决定路由的路由选择协议。 封装:每经过一层协议,都要对信息经过一次封装,然后接受时在拆封、发送时再封装。 来源: https://www.cnblogs.com/lilinzhiyu/p/8525546.html

CVE-2020-3119 Cisco CDP 协议栈溢出漏洞分析

…衆ロ難τιáo~ 提交于 2020-03-30 16:44:52
作者:Hcamael@知道创宇404实验室 时间:2020年03月19日 原文地址: https://paper.seebug.org/1154/ 英文版本: https://paper.seebug.org/1156/ Cisco Discovery Protocol(CDP)协议是用来发现局域网中的Cisco设备的链路层协议。 最近Cisco CDP协议爆了几个漏洞,挑了个栈溢出的CVE-2020-3119先来搞搞,Armis Labs也公开了他们的分析Paper。 环境搭建 虽然最近都在搞IoT相关的,但是还是第一次搞这种架构比较复杂的中型设备,大部分时间还是花在折腾环境上。 3119这个CVE影响的是Cisco NX-OS类型的设备,去Cisco的安全中心找了下这个CVE,搜搜受影响的设备。发现受该漏洞影响的设备都挺贵的,也不好买,所以暂时没办法真机测试研究了。随后搜了一下相关设备的固件,需要氪金购买。然后去万能的淘宝搜了下,有代购业务,有的买五六十(亏),有的卖十几块。 固件到手后,我往常第一想法是解开来,第二想法是跑起来。最开始我想着先把固件解开来,找找cdp的binary,但是在解固件的时候却遇到了坑。 如今这世道,解固件的工具也就binwalk,我也就只知道这一个,也问过朋友,好像也没有其他好用的了。(如果有,求推荐)。

TCP/IP 协议栈初识

白昼怎懂夜的黑 提交于 2020-03-30 14:02:42
原文: 深入浅出 TCP/IP 协议栈 0. 简介   TCP/IP 协议栈是网络通信中一系列网络协议的综合,是核心骨架。它定义了电子设备接入因特网、以及数据在它们之间的传输方式,是一份标准。TCP/IP 协议采用 4 层结构,分别是 应用层、传输层、网络层和链路层 ,每一层都呼叫它的下一层所提供的协议来完成自己的需求。我们大部分的工作是在看得见摸得着的应用层上,所以下层的事情不用太操心;其次网络协议本身是体系复杂庞大,想要精通需要花费大量时间经历,但这不妨碍简单探索一下 一个主机上的数据要经过哪些过程才能发送到对方的主机上 。 0.5 物理介质   物理介质的重要性不言而喻,就是通过光纤、双绞线、无线电波等物理手段把电脑连接起来,电信号(0和1)在其中传输。物理介质的不同决定了电信号的出传输带宽、速率、传输距离以及抗干扰性等等。   TCP/IP 协议栈分为四层,每一层都由特定的协议与对方进行通信,协议之间的通信最终会被转化成 0、1电信号通过物理介质传输才能到达对方电脑。   下图是一张 TCP/IP 协议的基本框架:   每当通过 http 发起一个请求的时候,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的 首部 ,最终在链路层生成 以太网数据包 ,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包

iscsi的工作原理与优化(2)

纵然是瞬间 提交于 2020-03-27 10:59:46
2.1 iSCSI协议模型,iscsi【会话层协议,即应用协议】 iSCSI使用TCP/IP协议在不稳定网络上进行可靠的数据传输。iSCSI层和标准SCSI集在协议栈中的位置如图1所示。iSCSI层包括了已封装的SCSI命令、数据和状态。就是说若Initiator端的操作系统或应用程序需要进行数据写操作,SCSI的CDB(Command Description Block命令描述块)必须被封装以便能够在串行千兆位链接上传输到Target端。iSCSI属于端到端的会话层协议,它定义的是SCSI到TCP/IP的映射,即Initiator将SCSI指令和数据封装成iSCSI协议数据单元,向下提交给TCP层,最后封装成IP数据包在IP网络上传输,到达Target后通过解封装还原成SCSI指令和数据,再由存储控制器发送到指定的驱动器,从而实现SCSI命令和数据在IP网络上的透明传输。它整合了现有的存储协议SCSI和网络协议TCP/IP,实现了存储与TCP/IP网络的无缝融合。 iscsi的网络应用类型: SAN网络:Storage Area Network 存储区域网络,多采用高速光纤通道,对速率、冗余性要求高。使用iscsi存储协议,块级传输。 NAS网络:Network Attachment Storage,网络附件存储,采用普通以太网,对速率、冗余无特别要求,使用NFS

Linux - netfilter/iptables

点点圈 提交于 2020-03-12 03:00:47
参考: https://www.zsythink.net/archives/1199 Netfilter Netfilter是Linux内核中的一个数据包处理模块,它可以提供数据包的过滤、转发、地址转换NAT功能。Iptables是一个工具,可以用来在Netfilter中增加、修改、删除数据包处理规则。 Netfilter是位于网卡和内核协议栈之间的一堵墙,是一种免费的软件防火墙。 Netfilter中有三个主要的概念:规则、表、链,等级依次递增。 规则是对特定报文的处理说明,包括匹配字段和action。 链是一组规则的集合。 表是链中相同功能的规则集合。 规则 链 链可以看作网卡和内核协议栈之前的多道关卡,对于不通类型的报文,走不通的关卡进行处理,即匹配不通的链。 由网卡上送到内核协议栈的报文:PREROUTING -> INPUT 由网卡出来不能上送到内核协议栈的报文:PREROUTING -> FORWARD -> POSTROUTING 由内核协议栈送往网卡的报文:OUTPUT -> POSTROUTING 表 为了管理方便,链中相同功能的规则被组织在了一张表中,iptables已经为我们定义了四张表。 表的优先级次序(由高到低):raw -> mangle -> nat -> filter 表链关系 一张链中可以有多张表,但是不一定拥有全部的表。

ping and netstat

梦想的初衷 提交于 2020-03-10 07:25:10
ping 127.0.0.1 是你本地的回环地址! 实际上只要是127.0.0.1到127.255.255.255都是回环地址!都是可以PING检查的! 它能ping通,说明你的TCP/IP协议栈没问题!如果有问题,你就得检查TCP/IP协议栈,或者重新安装它! 你本地IP是检测你的网卡了,检查你网卡工作是否正常! (要不你做个试验,你把网卡禁用,你发现可以ping127.0.0.1,但ipconfig没有ip显示,是因为你的TCP/IP协议栈没问题,但网卡不存在,或者出错,或者禁用了!) 顺便说下推荐的网络检测,排错的顺序与方法: 1.ping 127.0.0.1 先检查TCP/IP协议栈是否正常 2.ping 本地ip 检查你网卡是否工作正常 3.ping 网关地址 检查和网关连接性 4.ping 远程网站 检查远程连接 netstat -h 网络相关的知识 16 来源: https://www.cnblogs.com/zhangjun1130/archive/2009/11/22/1608358.html

支持多主多从蓝牙5.0芯片-IN612

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-06 13:35:17
随着蓝牙联盟发布蓝牙 5.0 协议规范以后,各个蓝牙厂商都跟据蓝牙协议设计不同蓝牙 5.0 的芯片,其中 INPLAY 公司的蓝牙芯片也是其中之一;该公司推出了 SwiftRadio 系列的蓝牙芯片,具有多模协同 2.4G 无线协议栈,支持 2.4G 私有协议栈以及蓝牙 5.0 全协议栈的 SOC 芯片;有以下关键特性: LE 2Mbps PHY 速率;远距离 - 编码物理层;通道选择算法 #2 ;高效率周期性非连接广播模式;扩展广播模式;与 WLAN 共存;扩展数据包长度 - 高达 255 字节的有效负载;增强隐私保护,防止窥探和跟踪;安全连接以提高安全性;支持主从连接和多主多从; 随着无线物联网应用的不断发展演进,如今越来越多的应用需求灵活高效的组网能力。低功耗蓝牙技术( BLE5.0 )支持的多角色切换的技术特色可以很好地解决并实现无线局域网内的简单网络组网需求。那么什么是蓝牙的角色特性呢? 蓝牙联盟技术规定每一对设备之间进行蓝牙连接通讯时,一个设备应该是主角色,另一个设备应为从角色,通信时,主角色设备永远是发起者进行周边蓝牙设备扫描,从设备相应后发起配对,建立连接后,双方即可收发数据。然而,同一蓝牙设备可以同时兼具多种角色,例如:单主机、单从机、多从机和主从一体(一主多从或多主多从)。 单主机和单从机很容易理解,这里就不再赘述。多从机是指主机可以同时连接多个从机设备

ZigBee无线应变采集装置

≡放荡痞女 提交于 2020-03-04 05:53:13
1 水工结构健康监测的应变采集方式 随着大型水利水电工程的陆续建设,对水工建筑物及相关土木工程结构的健康监测也变得越来越重要。特别是近些年来,一些重大事故的警示以及材料技术、计算机技术、通信技术、智能控制技术的发展,都促进了结构健康监测技术的发展和应用。 结构健康监测分为整体监测和局部监测。而无论局部监测还是整体监测,都是以传感器准确采集传输数据为前提和基础,各种结构健康监测的数据采集主要采用的是传统“有线”传感器来实现,尽管这种采集方式具有采集信号准确、抗干扰性好、产品系列化等特点,但是利用“有线”传感器组成的监测网络布线量大、安装和维护费用高、可靠性差,甚至在一些结构中无法实现布线。随着传感技术、 ZigBee 数传模块通信技术和 MEMS 技术的发展,无线传感技术得到了发展并能够克服有线传感网络的布线量大、费用高等不足,在实际应用中 ZigBee 无线模块得到了很大的发展。 应变是反映结构局部状态的重要参数,在结构局部监测中非常重要。现存的应变采集装置要么体积较大,不能布置在传感元件附近,要么没有配置无线收发接口,需要通过有线连接与控制中心通信。因此一款体积小、功耗低的无线 ZigBee 数据采集装置对于应变参数的采集是十分必要的。本文介绍一款基于 ZigBee无线模块 的电阻片式应变采集装置。 2 应变测量原理 电阻应变片在外力作用下产生机械变形,从而引起电阻变化

实战Linux Bluetooth编程(五) Socket与Bluetooth

风流意气都作罢 提交于 2020-03-02 12:30:59
Linux下Bluetooth编程,借用了Socket体制。也就是说,BlueZ Kernel部分将Bluetooth协议栈以网络协议的形式添加进网络协议栈,这样极大的方便了用户编程。下面Sam就结合Socket概念将Linux Bluetooth做个研究。 1957年10月4日,星期五,苏联发射了人类历史上第一颗人造地球卫星--Sputnik.这标志着人类外太空时代的开始。这颗卫星篮球大小,在发射98分钟后到达运转轨道,可以通过短波40.002MHz收听到它的声音。这也标志着苏联在航天科技领域超过美国。但当时谁能想到,Sputnik的升空竟然促进了TCP/IP和Internel的出现。(Sam:不知道朝鲜那个轨道高度几百米的卫星会促成什么出现,嘿嘿)。被Sputnik所刺激的美国总统艾森豪威尔五星上将积极推动ARPA。又因为美国政府为了公平起见,每次采购计算机时都从不同设备制造商处购买。大家很快发现,各个计算机无法兼容。1962年,Licklider提出:各个计算机高度自治,但他们也应该能够相互通讯。这就是ARPA网,它成为Internel的前身。 一:理解Socket: 在使用手机与女朋友联系时,必须用手机拨她的号码,然后心情坎坷的等待她的应答。当双方通话时,就建立了一个具有两个端点的通信线路。 Linux中的Socket与电话非常相似。具体问题,稍后再分析。 二

物联网开发重点

淺唱寂寞╮ 提交于 2020-03-01 19:38:16
1、终端侧 硬件获取。这是一个最容易被忽视的问题,绝部分公司不具备高速数字电路、高可靠性电源PCB设计能力。即使具备在前期验证阶段,哪个boss愿意投钱做实验板?所以一般要拿到芯片公司的评估板、第三方的开发板等做前期验证。 无线模块开发。现在无线模块的开发难度大大降低,根本不需要懂蓝牙协议栈、LWIP协议栈等等,直接都是AT指令等开发。但是这些其实都是带了接口转换的,速度未必有直接来的快,比如PHY芯片用MII接口与芯片通信速率要远远高于用转换模块,难度在于需要自己移植协议栈。但是要注意不同的模块的不同,比如蓝牙模块如果自己开发要去认证的,用模组则不用。所以具体问题具体分析,当然这些都不难。 FreeRTOS的运用,现在这款RTOS运用越来越广,NXP、瑞昱、亚马逊等等芯片厂、互联网公司都在推。物联网项目一般的任务数量比较多,用RTOS来管理还是比较好开发的。 安全性能。这个是很多人容易忽视的,校验、防物理攻击等,可以参考STM32L5芯片。 联网功能。终端侧需要注意MQTT、HTTP等物联网网络协议的应用层协议开发。这个东西也不算太新,这几年太多人做了。 AI功能。这个比较新,在能跑安卓的终端上这个不是问题,直接在应用层调用API即可比如高通的SNPE等。MCU就比较难,这个主要是还没有成熟的方案。 2、云端 这个本不属于嵌入式开发的领域,但是要知道服务器的API接口