网络参考模型(上)

OSI 和 TCP/IP 

韦恩先生提示:网工不创造数据,只是数据的搬运工,无论是图片、视频、游戏还是什么的,对网工而言都只是数据。

9

网工到底在做什么?

因为人们的生活、生产的需要,就会有了各种各样的应用,例如xxxx

而这些应用被人们所接受、所发送都是通过信息的产生,图片、视频、有plmm的视频等方式

数据:n  a^o7 !,962464,玩wan

信息:?

1.计算机对plmm不感兴趣,它只能识别1010101,对于人类而言我们无法看懂10101010。

2.好在这个不是我们需要关心的,网络工程师不关心怎么来的,怎么转换的,我们只管关心数据转发。

3.如果你能关心数据的010101,数据的衰减增益,可以到很多物理层的厂商,比如网线、光纤、熔纤仪、配线架等物理层周边配套的厂商。

4.如果你关心数据的内容,可以做前端漂亮网站,后端数据库对接,形成动态网站等等。

5.如果你全会,那就是全栈工程师,全栈斗士,全学下来,基本就学废了。

所以我们接触的领域只是把上层的无论什么应用数据通过我们的合理的网络拓扑的最优路径和与之相匹配的设备送达到数据的目的地,但是如何通过光信号和电信号进行传递的,不是我们关心的。所以网工接地气,但是也不那么接“地表”。

OSI

那这些模棱两可的划分区间似乎不能那么清晰的判断出我们的存在,我们可以使用OSI参考模型进行大致的划分。

Q:令人容易混淆的ISO、OSI、IOS分别是什么?

A:OSI模型(Open Systems Interconnection Model)

 ISO:国际标准化组织(International Organization for Standardization)

IOS:苹果或者Cisco操作系统

为什么需要OSI参考模型

1.消除垄断,打破行业壁垒

一个社会一个行业都不希望在某个领域有垄断的存在,垄断了就可以坐地起价,唯我独尊。通过标准化的方式,让厂商遵循标准来生产设备、开发功能,这样客户就可以不被某个厂商绑架,做到百花齐放。

2.形成标准,推动行业发展

OSI模型的设计目的是成为一个所有设备制造商都能实现的开放网络模型,来克服使用众多私有模型所带来的困难和低效性。刚推出的时候,美国政府还进行政策保障,如果不按照OSI参考模型来设计产品,那么将不采购他们的设备。

参考模型优势

  1. 横向不同部分更好的标准化,创造标准化的细分领域,带来良性的市场竞争,并且能互联互通。

    物理层:绿联、安特卫普、徳特维勒

    数据链路层:华为、华三、思科、锐捷、TP-LINK

    路由器:华为、华三、xxxx

2.纵向:不同层级标准化后,就能够进行相互之间的衔接

3.学习有抓手,排错有方向

OSI七层

网工主要掌握下4层,了解上3

应用层(Application Layer)

不服务于任何其他层,就是为App提供相应的服务,比如为HTTP、域名解析DNS提供服务。

9表示层(Presentation Layer)

1.使得应用数据能够被不同的系统(Windows\Linux等)进行识别和理解

2.加解密

会话层(Session Layer)

建立管理和中止两台通信主机之间的会话。

上三层会使用到的场景

1.认证

2.授课

3.面试的时候

4.用来展现自己过盛的学习精力的时候。

传输层(Transport Layer)

主要协议:TCP和UDP

现阶段只要知道(源目)端口,用于确定上层的应用。用于确定源和目的的连接

通过知名的端口(目的),来确定访问某个上层应用,例如目的端口位80/443 - web服务

netstat -aon

协议:TCP

源IP地址:192.168.199.22

源TCP端口:56864

目的IP地址:36.249.66.76

目的TCP端口:80

ESTABLISHED:TCP三次握手已经建立

15808:进程号

源端口56864代表自身的上层应用软件(例如这里的Chrome浏览器),并且一般使用大于1024的端口。

目的端口80为知名的端口,即80端口

这里的端口(port),是看不见摸不着的,不是交换机端口,简单理解成就是上层应用的标识或者编号。可以理解成是一个身份证对应一个人。

问:为什么我们没有在输入域名的时候,后面加上端口呢?

因为有些都是约定俗成的了,那就没必要再输入了

例如https://www.baidu.com:443  = https://www.baidu.com

http://www.baidu.com:80 = 百度一下,你就知道

http://www.baidu.com:1234 不存在或者关闭了相关的端口

网络层(Network Layer)

1.常用设备是路由器、三层交换机,类似于一个物流中转站。

2.定义了逻辑地址IP

3.在该层的设备有一个自己学习得到的数据转发表,称为路由表。设备收到数据后,根据数据封装的目的IP进行数据转发,类似于中转站根据快递的收件地址来判断应该发送到哪个中转站。

数据链路层(Data Link Layer)

1.常用设备是二层交换机和网桥

2.将数据打包成数据链路层的帧,方可在对应的数据链路层上发送,不封装就无法发送哦。3.提供差错控制

3.在园区网最常用的以太网上,在封装的帧中会写上数据链路层的地址-——MAC地址,用以太网规定的格式标注目的地的所在位置。

类似于中转站或目的地除了有山东省东营市东营蓝天汽车营业点外(红框部分),也可以表达为自营服务点546B(蓝框部分)

Q:快递只写从哪寄到哪里,快递叔叔肯定不是拿着快递就直接头铁送到目的地,而是通过一个个中转站的接力,那么机智的快递员叔叔应该如何知道将快递发送给哪个中转站呢?

A:就需要3层和2层通力合作

首先快递系统会知道去往某个目的地就需要先发给某个中转站,然后此时就是数据链路层的MAC地址(假设在以太网上)立大功了,通过在原先的快递上添加目的MAC地址,从而发给下个中转站(不是写在快递面单上,但是会在快递的系统上进行同步),以此类推,最后到达用户手中。

全程寄件地址、收件地址都不变(源IP地址和目的IP地址),但是中间的中转站地址(MAC地址)不停地改变。

物理层(Physical Layer)

转换成光信号和电信号进行发送

常用设备和耗材是:中继器、集线器、网线、光纤xian等

TCP/IP参考模型

OSI是1984年被ISO组织正式引入的,TCP/IP是20世纪70年代提出。

左边是实际模型样式(4层),右边是更通俗易懂的对等体模型(5层),所以4层和5层都对

现阶段仅仅需要知道有这些东西即可,有印象就好

应用层

1.和四层端口强相关。通过端口找到相应的应用。

2.常见端口需要牢记,用于ACL和流量分析

FTP

telnet

用于远程进行设备维护,使得你看上去就像在本地配置一样

优点:方便,且可以同时进行多台设备调试

缺点:明文传输,如果配置错误导致断网就芭比Q了。

带内管理in-band:是指网络的管理控制信息与用户网络的承载业务信息通过同一个逻辑信道传送;

带外管理out-of-band:网络的管理控制信息与用户网络的承载业务信息在不同的逻辑信道传送。

【telent配置】

操作步骤

Step 1 配置Server的Telnet验证方式和密码。

<HUAWEI> system-view

[HUAWEI] sysname Server

[Server] telnet server enable   //使能Telnet功能。

[Server] user-interface vty 0 4

[Server-ui-vty0-4] user privilege level 3

[Server-ui-vty0-4] protocol inbound telnet

[Server-ui-vty0-4] authentication-mode password

Please configure the login password (maximum length 16):Aa123456!

[Server-ui-vty0-4] quit

Step 2 .配置接口IP地址

[Server]int GigabitEthernet 0/0/0

[Server-GigabitEthernet0/0/0]ip address 192.168.10.123 24

Step 3.客户端测试

99首先要保证客户端的联通性,即客户端可以通过云ping通网络设备

Step 4 登录

可以使用cmd或者其他第三方的软件(SecureCRT、Xshell、MobaXterm)使用telnet登录

输入命令

telnet 192.168.10.123

输入密码,注意输入是没有回显的哦哦~

登陆成功

HTTP

HTTP 被动响应

传输层

TCP

可靠的传输协议

1.提供端(口)到达端(口)的链接,传输层PDU叫做段

2.基于tcp协议的应用服务,都需要客户端和服务端之间建立连接后,才能交互数据。类似于打电话,要电话先接通了才能进行对话

3.整个交互过程有确认机制,以确保数据传输完整

4.应用于要求可靠传输的领域

特点

优点:可靠性高

缺点:效率不那么高

port

1.插入字节和bit的换算 16bit-->2字节

2.再次强调源目端口的作用

--->端口取值范围是1-65535(2^16bit)

--->1-1023是知名端口(目的端口)

http  80

https 443

ftp 20,21

ssh 22

telnet 23

   客户端访问服务器的知名端口,一般都是使用随机非知名端口作为源端口。

seq序列号

作为序列号,用于标识一个tcp报文,一个TCP会话内的第一个tcp报文的seq一般作为随机值

ack序列号

       确认号,用于确认已经接收到的TCP报文,一般只有在确认的时候有数值,数值位为发送方seq+1,其他时候为0

标志位(6bit-9bit)

Syn、Ack、Fin标志位最为重要

这里的标志位ack标志位和上面的ACK序列号不一样

UDP没有序列号的确认号,因此不是面向连接的,是不可靠的

UDP不可靠那为什么还要存在呢?

UDP效率高(TCP效率没那么高,TCP要确认,丢了还要重传)

视频、语音都用UDP

三次握手

PC1首先会发送一个SYN(同步位)标志位置位的报文给要建立TCP连接的PC2,此时SEQ序列号为随机值a,由于还没有收到PC发来的任何报文,因此ACK确认序列号为0

PC2收到SYN标志位报文后,会对报文进行应答(ACK标志位置位),说明已经收到该报文,并且同样会发送一个SYN标志位置位的报文给PC1,请求建立连接,此时SEQ为随机值B。

因为PC1发来SYN置位,需要消耗了一个序号为a的TCP数据,因此PC2收到后,就要使用ACK确认序列号为a+1进行确认(也表示期望PC2下次使用a+1进行发送)。

注意:ACK标志位和ACK确认序列号是两码事,不要混淆

客户端收到服务器的主动请求建立连接和确认报文,无需在对服务器端发送的确认报文做回应,但是需要对服务端主动的的请求做应答,所以只是ACK置位,不置位SYN,SEQ=a+1(PC2期望的序列号值),ACK=b+1(期望PC1下次使用b+1序列号进行发送)

[1] 序列号计算

为什么双方都会有一个序列号 ,即PC1用seq = a,PC2用seq = b

 随机产生

因为TCP是一个全双工协议,可以各发各的,不会相互影响,因此双方各自维护一个序列号。但是Wireshark里面的SEQ是0,那是因为方便使用者识别,所以做了一个相对偏移。

      

      序列号怎么计算?

      1. 一个方向的序列号是seq=x,发送了1000字节,那么序列号就加上x+999

      x---->第一个字节

      x+1--->第二个字节

9      。。。

      x+999--->第1000个字节

   

      2.接收方如果全部收到了这1000字节,即收到了x+999号序列号的数据,因此回复ACK的时候,要将ACK序列号位+1,即期待ACK=x+1000序列号的数据。

      3.syn标志位、fin标志位被置位,即使没有真实的数据,也算一个字节

      ack置位序列号不变

8

一个例子

还是刚才的telnet例子

IP:88<----->IP:123

88 seq=0 ,syn置位--------------------->

<<----------------------123  seq=0  ACK=1,syn和ack置位

88 seq=1 ACK=1 ,ack置位------------------------>>>

三次握手成功

123 seq=1 ,ACK=1 数据9字节--------------------->

123 seq=10 ,ACK=1 数据9字节--------------------->

<<----------------------88  seq=1  ACK=19

三次握手结束后,123开始给88发送数据

123使用seq序列号为1开始发送数据,第一次9字节,第二次还是9字节,一共发了18字节

此时88予以确认,发送ACK为18+1

999注意:尽可能使用非物理网卡(有线、无线)进行抓包,否则会有大量的报文,对于初学者而言简直是噩梦。

滑动窗口

TCP中并不是发送方每发一个接收方都需要确认,这样能够减少报文交互,同时减少等待时间。

双方可以通过协商一个窗口大小的方式,一方面控制数据的传输速率,另一方面可以告知发送方,发送多少数据之前无需等待接收方的确认。

1.图中空白的方格代表能有多少缓存,如果全部塞满(变成实心的方格),就不再接受

2.应用会从缓存中取走相对应的内容,从而释放内容,重新形成空白方格。

3.当PC2还有1个缓存空间(还有两个未读走),PC1只能发送一个方块的数据,这叫窗口合拢,等到缓存都读走,窗口就张开。

4.发送方叫拥塞端口cwnd决定发送方能发多少,接收方是叫通告窗口windows,表示接收方能接受多少,cwnd大于wondows的时候,按照通告窗口windows的大小来发送。

四次挥手

链接是全双工,也就是收发互不影响

可以只断开一边,例如A--->B断开,那么A--->B不能传送

但是由于A<----B还没断开,因此B还能给A继续发送数据

但是比较少应用这么干

UDP

基于UDP协议的应用服务

1.都需要客户端和服务端之间无需建立连接,也能交互数据。

2.整个交互过程无确认机制,无法确保数据传输完整

3.应用于不那么需要准确传输的领域(视频)

特点

优点:效率高

缺点:没有可靠性保障

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TvT<

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

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

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

打赏作者

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

抵扣说明:

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

余额充值