计算机网络简述
一、计算机网络的定义
一些互相连接的、自治的计算机的集合。
生活中,我们听的最多的互联网就是计算机网络中被大家广泛适用的一个。
二、网络体系结构
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。我们再学习计算机网络时,会接触到两个协议体系,一个是 OSI(Open System Interconnect)协议,供七层,各层划分清晰,但是太复杂,实际没有被用起来。另一个就是被广泛使用的 tcp/ip 协议,由四层组成。
2.1 OSI 七层体系结构
因未被使用,各层就不详细介绍了。主要说明下物理层。
在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。
2.2 tcp/ip 四层体系结构
1)链路层:有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2)网络层:有时也称作互联网层,处理分组在网络中的活动。
3)运输层:主要为两台主机上的应用程序提供端到端的通信。
4)应用层:负责处理特定的应用程序细节
2.3 对应关系
三、网络协议
在 TCP/IP 四层体系结构中,每层都有相应的网络的协议。他们都是有两大部分组成:协议头部、数据。
下图为各层主要常用协议
1)ARP(Address Resolution Protocol)地址解析协议:实现根据逻辑地址即 IP 地址获取机器的物理地址。
2)IP(Internet Protocol)网际协议:在整个网络协议中,非常重要的协议。实现在不同网络节点中逐跳路由。
3)ICMP(Internet Control Message Protocol)Internet 互联网控制报文协议:用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。我们常用的 ping 命令,底层就是基于此协议实现的。
4)IGMP(Internet Group Management Protocol)Internet 组管理协议:是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
5)TCP(Transmission Control Protocol)传输控制协议:是一种面向连接的、可靠的、基于字节流的传输层通信协议。有意思的是,ip 协议是无连接与不可靠的,那么 tcp 是如何做到的呢?这个涉及到非常复杂的实现,也是面试中问的比较多的地方。
6)UDP(User Datagram Protocol)用户数据报协议:为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。这个跟 tcp 不太一样。但是也有非常多的应用场景,如视频、语音聊天等应用中,更关注的是数据传输的效率,哪怕丢失部分数据也不影响使用。
7)HTTP(Hypertext Transfer Protocol)超文本传输协议:我们在使用浏览器访问网站时,就是使用此协议。传输层使用 tcp。
四、封装与分用
当应用程序用 TCP/UDP 传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程被称作封装。如图所示
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用。如图所示
注:虽然 ICMP 及 IGMP 和 IP 都是网络层协议,但是它们却是被封装在 ip 协议中的。
版权声明: 本文为 InfoQ 作者【lee】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8973fb45d4ef4f7461e0883f】。文章转载请联系作者。
评论