计算机网络概述

前言:最近闲来无事,回顾最近所学,发现也就网络还能稍微拿出来说说,想着是把计算机网络拿出来,把书上(主要依据《TCP/IP协议详解卷一》)复杂的知识点简单化,尽可能拿生活中的例子阐述,一来,那本书虽然好,但读起来很多地方晦涩难懂,很多知识点,不拿个例子出来说说,看完就忘,过几天连点印象都没。二来也为了自己知识点的梳理。当然,小生不才,里面肯定有些理论理解有误,欢迎大神指出。

概述

1.什么是网络协议

假如你用外语和一个外国人聊天,即使你的英语很溜,那你是不是也需要先将你想表达的内容转换成英语,然后才说出口的,这个过程中,中文转英文是怎么转的?是不是有一个规则,语法,这个就可以看成一个协议
放到网络里,由于世界上好多主机硬件不同,手机,电脑,嵌入式设备等等,系统不同,windows,linux,ios等等,这么多不同的设备怎么交流,肯定需要一个规则,一个协议了

2.网络协议的设计和实现

(1)分层

网络协议为什么要分层

由于网络涉及到了物理传输,系统解析,软件应用等内容,为了解决这么多模块的兼容,有了分层的概念,通过分层有一些好处,可以通过这些优点了解到分层原因

a:网络分层能够使开发人员分别实现系统的不同部分,也就是网络中的各层内容由不同领域的专业人员实现
你工作中如果只是涉及到应用层的协议,你是不是门清,然而像什么数据链路层,网络层,传输层的协议你了解的很少,这就对了,要不然你要学的东西还很多很多,网络分层为你减负

b:分层能够使每层只负责网络传输中的一个方面
网络传输,我们平时只是在使用,如果要从零开始,考虑网络传输实现,是不是物理线路是否正确连接,数据是否丢包,数据传输是否正确等等很多问题扑面而来,这么多问题,每层负责解决一个问题,到你涉及到的层次,要考虑的问题是不是就很少了,网络分层又为你减负了

c:有些网络中的设备可能只需要实现网络中某些功能,不需要全部实现,网络的分层正好能解决这一需求
拿网络中的设备交换机,来说,它属于数据链路层的设备,只关心物理层,数据链路层,上层协议,放到交换机上也没用,白白浪费空间

分层类型
OSI分层------七层网络模型

层次----名称-------------代表协议
7--------应用层----------http,dns,dhcp
6--------表示层----------
5--------会话层----------
4--------传输层----------tcp,udp
3--------网络层----------Ipv4,Ipv6,TGMP,ICMP,IPsec
2--------数据链路层----arp
1--------物理层

ARPANET-----网络模型

层次----名称
7--------应用层
4--------传输层
3.5------网络层(辅助)
3--------网络层
2.5------链路层(辅助)

分层中的复用,封装,分解

复用
拿手机和PC机来说,手机连接无线,PC连接网线,用这两个设备都访问同一个网页,结果是相同,正常情况你是能访问网页的,但是呢,由于传输介质的不同,传输过程必定不同,再把刚刚的七层网络协议分层拿过来看看
7--------应用层
6--------表示层
5--------会话层
4--------传输层
3--------网络层
2--------数据链路层
1--------物理层
传输介质不同,物理层肯定不一样,数据链路层先不讨论是否相同,但是网络层往上肯定是相同的,那相同的地方就能用相同的协议呗,这不就实现了协议的复用(分层体系结构的一个主要优点是具有协议复用的能力),题外话是这种思想特别好,在开发中加进这种思想,一来可以提升代码层次结构,二来可以大大减少代码量

当然书上关于复用还有些内容,很好理解------复用形式允许多种协议共存于同一基础设施中,也允许相同协议对象的多个实例同时存在,并且不会被混淆

封装和分解
复用的例子也好,你正常上网也好,都会涉及到很多网络协议,这些网络协议处于不同网络分层中,那这些协议到底是怎么使用的呢,上面说过这个协议,就是一个规则,你访问一个网页,从上往下看,你首先接触到的是http,应用层的协议,网页数据根据http的规则封装成一个数据包,将这个数据包向下层传输,传输层的tcp(表示,会话层一般没协议)拿到http的数据包后,根据tcp的封装规则,将http数据包再封装后,再将数据包给下层的协议传过去,一直到物理层,数据包被发送出去
数据包被接收方接收到后,网页要显示,必须要把数据包分解,拿出有用的数据才行,那接收方只能按照发送方的过程,逆序来一遍,有效数据就能获取到了

(2)内联网,外联网,互联网

内联网:内网,或者叫局域网,有可能是一个公司,一栋楼,一个小区,都是用的一条线路(一般根据计算机台数来决定是否用光纤或是普通的网线,他们内部互相访问,是不需要产生任何费用的,不用缴纳上网费,他们访问互联网,都是用的1-2个出口(简单理解就是大家“共享”使用,费用平摊下来,就不是很多了,好处是,如果同时段,上网的计算机不多的话,那么上网的那几台电脑会非常快,但是如果计算机都开着上网,那么每一台计算机都会很慢),大学宿舍里,一个宿舍共用一个宽带账号的时候,舍友开黑玩游戏,而你自己在下东西,舍友定会说你,让他们的延迟那么高。。。

外联网:简单理解就是独立IP,在互联网上畅游的单独一台计算机网络,例如 ADSL家庭用户

互联网:每一台计算机,都有一个单独的IP地址,通过这个IP地址,你的电脑可以访问我的电脑,我的也可以访问你的,然后这些计算机多起来,几十万台,几千万台,互联在一起,就成了互联网了。理论上,任何一台电脑都可以互相联系在一起。。

可以这么理解,几千万个外联网组成了一个互联网,内联网就是个局域网

3.设计应用

上面说了网络分层,网络分层只是一个简单的服务模型,站在传输的角度,就是一个传输结构,那么站在应用角度上,网络结构又被分层两种
客户机/服务器模式
对等模式

(1)客户机/服务器

大多数网络应用是被设计成这种结构的,一端是服务器,另一端是客户机,服务器呢,书上又将服务器划分了两类,迭代和并发

迭代服务器步骤

等待客户机请求到达
处理客户机请求
将响应发送给请求的客户机
回到步骤1

并发服务器步骤

等待客户机请求到达
启用一个新的服务器实例(可以是一个新的进程,任务或线程),这个新的服务器处理一个客户机的全部请求,当请求的任务完成后,这个新的服务器终止。同时,原有服务器实例继续执行下列步骤
回到步骤1

通过两种服务器比较,发现,迭代服务器走到步骤2后,一直在等待不说,好不容易有一个客户请求数据,服务器只服务一个客户了,再来一个客户就要等服务器服务完上一个客户才能提供服务,秉着客户就是上帝的原则,不能让客户等呀,所以出来了并发服务器,并得到了广泛普及,以至于我都没见过市面上的迭代服务器

(2)对等

书名词不好记,但是要和你说种子,P2P,是不是就记住了
这种模式,理论上互联网上的任何一个主机,即可以做服务器,也可以做客户机,所以为什么经常看见留种留种了!你把种子删除了,怎么提供数据?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值