一、TCP/IP模型,OSI模型
OSI ——开放式系统互联参考模型 ISO——国际标准化组织 应用层 抽象语言—>编码 表示层 编码—>二进制 会话层 应用程序内部的区分地址(无标准格式)
上三层—产生数据 下四层—传递数据
传输层 TCP/UDP – 分段(受MTU限制)、端口号 MTU:最大传输单元 默认1500 数据经过上三层的加工处理后,将来到传输层;需要分段数据,每段数据的最大容量不能超过MTU值; 分段是为了让多个节点可以在相互间影响较小的情况下共享带宽。
端口号:0-65535 16位二进制构成 1-1023注明端口(静态端口)—标记服务端的各种服务 1024-65535动态端口(高端口)—标记终端的进程
UDP:用户数据报文协议 —非面向连接的不可靠传输协议 仅完成传输层基本工作—分段、端口号
TCP:传输控制协议 – 面向连接的可靠传输协议 面向连接:通过三次握手建立端到端虚链路 可靠传输:4种可靠传输机制 – 确认、排序、重传、流控(滑动窗口) 在完成传输层的基本工作之上,还需要额外的保障传输的可靠性;
网络层 IPV4、IPV6 --互联网协议 逻辑寻址(通过IP地址来进行逻辑寻址) 数据链路层 控制物理层 (介质访问控制) 1.MAC,媒介访问控制子层—通过物理地址(MAC地址)来进行物理寻址 2.LLC,逻辑链路控制子层—为上层服务提供FCS校验(在数据的尾部) 物理层 定义电气电压,光学特性,接口规范 传输数据
IPV4报头: ARP:地址解析协议 正向ARP: 已知同一网段的目标ip地址,但未知目标mac地址;通过广播获取对赌的mac 地址。 反向ARP:1、已知对端的MAC,获取对端的ip地址; 2、已知本地的MAC地址,通过 ARP基于对端查询本地的ip地址。 无故ARP:进行正向ARP查询,但被查询地址为本地的ip地址;–地址冲突检测。
DNS:域名解析服务,已知域名进行ip地址查询。 封装:从高层向低层的数据加工过程,过程中数据包逐渐增大。 解封装:从低层向高层的数据识别过程。 洪泛:交换机为未知的目标mac地址,进行数据帧所有接口复制的行为。 广播:迫使交换机进行洪泛,最终将本地的一个数据包转发给本广播域所有的节点。
PDU:协议数据单元,对各个数据封装的单位标记 。 上三层(应用、表示、会话)— 数据报文 传输 ——数据段 网络层 ——数据包 数据链路层——数据帧 物理层——比特流
TCP/IP(4或5)与OSI(7)的区别: 1、层数不同 2、3层不同; TCP/IP仅支持ip;OSI支持所有网络层协议; 3、TCP/IP –支持跨层封装 在路由器与路由器这种三层直连设备间,直接沟通对话的协议,可以不封装4层; 在直连交换机二层设备间,可以直接访问到2层,跳过3、4层;–加快收敛速度 –OSPF/EIGRP/ICMP…跨3层 —STP…跨2层
在跨层到3层时,没有了4层;那么将有3层报头来完成4层的工作 —分段、端口号(区分进程和服务) IPV4报头中可以对数据进行分片,使用协议号来区分进程和服务
在跨层封装到2层时,没有了3、4层。
以太网举例: 默认使用以太网第二代封装,该封装不具备分片的能力; 故在跨层封装到2层时,需要调用第一代以太网规则; 将数据链路层分为两个子层;LLC+MAC LLC逻辑链路控制子层—负责分片和进程区分 MAC介质访问控制子层—控制物理层工作
TCP/IP(4或5)与OSI(7)的相同点: 1.两者都是模型化层次化 2.下层对上层提供服务支持 3. 每层协议彼此相互独立
二、IPV4地址 32位二进制 点分十进制标识
存在ABCDE分类;其中ABC为单播地址—既可以作为源,也可以作为目标; D为组播—只能作为目标;E为保留; 基于第一个8位分类: A 1-126 B 128-191 C 192-223 D 224-239 E 240-255
特殊地址: 1、127.0.0.1 环回地址 测试使用 2、0.0.0.0 缺省路由-代表所有 无效地址—代表没有 3、255.255.255.255 受限广播地址 4、在每段地址中主机位全0、全1: 192.168.1.0/24 主机位全0—网络号 192.168.1.255/24 主机位全1—直接广播地址 5、169.254.0.0/16 自动私有地址、本地链路地址
一个网段是一个广播域;一个广播域不一定是一个网段
【2】VLSM 可变长子网掩码 — 通过延长子网掩码的长度;将一个网络号逻辑的切分为多个——子网划分 【3】CIDR—无类别域间路由—取相同位,去不同位;将多个网络号;逻辑的合成一个; 子网汇总:汇总后,汇总网段的子网掩码,长于或等于主类掩码长度 超网:汇总后,汇总网段的子网掩码,短于主类;
三、静态路由
1、基础配置 [Huawei]ip route-static 1.1.1.0 24 12.1.1.2 [Huawei]ip route-static 2.2.2.0 24 GigabitEthernet 0/0/1 目标网络号 下一跳或出接口 下一跳:流量从本地发出后下一个进入的路由器接口ip地址。 出接口:流量从本地路由器发出的接口。
建议:在MA网络中建议下一跳写法;在点到点网络中建议出接口写法 MA多路访问网络—在一个网段中,节点的数量不限制 点到点—在一个网段中,节点数量只能为两个
2、汇总—当到达部分连续子网时,若基于相同的下一跳访问;可以将这些目标网络进行汇总计算后;仅配置到达汇总网段的路由即可—减少路由表条目的数量。
3、路由黑洞 – 汇总地址中包含了网络中当下不存在的地址网段时;当中早该丢弃的流量,还需要在网络中传播一段时间;才能被丢弃,浪费了链路资源;–尽量合理规划ip地址,精确的汇总计算。
4、缺省路由 –一条不限定目标的路由;查表时,路由器在查询完本地所有直连、静态、动态路由后,若依然没有可达路径才使用该条目。
5、空接口防环路由 — 当路由器黑洞与缺省路由相遇后,必然出现环路。 [R1]ip route-static 1.1.0.0 22 NULL 0
6、浮动静态路由—通过修改默认的优先级,起到静态路由备份的效果。 [r2]ip route-static 1.1.0.0 22 23.1.1.1 preference 61 默认静态路由优先级为60;越小越好
7、负载均衡 –当路由器访问同一个目标,拥有多条开销相似路径时;可以让设备将流量拆分后延多条路径同时传输,起到带宽叠加的作用。
四、作业
1、Windows下查看端口号与进程号关系的命令 2、TCP三次握手详解 3、静态综合实验报告
(1)R6为ISP,接口IP地址为公有地址;
该设备只能配置IP地址,之后不能对其进行任何配置。
(2)R1—R5为局域网,私有IP地址192.168.1.0/24,请合理分配。
(3)所有路由器上环回,均代表连接用户的接口。
(4)R3下的两台PC通过DHCP自动获取IP地址。
(5)选路最佳,路由表尽量小,避免环路。
(6)R1—R5均可访问R6的环回。
(7)R6telnetR5的公有IP地址时,实际登录到R1上。
(8)R4与R5正常时通过1000M链路,故障时通过100M链路。
解:
1.Windows下查看端口号与进程号关系的命令
1.1快捷键Win+R调出运行窗口,输入”cmd“再按“Enter”键弹出DOS命令窗口,然后输入 netstat -aon命令即可列出所有占用的端口信息。 注: -a ——显示所有连接和侦听端口 -n ——以数字形式显示地址和端口号 -o ——显示拥有的与每个连接关联的进程 ID 1.2打开任务管理器,查看详细信息,找出pid这个参数就行;如果任务管理器没有显示,则可以点击工具栏上的“状态”,将PID勾选,就可以找到了。 1.3在dos窗口下查找对应pid对应的端口号(红线标出的)
2.TCP三次握手详解
三次握手(Three-way Handshake)是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。 进行三次握手:
第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。
在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。
确认报文段ACK=1,确认号ack=y+1,序号seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。
发送第一个SYN的一端将执行主动打开(active open),接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。
在socket编程中,客户端执行connect()时,将触发三次握手。 问:为什么需要三次握手,两次不行吗? 第一次握手:客户端发送网络包,服务端收到了。 这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。 第二次握手:服务端发包,客户端收到了。 这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。 第三次握手:客户端发包,服务端收到了。 这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。 因此,需要三次握手才能确认双方的接收与发送能力是否正常。
3.静态综合实验报告
IP地址划分: R6为192.169.1.1/24
|