目录
[TCP(Transmission Control Protocol)](#TCP(Transmission Control Protocol))
[八、UDP(User Datagram Protocol)](#八、UDP(User Datagram Protocol))
一、OSI
应用层 抽象语言-->编码
表示层 编码-->二进制
会话层 提供应用程序的会话地址
上三层为应用数据对数据流量进行加工及处理的阶段
下四层负责对数据的传输
传输层 分段、端口号 TCP/UDP
网络层 internet 协议 -IP IP地址 逻辑(临时)寻址
数据链路层 以太网/PPP/HDLC/FR/ATM... 控制物理层(基本功能) 逻辑链路控制层LLC(校验)+介质访问控制层 MAC:(控制物理硬件)(二层)
物理层 硬件
-
分段:数据包容量不易过大,否则影响传输效率及共享带宽;分段大小由MTU决定;
-
MTU:最大传输单元,默认1500字节。
-
端口号: 0-65523 (2的16次方)
其中1-1023 注明端口 用于默认标记固定服务
1024-65535 动态端口 高端口 用于随即对应终端的各种进程
-
UDP: 用户数据报文协议 --- 非面向连接的不可靠传输协议;传输层的基本协议,仅完成传输层的基本工作 ---分段 端口号
-
TCP: 传输控制协议 ---面向连接的可靠传输协议,除了完成传输层的基本工作外,还需要保障传输的可靠性;
面向连接: 通过三次握手建立端到端的虚链路
可靠传输: 4种可靠机制 确认、重传、排序、流控(滑动窗口);
详解 TCP三次握手、四次断开
-
速率 约等 带宽/80 *85%
-
IPV4报头:标准长度20字节 -- 可扩展到60字
与UDP一样,首部包含了源端口号与目的端口号,它被用于多路复用/分解来自或送到上层应用的数据,另外,同UDP一样,TCP同样有检验和字段。
32比特的序号字段以及32比特的确认号字段: 用来实现可靠数据传输服务。
16比特的接受窗口字段: 用于流量控制。
4比特的首部长度字段: 指示了以32比特的字为单位的TCP首部长度。
由于TCP选项字段的原因,TCP首部的长度是可变的,通常情况下,选项字段为空,所以TCP首部的典型长度为20字节。
可选与变长的选项字段: 用于发送方与接收方协商最大报文长度(MSS)时,或在高速网络环境下用作窗口调节因子时使用。
6比特的标志字段 ACK比特用于指示确认字段中的值是有效的,即该报文段包括一个对已被成功接收报文段的确认。
二、重要的三个协议报头格式
IPV4数据包结构:
IPV4数据包格式:
版本(号): 这4比特规定了数据报的IP协议版本。通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分。不同的IP版本使用不同的数据报格式。
首部长度: 因为IPV4数据报可包含一些可变数量的选项(这些选项包括在IPV4数据报首部中),故需要用这4个比特来确定IP数据报中载荷(例如在这个数据报中被封装的运输层报文段)实际开始的地方。大多数IP数据报不包含选项,所以一般的IP数据报具有20字节的首部。
服务类型: 服务类型(TOS)比特包含在IPV4首部中,以便使不同类型的IP数据报能相互与别开来,例如,将实时数据报(如用于IP电话应用)与非实时流量(如FTP)区分开也许是有用的。提供特定等级的服务是一个由网络管理员为路由器确定和配置的策略问题。
数据报长度: 这是IP数据报的总长度(首部加上数据),以字节计。因为该字段长为16比特,所以IP数据报的理论最大长度为65535字节。然而,数据报很少有超过1500字节的。该长度使得IP数据报能容纳最大长度以太网帧的载荷字段。
标识、标志、片偏移: 这三个字段与所谓的IP分片有关:一个大的IP数据报被分解成几个小的IP数据报,然后这些小的IP数据报被独立地转发到目的地,在这里被重新组装,然后其有效载荷数据向上传递到目的主机的运输层。
生存时间TTL: TTL字段用来确保数据报不会永远(如由于长时间的路由选择环路)在网络中循环。每当一台路由器处理数据报时,该字段的值就会减1,若TTL字段减为0,则该数据报必须丢弃。
协议: 该字段通常仅当一个IP数据报到达其最终目的地时才会有用。该字段值指示了IP数据报的数据部分要交给TCP,而值为17表明数据部分交给了UDP。协议号是将网络层和传输层绑定在一起的粘合剂,而端口号则是将传输层与应用层粘合在一起。
首部校验和: 首部校验和用于帮助路由器检测收到的IP数据报中得比特错误。首部校验和是这样计算的:将首部中的每2个字节当作一个数,用反码算术对这些数求和。
源和目的地址: 当某源生成一个数据报时,它在源IP字段中插入它的IP地址。在目的IP地址字段中插入其最终目的地的地址。通常源主机通过DNS查找来决定目的地址。
选项: 选项字段允许IP首部被扩展。首部选项意味着很少使用。因此决定对每个数据报首部不包含选项字段中的信息,能够节约开销。
数据(有效载荷): IP数据报中的数组字段包含要交付给目的地的传输层报文段(TCP或UDP)
注意到一个IP数据报由总长为20字节的首部(假设无选项)。如果数据报承载一个TCP报文段,则每个(无分片的)数据报共承载了总长40字节的首部(20字节的IP首部加上20字节的TCP首部)以及应用层报文。
UDP数据报结构:
TCP数据报结构:
与UDP一样,首部包含了源端口号与目的端口号,它被用于多路复用/分解来自或送到上层应用的数据,另外,同UDP一样,TCP同样有检验和字段。
- 32比特的序号字段以及32比特的确认号字段: 用来实现可靠数据传输服务。
- 16比特的接受窗口字段: 用于流量控制。
- 4比特的首部长度字段: 指示了以32比特的字为单位的TCP首部长度。
由于TCP选项字段的原因,TCP首部的长度是可变的,通常情况下,选项字段为空,所以TCP首部的典型长度为20字节。
- 可选与变长的选项字段: 用于发送方与接收方协商最大报文长度(MSS)时,或在高速网络环境下用作窗口调节因子时使用。
- 6比特的标志字段 ACK比特用于指示确认字段中的值是有效的,即该报文段包括一个对已被成功接收报文段的确认。
三、名词注解
MTU
最大传输单元 传输层对数据分段大小
封装
数据从高层向低层的加工过程,过程中数据封装每层的头部,不断变大
解封装
数据从低层向高层的识别过程,过程中需要读取,删除部分头部,不断变小
PDU
协议数据单元 各层数据在封装完成后,对数据的单位称呼
应用层 --报头
传输层 --段
网络层 --包
数据链路层 --帧
物理层 --比特
ARP
--地址解析协议 通过对端的一种地址来获取对端的另一种地址
AARP : 正向ARP -- 已知同一网段的IP地址,通过广播来获取该IP对应的MAC地址
反向ARP -- 已知对端的MAC地址,获取本地的IP地址
FARP -- 无故ARP 使用AARP 来查询本地的IP地址 -- 用于IP地址的冲突检测
DNS
--域名解析服务,通过域名地址,查询对应的IP地址,主要用于http和https等服务
TCP/IP与OSI的区别
-
层数不同
-
OSI模型的网络层支持所有的网络层协议,TCP/IP的网络层实际被称为internet层,仅支持IP协议
-
TCP/IP协议栈道支持跨层封装---应用层数据直接封装于3层报头或者2层报头;
封装3层报头:同一广播域内的服务性协议--ARP/OSPF.. 使用的设备均为三层设备
封装2层报头:同意交换网络内的二层设备服务型协议--STP
正常应用程序的封装流量不做跨层处理
因此跨层封装的意义在于更快的完成服务性协议间的沟通计算
跨层封装时,部分层面的功能,必须由其他层面来辅助完成
---4层的分段、端口号(区分进程)
跨层封装到3层报头时,IPV4报头可以对数据进行分片,之后每片内容填充于报头之中,携带到目的地
3层报头中还存在协议号,用于对标后方所封装的协议0-255,6代表TCP/17代表UDP;
其余数字每一个皆对应一个固定的跨层封装协议
2层报头中也有类似的功能来实现分段、进程区分;
主讲以太网:在非跨层封装到2层时,以太网使用第二代数据帧,该帧不具备分片功能,仅存在类型号,可用于区分进程;
故一旦数据被跨层封装到二层时,将启用第一代以太网封装
第一代封装将数据链路层分为了两层 --> LLC逻辑链路控制子层+MAC介质访问控制子层
LLC层负责分片和提供类型号来区分进程,MAC层用于提供MAC,以及控制物理层;
LLC层 --802.2标准 MAC层叫做802.3标准
四、数据包转发过程
源终端设备需要进行数据封装,从高层封装到物理层,过程中基于应用层流量,选择传输层的协议和端口号,基于目标ip地址,目标MAC来封装3层和2层头部
五、获取目标ip地址方式
1、本地已知
2、访问网页基于域名。通过DNS服务器进行解析
3、终端客户软件提前存储服务器IP地址,直接访问服务器,基于服务器中转来与实际目标通讯
六、获取目标mac地址方式
使用ARP请求通过广播的形式来获取同一广播域设备的mac地址;
七、交换机的工作原理
当数据帧进入交换机后,先查看数据中的源mac地址,然后将其与对应的接口记录,之后基于目标mac地址,查询本地的MAC地址表,若表中存在记录,按照记录对应接口单播转出;若没有记录,需要洪范该流量-- 出流量进入接口外,其他所有接口复制转出
终端访问另一设备时,再获取目标ip地址后,关注目标ip地址是否和本地处于同一网段;若在同一网段,使用ARP获取对端MAC地址后,单播通讯。或目标IP地址与源头不在同一网段,将封装目标MAC地址为本地的网关位置;之后数据进入路由器,由路由器将数据基于路由表路由转发到目标地点;
数据在跨网段传输过程中,源、目标ip地址不正常变化,但源、目标MAC地址在每一个广播域中重新编写,用于该广播域内的物理寻址;
八、TCP/UDP
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)都是互联网协议族(Internet Protocol Suite)中的传输层协议,它们负责在网络中的不同设备之间传输数据,但它们的工作方式和提供的服务有很大的不同。
TCP(Transmission Control Protocol)
特点:
-
面向连接:
- TCP在数据传输之前需要建立一个连接,这个过程称为"三次握手"。在数据传输完成后,连接会被终止。这种连接建立和终止的过程确保了数据的可靠传输。
-
可靠性:
- TCP提供了一种可靠的数据传输方式。它通过确认机制(ACK,Acknowledgment)确保数据包到达接收端。如果某个数据包丢失或损坏,发送端会重传该数据包。
-
数据顺序:
- TCP保证数据包按照发送的顺序被接收。如果数据包在传输过程中乱序,TCP会在接收端重新排序。
-
流量控制:
- TCP使用滑动窗口机制来控制数据流,防止发送端的数据发送速度过快,导致接收端的缓冲区溢出。
-
拥塞控制:
- TCP还包含拥塞控制机制,防止网络中的数据流量过大,造成网络拥塞。
应用场景:
-
Web浏览:HTTP/HTTPS
-
文件传输:FTP(File Transfer Protocol)
-
电子邮件:SMTP(Simple Mail Transfer Protocol)
-
远程访问:SSH(Secure Shell)
UDP(User Datagram Protocol)
特点:
-
无连接:
- UDP不需要在数据传输之前建立连接。每个数据报(Datagram)都是独立的,彼此之间没有状态关系。
-
不可靠性:
- UDP不保证数据的可靠性。数据包在传输过程中可能会丢失、重复或乱序。UDP不提供确认机制、重传机制或排序机制。
-
低延迟:
- 由于UDP不需要建立连接、维护状态或进行复杂的拥塞控制,它的数据传输延迟通常较低,适合实时性要求高的应用。
-
轻量级:
- UDP的头部长度较短(8字节),比TCP(20字节)更轻量级,因此在带宽受限的情况下更高效。
应用场景:
-
实时通信:VoIP(Voice over IP),视频会议
-
在线游戏:实时多人游戏
-
DNS(Domain Name System):域名解析服务
-
流媒体:视频和音频流媒体服务
总结:
-
TCP:适合需要可靠数据传输的应用,如Web浏览、文件传输和电子邮件等。
-
UDP:适合对实时性要求高、能容忍一定数据丢失的应用,如视频会议、在线游戏和流媒体等。
选择TCP还是UDP取决于具体的应用需求,如对数据可靠性的要求、延迟敏感性和带宽利用率等。
九、IPV4地址
IPV4地址:32位二进制构成,点分十进制标识
分类:ABCDE
其中ABC为单播地址 -- 唯一即可作为目标ip地址,也可作为源IP地址;
只有单播地址可以配置为各个节点的IP:
D类为组播地址,只能作为目标IP地址;
基于IP地址的第一段即可分类:
A 1-126 B 128-191 C 192-223 D 224-239 E 240-255
特殊地址:
1、在ABC地址中存放私有IP地址与公有IP地址的区分
公有地址:具有全球唯一性,可以在互联网中通讯、且需要付费使用
私有地址:仅具有本地唯一性,不能在互联网中通讯,无需付费使用
故通过私有地址构建的企业网或局域网,访问全部为公有地址的互联网时,必须转换为合法且唯一的互联网公有IP地址;
私有地址: 10.0.0.0/8 172.16.0.0/16-172.31.0.0/16
192.168.0.0/24-192.168.255.0/24
2、 127 环回地址,用于测试TCP/IP协议栈道在设备上是否正常
3、全0 0.0.0.0 1)在DHCP请求IP地址作为源IP,代表没有地址
2)在路由表作为缺省路由,代表所有目标
4、全1 255.255.255.255 受限广播地址,在不明确目标ip地址时,发送广播时成为目标ip地址,受到路由器的限制,不能转出单个广播域
5、主机位全0 192.168.1.0/24 不是一个具体的IP地址,网络号代表一个网段
6、主机位全1 192.168.1.255/24 不是一个具体的IP地址,该网段的直接广播地址
7、169.254.0.0/16 自动私有地址,本地链路地址,终端在通过dhcp行为多次获取IP地址失败后,本地自动生成的一个IP地址,网络位固定,主机位随机;
VLSM:
可变长子网掩码 --- 通过延长子网掩码的长度,起到将一个网络号码,划分为多个可用网段 --- 子网划分
CIDR无类域间路由: 取相同位,去不同位
将多个网络号合成一个网段号码;
CIDR = 子网汇总+超网
子网汇总:汇总后,汇总网段地址的掩码长于或等于主类
超网:汇总后,汇总网段的掩码长度短于主类
十、静态路由
在默认情况下,路由器仅存在直连网段的路由;
直连路由产生的条件:
1、路由器的接口配置了合法的IP地址
2、同时该接口已经开启,且可以通信
所有非直连网段为该路由器的位置网段,获取位置网段的方法:
1、静态路由 -- 管理员手写路由表
2、动态路由 -- 所有路由器运行相同的动态路由协议后,路由器间沟通、协商、计算自动生成路由表
【Huawei】ip route-static 10.1.1.0 24 192.168.1.2
目标网络号 下一跳
下一跳:流量从本地出发后,下一个进入的路由器接口 -- 下一个入口地址 (路由器)
【Huawei】ip route-static 10.1.1.0 24 GigabitEthernet 0/0/1
出接口:流量从本地路由器发出的接口号;
在MA网络中建议使用下一跳写法,在点到点网络中建议使用出接口写法
网络类型:
点到点 -- 在一个网段中,只能存在两个节点
MA -- 多路访问 -- 在一个网段中,存在节点数量不限制
若在MA网络中使用出接口写法,编辑静态路由,为获取精确的下一跳MAC地址,路由器将代理ARP和ICMP重定向
代理ARP:若一台路由器收到了非本接口直连网段地址的ARP请求,将查询本地的路由表,若表中存在到达被请求IP地址的网段的路由,将代理该被请求IP,使用本地的MAC地址进行ARP应答;
ICMP重定向:当路由器发现一个数据包从本地A口进入后,查询完路由表依然从A口再发出,将告知上一跳设备,本地的下一跳地址来优化转发路径。
基于以上的规则总结:在MA网络中使用出接口写法,数据转发过程繁琐浪费资源,故建议下一跳写法;
在点到点网络中若使用下一跳写法:
由于路由器是递归查询路由表的,故下一跳写法生成的路由条目每次查询时,均需要递归到直连路由上,但是出接口写法可以不同地址;因此在点到点网络中,由于其不存在代理ARP/ICMP重定向之类的规则,故建议出接口写法。
静态路由的扩展配置
手工汇总
当路由器访问多个连续子网(可以汇总成一个网段)时,且全部基于相同的下一条路径;
可以将这些目标网络进行汇总计算后,仅编写到达汇总网段的一条路由即可;优化路由表
减少路由条目数量,加快查表速度,降低网络延时;
路由黑洞
汇总的路由网段中包含了网络类实际不存在的网段时,流量将有去无回
造成资源浪费 主动黑洞--地址设计不合理 被动黑洞-- 设备关机断电导致
缺省路由
一条不限定目标,在路由表中0.0.0.0标识的路由,代表所有网段;路由器查表时,在查询完本地所有的直连、静态、动态路由后若依然没有可达路径,才使用该条目。
[Huawei] ip route-static 0.0.0.0 0 12.1.1.2
空接口防环路由
当黑洞路由与缺省路由相遇时,将必然出现环路
通过在黑洞路由器上,编写到达汇总网段的空接口路由,可以防止环路的产生;
[Huawei] ip route-static 1.1.1.0 24 NULL 0
静态浮动路由
默认的手写静态路由优先级为60;直连路由为0;优先级取值范围0-255;
越小越优秀,通过在编写静态路由时,修改优先级,可以实现静态路由备份的效果;
[Huawei] ip route-static 1.1.1.0 24 12.1.1.2 preference 61
负载均衡
当访问同一网段时,若存在多条开销相似路径时,可以让设备将流量拆分后延多条路径同时传输,实现带宽叠加的效果;