网络相关
文章平均质量分 54
mrwangwang
这个作者很懒,什么都没留下…
展开
-
【交换安全】DAI - Dynamic ARP Inspection 详解
一、ARP协议原理1.协议概述Address Resolution Protocol在以太网环境中,节点之间互相通信,需知晓对方的MAC地址在现实环境中,一般采用IP地址标示通信的对象,而ARP的功能就是将IP“解析”到对应的MAC地址。2.协议漏洞基于广播,不可靠ARP响应报文无需请求即可直接发送,这给攻击者留下巨大漏洞没有确认转载 2016-06-01 11:40:34 · 9738 阅读 · 1 评论 -
计算机网络【八】:应用层
今天我们来快速地浏览一下传输层之上的应用层所使用的协议,下面将简要地列出应用层上运行的几个协议及其一些要点。一、域名系统DNS DNS主要用于在IP与域名之间建立映射,我们在网址搜索中输入好记的域名,计算机实际通信路由的还是IP地址。因特网体系使用了分层的域名结构,顶级域名分为国家级顶级域名(如cn/jp/us/uk等,都表示国家地域)和通用顶级域名(如com/edu/org/go转载 2014-08-28 11:37:08 · 547 阅读 · 0 评论 -
计算机网络【七】:可靠传输的实现
TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;转载 2014-08-28 11:07:43 · 708 阅读 · 0 评论 -
TCP滑动窗口机制
TCP协议在能够发送数据之前就建立起了“连接”。要实现这个连接,启动TCP连接的那一方首先将发送一个SYN数据包。这只是一个不包含数据的数据包, 然后,打开SYN标记。如果另一方同时在它收到SYN标记的端口通话,它将发回一个SYN+ACK:SYN和ACK标志位都被打开,并将ACK(确认)编 号字段设定为刚收到的那个数据包的顺序号字段的值。接下来,连接发起方为了表示收到了这个SYN+ACK信息,会向转载 2014-08-28 10:26:33 · 857 阅读 · 0 评论 -
以太网端口在不发送数据的时候,波形是什么样子
传统以太网(10M)在无数据发送时发送NLP(一般链路脉冲),这种脉冲每隔16ms发送一个,每个宽100ns 峰值 1V。 快速以太网(100M)采用4B5B块编码,没有数据发送时就发送字符IDLE。IDLE的5B编码就是“11111”,也就是持续全“1”,但是要注意,100BASE-TX的线路编码是多电平三级码(MLT-3),编码规则是“1变0不变,正负交替出现”,所以画出波形图来是正、负、零转载 2014-08-15 11:43:08 · 6783 阅读 · 0 评论 -
The Difference in PIM Dense vs. DVMRP
HistoryDVMRP is the older of the two multicast protocols. It was introduced as Internet Engineering Task Force Request For Comments -- or IETF RFC 1075 -- in November 1998 by Stanford Univ转载 2014-08-28 17:46:17 · 629 阅读 · 0 评论 -
TCP 滑动窗口的简介
POSTED BY ADMIN ON AUG 1, 2012 IN FLOWS34ARTICLES | 0 COMMENTSTCP的滑动窗口主要有两个作用,一是提供TCP的可靠性,二是提供TCP的流控特性。同时滑动窗口机制还体现了TCP面向字节流的设计思路。TCP 段中窗口的相关字段。TCP的Window是一个16bit位字段,它代表的是窗口的字节容量,也就转载 2014-08-27 18:45:27 · 1457 阅读 · 0 评论 -
Linux如何实现镜像端口
在所有高端型号,大多数中端型号以及部分低端型号的交换机/路由器上,都可以配置一个或者多个镜像端口,它是流量分析的利器。然而,Linux上没有现成的技术可以实现镜像端口,当然,我指的不是Linux 3.x(x是几,忘了)以上的内核,这些内核已经支持了镜像,但不够好。起码2.6.35的内核是不能支持的,那么Linux实现的软交换机属于哪个档次呢?关键是,很多高端的网络产品也是基于Linux实现的,没有转载 2014-09-10 14:15:01 · 2640 阅读 · 1 评论 -
Internet路由之路由表查找算法概述-哈希/LC-Trie树/256-way-mtrie树
说明:本文没有源码分析的内容,然而我认为能理解本质比能看懂源码更有用,因为理解了本质之后,你也许就不用再看源码了,你甚至都可以写源码了。这就是Linux内核和Cisco的网站中包含大量文档的原因。引:路由是互联网的一个核心概念,广义的讲,它使分组交换网的每个节点彼此独立,通过路由耦合在一起,甚至在电路交换网中,虚电路的建立也依赖路由,路由就是网络中数据通路的指向标。狭义的讲,路由专指IP路由,转载 2014-09-09 13:30:30 · 908 阅读 · 0 评论 -
核心层(网络的高速交换主干)、汇聚层(提供基于策略的连接)、接入层 (将工作站接入网络)。
三层网络结构是采用层次化架构的三层网络。 三层网络架构采用层次化模型设计,即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构设计的网络有三个层次:核心层(网络的高速交换主干)、汇聚层(提供基于策略的连接)、接入层 (将工作站接入网络)。 、核心层:核心层是网络的高速交换主干,对整个网络的连通起到至关重要的作用。核转载 2014-08-22 18:33:51 · 5706 阅读 · 0 评论 -
关于IGMP Snooping和IGMP Proxy
目前在IP网络中,运营商的网络出于提供更多的服务为目的,不再以xDSL的形式想用户提供,而是直接提供统一的宽度接口,在一些宽带小区中这种形式尤为普遍。 就目前看,在宽带小区上应用最多的除了上网服务之外,更多的是提供IPTV的应用。而在IPTV的推广中,对于涉及的接入层交换设备,一般都要求设备支持VLAN技术和组播技术。而对于接入层的交换机来讲,对于组播的支持不外下面这两种:IGMP转载 2014-08-22 18:08:55 · 4015 阅读 · 1 评论 -
IGMP snooping和IGMP proxy的区别
在工作中,有的试验会牵扯到IGMP snooping,谈到IGMP snooping,又难免会想到IGMP proxy,有的时候多想像,多思考一下或许有更深的体会哦.那他们之间的区别是什么呢,先来看下面这个图,l2 switch开启了IGMP snooping,router1是一个远程multicast router,用PIM协议来转发组播包.对于PIM,没有用过也没研究过,它和I转载 2014-08-22 18:26:58 · 1124 阅读 · 0 评论 -
澄清关于TUN/TAP的概念
澄清关于TUN/TAP的概念 --初看VTUN的源代码 近期看了一些关于Linux下的虚拟网卡设备的文章,都写得不错,比如IBM developerWorks和china unix上的,解释了相关的驱动程序设计的问题。 但当我自己初看了VTUN的源代码,发现还是有些美中不足的地方。先把自己的看法抛砖引玉,希望大家一起探讨。最近很少用CSDN转载 2014-07-30 11:43:42 · 3395 阅读 · 1 评论 -
虚拟网卡 TUN/TAP 驱动程序设计原理
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动转载 2014-07-30 11:37:09 · 590 阅读 · 0 评论 -
CSMA/CA与CSMA/CD的区别
1.CSMA/CD媒体访问控制协议 由于以太网(Ethernet)成为现存局域网络结构的绝大多形式,CSMA/CD(Carrier Sense Multiple ACcess/Collision Detection)载波监测多址接人协议也成为局域网采用最多的MAC协议。CSMA/CD适宜于总线型局域网拓扑结构的随机竞争型媒体访问控制。总线型网络允许同一时刻只有一个节点(Node)发送转载 2014-07-09 11:51:23 · 1599 阅读 · 0 评论 -
TCP与UDP的区别
1.无连接VS面向连接 UDP是无连接的,TCP面向连接的,这个连接指的就是在运用TCP协议之前,必须先建立TCP连接,在数据传送完毕之后必须释放连接,通俗地将通信的双方知道彼此的存在这个连接是一个虚电路。影响:①因为要建立连接所以TCP有建立连接的“三次握手”,所以UDP在发送数据之前时延更加小。②因为面向连接是端到端的通信,所以多播和广播就只能运用U转载 2014-08-28 10:29:46 · 639 阅读 · 0 评论 -
TCP的流量控制
1.TCP的滑动窗口 为了提高信道的利用率TCP协议不使用停止等待协议,而是使用连续ARQ协议,意思就是可以连续发出若干个分组然后等待确认,而不是发送一个分组就停止并等待该分组的确认。 TCP的两端都有发送/接收缓存和发送/接收窗口。TCP的缓存是一个循环队列,其中发送窗口可以用3个指针表示。而发送窗口的大小受TCP数据报中窗口大小的影响,TCP数据报中的窗转载 2014-08-28 10:26:31 · 561 阅读 · 0 评论 -
RTSP协议介绍
1. 实时流协议RTSP RTSP协议以客户服务器方式工作,它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协议”。1.1. RTSP协议简介 要实现 RTSP 的控制功能,不仅要有协议,而且要有专门的媒体播放器(media player)和媒体服务器转载 2015-03-02 17:34:56 · 577 阅读 · 0 评论 -
STUN/TURN/ICE协议在P2P SIP中的应用(一)
1 说明 本文详细描述了基于STUN系列协议实现的P2P SIP电话过程,其中涉及到了SIP信令的交互,P2P的原理,以及STUN、TURN、ICE的协议交互 本文所提到的各个服务单元的交互均使用UDP,不涉及TCP的打洞及其他和TCP相关的操作。 本文假设通信双方均没有防火墙对协议以及端口的限制。转载 2015-03-02 13:32:17 · 1643 阅读 · 0 评论 -
NAT的四种类型及类型检测
考 虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身 便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。用语定义转载 2015-03-02 13:27:50 · 677 阅读 · 0 评论 -
voip呼叫过程
http://blog.chinaunix.net/space.php?uid=20655530&do=blog&id=1589483学习 SIP 协议最快捷的方法是通过范例来学习,找到了一个完整的呼叫流程,let's go! INVITE主叫方Tesla首先发起 INVITE 消息到被叫方Marconi。INVITE 消息包含会话类型和一些呼叫所必须的参数转载 2015-03-02 16:37:29 · 2836 阅读 · 0 评论 -
sip头字段解释
http://www.iptel.org/sip/intro/scenarios/rr/strict_vs_loosehttp://blog.csdn.net/dingpeng1978/article/details/2652380From: 如果一个SIP消息中没有Contact或者Record-Route头域,那么callee就会根据From头域产生后续的Request。比如:转载 2015-03-02 15:38:14 · 7771 阅读 · 0 评论 -
STUN/TURN/ICE协议在P2P SIP中的应用(二)
1 说明2 打洞和穿越的概念... 13 P2P中的打洞和穿越... 24 使用STUN系列 协议穿越的特点... 25 STUN/ TURN/ICE协议的关系... 36 STUN协议(RFC 5389) 3 6.1 为什么会用到STUN协转载 2015-03-02 13:34:58 · 7321 阅读 · 0 评论 -
PPP协议体系的实现
其实PPP不像是一种协议,而更像是一种应用,可以把它看成一个拨号上网的应用软件,拨号成功后,本地主机就可以正常上网了,可以使用TCP/IP等协议,而完全感觉不到PPP的存在。而实际上PPP在网络协议栈中增加了不少东西,但对上层透明。另外PPP一般需要底层工具来支持,如之前讲的PPPoE。 Pppoe协议的实现在协议栈中,且其底层有实际的物理设备(或者vlan设备)支持,关键就转载 2014-09-03 15:11:17 · 5189 阅读 · 1 评论 -
Linux下VLAN功能的实现
1.Linux网络栈下两层实现1.1简介 VLAN是网络栈的一个附加功能,且位于下两层。首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去。下两层涉及到具体的硬件设备,日趋完善的Linux内核已经做到了很好的代码隔离,对网络设备驱动也是如此,如下图所示:这里要注意的是,Linux下的网络设备net_dev并不转载 2014-09-03 16:29:00 · 1441 阅读 · 0 评论 -
由PPPOE看Linux网络协议栈的实现
这个标题起得比较纠结,之前熟知的PPPOE是作为PPP协议的底层载体,而实际上它也是一个完整的协议,不过它的实现比较简单,由它出发,可以很容易理清楚Linux网络栈的实现方式。1.总述 Linux中用户空间的网络编程,是以socket为接口,一般创建一个sockfd = socket(family,type,protocol),之后以该sockfd为参数,进行转载 2014-09-03 14:09:11 · 1114 阅读 · 0 评论 -
Linux下的虚拟Bridge实现
Linux下的Bridge也是一种虚拟设备,这多少和vlan有点相似,它依赖于一个或多个从设备。与VLAN不同的是,它不是虚拟出和从设备同一层次的镜像设备,而是虚拟出一个高一层次的设备,并把从设备虚拟化为端口port,且同时处理各个从设备的数据收发及转发,再加上netfilter框架的一些东西,使得它的实现相比vlan复杂得多。1.Bridge的功能框图 它是转载 2014-09-03 16:55:45 · 958 阅读 · 0 评论 -
OpenWrt增加软件包方法
更多参考:http://www.right.com.cn/forum/thread-75653-1-1.htmlOpenWrt是一个比较完善的嵌入式Linux开发平台,在无线路由器应用上已有100多个软件包。人们可以在其基础上增加软件包,以扩大其应用范围。OpenWrt在增加软件方面使用极其方便,按照OpenWrt的约定就可以很简单完成。 加入的软件包可以转载 2014-08-30 10:07:29 · 1240 阅读 · 0 评论 -
计算机网络【九】:下一代因特网
《计算机网络》学习的最后一章,我们来简单看看未来的因特网。这里面主要涉及三个方面:IPv6、MPLS协议与P2P。作为一个粗略的浏览,我们简要地梳理一下问题。一、IPv6协议 传统的IPv4协议面临的最大挑战是地址空间无法满足现实飞速增长的需求,尽管我们使用了CIDR和子网IP进行了最大程度的优化,依然只能推迟而不能消除地址用尽的结局。因此IETF很早就在研究IPv4的替代方案:I转载 2014-08-28 11:31:03 · 667 阅读 · 0 评论 -
TCP滑动窗口协议
滑动窗口协议发送方和接收方都会维护一个数据帧的序列,这个序列称为窗口。发送方的窗口大小由接收方确定,目的在于控制发送速度,以免接收方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。 如图所示,4,5,6号数据帧已经被发送出去了,但是没有收到相应的ACK,7,8,9帧是等待发送的。可以看出窗口的大小为6,这是由接收端设置的。此时,如果发送端收到4号ACK,则窗口的左转载 2014-08-28 09:09:55 · 871 阅读 · 0 评论 -
TCP协议实现原理
TCP协议是端到端的传输控制协议,之所以是“端到端”的协议,是因为”路由“是由IP协议负责的,TCP协议负责为两个通信端点提供可靠性保证,这个可靠性不是指一个端点发送的数据,另一个端点肯定能收到(这显然是不可能的),而是指,数据的可靠投递或者故障的可靠通知。TCP的可靠性通过以下方式来保证:1.超时重传:TCP每发送出一个报文段后,都会启动一个定时器,对目的端传回的确认信息进行确认计时转载 2014-08-27 17:08:08 · 956 阅读 · 0 评论 -
TCP的拥塞控制
1.引言 计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。 拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。2.慢开始与拥塞转载 2014-08-28 10:57:59 · 544 阅读 · 0 评论 -
Linux DM9000网卡驱动程序完全分析
版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码 虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和转载 2014-07-05 15:39:28 · 2245 阅读 · 0 评论 -
MII/MDIO接口详解
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法。MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术,该接口支持10Mb/s与100Mb/s的数据传输速率,数据传输的位宽为4位。转载 2014-05-13 20:10:42 · 1341 阅读 · 0 评论 -
NAT原理与NAT穿越
最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下。先做一个约定:内网A中有:A1(192.168.0.8)、A2(192.168.0.9)两用户 网关X1(一个NAT设备)有公网IP 1.2.3.4内网B中有:B1(192.168.1.8)、B2(192.168.1.9)两用户, 网关Y1(一个NAT转载 2014-05-09 15:44:15 · 578 阅读 · 0 评论 -
802.1ag的设计理念
802.1ag把整个网络(customer, provider, operator)划分成很多的维护域(MD, Maintenance Domain),MD是有层次的,最多8个层次。 在每个MD里面,针对该MD所提供的每一个服务(service)进行维护管理,这些service会跨越网络中很多个节点,802.1ag的核心思想是在这个service所涉及到的部分或者全部节点上进行转载 2013-01-16 21:59:01 · 1089 阅读 · 0 评论 -
SGMII 和 Serdes 的详细说明
Serdes : SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种时分多路复用(TDM)、点对点的通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而大大降低通信成本。S...转载 2013-01-31 14:22:09 · 111434 阅读 · 3 评论 -
常用网络协议栈比较
1、BSD TCP/IP协议栈 BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开始点。转载 2013-01-15 15:18:05 · 2353 阅读 · 0 评论 -
使用lwip协议的Raw API工作模式
转一篇文章:lwip RawApi 数据发送2009-05-11 23:29 今天调试程序,使用lwip协议的Raw API工作模式,做了一个简单的客户/服务器系统。服务器运行FPGA上,使用Powerpc405处理器,32Kcache,64M内存,无操作系统。客户端运行在x86机器,安装Linux操作系统。服务器接收数据没问题,100M网卡下速度约为5MB,其中包括将数据从p转载 2013-01-15 15:17:04 · 7707 阅读 · 1 评论 -
IP头、TCP头、UDP头详解以及定义
一、MAC帧头定义/*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6]; //目的mac地址 char m_cSrcMacAddress[6]; //源mac地址 short m_cType; //上一层协议类型,如0x0800代表上一层是IP...转载 2013-01-24 13:47:25 · 159682 阅读 · 6 评论