计算机之间传输媒介是光电信号,通过信号的强弱和频率来表示0和1,但是要知道大量0和1表达的真实意义,就要约定好数据格式。也就产生了各种各样的协议。而网络上的传输也需要协议来标准规范,也就相当于Java和C++中的接口的作用吧。
1.协议分层
接下来就大概讲述两个比较典型的分层模型:1. OSI开放系统互连,七层协议模型 2.TCP/IP五层(四层)协议模型
1.OSI七层模型
是一个逻辑上的定义和规范,把网络从逻辑上分了7层,每层都有相关的对应的物理设备,比如路由器、交换机等。
OSI是一种框架性的设计方案。
主要功能:使不同类型的主机实现数据传输。
优点:将服务、接口、协议这三个概念明确区分开,不同系统不同网络之间实现可靠通信。
缺点:复杂不实用。
分层: 应用层-> 表示层-> 会话层-> 传输层-> 网络层-> 数据链路层-> 物理层
2.TCP/IP五层模型
TCP/IP是一组协议的代名词,还包括很多协议,组成了TCP/IP协议簇。
每一层都呼叫它的下一层所提供的网络实现自己的需求。
分层:应用层-> 传输层-> 网络层-> 数据链路层-> 物理层
图片来源:https://blog.csdn.net/u014044812/article/details/91423184
对于一台主机,它的操作系统内核实现了从 传输层 -> 物理层(端口号)对于一台路由器,它实现了从 网络层 -> 物理层(IP->MAC)对于一台交换机,它实现了从 数据链路层 -> 物理层对于集线器,它只实现了物理层。
接下来说说TCP/IP五层模型中有哪些协议?
应用层: 1.基于UDP: NFS(网络文件系统)、TFTP(简单文件传输)、DHCP(动态主机配置)、BOOTP(无盘设备启动)、DNS(域名解析)2.基于TCP:HTTP、HTTPS、SSH、Telnet、FTP、SMTP传输层: UDP、TCP网络层:IP、ICMP(相当于IP的升级版)、IGMP链路层:以太网协议
2.网络中如何传输数据?
同一网段的两台主机
发送数据:将数据一层一层的包上各个协议头
接收数据:将协议一层一层解开,拿到数据。
不同网段上的两台主机
- 应用层-> 传输层-> 网络层-> 数据链路层
网络层包含n个路由器“中转”
比如在浏览器中输入www. baidu. com
1.客户端通过DNS进行域名和IP地址转换,得到baidu的IP地址220.181.27.48,找到客户端到服务器的路径。客户端将数据用HTTP头部包装。
2.在传输层,添加目的端口和源端口,建立与服务器之间的通信连接,将HTTP数据发送出去,并保证数据可靠到达。
3.在网络层,不关心应用层和传输层的东西,要做的就是“查找路径”,通过路由器表确定到达服务器的路径。
4.在数据链路层,查找目的IP的MAC地址,通过链路层发送到路由器,表示的是节点(路由器、主机、链路等)之间的传输。
(个人理解,如若有偏差请评论赐教,十分感谢)
3.数据包的封装
不同的协议层对数据有不同的称谓。
传输层叫数据段、网络层叫数据报、链路层叫数据帧。
封装: 每到达一层,协议就会给数据加上自己的协议头的行为。
拆包:当数据封装成数据帧后发送到传输介质上,到达目的主机后,每层协议剥掉各自的协议头的行为。
4.两个地址
IP地址
IP地址有两个版本,IPv4和IPv6 。一般是IPv4
作用:标识网络中不同主机地址。
特点:点分十进制。 例如:192.165.0.1
IPv4:占4字节
IPv6:占16个字节
可以这么说,IPv6解决了IPv4的IP数量限制问题,但不是IPv4的升级版,二者没有联系,它并不常用。
MAC地址
相当于硬件地址,是唯一的,在网卡出厂时就确定了,并且不能修改。
作用:识别数据链路层中相连的节点。
MAC:占6个字节
特点:十六进制用冒号分隔,例如:08:00:27:03:fb:19
接下来我们仔细的研究TCP/IP五层模型各个层的常用协议…
HTTP应用层协议详解
UDP和TCP传输层协议
TCP三次握手和四次挥手
IP网络层协议详解
ARP数据链路层协议
欢迎指正!~