互联网协议
互联网协议是什么
连接两台计算机之间的internet实际上就是一系列的标准,这些标准就叫互联网协议。互联网协议定义了计算机如何接入internet,以及接入internet的计算机的标准。
为什么要有互联网协议
因为计算机不可能掌握每台计算机所使用的标准,计算机之间要进行通信就要进行统一规范,即是遵循互联网协议(Internet Protocol Suite)。
OSI五层模型
物理层:
计算机之间连成组网,基于电气特性发送电信号。
数据链路层(以太网协议):
定义电信号的分组方式,一组电信号构成一个数据包,叫帧。每一组数据帧分成head和data两部分。
网络层(IP协议):
ip地址:规定网络地址的协议叫ip协议,它定义的地址称之为IP地址,广泛使用的ipv4地址由32位2进制表示。IP地址分布两部分,网络部分和主机部分。
子网掩码:子网掩码表示子网络特征的一个参数,形式上等于IP地址,它也是一个32位的二进制数,它的网络部分全部为1,主机部分全部为0。
单纯的两个IP地址并不能判断他妈是否属于一个子网,需要借助子网掩码。知道任意两个IP地址和它们的子网掩码,我们就可以判断他们是否属于同一子网。
例:已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网。(IP地址和子网掩码进行&&运算)
答:在同一子网(过程略)
传输层(TCP/UDP协议):
建立端口到端口之间的通信。,端口范围是0-65535,0-1023为系统占用端口。
tcp协议:它是一种可靠传输,TCP数据包没有长度限制,
udp协议:不可靠传输,报头部分只有8个字节,总长度不超过65535字节,正好放进一个ip数据包。
应用层(HTTP/FTP协议):
规定用户的数据格式。TCP协议为各种各样的程序传递数据,Email、WWW、FTP等。那么必须有相应的应用程序格式来规定他们的标准。这些应用程序协议构成应用层。
socket:简称套接字!socket抽象层把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,用来实现进程在网络中通信。
用户上网流程
1)本机获取(获取本机的IP地址、子网掩码、网关IP地址和DNS的IP地址)
2)打开浏览器,输入想要访问的网址。
3)DNS协议:
DNS域名解析器,先访问本地或国内是否有缓存当前页面IP地址!如果有返回IP地址,如果没有则访问根域名服务器d.root-servers.net查询对应的IP地址,DNS根服务器会返回相应的域服务器。(其中.com/.net/.org/.biz/.info由国外公司负责管理,.cn/.uk/.jp等地理域名由国家或地区负责管理)
4)http协议
应用层根据http协议,会将发送的信息嵌入TCP数据包。
5)TCP/UDP协议
TCP数据包需要设置端口号。
6)IP协议
TCP数据包再次被嵌入IP数据包,IP数据包设置好双方的IP地址。
7)以太网协议
IP数据包嵌入以太网数据包。以太网数据包需要设置通信双方的MAC地址。
8)服务器响应
经过物理层的转发,服务器收到数据包得到请求,经过合包、拆包等,读出对应的HTTP请求。接着做出HTTP响应,在通过TCP协议返回。完成一次网络通信。