CCNA-OSI七层参考模型andTCP/IP协议栈道

OSI七层参考模型

概念:

open system interconnection,即开放式系统互联。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

详情:

记忆口诀:“物数网传会表应” 依次为第一层至第七层。

应用层:
就是应用程序,通过人机交互提供各种各样的服务,将人类语言转化为编码(ASCII编码)

表示层:
将编码转化为二进制,产生数据,然后就可以封装传输。为上层用户解决用户信息语法问题,编码、解码、加密、解密

会话层:
在两个节点之间建立端链接,提供对话控制机制,建立、维持、终止会话进程

传输层:
通过端口号(0至65535,其中0至1023为著名端口,1024~65535为动态端口/高端口)区分上层不同的服务;
数据分段 ;
TCP(面向连接的)/UDP(面向无连接)类似于快递公司,在网络中只有这两家物流公司。
提供可靠的传输机制:确认、重传、排序、流控。

网络层:
通过IP地址进行逻辑寻址,建立两个节点之间的连接 ;
IP协议;封装;路由器。

数据链路层:
介质访问控制层–MAC地址;
网桥/交换机

物理层:
定义电气、电压、光学特性、接口规范,中继器/集线器,传送比特流。

TCP/IP协议栈道

现如今实际传输中使用的是TCP/IP协议栈道

有两种分类说法:
1、四层:
应用层(上三层“会表应”合为一层)
传输层
网络层
网络接口层(将数据链路层和物理层合为一层)
2、五层:
应用层(上三层“会表应”合为一层):数据(data message)
传输层:数据段(segment)
网络层:数据包(packet)
数据链路层:数据帧(frame)
物理层:比特流( bit)

详情:

传输层:TCP/UDP

UDP:非面向连接的不可靠传输协议 8B

TCP:面向连接的可靠传输协议 20B

面向连接:三次握手,四次断开
可靠:可靠的传输机制(确认 、重传 、排序 、流控(滑动窗口))

1Byte=8bit kB/s 200Mb/8=25MB80% TCP标签:32bit=4B5=20B**
在这里插入图片描述
TCP包首部

1、端口号:

用来标识同一台计算机的不同的应用进程。

两台PC的同一进程的端口号相同不相同无所谓。

(1)源端口:源端口和IP地址的作用是标识报文的返回地址。
(2)目的端口:端口指明接收方计算机上的应用程序接口。
**

TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。

**

2、序号和确认号:

是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。e.g.一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400。所以序号确保了TCP传输的有序性。确认号,即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。比如建立连接时,SYN报文的ACK标志位为0。

3、数据偏移/首部长度:

4bits。由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。

4、保留:

为将来定义新的用途保留,现在一般置0。

5、控制位:

URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能。

(1)URG:

紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。

(2)ACK:

确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。

(3)PSH:

push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。

(4)RST:

重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。

(5)SYN:

同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。

(6)FIN:

finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

6、窗口:

滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小时一个16bit字段,因而窗口大小最大为65535。

7、校验和:

奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。

8、紧急指针:

只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。

9、选项和填充:

最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的零,以保证TCP头是32的整数倍。

10、数据部分:

TCP 报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。

三次握手:

在这里插入图片描述
在这里插入图片描述

解读:

ACK :
TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) :
在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。
FIN (finis)
即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

四次断开 :

本端和对端各发送了一次请求和确认
在这里插入图片描述
在这里插入图片描述

解读:

当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送一个报文(没有数据),其中 FIN 设置为1, 服务器B收到后会给应用程序一个信,这时A那边的连接已经关闭,即A不再发送信息(但仍可接收信息)。 A收到B的确认后进入等待状态,等待B请求释放连接, B数据发送完成后就向A请求连接释放,也是用FIN=1 表示, 并且用 ack = u+1(如图), A收到后回复一个确认信息,并进入 TIME_WAIT 状态, 等待 2MSL 时间。

可靠的传输机制(确认 、重传 、排序 、流控(滑动窗口)):
(1)确认

相当于在人类双向沟通过程中的反馈。当A向B发送数据时,需要B回复收到让A知道B收到了,发一次确认一次,为了保证数据传输成功。

(2)重传

顾名思义,当A给B发送数据后,B无任何回应的情况下,那么此时A就会认为B没有收到数据,将会重新传输数据。

(3)排序

当A给B传输数据时会出现两种情况:
1、A—>B时由于未知因素而丢包,传输失败,一直不断重传
2、B—A确认自己收到时由于未知因素而丢包,而A则认为B没有收到,也一直不断重传(DOS攻击就是运用此原理)
基于以上两种因素都是不可取的,相互消耗各自性能。
所以,TCP传输数据包时,我会给这个数据以每一个字节为单位去打标签(打序号,例如1,2,3,4,5,6,8········)如果我给你发了100个单位,对方回复101,则证明前100个均收到,请求继续接收101往后的数据。
MSS(最大传输段,其实一段就是一个字节):默认1400B(根据不同厂商而规定的),即可接收的最大范围。接口整体的传输能力。
MTU(最大传输单元,就是我这个物理接口本身能够承受的一个范围):默认1500B,当数据大于1500字节,数据到达时将会进行“分/切片”,切完之后数据再次重组。要保证数据的完整性,所以要进行排序。

(4)流控

**TCP窗口:**其实与MTU不是一回事儿,MTU说的是接口。
因为连接时不可能做到将所有的承受范围都给到这一个连接上,所以是随时变化的。
在这里插入图片描述

解读:

Windows size = 3是发送方自己认为对方能接收三个,当三个都发送过去之后,
接收方回复 Ack3(表示你给我发了三个我只收到了前两个,第三个没有收到),而与此同时Windows size = 2(表示告诉发送方我这边只能一次接收两个),然后发送方将3重传,继续传输。其实就是根据接收方的接收能力变化随时改变传输数据的个数的。

网络层:IP协议

IP协议:三层设备来查看 20B
在这里插入图片描述
在这里插入图片描述

版本:

IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。

首部长度:

IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。

服务类型:

Type Of Service。

总长度:

IP报文的总长度。报头的长度和数据部分的长度之和。
标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。

标志:

共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)

生存时间:

IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。

协议:

指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.

首部校验和:

计算IP头部的校验和,检查IP报头的完整性。

源IP地址:

标识IP数据报的源端设备。

目的IP地址:

标识IP数据报的目的地址。

TTL time to live 0-255 每经过一台路由器-1 当为0时路由器直接丢弃

协议 :标识上层协议TCP:6 UDP:17 EIGRP:88 OSPF:89

分片图:

在这里插入图片描述

解读:

TCP:2000>1500所以得进行分片,每一次分片都带有完整的信息过去,直到最后一个。
UDP:同样得进行分片,但是只有第一片含有UDP头部,其余的都没有。


OSI七层参考模型和TCP/IP协议栈道的比较:


相同点:

1、两者都是模型化层次化
2、下层对上层提供服务支持
3、每层协议彼此相互独立

不同点:

1、OSI先有模型才有协议 TCP/IP先有协议才有模型
2、TCP/IP协议栈只适用于TCP/IP网络
3、层数量不同

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SLASH-YONG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值