一、网络背景
1.网络发展
独立模式:计算机之间相互独立。
网络互联:多台计算机连接在一起,完成数据共享。
局域网LAN:多台计算机通过交换机和路由器连接起来。
广域网WAN:远隔千里的计算机连接在一起。
2.协议
“协议”是一种约定。
计算机之间的传输媒介是光信号和电信号。 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信 息, 就需要约定好双方的数据格式。
互联网:主要特征为线更长了。
衍生要解决的问题:1.效率问题 2.可靠性问题 3.定位的问题。
协议很多,操作系统要把协议管理起来,怎么管理:先描述,在组织。
Linux内核使用C语言编写,C语言用结构体来描述协议,协议一定能表现为一种特定的结构体。
实际在进行网络通信时,发出去的数据与接收的数据是要比核心数据多的,多出来的那部分就是协议。
协议+数据 可以叫做数据报,数据帧。
3.网络协议初识
协议分层
网络的每一层层状结构当中都有它自己的功能。
网络结构在软件设计上是层状结构,设计层状结构的原因是解耦合,解耦之后便于用户去维护
层与层之间要进行交互,用接口来实现交互。
计算机网络三个名词:层状结构,解耦合,可维护性比较强,彼此之间通过接口来实现通信。
各层之间的功能
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇. TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
TCP/IP五层(或四层)模型
应用层:负责应用程序间的沟通,如简单的邮件传输,文件传输协议,网络远程访问协议,网络编程主要针对应用层。
传输层:负责数据传输的可靠性,稳定性,效率的细节。
网络层:解决的是跨网络传输的问题。一个重要设备叫路由器。
数据链路层:解决局域网当中互联设备之间的传送和识别数据帧,即解决的是局域网通信的问题。一个重要设备交换机。在发数据之前要做帧同步、冲突检测、数据差错校验等工作。
物理层: 以0和1代表电压的高低、灯光的闪灭。界定连接器和网线的规格。
因为物理层考虑的比较少,因此也曾TCP/IP四层协议。
对于一台主机,它的操作系统内核实现了从传输层到网络层的内容。
二、网络传输基本流程
1.网络传输流程
同一个网段内的两台主机进行文件传输的流程:
四层协议:
两台计算机通过TCP/IP四层协议通讯的流程如下
注:一般网络通信的发起者为用户
在局域网中
跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.
在进行跨网络传输有一个数据报头一定在不断变化:在此情况下以太网帧的结构在不断变化,从网络层开始的内容是没有变化的
1.数据包=报头+数据(有效载荷)
2.几乎所有的协议都要解决 数据(有效载荷)和报头 的分界问题。
3.在解包时,怎么确认应该把哪一个报头交给上层哪一个协议呢
自底向上 ,要确认自己的有效载荷需要交给上层哪一个协议? 几乎所有的协议要解决的第二个问题:确认分离之后,将自己的有效载荷交付给上层的哪一个协议————把这个过程叫做分用
4.在局域网中分别有编号为 1 2 3 4的主机,主机1给主机4进行网络通信发送数据。
问题一:主机1给主机4进行网络通信发送数据,那么主机 2 3能看到那份数据吗?
问题二:主机一发送的数据,主机4是怎么知道发送给自己的
局域网中,所有的主机可以直接通信。在数据链路层有一个MAC地址(48位),也叫做网卡硬件地址或者序列号,是全球唯一的!
5.局域网通讯原理:如上
2.数据包封装和分用
1.不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame). 2.应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation). 3.首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息. 4.数据封装成帧后发到传输介质上到达目的主机后每层协议再剥掉相应的首部,根据首部中的"上层协议字段"将数据交给对应的上层协议处理.
封装过程如下图 数据分用过程如下图
三、网络中的地址管理
1.IP地址
IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
1.IP地址是在IP协议中, 用来标识网络中不同主机的地址;
2.对于IPv4来说, IP地址是一个4字节, 32位的整数;
3.我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
4.对于IPv6来说IP地址是是一个16字节,128位整数;
5.在公网当中的IP,绝对不能重复
2.MAC地址
1.MAC地址用来识别数据链路层中相连的节点;
2.长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
3.在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
命令1:ifconfig 查看当前IP(云服务器)
inet 172.21.0.3 云服务器中对应局域网中的IP
netmask 255.255.240.0 子网掩码 ,子网掩码与IP地址按位与得到的是当前子网网段的概念
broadcast 172.21.15.255 广播IP
ether 52:54:00:97:21:0c 以太网
txqueuelen 1000 (Ethernet) 表示当前数据多少
命令2:lspci 查看当前在pci主板上挂接的硬件设施 (外设)
网络转发问题:
1.可以不一从应用层直接到对方的应用层?
2.可不可以从IP层直接到对方的IP层?
答:所有的网络上的数据都必须要在物理层上运行,经过硬件才能发送出去
3.集线器 交换机 路由器
路由器是连接不同的网段的,负责将局域网连接到广域网和互联网中,并找到网络中数据传输最合适的路径。大家通过同一个路由器上网共用一个宽带,上网要相互影响。 简单的说路由器专管入网,交换机只管配送,路由就是给你找路让你上网的,交换机只负责开门,交换机上面要没有路由你是上不了的。
路由器和交换机区别
| 路由器 | 交换机 |
---|
工作层次 | 网络层 | 数据链路层 | 转发依据 | IP层 | Mac层 | 功能 | 连接不同的网络 | 连接局域网中的电脑 | 宽带影响 | 共享宽带 | 独享宽带 |
集线器和交换机区别
| 交换机 | 集线器 |
---|
工作层次 | 数据链路层 | 物理层 | 宽带影响 | 独享 | 共享 | 数据传输 | 有目的的发送 | 广播发送 | 传输模式 | 全双工或半双工 | 半双工 |
交换机又称交换式集线器,它们俩很相似,都是基于MAC识别的,但是又有本质上的区别。
数据传输:集线器工作的时候,如果局域网中的一台电脑要发送消息,则局域网内的所有电脑都可以接收到这个消息,安全性较差,而且每一次只能有一个发送,只有这个发送完毕其他电脑才能再发送,这称为半双工模式。而交换机有“记忆功能”,它能根据相应的MAC地址直接有目的的发送到目标电脑。但是如果向一台新的电脑发送消息,那么传输方式也将是广播,只有找到这台电脑, 并记住它的MAC地址后,以后才能直接发送给它。通过交换机连接的电脑可以同时发送消息互不影响,就像我们平时打电话一样,这称为全双工模式,传输速率比集线器大大提高。
|