TCP/IP的分层管理
应用层(http也在这一层)(货) |
传输层(TCP)(车) |
网络层(IP) (虚拟的路) |
链路层(硬件层) (现实的路) |
这四层都是独立存在的,但是相互有通信的接口,所以如果有某一层需要修改,就不需要动其他层。TCP/IP各层的解释如下:
应用层
比如你输入一个http网址,也是属于应用层。将其中的http网址www.baidu.com进行DNS解析后会有ip地址,这里的DNS解析也是应用层。会产生一大段http报文(把他理解成一大段数据)交给传输层。
DNS解析
传输层
传输层好比车,我们把http报文交给传输层,通过TCP将http报文分割成段,然后在封装一层TCP首部。将处理好的http报文(会给每个段打上序号和打上每个段的端口号),通过车也就是TCP,给网络层。
网络层
会将报文段处理成ip数据包并封装加上IP首部;类似于发送给附近收快递的,因为你也不知道快递是否直达,多半也不会直达,往往是经过很多中转站才能到达对方的手中。
具体怎么做?首先你把ip数据包(里面有ip地址,通过ARP协议解析附近的和该网站相关的路由器(MAC地址))发给附近的路由器,附近的路由器在中转,直到发到目标的路由器。
网络层的三次握手
这里的网络层涉及到了三次握手,先发送SYN数据包给http服务器进行数据同步,http服务器发送ACK(请求确认是否正确)/SYN的数据包给客户端,客户端接收之后在发送标有ACK确认的数据包给http服务器。完成三次握手
链路层
就是硬件部分,网线啊,光纤啊这些。
发到接收方后通过链路层,网络层,传输层,应用层倒过来解析,发给http服务器。