网络通信过程
tcp-ip协议
tcp-ip协议不是一个协议,而是一类协议,是诸多协议(上百种)的简称
除了TCP-IP协议还有另一套标准:OSI
两台电脑的网络
两天电脑之间通过网线连接可以直接通信,但需要提前何止号ip地址以及网络掩码,并且ip地址需要控制在同一网段内,例如一台192.168.1.1另一台为192.168.1.2则可以进行通信
使用集线器组成网络
当有多态电脑需要组成一个网时,可以通过集线器(Hub)将其连接在一起,一般情况下集线器的接口较少。集线器有个缺点,它以广播的方式发送任何数据,即如果集线器接收到来自A电脑的数据,本来是想发给B电脑,如果它此时还连接着另外两台电脑C、D,阿么它会把这个数据给每个电脑都发送一份,因此会导致网络拥堵。
使用交换机组成一个网络
注:网卡除了独有的mac地址之外还可以接收一个特殊的通用地址——FF:FF:FF:FF
起始pc通过广播(广播中的目标mac地址填写的即是FF:FF:FF:FF)来获取目标pc的mac地址,同时也将自己的mac地址广播出去,目标pc通过通用地址接收了广播数据,单独回复起始pc自己的mac地址,起始pc将mac地址存储起来,之后再需要给这个目标pc通信,就可以单播了。
windows下通过cmd输入arp -a即可查看存储的目标mac地址
使用路由器连接多个网络
想要将数据发给别的网络 ,必须要设置默认网关,路由器至少有两个网卡,用于中转两个网络之间的数据,而网关的ip即是路由器网卡其中连接那一端的网卡的ip,数据发送的过程中,目的ip和源ip不变,mac地址随中转发生改变。
复杂的通信过程
完整流程描述
以ip地址为192.168.1.1的pc想要访问域名www.zuimengyin.com为例
假设www.zuimengyin.com的ip地址为111.49.86.2
首先想要获取域名对应的ip需要对域名进行解析,DNS服务器专门用来解析域名,所以第一步就是:
1.解析域名:初始ip向路由器的默认网关发送数据,如果不知道默认网关的就要先用arp获得默认网关的mac地址,之后就到达DNS服务器,DNS服务器对域名进行解析获得对应的ip地址,再将ip地址返回给初始ip
注:ip地址根据地域划分有不同的范围,所以发送数据时,路由器就可以知道该往哪个方向发送数据
2.向服务器发送tcp的三次握手
3.发送http的请求数据以及等待服务器的应答:握手成功后,浏览器就会发送请求头,服务器获取后解析,将所需文件数读取并返回
4.发送tcp的4次握手
注:如果数据返回的过程中,原先的数据传输路线断开,则路由器会根据路由器的自身协议,绕道找到原先的初始ip