谈谈这学期的一些学习上的收获,以及对所学知识的理解,还有自己编程能力的变化。这学期我们开了计算机专业的几门核心课程,《计算机网络》,《操作系统》,《数据库原理》,另外还有《数字图像处理》,《软件工程》。
首先,先分开谈一下,当然下面的内容只是我的个人理解和总结,可能也会有不正确的地方,请大家批评指正,
开始
教我们计算机网络的老师,讲课很棒;在没上这门课之前,我有简单看过这方面的内容,但是没有形成什么体系,仅仅就是一些点,比如所谓的TCP三次握手什么的,四次挥手。学习这门课程后,我对现在计算机网络情况有了比较深入的理解,也解决了一些日常生活场景下的困惑。当然在书本上的内容,应该与现实的网络环境还是有着不少出入的。但网络体系确是建立在这统一的理论体系之上的。计算机网络的内容还是非常多的,接下来就是想到哪写到哪吧。
理论是以五层网络结构逐层展开的,还有一些其他的网络结构,在学习的过程也进行了比较,如OSI的七层网络模型,TCP/IP的四层网络模型,五层网络结构是结合两者提出的。
物理层
最底层是物理层,这一层是对各种传输信道进行了抽象,比如传统的双绞线,同轴电缆,光纤,甚至是卫星传输,还有一些具体的接口情况(这些线路是要与交换机、路由器、终端相连嘛),对这些物理特性在传输信号过程中进行了规定;这里的抽象,其中一个体现就是将这些传输信息的介质,比如光纤的光信号,双绞线的电信号,卫星的电磁波,进行统一,使得上层在调用下层服务时,无需考虑具体的细节。还有一些其他的细节等等都进行了抽象统一规定,使得物理层能够更好服务于上一层。
数据链路层
物理层上面是数据链路层,该层提到三个问题,封装成帧,透明传输,差错检测。
封装成帧
封装成帧,将上层的数据加上一些首部控制信息等封装成一个帧,然后再交付给下一层进行传输;
透明传输
透明传输,针对的就是上层的数据中出现了一些控制信息,如果不加以处理,在下方进行传输就会出现错误,比如帧界定符,在数据中出现,不加处理直接传输,这样就会使接收方错误的截断数据,使得获取的数据不完整,从而出现错误,丢弃。鉴于此,该层针对异步传输和同步传输提供了解决方法,==异步传输添加转义符号==,同步传输添加0;
差错检测
差错检测,对传输的帧进行差错检测,如使用CRC检测,将计算得到的校验码放在帧尾,接收方接收后,进行同样的计算,然后将计算得到的数字与后面的校验码进行比较,相同就接收,不同就丢弃(该方法只能针对传输中出现奇数的0变1或1遍0);
在这一层还有重要的问题就是 局域网,也可以说是以太网(使用最多的局域网标准),提到了局域网的演变,从最开始的总线型,到后来以集线器为中心的星型(实际上还是总线型)以及标准的变化,速率得到不断的提高,现在好像已经能达到400Gbps,以及最开始总线型中使用的CSMA/CD协议,用于解决碰撞问题,先听后发,边听边发,冲突停止,延迟重发这几个词可以很好的体现这一协议的特征,随着以太网的发展,该协议的使用减少了,但新的标准还是对之前做了兼容的处理。
此外一个是PPP协议(点到点协议),这个协议是之前网络情况不太好的时候使用,比如之前的拨号上网使用的就是这一个协议,用于连接终端到互联网的边缘部分,支持身份认证等,这个协议其实并不单单属于数据链路层,它还包括了物理层的内容。后来结合以太网发展成为了PPPoE协议。
该层还有一个比较重要的点,MAC地址,它是每一个网络设备的全球唯一标识,也是十分重要的帧首部控制信息。
网络层
IP over everthing, everthing over IP
从这句话就可以看出网络层中核心IP协议的重要性,承上启下,同样也是互联网传输协议的核心。
IP协议其一个重要的基础就是IP地址,在该层有两个分类标准,
- 一个是互联网刚发展起来时,传统的分类,A类,B类,C类,D类;
- 另一个是为了精细化利用IP地址的CIDR分类。
IPV4的地址已经被用尽了,最新的IPV6地址有32位。
在IP数据报的首部中,有着许多的字段,用于数据传输过程中的控制,如长度信息,是否分片,校验位等。同样这一层也是屏蔽了下层的协议细节。在该层的设备路由器也是网络的核心设备,通过构造的路由表进行转发,路由协议是构造路由表的核心,如基于距离向量的RIP协议,基于最短路径的OSPF协议,以及针对自治系统的BGP协议,当然还有其他课本上没提到的协议。正是这些路由协议,才能让IP数据报能够得到正确的转发。当然在网络层不仅仅只有IP协议,IP协议也需要其他协议配合工作,如ARP协议(地址解析协议,将IP地址解析为MAC地址),ICMP(网络控制协议,帮助解决错误情况),以及IGMP(实现IP多播)等。
还有一个场景就是VLAN,通过标识将在不同网络下的IP划分在同一个虚拟局域网下,实现一些特殊的需要。
传输层
这一层最重要的就是两个传输协议,UDP,TCP;UDP简单,不保证传输可靠,其发送数据的开销也十分小,一些实时的场景下使用到它;TCP是保证互联网中可靠传输的重要手段,其复杂的首部格式,是实现这一目标的基础,通过对每一个TCP报文进行编号,然后确认实现可靠传输(未得到确认报文,就进行重发)。以及经常提及的 三次握手 和 四次挥手,此外还有就是 流量控制和 拥塞控制(使用慢开始,拥塞避免,快重传,快恢复机制进想拥塞控制),具体的细节就不展开了。
应用层
这一层就是使用互联网下层提供的服务进行工作的应用了,很多,如http(超文本传输),ftp(文件传输),dns(域名解析)等。
总结
计网的内容还是很多的,上面的内容仅仅是以五层结构为基础进行展开。随着技术发展,网络也在不断变化,变得更加复杂,各种各样的新技术开始使用,蜂窝技术,移动互联网等。计算机网络中的思想是十分具有指导意义的,比如抽象,缓存,以及 核心功能与其他辅助分离(保证核心功能简洁) 等等,对更好地解决一些问题有所启发。
接下来的几篇文章,我将继续这个课程总结系列,如果内容存在问题,欢迎大家批评指正,一起交流学习。