Linux Network Technology 回记

学东西不能把之前的忘了,网络部分大体记录一些内容。

导航

• 通信协议
TCP/IP IPX/SPX OSI
• ISO/OSI七层模型及各层功能
• TCP/IP四层模型及各层中包含的协议
• IP、UDP、TCP首部格式及相应封装字段含义
• IP地址、IP子网掩码及子网划分
• 交换技术及交换机
1) 交换机工作原理
2) VLAN及STP
• 路由技术及路由器
1) 路由表工作原理
2) NAT及NAT表

一、  ISO/OSI七层模型及各层功能

ISO:International Standard Organization
ISO/OSI(Open System Internetowrk)

Linux Network Technology 回记

根据网络功能划分层次
OSI七层
物理层:二进制比特流传输,定义了电气规范,机械规范,功能规范,过程规范
数据链路层:介质访问,点到点连接,格式化数据;物理寻址:用物理地址标识数据的发送者和接收者;错误检测:CRC算法。定义了物理地址:以太网:以太网地址,MAC地址,MAC(Media Access Control) 物理地址是直接烧录在网络接口设备的ROM芯片中;
网络层:路由选择,逻辑寻址:用逻辑地址标识数据的发送者和接收者;确定路由:根据逻辑地址标识确定数据传输路径;地址解析:用逻辑地址解析物理地址;定义逻辑地址:IP地址:互联网地址,IPv4、IPv6逻辑地址用于标识主机在网络中的位置;物理地址用于进行数据通信;
传输层:端到端的连接,范围到范围的通信连接;端到端连接的建立,维护和拆除;可靠性传输和非可靠性传输;可靠性传输:面向连接、流量控制、数据重传和确认、序列化数据;非可靠传输:、面向无连接、无序列化数据、无数据重传和确认、无流量控制、数据快速传输
会话层:主机到主机之间的会话通信,机之间的会话建立的主体是应用程序进程;
表示层:数据表示,数据编码和解码;数据加密和解密;数据压缩和解压缩;
应用层:为应用程序提供网络连接服务;完成身份验证;

OSI的应用:数据的封装和解封装,发送数据一方实施数据封装;接收数据一方实施数据解封装;保证封装和解封装能够顺利进行的标准:对等通信原则:发送方和接收方双方的相同层次,必须拥有完全相同的数据处理方式;

二、  TCP/IP四层模型及各层中包含的协议

协议栈,协议标准;TCP/IP协议栈是根据协议来分层;分层标准模糊;网络的实际应用标准;网络实现的事实标准;
TCP/IP四层
物理层/数据链路层:X.25, TIA/EIA 568A/B, ...:ppp, pppoE, HDLC, SLIP, Frame_Relay(FR), ...
互联网层:IP, IGMP, ICMP, ARP, RARP
传输层:TCP, UDP, OSPF, EIGRP, ...
应用层:HTTP, HTTPS, FTP, DNS, DHCP, SMB, QQ, Thrunder, ...

三、  IP、UDP、TCP首部格式及相应封装字段含义

Linux Network Technology 回记
IP数据报文
Ver:4bits,IP协议的版本号:0100

IHL:4bits,Header Length,首部长度;0101 - 1111(20Bytes-60Bytes)

TOS and PRIORITY:8bits,有3位优先权字段已经弃用,还有4位TOS字段和1位保留字段(这个保留字段必须置为0)。4位TOS字段分别代表最小延时、最大吞吐量、最高可靠性、最低成本。这四者相互冲突,只能选择一个。
0000:最大带宽,最小延迟,最高可行性,最高负载;
000, 1000, 0100, 0010, 0001
0:保留位;000:优先级,000-111;

Packet Length:16bits;表示IP数据报的总长度(包括数据部分)

Indentifier:16bits,标识来源于哪一个上层协议报文;

Flag:3bits,标志虽然占了三位,但目前只有两位有意义
0:是否可分片;0:是否为最后分片;0:保留

Offset:13bits,该字段表示,被分片的数据报,每一个数据报片在原分组的相对位置。也就是说相对于用户数据字段的起点该片从何处开始。片偏移以8个字节为单位所以每个分片的长度一定是8字节的整数倍

TTL:8bits,为了防止数据包被路由时,因为缺少目的地址而无限循环;数据包在经过任意的路由设备时,其TTL会减1,一旦TTL减到0,接收到此数据包的设备会将其丢弃;

Protocol:8bits,互联网层和传输层的通信接口,通过此处指明的协议号,互联网层可以在上层找到对应的协议来继续处理该数据;

Header Checksum:16bits,首部校验和,将整个首部做hash,得到4位16进制数字;通常会在接收方主机上,对于接收到的数据包再次进行hash运算,将得到的结果与此处保存的结果进行异或比较,以确定首部内容是否在传输过程中被修改;

源IP地址;

目的IP地址;

Linux Network Technology 回记
UDP数据报文
源端口号,占16位。标识源主机的端口或进程,同TCP。
目的端口号,占16位。标识要发送个目的主机的哪个端口或进程
首部长度,占16位。标识UDP整个数据报的长度(包括首部和数据)。最小值为8(仅有首部)
检验和,占16位。检测UDP用户数据报在传输中是否有错,有错就丢掉。检测方式同TCP一样,检验范围也是包括首部和数据。

Linux Network Technology 回记

TCP数据报文
源端口号,16bits;

目标端口号,16bits;可以手动指定,也可以通过/etc/services文件判断自动解析应用层协议获得;

序列号:TCP协议将大数据报文分段的顺序编号,取值范围是0~2^32-2;默认情况下,第一个数据段的序列号为随机选择,以后的数据段的序列号通过计算得到:第一段:随机产生;后续其他数据段:前一数据段的序列号+前一数据段的数据部分大小+1

确认号(下一段的序列号):接收到的最后一个数据段的下一个数据段的序列号;取值范围是1~2^32-1

报文首部长度,4bits,通常报文首部长度为24Bytes~60Bytes;

标志位:12bits,前三位:保留位;4-6位:特殊标志位;URG:紧急指针标志位,优先转发标志位;URG置一,后面的16bits的仅仅指针才能生效;ACK:确认标志位;保证数据传输可靠性;PSH:推进标志位;RST:重置标志位;SYN:同步标志位;三次握手建立连接时必选的标志位;FIN:结束标志位;四次挥手拆除连接时必选的标志位;

窗口大小,16bits;一次并发传输的数据段的数量

数据段校验和,16bits,保证数据的完整性;

紧急指针,16bits,在URG标志位置一时,哪个数据段更紧急;

选项:TCP协议分段的标准;TCP协议的数据分段时间戳;...

四、  IP地址、IP子网掩码及子网划分

IP
IP的功能:1.寻址和路由2.数据分片和重组3.无连接不可靠传输(无序传输)
IP寻址:分层编址的地址:网络部分 + 主机部分
网络部分:描述主机所在的逻辑网s范围;
主机部分:描述在特定的逻辑网络范围内的具体位置;
IPv4地址:32bits二进制构成的地址标识符号;4个8位组;为了方便人读取,将其设置为点分十进制格式;
IPv4地址分类:A.B.C.D.E
A类:最左侧的二进制数字是"0",8个网络位,24个主机位;1.0.0.0-126.255.255.255
B类:最左侧的两位二进制数字是"10",16个网络位,16个主机位;128.0.0.0 - 191.255.255.255
C类:最左侧的三位二进制数字是"110",24个网络位,8个主机位;192.0.0.0 - 223.255.255.255
D类:最左侧的四位二进制数字是"1110",32个网络位,0个主机位;224.0.0.0 - 239.255.255.255
E类:最左侧的四位二进制数字是"1111",32个网络位,0个主机位;240.0.0.0 - 255.255.255.255

私有IP地址:
A:10.0.0.0 - 10.255.255.255
B:172.16.0.0 - 172.31.255.255
C:192.168.0.0 - 192.168.255.255

公有IP地址:
A:1.0.0.0 - 9.255.255.255 + 11.0.0.0 - 126.255.255.255
B:128.0.0.0 - 172.15.255.255 + 172.32.0.0 - 191.255.255.255
C:192.0.0.0 - 192.167.255.255 + 192.169.0.0 - 223.255.255.255

子网掩码(Netmask)
组成:32bits二进制组成,与IPv4的地址位数相同;以点分十进制方式进行表示;
组成:32bits二进制组成,与IPv4的地址位数相同;以点分十进制方式进行表示;
A类地址的标准子网掩码:255.0.0.0
B类地址的标准子网掩码:255.255.0.0
C类地址的标准子网掩码:255.255.255.0
子网划分
将IPv4的地址与其相对应的子网掩码做逻辑与运算,得到的结果是:该IPv4地址所属的网络范围的网络地址;
网络地址:主机位全都是"0"的IP地址;也被称为网络名称;也可以称为逻辑网段;
定向广播地址:主机位全都是"1"的IP地址;在特定的逻辑网段中能够被应用的广播地址;
以上两个地址,通常是不能分配给主机使用的;
在一个逻辑网段中,主机位全"0"和主机位全"1"的地址,必须排除在可以地址范围之外;

主机通过将自身的IP地址和目标主机的IP地址分别与自己的子网掩码进行逻辑与运算,最终得到的结果就是两台主机的逻辑网络地址;然后将此二结果进行比较,如果相同,则表示此二主机在同一逻辑网络范围之内,因此可以直接使用ARP协议获取对方的MAC地址,从而实现通信;如果不相同,则意味着此二主机在不同的逻辑网络范围之中,于是必须借助于网关才能实现二主机的相同通信;

网关:可以理解为一个逻辑网络的门户,或者是出入口;现在多使用路由器充当网关设备;一旦数据传输经过网关等路由设备,则其数据链路层的封装格式会彻底改变;即:重新封装数据的源MAC地址及目的MAC地址;对于主机来说,在一次通信的过程中,需要使用配置在自身网络设备接口上的子网掩码判断目标主机与自身IP地址是否在同一逻辑网段;对于路由器来说,需要利用路由表中路由条目上所携带的子网掩码,来判断目标主机所在的网络地址,是否存在与本地路由表中,如果有,则按照路由表指示进行转发;否则直接丢弃不予转发;

五、  交换技术及交换机

交换技术:
二层交换技术可以识别数据帧中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口,记录在自己内部的一个MAC地址表中。目前,第2层交换技术已经成熟。从硬件上看,第2层交换机的接口模块都是通过高速背板/总线(速率可高达几十Gbps)交换数据的,2层交换机一般都含有专门用于处理数据包转发的ASIC(Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。

传统的第2层交换技术:
2层交换机主要用在小型局域网中,机器数量在二、三十台以下,这样的网络环境下,广播包影响不大,2层交换机的快速交换功能、多个接入端口和低廉价格,为小型网络用户提供了完善的解决方案。总之,交换式局域网技术使专用的带宽为用户所独享,极大地提高了局域网传输的效率。可以说,在网络系统集成的技术中,直接面向用户的第2层交换技术,已得到了令人满意的答案。

具有路由功能的第3层交换技术
可以处理网络第3层数据转发的交换技术就是第3层交换技术。
从硬件上看,在第3层交换机中,与路由器有关的第3层路由硬件模块,也插接在高速背板/总线上。这种方式使得路由模块可以与需要路由的其它模块间,高速交换数据,从而突破了传统的外接路由器接口速率的限制。
3层交换机是为IP设计的,接口类型简单,拥有很强的3层包处理能力,价格又比相同速率的路由器低得多,非常适用于大规模局域网络。

具有网络服务功能的第7层交换技术
第7层交换技术通过应用层交换机实现了所有高层网络的功能,使网络管理者能够以更低的成本,更好地分配网络资源;
从硬件上看,7层交换机将所有功能集中在一个专用的特殊应用集成电路或ASIC上。ASIC比传统路由器的CPU便宜,而且通常分布在网络端口上,在单一设备中包括了50个ASIC,可以支持数以百计的接口。新的ASIC允许智能交换机/路由器在所有的端口上以极快的速度转发数据,第7层交换技术可以有效地实现数据流优化和智能负载均衡。

交换机
交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。

交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的物理网段(注:非IP网段),连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。

交换机的传输模式有全双工,半双工,全双工/半双工自适应
交换机的全双工是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。交换机都支持全双工。全双工的好处在于迟延小,速度快。
全双工,就不能不提与之密切对应的另一个概念,那就是“半双工”,所谓半双工就是指一个时间段内只有一个动作发生,举个简单例子,一条窄窄的马路,同时只能有一辆车通过,当有两辆车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。早期的对讲机、以及早期集线器等设备都是实行半双工的产品。随着技术的不断进步,半双工会逐渐退出历史舞台。

从广义上来看,网络交换机分为两种:广域网交换机和局域网交换机。
广域网交换机主要应用于电信领域,提供通信用的基础平台。而局域网交换机则应用于局域网络,用于连接终端设备,如PC机及网络打印机等。

从传输介质和传输速度上可分为以太网交换机、快速以太网交换机、千兆以太网交换机、FDDI交换机、ATM交换机和令牌环交换机等。从规模应用上又可分为企业级交换机、部门级交换机和工作组交换机等。

VLAN
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。在IEEE802.1Internetworking委员会结束了对VLAN初期标准的修订工作的时候。新出台的标准进一步完善了VLAN的体系结构,统一了Frame-Tagging方式中不同厂商的标签格式,并制定了VLAN标准在未来一段时间内的发展方向,形成的802.1Q的标准在业界获得了广泛的推广。后来IEEE于1999年颁布了用于标准化VLAN实现方案的802.1Q协议标准草案。802.1Q的出现打破了虚拟网依赖于单一厂商的僵局,从一个侧面推动了VLAN的迅速发展。

Linux Network Technology 回记
通过划分不同的VLAN,VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。节省了带宽,提高了网络处理能力,强局域网的安全性等等。

STP
STP(Spanning Tree Protocol)是生成树协议的英文缩写。该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余。生成树协议适合所有厂商的网络设备,在配置上和体现功能强度上有所差别,但是在原理和应用效果是一致的。

STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构。BPDU有两种,配置BPDU(Configuration BPDU)和TCN BPDU。前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的。

Spanning Tree Protocol(STP)在IEEE802.1D文档中定义。该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避免由于环路的存在而造成广播风暴问题。

六、  路由技术及路由器

路由技术主要是指路由选择算法、因特网的路由选择协议的特点及分类。其中,路由选择算法可以分为静态路由选择算法和动态路由选择算法。因特网的路由选择协议的特点是:属于自适应的选择协议(即动态的),是分布式路由选择协议;采用分层次的路由选择协议,即分自治系统内部和自治系统外部路由选择协议。因特网的路由选择协议划分为两大类:内部网关协议(IGP,具体的协议有RIP和OSPF等)和外部网关协议(EGP,目前使用最多的是BGP)

按照路由选择算法能否随网络的拓扑结构或者通信量自适应地进行调整变化进行分类,路由选择算法可以分为静态路由选择算法和动态路由选择算法。
静态路由选择算法就是非自适应路由选择算法,这是一种不测量、不利用网络状态信息,仅仅按照某种固定规律进行决策得简单得路由选择算法。静态路由选择算法得特点是简单和开销小,但是不能适应网络状态的变化。静态路由选择算法主要包括扩散法和固定路由表法。静态路由是依靠手工输入的信息来配置路由表的方法。减小了路由器的日常开销。在小型互联网上很容易配置。可以控制路由选择的更新。但是,静态路由在网络变化频繁出现的环境中并不会很好的工作。在大型的和经常变动的互联网,配置静态路由是不现实。
动态路由选择算法就是自适应路由选择算法,是依靠当前网络的状态信息进行决策,从而使路由选择结果在一定程度上适应网络拓扑结构和通信量的变化。特点是能较好的适应网络状态的变化,但是实现起来较为复杂,开销也比较大。动态路由选择算法一般采用路由表法,主要包括分布式路由选择算法和集中式路由选择算法。分布式路由选择算法是每一个节点通过定期得与相邻节点交换路由选择得状态信息来修改各自的路由表,这样使整个网络的路由选择经常处于一种动态变化的状况。集中式路由选择算法是网络中设置一个节点,专门收集各个节点定期发送得状态信息,然后由该节点根据网络状态信息,动态的计算出每一个节点的路由表,再将新的路由表发送给各个节点。

按协议分类路由协议可以自动根据实际情况生成的路由表的方法。动态路由的主要优点是,如果存在到目的站点的多条路径,运行了路由选择协议(如RIP或IGRP)之后,而正在进行数据传输的一条路径发生了中断的情况下,路由器可以自动的选择另外一条路径传输数据。这对于建立一个大型的网络是一个优点。大多数路由选择协议可分成两种基本路由选择协议:

路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,"交通警察"。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。

路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

路由表
路由器是一种典型的网络层设备。它在两个局域网之间按帧传输数据,在OSI/RM之中被称之为中介系统,完成网络层责在两个局域网的网络层间按帧传输数据,转发帧时需要改变帧中的地址。它在OSI/RM中的位置如图所示。

Linux Network Technology 回记

路由表是在路由器中维护的路由条目的集合,路由表很具路由表做路径选择
直连网段:当在路由器上配置了接口的IP地址,并且接口状态为up的时候,路由表中就出现直连路由项,如下面图所示:路由器A在接口FO/O和FO/1上分别配置了IP地址,并且在接口已经是up状态时,在路由器A的路由表中就会出现192.168.1.0和10.0.0.0这两个网段

非直连网段:那么对于20.0.0.0这样不直连在路由器A上的网段,路由器A应该怎么写进路由表呢?这就需要使用静态路由或动态路由来将这些网段以及如何转发写到路由表中,

NAT表
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

NAT表,作用是对网络地址进行转换,主要有两个功能:1. DNAT 网络目的地址转换; 2. SNAT 网络源地址转换。

流程实例:
为向因特网发送分组,主机10.1.1.1将其发送给配置了NAT 的边界路由器。该路由器发现分组的源IP地址为内部本地IP地址,且是前往外部网络的,因此对源地址进行转换,并将这种转换记录到NAT 表中。然后,该分组被转发到外部接口,它包含转换后的源地址。收到外部主机返回的分组后, NAT 路由器根据NAT 表将分组包含的内部全局IP地址转换为内部本地IP 地址。

Linux Network Technology 回记

猜你喜欢

转载自blog.51cto.com/fuboyuan/2321193