IP
1.地址管理
2.路由选择
IPv4
地址不够怎么办?
1.动态分配
2.NAT网络地址转换(本质上是用一个外网IP,代表一组内网的设备)
3.IPv6 16个字节来表示IP地址
网段划分
把一个IP地址分为两个部分:
1.网络号
2.主机号
a.同一个局域网内部的设备,网络号都是相同的,但是主机号都是不同的。
b.两个相邻的局域网(同一 个路由器连接的),要求网络号不能相同。
那从哪里到哪里是网络号,哪里又是主机号呢?
1.经典的方法吧IP地址分成了ABCDE五个类别
2.使用子网掩码来进行划分。
也是32位整数,左半部分是1,右半部分是0.
拿着子网掩码和IP地址按位与,结果就是网络号。
数据链路层
负责两个相邻设备之间的传输,直接受到硬件设备的影响。
以太网协议涵盖了数据链路层,也涵盖了物理层。
常见面试题:已经有IP了,为啥还有Mac?
IP数据分包
DNS应用层协议
IP地址来区分一个主机,IP不好记,可以用一个字符串来代替,DNS会自动把域名翻译成服务器。
经典面试题:从一个浏览器上输入URL,最终看到页面内容,这中间经历了哪些过程?
从网络原理角度看:
1.输入的URL会先触发DNS,先查浏览器缓存,再查hosts文件,再查DNS服务器。
2.构造HTTP协议数据包,方法get,输入的URL,浏览器会自动加上报头,接下来这个数据报就是交给传输层。
3.TCP就会把这个数据构造成TCP数据报,经历三次握手。
4.IP协议构造一个IP数据报,此处根据数据报长度,以及MTU限制,考虑是否分包。,查路由表,决定从哪个端口转发,数据交给数据链路层。
5.构造以太网数据帧,源Mac就是本机,目的Mac就是根据上面的IP确定的转发端口决定的。
6.物理层
转换成光信号或者电信号,就行传输。
7.先传输到下一台路由器上,路由器进行解析和分用。解析到传输层。,把数据进行封装,往下一个路由器上转发。
8.中间经历若干路由器转发,最后到达目标服务器。
9.服务器进行分用,物理层吧光电信号转换成bit流,交给数据链路层。
10.数据链路层解析出IP数据报,交给网络层
11.网络层解析数据给传输层。
12.TCP解析出应用层数据,交给应用程序,返回ack。
13.服务器的应用程序读取数据根据请求计算响应,得到一个HTML页面。吧页面构造成一个HTTP响应报文,进过封装分用传输最终返回到客户端。
14.客户端浏览器吧HTML报文解析出来渲染HTML,显示到浏览器上。