一:计算机网络背景
1.局域网
- 在局域网内,所有的主机之间交互的信息都是可以被监听的。(网卡可以被设置为混杂模式,这时它可以“抓到”局域网所有的数据)
- 在局域网内,两台主机是可以直接通信的(网卡序列号MAC地址,全球唯一)
- 局域网中,两台或两台以上的主机同时向网线发送数据,就会发生数据干扰的问题,把这种问题叫局域网内的数据发生了碰撞,该网线叫局域网的碰撞域。
- 交换机:交换机是工作在数据链路层的设备,完成数据转发,减少碰撞域,
- 路由器:路由器工作在IP层,兼容交换机。
2.广域网
- 所谓的“局域网”和“广域网”只是一个相对的概念。
- 局域网与局域网通过路由器构成广域网。
- 数据包在转发期间,先从原主机找到目标主机所在局域网。
- 不同的局域网是不一样的。
二:认识网络协议
1.基本概念
- 网络协议其本质就是一种”约定“,首先两台主机想要通信,必须约定双方的数据格式时一致的,但只是约定这还远远不够,因为计算机生产厂家有很多,操作系统也有很多,网络硬件设备更多,为了能让这些不同生产厂家,不同操作系统….的计算机之间可以相互通信,就需要约定一个共同的标准,这就是网络协议。
2.协议分层
- 网络当中的协议通常以层状结构分层,但是为什么要分层呢?分层最大的好处在于”封装“,就像函数一样,为了隐藏上层的实现细节,层与层以接口的形式调用,但是 并不知道具体实现细节,这样如果其中一层出现问题,并不会影响其他层。(分层是对软件的分层)
3.两种分层模型
(1)OSI七层模型:从底到上依次为,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
(2)TCP/IP五层(四层)模型:从底到上依次为,物理层、数据链路层、网络层、传输层、应用层。每一层的作用如下:
物理层:物理设施,可以传递0 1的信号
数据链路层:把0、1的信号组成数据包(帧),这是数据链路层的数据包(之后还有IP层 传输层 应用层的数据包),数据包的结构都是head+data,这里的head是数据包的说明项,比如发送者 接受者 数据格式等等,数据链路层的发送者和接受者的数据是MAC地址(网卡的MAC地址,全球唯一)
网络层:因为数据包的发送本质上是把数据包发送给局网中所有的计算机,计算机判断数据包的接受者的MAC地址,如果一致就接收,如果不一致就丢包。 但是计算机网络是在是庞大,给几十亿台计算机每一台发送数据包是不可能的。所以需要新的一组地址来表示计算机的位置。这就是网络层的作用。 判断一个计算机的位置需要IP地址+MAC地址。首先通过IP地址(路由)找到计算机所在的局网,然后广播(发送给每一台计算机)
传输层:确定计算机上的端口(一个程序占用一个端口)
应用层:规定应用程序的数据格式,例如Eamil FTP WWW等等。
注:因为物理层我们考虑的比较少,因此也被称为TCP/IP四层模型
4.TCP/IP通讯过程:
(1)两个主机在局域网通信:
说明:
- 把自顶向下的过程叫封装,封装的过程每一步都是要添加各自报文的报头信息。
- 从底向上交付时叫解包,除应用层,每一层的报头信息必定包含”我要将我的有效载荷交给谁“(分用)。因为,假设在发送消息的是A主机,接收消息的为B主机,A主机在传输层使用的是TCP协议,如果B主机在接收时,从底向上解包,网络层并没有分用信息,那么网络层将不知道要交给谁(因为协议有很多种)
- 越靠近底层的它的数据帧,报头在封装时越靠近外层。
- 不同协议层对数据包有不同的称谓,在传输层叫段,网路层叫数据报,链路层叫帧。
(2)两个不在同一个局域网的主机通信(必须用路由器):
说明:
- 主机有路由功能,所以它知道要通信的主机和自己不在同一局域网。
- 从图中我们可以发现两台主机所处的局域网不同,这里的IP协议的功能就是屏蔽底层局域网的差异,使数据包在这一层中两台主机”看到“的是一样的数据
- 因为MAC地址作用于局域网内,所以在这里的通信中MAC地址一直变,但是IP地址不变。