虽然大学的时候学了有关计算机网络的课程,可是不争气啊都还给老师了 😂😂,依稀记得当年这门课还考了九十几分的好成绩,现在再考估计最多也就十分。。。如果让老师知道不知道会不会打我,哈哈哈。最近看了《图解HTTP》的一部分,感觉写的挺不错的,重拾了一些记忆。为了不再还回去,先写点儿总结吧。
1.对TCP/IP的理解
计算机与网络设备之间相互通信,两者就需要基于某些相同的方法。比如,如何找到通信的目标,由哪一边先发起通信,使用什么语言进行通信,怎么表明通信结束了等类似的规则都需要双方统一。我们一般把类似这种规则称之为协议。TCP/IP协议是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。
2.TCP/IP的分层管理
TCP/IP按层次共分为四层: 应用层,传输层,网络层,数据链路层。
各个层的作用分别如下:
-
应用层(应用层决定了向用户提供应用服务时通信的活动)
TCP/IP协议族中有很多通用的应用服务,比如文件传输协议(FTP),比如域名解析协议(DNS)以及超文本传输协议(http协议)等等。 -
传输层
传输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议中,有两个性质不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)
TCP协议提供可靠的字节流服务。三次握手策略能够确认数据最终是否到达对方 。 -
网络层
网络层包括IP协议(网际协议)。IP协议的作用是把数据包传给对方。而为了保证数据确实到了对方则要满足各种条件,其中最重要的两个就是ip地址和mac地址。ip之间的通信依赖于MAC地址。此层处理在网络上流动的数据包,并规定了传输路线(利用ARP协议进行路由选择)。 -
链路层
链路层也被称为网络接口层或者数据链路层。通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址
3.TCP/IP通信传输流实例理解
拿我们天天都用到了例子进行说明,比如我们想打开某个网页。
我们在url上输入链接然后enter发出请求,这时浏览器首先做的事情就是解析这个域名找到对应的ip地址,一般来说会先查看浏览器缓存,系统缓存及本地的hosts文件,如果没有的话会发送一个DNS请求(此处省略迭代过程),拿到域名对应的ip地址后缓存起来供以后方便使用。拿到ip之后就发起http请求,进行tcp三次握手,连接建立后传输层会把从应用层接收到的http请求报文进行分割,并在各个报文上打上标记序号和端口号,然后再给网络层。到了网络层后,增加作为通信目的地的MAC地址后给到链路层。到此,请求就真正发送出去了。
服务器在链路层接收到数据后,会按顺序往上层发送,一直到应用层。大部分网站可能会将我们的请求请求到他们的反向代理服务器中,反向代理服务器再请求应用服务器,然后将结果返回给客户端,客户端页面渲染完毕,整个流程结束。
网友评论