目录
网络发展背景
理解计算机结构
认识局域网与广域网
最早期计算机之间是互相独立的,每个计算机各自处理的自己的业务,后来由于业务的需求将多台计算机连接在一起,完成数据共享,就产生了网络。
将计算机通过交换机和路由器连接起来,形成了局域网LAN和广域网WAN的概念,局域网和广域网是相对的概念,比如,全中国的整个网络可以看作是广域网,也可以看做大的局域网。一般而言,可以将是否含有路由器看做是否是广域网。
分层的网络协议
网络协议
协议分层
OSI七层网络模型
OSI七层模型特点
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。但是, 它既复杂又不实用; 所以被广泛采纳的是TCP/IP五层模型。
TCP/IP五层结构模型
将OSI的应用层表示层,会话层统称为应用层,就形成了TCP/IP五层模型。
各层功能:
物理层:光电信号传递,集线器工作在物理层
数据链路层:数据帧的传送和识别,交换机工作在数据链路层,以太网协议
网络层:数据的目标地址,路由器工作在网络层,主要有IP协议
传输层:保证数据的可靠传输,主要有TCP、UDP协议
应用层:应用程序间沟通,主要有http、https等协议
物理层和数据链路层是负责数据真正的传输过程,网络层是负责解决数据传输到哪里的问题,传输层则是解决了数据在传输过程中保持可靠性的问题,而应用层主要解决的是数据在应用程序之间沟通的问题。
传输层协议和网络层协议是在OS内核实现的。
常将数据链路层、物理层统称为网络接口层。物理层较少考虑,故也称整体为TCP/IP四层模型:
网络传输的基本流程
网络与OS的关系
操作系统内部有一个模块叫做TCP/IP协议,也就是网络协议栈隶属于OS
与IO操作同理,体系结构直接决定,数据包在主机内进行流动时,一定要自底向上或自顶向下。
认识IP地址
IP 协议有两个版本 , IPv4 和 IPv6。这里指IPv4。IP地址是在IP协议中, 用来标识网络中不同主机的地址。对于IPv4来说, IP地址是一个4字节, 32位的整数。我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
IP地址在网络传输中解决的是数据从哪里来发到哪里去的问题,它在广域网/公网标定了主机的唯一性。
认识MAC地址
MAC地址用来识别数据链路层中相连的节点,长度为6个字节,48位。 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)。在网卡出厂时就确定了, 不能修改. MAC地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)。
MAC地址在网络传输中解决的是数据上一站从哪来下一站数据要发到哪的问题,MAC地址在局域网标定了主机的唯一性。目的MAC地址由目的IP决定。
可以用ifconfig命令查看MAC地址:
ether表示以太网的意思,以太网是一种局域网的标准。
注意:任何主机,任何时刻可随时发信息,信息会发生碰撞。在碰撞域中将无法准确识别消息,所以数据需要进行碰撞检测,进行碰撞避免。
通讯过程
在一个局域网主机间的通讯过程:
路由器横跨两个局域网,当要进行跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器:
除了下两层协议不相同,其他层协议是一样的,所以在IP层往上,发送主机和接收主机看到的数据一样,同层协议都认为自己在和对方直接通信,屏蔽了底层的差异。
数据包的封装和分用
重谈协议:类比于快递上多给的快递单子,为维护协议,在被传输数据上,要新增的其他数据(协议数据),称为协议报头。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).首部信息中包含了一些类似于首部长度, 载荷(payload)长度,上层协议等信息.数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理,称为分用.
封装过程:从上往下
解包:从下往上,有效载荷的分用,交付给上层哪个协议
报头的字段 (大部分协议的公共属性),有支持封装和解包的字段(报头长度),方便封装(添加报头),方便解包(去掉报头);也自然要支持分用,解决将自己的有效载荷交付给上层的哪一个协议的问题。