网络协议基础
一、互联网协议:
英语是世界所有人通信的唯一标准,internet实际就是计算机之间一系列统一的标准。而这一些列标准就是互联网协议。互联网的本质就是一系列协议。
二、互联网协议按照功能不同细分为osi七层或tcp/ip五层,或tcp/ip四层,我们需要掌握五层的原理就够了。
五层协议对应的物理设备:
。
三、五层模型及对应协议:
- 物理层:
定义:计算机之间必须靠光纤等完成组网(即连接)
物理层功能:主要是通过物理层发送或接受高低电频(电信号)
- 数据链路层:
定义:单纯的电信号是没有意义的,必须对一串高低电频进行分组,每组代表 什么意思。
实现功能:定义了电信号的分组方式。
以太网协议:一个统一的分组标准。
一个数据报(帧)分为:head(固定长度18个字节)、data(最短46个字节、 最长1500个字节,data部分是数据的具体内容。)
head 18个字节中包含:源地址6个字节、目标地址6个字节、数据类型6个 字节.
mac地址:即网卡地址(独一无二),上面说的目标地址、源地址都是mac地址。
广播:有了mac地址,同一局域网中的计算机就能实现通信(有了数据链路层就 有了mac地址,就能实现局域网内通信)
有了以太网协议:就能在同一个局域网内以广播的方式进行通信。
- 网络层:(世界上所有计算机光靠mac地址通信,会造成广播风暴。。。)
定义:由于广播风暴,所以必须划分局域。
功能:引入一套新的地址来区分不同的广播域/子网
IP协议:规定网络地址的协议叫IP协议,它定义的地址称IP地址。
1.32位(4个字节)二进制,范围:0.0.0.0-255.255.255.255
一个IP地址通常携程四段十进制数,如:172.168.10.1
2.IP地址分为两部分:
网络部分:标识子网
主机部分:标识主机
注意一个单纯的IP地址段只是标识了IP地址的种类,无法确定所属的子网。
如:172.16.10.1与172.16.10.2并不能确定二者处于同一子网。
3.子网掩码:它的网络部分全部为1,主机部分全部为0
知道子网掩码,我们就能判断任意两个IP地址是否处于同一个子网络,方法 是将两个IP地址与子网掩码分别进行AND运算(两个对应数位都为一,结果 为1,否则为0),如果运算结果相同,就表明在同一个子网。
4.IP数据包:(分head、data)
IP协议的作用:
- 为每一台计算分配一个IP地址。
- 确定哪些地址是在一个子网。
ARP协议:广播的方式发送数据包,获取目标主机的mac地址。
通信是基于mac地址的广播方式实现的,但是 计算机在发包时,获取自己的 mac地址是容易的,但是获取对方的mac就需要用到ARP协议。
通过IP地址和子网掩码区分自己所属的子网, 如果在相同子网,通过ARP协议返回目标计算机mac地址,如果不在相同子网,通过ARP协议返回目标网关mac地址。
4.传输层:网络层的IP协议的IP能帮我们区分子网,数据链路层的以太网协议mac地址能帮我们找到主机。但是需要定位传输层来定位主机上的应用程序。
端口即应用程序与网卡关联的编号。
传输层的功能:建立端口到端口的通信。
TCP协议:提供一种可靠的、确保数据不丢失不乱序的、端到端的传输。
TCP协议的三次握手与四次挥手:
5.应用层:
功能:固定应用程序的数据格式。
四、Socket
Socket是在应用层与传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象成几个简单的接口,封装在一个类中,共应用层调用实现进程在网络中的通信。
我们可以通过ip地址+TCP协议+端口号(端口号是应用程序与mac地址关联的编号)来唯一标识网络中的一个进程。
然后我们就能够利用socket进行通信了。