网络
lengye7
这个作者很懒,什么都没留下…
展开
-
4B/5B编码原理
什么是4B/5B编码? 4B/5B编码是百兆以太网(即快速以太网)中线路层编码类型之一,就是用5bit的二进制数来表示4bit二进制数,映射方式如下表所示:为什么要进行4B/5B编码?在通信网络中,接收端需要从接收数据中恢复时钟信息来保证同步,这就需要线路中所传输的二进制码流有足够多的跳变,即不能有过多连续的高电平或低电平,否则无法提取时钟信息。4B/5B和曼彻斯特都是这种通过跳变来同步时钟的编码。Manchester(曼切斯特)编码可以保证线路中码流有充分的跳变,因为...转载 2020-05-09 20:51:05 · 3151 阅读 · 0 评论 -
RFC2544性能测试
RFC2544性能测试,由RFC定义的一组测试,RFC2544性能测试,网络互联设备的定标方法。中文名RFC2544性能测试四个测试吞吐量,延迟,帧丢失率,背靠背主要测试参数吞吐概率RFC2544协议用于评测网络互联设备目录1定义 2测试参数定义编辑RFC1242性能测试,网络互联设备的定标术语。定义了四个测试:吞吐量,延迟,帧丢...转载 2019-03-07 00:17:26 · 1291 阅读 · 0 评论 -
为什么手机打电话的时候不能同时上网?
相信大家在外面用运营商网络玩游戏,尤其是王者荣耀这类即时对战类的时候,最担心的就是突然来个短信,或者来一个电话,都会导致直接掉线,感觉这游戏没法玩了,大骂运营商信号不好。实际上,这是一个技术问题。现在运营商使用的数据网络,多数为4G网络,4G网络主要完成数据和流量的业务,当收到语音或短信的时候,手机就会触发CSFB(电路域回落),让网络掉落回到2G的状态,中国移动手机就掉落到了GSM网络,中国...原创 2019-03-16 22:47:45 · 9231 阅读 · 0 评论 -
以太网之物理层
这一节来学习一下以太网的物理层,IEEE802.3标准就给出了以太网的物理层结构,如下图所示红色框内所标注的。 我们可以看到物理大致可以分为: GMII介质无关接口、 PCS物理编码子层,PMA物理介质连接层,PMD物理介质相关层、MDI接口 、MEDIUM物理介质。 我们从下往上看,首先看物理介质层。 1、物理介质层 这里所...转载 2019-03-06 23:38:10 · 1407 阅读 · 0 评论 -
以太网MAC和PHY之间的接口总结
1、100M 接口(Fast Ethernet快速以太网,也称百兆以太网)FE速率模式下各种MII(MediaIndependent Interface)接口对比:MII接口兼容10/100M以太网,由于占用管脚数太多,主要应用早期的设备接口中,在一般的高密度(8口)端口PHY以及MAC/switch芯片中已经很少使用。RMII(reduced MII)接口收发的数据位宽为2bit,...转载 2019-03-06 23:31:16 · 12225 阅读 · 2 评论 -
为什么当前tcp/ip的链路层没有llc层?
20世纪80年代至90年代,局域网标准众多,如DIX EThernet V2以太网,802.3以太网,802.5令牌环网,802.4令牌总线网等,数据链路层为了更好的适应多种局域网标准,IEEE802委员会将数据链路层拆分成两个子层,逻辑链路控制LLC(Logical Link Control)子层和媒体接入控制MAC(Medium Access Control)子层。90年代后,激烈竞争的局域...转载 2019-03-14 10:23:37 · 1720 阅读 · 0 评论 -
LLC子层为什么不在数据包中体现?LLC子层具体作用是什么?Ethernet_II如何表示帧结束?
前言:LLC子层看懂了又忘记,写在这里方便记忆。MAC就不说了。LLC格式百度。LLC子层IEEE802.3帧中的LLC子层除了定义传统的链路层服务之外,还增加了一些其他有用的特性。这些特性都由DSAP、SSAP和Control字段提供。例如以下三种类型的点到点传输服务:无连接的数据包传输服务目前的以太网实现就是这种服务。面向连接的可靠的数据传输服务...转载 2019-03-13 23:41:33 · 4872 阅读 · 0 评论 -
Ethernet和802.3的区别及历史
1.前言Ethernet 和 802.3 并不是一回事,虽然我们经常混用这两个术语2.历史上以太网帧格式2.1EthernetV1这是最原始的一种格式,是由XeroxPARC提出的3MbpsCSMA/CD以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成EthernetV1标准2.2 EthernetV2(ARPA)Etherne...转载 2019-03-13 21:22:52 · 14617 阅读 · 0 评论 -
ethtool 解决网卡丢包严重和网卡原理
1 概述最近业务上老有问题,查看发现overruns值不断增加,学习了一下相关的知识。发现数值也在不停的增加。发现这些 errors, dropped, overruns 表示的含义还不大一样。[root@localhost ~]# ifconfig eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500...转载 2019-03-13 21:05:00 · 2046 阅读 · 0 评论 -
以太网MAC层协议
MAC发送模块 MAC发送模块可将上层协议提供的数据封装之后通过MII接口发送给PHY。发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过 主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,然后通过PHY提供的载波侦听和冲突检测信号,在信道空闲时通过MII接口将数据以4位的 宽度发送给PHY,最后由PHY将数据发送到网络上。 发送模块由CRC生成模块(crc_g...转载 2019-03-14 15:12:13 · 5817 阅读 · 0 评论 -
数据链路层中MAC子层和LLC子层的功能分析
1.何为数据链路层的(DATA LINK LAYER)的MAC子层和LLC子层? MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性;在MAC子层的诸多功能中,非常重要的一项功能是仲裁介质的使用权,即规定站点何时可以使用通信介质。实际上,局域网技术中是采用具有冲突检测的载波侦...转载 2019-03-15 15:31:17 · 13488 阅读 · 0 评论 -
libcurl 探索之旅:libcurl 分别在 Unix 环境和 Windows 环境下的编译与使用
一、引言因为工作的原因,加上自己的一点点兴趣爱好,今天花了一整天的时间去探索和学习 libcurl。libcurl 的文档是非常齐全的,并且在获取到了源代码之后,里面的代码、文档、工具等等都是非常完善的。可是对于新人来说,想要从这么复杂多样的文档中摸索出来适合自己入门的方向,实在是有些困难。这篇博客,就是想要给同样深陷于 libcurl 复杂的文档中不能自拔的程序员同僚们一条我自己走出来的...转载 2019-07-02 17:47:53 · 373 阅读 · 0 评论 -
UTF-8有BOM和无BOM的区别
概念:在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE“。如果接收者收到FEFF,就表明这个字节流是大字节序的;如果收到FFFE,就表明这个字节流是小字节序的。因此字符”Z...转载 2019-05-06 23:34:16 · 1568 阅读 · 0 评论 -
最好的开源网络入侵检测工具
最好的开源网络入侵检测工具coco coco 2018-01-25 11:57:10 在企业中,为了保护数据,防止网络中的违规事件是一件严重的事情。 任何恶意软件的利用都会给公司造成很大的损失。 安全地维护网络是所有系统管理员希望实现的目标。 让我们来看看几个重要的开源网络入侵检测工具。 在当今世界,数据泄露,威胁,攻击和入侵正变得非常复杂。网络犯罪分子和黑客提出了进入商业和家庭...转载 2019-03-26 13:27:28 · 1645 阅读 · 0 评论 -
流控机制的解析
流控是以太网的一项基本功能,可以防止在端口拥塞的情况下出现丢帧。在深入分析之前,先看一个简单的应用场景: 端口A和B接收报文,端口C向外转发报文。如果端口A和B的收包速率之和大于端口C的带宽,那么部分报文就会缓存在设备内部的报文buffer中。当buffer的占用率达到一定程度时,端口A和B就会向外发送PAUSE帧,通知对端暂停发送一段时间。PAUSE帧只能阻止对端发送普通的数据帧,不能...转载 2019-03-13 20:29:23 · 5102 阅读 · 0 评论 -
以太网帧间隙
以太网帧间隙1.什么是IFG?(What)IFG(Interframe Gap),帧间距,以太网相邻两帧之间的时间断;以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙,即帧间距IFG也可称其为IPG (Interpacket Gap)。IFG指的是一段时间,不是距离,单位通常用微秒(μs)或纳秒(ns)。如下图所示:图 1 帧间距2.为什么需...转载 2019-03-17 14:57:43 · 1788 阅读 · 0 评论 -
以太网帧的小于最短长度和大于最长长度的处理?小于46字节和大于1500字节
1、当数据小于64字节的时候,pad是由协议栈填写还是mac芯片填写?由mac芯片进行填写。2、当数据大于1500字节(MTU值)的时候,数据分片是由协议栈分片还是mac层分片?由协议栈分片。如果MAC层收到了大于1500字节的帧数据,而MAC又没开启发送巨帧状态的话,该帧会被丢弃,如果开启了巨帧状态,那么该帧会正常发送。...原创 2019-03-16 17:06:50 · 3440 阅读 · 0 评论 -
关于HTTP协议,一篇就够了
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系...转载 2019-03-15 16:03:49 · 364 阅读 · 0 评论 -
服务器网卡丢包
有时会发生网络丢包现象,此处的丢包有两种,真正意义上的丢包和逻辑丢包(此处以tcp协议栈丢包为例)。之前falcon-agent也上报了相应的指标,在此处对一些疑问给出尽量详细的解释。二、linux系统pakcet接收的过程过程简单概括为 网卡收到包以后通过DMA传至ring buffer (ring buffer是网卡内部的缓冲区) 网卡触发硬件中断,中断处理函数...转载 2019-03-13 21:03:18 · 2589 阅读 · 0 评论 -
Ethernet(以太网)之 物理介质(10Base、100Base-T、100Base-TX等)
在搞网络这一块的时候,看到了100Base-T、100Base-TX等这些东西,在IEEE802.3中,也到处是这些词。大体了解了一下,下面是正文。 以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection,载波监听多路存取和冲突检测)介质访问控制方式的局域网技术,最初由Xerox公司于1975年研制成功,1979年7月~1...转载 2019-03-05 16:47:54 · 5521 阅读 · 0 评论 -
802.1标准
IEEE 802.1是一组协议的集合,如生成树协议、VLAN协议等。为了将各个协议区别开来,IEEE在制定某一个协议时,就在IEEE 802.1后面加上不同的小写字母,如IEEE 802.1a定义局域网体系结构;IEEE 802.1b定义网际互连,网络管理及寻址;IEEE 802.1d定义生成树协议;IEEE 802.1p定义优先级队列;IEEE802.1q定义VLAN标记协议;IEEE802...转载 2019-03-05 16:06:08 · 10199 阅读 · 2 评论 -
网络传输过程中的字节序列问题
一、大端存储和小端存储 1、大端存储:多于一个字节的数据,把高字节部分存储在低地址,把低字节部分存储在高地址。 例:0x12345678这个数据,我们一般认为左边是高字节部分,右边是低字节部分,那么在采用大端存储的计算机内部的存储则为下面这样 低地址: 0x12(高字节) >>>>>: 0x34原创 2017-05-21 11:39:06 · 6634 阅读 · 0 评论 -
利用asio实现了一个服务器,多个客户端连接,并异常断开连接,发现后面再也连接不上服务器了,不能建立新连接了。原因分析
最近利用Boost::asio实现了一个服务器,测试过程中发现大量客户端连接服务器,然后客户端异常断开之后,已经连接的客户端能正常工作,但是却不能建立新的客户端连接了。原因分析:使用netstat -nlpt 查看分析发现服务器监听端口正常netstat -ap查看已经建立的连接数量发现该服务器存在大量的close_waiting和last_ack的状态的半连接,甚至原创 2017-11-26 20:49:05 · 2846 阅读 · 1 评论 -
linux下遇到服务器的网络连接限制数为1024个的原因及修正
利用Boost::asio写了一个TCP服务器,测试并发数量,发现超过1024个连接就会失败。一开始怀疑asio库的原因(查看了asio的win_fd文件,发现其超过1024个文件描述符之后,会再动态增加512个文件描述符),后来发现是由于linux的资源限制,linux的默认资源限制为进程只能打开1024个文件描述符,由于socket连接也是文件描述符表示的,所以超过1024个连接就无法再建原创 2017-11-26 19:35:07 · 3157 阅读 · 1 评论 -
序列化与反序列化(其实就是一种将各种数据转换成二进制流与二进制流的读取的概念)
序列化:将数据结构转换称为二进制数据流或者文本流的过程。序列化后的数据方便在网络上传输和在硬盘上存储。反序列化:与序列化相反,是将二进制数据流或者文本流转换称为易于处理和阅读的数据结构的过程。本质其实还是一种协议,一种数据格式,方便数据的存储和传输。为什么需要序列化?我们知道,计算机世界往往是根据二进制来区分数据的,例如一个字节、两个字节、三个字节等等,但是,由于在内存中或者磁盘上原创 2017-11-24 00:10:48 · 6189 阅读 · 0 评论 -
vmware的三种网络模式
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链接会失效,故转载此篇文章由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有vmwar转载 2017-12-19 23:32:01 · 189 阅读 · 0 评论 -
TCP的粘包问题
前言TCP是一个面向连接的(logical)、可靠的(reliable)、字节流协议。其保证了数据的可靠和有序,同时其具有流量控制(防止了后续数据刷新缓冲区,造成前面数据的丢失,这个是有接收方控制的),从而保证了数据的完整性,其丢包是很难发生的,几乎不会发生丢包,最多造成高延迟。但是,其使用的是缓冲区发送和接收数据的方式,也会造成两次或多次数据合并在一起,并发送去出或者等待应用层来读取数据原创 2017-11-19 15:12:17 · 254 阅读 · 0 评论 -
session的理解及应用
In computer science, in particlular networking, a session是一种在多个设备、计算机或者用户(login session)之间进行的半永久性(其信息传输通道是活动的)的交互式(动作)的信息交换过程,即连接建立到连接断开的这一时间段中一系列的信息交换的过程,更多的是一些列状态的迁移过程,也称为dialogue,conversation,meeti原创 2017-11-12 17:27:01 · 427 阅读 · 0 评论 -
“流“概念的理解
计算机中的流:通常来说计算机所说的流是指stream,往往是对一种有序连续的数据(其单位可以是bit,byte,packet)的抽象描述。计算机网络中的流:这里的流是说flow,更多的是指端到端的一次网络数据传输过程。其包含连接的建立,数据的传输。一条流往往指的是一次完成的数据传输,其包含了该过程中所有的数据包。但是一个连接可以有多个流,即在连接建立之后,可以有多次的数据传输。mark:计算机原创 2017-11-11 23:38:02 · 9493 阅读 · 1 评论 -
syncookie的原理与linux内核实现
SYN Cookie的缺陷:1、无法理解SYN包中一些字段,例如MSS、时间戳等2、由于无状态机制,如果客户端回应的ACK在传输过程中丢掉了,就会导致客户端和服务器端状态的不一致,客户端认为连接已经建立,但是服务器端没有建立,通常这个问题可以通过SYN-ACK的重传机制来解决,但是SYN Cookie中没有这部分,最后就是服务器发送RST中断连接。3、SYN Cookie存在ACK F转载 2017-09-11 16:01:55 · 1149 阅读 · 0 评论 -
网卡工作在数据链路层
转载自 http://blog.csdn.net/victory08/article/details/52761183以太网是由Ethernet音译过来的,Ether是以太的意思,曾经被认为是电磁波的传播载体。以太网是局域网的众多实现技术中的一种,主要协议是CSMA/CD(Carrier Sense Multiple Access with Collision Detection)即带冲转载 2017-09-19 11:46:24 · 2812 阅读 · 0 评论 -
混杂模式和非混杂模式
集线器网络时代下,集线器的工作原理是转发数据包给所有非源端口,所以,非目的主机也会收到数据包。1、标准模式 一般情况下,我们知道网卡往往只会接受目的地址是他的数据包而不会接受目的地址不是的它的数据包,所以我们应该知道网卡只会接受我们该接收的包而不会接受其他的地址的网络数据包。2、混杂模式 混杂模式是指一台主机能够接受所有经过它的数据流,不论这个数据流的目原创 2017-05-05 09:44:22 · 18633 阅读 · 1 评论 -
字符集和编码格式的关系、浅析ascii、asci、gbk、unicode、utf-8之间的关系
前言一开始人类的世界只有电路的通断和电位的高低,后来有一群人,他们将电位的变化进行组合,构成了更加复杂,更多变化的电路,人们联想到这种电路的其中一种组合不正好可以表示一种状态,那么规定其中一种状态为一个数字,正好就可以进行数学运算,于是经过电路设计和实验,出现了加法运算器、减法运算器、乘法运算器、除法运算器等等等。再后来,有一群人他们将8个电位进行组合,构成了用来表示某种状态的基本单元,...转载 2018-01-28 18:15:12 · 1899 阅读 · 0 评论 -
以太网的最小帧长问题
数据链路层的传输细节2017年5月23日 数据链路层的传输主要为上层提供服务,其主要有一下几种形式的网络,以太网、令牌环网、F D D I(光纤分布式数据接口)及R S-2 3 2串行线路等。本文主要以以太网为例进行分析。 以太网传输主要采用一个CSMA/CD协议传输,即带冲突检测的载波监听多路接入,这个协议主要针对非全双工的信息传输方式。另,8 0 2委员会公布了一个稍有...原创 2017-05-23 11:49:49 · 7708 阅读 · 0 评论 -
802系列文档
局域网(LAN)的结构主要有三种类型:以太网(Ethernet)、令牌环(Token Ring)、令牌总线(Token Bus)以及作为这三种网的骨干网光纤分布数据接口(FDDI)。它们所遵循的都是IEEE(美国电子电气工程师协会)制定的以802开头的标准,目前共有11个与局域网有关的标准,它们分别是: IEEE802.1── 通用网络概念及网桥等 IEEE802.2── 逻辑链路控制...转载 2019-03-05 16:02:30 · 369 阅读 · 0 评论 -
如何确定一条流
四元组是: 源IP地址、目的IP地址、源端口、目的端口五元组是: 源IP地址、目的IP地址、协议号、源端口、目的端口七元组是: 源IP地址、目的IP地址、协议号、源端口、目的端口,服务类型以及接口索引关于服务类型:TOS:服务类型(TOS)字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置...原创 2019-03-04 22:21:32 · 1129 阅读 · 1 评论 -
网卡的零拷贝理解
转自:http://blog.csdn.net/freas_1990/article/details/9173713Jack:最近听说了网络处理的“零拷贝”技术,觉得非常神奇,在网上查阅了很多资料。不过,并不是太明白——知其然,而不知其所以然。你能通俗地解释一下吗?我:这是一个相对比较复杂的话题,说起来话就多了。本质上来说,其实就是80386的分页管理变异而已。Jack:分页管理?这个...转载 2019-02-24 17:46:53 · 602 阅读 · 0 评论 -
Linux的网络协议中的网卡缓冲区
程序员可能关心的基本网卡知识网卡相关介绍:http://www.linuxidc.com/Linux/2012-12/77132.htm一、什么是网卡?它是主机的网络设备,本身是LAN(局域网)的设备,通过网关、路由器等设备就可以把这个局域网挂接到Internet上。网卡工作在物理层和数据链路层的MAC子层,数据链路层还有LLC层,它在MAC层之上。网卡按照数据链路层控制来分有以太网卡...转载 2019-02-23 18:26:17 · 5342 阅读 · 0 评论 -
网络高并发的笔记
嗯,这个数字以你的机器配置而言差不多到了ASIO的尽头了。话说回来其实也不用特别纠结锁这事,在Linux下用epoll+多线程,想要没锁几乎是不可能的事,除非就像我之前说的那样,每个线程一个epollfd,不过这样又会有load balance的问题。一般在大型应用中常见的做法是划分几个io_service/epollfd,每个io_service对应一组线程,这样既不会让负载特别不平衡,也能...原创 2019-01-07 18:18:29 · 916 阅读 · 1 评论 -
几种基于udp的可靠网络协议介绍和比较
UDT库 https://sourceforge.net/projects/udt/?source=directory C#包装:https://github.com/dump247/udt-net UDT协议是什么?是一种基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)。UDT协议的主要作用是什么?UDT的主要目的是支持高速广域...转载 2018-06-12 09:15:42 · 10011 阅读 · 0 评论