计算机网络基础
1.分层思想
将复杂的流程分解为几个功能相对单一的子过程
整个流程更加清晰,复杂问题简单化
更容易发现问题并针对性地解决问题
2.OSI参考模型 VS TCP/IP参考模型
2.1 OSI参考模型
应用层:
网络服务与用户的一个接口(用户操作)
人机交互窗口
把我们 (人)的语言输入到计算机当中。Eg:微信 qq(终端设备:pc,平板,手机)
表示层:
把人的语言翻译成机器语言
(计算机语言)将我们接收到的数据翻译成二进制数组成的计算机语言,并且对数据进行
压缩和解压和数据加密解密
等工作。(终端设备:pc,平板,手机)
会话层:
建立、管理、终止会话(软件的建立会话 qq、vx)管理是否允许不同的机器上用户之间
建立会话连接的关系
。(终端设备:pc,平板,手机)
传输层:
(eg:
防火墙
工作在传输层)定义传输数据的协议端口号(eg:几0几室 即:地址)、流控、
差错校验
(端到端 eg:门卫同意你进去你才能进)。将上层的数据以
分片
的形式 并加上端口号进行封装,成
数据段
,或者通过对报文头部的端口识别,实现网络中不同的主机上用户进程之间的数据。如果校验错误会停止校验,重新发送。(终端设备:pc,平板,手机)用户进程之间的通信,承上启下。
网络层:
(eg:
路由器
工作在网络层)进行逻辑地址(
IP地址
随时随地会变所以叫逻辑地址)实现不同的网络之间的路径选择。将上层的数据加上源和目标的逻辑地址(即IP地址)封装成
数据包
,实现数据从源端到目的端的传输。(点对点 )(终端设备:网关,路由器)根据包头的逻辑地址选路径。
数据链路层:
(eg:网桥,交换机、网卡)建立逻辑链接、进行硬件地址寻址、差错校验等功能。(交换机、网卡)将上层的数据加上源和目的地址(物理地址 即
Mac地址
用来标识网卡的物理地址(全球唯一))封装成
数据帧
。
物理层:
(eg:网卡、网线、中继器、集线器、光纤、同轴电缆、双绞线)建立、维护、断开物理链接把报文头部和上层数据信息都是二进制数组成,物理层将这些
二进制数字组成的比特流
(位)转换成电信信号在网络中传输。
2.1.1 OSI分层模型的案例
vx qq是如何进行OSI分层的
应用层:对话窗口 输入:你吃过了吗 人机交互窗口
表示层:机器收到你输入的信息,立马翻译成计算机识别的语言,并进行压缩加密
会话层:建立与对方的链接 即 会话,两端需要建立关系才能使用(互联、找到对方的实体,即qq、vx进程)
传输层:我这边把qq进程给你,然后我到另外一头需要找到对方的端口 也就是qq、vx传输信息的端口(端到端)
网络层:负责通过路由器找到对方的IP地址(网络地址)
数据链路层:要通过物理地址找到对方的主机Mac地址
物理层:负责二进制比特流来传输
2.1.2 端到端与点到点的区别
点到点:主机a与主机b
端到端:进程与进程之间 端口对端口,你的窗口与我的窗口,南京到上海
2.2TCP/IP参考模型
2.2.1 TCP/IP协议族的组成
1.应用层:
HTTP(超文本传输协议) 80
HTTPS 加密的 443
FTP(文件传输协议) 21端口用于连接,20端口用于传输数据
TFTP(简单文件传输协议) 69
SMTP(简单管理协议)
DNS(域名解析) 53
2.传输层:
TCP(传输控制协议) 只适合 邮件 传输 稳定安全
UDP(用户数据报协议) 高效 不校验 eg:qq
-
网络层:
ICMP(国际控制报文协议)ICMP报文是在IP数据报内部传输 IGMP(国际组织管理协议) IP(网际协议):IP协议是不可靠协议 ARP(地址解析协议):IP地址解析MAC地址 RARP(逆地址解析):(相反)逆向解析
4.网络接口层:
由底层网络定义的协议
IEEE 802.3 有线局域网(以太网)标准
IEEE 802.11 无线局域网标准
2.2.2 PDU协议族的组成 与 各层之间的通信及设备
协议数据单元PDU(Protocol Data Unit)是指**
对等层次之间传递的数据单位
**。等层之间的传输叫pdu协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是数据(data)。
设备与层的对应关系:
2.2.3通信模式
我们在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:**单工通信、全双工、半双工**。
2.3 OSI参考模型与TCP/IP模型对比
层次结构
在层次结构上,相同之处:都采用了分层体系结构
将庞大而复杂的问题转化为若干个较小且易于处理的子问题;
不同之处:TCP/IP参考模型比OSI参考模型更简化。
层次关系
OSI参考模型与TCP/IP模型各自层与层之间关系相似。在OSI参考模型中规定数据为协议数据单元(PDU),通常在该层的PDU前面增加一个字母的前缀,标识为哪一层数据。
在层次间关系上,相同之处:都是对等的层间通信;
不同之处:TCP/IP参考模型比OSI参考模型层次更清晰简练。
功能方面
在功能上,大致相同,在两个模型中,传输层及以上的各层都是为了通信的进程提供点到点、与网络无关的传输服务;TCP/IP参考模型比OSI参考模型有更好的网络管理功能。
数据传输原理
把TCP/IP模型的数据传输原理分成几个步骤:
(1)当应用进程A的数据传送到应用层时,应用层为数据加上本层的控制报头后,将其组织成应用层的数据服务单元,然后向下传输到传输层。
(2)传输层收到该数据单元后,加上本层的控制报头,构成传输层的数据服务单元,该数据服务单元被称为报文(message)。
(3)传输层将报文传送到网络层时,由于网络层数据单元的长度有限制,因此,传输层的长报文将被分为若干个较短的数据段。每个数据段再加上网络层的控制报头,就构成了网络层的数据服务单元,它被称为分组。
(4)网络层的分组传送到数据链路层时,加上数据链路层的控制信息后构成数据链路层的数据服务单元,它被称为帧。
(5)数据链路层的帧传送到物理层后,物理层将以比特流的方式通过传输介质传输出去。当比特流到达目的结点主机B时,再从物理层依层上传,每层对其对应层的控制报头进行处理,将用户数据交给高层,最终将进程A的数据送给主机B的进程B,实现了数据的透明传输。
`在OSI参考模型中数据的传输和TCP/IP模型原理是完全一样的,`只不过OSI参考模型在前面说的第二和第三步骤中还要加上对表示层和会话层数据单元的封装。实际上,不管是OSI参考模型还是TCP/IP模型,`都是数据发送方的各层相当于将各自的控制信息添加到上层传来的数据上,然后一起打包继续向前传递,而数据接收方的各层则是将接到的数据包进行解压,`去掉发送方对等层添加在数据上的控制信息,然后传递给上层,最终实现数据的传输。在数据传输原理上二者是没有太大区别的,但OSI模型会话层在大多数应用中很少用到,表示层几乎是窄的。 在数据链路层与网络层之间有很多的子层插入,每个子层有不同的功能。OSI模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,使它的实现是困难的。同时,寻址、流控与差错控制在每一层里都重复出现,必然降低系统效率。而TCP/IP在服务、接口与协议的区别上不清楚。一个好的软件工程应该将功能与实现方法区分开来,TCP/IP恰恰没有很好地做到这点,这就使得TCP/IP模型对于使用新技术的指导意义不够。另外,TCP/IP的丰机一网络层本身并不是实际的一层,它定义了网络层与数据链路层的接口。物理层与数据链路层的划分是必要和合理的,一个好的参考模型应该将它们区分开来,而TCP/IP参考模型却没有做到这点。
3.封装与解封装
3.1封装
封装:从上往下 上层数据、数据段、数据包、数据帧、比特流
1.应用层 通过人机交互之后产生上层数据,把
上层数据
封装到传输层
2.到传输层,端到端,看端口号是否一致,把
源端口号和目标端口号
进行封装,封装成tcp头部,把tcp头部和上层数据打包成
数据段
。
3.在到网络层,是根据逻辑寻址,把
源ip地址和目标ip地址
进行封装,封装成ip头部,把tcp头部和上层数据以
数据包
的形式,传输到数据链路层。
4.数据链路层是进行建立逻辑链接,根据硬件地址寻址,即Mac地址,
源mac地址和目标Mac地址
进行封装,成Mac头部,然后将Mac头部和ip头部和tcp头部和上层数据以数据帧的形式传送到物理层。
5.物理层,通过
比特流
转换为
电信号
。
3.2解封装
从下往上 比特流、数据帧、数据包、数据段、上层数据
1.先是物理层的二进制转换为比特流
2.数据链路层:解析Mac地址(分为源mac和目的mac地址,看目的地址是不是我的,是否一致,是我的我拆掉Mac头部,不是我的就不动。)
3.网络层:看是不是我的ip地址,
源ip地址和目标ip地址
是我的我就拆掉ip头部,不是我的我就不动他。
4.传输层:看端口号是不是我的,传输层是端到端,源端口号和目的端口号是不是我的,是我的就拆掉tcp头部,不是我的我不动。
5.最后 到达应用层传数据。
总结:
OSI参考模型的七层协议;
早期TCP/IP模型是一个四层结构后来演变成新的五层结构;
TCP报文段首部长度为20-60字节,其首部格式中有6哥重要的控制位,而UDP的首部格式要简单的多;
数据的封装与解封装过程;
感谢各位网友的阅读,欢迎各位留言评论或转发,喜欢的话可以不要忘记点个小心心哦!