一、TCP/IP 协议栈道 VS OSI 参考模型
- OSI模型:开放式系统互联参考模型
层次 | 功能 | 协议 | PDU(协议数据单元——对各层数据封装的单位) |
---|---|---|---|
应用层(Application Layer) | 实现人机交互;是用户的接口负责用户信息的语义表示(即将抽象的语言转变成编码) | HTTP(超文本传输协议)、TFTP(简单文本共享协议) 、NFS()、WAIS()、SMTP() | 数据报文 |
表示层(Presentation Layer) | 将编码转换成二进制;对源站点内部的数据进行编码形成适合于传输介质的比特流到目的站点再解码,转换成用户所要求的格式并保持数据的意义不变 | Telnet、Rlogin、SNMP、Gopher | 数据报文 |
会话层 (Session Layer) | 给应用程序添加会话地址;提供面向用户的连接服务,给使用的会话用户之间的对话和活动提供组织和同步必须的手段,以便对数据的传送进行控制和管理 | SMTP 、DNS | 数据报文 |
上三层都是应用程序对数据进行加工处理 语言转换 | 数据流层 语言转换 | ||
传输层(Network Layer) | 主要是将数据进行分段和提供端口号;由此实现端到端虚链路的建立、维护和管理,实现端到端经网络透明传输报文 | TCP、UDP | 数据段 |
网络层(Network Layer) | 提供逻辑寻址(又称临时寻址);该层功能有分组发送、路由选择和流量控制,主要功能是实现端到端通信系统中间节点的路由选择,不同子网间通信 | IP( Internet 协议 – IPV4/V6地址)、 ICMP、 Arpanet 、 AKP 、UUCP | 数据包 |
数据链路层 (Data Link Layer) | 实现介质访问控制(控制物理层); 通过链路控制协议和链路控制规程,在不太可靠的物理链路上实现可靠的数据传输,同一子网内节点之间 | FDDI、Ethernet、Arpanet、 PDN、SLIP、PPP | 数据帧 |
物理层(Physical Layer) | 定义电气接口标准;实现相邻计算机节点之间比特流的透明传输,屏蔽具体传输介质和物理设备的差异 | IEEE802.1A、IEEE 802.2到IEEE 802.11 以太网、PPP、HDLC、帧中继、x25… | 比特流 |
- TCP/IP(传输控制协议/互联网协议)栈道
又称四层协议/五层协议(四层是将数据链路层和物理层视为同一层)
层次 |
---|
应用层 |
传输层 |
网络层 |
数据链路层 |
物理层 |
-
TCP/IP 与 OSI模型区别
-
1)层数不同 。TCP/IP是4or5层,OSI是7层;
-
2)第三层TCP/IP仅支持Internet协议 , OSI支持所有网络层协议;
-
3)TCP/IP支持跨层封装,OSI不支持跨层封装。
跨层封装(又称跳层封装)——优点:减少封装的数据量便于纠错;被设备更快的封装和解封装,降低设备计算量 从而加速转发
——条件:不针对正常的应用程序流量; 仅针对大多在同一广播域内设备间的协议( ARP 、STP(交换机上应用)——跨到2层; OSPF 、EIGRP、ICMP ——跨到3层)(数据包容量小不需要可靠传输时/非常规应用发出的包/直接基于mac交换机之间通讯)
——后果:被跳过的层面的基础功能需要其他的层面来负担;假如跳过4层直接封装到3层,那么将由三层报头来进行数据分片,使用协议号来区分服务或进程:协议号 0-255 ICMP1,IGMP 2,OSPF 89,EIGRP 88; TCP 6 UDP 17
——用处:访问控制列表ACL中用于流量过滤和做策略 -
OSI模型比较繁琐但是使用范围广,适用于所有的network ,TCP/IP模型比较简洁只适用于Internet。
ICMP:常规是32个字节,跨三层传输,只有它是跨层传输里边的唯一的远距离传输协议(ping):
rlue deny 17 source any destination any destication-port eq 53 //拒绝53端口(DNS)的UDP服务
访问控制列表:标准2000——2999,扩展3000 ——3999
二、传输层详解
- 数据分段
- 将上三层加工好的数据按MTU值进行切分 (MTU——最大传输单元)
- MTU值默认为1500,但往往达不到那么大的值。
- 网速差的原因:1)网络线路老化;2)策略限速;3)MTU限制(易忽略)
- 提供端口号
-
0-65535 其中 动态端口(高端口)为1024-65535 静态端口(注明端口)为1-1023;
-
端口号对应需要通讯的进程(但端口号不能等同于进程号!!!),动态端口主要用于客户端标记本地对应的进程;注明端口主要用于服务器对应本地的服务进程(固定给常见服务);
-
eg: 172.16.45.253 访问 114.114.114.114 – DNS服务访问
172.16.45.253设备上需要启动一个应用程序,该程序会生成一个对应的进程号(PID);之后设备为进程号再在1024-65535间随机生成一个端口号XXXX; 但由于目标为dns服务器,故114设备的端口号一定为53;
172.16.45.253:xxxx — 114.114.114.114:53 -
查看命令:
常见服务端口以及对应服务:
- TCP(传输控制协议)
面向连接的可靠传输协议
- 面向连接:传输数据前先通过三次握手建立端到端的虚链路3次握手,数据传输结束有通过四次挥手断开虚链路的连接。
- 可靠传输—4种可靠机制: 确认、排序、重传、滑动窗口机制(流量控制)
- 缺点:计算量稍大,延时稍长。
- 可靠不等于安全,安全的三个指标:完整性,加密性,不可否认性(身份认证)。
- 三次握手过程简述:第一次握手——client A向sever B发送syn包等到确认;第二次握手——B收到A发的syn包进行确认,同时自己发一个syn包给A等待确认;第三次握手——A收到B的syn包,发送确认回复给B,此时连接成功。
- 四次挥手过程:第一次挥手——A发送数据结束准备断开链路,发包告知B,等待确认;第二次挥手——B收到A断开连接的申请,发送最后一个数据,并回复确认,并要求A回复确认;第三次挥手——A收到B的包,回复确认;第四次挥手——B收到A的回复,同时断开连接。
- UDP(用户数据报文协议)
非面向连接的可靠传输协议——仅完成传输层的基本工作(数据分段、提供端口号)
不可靠非面向连接的尽力而为传输协议
优点:不额外占用带宽,数据传输快。
辨别方式:看包头样子,UDP的包头比较短小。
三、 IPv4数据包格式
- IPv4地址由32位二进制构成 ,属于点分十进制标识 ;
- Internet 协议 ——主要功能是逻辑寻址 使用逻辑地址进行目标查找(IP地址)
- 对应关系:逻辑地址—》临时地址IP 物理寻找 – 》固定地址mac
- IPV4报头:
- 以太网封装报头:
四、名词注解(ARP\DNS\(解)封装)
- ARP (地址解析协议)
1)正向ARP –已知同一网段的目标ip地址,通过二层广播获取对端mac地址
2)反向ARP –已知对端mac地址,来获取ip地址的行为
3)无故ARP—在本地刚使用一个新的ip地址前,进行正向ARP请求,但被请求地址为本地计划使用地址;用于ip地址冲突检测 - 封装 : 设备从上层向下层对数据进行加工的过程;过程中数据包将不断的变大。
- 解封装:封装的逆向过程,数据被识别的过程,过程中数据包将不断变小。
- DNS:域名解析服务 – 基于域名进行映射关系的查找
五、交换机基本工作过程
数据帧进入交换机接口后,先查看源mac地址,然后记录到本地MAC地址表(接口与MAC的映射);再查看目标mac地址,之后在本地的mac表中进行查询,若存在记录将按照记录对应的接口单播转发;若没有记录将洪泛该流量。
洪泛:将流量进行从流量进入接口外的其他所有接口复制转发操作。
六、路由器基本工作过程
数据包进入路由器后,先识别目标mac地址(单播-本地路由器-解封 单播-其他设备-交换机未知单播-丢弃 广播-解封 组播-关注本地是否处于该组,组内解封,组外丢弃)
二层解封到三层后,查看目标ip地址(单播-本地路由器-解封 单播-其他设备-路由表 广播-解封 组播–关注本地是否处于该组,组内解封,组外丢弃)
路由器查表,基于目标ip地址,查看本地的路由表(最长匹配,递归查表);若存在记录将流量转发到记录接口,若没有记录将丢弃该流量;流量将在出口重新封装2层报头,新的二层头部,源mac为出口mac,目标mac为目标或下一跳,通过ARP获取
七、PC通讯过程
正常进行数据封装,在3层封装时,需要获取目标ip地址(1、APP基于服务器2、DNS 3、用户提供);获取目标ip地址后,基于目标ip地址来封装二层;
二层需要封装目标mac地址
1、目标ip地址与本地处于同一网段时,查询本地ARP表,若存在记录直接调用,若没有记录将使用正向ARP通过广播形势来获取对端mac地址;
2、目标ip地址与本地不在同一广播域,将需要封装本地网关ip地址的mac地址来作为目标mac地址;查询本地ARP表是否存在网关ip对应mac地址记录,若存在直接封装,若不存在也将使用正向ARP来进行广播获取。
三.静态路由
1、基础配置
[r1]ip route-static 192.168.1.0 255.255.255.0 12.1.1.2
[r1]ip route-static 192.168.1.0 255.255.255.0 GigabitEthernet 0/0/1
目标网络号(网段号) 下一跳 出接口
在MA网络中建议使用下一跳写法,在点到点网络中建议使用出接口写法;
MA:在一个网段中,二层协议允许存在多个节点
点到点:在一个网段,二层协议仅允许两个节点
在以太网这种MA网络中,若使用出接口写法;将导致路由器为获取最佳下一跳mac地址,而必须通过代理ARP和ICMP重定向来实现;故建议使用下一跳写法;
在点到点网络中若使用出接口写法,可以直接发包,比下一跳写法查表快;
2、汇总
若通过设备在访问多个连续子网时,全部基于相同的路径;可以将目标网络号进行汇总计算,编写路由时仅一条即可;减少路由条目数量;
3、黑洞 –汇总地址中包含本地网络不存在地址时,流量将有去无回;建议更好规划地址,且汇总时精确计算;
4、缺省路由 一条不限定目标的路由;路由器查表时,查询完本地所有的直连、静态、动态路由后;若依然没有可达路径;才使用该条目;
5、空接口—当缺省路由与黑洞路由相遇时,必然产生环路;需要在黑洞源路由器上配置到达汇总地址的空接口路由来防止环路;
6、浮动静态 --通过修改默认的优先级,起到路径备份的作用;
7、负载均衡—当通过路由器访问相同目标,存在多条开销相似路径时;可以让设备将流量拆分后延多条路径同时传输。