计算机网络小白初次尝试性总结

来源:互联网 发布:剑网三菊花插件数据 编辑:程序博客网 时间:2024/06/06 03:41

最近几天看了一下谢希仁老师编著的《计算机网络 第六版》,大概了解了一下计算机网络的相关知识,不过有可能总结的有些问题,欢迎对计算机网络小白的指正。

首先当然是介绍一下计算机网络的体系结构,这个图是我从百度图片里面搜索的,大家将就着看一下吧。从下面的图面我们可以看出计算机网络有三种体系结构的表示方式,不过在这篇博客里小白就用计算机的五层协议体系结构为你介绍一下计算机网络原理。


1.计算机网络的体系结构


应用层:通过应用进程的交互完成特定网络应用,在应用层的数据传输单元称为报文

运输层:为两个主机间的进程提供通信,在运输层的数据传输单元有两种,分别是运行TCP协议的报文以及UDP协议的数据报

网络层:为网络上的两个主机提供通信服务,在网络层的数据单元我们称为IP数据报

数据链路层:在两个相邻节点上传输数据,在数据链路层的数据单元我们称为帧

物理层:传送的数据单位是比特


2.路由器和适配器以及网桥的作用

2.1路由器:路由器的作用主要是连接两个不同的网络,路由器只有网络层,数据链路层和物理层。两个主机之间通信的话只有两种情况,一种是两个主机在同一个局域网内,则不需要通过路由器进行分组转发,举个不恰当的情况,两个男的有什么好聊的,搞基只是偶尔寂寞的情况才会。。。 。另外一种是两个主机不在一个局域网内,这个时候则需要通过路由器进行分组转发了,总算可以通过路由器和另外一个局域网撩妹了。

既然谈到了路由器,就不得不说一下路由器里面的转发机制了,首先路由器里面有个转发表,包括目的网络地址,以及子网掩码,交付接口,路由器在进行转发分组时,将IP数据报中的目的网络地址与子网掩码逐位相与,看是否是与路由转发表中的目的网络地址一致,如果一致则由相应的交付接口转发出去。这实际上跟小说中对暗号一样,答对了就是同志,答错了就是无关人员不予理睬。


2.2适配器:适配器实际上是用于数据链路层,里面的ROM固话了一个硬件地址,总共为48位,共6个字节,前3个字节归国际分配组织管理,后3个字节由客户自行分配


2.3网桥:网桥的主要作用是扩大局域网内部连接主机数量,网桥也是工作在数据链路层,所以也只有数据链路层和物理层


3.运输层.网络层和数据链路层各自的协议

数据链路层:数据链路层提供的是无比特差错的传输,数据链路层将网络层交下来的数据报加上帧首部(SOH)和尾部(SOT),当然万一IP数据报中的数据中有和首部以及尾部一样的数据单元怎么办,放心,加上一个转义字符ESC就OK了,可是IP数据报中有ESC字符作为数据怎么办呢,没事,再加一个ESC就OK了呀。这样接收端再通过去掉ESC就OK了。数据链路层采用CRC校验来降低误码率,不过不能处理帧丢失 重复 失序的情况。数据链路层采用的是PPP协议,并且采用广播信道和CSMA/CD协议.


网络层:网络层向上只提供近最大努力交付的IP数据报服务,换句话说出了错不负责,咱这层只是尽量避免这个错误。网络层有一个很关键的东西叫IP地址,老早的实行IP地址分类,即网络号+主机号=IP地址,A类地址网络号1字节(0标示符),B类网络地址2字节(10标示符),C类网络地址3字节(110 标示符),D类网络地址是多播地址(网络标号是1110),E类保留。当然了,实际上还有一些网络号已经被指定为特殊用处了。不过这是老套路了,毕竟A类地址和B类地址有那么多的主机号,即使子网掩码向主机号接几位使用也是无济于事,还是大大的浪费,为了节约,搞这些协议的计算机网络人员也是服了,就是采用无分类编制CIDR,就是不对网络地址分类,众生平等,大家各取所需就OK了。下面还有一个问题就是路由器的网络层收到了IP数据报,但是它怎么知道要通过哪个接口发送出去呢。这个时候就要用到IP层的ARP高速缓存了,其实就是先通过广播信道在本局域网内寻找IP地址对应主机的硬件地址,如果找得到则返回该主机的硬件地址,而且目的主机也记下这个源主机的相应信息,如果不是,就交给路由器来处理,换句话说此时记下的就是路由器的IP地址和硬件地址了。这也表明了ARP协议时解决同一个局域网内主机或者路由器的IP地址和MAC地址的映射问题,好不好,如果可以跨局域网,干脆直接把数据传过去得了。


运输层:既然数据链路层和网络层都不靠谱,那么计算机网络中的五层就每一个负责任的吗,告诉你,还真有,就是运输层,先来说说为什么是运输层,首先想问运输层在哪儿有,好不好,只有主机啦,什么适配器呀,网桥呀,路由器呀都是没有运输层的;与其给未知个数的适配器,网桥,和路由器里面固化一些保证可靠连接的协议,还不如给只有两个主机有的运输层搞一个保证可靠连接的协议。

好了,先说说运输层的两种协议吧,一种是面向连接的TCP协议和一种无连接的UDP协议

UDP是无连接的,尽最大努力交付(意思就是不靠谱),面向报文的,没有拥塞控制,就是一边收,一边发,顺带稍稍进行一下检验,不过这也导致采用UDP协议传输数据比较快,想想就知道了,毕竟不是细心处理嘛。其实这对于一些要求即时,快速的数据传输要求UDP协议还是比较适合的,毕竟使用场合不一样啊。

TCP是面向连接的,提供可靠交付的全双工通信,是面向字节流的。每一条TCP连接唯一被通信两端的主机进程。TCP连接的是两个套接字,即IP地址+端口号=套接字(socket)

下面再来介绍一下TCP可靠传输的工作原理:

1停止等待协议:首先TCP对每个分组进行编号,如果顺利到达,且没有差错,源主机应该在规定时间内(超时定时器)收到目的主机的确认回复,此时开始发送下一个分组。如果源主机在规定时间内还没有收到回复或者收到的是确认丢失,那只好当做主机没有收到信息,再重发一次信息。规定时间没有收到回复有三个原因,分组丢失,到达迟了,回复的迟了,对于回复的迟了,源主机收下不理睬,对于到达迟了,目的主机再收到重发的下一个分组时,要不理睬这个分组,但要给源主机发送一个确认收到,毕竟源主机就是因为没收到确认收到才重发的。

2.连续ARQ协议:这个比较好理解,就是目的主机先确认一个发送窗口长度的内容,这里面试有编号的分组,反正源主机首先可以把窗口内的内容全都发送出去,目的主机采用累计确认的方式,毕竟一个一个的回复确实有点恶心,比如说我等一会儿,这个时候我返回一个按序到达的最后一个分组,不按序到达的就算了,换句话说此时告诉主机,在这之前的数据我都已经收到了,有时还可以顺带告诉主机你可以把发送窗口扩大一点,或则后移一下,此时源主机则将发送窗口后移,目的主机接收到多少个,源主机就后移几位,此时再连续发送,这样效率会更高一点。


好了,今天就说这么多了,第一次写博客,可能写的不太好,还望大家将就着看!

0 0
原创粉丝点击