一、互联网协议
所谓互联网协议就是计算机与计算机之间的通信,约定好之间通信的规则和标准,使之能够互相交流,这些规则就是互联网协议。
因为在计算机之间在不同的地域,使用不同的语言,造成信息无法传递,就需要计算机之间共同遵守这些规定和标准,不分地域和语言就能交流通信。
如果没有这些协议,就没有现在的网络,每个人的计算机都是孤立的,资源都无法共享。
二、OSI(开放式通信系统互联参考模型)五层模型
从底层硬件开始,依次向上物理层,数据链路层,网络层,传输层,应用层,
1. 物理层:通过光缆,网线,无线网络,双电缆 ,绞线等建立物理连接,发送基于电器特征的高低电压(电信号),高压电代表1,低压电代表0;
2. 数据链路层:单独的发送高低电没有意义,必须规定多少组的电信号一组,代表什么意思,就是规定了电信号的分组方式,
在这一层,有统一的协议:以太网协议(Ethernet),每一组电信号就是一个数据包,称为帧;
每帧包含报头(head)和数据(data)部分,
head包含:18个字节(固定),
发送者(源地址)6个字节,
接受者(目标地址)6个字节,
数据部分6个字节,
data包含:最短46个字节,最长1500个字节,
mac地址:在head里,包含了源地址和目标地址,在每台计算机里通信的端口都有网卡,发送端和接收端的地址就是网卡的地址,既Mac地址,
每个网卡在出厂时Mac地址都已经烧制在网卡里,都是世界唯一的地址,共48位2进制,前12位由16进制表示(前6位表示厂商,后6位表示生产流水线号)
广播:有Mac地址,在同一网络内,通过ARP协议就可以通信,通过广播的方式,
3.网络层
在数据链路层,因为是广播的方式进行通信,造成在这个局域网里,所有的计算机都能收到数据包,而真正要接受的只有一台计算机,造成效率低下,并且还不能与局域网以外的计算机通信,
网络层功能:网络层的功能就是引入新的地址用于区分广播域和子网,即网络地址IP;
IP 地址:范围在0.0.0.0到255.255.255.255,由32位2进制表示,同常是4段十进制表示,
IP地址由2部分组成,网络部分标识子网,主机部分部分标识主机,单独从IP地址无法判断计算机是否在同一网络里,需要子网掩码来判断,
子网掩码:标识一个子网的特征参数,也是一个32位的2进制,用10进制表示,网络部分全是1,主机部分全是0,
知道IP地址和子网掩码,我们就能判断两个IP地址是否在同一个子网里,通过AND运算(对应为都是1,得到是1,其余只要对应为不同就是0)看结果是否相同,相同则是属于同一子网,
IP地址的作用,就是为每台计算机分配唯一的IP地址,同时判断这些IP地址是否属于同一个子网,
IP数据包,包含在以太网的data部分里,IP数据包也包含了head和data两个部分,
head包含20到60个字节,data包含65515个字节,以太网data部分最多只有1500个字节,如果IP数据包超出,需要把以太网分割成几个数据包,分开发送,
ARP协议:地址解析协议,在osi模型中分为七层,在数据链路层中是通过Mac地址传输的,获取自身的Mac地址很容易,但要知道对方主机的Mac地址,就要通过ARP协议,本质就是网络IP地址映射为Mac地址,过程:1.根据IP地址和子网掩码判断是否处于同一网络,2.发送数据包,在以太网内传输,所有主机拆开包后,与自己的IP地址匹配,就是响应,返回自己的Mac地址,
4.传输层
建立端口到端口的通信,是面向连接,可靠的通信协议,端口的范围:0--65535,0--1023被系统占用,
tcp连接的建立过程,
1.client向server发送建立连接 的请求(tcp报文段,syn=1,seq=x),等待server的确认,
2.server收到请求,如果同意建立连接,给client发送tcp报文(sxn=1,sep=y),ack =1,sep=x+1是client确认收到的tcp报文,并等待client确认已经收到报文,
3.client确认收到报文后,再次向server发送tcp报文, 确认收到server的报文,通信连接建立。
tcp断开连接的过程,
tcp是双工传递(数据在两个方向上传递),
1.tcp连接的client发送fin为1,提出tcp连接中止,
2.server收到fin后,确认在这个方向上连接将关闭,
3.有server再次提出关闭tcp连接的请求,发送fin为1,
4.client收到请求,连接关闭。
五、应用层
在应用层,都是程序,数据之间的通信,规定的是程序的数据格式,有email,www,FTP等各种数据格式,必须有协议规定这些程序的数据格式, 这些协议就构成了应用层,
socket是应用层与传输层之间的一个抽象层,为两个程序通过一个双向的通信实现数据交换,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。
六、上网流程
1. 获得本机的基本信息,
IP地址,
子网掩码,
网关,
DNS域名解析,
2.进入浏览器,输入URL地址,
3.DNS解析域名
4.获得http的内容,包含在tcp数据包中,
5.TCP数据包需要设置端口,http端口的接收方,发送方的端口随机生成,
6.IP协议包含在tcp协议内,IP数据包设置双方的IP地址,
7.以太网协议,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关x.x.x.x的MAC地址(通过ARP协议得到)
8. 服务器端响应,经过多个网关的转发,服务器收到IP地址,收到了这四个以太网数据包,根据IP标头的序号,服务器将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来,本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。