重温CCNA(一)

1.http是基于tcp的,udp传输的视频流和语音流有单独的协议
2.协议套件:
这里写图片描述
3.这里写图片描述
这里写图片描述
3.Internet Assigned Numbers Authority (IANA) - Responsible for overseeing and managing IP address allocation, domain name management, and protocol identifiers for ICANN.
Internet Society (ISOC) – Responsible for promoting the open development and evolution of Internet use throughout the world.
Internet Architecture Board (IAB) - Responsible for the overall management and development of Internet standards.
Internet Engineering Task Force (IETF) - Develops, updates, and maintains Internet and TCP/IP technologies. This includes the process and documents for developing new protocols and updating existing protocols know as Request for Comments (RFC) documents.
Internet Research Task Force (IRTF) - Focused on long-term research related to Internet and TCP/IP protocols such as Anti-Spam Research Group (ASRG), Crypto Forum Research Group (CFRG), and Peer-to-Peer Research Group (P2PRG).
Standards organizations shown in Figure 2 include:

Internet Corporation for Assigned Names and Numbers (ICANN) - Based in the United States, coordinates IP address allocation, the management of domain names, and assignment of other information used TCP/IP protocols.
4.wlan属于二层的协议
这里写图片描述
5.osi中每一层的作用:
http://cisco.sdut.edu.cn/old/course/IntroNet_en/#3.2.4.2这里写图片描述
6.Protocol Data Units (PDUs) are named according to the protocols of the TCP/IP suite: data, segment, packet, frame, and bits.
7.Switch devices and wireless access points are often two separate dedicated devices within a network implementation. However, there are also devices that offer both wired and wireless connectivity. In many homes, for example, individuals are implementing home integrated service routers (ISRs), as shown in Figure 1. ISRs offer a switching component with multiple ports, allowing multiple devices to be connected to the local area network (LAN) using cables, as shown in Figure 2. Additionally, many ISRs also include an AP, which allows wireless devices to connect as well.
8.链路层
1) 以太网和802封装

以太网封装是以RFC894定义的 而802封装则是RFC1042定义的 主机需求RFC要求: (1)必须支持以太网封装 (2)应该支持与RFC894混合的RFC1042封装 (3)或许可以发送RFC1042封装的分组

2 )SLIP

适用于RS-232和高速调制解调器接入网络 (1)以0xC0结束 (2)对报文中的0xC0和ESC字符进行转义 缺点:没有办法通知本端IP到对端;没有类型字段;没有校验和

3 )CSLIP

将SLIP报文中的20字节IP首部和20字节TCP首部压缩为3或5字节

4 )PPP协议

修正了SLIP协议的缺陷,支持多种协议类型;带数据校验和;报文首部压缩;双方可以进行IP地址动态协商(使用IP协议);链路控制协议可以对多个链路选项进行设置。

5 )环回接口

用于同一台主机上的程序通过TCP/IP通信。 传给环回的数据均作为输入; 传给该主机IP地址的数据也是送到环回接口; 广播和多播数据先复制一份到环回接口,再送到以太网上。

6 )MTU

对数据帧长度的最大限制,如果数据分组长度大于这个数值,需要在IP层对其分片。 注意:发往以太网的数据要考虑路径MTU
9.IP地址和MAC地址分类
按IP地址范围划分

A类:地址范围1.0.0.1-126.255.255.255,A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777214台。
B类:地址范围128.0.0.1-191.255.255.255,B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台
C类:地址范围192.0.1.1-223.255.255.255,C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台
D类:以1110开始的地址,多播地址
E类:以11110开始的地址,保留地址
10.ARP
https://www.ibm.com/developerworks/cn/linux/l-arp/index.html
链路层通信根据48bit以太网地址(硬件地址)来确定目的接口,而地址解析协议负责32bit IP地址与48bit以太网地址之间的映射:

(1)ARP负责将IP地址映射到对应的硬件地址
(2)RARP负责相反的过程,通常用于无盘系统。
11.ARP分组格式
ARP帧分组格式

其中:

ARP协议的帧类型为0x0806
硬件类型:1表示以太网地址
协议类型:0x800表示IP协议
硬件地址长度:值为6
协议地址长度:值为4
op:1为ARP请求,2为ARP应答,3为RARP请求,4为RARP应答
对于ARP请求来说,目的端硬件地址为广播地址FF:FF:FF:FF:FF:FF),由ARP相应的主机填入。
12.免费ARP
主机发送ARP请求查找自己的IP地址。通常有两个用途:

(1)确认网络中是否有其他主机设置了相同的IP地址;
(2)当主机的物理地址改变了,可以通过免费ARP更新更新路由器和其他主机中的高速缓存。
RARP
RARP通常用于无盘系统,无盘系统从物理网卡上读到硬件地址后,发送一个RARP请求查询自己的IP地址。
RARP的协议格式:与ARP协议一致,只不过帧类型代码为0x8035
RARP使用链路层广播,这样阻止了大多数路由器转发ARAP请求,只返回很小的信息,即IP地址
13.
ICMP协议格式
ICMP报文是在IP数据报内部传输的:| IP头部 | ICMP报文 |

ICMP报文格式
Bits 0–7 8–15 16–23 24–31
0 Type Code Checksum
32 Rest of Header
Type – ICMP type as specified below.
Code – Subtype to the given type.
Checksum – Error checking data. Calculated from the ICMP header+data, with value 0 for this field. The checksum algorithm is specified in RFC 1071.
Rest of Header – Four byte field. Will vary based on the ICMP type and code.
14.traceroute
ping程序提供一个记录路由选项,但并不是所有的路由机都支持这个选项,而且IP首部选项字段最多也只能存储9个IP地址,因此开发traceroute是必要的。 traceroute利用了ICMP报文和IP首部的TTL字段。TTL是一个8bit的字段,为路由器的跳站计数器,也表示数据报的生存周期。每个处理数据报的路由器都需要将TTL减一。如果TTL为0或者1,则路由器不转发该数据报,如果TTL为1,路由器丢弃该包并给源地址发送一个ICMP超时报文(如果是主机接收到TTL为1的数据报可以交给上层应用程序)。

traceroute程序开始时发送一个TTL字段为1的UDP数据报(选择一个不可能的值作为UDP端口号),然后将TTL每次加1,以确定路径中每个路由器。每个路由器在丢弃UDP数据报的时候都返回一个ICMP超时报文(如:ICMP time exceeded in-transit, length 36),而最终主机则产生一个ICMP端口不可达报文(如: ICMP 74.125.128.103 udp port 33492 unreachable, length )。

对每个TTL,发送3份数据报,并且计算打印出往返时间。如果5秒内未收到任意一份回应,则打印一个星号。

需要注意的是:

并不能保证现在的路由就是将来所采用的路由;
不能保证ICMP报文的路由与traceroute程序发出的UDP数据报采用同一路由;
返回的ICMP报文中信源的IP地址是UDP数据报到达的路由器接口的IP地址。
15.trill
STP最大的问题是二层链路利用率不足,且收敛慢,不适合大型数据中心。IETF又提出了Trill技术来克服STP的种种缺陷。Trill(TRansparent Interconnection of Lots of Links)的核心思想是将成熟的三层路由的控制算法引入到二层交换中,将原先的L2报文加一个新的封装(隧道封装),转换到新的地址空间上进行转发。而新的地址有与IP类似的路由属性,具备大规模组网、最短路径转发、等价多路径、快速收敛、易扩展等诸多优势,从而规避STP/MSTP等技术的缺陷,实现健壮的大规模二层组网。支持TRILL技术的以太网交换机被称为RBridge。
16.随着SDN和NFV的发展,现在已经有越来越多的功能都放到了虚拟交换机上来。最常见的虚拟交换机是Open vSwitch。
17.
UDP
UDP是一种对象数据报的传输层协议,它不提供可靠性,其数据报被封装在IP数据报中,封装格式如下图所示:

UDP封装格式

首部格式为

UDP头

源端口号和目的端口号分表表示了发送进程和接收进程
UDP长度字段包括了UDP首部和UDP数据的字节长度
UDP检验和覆盖了UDP首部和UDP数据(IP首部检验和只覆盖了IP首部,不覆盖数据报中的任何数据)
UDP数据报的长度可以为奇数字节,但是检验和算法是把若干个16bit字相加。解决方法是必要时在最后增加填充字节0,
这只是为了检验和的计算。UDP数据报和TCP段都包含一个12字节长的伪首部,它是为了计算检验和而设置的。伪首部包含IP首部一些字段。

IP分片
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。链路层的这个特性称作MTU。不同类型的网络大多数都有一个上限。如果IP层有一个数据要传,且数据的长度比链路层的MTU还大,那么IP层就要进行分片(fragmentation),把数据报分成若干片,这样每一个分片都小于MTU。当IP数据报被分片后,每一片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立。

把一份IP数据报进行分片以后,由到达目的端的IP层来进行重新组装,其目的是使分片和重新组装过程对运输层(TCP/UDP)是透明的。由于每一分片都是一个独立的包,当这些数据报的片到达目的端时有可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据报片。

尽管IP分片过程看起来透明的,但有一点让人不想使用它:即使只丢失一片数据也要重新传整个数据报。

why?因为IP层本身没有超时重传机制——由更高层(比如TCP)来负责超时和重传。当来自TCP报文段的某一片丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(而不是一个分片),没有办法只重传数据报中的一个数据分片。

使用UDP很容易导致IP分片,TCP试图避免IP分片。那么TCP是如何试图避免IP分片的呢?其实说白了,采用TCP协议进行数传输是不会造成IP分片的,因为一旦TCP数据过大,超过了MSS,则在传输层会对TCP包进行分段(如何分,见下文!),自然到了IP层的数据报肯定不会超过MTU,当然也就不用分片了。而对于UDP数据报,如果UDP组成的IP数据报长度超过了1500,那么IP数据报显然就要进行分片,因为UDP不能像TCP一样自己进行分段。

MSS(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念

1)MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

2)相信看到这里,还有最后一个问题:TCP是如何实现分段的呢?其实TCP无所谓分段,因为每个TCP数据报在组成前其大小就已经被MSS限制了,所以TCP数据报的长度是不可能大于MSS的,当然由它形成的IP包的长度也就不会大于MTU,自然也就不用IP分片了。

UDP和IP

发生ICMP不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特。如果某个程序需要判断到达目的端的路途中最小MTU是多少—称作路径MTU发现机制,那么这个差错就可以被该程序使用。
理论上,UDP数据的最大长度为:65535-20字节IP首部长度-8字节UDP首部长度=65507。但是大多是实现都比这个值小,主要是受限于socket接口以及TCP/IP内核的限制。大部分系统都默认提供了可读写大于8192字节的UDP数据报。
当目标主机的处理速度赶不上数据接收的速度,因为接受主机的IP层缓存会被占满,所以主机就会发出一个ICMP源站抑制差错报文。
18.**TCP
TCP的特性**

TCP提供面向连接的、可靠的字节流服务
上层应用数据被TCP分割为TCP认为合适的报文段
TCP使用超时重传机制,而接收到一个TCP数据后需要发送一个确认
TCP使用包含了首部和数据的校验和来检查数据是否在传输过程中发生了差错
TCP可以将失序的报文重新排序
TCP连接的每一端都有固定大小的缓冲区,只允许另一端发送发送接收缓冲区所能接纳的数据
TCP提供面向字节流的服务,不在字节流中插入记录标识符,也不对字节流的内容作任何解释(由上层应用解释)
19.http://www.cnblogs.com/sammyliu/p/4626419.html
**20.
Overlay**
技术名称 支持者 支持方式 网络虚拟化方式 数据新增报文长度 链路HASH能力
VXLAN Cisco/VMWARE/Citrix/Red Hat/Broadcom L2 over UDP VXLAN报头 24 bit VNI 50Byte(+原数据) 现有网络可进行L2 ~ L4 HASH
NVGRE HP/Microsoft/Broadcom/Dell/Intel L2 over GRE NVGRE 报头 24 bit VSI 42Byte(+原数据) GRE头的HASH 需要网络升级
STT VMWare 无状态TCP,即L2在类似TCP的传输层 STT报头 64 bit Context ID 58 ~ 76Byte(+原数据) 现有网络可进行 L2 ~ L4 HASH
Generic Routing Encapsulation (GRE)
GRE提供了IP in IP的封装技术:

GRE Tunnel Encapsulation - RFC2784

步骤 操作/封包 协议 长度 备注
1 ping -s 1448 ICMP 1456 = 1448 + 8 (ICMP header) ICMP MSS
2 L3 IP 1476 = 1456 + 20 (IP header) GRE Tunnel MTU
3 L2 Ethernet 1490 = 1476 + 14 (Ethernet header) 经过 bridge 到达 GRE
4 GRE IP 1500 = 1476 + 4 (GRE header)+ 20 (IP header) 物理网卡 (IP)MTU
5 L2 Ethernet 1514 = 1500 + 14 (Ethernet header) 最大可传输帧大小
因此,GRE 的 overhead 是 1514 - 1490 = 24 byte。

可见,使用 GRE 可以比使用 VxLAN 每次可以多传输 1448 - 1422 = 26 byte 的数据。

GRE vs VxLAN

由于GRE没有提供加密和防止窃听的技术,故而经常跟IPSEC一起配合实现对数据的加密传输。

VXLAN
Virtual eXtensible Local Area Network (VXLAN) 是一种将2层报文封装到UDP包(Mac in UDP)中进行传输的一种封装协议。VXLAN主要是由Cisco推出的,VXLAN的包头有一个24bit的ID段,即意味着1600万个独一无二的虚拟网段,这个ID通常是对UDP端口采取伪随机算法而生成的(UDP端口是由该帧中的原始MAC Hash生成的)。这样做的好处是可以保证基于5元组的负载均衡,保存VM之间数据包的顺序,具体做法是将数据包内部的MAC组映射到唯一的UDP端口组。将二层广播被转换成IP组播,VXLAN使用IP组播在虚拟网段中泛洪而且依赖于动态MAC学习。在VXLAN中,封装和解封的组件有个专有的名字叫做VTEP,VTEP之间通过组播发现对方。

VxLAN

步骤 操作/封包 协议 长度 MTU
1 ping -s 1422 ICMP 1430 = 1422 + 8 (ICMP header)
2 L3 IP 1450 = 1430 + 20 (IP header) VxLAN Interface 的 MTU
3 L2 Ethernet 1464 = 1450 + 14 (Ethernet header)
4 VxLAN UDP 1480 = 1464 + 8 (VxLAN header) + 8 (UDP header)
5 L3 IP 1500 = 1480 + 20 (IP header) 物理网卡的(IP)MTU,它不包括 Ethernet header 的长度
6 L2 Ethernet 1514 = 1500 + 14 (Ethernet header) 最大可传输帧大小
因此,VxLAN 的 overhead 是1514- 1464 = 50 byte。

VxLAN Head End Replication

基于组播的 VXLAN 网络其实是没有控制平面的,依赖于数据平面的 flood-and-learn,如果交换机不支持组播的话,将会退化到广播,目前这类的应用已经很少了。为了解决组播的依赖,一种方法是通过 HER 的方法复制报文成单播,这样组播报文或者广播报文可以通过单播复制的形式发送,这种方式被称为 Head-End Replication。Open vSwitch Driver 实现的 VXLAN 即使用类似这种方式避免组播的依赖。HER 在即使有控制平面的情况下依然具备价值,因为有可能有静默主机、MAC 表项老化、虚拟机需要使用组播或广播达成业务的需求。

VXLAN Offload
一些新型号的网卡(Intel X540 or X710),具备VXLAN硬件封包/解包能力。开启硬件VXLAN offload,并使用较大的MTU(如9000),可以明显提升虚拟网络的性能。

开启或关闭vxlan offload的方法
ethtool -k

猜你喜欢

转载自blog.csdn.net/neo233/article/details/80206894